Skip to content

Instantly share code, notes, and snippets.

@lagondo
lagondo / index.js
Created June 4, 2018 15:26
Sort emails by domain
const email = require("email-addresses")
const getStdin = require('get-stdin')
const R = require('ramda')
getStdin().then(str => {
const lines = str.split('\n')
const sortedLines = R.sortBy(l => email.parseOneAddress(l).parts.domain.tokens, lines)
R.forEach(l => console.log(l), sortedLines)
})
@lagondo
lagondo / api.md
Last active May 22, 2018 06:48
Houm 3.0 API

The terse introduction to Houm 3.0 API

The examples are illustrated using the following command-line tools:


@lagondo
lagondo / index.js
Created February 12, 2016 19:59
Random walk gaussian
const R = require('ramda')
const plot = require('plotter').plot
const randomBoolean = () => Math.random() > 0.5
const randomOneOrMinusOne = () => randomBoolean() ? 1 : -1
const randomWalk = (length) => R.times(randomOneOrMinusOne, 100)
const randomWalkEnd = (length) => R.sum(randomWalk(length))
const manyRandomWalks = R.times(() => randomWalkEnd(100), 1000000)
const distribution = R.countBy(R.identity, manyRandomWalks)
const values = R.map((x) => distribution[x], R.range(-100, 100))
@lagondo
lagondo / client.js
Created January 2, 2016 16:59
redis rpc server client node.js
const ioredis = require('ioredis')
const uuid = require('node-uuid')
const redis = new ioredis()
const request = {
id: uuid.v1(),
utterance: 'kuppi kahvia'
}
@lagondo
lagondo / gist:8bd0775435d483c4d9e2
Created September 20, 2015 15:16
stdin readline and close
#!/usr/bin/env node
var readline = require('readline')
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(line) {
@lagondo
lagondo / gist:995ed4e0538b1cef03c0
Last active August 29, 2015 14:15
Purescript for the impatient

Assuming you have cabal:

$ cabal install Cabal cabal-install
$ cabal update
$ cabal install purescript
$ npm install -g pulp
$ mkdir handjobs
$ cd handjobs
$ pulp init

$ pulp run -w

@lagondo
lagondo / gist:fffb59c6546018c39ae7
Created December 12, 2014 12:57
Bacon.js character stream to lines
Bacon = require 'baconjs'
random = require 'node-random'
alphabet = "-abcdef".split('')
toCharacter = (i) -> alphabet[i]
isSeparator = (x) -> x is alphabet[0]
isntSeparator = (x) -> ! isSeparator x
concat = (acc, v) -> acc + v
randomIndex = -> Bacon.fromNodeCallback random.integers, { minimum: 0, maximum: alphabet.length - 1 }
@lagondo
lagondo / gist:ed212c4153bc1a19b676
Created December 5, 2014 18:14
Using Dymo LabelWriter 450 Turbo from CLI
Install drivers from http://www.dymo.com/en-US/dymo-user-guides
Plug the dymo into your USB port.
# Show printers
$ lpstat -p
printer DYMO_LabelWriter_450_Turbo is idle. enabled since Fri Dec 5 20:04:19 2014
Ready to print.
# Set Dymo as default printer
$ lpoptions -d DYMO_LabelWriter_450_Turbo
@lagondo
lagondo / gist:40b6cb07a966e8f3c007
Last active April 14, 2018 12:23
How to mount Raspberry Pi SD card to OS X
Install http://sourceforge.net/projects/osxfuse
System Preferences ->
Security & Privacy ->
General ->
Allow apps downloaded from: Anywhere
Install http://sourceforge.net/projects/fuse-ext2
Open /System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util in your text editor.
@lagondo
lagondo / transitionbetweenscenes.coffee
Created October 7, 2014 21:31
Transition between two scenes using Houm.io API
# Script for transitioning between two scenes: config.fromSceneId to config.toSceneId.
# Note: both scenes must have exactly the same lights.
# Set your own configuration in config object.
_ = require('lodash')
Bacon = require('baconjs').Bacon
moment = require('moment')
request = require('request')
WebSocket = require('ws')