Skip to content

Instantly share code, notes, and snippets.

View mrb's full-sized avatar
🍕
Helping companies market and sell more software

Michael Bernstein mrb

🍕
Helping companies market and sell more software
View GitHub Profile
module FizzBuzzC
%default total
-- Dependently typed FizzBuzz, constructively
-- A number is fizzy if it is evenly divisible by 3
data Fizzy : Nat -> Type where
ZeroFizzy : Fizzy 0
Fizz : Fizzy n -> Fizzy (3 + n)
@mrb
mrb / breadboard.clj
Last active August 29, 2015 13:57 — forked from jrecursive/gist:9668987
(create-circuit :test)
(create-channel :tweets)
(create-device :tweeter-1 as :tweeter
(filters ["ukraine" "russia" "putin" "news" "crimea"]))
(create-device :tweet-channel as :channeler
(channel :tweets))
(create-wire->
require 'formula'
class IcarusVerilog < Formula
homepage 'http://iverilog.icarus.com/'
url 'http://hivelocity.dl.sourceforge.net/project/iverilog/iverilog/0.9.6/verilog-0.9.6.tar.gz'
sha1 'd81f586b801a2d897ba8c35971d660b960220ed4'
head 'https://github.com/steveicarus/iverilog.git'
if build.head?
@mrb
mrb / pool.go
Last active December 17, 2015 15:19 — forked from rday/gist:3504674
Channels for Pool! Cool Idea
type InitFunction func() (interface{}, error)
type ConnectionPoolWrapper struct {
size int
conn chan interface{}
}
/**
Call the init function size times. If the init function fails during any call, then
the creation of the pool is considered a failure.
(defn sumo
([l n] (sumo l 0 n))
([l acc n]
(matche [l]
([[]] (fd/== acc n))
([[x . r]]
(fresh [nacc]
(fd/in x (fd/interval 0 1))
(fd/+ acc x nacc)
(sumo r nacc n))))))
@mrb
mrb / fizzbuzz.rb
Created August 1, 2012 21:18 — forked from JEG2/fizzbuzz.rb
Writing FizzBuzz without modulus division
fizz = [nil, nil, "Fizz"].cycle.take(100)
buzz = [nil, nil, nil, nil, "Buzz"].cycle.take(100)
numbers = 1..100
numbers.zip(fizz, buzz) do |n, f, b|
fizzbuzz = [f, b].join
puts(fizzbuzz.empty? ? n : fizzbuzz)
end
@mrb
mrb / sexy_yoga_time.md
Created October 25, 2011 16:52
Sexy Yoga Time!

Yoga Time!

Madison Ruby Conf Stretches

In Chair

  1. extend one arm forward, flex hand up(like stop sign), use other hands to pull fingers back toward body. then flex hand down and pull fingers toward body. do both sides
# ruby 1.9 supports 4 ways to call a proc! ex: f =->n {[:hello, n]}; f[:ruby]; f.call(:ruby); f.(:ruby)
#
# turns out, you can also call a proc via proc === :arg -- which means you can use proc's in when clauses!
# ruby doc: http://ruby-doc.org/ruby-1.9/classes/Proc.html#M001165
#
# ... kudos to @chadfowler for the tip!
#
# (note: works on 1.8.7 as well :-))
def am_i_awesome?
@mrb
mrb / lol
Created September 3, 2010 01:24 — forked from quirkey/lol
#!/usr/bin/env ruby
require 'open-uri'
category = ARGV[0] || 'fail'
url = "http://api.cheezburger.com/xml/category/#{category}/lol/random"
open(url) do |f|
xml = f.read
if xml =~ /LolImageUrl\>([^\<]*)/m
@mrb
mrb / searchable.rb
Created August 23, 2010 18:15 — forked from quirkey/snippet.txt
module Searchable
def self.searchable_fields
[]
end
def self.included(klass)
klass.named_scope :by_search, lambda {|q, options|
if q.present?
search_text = [klass.searchable_fields].flatten.collect {|f|