Posts by Year

2017

Freewrite

3 minute read

Today I've unwrapped an Austrohaus Freewrite. Half a year ago I was feeling a bit overworked. I'm privileged in that I love my work a lot - so much that if I...

2016

The Universal Makefile for JavaScript

8 minute read

TL;DR The world is moving from Gulp and Grunt towards npm scripts. This seems like a place we could stay for a long time. But there's one shortcoming with...

2015

Introducing Airbud

3 minute read

Retrieving stuff from the web is unreliable. Airbud adds retries for production, and fixture support for test.

Watch Your Language (Automatically)

8 minute read

I was writing internal documentation on how I set up automated language checking at Transloadit. Halfway through, I thought this could be useful to the rest ...

tus 1.0-prerelease

3 minute read

It's been a while since I've mentioned tus, but there have been some cool developments so we'd like to refresh your memory.

2014

Introducing Ratestate

3 minute read

Ratestate is a ratelimiter in the form of a Node.js module that can transmit states of different entities while avoiding transmitting the same state twice, a...

Introducing Environmental

6 minute read

Some people feel that shipping .json / .yml / .xml config files is an upgrade over using archaic environment variables.

Git Hour Tracking

1 minute read

Recently I was asked to estimate how many hours I worked on a project. Since I hadn't really tracked them I decided to use the Git history to get an indicati...

Fixing Heartbleed

2 minute read

Four days ago the news about the Heartbleed got every sysadmin's attention. Renowned security expert Bruce Schneier writes:

2013

Make Your MySQL Tables Strict

1 minute read

When you're upgrading to MySQL 5.6 you may notice strict mode is turned on by default. You can disable it, but now might be a good time to get your schemas s...

File Uploading Without a Server

2 minute read

More and more sites are written in flat HTML. Hosted on GitHub pages, S3, etc. The advantages are clear: ridiculously low to no hosting costs, it can hardly ...

Prefix Streaming stdout & stderr in Go

4 minute read

If you are writing code in Go and are executing a lot of (remote) commands, you may want to indent all of their output, prefix the loglines with hostnames, o...

Loosely Typed Code Deserves Triple Equality

1 minute read

In loosely typed languages such as JavaScript or PHP, using == to compare values is bad practice because it doesn't account for type, hence false == 0 == '' ...

Scrape All Text From a Domain

1 minute read

Here are some commands to download the most important pages of your site as plain text (determined by MAX_DEPTH), and save it into one big <DOMAIN>.txt...

Migrate Redis Keys Without RDB Files

1 minute read

Recently we moved the Transloadit status page from an unmanaged EC2 instance to the Nodejitsu platform. We kept status uptime history in redis, and obviously...

Let's Make DNS Outage Suck Less

2 minute read

Unfortunately the Linux DNS resolver has no direct support for detecting and doing failovers for DNS servers. It keeps feeding requests to your primary resol...

OSX Productivity: Dropbox Your Screenshots

2 minute read

I often share screens with co-workers by Campfire, Github, or mail. Visualizing something can save you a lot of typing. Show people what button shade doesn't...

Too Many Authentication Failures for Root

1 minute read

I recently had an annoying encounter with the error message: Too many authentication failures for root. I found out this can be caused because you've hoarded...

2012

Lock Your Cronjobs, Enjoy Your Sleep

3 minute read

If you use EC2 you may have heard of Tim Kay's aws commandline tool. It provides access to most of Amazon's API and is less cumbersome than Amazon's own CLI ...

Highlevel Testing With CasperJS

5 minute read

If you've written a webapp and you want to ensure that critical parts such as the signup process stay working, the best would be to have an actual user go th...

Reverse a Multibyte String in PHP

1 minute read

PHP's strrev is not safe to use on utf-8 strings because it reverses a string one byte at a time. So if a character consists of multiple bytes it cannot be p...

2011

Revisiting Spaces and Tabs

5 minute read

This article in 50 words: I used to prefer spaces vs tabs, now I don't care so much, think it's more important that you can easily switch on a per-project ba...

Optimize Your Synology NAS for Downloading

10 minute read

I recently bought a NAS so my data is safe & available, with the benefit of being low power / noise / heat. I've considered Netgear, QNAP, but decided to...

2010

Sync Vim Config Across Workspaces

1 minute read

As a Vim newbie, I'd like my Vim plugins & configuration to stay in sync between machines at home, office, my servers & a laptop.

Learning Vim

3 minute read

In an attempt to familiarize myself with the unfamiliar, I decided to build a fun side-project in Ruby and Vim. Effectively learning a new language, framewor...

Running Ruby on Rails on Nginx

3 minute read

If you want to set up Ruby on Rails on Ubuntu Lucid from scratch, there are quite some articles online to choose from. I found most of them involve compiling...

HAProxy Logging in Ubuntu Lucid

2 minute read

At Transloadit we use HAProxy "The Reliable, High Performance TCP/HTTP Load Balancer" so that we can offer different services on 1 port.

Notes on Dutch PHP Conference 2010

8 minute read

Here the notes I took during the Dutch PHP conference 2010 (#dpc10). They're not a representative summary of the event's highlights cause I could only attend...

Analyze HTTP Requests With TShark

1 minute read

When you're debugging a tough problem you sometimes need to analyze the HTTP traffic flowing between your machine and a webserver or proxy. Sometimes you can...

Convert All Tables to InnoDB

2 minute read

Some time ago I was in the situation where I was looking at 200 MyISAM tables screaming to get converted to InnoDB for performance reasons. You probably know...

Redis PHP Introduction

4 minute read

Don't know Redis? Think Memcache, with support for for lists, and disk-based storage. You can use Redis as a database, queue, cache server or all of those c...

Access MySQL Without Password

less than 1 minute read

If you want to do command-line MySQL administration like restoring databases or dumping statistics, you need the root account and it's password. Or do you?

CakePHP and Nginx

4 minute read

I still got sites running Apache, but all new projects are launched with Nginx. I don't need many of the features that Apache offers, and the speed gain of N...

CakePHP REST Plugin Presentation

1 minute read

At our company we have a lot of uses for a solid API. We can use it to distribute config files, have servers report in, let customers edit DNS records using ...

2009

Run Node.js as a Service on Ubuntu

3 minute read

The core of our new project runs on Node.js. With Node you can write very fast JavaScript programs serverside. It's pretty easy to install Node, code your pr...

Svn to Git

1 minute read

Today I've moved all of my SVN repositories over to GitHub. 5 private reps and 4 public ones. Two of which you may know: PHP.JS and System_Daemon.

Flush Memcached Using Bash

less than 1 minute read

If you store application data in memcache, you may want to invalidate it once you deploy a new version to avoid corruption or weird results. There are severa...

Prepare for PHP 5.3

4 minute read

PHP 5.3 is a big leap forward for PHP and brings of a lot of neat features. However, big leaps can also mean big changes and potentially big breakage when it...

Notes on CakeFest 3

4 minute read

Looking back at a great CakeFest in Berlin, I learned a lot about CakePHP and met many nice and inspiring people. Here are some conference notes I took that ...

Install the Best Coding Font

1 minute read

If you are in IT professionally (coding or sysadmin) you will be staring at monospaced fonts for many many hours a day. So it's probably justified to spend 2...

Fix Flash Problems on Ubuntu

less than 1 minute read

I had some difficulties playing Flash videos lately. Problems ranged from lagging sound, to ugliness, to idling black screens, to strange gray Play buttons t...

Have Fun With Google Chart

less than 1 minute read

Pictures say more than a thousand words. This is true for your data as well. With Google Chart you can now easily generate charts of your data. No expertise ...

Improve MySQL Insert Performance

11 minute read

Sometimes MySQL needs to work hard. I've been working on an import script that fires a lot of INSERTs. Normally our database server handles 1,000 inserts / s...

SQL Formatting

4 minute read

With all the abstraction layers between code & database, the need for writing SQL statements deminishes. But over the years I've developed my own way of ...

Post Flood

less than 1 minute read

Hello everyone. Two days ago Feedburner offered me to merge my account with Google. I thought: why not. But apparently now the URL of my feeds changed. This ...

A DRY Piece of Cake

6 minute read

So I've been learning CakePHP the last few days. Bit by bit I've been trying to port a lecagy admininistration app to Cake. 'Secretly' linking menuitems to f...

Create Daemons in PHP

11 minute read

Everyone knows PHP can be used to create websites. But it can also be used to create desktop applications and commandline tools. And now with a class called ...

2008

My New IDE: NetBeans

4 minute read

Writing code requires two important things: creativity & discipline. The creativity to create the unknown, unexplored, exciting parts of software. And th...

Search for a Package With apt-file

1 minute read

Recently I needed ogg123 on an Ubuntu server to convert some media. Naturally, I wanted to use aptitude to install it, but I didn't know what package it was ...

org.eclipse.emf.ecore.util.EcoreEMap

1 minute read

One error that has bugged my Eclipse PDT for a long time, was _org.eclipse.emf.ecore.util.EcoreEMap $DelegateEObjectContainmentEList. _A vague error, not muc...

Rescuing my Messed Up Eclipse

1 minute read

Hi folks. As you may or may not know, I have a love/hate relationship with my IDE: Eclipse PDT. For times and times we get along well. But once every while i...

How Virtualization Will Improve Your Code

11 minute read

Good testing will result in better code. If you have to wait endlessly for on SVN commits, uploads or compile steps, you will simply produce less inventive c...

PEAR Coding Standards Changed!

3 minute read

In another article I've told you about how I would like to see one rule removed from the PEAR Coding Standards. This rule would allow developers a bit more f...

Virtualization Compared

1 minute read

Recently I've been experimenting with Virtual machines for my development environment. The goal was to create a Virtual Machine that resembles our main produ...

PEAR Coding Standards Change?

3 minute read

Since a couple of months now, I've been involved with PEAR as a contributor. Contributing to PEAR means adhering to the PEAR Coding Standards. Their standard...

Enhance PHP Session Management

6 minute read

In PHP, sessions can keep track of authenticated in users. They are an essential building block in today's websites with big communities and a lot of user ac...

My New IDE: Eclipse PDT

3 minute read

I've been programming a lot with Quanta which is a leightweight kdevelop based IDE. It did the trick for quite some time, but recent developments in my codin...

Better Performance With mod_deflate

2 minute read

I used to use Dean Edwards Javascript Packer a lot to compress my Javascript sources. Libraries of 100kB could easily shrink to 30kB and that saves load time...

Determine SID of Windows User

less than 1 minute read

Sometimes when digging real deep into Windows like I recently had to, you need to have the Windows SID (Security Identifier) of a local user. I wasn't able t...

Allow Windows Users to Restart Service

2 minute read

Let's say you want your local restricted users to be able to restart specific services. On linux you'd probably type visudo. In Windows I found, you have to ...

Class 'Imagick' Not Found

less than 1 minute read

I tried to do some Image Magick with PHP recently on an Ubuntu Feisty machine, and even though I had the required package: 'php5-imagick' installed, and I up...

2007

PHP: tiff2pdf

4 minute read

Or: How to convert multipage TIFF to PDF in PHP.

Disable Snapping Windows in Compiz-Fusion

less than 1 minute read

Running compiz-fusion for some time, one thing started to annoy me. Snapping windows. The first thing I obviously looked for was the Snapping Windows Plugin....

Convert Anything to Tree Structures in PHP

6 minute read

I recently faced a programming challenge that almost broke my brain. I needed to create a function that could explode any single-dimensional array into a ful...

Fit More on One Screen Using DPI

1 minute read

A couple of years ago when everyone still had giant CRT monitors, resolutions of 1600x1200 were pretty common. Nowadays however 19" TFT monitors often cannot...

Login Automatically With SSH Keys

2 minute read

With SSH you can securely login to any Linux server and execute commands remotely. You can even use SSH to transfer and synchronize files from one server to ...

Synchronize Files With rsync

3 minute read

Synchronizing files from one server to another is quite awesome. You can use it for backups, for keeping web servers in sync, and much more. It's fast and it...

Delete Files Securely With Shred

1 minute read

Deleting a file or reformatting a disk does not destroy your sensitive data. The data can easily be undeleted. That's a good thing if you accidentally throw ...

Restore Packages Using dselect-upgrade

2 minute read

It's always a good idea to backup important data. Your files and settings can easily be archived. But how can you backup & restore all applications that ...

Survive Heavy Traffic With Your Webserver

7 minute read

Recently two of my articles reached the Digg frontpage at the same day. My web server isn't state of the art and it had to handle gigantic amounts of traffic...

Speedup Your Website With Cache_Lite

2 minute read

Every time a request hits your server, PHP has to do a lot of processing, all of your code has to be compiled & executed for every single visit. Even tho...

Make ISO Images on Linux

1 minute read

CDs and DVDs don't have the eternal life, so you might want to back them up as ISO images. All the files and properties of the original disc, stored in a sin...

Schedule Tasks on Linux Using Crontab

4 minute read

If you've got a website that's heavy on your web server, you might want to run some processes like generating thumbnails or enriching data in the background....

Schedule Automatic Updates on Ubuntu

2 minute read

Making sure your system is up to date is a key attribute to it's security. Furthermore Ubuntu releases updates pretty often and you probably don't want to mi...

Block Brute Force Attacks With Iptables

5 minute read

Since 2005 there has been an immense increase in brute force SSH attacks and though Linux is pretty secure by default, it does not stop evil programs from in...

Make SSH Connections With PHP

6 minute read

Not everyone knows about PHP's capabilities of making SSH connections and executing remote commands, but it can be very useful. I've been using it a lot in P...

Create Turbocharged Storage Using tmpfs

3 minute read

Everyone knows that RAM is so much faster than a hard disk. To illustrate, while a current SATA disk has peak transfer rates of 375 MB/s, current RAM can do ...

Install Squid & Apache on 1 Server

3 minute read

Let's say your site is becoming a big success and as a result it's becoming slower and slower. There are several things you do without buying additional hard...

Change the Default Editor

less than 1 minute read

Ever wanted to change the crontab of a server, but got an editor on screen that you're totally unfamiliar with? There are a lot of causes for this annoyance,...

Cat a File, Without the Comments

1 minute read

I recently had to install a couple of squid servers to act as reverse proxies for a webcluster. You can teach the squid server to stand in between in the end...

Beautify URLs

3 minute read

Readable URLs are nice. A well made website will have a logical layout, with intelligent folder and file names, and as few technical details as possible. In ...

Hello, World!

less than 1 minute read

Hello World! In my day to day I do a lot of development & sysadmin research, often taking quick notes so I don't forget.