February 2012
5 posts
Deactivating my Facebook account was one of the least pleasant experiences I’ve had in a long while. The page is littered at the top with pictures of me and various people, with the captions “ will miss you”. It went on to ask me why I’m leaving and list all the things that would break were I to go through with it: pages I was the sole admin of, apps I was the sole...
I have, two days running, on two separate email clients, on two separate operating systems, accidentally replied by email to myself. This is 2012. This kind of shit shouldn’t happen anymore.
kriskowal/q - GitHub →
I wish I’d found out about promises when I started writing Gusto. Because now I want to rewrite it.
It turns out that Struct was a rather poor choice of name. Dammit, Apache. It shall heretofore be known as Gusto.
I went for a walk in the snow.
With a scarf around my face, a camera over my shoulder and two pairs of socks, I headed toward campus.
Through wind, sludge and gates, I arrived at a pond that two freshers were pushing a tonne of snow into. It sank. My lens cap promptly embedded itself inches deep in snow.
Up spiral stairs and frosty ladders I came to a gravelled roof and views of everything.
Down and home to...
January 2012
7 posts
Blofeld →
Easy Git website deployment.
Better Touch Tool →
Lets you map actions to trackpad and mouse gestures. Also has an Aero Snap workalike. Oh, and it’s free. Configuration dialog could use some work, but that’s by the by.
Zsh, where have you been all my life?
So it turns out Struct actually runs on the TouchPad. More surprising is the fact that it runs on Node 0.4.x.
How many SEO experts do you need to change a lightbulb lightbulbs buy light...
– (via clientsfromhell)
http://www.emacswiki.org/emacs/SmartTabs →
This.
December 2011
7 posts
SHE LIVES. →
It only took my a month to port Struct to Node.js. Only.
TouchPad & webOS, day 1
The Good
Cards. Android and iOS’s multitasking can suck it.
Form factor. Looks smaller and thinner that the iPad. It’s neither, but that’s by the by.
The built in apps. Mail and Facebook are top-notch.
Synergy. Like Android’s contact syncing, but actually works, and lets you manually merge them. Also works with, say, calendar events.
“Rooting” is a matter of typing “webos20090606” into the...
My hobby: putting occasionally adverbs in unusual...
Things people write in JavaScript that make me...
if(typeof something !== 'undefined' && something !== null)
As “the” “correct” way to check for an undefined variable.
Argh.
First things first, nothing is ever null unless you’ve told it to be. If you’re setting something to null, you’re never going to want to check if it’s undefined. So we can remove that:
if(typeof something...
Dear internet,
Fitts’ Law is not the kind of law you can break. It does not say “put things near screen edges”. It says “the bigger an object is in the direction of mouse travel, the easier the object is to hit”. What you think is Fitts’ Law is an fact a corollary of Fitts’ actual Law: since the cursor stops at a screen edge, an object at that edge essentially has...
I do not write tests for my code. I do not write very many comments. I change...
– JavaScript needs a _whytheluckystiff.
November 2011
5 posts
You know what? Fuck Rhino. I’m moving to Node. I don’t care about having JavaScript 1.8.5. I want a sensible API and to be able to debug the goddamn thing.
Georgia Pro & Verdana Pro →
So you concede that:
Verdana and Georgia’s prevalence is no accident: they were distributed widely, then relied upon by web designers for years.
And then sell your fonts for $40 per weight.
Ok, Rhino, seriously?
> new Boolean(true) == true
false
> new Boolean(false) == true
false
> new Boolean(true) == new Boolean(true)
false
> argh
ReferenceError: "argh" is undefined
> new java.lang.Boolean(true) == true
true
> new java.lang.Boolean(true) == false
false
How to bloody well make sure you read the entire...
let stream = htex.getRequestBody(),
buf = new java.lang.StringBuilder(),
read = -1,
bytes;
do {
bytes = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, stream.available());
read = stream.read(bytes);
buf.append(new java.lang.String(bytes));
} while(read != -1);
stream.close();
Took me hours to figure out it wasn’t reading the whole thing in the...
October 2011
4 posts
Here's another one for the radio
Wait. Did I just quote McFly? Crap. Uh.
All we hear is radio gaga
Better.
So, me and Ed have a radio show. It’s nothing serious. Good heavens, no, quite the reverse, in fact. We giggle, lots. Ed disparages me while I’m out of the room. We call it a Sorry Excuse, but really, it’s no excuse. If you got us alone and pointed at us a microphone for an hour, occasionally shutting...
Great moments in commit messages, episode 1
[master 6a46f76] FUCKING RHINO AND ITS FUCKING PROPENSITY TO FUCKING SET FUCKING UNDEFINED FUCKING PARAMETERS TO THE FUCKING GLOBAL FUCKING OBJECT FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING FUCKING
1 files changed, 6 insertions(+), 9 deletions(-)
The best cookies in the world [Citation needed]
And I’ve finally perfected my chocolate-chip cookie recipe. Here goes:
Ingredients
Mug and a half of unsifted wholewheat flour
Half a mug of unrefined molasses sugar
Half a mug of golden caster sugar
Quarter of a pack of butter (5 ounce)
An egg
Half a teaspoon of baking powder
Bar of plain cook’s chocolate, smashed into tiny fragments
Lots of cinnamon
As much vanilla extract...
September 2011
10 posts
From the "make your bloody minds up, browsers"...
In Chrome, percentage values on padding are calculated relative to the element with the padding. In Firefox, they’re calculated relative to the container, as with width. Both calculate margin with respect to the container.
Argh.
Seems that, in Rhino at least, exceptions thrown within a com.sun.net.httpserver.HttpHandler are invisibly caught, making debugging difficult at best.
And of course, I’ve easily fixed the previous problem (eval) and the one before that (verbosity) by using JavaScript to define my routes, not some stupid custom text format.
Writing JavaScript in Rhino is an unusual experience at best. On the one hand, it’s JavaScript, one of (if not the) most flexible, dynamic languages there is. On the other hand, you’re using the behemoth of verbosity that is the Java API. So you end up writing like
var buf = new BufferedReader(new InputStreamReader(new DataInputStream(new FileInputStream("conf/routes"))));
alphabetical-lies asked: DAMN I CAN'T ASK ANONYMOUS QUESTIONS NOW YOU KNOW WHO I AM. AWKWARD.
tumblrbot asked: WHAT IS YOUR EARLIEST HUMAN MEMORY?
Post number two in the ongoing "I just learnt this...
So yeah. Go really is as awesome as I was hoping, but sadly not one microstinson more.
The Good
Google’s right: it feels like an interpreted language. Stuff like slices and first-class functions give the impression that you’re not shouting down the phone to a compiler that has its own ideas of how to do stuff, you’re nicely asking an interpreter, and it comes back with...
On apathy
I really am utterly terrible at blogging. Things happen that I should blog about and then two or so weeks pass in which I don’t; cue guilt. Part of it is that I don’t give quite enough of a crap. Most of the rest is the omission in my short-term memory of this blog’s existence. To combat the latter I’m installing the Share on Tumblr extension for Chrome. Let’s hope...
June 2011
4 posts
On the GNOME Shell JavaScript Style Guide
GNOME Shell’s Style Guide encourages extension developers to write classes along the lines of:
function ClassName(arg1,arg2) {
this._init(arg1,arg2);
}
ClassName.prototype = {
_init: function(arg1,arg2) {
// initialisation goes here
this._privateMember = arg1;
this.publicMember = arg2;
},
_privateFunction: function() {
},
publicFunction:...
So! I finished my exams.
Uh.
Seems I have nothing to do now.
Apart from helping with the Chaplaincy Ball.
And fixing improving the PhotoSoc Website.
And modifying my Nerf gun.
And making a proper website, possibly transitioning my blog thereto?
And making me some projects.
(that link leads nowhere for a reason)
And getting a job.
And going on holiday.
And getting awesome(r)...
Arch Linux
So: a couple of weeks ago, final-strawed by Ubuntu, I made the switch to ArchLinux. Here are a few thoughts on the whole fiasco process. No, honest, it wasn’t a fiasco.
The netinstall image positively refused to accept I had any kind of network capability so to the 201005 image I went, which asserted my hard drive partitions weren’t aligned to cylinders so a quick backup of the files...
Dell AT102W
Salvaged yesterday from a computer graveyard out’ the back of the International Manufacturing Centre was a Dell AT102W computer keyboard. It is the single nicest keyboard I have ever laid fingers on. The audible clacks accompanying each keystroke give a reassuring mechanical feel to the thing: unlike regular, plebeian keyboards, it feels like a machine engineered to do one thing, and that...
February 2011
2 posts
D: algebra.
Why is it the lectures are lovely but the assignments are like trying to unjam a photocopier, i.e. frustrating and time-consuming yet ultimately rewarding?
In other news: Anterior Knee Pain Syndrome officially sucks gonads.
Ah well.
And: it’s now of all times I’m reminded how much I love writing, and how little opportunity I take to write. I say, “of all times” because it’s a quarter to four.
Ah well.
Correct me if I’m wrong, but it’s four months since I posted here last. I’d check, but I’m busy. Writing.
Ah well.
I started my essay again a week or so ago. Information Theory has far too much probability in it for my...
December 2010
2 posts
Christian Focus Photos
Term one, year two. Also: gloves.
Then term one, year two vanished, bewilderingly; me not having blogged fully on Berlin five months ago or Northumberland four.
Since that time I’ve learnt two-three programming languages, taken over a thousand photos, built a pseudotablet from a Dell Inspiron 1100 and dried all my clothes using string. I no longer use Qwerty or Fedora and I’ve taken several levels in JavaScript...
November 2010
1 post
http://www.libelreform.org/sign →
via BoingBoing
October 2010
2 posts
So why is Rhythmbox’s shuffle so goddamned terrible at, well, shuffling? In a three-hour playlist, I want to hear each song once every three hours. I got one song twice in ten minutes. And it’s a four-minute song.
Here’s what I want from an e-reader. A 14.5” e-ink screen, for A4 documents. A “next page” button. A “previous page” button. A “select/back/power” button. An SD card slot.
And that’s it.
It’s all I need. It’s all I want. Annotations? Acetate sheets and Sharpies.
Anyone?
September 2010
1 post