Skip to content

Instantly share code, notes, and snippets.

View buren's full-sized avatar

Jacob Burenstam Linder buren

View GitHub Profile
Loading
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); };