iPhone use while in the middle of nowhere
Posted 18 August 2008 in notes tagged with [apple] [byline] [iphone] [offline] [rss] [software] [twitter] [twitterrific]
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).
Simplistic Complexity » Jeez People, Stop Fretting Over Installing RMagick
Posted 08 August 2008 in links tagged with [install] [macos] [rmagick] [ruby] [software]
Utility to install rmagick on macos. Might be useful if I ever want to try using the system ruby for development.
http://www.simplisticcomplexity.com/2008/06/06/jeez-peopl...
Backup.app menu font size
Posted 25 July 2008 in notes tagged with [apple] [backup] [fonts] [software]
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.
Huh?
A herejustnow iPhone app
Posted 07 July 2008 in notes tagged with [apple] [corelocation] [herejustnow] [software]
280slides.com
Posted 06 June 2008 in links tagged with [javascript] [presentation] [software] [web]
An astonishingly good implementation of web-based presentation software. Very hard to believe it’s written in JavaScript.
Leopard Firewire Target Mode OS Install
Posted 28 May 2008 in links tagged with [installer] [macos] [software]
Cribbed for the ability to install packages from the command line. Can also work around that annoying inability to install packages directly off the macos install DVDs.
http://northstarlabs.net/2007/11/04/leopard-firewire-targ...
Released a new EmusicR
Posted 02 April 2008 in blog tagged with [emusic] [emusicr] [python] [release] [software]
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.
Released Shelf 0.0.13
Posted 28 March 2008 in blog tagged with [macos] [python] [release] [shelf] [software]
Shelf 0.0.13 is available, though it’ll auto-update itself if you let it. Not a lot in this one, the most interesting thing for me is that Dopplr support is back in and works a lot better - there’s now a button to click that’ll get you a token, for instance. I’ve also squashed various crashes for cases where data was bad.
Released Shelf 0.0.12
Posted 14 February 2008 in blog tagged with [macos] [release] [shelf] [software]
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.
OS X Icon Editor - Download the Icon Editor Pack Free!
Posted 12 February 2008 in links tagged with [icns] [ico] [icon] [macos] [software]
MacOS icon production resources, via mark
Released Shelf 0.0.11
Posted 06 February 2008 in blog tagged with [macos] [release] [shelf] [software]
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.
Trivial iPhone / iPod Touch delicious front end
Posted 23 January 2008 in blog tagged with [ajax] [delicious] [iphone] [ipod] [javascript] [software] [touch]
I’ve been looking for an excuse to play with IUI for a while now, and finally I found one. I wanted a way of getting at things that I and my friends have saved in del.icio.us, and the native web interface isn’t very usable on the iPod touch. So let’s implement a delicious client using IUI! Also, let’s implement it in pure client-side JavaScript, so I don’t have to run a server anywhere!
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..
evolutionrgb - Google Code
Posted 11 January 2008 in links tagged with [game] [ipod] [pointless] [software] [toy]
Utterly, utterly beautiful. Fire, water, seeds, clay, interacting on the iPhone. And it’s tilt sensitive, so you can affect the direction of gravity by waving the ipod..
Shelf 0.0.10
Posted 11 January 2008 in blog tagged with [macos] [release] [shelf] [software]
Amazingly, Shelf is still fun to work on. Hence version 0.0.10. Read the release notes.
Yet Another Shelf Release (0.0.8)
Posted 10 January 2008 in blog tagged with [macos] [release] [shelf] [software]
These version numbers are just jumping around randomly now. Well, ok, they’re not, but not every version escapes to the world. Anyway, download the new Shelf - this one has an icon! And it now includes Sparkle, so it’ll update itself automatically from now on - you can stop visiting my blog every 10 minutes to see if I’ve released a new version now.
Incidentally, Sparkle is <i>stupidly</i> easy to install - everyone should use it. It’s awesome.
I’m going to start keeping a proper ChangeLog now, because I have no idea what’s in this version. Better cacheing? I think it’ll also use AddressBook.app as a source of Clues, so if you’re having trouble getting the app to do anything, just open Address Book and look at a card - you’re guaranteed to see something.
A usable Shelf release
Posted 08 January 2008 in blog tagged with [cocoa] [python] [release] [shelf] [software]
Right, Shelf has now reached version 0.0.6 - download it (there are newer versions out now - get those). It’s good enough that I’m running it full time now. Thanks to Mark Fowler, it can now pull clues from Firefox, which is a relief. I’ve also added Address Book and iChat support, although the iChat stuff is a little hokey - it assumes you’re not using tabbed chats, and that you speak English. Sorry. The iChat AppleScript dictionary is lousy.
Musings
It’s been suggested that I could work out twitter feed and Flickr photostream URLs about people based on their name / nick / email. I’m currently shying away from deriving too many things about a person magically. For instance, I could work out (and cache, obviously) a Flickr username for a person from their email address. Quite apart from the horrible privacy implications of sending the email addresses of everyone you read mail from to Flickr, I just don’t like the approach. I’d much rather encourage a rich address book with lots of data in it. This has the side-effect that Shelf will also recognise my Flickr page as belonging to me.
Shelf ported to Python
Posted 06 January 2008 in blog tagged with [macos] [release] [shelf] [software]
Ruby turned out to be a bit of a pain for Shelf - I needed many external libraries and the Ruby bridge does a fairly bad job of packaging them all. I’ve ported the thing to Python now and it seems better - in fact, it’s better enough that I can actually produce a binary! Check out the downloadable action! - MacOS 10.5 only, and this is very unlikely to change. Deal with it.
It’ll pull context from Safari, NetNewsWire, Mail.app, Adium and Twitterific. Adding new apps is easy, I just haven’t yet. It’ll display only the person’s name, email addresses, and street address. And there will be errors if the street address is incomplete. It’s a PROOF OF CONCEPT. Jeez. Quit whining. There is code to fetch the recent feeds of their pages, but it’s disabled because the app blocks while it’s doing it, making it practically unusable.
Rather than me updating this page all the time, just go to the Shelf project page and get the most recent binary from there.
Tales from the Loonybin » Demystifying Mail.app Plugins – A Tutorial
Posted 06 January 2008 in links tagged with [macos] [mail.app] [plugin] [python] [software]
Writing Mail.app plugins. In Python. Rocking.
http://www.bazza.com/~eaganj/weblog/2006/03/29/demystifyi...
Shelf - Context for MacOS
Posted 05 January 2008 in blog tagged with [cluepacket] [dashboard] [macos] [ruby] [shelf] [software]
I really miss Dashboard. It was an effort to display some context around whatever person you were interacting with at any given moment - look at an email from Paul, or open an IM chat with him and you’d see things that he’d blogged or uploaded to Flickr recently. Genius. From the screenshots, it looks practically magic, tying into incoming SMS messages, IM conversations, the RSS feed reader, etc.
Alas, I never had a fully working Dashboard setup locally, mostly because applications had to actively participate in the process - they sent things called ‘cluepackets’ to the dashboard application containing hints about the current context. Because of this design, every app involved needed its source code patched and a recompile. This was a complete pain. Obviously, had everything gone to plan, the patches would have been merged and everyone would have been happy. I presume that Dashboard failed because the bootstrapping process was so hard that no-one used it.
Anyway, inspired by both Dashboard and Aaron‘s obsession with the address book, I’ve had a stab at doing it again, but worse.
Shelf
Shelf will look at the current foreground application, and try to figure out if what you’re looking at corresponds to a person in your Address Book. Then it’ll tell you things about them.
Update 2008/01/08: I have downloadable versions of Shelf now. Go to the project page and download one.
It’s for MacOS. Because on MacOS, I have OSA - I can interrogate most (well-written) applications about their state in a beautiful, language-agnostic and fast manner. I can ask Mail.app for the email address of the current mail. I can ask Safari what the URL of the foreground window is. I can ask Adium for the account details of the current chat. I can ask NetNewsWire for the homepage URL of the current subscription. And I can ask the system what app is in the foreground. I can also interrogate the system address book via the Cocoa bindings for same and find out what users have got that email address, or URL, or AIM screen name. And then I can take all the other information about them in their address book entry, and figure out some context. Oh, and the thing’s written in Ruby, because the Ruby scripting bridge is a thing of serious beauty and should be played with by everyone.
Good thing
So, advantages. I don’t have the bootstrapping problem, because most MacOS applications already have enough of a scripting interface that I can extract information from them. Firefox is proving to be a serious problem, alas, but I’ve hit no other apps I can’t get something useful out of.
Once I have an Addressbook record as context, I can update the interface with a picture of the person and their name/company (direct from the address book, so easy). As a ‘will this work?’ experiment, I’m parsing every referenced URL in the address book card for RSS feeds, and displaying those as context. And (because I work there) I have special-case Dopplr support that tells me where the person is in the world and where they’re going next. This means that when someone IMs me, a window pops up and tells me where they are, when they’re back, and what they’ve blogged recently. Awesome.
The system address book is great - it has multiple email address and URLs for people, so I’m indicating things like Dopplr username by just putting the url to my traveller page in my address book entry. I can parse the username out later and use it to call the API with. This has the advantage that if I visit my Dopplr page in Safari, hey, wow, that URL is in the address book, and it knows that it’s me again. Flickr is the next obvious choice for special-casing, but the principle extends to anything.
Bad thing
Disadvantages. Firstly, urgh, I’m polling. Every 2 seconds, I ask the system for the foreground application, then ask that application (if I know how) for context. This is probably a little heavy (is it? I’m guessing..). Secondly, I have to do explicit work for every app out there. The huge advantages of Dashboard’s cluepacket approach over mine were that packets were pushed instantly on a change of context, and that a new application was responsible for sending its own cluepackets.
Actually, this is easy. My app should have a ‘change context’ OSA method that other applications can call. Smart apps can tell me when their context changes, and I’ll just poll everyone else. Once I’ve taken over the world, everyone will be pushing messages to me, and I can deprecate the poll interface. Genius.
Recently, most of the crazy apps I’ve put here have been labelled as ‘proof of concept’. This one is different. This one probably won’t even build on your computer. I’m putting things up here as a was of musing about technique. For instance, Dashboard had a far better design than this app. It had a nice pipeline thing going for it, whereas I just have a class per foreground application, this class must produce an Address Book record, then I just interrogate every context producer for information and display it. This is silly - if I’m looking at Paul’s Flickr photos page, I don’t need my app showing me the thumbnails again, I might be much more interested in where he is right now. Hell, in a perfect world, it would work out the dates of the photos I’m looking at, and show me where he was at that time.
Future
Clever things I could (and want to) do:
If the foreground URL doesn’t belong to a user, look for hcard markup in the source HTML and try to derive a person from that. Right now, for instance, I’ll only recognise your Flickr page as belonging to you if it’s one of the URLs against your address book card. But Flickr pages are marked up with enough hcard that I should be just able to figure it out.
More intelligence around context - as above, if I’m looking at a blog of a friend, I want to see other things, not their blog again.
Remembering connections - if I figure out a local person from a Flickr page via hcard markup rather than an Address Book URL, why not remember their Flickr username and display their photos when they email me?
Many of these features are difficult, mostly because of my core design right now - I derive an Address Book entry from the current application, then derive context from that entry. This hampers cleverness somewhat - I really need to pass around a lot more information about how I derived this person, and keep a local cache of conclusions about them. Maybe the person isn’t in my address book - I get email from people I don’t know! But their email address might correspond to a Gravatar so I could show a picture of them. Maybe the mail has some URLs in the .sig and I could find their blog. Maybe they’ve commented on my blog in the past and I’d like links to the comments. Likewise, if I find, via hcard in the source of a page, that a page is about someone I know, should I update Address Book and add URLs for them? Probably not a good idea. So I need a local store of connections as well.
Now what?
I don’t know. It’s very tempting to rewrite the thing in Python before it gets any more complex. Partially this is because the Ruby feedparser dependencies are a bugger, but mostly it’s because I don’t want my python sk1llz to atrophy down to nothing. Recently everything I do is in Ruby, and I don’t like that. Shelf also desperately needs some work done to make it asynchronous, and cache things - when I look at an email right now, it’ll hang for 5 minutes while it goes off and fetches 20 RSS feeds, every time I change the person I’m looking at. Not exactly pleasant. But the ‘find out about a person’ is really just a trivial example of the sort of things you can do once you know who they are. The ‘derive context from current machine state’ side of things is much more interesting.
Apple - iWork - Trial
Posted 08 August 2007 in links tagged with [apple] [iwork] [software]
Download trial of iWork ‘08. Can’t find out how to actually get here by following links, so ta to mattb for linkage.
New Launchpad service automatically builds and hosts user packages
Posted 24 July 2007 in links tagged with [deployment] [linux] [software] [ubuntu]
The ability to build a simple shippable binary is one of the biggest things I love about developing for MacOS. It might just have become possible to actually ship binaries for linux as well.
http://arstechnica.com/news.ars/post/20070724-ars-at-ubun...
message2net
Posted 01 July 2007 in links tagged with [bluetooth] [macos] [phone] [sms] [software]
Manage SMS messages on phone from MacOS, via bluetooth. Icky non-native interface, but does the job.
http://www.novamedia.de/e_pages/e_produkte_mac_m2n_phone....
The Unarchiver
Posted 19 June 2007 in links tagged with [macos] [software] [uncompress] [zip]
File decompressor for macos - handles almost everything. via ssp.
coconut-flavour.com - coconutWiFi 1.3
Posted 14 June 2007 in links tagged with [macos] [network] [software] [wifi] [wireless]
Menubar utility that’ll tell you which of the available wireless networks are closed/open. Why doesn’t the built-in wireless menu do this? Free, too. Yay.
FrozenSilicon Labs: Home
Posted 26 April 2007 in links tagged with [gui] [macos] [pandora] [software]
Hurrah for web applications crammed into .apps
Noodlings » A Modest Proposal: A New Way To Install
Posted 18 April 2007 in links tagged with [application] [install] [macos] [software] [todo]
Apps should copy themselves off disk images if run from a disk image. Very true. I should make all my apps do this, it should be easy. [update later: wait, no. One of the comments has it right. Disk images suck - ship .zip files with .apps in them]
http://www.noodlesoft.com/blog/2007/04/15/a-modest-propos...
collectivity » Blog Archive » SSHKeychain Universal Build
Posted 15 January 2007 in links tagged with [macos] [software] [sshkeychain] [universal]
Universal SSHKeychain binary. Yay.
http://collectivity.goof.com/articles/2006/04/08/sshkeych...
Code Sorcery Workshop » Pukka
Posted 16 November 2006 in links tagged with [delicious] [macos] [software]
cocoalicious stopped working in the WORST POSSIBLE WAY - it looked like it was posting, but wasn’t really. Bah. Mark recommends this.
A Long, Painful History of Time
Posted 07 April 2006 in links tagged with [date] [hate] [software] [time]
HandBrake homepage
Posted 05 November 2005 in links tagged with [dvd] [linux] [mac] [rip] [software]
a most excellent DVD ripper
Mail Act-On 1.3.1 - Key Stroke Plugin for Apple Mail.App
Posted 04 November 2005 in links tagged with [email] [mac] [mail] [software]
I love this thing - I use it to mark mail as spam, so it’s easy and I don’t have to touch the mouse.
The State of Linux Graphics
Posted 14 September 2005 in links tagged with [linux] [programming] [software] [x11]
Rands In Repose: What To Do When You’re Screwed
Posted 19 August 2005 in links tagged with [management] [programming] [software]
Developing an iPhoto export plugin
Posted 10 August 2005 in links tagged with [cocoa] [export] [iphoto] [mac] [plugin] [software]