Skip to content

Instantly share code, notes, and snippets.

@jwhiteman
jwhiteman / gist:7634421
Last active December 29, 2015 07:09
notes on getting hadoop (both single node and a cluster) going on Ubuntu LTS; there are just notes to myself and have some gaps in them. Not meant to be a tutorial or a walkthrough.
sudo apt-get update
sudo apt-get install vim
# generate keys and copy them over
ssh-copy-id -i id_rsa.pub vagrant@hnclient # move node ssh key to the client
# update /etc/hosts on each node to know at least the master; the master about the slave nodes
# make sure master can ssh into localost
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
# re-read: http://stackoverflow.com/questions/8872807/hadoop-datanodes-cannot-find-namenode
@jwhiteman
jwhiteman / gist:3625a7479082e245bf71
Created May 15, 2014 03:09
Trolling twitter for 2-letter handles
require 'httparty'
include HTTParty
('aa'..'zz').select { |r|
sleep 0.20
puts "trying #{r}"
self.class.head("https://twitter.com/#{r}").code == 404
}
# => ['me', 'oh']
@jwhiteman
jwhiteman / gist:079fe77fc626d49c9f8a
Created July 18, 2014 01:23
immutable means immutable
Gotcha with Erlang
➜ v-kserl-v-02-code erl
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Eshell V5.10.4 (abort with ^G)
1> VALUE = fun() -> io:format("I have value!~n") end.
#Fun<erl_eval.20.80484245>
2> K = mykey.
mykey
@jwhiteman
jwhiteman / gist:d254a05e82a04a64c1ff
Created July 29, 2014 19:01
ycombinator in erlang
Y = fun(C) ->
(fun(H) ->
H(H)
end)(
fun(F) ->
C(fun(X) -> (F(F))(X) end)
end
)
end.
(define y2
(lambda (c)
((lambda (h)
(h h))
(lambda (f)
(c (lambda (x y)
((f f) x y)))))))
(define make-rember
(y2 (lambda (f)
def daemonize_app
if RUBY_VERSION < "1.9"
exit if fork # jettison the terminal
Process.setsid # establish a new group & session leader (can only be done as a child process)
exit if fork # jettison the group leader. now it can't be interrupted from another group or session going down.
Dir.chdir "/" # change dir to root to make sure that the dir won't go away during the process run
# as a demon we won't be needing these...
STDIN.reopen "/dev/null"
STDOUT.reopen "/dev/null", 'a'
@jwhiteman
jwhiteman / ch10-ex6.ex
Last active August 29, 2015 14:22
#flatten in Elixir
defmodule MyList do
# version 1: continuation passing style
def flatten(l), do: flatten(l, fn (result) -> result end)
def flatten([], col), do: col.([])
def flatten([h|t], col) when not is_list(h) do
flatten(t, fn (acc) -> col.([h | acc]) end)
end
def flatten([h|t], col) do
col.(
@jwhiteman
jwhiteman / list_parser.yrl
Created June 13, 2015 01:50
List Parser
% Andrea Leopardi's list parser
% http://andrealeopardi.com/posts/tokenizing-and-parsing-in-elixir-using-leex-and-yecc/
Nonterminals list elems elem.
Terminals '[' ']' ',' int atom.
Rootsymbol list.
list ->
'[' ']' : [].
list ->
@jwhiteman
jwhiteman / ring.exs
Created June 18, 2015 20:55
elixir ring
defmodule Ring do
def node(name, next_pid) do
receive do
1 ->
send next_pid, 1
n when is_number(n) ->
send next_pid, n
node(name, next_pid)
end
end
@jwhiteman
jwhiteman / basics-with-letrec.scm
Last active August 29, 2015 14:23
map & fold explorations
;; letrec practice
;; fold
;; map
;; filter
;; mapcat
(define (fold fold-f acc l)
(letrec
((FOLD (lambda (acc l)
(cond