Tuesday, 29 November 2011

Status Report

Hello reader! Long time no see, eh? Blame work for that – software development is rather draining, and when the clock hits 6 I don’t generally feel like doing anything creative.

I have, however, felt like playing WoW some, although even then only a couple of times a week, and even then, only with my girlfriend. We decided a while back to try levelling a pair of characters up again – we’d attempted this a few times before but never really got beyond level 20 or so – and since she was wanting a break from Heroic raiding we went to a quiet little server and created two goblins, Festoon (my protection warrior) and Ozmund (her destruction warlock) and have been having a mostly super time, barring the occasional fail PuG.

I levelled a prot warrior before Cataclysm hit, up to 77, but it was long enough ago that the changes in talents, abilities etc. didn’t really affect me. They’re just minor technical details, though; the overall feel of tanking remains as I remember it: fun! I quite enjoy having so many abilities and having to know which ones to use in what situations, although it’s sometimes tricky to organise logical keybindings for everything.

It’s been really nice levelling with Zoe, especially since we tried to stay as close as possible in experience/level the whole time, always doing quests together and only rarely going our own ways, usually just to collect ore (me) or farm mobs for cloth (her).


I normally write these blog posts using my Soda webapp. This post is no different, except that I finally had both the motivation and the free time to fix some of the most annoying issues I had with it. I also added a new preview mode for those poor folk stuck using IE8 – it scales the width of the preview page only, rather than the entire thing. Works quite well on narrower screens since you can shrink it down and still have it remain readable. I removed the ‘paragraph marks’ option too, because it was kinda pointless and just made the CSS more awkward.

Act II

Having reached 85 together and got a bit of non-crap gear, Zoe and I are now venturing forth into Heroic dungeons! Thankfully we’ve been relatively fortunate with our random groups (there aren’t enough members of our guild for guild-only (or even guild-mostly) runs) so it’s been rather pleasant. Even when we have had the occasional fool, it’s not stressed me out much, as I’m fairly confident in my tanking abilities by now. It’ll be even better when we get a guildie healer.

Change of scene

WoW isn’t the only game I’ve been playing lately. First up there’s Trackmania 2, which is super fun, and in whose track editor I have spent probably 90% of my time with the game. I’ve only made four tracks (and only three of those are on MX as of writing), since it takes a long time to really hone one to perfection, but it’s been great fun.

The other game I’ve been playing is this thing called Skyrim. You might have heard of it. It’s lush, and big, and fun and I’ve been known to stay up til nearly 4am playing it, which I don’t recommend. I don’t really have much else to say about it yet, as despite my marathon sessions I’ve still barely gone anywhere in the world. There’s just so much to see.

Monday, 31 October 2011

Another blog of mine

I got an iPhone recently, and the bests thing about it are the camera, and how quick and easy it is to share photos from it, in particular using Instagram. At the moment I’m rather taken by the Earlybird filter, as you’ll see on my… new blog!

Its sole purpse, at least for now, is as a place to post my ‘non-serious’ photos, i.e. ones I don’t think really fit with my Flickr stuff. I couldn’t at this point clarify the distinction much, as it’s a little hazy, but I think Flickr I will reserve for my more ‘serious’ stuff such as photoshoots, landscapes and documentary. We’ll see how it goes but for now my Tumblr output should be more frequent than the Flickr stuff.

Thursday, 22 September 2011

The Guard Cat

Watch in awe as our tabby cat valiantly defends the family home from intruders.

Tuesday, 26 July 2011

RangeBar addon?

I had another idea for an addon: a simple ‘range-to-target’ bar:

range bar screenshot showing target at between 20 and 30 yards range bar screenshot showing target at more than 40 yards

Not sure about the exact ranges – I’d need to check the RangeDisplay addon for that – but I think a small graphical indicator like this might be more useful to some people than a text-based one.


I looked at the Lua code for RangeDisplay. Good grief, that's an astonishing amount of work necessary just to display a simple range indicator.


Yaggle’s comment in Gevlon’s recent post got me thinking about another addon I could make. Rather than something like GearScore, which gives you a larger arbitrary number the “better” your gear is, I propose an alternative: FailScore. This would start you at 0, then deduct points for things like wrong armour class (e.g. shaman wearing leather or cloth), wrong stats (e.g. hunter with intellect gear), missing/wrong enchants, glyphs and gems, and bad perhaps talents, although this last would have to be fairly specific in what it considers a fail (e.g. 41 points in one tree) as many non-optimal talents aren’t exactly bad, and often have a PVE utility function like being an interrupt.

The idea would be to have a FailScore as close to 0 as possible, and with more serious fails affecting the player’s score more than minor ones like a sub-optimal enchant. Different gear levels could also affect the score in different ways, too: unenchanted green-quality gear would be less of an issue than unenchanted epics, because it’s usually not worth enchanting gear that will be replaced so soon. Moreover, the cheaper enchants can sometimes be unavailable in the AH, or very overpriced.

Incidentally, I believe it should be a negative number simply to avoid any misunderstanding: if someone’s FailScore increased, they might (if they were a moron, which people with large FailScores probably are) mistake this to mean “higher = better”.

This would primarily be aimed at players below level 85, as obviously when levelling up it’s rarely worth enchanting or gemming quest gear, and even having the wrong armour class can be acceptable given the limited choices. However, some of the larger fails, e.g. wrong stats on armour, will still apply, possibly with some extra leniency in Outland due to the messed-up stat allocations (like strength and intellect on the same piece of gear); that said, hunters wearing cloth will still get large failscores.

One final thing I might include, although it may be a bad idea, is the ability to generate a FailScore Report, detailing the issues.

On and maybe I could make a Recount plugin, “DPS per FailScore”. Not sure what value that would provide, though.


I just thought of another idea: representing the fail as a percentage. For a given class/spec/gear setup/level, the maximum potential FailScore would be calculated, then the player’s actual score given as a percentage of it. This would in theory normalise all scores, as some classes probably have more potential for fail than others, and it also gets around the issue of lower-level players having lower scores but still being just as fail as an epic-geared 85.

Monday, 25 July 2011

Addon Reins

Alas, some research on WoWWiki and the #wowuidev IRC channel has revealed that this point—

  • Clear differentiation between ‘historical’ nodes and ‘detected’ nodes.

—will be much harder to implement as I originally envisaged. For technical reasons, it’s not possible for an addon to get minimap tracking information, so I won’t be able to show current nodes without resorting to some SexyMap HudMap-style hackery.

That said, SexyMap HudMap-style hackery may not be such a bad thing. The issue in SexyMap is that when you enable the HudMap, the background of the map disappears, so you can’t see terrain features on it, which makes it difficult to assess where a node might be. To work around this, I still want to go with the ‘wireframe map’ idea, although obviously this requires a vast amount of work, to draw custom maps for every single zone.

Another downside to ‘faking’ it is that I have no control over the shape of the map; it’ll just be a circle, and it will have a fixed maximum range. This is in contrast to Gatherer’s HUD, for example, which allows it to show an angled ‘perspective’ view which can help when screen space is limited, and which some may find easier to read.

Another point—

  • Custom node icons, following the theme of the radar style – simplified wireframe shape (or just text), possibly coloured to match the associated herb.

—I want to expand upon. In any given zone there are a limited number of different node types, so rather than just use the herb’s icon as a map/radar marker, I think using custom node textures would work better as they can be both small yet easier to differentiate. The size is important: when you have a very extensive node map, it can get very crowded, so you could reduce the icon size, but then you have tiny 8-pixel blobs that are hard to tell apart.

As an example, in Storm Peaks, the only two herbs you’ll find are Lichbloom and Icethorn, both of which have blue/white icons. For that reason, I could for example use a for Icethorn and o for Lichbloom. In a zone like Sholazar Basin, where there is more variety of herbs, it could be something like for Adder’s Tongue, for Tiger Lily and o for Goldclover.

Another idea I had is based on the first picture in my first post on this matter:

aircraft radar screen

You’ll notice that the ‘centre’ of the map is near the bottom, which might be another good idea for saving space yet still providing decent range. After all, I suspect people are more interested in nodes in front of them than behind.


Here's a mockup I made of what I imagine the radar thing to look like, obviously in this case without terrain features; I might do one later with those included later.

The small blue circle is the detection range, within which nodes should appear on the minimap assuming they're present. The vertical dotted line is current heading, and the small number pairs along it are distance and time.

It's far from perfect – there are too many dashed circles, for one thing, and it definitely needs some adjustable opacity; possibly it could lose the quite large border too.

Thursday, 21 July 2011

I came back to build something

I have renewed my subscription to WoW, and got myself some Cataclysm. This was quite unexpected, and although I’m pretty much done with raiding still, and even moreso with guild dramas, I had an Idea, and that Idea nagged at me until I gave in.

Watching my girlfriend farm herbs, it seemed to me there was a gap in the addon market for such activities. Gatherer is nice, but it’s kinda primitive in the way it represents nodes, even using the HUD: there’s no indication of how far you can ‘see’ herbs, the only way you can know a herb is nearby is by constantly looking to the minimap. The HUD is helpful, but limited, and awkward to set up.

So, being the programmery type I am, I’ve got it in my head to make something better. The plan is to create ‘radar-style’ HUD showing a basic wireframe terrain map, something like these:

Radar display

Radar display

Later on I’ll create a better mockup that better matches what I have in mind.

I want it to have the following features:

  • Node markers (obviously), with optional distance and time-to display.

  • Integration with Gatherer node data (very important).

  • Clear differentiation between ‘historical’ nodes and ‘detected’ nodes.

  • Coastlines/riverbanks, caves and possibly major terrain features like waterfalls or cliffs.

  • Optional display of enemy mobs and their aggro ranges.

  • A ‘detection range’ circle, ideally using the current lag figure to improve accuracy.

  • Custom node icons, following the theme of the radar style – simplified wireframe shape (or just text), possibly coloured to match the associated herb.

  • Various readouts such as player altitude, speed, radar display range, view direction,

  • Possibly a waypoints system.

  • Military HUD style ‘targetting’, i.e. overlaying a highlight box on nodes in the world (may be frowned upon by Blizzard).

I have no idea how feasible any of this is, and I know for sure that the actual wireframe terrain map is going to be either a lot of work, or just not possible, but I am eager to give it a go. I’ll be happy if I can even have the display without the terrain outlines.

Thursday, 23 June 2011

Less WoT, moar WoW (and some L4D2)

I spent ages grinding XP for a nice shiny new KV tank. It took the best part of a week, scooting around in my T-28 boat tank, until FINALLY I had both enough XP to research the KV, and enough credits to actually buy one. Hooray!

Then I started to play with it. Good grief it’s slow, taking about half an ice age to turn 180°, and getting overtaken by SPGs. Plus, since it’s the stock KV and is a Tier 5 Heavy tank, I often get matched up against Tier 8 and 9 tanks against which the best I can do is fire puny 75mm HE shells and hope I don’t attract any attention, which is unlikely because even if the enemy tanks don’t spot me, the artillery certainly do. I imagine them rubbing their hands with glee as their aiming reticules slowly gather around my turret.

Now the KV is not the end. It is not even the beginning of the end. It is, perhaps, the end of the beginning. Henceforth I will meet equally well armed, and probably better armed tanks. It will be a long grind.

In the meantime, I also managed to get myself an A-20, which is like the opposite of a KV: it appears to have armour made of cardboard, and a gun that might as well not even be there. Despite these flaws, it does have one thing going for it: it’s really really fast. Like, 72 km/h fast. This is greatly entertaining, zooming about on the battlefield being eyes for the tanks and artillery that have guns that can do more than ping uselessly off the enemy. It’s fun enough that I decided to go for a second light tank, the Leopard (from the German tech tree). It’s slightly slower than the A-20, but it turns more like a Tron lightcycle. Excellent for confounding one’s foes.

And then… and then I stopped playing. I think the prospect of the gigantic grind required to make the KV competitive is putting me off.

Left for dead tank

Just as I was trying to come up with an alternative to shooting tanks, I get an invite to a game of Left 4 Dead 2. Golly gosh that game is exciting! I am distinctly average at it (actually more towards the ‘crap’ end of the scale), but it’s the kind of game you can still have fun in despite that. It’s also completely lacking in grind: you start, you get good weapons, and you shoot zombies. Lots and lots and lots of zombies (including one called a Tank!).

I discovered I rather like the auto shotgun, even though the combat shotgun is ostensibly better (it definitely has a better sound, and looks more badass). Swinging a fire axe about is also tremendously fun.


Just as I am starting to enjoy L4D2, I’m also reading people discussing Minecraft, and now I want to play that again! Man, so many games. I played Minecraft a while back, when it was v1.3, but not since. Now I am feeling the urge to dig and build in 1m³ blocks.

Overall effect

AND! I bought Mass Effect, after reading a blog post on FemSheps and then remembering that the game sounded interesting. It was only £10 on Steam, too, which was nice. I haven’t actually played it yet, though, because by the time it had downloaded it was about 1 in the morning.

Wow, seriously

Yes, srsly, I am playing WoW a bit more now too, still on Zoe’s account. I daren’t install the game on my own PC. Still, what limited time I play, I’m back to shamaning it up. The shaman originally had an Elemental spec, and a Restoration offspec that neither of us ever used. Then I read an blog post by someone talking about Enhancement and wanted to try it out, so we dumped the Resto spec and changed it to Enh, and hoo, it’s fun! Fists of flame!

So anyway, I then wrote/adapted/ripped off a Resto Shaman Guide and since I’d done a fair bit of Restoring in WotLK, I got curious, and 57 gold later the shaman re-acquired a Resto spec to replace the Elemental. I’m such a goblin.

I’ve not tried it in actual real instances yet, as I did the spec and associated paraphernalia (glyphs, UI setup, gear) on my lunch break. I’m gonna dive in tonight though, and since the shaman just hit 80 I’ll be trying to fill green bars in Cataclysm instances, of which I have somewhat limited experience. Fun times ahead. Still, at least shaman healing is fairly unchanged from Lich King, so at least I won’t be totally clueless as when I tried to heal Zul’Aman on Zoe’s Discipline-spec priest. That wasn’t fun.

Monday, 13 June 2011

A Week of WoT

I’ve been playing World of Tanks for a week now, more or less. It’s really good! It reminds me in some ways of the tank bits of Wargasm, only with a WW2 flavour rather than modern/sci-fi.

Not really knowing what I was doing, I went initially for a Soviet MS-1 tank, because, well, it was Russian. I then progressed on to the T-26, T-46 up to my current T-28, which is a stupid-looking tank. It looks like a cross between a boat and a tank, seriously. Also, I’m not sure what this monster is but it’s definitely not the same thing I’m talking about. It does look somewhat impractical.

Grind My Gears

Once I acquired my lovely T-28, I encountered the grind, whereupon progress through the tiers slows dramatically due to the much larger experience point requirements: going from Tier III to Tier IV means saving up around 3,500 XP; from Tier IV to Tier V it’s more like 13,000. Given that even if you do exceptionally well in a battle and have a premium account you can earn at best about 1,000 XP, and that more realistically you will lost around half your battles, thus earning something more in the region of 100 XP, you can see how long it can take to make that climb to the next tier. Even the radio in one of them costs 5,600 XP to research!

It was at this point that I discovered there is no penalty for leaving a battle once your tank has been destroyed. Thus enlightened, I strove to populate my garage with a variety of other vehicles to join the grind, resulting in an almost non-stop succession of tankshoots. Doing this in similar tanks would quite likely make the grind seem even more interminable than with just the one, akin to repeatedly being thrown into a meatgrinder, so to spice things up a little I have chosen a more diverse range:

  • SU-26 SPG (USSR): a lovely little artillery gun with an 360° rotating turret, making it easy to stay hidden. Apparently has 5 crew members, though I’m not sure where they’re all supposed to go.

  • Hetzer tank destroyer (German): possibly the most ridiculous distinctive-looking tank in the game. Godawful slow until you get the good engine for it.

  • M5 Stuart (USA): speedy little monster, although not terribly good on the acceleration front, and apparently not that good compared to the Soviet scout tanks like the A-20. Still, fun to drive. I fitted mine with the 75mm derp gun, to surprise and delight my foes.

