Skip to content

Instantly share code, notes, and snippets.

View oderwat's full-sized avatar
💭
Go da Lang...

Hans Raaf oderwat

💭
Go da Lang...
View GitHub Profile
@oderwat
oderwat / Checkbox Demo
Created July 1, 2016 09:15
Checkbox Demo
To Do List:
* [x] Feature A
* [ ] Feature B
* [x] Feature C
* [ ] Feature D
@oderwat
oderwat / vsc-runner
Last active July 14, 2016 20:16
Little helper script for using Nim with "runner" extension in Visual Studio Code
#!/bin/bash
if [ -z "$1" ]; then
echo "No file given! You may need to save first!"
exit 5
fi
cd `dirname "$1"`
CMD="c --verbosity:0 --hints:off --parallelBuild:1 "
FULL="`basename "$1"`"
@oderwat
oderwat / strAccessObj.nim
Last active March 16, 2020 15:06
Access Objects in Nim by strings for fields (wrapper automatisation)
import macros
type Foo = object
a: int
b: int
c: float
#[
dumpTree:
#!/bin/sh
# Called by "git push" after it has checked the remote status,
# but before anything has been pushed.
#
# If this script exits with a non-zero status nothing will be pushed.
#
# Steps to install, from the root directory of your repo...
# 1. Copy the file into your repo at `.git/hooks/pre-push`
# 2. Set executable permissions, run `chmod +x .git/hooks/pre-push`
@oderwat
oderwat / aporia-hacked-to-osx.md
Created March 22, 2015 01:07
Hacking Aporia (Nim IDE) to work on Yosemite OS X with GTK 2 Quartz (no X11)

Aporia on OS X Yosemite (GTK+ 2.x)

"Don't try at home or don't blame me for lost hours of your life!"

See this Nim Forum Topic where this started.

Well I have a working Aporia version on my Yosemite OS X 10.10.2 from the new-suggest branch of the repository.

BUT the lengths I had to go to get this working are plastered with stuff I did not understand :)

@oderwat
oderwat / nimrun
Created March 4, 2015 22:34
nimrun (using my modified tcc with nim on osx)
#!/bin/bash
rm nim/nimcache/*
nim c -c --verbosity:0 -w:off --hints:off nim/ex1.nim
./tcc nim/nimstub.c -I/usr/local/lib/nim nim/nimcache/*.c -run
@oderwat
oderwat / update-all-nim-gtk3.sh
Created February 24, 2015 21:18
Simple script to clone / pull and install the Nim GTK+3 wrappers from Stefan Saleski
#!/bin/bash
if [ ! -d "nim-gtk3" ]; then
git clone git@github.com:StefanSalewski/nim-gtk3.git
fi
cd nim-gtk3 && git pull && nimble install -y && cd ..
if [ ! -d "nim-gdk3" ]; then
git clone git@github.com:StefanSalewski/nim-gdk3.git
fi
@oderwat
oderwat / re_check_prime.nim
Last active August 29, 2015 14:15
Test for being prime with a regular expression in Nim (aka Nimrod)
# regular expression to check a number for being prime
#
# see: http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/
import re, strutils
let rprime = re"^1?$|^(11+?)\1+$"
proc testPrime(n: int): bool =
not (repeatChar(n, '1') =~ rprime)
@oderwat
oderwat / firebase_pushid.nim
Last active August 29, 2015 14:15
Firebase push id algorithm in Nim (aka Nimrod) (ref: https://www.firebase.com/blog/2015-02-11-firebase-unique-identifiers.html)
# Fancy ID generator that creates 20-character string identifiers with the following properties:
#
# 1. They're based on timestamp so that they sort *after* any existing ids.
# 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs.
# 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly).
# 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the
# latter ones will sort after the former ones. We do this by using the previous random bits
# but "incrementing" them by 1 (only in the case of a timestamp collision).
#
# Based on https://www.firebase.com/blog/2015-02-11-firebase-unique-identifiers.html
@oderwat
oderwat / keybase.md
Created March 21, 2014 12:44
Keybase.io Proof

Keybase proof

I hereby claim:

  • I am oderwat on github.
  • I am oderwat (https://keybase.io/oderwat) on keybase.
  • I have a public key whose fingerprint is 9EC4 4C57 2A7F C458 5B02 D1CB 8865 988A 52C1 B6B3

To claim this, I am signing this object: