Skip to content

Instantly share code, notes, and snippets.

@odlp
odlp / gist:6504ffbc25683fa8e1a3
Created August 21, 2014 09:04
Useful postgresql commands
# Export table to CSV from psql:
COPY table_name TO 'filepath' WITH DELIMITER AS ',' CSV HEADER;
@odlp
odlp / gist:e02621612aae82a778c2
Created August 20, 2014 09:29
Distinct substring SQL query with Postgresql
result = ActiveRecord::Base.connection.execute("SELECT DISTINCT SUBSTRING(postcode, '[A-Z0-9]{3,} [0-9]{1}') FROM postcodes")
result.values.first
# => ['AB1 1']
@odlp
odlp / gist:6d6c951745e3c1e0226a
Last active August 29, 2015 14:03
Convert CSV file encoding to UTF-8 (incov)
# Convert file encoding for CSV in OS X:
iconv -f iso-8859-1 -t UTF-8 original.csv > utf-output.csv
# Where
# -f is current encoding
# -t is target encoding
# Guestimate of original file encoding with:
file -I
@odlp
odlp / tenline.rb
Created October 24, 2013 09:58
typing.io tenline
puts `clear`
exercises = ["How much wood can a woodchuck chuck?", "What's the time Mr.Wolf?", "Peter Piper picked a peck of pickled peppers."]
def check_diff text, input
text.length.times.map{|i| 1 unless text.chars[i] == input.chars[i]}.count(1) + (input.length > text.length ? input.length - text.length : 0)
end
exercises.each do |exercise|
puts "Type the following:\n---\n#{exercise}\n---\n\n"
start_time, input, end_time = Time.now, gets.chomp, Time.now
puts "Mistakes: #{check_diff(exercise, input)} characters. Time taken: #{(end_time - start_time).round(2)} seconds.\n\n"
end
@odlp
odlp / module-example.rb
Last active December 24, 2015 16:09
Ruby - examples of cascading & namespacing
# EXAMPLE 1: Cascade
# Two modules happen to have the same method ('say').
# If we include the Shouting module last, the Shouting 'say' method overwrites the Talkable 'say' method.
module Talkable
def say (str)
puts str
end
end