Bar the M5, all of my tanks are interim until I can get enough XP to buy better ones. In the meantime, they all provide some fun battles, so while the grind is long, it is rarely dull.

The M5 is one I might actually consider replacing, thinking about it: sure it’s great zooming about at 56km/h but it takes so long to get there, and it’s hardly nimble. I look upon those little zippy German tanks (PzIII? Pz38NA? Some of the names for the German tanks are confusing to the outsider) and feel envy.

Tuesday, 7 June 2011

Say, that looks like…

Blog redesign time again.

This one, unlike previous efforts, actually had some effort and thought put into it: it’s based on my Soda application, although with different fonts – Blogger has a nice built-in serif one, and I thought Gill Sans goes better with it than the Lucida Grande I use on Soda. I hope it looks nice on Windows :S

If you clicked that link to Soda earlier, you’ll notice it’s this post, only in Soda. One of the reasons I made the application was to enable easier (for me, at least) writing of blog posts, as I find with the plain HTML editor it’s a bit too hard to visualise the final result (and switching between Preview and back gets tiresome; moreover, the preview isn’t even that accurate). The WYSIWYG editor is fine for visualisation, but I just don’t like the way formatting etc. is applied – as I mentioned a while ago, I don’t like the character-centric approach. Using most web-based WYSIWYG editors can often feel like a struggle, too, especially when trying to modify links or images.

I’ve also added a popup image thing I made. Here is a test image:

lounging cat (click it to enlarge)

Edit made after the one below: clearly this popup business won't work if you're reading this in a feed reader. It's really good on the site though! In case you were wondering.

Edit: that fake italic in the font provided by Blogger was annoying me, so I reverted to Palatino for the body text. And, since Gill Sans doesn't really go as well with that, I changed the headings to use Lucida Grande (or Lucida Sans Unicode) instead.

Sunday, 5 June 2011

Tanks and the world

I’ve been playing WoW quite a bit lately. A short time ago I got a DK to 85, and while he’s ostensibly main-spec tank, I haven’t actually tanked anything in a random in any of the Cataclysm dungeons. So, dual-wield Frost second spec it is.

I also levelled up a druid, in a cat-based Feral spec, which I’ve been enjoying quite a bit. The character was originally only supposed to be a bank character (hence the name ‘Morcasha’), but then Zoe and I wanted an enchanter, and so we needed to get Morcasha to a higher level. And I just kept going, because it was fun, and because I read a post on Gevlon’s blog about skinning crocolisks in Tol Barad or something for easy money.

Bear Necessity

As I was traipsing around Twilight Highlands in the last few bars of being level 84, helping out the dwarves with their wedding (best questline ever, btw, and also Keely Dunwald is kinda cute), I decided to see what it was like being a bear. This was not entirely out of the blue: I’d done a random a few days earlier wherein the tank abandoned us at the last boss, and one of the DPS asked me to tank. I was like “lol no” (paraphrasing here), because I had no idea what I was doing in bear form. So anyway, turns out it’s not really that hard! Certainly less buttons to push than cat form, although since my UI was set up specifically for cat, it didn’t work so well for bear.

So I bought dual spec and made the second spec pure bear. And lo! I am almost indestructible when taking on normal mobs! In cat form, when levelling, taking on more than 2 mobs at once is a risky thing, as you are rather squishy and your heals barely do anything (healing for ~4K out of 75K at level 84). In bear, though, with a proper bear spec: bring it on! Obviously it’s news to nobody that a tank-specced character can survive better, but it’s surprising just how much difference a few (really a few – maybe 5 or so) talent points in different places can make; going into bear form in a spec optimised for cat DPS doesn’t really help much: sure you can get aggro better, and are slightly tougher, but you’re missing the uncritability, damage-reduction and Pulverize talents that are pretty much the point of being a bear tank.

World of Tank

Now that I have this lovely bear spec, what could I do with it? I mean, it’s not like I tank much on my DK, despite being much more familiar with tanking that class because of my experience in Lich King. Then again, it might be precisely because of that familiarity that I’m reluctant to try it: I want to try new things. Bear tanking is something I’ve never done, and I’m curious to see how it plays.

