Skip to content

Instantly share code, notes, and snippets.

View nicoolas25's full-sized avatar

Nicolas Zermati nicoolas25

View GitHub Profile
@nicoolas25
nicoolas25 / new_job_article.md
Last active August 29, 2015 14:07
Nouvel emploi

Nouvel emploi

Cet été je quittais une petite société de service de moins de 10 personnes pour rejoindre un éditeur qui compte une petite trentaine de personnes. Il y a deux semaines, je prenais mon poste et voici brièvement un petit bilan de ces premiers pas.

La structure

Avant tout, il faut savoir que mon ancien poste et mon nouveau poste ne sont

@nicoolas25
nicoolas25 / equiset.rb
Last active August 29, 2015 14:07
A small class that allows to loop over a changing set of values
require 'set'
require 'thread'
# A thread safe pool of values that can change.
class EquiSet
def initialize
@sorted_set = SortedSet.new
@mutex = Monitor.new
end
@nicoolas25
nicoolas25 / example.rb
Last active August 29, 2015 14:07
Monkey patch to save queries with keen.io
Keen.save_query('message_by_weekday', {
analysis_type: 'count',
event_collection: 'message_received',
group_by: 'time.wday',
})
@nicoolas25
nicoolas25 / loadable_model.rb
Created June 28, 2015 12:53
Custom relation with caching and preloading (ActiveRecord)
require "active_support/concern"
require "loadable/relation"
module Loadable
module Model extend ActiveSupport::Concern
module ClassMethods
def loadable(name, options)
loadable_relations[name] = build_relation(name, options)
define_reader(name)
module ForkedSpecs
def forked_specs(*specs)
ActiveRecord::Base.clear_all_connections!
pids = []
specs.each do |spec|
pids << fork do
ActiveRecord::Base.establish_connection
spec.call
end