View gulpfile.js
var gt = require('through-gulp');
.pipe(gt(function visitFile(file, enc, cb) {
console.log("file '" + file.path + "' contents: " + file.contents.toString());
cb(null, file);
}, function visitEnd(cb) {
console.log("No more files");

Logitech TrackMan Marble FX scroll wheel patch for the Linux kernel

This patch alters the usbmouse kernel driver to support a "scroll wheel mode" using the fourth button (the red button) when connected through a "ID 04d9:1400 Holtek Semiconductor, Inc. PS/2 keyboard + mouse controller" usb-to-ps2 adapter. No idea how things work with other adapters.

It seems the fourth button generates events, but the state of the button is not represented in any bits (at least by said usb-to-ps2 adapter).

However since "no buttons pressed" is only ever reported when releasing a single button being pressed, detecting multiple "no buttons pressed" events can be used to identify usage of the fourth button.

View acme-conf.json
"acme": {
"certstorePath": "/etc/certs/",
"accounts": [
"id": "nitor-srv01",
"provider": "acme://",
"acceptedAgreement": "",
"certificates": [
"id": "conflu",
import io.vertx.core.Vertx;
public class DynamicCertOptions implements KeyCertOptions {

irssi keybindings for switching between up to 999 windows

Use these keybindings to access up to 999 windows using at most 4 keys:

alt-0 .. alt-9 -> windows 0..9 (standard keybindings)
alt-q 0 .. alt-q 9 -> windows 10..19
alt-w 0 .. alt-w 9 -> windows 20..29
alt-p 0 .. alt-p 9 -> windows 90..99
alt-a 0 0 .. alt-a 0 9 -> windows 100..109

Keybase proof

I hereby claim:

  • I am xkr47 on github.
  • I am xkr47 ( on keybase.
  • I have a public key ASAdU_1qct6ysfYXrUMHiqUK2K56kgS3YnExyhUfI1cYHgo

To claim this, I am signing this object:


I wanted to create a Swing app in Ceylon and figured I'd give using the UI designer a shot. Here are the necessary steps to get it to work:


Change IDEA settings

  • From the menu: File -> Settings
  • Navigate to Editor / GUI designer
  • Make sure "Generate GUI into:" has Java source code selected
  • Change "Default accessibility for UI-bound fields:" is something else than "private", for example package-private
  • Click OK to save
View gulp-plumber-remedy.js
var gulp = require('gulp');
var util = require('gulp-util');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var through2 = require('through2');
var plumber = require('gulp-plumber');
var errs = 0;
gulp.task('default', function () {

git tweak-index

This git add-on command lets you tweak/edit files in the index/stage directly without touching the checked out working copy.

  • Use case 1: So you accidentally git-added some changes that you didn't want to merge just yet and would like to partially undo?
  • Use case 2: You want to make a quick commit to some file(s) but keep the checked out version(s) as-is?
  • Use case 3: You have been trying to use git reset -p but failed spectacularly?
  • Use case 4: You want to stage something that is not an interpolation of the checked out and the committed version?