Perhaps once I get more familiar with the Cataclysm instances I will try tanking them on my DK, too. He’s certainly better-geared than the druid, and like I said, I pretty much know how to play the class already (I even levelled him in tank spec). Honestly, though, I’m not sure. Before I stopped playing WoW last year, I had a warrior tank that I really enjoyed playing, much more thank a DK. I think it was something to do with the mobility, and the variety of abilities at my disposal, and from what I’ve read and in my limited time with the spec experienced, bear is quite similar.

Speaking of tanks…

If you’ve been reading Tobold’s blog lately, you’ll notice he’s been posting a lot about World Of Tanks, a free-to-play team-based tank warfare game. I don’t know much about it beyond what I’ve read on Tobold’s blog (and the occasional Rock, Paper, Shotgun article), but it does sound interesting. I imagine it as a sort of slower-paced Counter-Strike, although that may turn out to be laughably far from the truth. No matter, it’s definitely something I’m going to look into, perhaps to the extent that I forget about WoW for another four months. I shall report back here if/when I have anything interesting to say about the game.

Wednesday, 25 May 2011

Soda: a document editor

Hello! I’ve been working on a thing! It’s called Soda, and it’s a document editor. It’s sort of like Google Docs, only a bit simpler and, well, different. The most important difference is the way you create documents: rather than do it visually, you write them in a sort of code.

Now I realise this doesn’t sound terribly brilliant, but there’s a reason for it. When you type stuff using a WYSIWYG editor, it’s often difficult to maintain consistent formatting across a complex document. The ideal way to do it is to use some sort of style system – Word 2007 has those nice big style buttons if you have enough screen space, while LibreOffice has a handy Styles pallete/list thing.

However, neither of them really encourage the user to make use of these facilities, which I think is a shame, albeit understandable from a historical perspective. The ‘apply formatting to a selection of characters’ style of editing was laid down in The Beginning, and it’s probably far too late to do anything about it now. Still, I made Soda anyway, because it’s something I want to use (I wrote this blog post with it).

Anyway, the idea is you use various ‘control characters’ to apply semantic styling to blocks of text. For example, rather than say “make this text bold, size 22 and centred”, you instead say “make this text a level 1 heading”. In other words, you apply meaning to sections of text, and then you can control how all text with that meaning appears throughout the document (well, you can’t control it yet, as I’ve not actually implemented a style editing interface, but there is going to be one).

Caveat Emptor

Soda is not finished. It probably never will be, completely – there’ll always be something to add or something to fix. In its current state it’s quite usable, and I’ve tried to make sure the main part of it, the editor, has no glaring bugs.

That said, there’s still plenty to do before I’d be comfortable with declaring it fit for general use. Here are some things I have in mind at the moment:

  • Making registration/sign-in easier. I’ve been experimenting with OAuth login and it’s really just a question of putting the code in place, after which you’ll be able to sign in using Facebook, Twitter etc.

  • Smooth off the rough edges. At the moment, when you leave the editor with unsaved changes, there’s no warning/confirmation. Likewise for deleting documents.

  • Editor and preview preferences are not saved.

  • Needs a Markdown formatting guide.

This isn’t a comprehensive list, obviously, but these are the priority things. Like I said, none of them are really show-stopping problems, but they’re definitely obstacles which shouldn’t be there.

So yeah, if you want to poke around with it, feel free. It’d be good to get some feedback, too, as it’s hard to know what kinds of issues users may encounter when approaching it fresh.

Oh yeah and I know it’s silly, and I really do keep meaning to do something about it, but after logging in you need to click the ‘Your saved documents’ link at the top to create a new document. Once I’ve put the OAuth stuff in place, you’ll be redirected to that page after signing in or registering.


Friday, 15 April 2011

Download Sizes: A Rant

I'm on a rant roll this week. Today it's about download sizes, why the hell they're so big and WHAT IN THE NAME OF JOVE IS IN A DECOMPRESSION UTILITY TO MAKE IT 29MB?!

Twenty-nine megabytes! I'm talking about Stuffit Expander, a program designed solely to decompress and browse the contents of .SIT archives. That's all. That's what, 2MB of code at most? What's in the other 27MB? Wallpaper-sized bitmap images? Tutorial videos?

And don't get me started on the SELL! SELL! SELL! nature of the Stuffit web page. You have to jump through several hoops just to get the free version of the program (or to even know it exists). It's stupid. It even has a LOOK! FREE* UPGRADE TO PRO VERSION! .app in the downloaded archive. Makes me irate, it does.

Contrast this with FontExampler, which is why I am downloading Stuffit Expander in the first place, since apparently OS X no longer comes with it. FontExampler is a 78KB download. Kilobytes. It downloaded in seconds.

This sort of thing makes me want to learn Xcode just so I can try to at least glimpse an understanding of why. I suspect it's folly, though; I've seen far too much bad software around for years, and I'm no closer to understanding.

Thursday, 14 April 2011

Word Processors: A Rant

Note: this was originally going to include a rant about image editors and their general lack of support for adjustment layers, but it got a bit long so I've put that rant into its own post.

This is a semi-rant about word processors, and how so many of them persist in Doing It Wrong. This is going to be a long post…


"What's wrong with the way they work now?" The basic problem is that word processors are too focussed on character-level formatting. To make a block of text into something that looks like a heading, the common approach is to select the text, change its size using the Font Size drop-down on the toolbar, then maybe make it bold too, or use a different font family. If you want to change the look of a paragraph, you'd select it, then change its appearance using the usual controls.

This works for documents with one heading and where all the paragraphs have nothing else between them, but what about more complex text (like this one)? To continue the old way you'd have to go through the entire document changing each paragraph or heading individually; Microsoft Word even has a tool to make this process more efficient: the Format Painter. Here's what the MS Office help page has to say about it:

Say you've written a report in Word. You like the look, especially your headings, which are 14 pt. Bookman Old Style, centered, green, and bold, with a nice subtle shadow.

Fifteen minutes before you're supposed to present the report to the team, your manager asks you to add four new sections to the report. You spend thirteen minutes adding the information, and the next two wishing that you hadn't chosen such complicated formatting for your headings, since you now have to apply it to all the new ones.

Using Format Painter saves you that time and duplicated effort. Instead of having to manually apply the font, font effects, centered paragraph alignment, and other formatting to each new section heading, you can quickly copy all of the formatting attributes by using one toolbar button.

That's great and all, but it's a case of fixing the symptom, not the cause of the problem, which is that the application encourages users to format text the wrong way.

Ok then smartypants…

Any modern web designer knows that an HTML document should be styled with CSS. Gone are the days of <font> tags littering the page, and <body bgcolor=gray> and the like – these days we do it the right way by separating content/structure from presentation, with a (normally) external CSS file which contains rules on how document the document should look. This allows an entire site's presentation to be changed by editing a relatively small file dedicated to the purpose.

You can see where I'm going with this. I'm not suggesting word processors should use CSS, or that users should have to edit a separate file in order to format their documents. Rather, I just would like to see the applications make stylesheet-based editing the main way to do things. Not the only way, of course: like I said, for very simple documents it's easier to just apply the formatting you want to the text directly, instead of giving the text some structural meaning (heading, normal paragraph, block quote etc.) then editing the style rule for that.

Naturally, many people will reject this idea. It's not what they're used to, they like it how things are, etc. But, for anyone who needs to write a moderately complex document I believe it's by far the better way to work. It lets you concentrate on the content and structure of your document, rather than the superficial appearance. Yes, once you've written your document you could easily spend hours tweaking the style to perfection, but if sensible default styles are provided, or if it's easy to save new ones, this step will be a quick one. This was the thinking behind Soda, my (unfinished) attempt at writing a styles-based word processor: good default styles that let you write nice-looking documents in a structured, easy-to-change way.

With Soda, there is will be no font size or font family drop-down on the toolbar. Documents have a base font size (12pt by default), from which other sizes are derived – level 1 headings, for example, are 150% of the base size. Similarly, you can't change the font family of a block of text except by marking as having some particular meaning (such as emphasised or a citation), then modifying the rule for text with that meaning.

