Skip to content

Instantly share code, notes, and snippets.

View fl0w's full-sized avatar
🎉
50% hackin', 50% slackin'

Martin Iwanowski fl0w

🎉
50% hackin', 50% slackin'
  • Sweden, Stockholm
View GitHub Profile
'use strict'
// const v8 = require('v8-natives')
const Benchmark = require('benchmark')
const suite = new Benchmark.Suite()
const MixinOne = (Base) => class extends Base {}
const MixinTwo = (Base) => class extends Base {}
const MixinThree = (Base) => class extends Base {}
const MixinFour = (Base) => class extends Base {}
'use strict'
// const v8 = require('v8-natives')
const Benchmark = require('benchmark')
const suite = new Benchmark.Suite()
const MixinOne = (base) => class extends base {}
const MixinTwo = (base) => class extends base {}
const MixinThree = (base) => class extends base {}
const MixinFour = (base) => class extends base {}
@fl0w
fl0w / README.md
Created May 28, 2017 23:54 — forked from subfuzion/README.md
vim/neovim configuration

I recently switched over to neovim (see my screenshots at the bottom). Below is my updated config file.

It's currently synchronized with my .vimrc config except for a block of neovim-specific terminal key mappings.

This is still a work in progress (everyone's own config is always a labor of love), but I'm already extremely pleased with how well this is working for me with neovim. While terminal mode isn't enough to make me stop using tmux, it is quite good and I like having it since it simplifies my documentation workflow for yanking terminal output to paste in a markdown buffer.

These days I primarily develop in Go. I'm super thrilled and grateful for fatih/vim-go,

@fl0w
fl0w / install-nvm.sh
Last active June 6, 2017 20:24
nvm install
touch ~/.bash_profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
class BaseQueryBuilder extends objection.QueryBuilder {
distinctOn (columns, tableStar = `${this.modelClass().tableName}.*`) {
columns = asArray(columns)
const identifiers = columns.map(() => '??').join(', ')
columns = columns.map(column => {
return column.split('.').length === 1
? `${this.modelClass().tableName}.${column}`
: column
@fl0w
fl0w / purge-atom.sh
Created December 18, 2015 10:22
Purge atom from Mac OS X
# completely remove atom on mac os x
rm -r ~/.atom
rm -r /usr/local/bin/atom
rm -r /usr/local/bin/apm
rm -r /Applications/Atom.app
rm -r ~/Library/Preferences/com.github.atom.plist
rm -r ~/Library/Application\ Support/com.github.atom.ShipIt
rm -r ~/Library/Application\ Support/Atom
rm -r ~/Library/Saved\ Application\ State/com.github.atom.savedState
@fl0w
fl0w / bookshelf-registry-collection.js
Created May 6, 2018 09:12
The correct way to define custom bookshelf Collections with registry plugin
const bookshelf = require('bookshelf')
class Users extends bookshelf.Collection {
get model () {
return User
}
}
class User extends bookshelf.Model {
static collection (...args) {
@fl0w
fl0w / bookshelf.collection.cascade.destroy.js
Created May 24, 2018 03:53
naive collection cascade destroy
async destroy (options = {}) {
const destroyed = this.clone().reset()
destroyed._events = this._events // Copy referens to events
if (!this.length) return destroyed
await destroyed.triggerThen('destroying', this, options)
for (const model of this) {
await model.destroy(options)
destroyed.add(model)
@fl0w
fl0w / koa-router-expand.js
Created August 24, 2018 07:59
Adds Router.expand which accepts and expands Router instances for Router.use.
'use strict'
const { flatten } = require('lodash')
const Router = require('koa-router')
/**
* Adds Router.expand which accepts and expands Router instances for Router.use.
* @returns this
*/
Router.prototype.expand = function (...args) {
@fl0w
fl0w / modifiers.js
Last active October 29, 2018 10:38
Test modifiers
'use strict'
const Knex = require('knex')
const objection = require('objection')
const knex = new Knex({
client: 'pg',
connection: { database: 'fl0w', user: 'fl0w' }
})
objection.Model.knex(knex)