Unread Count Tracking
I wrote up my unread count sparkline generator code. It watches my various online services and tracks how many unread items I have in each. For instance, you can see that today I suddenly got a lot of unread items in my RSS reader. I blame the Economist.
Having these graphs has had 2 interesting effects. Firstly, I’ve found it lots easier to keep my unread counts down. For instance, immediately after building it I realised I had far too many things in Instapaper, reminding me to actually read them.
The other effect it has had is that I’m slightly more inclined to read things just before I know the hourly monitoring script triggers. I know I’m being observed now. Maybe I want to deal with this email now, so the graph moves down a notch. I know this is silly and irrational. I assume it’ll fade once the novelty of the tracking has worn off. But I felt it was worth mentioning.
I’ve been playing with iPhone development recently, and have ported Flame to it. Well, re-implemented, really – Flame is written in Python and there’s no PyObjC for the iPhone, and nor is there likely to ever be. But Objective-C is getting easier as I get practice, and this app even has a modicum of proper memory management.
This time, the source lives in GitHub/jerakeen as git seems like the cool kid this week and I need the practice. I’d expect it to build and run in the simulator just fine, and it runs on my device, so it’ll run on yours if you know the magic hoops to jump through. It’s possible that this app might actually make it to the App Store at some point, though it’s somewhat niche.. You never know.
Let me know if you have ideas for improvements. For a start, I’d like certain services to be linkable – HTTP servers should open their web page in Mobile Safari if clicked, for instance.
There’s been a new release of Byline, my favourite iPhone app, and it’s great. It syncs my folders, so I no longer get swamped when my economist feed grows 90 items, and I can add notes from the phone, which is not something I had realised I needed till I got it. I haven’t used the new version in anger yet, but it’s making me happy already.
Apart from the look. What’s with this faux-wood effect? Ewwww.
It also no longer shells out to Safari to read news items when I tap on an URL. This seems wrong, but because the iPhone won’t multi-task, it saves me app-switching time. I’m torn on this one – while I think that web browsing should be done by the system web browser, it’s so easy to embed a web view that’s just as good as Safari that I’m not losing out on anything here. I can’t bookmark things, I guess. But I can open the page in Safari from Byline if I want to do that. So I guess ‘embedded web browser’ wins on convenience over abstract theoretical goodness. Just like the iPhone itself.
I should write up ‘things learned from taking only an iPhone to the middle of nowhere where there’s no internet access‘. One of those things was, I really want a ‘that worked’ for updating my twitter status using Twitterrific. And anything else that does a write over the network.
Avoid notifying users of success.
If a read operation fails, meh. But if I just wrote a twitter update, and it doesn’t go through, I want to know. Twitter might fail, the app might fail, the connection might fail. I want success notification, rather than 1 minute of waiting for a failure message that might not arrive. THIS IS NOT A NORMAL SITUATION. But nevertheless. Maybe the rule should be ‘avoid notifying users of success where success is expected‘.
Another useful app – Byline is great when there’s wobbly bandwidth – usable even when the only connection is a spotty non-edge GSM link. Admittedly, you have to just put the phone down somewhere with a connection for 10 minutes while it slurps. But things stay slurped. It’ll pull the associated images of RSS items too, so I can look at my Flickr feeds easily.
It’s got disadvantages – you have to switch to Google Reader to read your feeds for a start. In the absence of a local Mac GUI client to rival NetNewsWire, this is painful (Fluid helps). And Byline doesn’t do ‘folders’ (tags? what does google reader call them? I’m new to this), so you just get a big flat list of unread items, which could be annoying if you subscribe to lots of feeds. I’ve recently gone through a grand purge of all my feeds and mailing lists, so my traffic levels are pretty controllable.
Except that my Economist subscription feeds did their weekly ‘the magazine shipped’ thing, and dumped 90 unread items in the list. And these are unread items that are interesting and might need reading. Unlike with the iPhone NNW client, I can’t selectively drop subscriptions from being visible on the phone – it’s all or nothing here, and Byline loads only 25 (I think) entries at a time for off-line reading. The Economist provides only a partial feed, so I had to sit where there was bandwidth and go through them in batches, ‘starring’ the ones that looked interesting then hitting ‘fetch more’ and waiting. Once I’d done this, and it didn’t take too long, the experience was great – I had the full content of the Economist articles synched locally for convenient reading (and the Economist has a nice one-narrow-column layout that lends itself well to iPhone reading).
Not that anyone cares about Backup.app any more. But I was noodling with it this morning, and it turns out to use a smaller font in its menus than every other app on my system.
A herejustnow iPhone app. I’m having to learn Objective-C to do this, which I can just about put up with. CoreLocation turns out to be quite easy to use, too. Now all I need is the ability to install the thing on a Real iPhone.
I realised that the version of EmusicR (my Emusic download client) I’ve been using myself for months now wasn’t actually the released version. Oops. I’ve added Sparkle into it (mental note – write up how to do this in PyObjc, because it’s really easy and worth doing) and put up a new binary on it’s code page. If anyone cares. Me, I prefer it to the real client.
Another week, another Shelf release – this one is 0.0.12 – read the release notes or download the binary.
Loads of stuff in this one, but muttley may like the fact that you can now turn off the background poller and have Shelf look for context only when you hit a global shortcut key. This will also make life nicer for people with smaller screens who don’t want this widow popping to the foreground every time it can figure out who you’re looking at.
Other than that, there are lots of improvements. Shelf should be faster and make less gratuitous network requests. Feed display is prettier, and I make an effort to display recently updated feeds at the top, rather than in random order.
So, I have a new release of Shelf, having finally been inspired to put a bit of effort into the scary refactorings I was putting off. It’s internally much better than the last one, though I still have places I can take it. Feature-wise, it’s only a little better, though. Feeds look nicer. It should be fast, and caches the contents of remote feeds better, so it’ll thrash the network less.
The big thing is the Google Social Graph integration. Disabled by default, because it’s a privacy nightmare, I can ask Google who the current page in our web browser belongs to, to found out a person to display in Shelf. Once I’ve got a person, I can also ask Google what other URLs they advertise about themselves, so you no longer have to stuff dozens of URLs into your Address Book cards just to see interesting things about people. Looking at Brad’s homepage is a good torture test..
I’m alwo working towards making Simon happier, with a couple of preferences determining how the window should be displayed. It’s not all the way there yet, but I’m moving..
Get the full release notes here.
So, here’s a trivial implementation. It’s hard-coded to look at my links and friends, but that’s not hard to fix, I just don’t care. The thing I’m happiest with is the way it’s entirely client-side, and pulls in things from the delicious JSON api as it needs them. And it’s pretty small, too..
Files associated with this page: