Skip to content

Instantly share code, notes, and snippets.

@alexmoore
alexmoore / iso8601.erl
Last active August 29, 2015 13:57
Iso 8601 Timestamp Long format in Erlang
%% Provides a timestamp like 2014-03-19T19:25:17.779905
DateTime = erlang:now().
{_,_,MicroSec} = DateTime.
{{Year,Month,Day},{Hour,Min,Sec}} = calendar:now_to_universal_time(DateTime).
DateString = io:format("~4..0B-~2..0B-~2..0BT~2..0B:~2..0B:~2..0B.~6..0B",
[Year, Month, Day, Hour, Min, Sec, MicroSec]).
DateString.
unpack_riak_debugs () {
mkdir -p compressed
for file in `ls *riak-debug.tar.gz`
do
tar xzf $file
mv $file compressed
done
for file in `ls -1 | grep riak-debug`
do
@alexmoore
alexmoore / keybase.md
Created April 15, 2014 03:07
keybase.md

Keybase proof

I hereby claim:

  • I am alexmoore on github.
  • I am alexmoore (https://keybase.io/alexmoore) on keybase.
  • I have a public key whose fingerprint is ED5D 175E 29A7 478F 0D4F 7D57 1D71 6D67 A969 0E08

To claim this, I am signing this object:

@alexmoore
alexmoore / set_lager.erl
Created May 6, 2014 16:13
Set Debug / Info Log Levels Riak-CS
SetDebug = fun() -> {node(), lager:set_loglevel(lager_file_backend, "/var/log/riak-cs/console.log", debug)} end.
SetInfo = fun() -> {node(), lager:set_loglevel(lager_file_backend, "/var/log/riak-cs/console.log", info)} end.
rp(rpc:multicall(erlang, apply, [SetInfo,[]])).
FindPrimaries = fun(Bucket, Key, Ring) ->
BKey = {Bucket,Key},
DocIdx = riak_core_util:chash_key(BKey),
BucketProps = riak_core_bucket:get_bucket(Bucket, Ring),
[NValue] = [Y || {X1, Y} <- BucketProps, n_val == X1],
CHBin = chashbin:create(riak_core_ring:chash(Ring)),
Itr = chashbin:iterator(DocIdx, CHBin),
{Primaries, Itr2} = chashbin:itr_pop(3, Itr),
Primaries
end.
@alexmoore
alexmoore / large.sh
Created September 25, 2014 19:05
Find large Objects
#!/bin/bash
# For each node, search for reading large object messages, write to largeobject.read file
for NODE in 10.58.9*; do
IP=`echo "$NODE" | cut -d '-' -f1`;
cat $NODE/lo.r.console.log | sed "s/.*Reading large object of size \([0-9]*\) from \(<<.*>>\)\/\(<<.*>>\)/\{\"$IP\",\2,\3,\1\},/" | sort | uniq > $NODE/lo.r.list ;
done
# For each node, search for writing large object messages, write to largeobject.write file
for NODE in 10.58.9*;
require 'rubygems'
require 'faker'
require 'activerecord'
1000.times do
# make a person
# save this person
end
require 'rubygems'
require 'faker'
#Let's see if we can make a fake person...
person_name = Faker::Name.name
person_email = Faker::Internet.email
person_company = Faker::Company.name
person_company_slogan = Faker::Company.bs
person_phone = Faker::PhoneNumber.phone_number
person_address = Faker::Address.street_address
@alexmoore
alexmoore / about.md
Last active September 26, 2015 19:27 — forked from jasonrudolph/about.md
Programming Achievements: How to Level Up as a Developer

Programming Achievements: How to Level Up as a Developer

  1. Select a particular experience to pursue.
  2. Pursue that experience to completion. (Achievement unlocked!)
  3. Reflect on that experience. Really soak it in. Maybe a blog post would be in order?
  4. Return to Step 1, this time selecting a new experience.

This gist is a fork of the gist from this blog post.

@alexmoore
alexmoore / latency.txt
Created May 31, 2012 18:26 — forked from jboner/latency.txt
Latency numbers every programmer should know
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns
Mutex lock/unlock 25 ns
Main memory reference 100 ns
Compress 1K bytes with Zippy 3,000 ns
Send 2K bytes over 1 Gbps network 20,000 ns
Read 1 MB sequentially from memory 250,000 ns
Round trip within same datacenter 500,000 ns
Disk seek 10,000,000 ns