Why is Everything So Slow?

Reading Brandur Leach’s article about Learning From Terminals to Design the Future of User Interfaces I found myself agreeing with many points, though not all. While I don’t agree that terminals are the answer to user interfaces, I was very keen on some of his points, notably:

We should be honest with ourselves and call out design anti-patterns that promote flashiness at the expense of efficiency.

I have found myself increasingly frustrated by bloat, whether in the form of stupidly large web pages that take forever to load while forcing the content to tip-toe around interactive elements, or simple apps that strain a last generation tablet.

I wrote a feature a while back about how I had tried to revive my 2012 Nexus 7 by switching to a different ROM (operating system essentially). I’ve been reasonably pleased with the switch but it’s far from perfect. It’s faster than the native Android ROM, but still a little sluggish.

Now, you could argue that it should be because the device is now more than four years old. In computer terms it’s more than a generation out of date, making it a virtual relic. Two more cycles of Moore’s law have passed since then, meaning recent devices are four times more powerful, in theory.

As I keep arguing though, we long ago passed the point of powerful enough. What all that extra grunt — which few people actually need — is doing is simply making developers lazy. Although it could also be that they’re driven by the new shiny too.

Instead of adding a flashy transition, or a higher definition image, or video to everything, why is no one focusing on speed?

The answer, I suspect, is that they’re all testing on super-high-spec development machines, or latest generation devices. Why spend time debugging a routine or looking for more efficient ways to do things — which often require a lot of creativity and clever-thinking — when you can just throw hardware at the problem?

Why worry about all those landfills pumped full of old devices that can no longer keep up? That’s not their problem. In fact, if you work for a device maker your job is to help move units. If anything, you want to make existing devices obsolete the moment a new one is launched. Slowing it down is one way to do this. Continue reading…

Hosting a Website on Tumblr

Last year some time I whipped up a simple site based on a premise I’d had knocking around in my head for a while. The aim is simple: send jovial insults to people you know.

Offend a Friend screenshot

I originally registered a domain and hosted it on GitHub pages but as the domain expired, despite the relatively low cost, I was reluctant to waste money on a vanity project. I could have left it hosted with a Github domain, but I had been looking for an excuse to try another platform.

I knew you could bend Tumblr to host more than just the traditional tumblog format with chronological posts and this gave me the opportunity to try it.

Storing your content

The site is fairly simple, largely consisting of a bunch of images. In fact it’s closer to a single page app (SPA) than a proper website. The first task, therefore, was to figure out how to store those images so they were accessible.

As it turns out, you can store static content in relation to a theme on Tumblr, but there’s no easy way to retrieve these. On the original site I used a JSON file to store image names, etc. I would then simply use the paths in the file to retrieve the relevant images. Continue reading…

Is the Raspberry Pi a Rip-Off?

Let me start by saying that I like the Raspberry Pi, I own four of them. I’m also a big fan of the Foundation’s aims. The title of this piece is pure click-bait.

That said, I happened to be perusing the second-hand listings for computers on eBay recently, in response to a forum post, and was amazed at how much you can get for not a lot of money. The prices were so reasonable they got me thinking.

It must be something about January, as I have written before about the price of second-hand PCs, back in 2013. I’ve also asked where the cheap computers were, because prices seem to stay pretty static for new computers, with very little change in real-world performance.

That means you can pick up a lot of machine for little money. How little? Well cheaper than a Raspberry Pi.

The Cost of Pi

The Raspberry Pi was designed to offer an affordable computer to encourage tinkering and learning, and it does. The Pi Zero retails for around £4 ($5), if you can get hold of one. They go up to about £30 for the most powerful model (the Pi 3 Model B at the time of writing).

That is just for the board though. To actually use it you also need:

  • Case
  • Power supply
  • Storage (SD card)
  • Monitor
  • Keyboard and mouse

For the purposes of this exercise I assumed we were using an existing monitor or TV (as the Pi was designed to). I also decided to ignore the keyboard and mouse as the cost cancels out regardless of which option you choose. Continue reading…

Doubling Up on 4K

In the middle of last year I was presented with a 4K monitor (an ASUS MX27UQ). I was very pleased with it and the picture quality was a massive step up from the aging LG W3000H running at 2K that had been my main screen for many years. So I was very grateful to Father Christmas when he delivered a second 4K screen (a Dell UP3216Q).

Previously I had been able to get away with unlocking the clock on my existing Radeon HD 5450 card to provide a 4K picture (well, UHD @ 3840×2160). That wasn’t going to cut it to run dual 4K monitors though, so the search was started to find something suitable.

Searching the Matrix

Requirements for running 4K/UHD

Running a single 4K monitor doesn’t require a whole lot, with around 12 Gbit/sec for 3840×2160 @ 60Hz. For 30Hz that drops to about 6 Gbit/sec. Hence why I was able to push that using a cheap card released in 2010. The limiting factor doesn’t tend to be the GPU power, but the connections on the board.

Only HDMI and DisplayPort are able to provide the necessary bandwidth to drive such big screens. A lot of cards come with HDMI, but the bad news is that only those released since 2015 (generally mid-2016) come with HDMI 2.0, which is the first version that supports 60Hz. Instead, you’ll generally get HDMI 1.4, which is limited to 30Hz due to the lack of available bandwidth. Mind you, that’s perfectly usable for general desktop use (in my experience, others appear to disagree).

The other option is DisplayPort, which since version 1.2 (released in 2009) has been able to supply enough bandwidth to drive a high resolution display at a full 60Hz. Finding cards with one DP port is pretty tough, finding one with two is harder still.

There are also options to drive displays using Thunderbolt 3 or Alt-Mode over USB-C, but these are even rarer. Continue reading…

Using Fieldbook as a Static Site Data Source

On and off for quite some time I have been looking for a simple web-based database with a UI that would allow me to dump info into it without having to worry about a schema, one that allowed me to easily pull the contents out to display in a web page.

I’d come across the various DBaaS options, but they all seemed to be geared towards millions of rows and gigabytes of data. None of them had a UI that looked appealing either (at least that I could see). Then I stumbled across Fieldbook.

It’s laid out like a spreadsheet, with support for several sheets inside any book. Aside from being able to arbitrarily create columns of data (and set types, requirements, etc), you can also link fields to other sheets, creating a simple relational database. It’s got an intuitive UI that isn’t too restrictive as well.

Spreadsheet as CMS

The reason I’ve been looking for a service like it is that I tend to knock up little sites that require infrequent updates (if at all) and setting up a full CMS seems like overkill (not to mention a lot of work). The endless notifications about updates on the WordPress sites I run — along with wider security news — and my liking for optimal site speed has led me to embrace static sites. Continue reading…