Instantly share code, notes, and snippets.

// is called by google docs when a document is open
// adds a menu with a menu item that applies a style to the currently selected text
function onOpen() {
.addItem('Apply code style', 'applyCodeStyle')
var backgroundColor = "#DDDDDD";
View prototype session
$ node
> class A{ constructor(){ console.log('A normal super class'); } }
> class B extends A{}
> new B
A normal super class
B {}
> sinon = require('sinon')
# Usage example: ./ stubs 4.1.1
# Will open from 4.1.1 for editing and propagate the changes to later versions.
# Make sure you have SINON_HOME pointing to the repository root.
# You'll need git and the npm "semver" package installed (npm i -g semver)
cd $SINON_HOME/docs
View Sinon doc

Create an article on how ES2015 classes relate to stubbing/spying

Show how to stub ES6 constructor #1265 What: Feature request to automatically call stubbed/spied constructors with new. Why: Often asked for. People get confused about Function#constructor and the constructor keyword. Should either make a small tutorial to document how to "stub" (make a new) constructor and/or introduce a small Sinon NPM plugin to do so (in the article).


Bug reporting

Extracted from the internal jira issue tracker to keep a smaller footprint on the bug template.

Before you report

  • Check if you can reproduce the bug on the latest deployment of the development branch.
  • Search the list of existing bugs to see if this has been already been reported.

Nice tips and tricks

View 2018-06-19-syslog_err.txt
Jun 19 17:20:46 e6330 wpa_supplicant[915]: wlp2s0: WPA: Group rekeying completed with ec:08:6b:ff:d3:bc [GTK=CCMP]
Jun 19 17:28:26 e6330 pulseaudio[31070]: W: [pulseaudio] sink-input.c: Failed to create sink input: sink is suspended.
Jun 19 17:28:41 e6330 NetworkManager[914]: <info> [1529422121.5642] manager: sleep: sleep requested (sleeping: no enabled: yes)
Jun 19 17:28:41 e6330 NetworkManager[914]: <info> [1529422121.5710] manager: NetworkManager state is now ASLEEP
Jun 19 17:28:41 e6330 gnome-shell[31045]: Screen lock is locked down, not locking
Jun 19 17:28:41 e6330 gnome-shell[31045]: Failed to set power save mode for output LVDS-1: Permission denied
Jun 19 17:28:41 e6330 NetworkManager[914]: <info> [1529422121.7631] device (wlp2s0): state change: activated -> deactivating (reason 'sleeping', sys-iface-state: 'managed')
Jun 19 17:28:41 e6330 NetworkManager[914]: <info> [1529422121.7950] device (wlp2s0): state change: deactivating -> disconnected (reason 'sleeping', sys-iface-state: 'managed')
Jun 1
View test-module-is-runnable.js
const puppeteer = require("puppeteer");
const http = require("http");
const fs = require("fs");
const port = 3876;
const scriptContent = `
import sinon from '/sinon-esm.js';
console.log('sinon is here', typeof sinon);

After failing to download any large files from HubiC using either the desktop or the web client, I decided to try clients using the REST API. The most mature one seems to be rclone, but even that (which supports retries) couldn't retrieve a given file after trying for more than 3 hours!

This is the last hours worth of logs from running rclone copy -vv Hubic:HubiC-DeskBackup_Pictures/Lightroom/Main.lrcat .

Elapsed time:     2h41m1s
 *                                    Main.lrcat: 40% done, 321.944 kBytes/s, ETA: 14m20s
View meny-svg-perf-bug.js
// the svg with id 'spinner' in the svg definitions causes a cpu
// load of approximately 24% constantly when monitored
// using Chrome Process Explorer (sorted on cpu usage), Shift-Esc
// some experiments on why this happens
const spinner = document.getElementById('spinner')
const defs = spinner.parentElement
const svg = defs.parentElement;
View debug-x-shortcut
## Debug what is capturing your keyboard shortcut
/bin/echo -e "\nSee\n"
KEY="$1" # the combination that was "grabbed"
xdotool keydown "${KEY}"; # start pressing the key combo
xdotool key XF86LogGrabInfo; # the keysym that when emitted asks X to print info on the grabber of the current keys
xdotool keyup "${KEY}" # stop pressing the key combo