Skip to content

Instantly share code, notes, and snippets.

J. Whiteman jwhiteman

Block or report user

Report or block jwhiteman

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jwhiteman
jwhiteman / gist:7634421
Last active Dec 29, 2015
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.
View gist:7634421
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
Trolling twitter for 2-letter handles
View gist:3625a7479082e245bf71
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 Jul 18, 2014
immutable means immutable
View gist:079fe77fc626d49c9f8a
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
View gist:d254a05e82a04a64c1ff
Y = fun(C) ->
(fun(H) ->
H(H)
end)(
fun(F) ->
C(fun(X) -> (F(F))(X) end)
end
)
end.
View gist:34d447a0d249d2e29035
(define y2
(lambda (c)
((lambda (h)
(h h))
(lambda (f)
(c (lambda (x y)
((f f) x y)))))))
(define make-rember
(y2 (lambda (f)
View gist:139ce4b5267fcc29b2ef
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 Aug 29, 2015
#flatten in Elixir
View ch10-ex6.ex
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.(
View list_parser.yrl
% 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 ->
View ring.exs
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 Aug 29, 2015
map & fold explorations
View basics-with-letrec.scm
;; letrec practice
;; fold
;; map
;; filter
;; mapcat
(define (fold fold-f acc l)
(letrec
((FOLD (lambda (acc l)
(cond
You can’t perform that action at this time.