Combine default parameters and destructuring for a compact version of the defaults / overrides pattern.
function foo ({
bar = 'no',
baz = 'works!'
} = {}) {| import express from "express"; | |
| /** | |
| * Takes a route handling function and returns a function | |
| * that wraps it after first checking that the strings in | |
| * `reserved` are not part of `req.body`. Used for ensuring | |
| * create and update requests do not overwrite server-generated | |
| * values. | |
| */ | |
| function checkReservedParams(routeHandler, ...reserved) { |
| 'use strict'; | |
| const statusCodes = require('http').STATUS_CODES; | |
| function createError(code, name) { | |
| return function(message) { | |
| Error.captureStackTrace(this, this.constructor); | |
| this.name = name; | |
| this.message = message; | |
| this.statusCode = code; | |
| } |
| function delay(expressionAsFunction) { | |
| var result; | |
| var isEvaluated = false; | |
| return function () { | |
| if (!isEvaluated) | |
| result = expressionAsFunction(); | |
| return result; | |
| }; | |
| } |
| var util = require('util') | |
| function hook_stdout(callback) { | |
| var old_write = process.stdout.write | |
| process.stdout.write = (function(write) { | |
| return function(string, encoding, fd) { | |
| write.apply(process.stdout, arguments) | |
| callback(string, encoding, fd) | |
| } |
| // reverse proxy (HTTP(s) to LWM2M over MQTT) | |
| // this should be mounted on an Express app | |
| const router = require('express').Router() | |
| const shepherd = require('lib/shepherd'); | |
| const ch = require('lib/status'); // coap to http status | |
| const herrero = require('herrero'); | |
| const bodyParser = require('body-parser') | |
| const { NotFoundError } = herrero; |
| const parseAttributes = payload => payload | |
| .split(',') | |
| .map(pair => pair.split('=')) | |
| .filter(pair => pair.length === 2) | |
| .map(([key,val]) => ({ [key]: val })) | |
| // > parseAttributes('pmin=5,pmax=40') | |
| // [ { pmin: '5' }, { pmax: '40' } ] |
| # -*- coding: utf-8 -*- | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| import scipy.integrate as integrate | |
| # Dimension of image in pixels | |
| N = 256 | |
| # Number of samples to use for integration | |
| M = 32 |
L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns
Compress 1K bytes with Zippy ............. 3,000 ns = 3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 µs
SSD random read ........................ 150,000 ns = 150 µs
Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs
| -- randomized quick sort with 3-way partition | |
| module QuickSort (quicksort) where | |
| import Data.Array.ST | |
| import Control.Monad | |
| import Control.Monad.ST | |
| import System.Random | |
| type QA s = STUArray s Int Int | |
| swap :: Int -> Int -> QA s -> ST s () |