Skip to content

Instantly share code, notes, and snippets.

View renato-zannon's full-sized avatar

Renato Zannon renato-zannon

View GitHub Profile
@renato-zannon
renato-zannon / results
Created June 5, 2014 22:11
Rust: Semaphores vs channels
running 2 tests
test with_channels ... bench: 876410 ns/iter (+/- 655463)
test with_semaphores ... bench: 513476 ns/iter (+/- 711503)
test result: ok. 0 passed; 0 failed; 0 ignored; 2 measured

Keybase proof

I hereby claim:

  • I am renato-zannon on github.
  • I am renato_zannon (https://keybase.io/renato_zannon) on keybase.
  • I have a public key whose fingerprint is 723E BFA3 0EBE 26C6 4310 5364 6C26 8AF6 75E7 D62E

To claim this, I am signing this object:

@renato-zannon
renato-zannon / named_dynamic_methods.rb
Created September 20, 2011 13:53
A simple practice to help your fellow workers navigate your dynamic ruby code
# It's common, while creating a bunch of very similar methods, to create
# a loop to define them all at once. (Very simple) example follows:
week_days = %w[sunday monday tuesday wednesday thursday friday saturday]
week_days.each do |day|
define_method("events_on_#{day}") do
events.select { |event| event.day == day }
end
end
@renato-zannon
renato-zannon / gist:1290010
Created October 15, 2011 19:14
Inject alternate implementation
module Inject
class Injector
def self.inject(*args, &block)
options = args.last.kind_of?(Hash) ? args.pop : {}
target = options[:receiver] || block.binding.eval("self")
modules = args
modules.each { |mod| mod.before_inject(target) if mod.respond_to?(:before_inject)}
return_value = new(modules).inject_into(target, &block)
import Control.Monad
data Tree a = EmptyTree | Node a (Tree a) (Tree a)
(<<) EmptyTree value = Node value EmptyTree EmptyTree
(<<) (Node value left right) newValue = if newValue < value
then Node value (left << newValue) right
else Node value left (right << newValue)
toArray EmptyTree = []
@renato-zannon
renato-zannon / xmonad-unity.desktop
Created January 13, 2012 13:18
Unity Panel + XMonad config
# /usr/share/xsessions/xmonad-unity.desktop
[Desktop Entry]
Encoding=UTF-8
Name=XMonad/Unity
Comment=Xmonad+Unity
Exec=gnome-session --session=xmonad_unity
Icon=xmonad.png
Type=Application
@renato-zannon
renato-zannon / user.rb
Created June 9, 2012 05:33
Strategy pattern to follow users
class User < Struct.new(:username, :private)
alias_method :private?, :private
def follow
follow_strategy.call
end
private
def follow_strategy
# Depends on gems eventmachine, em-http-request,
# and em-resolv-replace (for # async DNS)
require 'eventmachine'
require 'em-http'
require 'fiber'
require 'em-resolv-replace'
def make_request_to(url)
connection = EventMachine::HttpRequest.new(url)
require 'nokogiri'
require 'rspec'
describe "nth-child" do
let(:doc) do
Nokogiri::HTML(<<-HTML)
<html>
<body>
<p id="first"></p>
<p id="second"></p>
@renato-zannon
renato-zannon / module.rb
Created September 4, 2012 04:07
Subclass module + use module_eval to define methods
class AttributeAccessor < Module
def initialize(name)
@name = name
module_eval { define_accessors }
end
private
def define_accessors
ivar = "@#{@name}"