The idea is to enforce consistency and structure throughout the document: using the example above from the Office help page, if you were using a style-based editor the new headings would automatically match the existing ones. There would be no need to to copy styles, with the possibility of missing one, or applying it incorrectly. You just create a heading, and it looks like all the other headings.

To continue Microsoft's example, let's say you were asked at the last minute to make all the headings red instead of green. No problem using the Format Painter if you only have one or two headings, but what if this is a 20-page report with 45 or so headings? Changing one style rule is hugely more convenient than having to go through the entire document clicking each heading to change it to the new format.

But Word can already…

Yes, yes, I know. You can already use Word (and OpenOffice/LibreOffice, and presumably most other word processors) this way. The point is they don't make it as easy as it should be. Word even comes across to me like it's trying to get you to not use the Styles functionality, as if it'd prefer it if you did things the old-fashioned way. I understand why Microsoft do this – people have been using Word for years, and people generally don't like change (just look at how people reacted when MS Office introduced the 'ribbon' interface).

I'm also not naive enough to think that anything can reasonably replace Office in, well, offices. Microsoft and Office are deeply entrenched in the business world, and there's little anyone can do about it. So why bother ranting about it? Mostly just because it's been bothering me for a while, and writing is cathartic, and maybe there's a chance someone more influential than me will read it. A large part of the reason I started working on Soda was frustration with existing tools. I want to make it easy to create good-looking, easily-maintainable documents.

Saturday, 9 April 2011

Saturday, 26 March 2011

Vim to HTML

I just discovered a feature of Vim that I'm not entirely sure is useful, but it's certainly interesting:


It outputs the current file as HTML, including syntax highlighting! To see what I mean, this is the output when run on the main JavaScript file for my piXY application. Set your browser's monospace font to Consolas and what you'll see is pretty much exactly what I see in MacVim (as seen in the screenshot in the previous post).

Monday, 21 March 2011

Big Code

A big monitor can be a big productivity boost.

(click to embiggen, 647KB)

Also, Vim is so great. I've been using it for about 6 months and I'm still learning new things. Like, just the other day I found out you can do diB to delete in the current code block. My .vimrc is 129 lines long now!

Saturday, 19 March 2011


Signs of life! After one week, some of our kohl rabi and radishes are sprouting:

And since it was such a nice day – the first warm day we've had this year, in fact – Tabbs decided to join us in the garden:

Saturday, 12 March 2011

Green Thumbs

A week ago, Zoe and I had an Amazing Idea: we would grow some vegetables! I'm not entirely sure how we came up with this plan, possibly it was me lamenting my ever-expanding belly, and a desire to eat more healthily. It's also the right time of year for such things, and so here we are today with our first set of seeds all planted and ready to go:

We have planted (from left to right):

  • Cucumber
  • Radish
  • Kohl rabi
  • Leek (seeds look like tiny chunks of coal!)
  • Orange-scented thyme
  • Old English thyme
  • Chilli
  • Radish

So, fingers crossed we haven't failed at growing things! In a few weeks we should see some signs of life, at which time more photos will be posted and progress written about.

Saturday, 1 January 2011


Today I started learning to juggle. This is not a new-year's resolution – my brother started a month or so ago and has been trying to get me to learn too, and today for lack of anything better to do, I tried it.

It turns out juggling is much easier than it looks! A handy tutorial video explains the basics of juggling with three balls in less than five minutes, and the concept is really very simple; the difficulty lies in the execution, specifically: being able to throw accurately so you don't have to reach awkwardly to catch the balls.

Considering I started at about 13:00 today, I've already managed to keep three balls going for six or so throws, which I never thought would be possible so soon. Obviously I still need lots of practice, but the best thing is, now that I know the basics it really is just practice – there's not really much more to it, and you get a very clear sense of progression, being able to keep the cascade (technical term) going longer and longer. Moreover, it's such a fun feeling being able to do it, and it also looks really impressive.

I definitely recommend watching the video and giving it a try – you'll honestly be surprised at how easy and fun it is!