Skip to content

Instantly share code, notes, and snippets.

View danielnc's full-sized avatar

Daniel Naves de Carvalho danielnc

View GitHub Profile
@danielnc
danielnc / convert_number_to_base.rb
Created October 25, 2013 20:58
Stupid and un-optimized converter to other numerical bases(NUMBER.to_s(base))
def convert(number, base=10)
raise "base must be between 2 and 36" if base < 2 || base > 36
negative = number < 0
number = number.abs
number_array = []
loop do
number_array.unshift("0123456789abcdefghijklmnopqrstuvwxyz"[number % base])
number /= base
break if number == 0
end
@danielnc
danielnc / extract_mongo_id.sh
Created December 14, 2012 19:00
Parsers mongo ids to Dates
cat users.in | cut -f1 | ruby -e "ARGF.each_line { |line|puts Time.at(line[0...8].to_i(16)).strftime(\"%Y%m%d\") }" | sort -r | uniq -c
@danielnc
danielnc / StreamingStats.rb
Created December 6, 2012 18:37
Stats for streaming values(mean,variance, standard_deviation)
# Check: http://www.johndcook.com/standard_deviation.html
module OmniRPC
module Util
class StreamingStats
attr_reader :min, :max
def initialize
@m_n = 0.0
@max = -Float::INFINITY
@min = Float::INFINITY
@danielnc
danielnc / humanize.rb
Last active October 13, 2015 03:28
humanize milliseconds (ruby)
def humanize(milliseconds)
[[1000, :milliseconds], [60, :seconds], [60, :minutes], [24, :hours], [365, :days], [+1.0/0.0, :years]].inject([]){ |m, (count, name)|
if milliseconds > 0
milliseconds, n = milliseconds.divmod(count)
m.unshift "#{n.to_i} #{name}"
end
m
}.join(' ')
end
@danielnc
danielnc / gist:4030891
Created November 7, 2012 11:09
Bash COUNT && Percent
grep "XXXXXXX" file.log | cut -d"," -f5 | sort | awk '{a[$0]++} END{for (i in a) if (a[i]>1) printf "%10d\t%5.2f%%\t%s\n", a[i], 100*a[i]/NR, i}' | sort -rn
@danielnc
danielnc / build_atlas.sh
Created October 31, 2012 12:59 — forked from gerigk/build_atlas.sh
Build ATLAS for EC2
# UPDATE to Get the latest versions
wget http://www.netlib.org/lapack/lapack-3.4.2.tgz
wget http://sourceforge.net/projects/math-atlas/files/Stable/3.10.0/atlas3.10.0.tar.bz2/download?use_mirror=ufpr
tar -vxf atlas3.10.0.tar.bz2
cd ATLAS
mkdir build
cd build
################################## -t 8 means 8 threads. depending on the ec2 instance you can choose more threads
### V 448 means SSE1/2/3 support. A14 means x86SSE364SSE2 architecture. check the documentation for more information
### if you run smaller instances you may get 32 bit machines. in this case you need to build -b 32, too and install the
@danielnc
danielnc / Gemfile
Created October 25, 2012 18:50
Ruby-cli --pipe vs Ruby-rb vs Ruby-rb Hiredis benchmark
source "http://rubygems.org"
gem 'bundler', ">= 1.2.1"
gem 'redis', ">= 3.0.2"
gem 'hiredis', ">= 0.4.5"
gem 'bench_press', ">= 0.3.1"
@danielnc
danielnc / audible_library_export_markdown.js
Last active August 29, 2015 14:23
Audible export library markdown
"|Book Cover|URL|\n|:-----|----|" + _.map(_.sortBy($('.adbl-lib-content tbody tr td[name=titleInfo] a[name=tdTitle]:visible'), function(elem) {
return elem.innerText
}), function(elem) {
img = $(elem).parent().siblings("td[name='productCover']").find("img").attr("src")
return "|" + ['![alt tag](', img, ')'].join('') + "|" + [elem.innerText, '](', elem.href, ')'].join('') + "|";
}).join('\n')