Nautilus browsing large windows share is slow

When browsing large windows (samba) shares with Ubuntu Nautilus (that's the equivalent of the Windows File Explorer) I observed that shares which include many files and directories (a few hundred) take a few seconds to browse over WiFi, but almost instantly display over a fast LAN. A similar difference in speed is noticeable when searching … Continue reading Nautilus browsing large windows share is slow

First write operation to large ext4 file system is slow

I'm running a large (>20TB) ext4 file system and noticed that the first substantial write operation after mounting is very slow and involves plenty of drive activity. The reason seems to be some memory structure initialisation as described here: https://linux-ext4.vger.kernel.narkive.com/SUFNE520/ext4-slow-performance-on-first-write-after-mount The workaround is thankfully as simple as running this command in a script after mounting … Continue reading First write operation to large ext4 file system is slow

HTTP compression and incremental rendering

TL;DR: HTTP compression can delay rendering of web resources HTTP permits content to be served with different encodings, some of which can be used to compress [1] the data volume transferred over the network, which has become a frequent suggestion [2] towards optimising websites for performance. It turns out that the deflation phase of the … Continue reading HTTP compression and incremental rendering

Formatting USB flash drives for write speed

Flash drives enjoy a reputation for being fast and that certainly goes for high-end models with their elaborate memory controllers and multi-bank layouts. A fundamental "problem" with current flash memory technology is that writing even a single bit of information requires that an entire block of flash memory is reset first [1], which greatly reduces … Continue reading Formatting USB flash drives for write speed

HTTP: The importance of declaring non-cachable resources as such

It works fine with Chrome and it fails on an Android 2.3 browser - the page is performing an XmlHttpRequest to the server for a resource that just changed for sure and yet it gets back an older version. That's the result of a. the browser assuming a resource is cachable even if no Etag … Continue reading HTTP: The importance of declaring non-cachable resources as such

Solving the 8 Queens puzzle with bit operations

The 8 queens puzzle is a classic (and quite fun to solve) toy problem: place eight queens on a chess board in such a way that all queens could fully move without being obstructed by any other queen. While without practical applications, it illustrates a number of aspects of designing algorithms and implementing programmes: - … Continue reading Solving the 8 Queens puzzle with bit operations

Speeding up initial page view of Ajax applications with static HTML

Many Ajax applications build the UI programmatically, i.e. think of GWT's UI builder or one of the many convenient jquery widgets which incurs a visible delay between the time of the initial page load and the time the page has finished rendering. The delay can be mitigated by a static "please wait while loading" message … Continue reading Speeding up initial page view of Ajax applications with static HTML

Ubuntu upstart scripts executed twice during boot

As I am continuing my efforts to improve Ubuntu boot time [1] I started noticing that bootchart [2] would list several processes twice and the boot logs would complain that all mountpoints were busy or had been mounted already. A closer inspection of the logs reveals that indeed several scripts were being executed twice: the … Continue reading Ubuntu upstart scripts executed twice during boot