Skip to content

Instantly share code, notes, and snippets.

View buren's full-sized avatar

Jacob Burenstam Linder buren

View GitHub Profile
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@buren
buren / first_time_job_performers.sql
Created March 7, 2017 23:04
Total first time job performers between dates
-- First time job performers between dates
SELECT user_performed_in_range.user_id FROM (
SELECT
users.id as user_id,
COUNT(users.id) as user_performed_jobs_count
FROM "jobs"
INNER JOIN job_users on job_users.job_id = jobs.id AND job_users.will_perform = true
INNER JOIN users on job_users.user_id = users.id
WHERE (job_end_date >= {start_time} AND job_end_date <= {end_time})
AND cancelled = false
@buren
buren / skills-sql-foo.sql
Created February 7, 2017 13:56
Map user skills to rule the world
SELECT "users"."id", "users"."email",
"user_skills1"."skill_id", "user_skills1"."proficiency", "user_skills1"."proficiency_by_admin",
"user_skills2"."skill_id", "user_skills2"."proficiency", "user_skills2"."proficiency_by_admin"
FROM "users"
INNER JOIN "user_skills" as user_skills1 ON "user_skills1"."user_id" = "users"."id" AND (user_skills1.skill_id = 1 AND (user_skills1.proficiency >= 3 OR user_skills1.proficiency_by_admin >= 3))
INNER JOIN "user_skills" as user_skills2 ON "user_skills2"."user_id" = "users"."id" AND (user_skills2.skill_id = 26 AND user_skills2.proficiency_by_admin >= 1)
@buren
buren / gem_inline_install.rb
Created August 7, 2016 22:53
Install gems on demand, in scripts, using Bundler inline.
require 'bundler/inline'
gemfile(true) do # `true` means install on demand
source 'https://rubygems.org'
gem 'sinatra'
end
@buren
buren / gem_irb_session.rb
Created June 23, 2016 07:37
Start a IRB session with a gem loaded
# From http://erniemiller.org/2014/02/05/7-lines-every-gems-rakefile-should-have/
task :console do
require 'irb'
require 'irb/completion'
require 'my_gem'
ARGV.clear
IRB.start
end
@buren
buren / a-jsonapi-datastore.js
Last active March 29, 2016 16:10
Example jsonapi-datastore usage
var fs = require('fs')
var JsonApiDataStore = require('jsonapi-datastore').JsonApiDataStore;
function readExampleToObject(fileName, callback) {
fs.readFile(fileName, 'utf8', function (err, data) {
if (err) {
return console.log(err);
}
return callback(JSON.parse(data));
});
@buren
buren / language_wikimedia.js
Created March 23, 2016 17:29
and convert languages from Wikimedia to CSV
// Extract and convert languages @ below URL to CSV
// https://meta.wikimedia.org/wiki/Template:List_of_language_names_ordered_by_code
var langCode = [];
$('.wikitable tbody tr td:nth-child(1)').each(function(){
langCode.push($(this).text());
});
var enName = [];
$('.wikitable tbody tr td:nth-child(2)').each(function(){

Keybase proof

I hereby claim:

  • I am buren on github.
  • I am buren (https://keybase.io/buren) on keybase.
  • I have a public key whose fingerprint is A7ED 5FE6 79AA 414B 405F E637 CCC5 6E36 265C 2FB3

To claim this, I am signing this object:

@buren
buren / minispec.rb
Created October 19, 2015 04:24
rspec-like specs, using ruby procs
def describe(label)
fails = []
it = ->(it_label, &block) {
assert = ->(expected, result) {
passed = ->() { print '.' }
failed = ->() {
print 'F'
fails << "#{label} #{it_label}, expected '#{expected}', but was '#{result}'."
}
expected == result ? passed.() : failed.()
@buren
buren / minispec.js
Last active October 19, 2015 04:21
Minimal JS test DSL
function describe(label, testFunction) {
return new test(label, testFunction);
}
function test(label, testFunction) {
var self = this;
self.testLabel = label;
self.itLabel;
var label = function() { return self.testLabel + ' ' + self.itLabel; };
var passed = function() { console.log(label(), true); };