The story of my life. As told by me. For more amusing anecdotes, please visit the archive.
I'm no UI expert, but something's wrong with Android.
I'm a big fan of Android. If you don't know what Android is, stop reading now.
However, with this whole new ICS / Android v4.0 new UI paradigm thingie, I've noticed a problem. Take, for example, the new Google Music app running on my Samsung Galaxy SII.
Notice my giant, fat, stubby finger, waiting to pounce on any of the random UI elements that might be presented to me. Smart people will realise that right-handed people who hold their phone with one hand will vastly prefer to press buttons that are nearer the bottom right-hand corner of the screen than to the top left hand corner. This is why the most commonly-used soft button "back" is down there. Google have handily put the playback controls on the bottom as well. However, guess how I get back to the previous 'view', say if i wanted to go back to the current album list? That's right, I hit this button:
See the problem? I can't reach it. That's not the only problem - there's now two buttons on my UI that mean 'back' but do different things. If I hit the conventional 'back' softkey in the bottom right, that just takes me back to the homescreen (if I get to music from the music widget). Basically, to view what else is in the application, I need either two hands or a remarkable amount of dexterity and hope that I don't drop the phone.
It seems to me that this is due to one, or all of the following:
I've got stubby fingers
I'm holding it wrong
The phone's got a 4.3" screen
Google have put the button in a bad place
I'm not saying I know what the right answer is, but this just seems a little wrong. It's even now codefied in Google's new Android design guidelines (see the Common App UI bit at the bottom) - they want the 'Main action bar' to be at the top. The main way to do anything within a typical app is for the thumb to magically extend itself by a couple of inches so you can reach the buttons.
Maybe the buttons should be at the bottom. Maybe phones should be smaller. Maybe I'm genetically inferior. What's interesting is that Apple have been doing this for a while in IOS - those familiar will know that the main place to look for a 'back' button is in the top left. E.g.:
This probably works for IOS, because the iPhone only has a 3.5" screen, so even my diminuative hands should be able to reach it. There's a whole bunch of rumours about the next iPhone having a much bigger screen. I'm curious to know if Apple, who are typically renowned for their UI guidelines, will have anything to say about button placement in the top left of the screen on the newer, bigger devices.
I managed to break a particularly wintry skiing habit this year by returning to (basically) the same place as I went last year. That said, there were many habits unbroken, such as:
Being even more unfit than last year
Falling over a lot
Swearing that "next year, I'll be a lot fitter"
However, there was one crucial difference between this year and last year: 11 people, as opposed to 4 (or 5). This raises the intriguing concepts of duplicate bridge, all the cheese one can eat and cheaper accommodation. In combination, these make for epic funtimes. The utter lack of wifi, despite being advertised as a 'feature' was a bit annoying. On the plus side, it just forced us to go to the bar more often.
I'm rather impressed with my phone, which after 8 hours of GPS tracking and playing music, managed to only lose about 40% battery. Not bad.
Next year, I've decided that I'd like to get a few things before I go. Specifically, a ski helmet that does nice music control with my phone; a GoPro camera (or similar), better ski clothes that don't let half the mountain in when I fall over; and better goggles with replacable lens thingies.
Last year, I made some new year's resolutions in which I decided that I would get certain things done during the year.
Some of these, I managed to do, mostly through inevitability (see, buying a house), or through actually trying (porting this site to Django). Many I didn't do at all. But there's good reasons for all of these (I count 'laziness' as a good reason).
Given all this, I've decided to do the exact opposite this year and have no resolutions at all. I resolve to do nothing specific. If I achieve great things, like world peace, or a new Django middleware module, then so be it. But I'm not promising anything.
One of my new year's resolutions was to release a stable release of Feedling. I have both good news and bad news to report: The bad news is that this isn't going to happen this year. The good news is that there's a very good reason for that.
It's not for lack of trying. I've done a fair amount of work in the little free time I've had this year, and I've both learned a lot and made it a better piece of software. All good things. However, the single biggest problem with it so far is that it's got an awful looking UI.
I'm not a UI designer. I don't know how to make UIs look good. But, I'm prepared to try things and see what works. A while back, I took the decision to port the whole thing over to WPF because it let me do that actual display of feeds on the desktop a lot easier. The main options dialogs still looked a bit crap though.
Recently, I remembered that one of the things WPF is supposed to make really easy is the construction of really nice looking UIs, entirely from markup. It's a little analagous to how you can build really beautiful looking websites using nothing more than a bit of HTML5 and CSS3 - WPF has the same, if a little clunkier, idea of allowing you to spec out your gradients, animations, shadows etc. in nothing more than XML. Yay, XML.
So I decided to play with it for a bit to see what I could come up with. I can't do design, so I thought I'd try and replicate a set of widgets I know looks good on the web: Bootstrap from Twitter.
It's been a steep learning curve so far, but I've got some buttons that look vaguely similar to what Bootstrap gives you, with similar hover and pressed behaviours.
Even if this doesn't get used for Feedling, I might stick it on github, because as far as I can tell, no-one else has been stupid enough to try and do this.
Got ZFS? Want to know how to delete old snapshots?
ZFS is brilliant. As is its ability to snapshot any filesystem. However, it raises an interesting problem: how do you manage and maintain your snapshots?
Anyone can write a script that runs on a cron to automatically snapshot a filesystem and give it a nice name. However, up until today, deleting old snapshots had always been a manual process. Then I learned something about both bash and sed which automated it for me. Simply, I wanted to be able to delete all but the last _n_ snapshots, all from a nice script which I can also whack in cron. I came up with this:
FILESYSTEMS="tank@AutoD-=7 sastank@AutoD-=2"
for filesystem in $FILESYSTEMS; do
set -- `echo $filesystem | tr '=' ' '`
echo $1 $2
zfs list -t snapshot -o name -s name |grep ^$1 |sort -r| sed 1,$2d |sort | xargs -n 1 zfs destroy -r
done
This uses two tricks I didn't know about before. The first one is a hack to fake associative arrays in bash. Because you can't do this natively, you can set up a variable with a bunch of space-delineated key=value strings and then loop over each one and use the 'set' command to assign the key to $1 and value to $2. In the above example, I can say "Keep the latest 2 of 'sastank' but the latest 7 of 'tank'", which is useful.
The second trick is the use of sed to give you a numbered range of lines from a multiline output. Before sed, it looked like this: