Skip to content

Instantly share code, notes, and snippets.

View subelsky's full-sized avatar
🧘‍♂️

Mike Subelsky subelsky

🧘‍♂️
View GitHub Profile
@subelsky
subelsky / contracts...FleetwoodToken.sol
Created April 1, 2022 21:50
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
pragma solidity ^0.8.7;
// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
//
// ----------------------------------------------------------------------------
abstract contract ERC20Interface {
function totalSupply() virtual public view returns (uint);
function balanceOf(address tokenOwner) virtual public view returns (uint balance);
@subelsky
subelsky / .railsrc
Last active May 3, 2017 17:31
How to make activerecord log SQL to the console
# makes Rails logs appear in the console, useful for seeing the actual SQL query generated from an AR find for example
# put this in ~/.railsrc
require 'logger'
Rails.logger = Logger.new STDOUT
# There's not much documentation about nifi's JRuby API but it closely follows
# what the python API looks like:
# see http://funnifi.blogspot.com/2016/02/executescript-processor-hello-world.html
flow_file = session.get()
updated_flow_file = session.putAttribute(flow_file,"my-attribute","my-value")
session.transfer(updated_flow_file,REL_SUCCESS)
@subelsky
subelsky / rspec_template.rb
Created August 30, 2016 14:14
RSpec Template explaining basic test setup
# There should usually be one and only one require statement at the top of a spec, explicitly loading
# the only class this test relates to. That file should include any additional dependencies needed
# by the class (activesupport, nokogiri, etc.)
require "widget"
# Let's pretend we are testing a class called Widget that has only one method, .call (and in fact,
# almost all of our classes should be so simple they just have one method).
#
# class Widget
# # If you allow dependencies to be injected into your class, it's much easier to test and
@subelsky
subelsky / simple_ruby_test.rb
Last active August 30, 2016 14:03
Really simple Ruby test example
class Adder
def add(a,b)
a + b
end
end
if __FILE__ == $0
adder = Adder.new
result = adder.add(1,2)
@subelsky
subelsky / ultisnips_yard.snippets
Last active August 26, 2016 12:40
Vim UltiSnips snippet for adding Ruby YARD tags to a method
# We document all of our Ruby code with YARD tags; see http://www.rubydoc.info/gems/yard/file/docs/Tags.md
# This snippet helps add all of the common tags to a method that I use everyday.
# The format is used by the UltiSnips Vim plugin; see https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
snippet yd "YARD tags"
# ${1:Method description}
# @param ${2:obj} [${3:Object}] ${4:description}
# ${0} @yield
# @yieldparam obj [Object]
@subelsky
subelsky / threading_and_forking.rb
Last active June 17, 2020 14:34
Ruby Threading & Forking Demo
#!/usr/bin/env ruby
# STAQ threading & forking training 4/26/16
#
# Invoke like so:
#
# ruby forking_and_threading.rb
# ruby forking_and_threading.rb thread
# ruby forking_and_threading.rb naive # seems to work OK
# env RBENV_VERSION=jruby-9.0.4.0 ruby ./forking_and_threading.rb naive # why does this give different results?
#
# This is how I'd use threads in rspec to test whether a shared state primitive works as expected
#(pessimistic database lock,advisory database lock, mutex, etc.)
around do |example|
die = false
lock_taker = Thread.new do
code_that_takes a lock do
loop do
break if die
sleep 0.1 # not strictly necessary but slows CPU churn
# no need to require anything
module DateTimeFormatFunctions
def quarter
((month - 1) / 3) + 1
end
def strftime(format=nil)
super(format.to_s.tap.gsub!('%Q',quarter.to_s)
end
@subelsky
subelsky / keybase.md
Created October 11, 2014 18:46
Keybase identity assertion

Keybase proof

I hereby claim:

  • I am subelsky on github.
  • I am subelsky (https://keybase.io/subelsky) on keybase.
  • I have a public key whose fingerprint is 5DFB 121D 24D8 CA6C 0F2C B51A 3D25 9BC3 602E CC74

To claim this, I am signing this object: