Skip to content

Instantly share code, notes, and snippets.

@gmarik
gmarik / makeapp.sh
Created August 26, 2012 22:50 — forked from demonbane/makeapp.sh
Create a Fluid-style app launcher for single-window Chrome instances on OSX
#!/bin/sh
echo "What should the Application be called (no spaces allowed e.g. GCal)?"
read inputline
name=$inputline
echo "What is the url (e.g. https://www.google.com/calendar/render)?"
read inputline
url=$inputline
@gmarik
gmarik / error_handling.md
Created August 17, 2012 17:34
Error handling

#Clojure

wow, what a stack trace

$ time clj -e '(bar 1)'
Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: bar in this context, compiling:(NO_SOURCE_PATH:1)
	at clojure.lang.Compiler.analyze(Compiler.java:6281)
	at clojure.lang.Compiler.analyze(Compiler.java:6223)
	at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3497)
@gmarik
gmarik / gcombo.rb
Created May 13, 2012 03:26
group combinations
# solution for problem 1.27 from https://sites.google.com/site/prologsite/prolog-problems/1
def gcombo(list, ns, acc, q = [], rest = list, qg = [])
if ns.sum != list.size && acc.empty?
raise ArgumentError, "Impossible to group #{list} into groups of #{ns} elements"
end
if ns.empty?
acc << qg
return
end
# get all combinations http://en.wikipedia.org/wiki/Combination
n = (ARGV[0] || 5).to_i
m = (ARGV[1] || 3).to_i
puts "#{n}/#{m}"
def comb(list, m, q, acc)
return if list.empty?
@gmarik
gmarik / game_of_life.rb
Created March 19, 2012 17:02
Conway's Game of life
require 'set'
cells = lambda do |world, (x, y)|
[
[-1,-1], [0, -1], [1, -1],
[-1, 0], [1, 0],
[-1, 1], [0, 1], [1, 1],
].map do |(dx, dy)|
[x+dx, y+dy]
end.partition { |_cell| world.include?(_cell) }
" put this into your .vimrc
func! Run_current_line()
" get current line and run it as a system command
let content = system(getline('.'))
" open new window
silent pedit `=tempname()`
" change focus to the window
wincmd P
" append content

#include and #extend have same effect on instances as inheritance

Let's say we have this

module A; end
module B; end
class C; end
class D < C; end

Then we modify instance

@gmarik
gmarik / !README.md
Created November 21, 2011 15:36
Disable Gem deprecation spam

How to disable Gem deprecation warnings

Just copy content to corresponding files

@gmarik
gmarik / README.md
Created October 21, 2011 21:44
phantomjs qunit.js example

About

minimal example of using [phantomjs] with [qunit]

$ phantomjs run-qunit.js file://`pwd`/test.html
'waitFor()' finished in 200ms.
Tests completed in 21 milliseconds.
5 tests of 5 passed, 0 failed.

Installation