Ramblings of the GrammarMan

My name is Sam. I write here sometimes

0 notes &

The future of computing, pt. 2

There will always be a place for powerful, local hardware. Specialist content creators, for example, will always need more power than a £200 netbook can provide. But what about for the rest of us? For the “normal” people?

So imagine a world where all your services had decent interoperability, that is you could open files stored in Dropbox with Google Docs, or Office online or any other cloud based word processing software. Imagine a world where everything “normal” people do with computers was achievable through a web browser. What would that mean? All the heavy lifting was done on a server, so you wouldn’t need to spend hundreds of pounds buying a powerful, but portable and long-lasting laptop. You could spend <£200, because you don’t need as much power. The engineering is easier, so the cost comes down. What about the running costs of a cloud operating system though? Who pays for that? If you can get a cloud laptop for £100, would you consider £20/m for cloud services? Upgrade the laptop every 2 years, you’re looking at less than £300 per year for all your computing needs! It’d be like today’s computing, but cheap and all your data would be available to you, and only you, anywhere you wanted it.


You pay £40 per month. The company gives you a new laptop every year, you use their storage services, their cloud apps and their local software. You can’t use this other service that fills your needs better because it isn’t compatible with the storage service the company provides. You think maybe you can change the operating system on the laptop but the software is checked and verified and you’ll get a fine if the company finds out you’ve tampered with it. There are ways around it of course, but you can’t use a soldering iron. You’re friend sends you an MP3 of this track you’ll like, but it get deleted from your computer and you get an email about pirating and a hefty fine. You buy some music from the company’s store, pin it for offline use because you’re travelling for a few weeks. After 2 days the music won’t play, the computer says something about a license check, and needing to be online. When you find a wifi hotspot a local cafe it still won’t play. The laptop says something about region licensing. You’re trying to focus on what you’re writing, but there’s this ad in the sidebar, bouncing around advertising some new episode in this series you’d just started watching. How did it know you’d seen the first one? You’d only just downloaded it, you’d not even told anyone… Wierd…

Free, as in beer, software needs to be supported. Free, as in beer, hardware needs to be supported. We need to fight for our right to run arbitrary software on hardware that we own. It won’t be long before we’re renting the hardware, and having every piece of software we run curated and monitored. What a terrible future it will be


0 notes &

On Talon

Talon is a Twitter client for Android: https://play.google.com/store/apps/details?id=com.klinker.android.twitter

On the face of it, it’s very good. Seemingly well designed, follows guidelines and works well. After using it for a while I’ve come up with some problems I have with it. To the complaining!

First run:


Nice welcome screen, gets you logged in easy enough.


Why do I need a button to do the initial sync? Maybe warn if on mobile data I guess, but it seems unnecessary to me.


The follow me nag kinda bugs me, but whatever. Just take me to the app!


Another button?!


The first run how-to animation takes ages, is inconsistent with other Klinker apps (the transparent system bars are active during this animation in EvolveSMS but not in Talon) and shouldn’t even be needed. If you need a how-to guide on first run something’s wrong with your design. Especially in a Twitter app… I don’t think they even need it in this case, the app’s simple enough.

Default settings:

I’m going to preface this with the biggest issue I have with the settings: there are too many settings. Make some sensible decisions about how the app should work, then don’t make them configurable. If a whole bunch of your users complain, change the design to something else.

Theme settings

This should probably be called UI settings; we’re configuring the UI, not just the theme.


I have a few problems here. Why does one toggle change 3 things? I like the hiding action bar (although I think there’s a better way of getting a similar effect*) and transparent system bars, but not the actionable toast bar. Why is it written in camel case? (More to the point, why is camel even a thing? Don’t do it, ever). If the configuration options must exist, make these things seperately configurable and use switches, not checkboxes. We’re not multi-selecting files here, we’re turning things on and off.

*RE hiding action bar: I’m not sure how I feel about sometimes hiding UI elements. I think it’s done in Talon to make use of the transparent notification bar, but a well designed header could make good use of that without hiding a key piece of the UI, similar to how EvolveSMS uses a contact header image.

The to first toast is irritating, ideally it wouldn’t even exist. But if it must exist, it should only show when the user flings their timeline. If I’m scrolling slowly it’s because I’m reading the tweets, so don’t clutter the UI. In its current implementation: off by default please.


When is camel case even more annoying? When it’s inconsistent…

Timeline settings

There are too many options here, don’t be afraid to make decisions for the user. For example, the tweet look options are fine as their defaults, they don’t need to be configurable.


This setting is so flawed it’s not even funny. The fact it’s on by default is completely contradictory to what it claims to do; it should be off by default and turn the long click to open tweet and short click to expand on when the setting is turned on. A more pressing issue though: this changes a fundamental behaviour in the app, why is it even configurable in the first place?!

Sync settings


This should be off by default because it’s unclear how much data it consumes, whether or not it’s active over mobile data and it clutters my notification area with things that aren’t notifications. I understand, from a technical perspective, why this puts a persistent notification up but the misuse of my notification area bugs me.


Timeline, mentions and DM refresh rate should be one value, not 3. I can think of no reason why they’re separately configurable other than that the API allows it. The refresh rate should also be faster than “manual” by default, maybe 1 hour.

Notification settings


