I hereby claim:
- I am jodell on github.
- I am jodell (https://keybase.io/jodell) on keybase.
- I have a public key whose fingerprint is 5804 DCC2 C143 223A B290 A374 B8DF 254E 7DC1 4831
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
ti = Time.now.to_i | |
t = Time.now.to_s | |
2.0.0-p451 :015 > puts Benchmark.measure { 100_000.times { Time.at(ti) } } | |
0.030000 0.000000 0.030000 ( 0.041530) | |
=> nil | |
2.0.0-p451 :016 > puts Benchmark.measure { 100_000.times { Time.parse(t) } } | |
2.680000 0.070000 2.750000 ( 2.755467) |
# Core extension: | |
# Shortcut to a full file path | |
# ala: require File.pwd + '/some/other/file' | |
# Fixed naive, untested version per dradcliffe. Thanks! | |
class File | |
def self.pwd | |
self.expand_path(self.dirname(caller.first.split(':').first)) | |
end |
## | |
# Contribution to Rake::Task to allow for reseting the known invoked state. | |
# Sometimes you have a complicated Rake setup and looping constructs inside of | |
# an executing rake task make sense. | |
# - jodell 20090413 | |
# | |
class Rake::Task | |
attr_accessor :already_invoked |
# Parsing Expression Grammar for basic boolean logic on a set of k -> { v1, v2, ... } elements. | |
# Amazing talk about Treetop and PEG's: http://rubyconf2007.confreaks.com/d1t1p5_treetop.html | |
# | |
# lst = { | |
# 'foo' => [1, 2], | |
# 'bar' => [2, 3, 4], | |
# 'baz' => [5, 6] | |
# } | |
# | |
# require 'treetop' |
## | |
# Given a key/value list of nodes and their children, this returns the reversed, | |
# breadth-first search, the driving need of which is to find the build order of | |
# applying seed tables and their dependencies. | |
# | |
# - jodell 20080530 | |
# | |
def reverse_bfs(list, nodes = []) | |
return nodes unless nodes.any? { |v| not list[v].nil? } | |
return reverse_bfs( |
# Bash BAH | |
# Simple enumeration | |
for i in $(seq 1 30); do convert ${i}.jpg -resize 90x90 ${i}_90x90.jpg; done | |
# find/sed/xargs example | |
# sed here trims all preceding /path/to/foo values (effectively same as basename) | |
find . -name "mef.*" | sed 's!.*/!!' | xargs -o -I file p4 integ file ~/p4/db/seed/CA/file | |
# better find/xargs example eliminating need for sed |
#!/usr/bin/env bash | |
# Automatically apply security updates, resets to normal repo listings, | |
# and downloads packages ahead of time for manual upgrades. | |
# This is necessary if you're running Ubuntu (always unstable), have | |
# custom repos that you might not want to auto-update from, etc. | |
# Cron'ing this script helps ward off auditors and cyber-ninjas alike. | |
# -jodell 20100115 | |
# Assumes that you've partitioned security repo lines appropriately | |
sudo apt-get -o "Dir::Etc::SourceList=/etc/apt/security.list" -o "Dir::Etc::sourceparts=''" update |
# VI MAGIC | |
# NOTE: Why am I using hash comments? | |
# Courtesy of bfeigin: | |
# "found this little nugget, great whenever you edit a root owned config file but forget to sudo before hand" | |
:w !sudo tee % |