Skip to content

Instantly share code, notes, and snippets.

@jamesduncombe
jamesduncombe / xml_to_json_array.rb
Created October 4, 2012 17:51
Script to convert a series of XML documents into an Array of Hashes then to a JSON file
#
# Read a series of XML documents into a large Array of Hashes
# export as JSON
#
# assign some constants to handle file names / paths
PATH_TO_XML_FILES, EXPORT_FILE = ARGV.first, ARGV.last
# argument validation
raise ArgumentError, 'You must specify a path from which to read the XML documents' if PATH_TO_XML_FILES.nil?
@jamesduncombe
jamesduncombe / mkspin.rb
Created February 23, 2013 14:34
Simple little script to keep my external drive spinning as it likes to go to sleep... lots...
#!/usr/bin/env ruby
#
# Keep the external drive spining!
#
require 'fileutils'
# set the name of the file to write
FILE = '/Volumes/Drive_Name/.stayawake'
@jamesduncombe
jamesduncombe / array_operators.rb
Last active December 18, 2015 13:09
Ruby's array operators - Intersection, Union and Difference
# Ruby's Array operators
a = 1,2,3,4
b = 2,3,4,5
# Intersection
a & b # => [2, 3, 4]
# Union
a | b # => [1, 2, 3, 4, 5]
@jamesduncombe
jamesduncombe / pagination.php
Last active December 20, 2015 17:59
Pagination with MySQL and PHP
<?php
/**
* Handling offsets for articles in series using PHP and MySQL
* pages is the table for articles
*/
$number_of_articles_per_page = 10;
$page = 1;
class FakerNames
FIRST_NAMES = %w(James Nathan Stew John Ben Adrian Will George)
LAST_NAMES = %w(Smith Goddard Duncombe Harrason Mandela James Boom Johnson)
attr_accessor :used_combos, :used_first_names, :used_last_names
def initialize
@used_combos = []
@used_first_names = []
@jamesduncombe
jamesduncombe / Working-3D-flip.markdown
Created December 17, 2013 23:38
A Pen by James Duncombe.
data = """
Make, Model
Jag, X-type
Merc, CL
"""
csv = d3.csv.parse(data)
columns = Object.keys(csv[0])
# Create the actual body of the table
@jamesduncombe
jamesduncombe / testing_erlang.erl
Last active August 29, 2015 14:01
Playing with Erlang
#!/usr/bin/env escript
main(_) ->
List = [1,2,3,4,5,6,7,8,9],
NewList = reverse(List),
io:format(NewList),
shifter("This should not pass correctly"),
%% list comprehension, because they are cool in Erlang
Comprehended = [ N bsl 4 || N <- List, N =/= 1 ],
@jamesduncombe
jamesduncombe / jpeg_smash.rb
Created July 1, 2014 20:47
JPEG Smash but in Ruby...
#!/usr/bin/env ruby
require 'optparse'
options = {}
# Markers
JPEG_START = 'ffda'
JPEG_END = 'ffd9'
OptionParser.new do |opts|
@jamesduncombe
jamesduncombe / erb2slim.sh
Last active August 29, 2015 14:03
ERB to Slim command
gem install html2haml && gem install haml2slim
# then... convert and remove original erb files:
find ./app/views -name '*.erb' | xargs -I file sh -c \
'html2haml --erb file | haml2slim > $(echo file | sed 's/erb/slim/') && \
rm file'