Alert types is a rubbish name for what this setting actually does, it changes how the app notifies you. Wake screen should be off by default as my phone ends up getting unlocked in my pocket when I get a tweet with this setting enabled and it’s inconsistent with the way most other Android apps notify you of things. I don’t really get why this is a pop-up when every other setting is just spammed checkboxes in a listview. The alignment issue in the OK button is a bug in the theme I use on my phone, and it’s gonna bug the crap outta me now I’ve seen it.


Timeline notifications is another weird pop-up with a weird name. The timeline notifications should be off by default, I’ll read my timeline when I want, not when you notify me of updates to it.


Interactions notifications should be greyed out when Talon pull is disabled (which is is in this screenshot)

And now to complain about something that’s not an option. Re-notify. This app will contantly re-trigger the notification I-don’t-know-how-many-times a minutes until you open the tweet or click “Read” in the notification. This should not be a “feature”, notifications stay in the notification shade until you do something about them anyway. That’s why there’s a notification shade in the first place: to manage notifications until the user is ready to process them. I often ignore my phone at work, or leave a notification I’ve read in the shade as a reminder to do something with it next time I look at the phone. I don’t want this one app to constantly whine for my attention. It’s inconsistent and irritating.

Advanced settings


Use in app browser. No, I have a browser installed. Use that please.

Open tweets to webpage. No, open the browser when I click the link


Use shortening service is extremely badly named, seeing as it allows you to post longer tweets.

Advanced windowed is stupid and annoying and a terrible use of my screen space. I end up with dead space around the content I’m trying to view. Just use the whole screen.


Jumping workaround. Excuse me? Fix the bug properly please…

Memory management options… The user should never have to manage memory. Ever

Navigation paradigms.

All Klinker apps have these weird sort-of tabs for their settings. You can only swipe between them. Why not use proper tabs? You can still swipe between them, and the user can also tap straight to the screen they want. They also couple this with a slide out menu that’s completely different to the slide out menu in the main app. That menu should be global navigation, so not constantly changing.

0 notes &

First attempts at Lunar photography :-D  Taken with a DSLR through a telescope, no mounts

0 notes &

OpenSans CM10.2

I really like OpenSans, so I made a zip to install it on CM10.X

Then I got bored of flashing it after every nightly, so I made use of CyanogenMod’s addon.d feature. OpenSans should survive updates now

OpenSans: https://dl.dropboxusercontent.com/u/3382637/Android/Fonts/OpenSansCM10.2.zip

Here’s Roboto, if you want to revert: https://dl.dropboxusercontent.com/u/3382637/Android/Fonts/RobotoCM10.2.zip

The Roboto zip also deletes the addon.d script (or should do, I’ve not actually tested because I’m lazy)

0 notes &

Doctor Who

Spoiler alert! I’ve you’ve not seen the series finale of the most recent Doctor Who series then be prepared for spoilers if you continue reading. You are, of course, welcome to continue reading but it will spoil an integral part of the ‘plot’.

"[He] has a secret that he’ll take to the grave, it is discovered". According to that episode the thing that’s discovered is the grave, not the secret. Now I’m no expert on grammar, but I’m pretty sure the subject of that sentence is the secret hence the ‘misconception’ of the characters, and indeed the audience, that it was the secret was discovered. Here’s the process I’m going though to figure this out:

So a subject can be found by looking for subject-verb pairs, the first one I naturally go to is “secret” and “discovered”, but take is a verb so there’s a pair there: “secret” and “take”. The second subject-verb pair is “it” and “discovered”, but what does “it” refer to in this sentence?

The sentence is actually a compound sentence, so needs a semicolon:

"[He] has a secret that he’ll take to the grave; it is discovered". We can see that the two clauses are entirely independent, "[He] has a secret that he’ll take to the grave. It is discovered", so the problem is definitely the use of the word "it", which just refers to a "thing" that’s been previously stated; in this case it’s either the secret or the grave, so I don’t see an unambiguous way of looking at this quote.

The Doctor has a go at ol’ what’s-her-face for “not listening” as if it’s obvious what that sentence means, when it clearly isn’t. The sentence is inherently ambiguous; this isn’t the Doctor or River outsmarting the problem with a heightened understanding of English, it’s just them making slightly different assumptions. I’d argue that they make the ‘correct’ assumption because they have the full context for the sentence.

The reason for this post? It kind of annoys me when writers use “characters don’t understand language” as a plot point, because for the most part it’s not actually bad grammar that causes the problem. That sentence is grammatically correct, but ambiguous, and written to be so. The problem was lack of context, and the Doctor seems to view this as his companion’s fault. (The fact I can’t remember her name speaks about how strong a character she is)

0 notes &

What happened to my ankle?

It looks like this:

I’ve been putting pictures on Twitter and, despite saying this, I keep getting asked what happened.

I was playing Ultimate Frisbee, I caught the disc, stopped and turned my ankle over. It’s not broken, just twisted. I can walk fine. Looks nasty though, right? :-)

Thanks for your concern

0 notes &

The HTC One

It’s the only phone that has swayed me from buying a Nexus 4 when I get the money. I’m pretty committed to buying a new phone when I get the chance, my Galaxy S 2 is annoying me now due to lack of developer support. That’s not something I expect to change with the HTC One, but the latest version of Sense looks like something I might actually be able to use, and the combination of that camera and that screen make it very compelling. I’d still prefer phones to be a little smaller, 4.7” is still pushing the envelope for me, but it’s better than the 5” monsters that everyone else is making.

That said, I’ll review what phones are around when I actually get ‘round to buying one