Skip to content

Instantly share code, notes, and snippets.

@pullmonkey
pullmonkey / gist:3188719
Created July 27, 2012 15:36
Using the magtek class in Ruby
require File.dirname(__FILE__) + '/magtek.rb'
require 'logger'
require 'rubygems'
require 'httpi'
require 'curb'
Process.daemon
logger = Logger.new("/var/log/monitor_usb.log")
logger.level = Logger::INFO
@pullmonkey
pullmonkey / gist:3188668
Created July 27, 2012 15:28
USB MagTek Card Reader in Ruby
require 'rubygems'
require 'usb' # this is the ruby-usb gem, I'm also using libusb 1.0 and linux
require 'logger'
class MagTek
def initialize
@device = find_device
interface = @device.interfaces.first
@endpoint = interface.endpoints.first
@logger = Logger.new("/var/log/monitor_usb.log")
@pullmonkey
pullmonkey / gist:3183134
Created July 26, 2012 16:42
topaz signature pad java code
import java.awt.image.BufferedImage;
import java.beans.Beans;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import com.sun.image.codec.jpeg.JPEGCodec;
@pullmonkey
pullmonkey / gist:3179054
Created July 25, 2012 22:18
httpi with curb (spnego and multipart file upload)
require 'rubygems'
require 'httpi'
require 'curb'
# at some point before the request is made you'll need a kerberos ticket
# i.e., kinit -k -t ticket_path
image_path = "/tmp/some_image.jpg"
url = URI.escape("https://some_ssl_spnego_url.com/upload_file_here")
@pullmonkey
pullmonkey / gist:2502027
Created April 26, 2012 19:03
Spreadsheet gem add header to every page
module Spreadsheet
module Excel
module Writer
class Worksheet
alias_method :write_from_scratch_without_header, :write_from_scratch
def write_header
write_op opcode(:header), [@worksheet.header.bytesize, 0].pack("vC"), @worksheet.header
end
def write_from_scratch
write_header
@pullmonkey
pullmonkey / euler_problem_14.rb
Created March 9, 2012 21:23
euler_problem_14
$chain_lengths = {:largest_num => 0, :largest_chain => 0, 1 => 1, 2 => 2}
def get_chain_length_for(n)
return $chain_lengths[n] if $chain_lengths.has_key?(n)
next_n = 3 * n + 1 if n.odd?
next_n = n / 2 if n.even?
return ($chain_lengths[next_n] = get_chain_length_for(next_n)) + 1
end
(2..999999).each do |x|
@pullmonkey
pullmonkey / gist:1371377
Created November 16, 2011 21:01
formgen sample fields_for2
<div class="fields">
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :image %>
<%= f.file_field :image %>
</div>
</div>
@pullmonkey
pullmonkey / gist:1371375
Created November 16, 2011 21:00
formgen sample fields_for1
<div class="fields">
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :bar %>
<%= f.text_field :bar %>
</div>
<%= link_to_remove_fields "remove", f %>
@pullmonkey
pullmonkey / gist:1371372
Created November 16, 2011 20:59
formgen sample form
<%= form_for setup_foo(@foo), :html => { :multipart => true } do |f| %>
<% if @foo.errors.any? %>
<div id="errorExplanation">
<h2><%= pluralize(@foo.errors.count, "error") %> prohibited this foo from being saved:</h2>
<ul>
<% @foo.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
@pullmonkey
pullmonkey / gist:1371367
Created November 16, 2011 20:58
formgen_sample_edit
<h1>Editing foo</h1>
<%= render 'form' %>
<%= link_to 'back', :back %>