Dave Winer wants a programmable twitter client.
Unix had a shell language. DOS had a batch language. Lotus 1-2-3 had its macro language. Emacs is a programming tool as much as it is a text editor. We have gotten out of the habit of making programmable end-user products, but they are still just as important today as they were a couple of decades ago.
What if there were a relatively simple and low-power programming language built into a Twitter client that allowed power users to build their own little apps on top of Twitter.
I have a few thoughts about this. Firstly, I think the reason lots of apps don't bother packaging a programming language any more is that programming languages are better now. The DOS batch language is horrible compared to Python. Or even Perl.
Secondly, Twitter has an API. It's a really really easy to use API. There are clients for it in lots of languages. A unfollow-for-24-hours app would not be difficult to just write.
But more importantly, I have a programmable twitter client. Shelf already asks Twitterrific about the currently displayed tweet so it could display other data about the user. I could do this because just about every application on my preferred platform is already programmable.
Random thoughts about Berlin since I moved here:
It was really really cold when I arrived. But recently it's been a lot warmer. Very nice, in fact. I'm living out of a suitcase because my stuff is being held in storage till I get a house, so I've been having to buy more warm clothes, but apart from a day of snow earlier it's been pretty decent.
Lots of smokers here. Even indoors. It's weird. And annoying, as a smoky bar means that I write off half my wardrobe.
I get phone service on the U-Bahn. This is awesome. I haven't been somewhere without phone service in days. This is beginning to give me a rather blasé attitude towards offline caching.
Living here is a lot cheaper than London. I found a place to live that's about 80m2 in the middle of the city for less than I was paying for a shoebox 45 minutes from the centre of London. But then, most places are cheaper than London..
I can't pronounce words. This is more debilitating than merely not being able to speak the language. I know I can't speak German, but as it stands I can't even read things off menus to order food, or pronounce street names to taxi drivers. I'm reduced to pointing at words on bits of paper. I'm sub-literate in this country. Have to work on that one.
I like it here.
After my previous ranting about Android on the G1, I feel I should write something optimistic about it. I’ve need using it on and off for a bit now, though I haven’t (yet) managed to switch to it full-time, as it doesn’t have an Instapaper client and I’ve become rather attached to Instapaper recently. I’m musing just sitting down and writing one at this point. Nevertheless:
I didn’t initially care about the ability to run background applications, though lots of people were very enthusiastic about it, but this turns out to be billing the feature badly. ‘Background’ isn’t really the point. Perhaps ‘still there’ is a better way of putting it. It’s not that apps can perform actions in the background that is useful, instead it’s that they haven’t had to quit just because I’m doing something else.
For instance, the Activity metaphor is one thing I’m very fond of. It’s a stack, with activities being dropped on the top when you choose something to do. If my twitter client wants to open a web page, it just drops the system web browser activity on the top of the stack, with that page in it. If I navigate around, the hardware ‘back’ button will go back in the browser history to the first page, then it’ll pop the browser off the stack and go back to the still-running twitter client. This is awesome - you don’t have to embed an entire web browser into every single app that might want to open a web page without quitting. And of course the web browser example is just a minor one - apps can call other interesting apps - I could hypothetically open my twitter client’s ‘compose’ activity directly from a blogging application to twitter about it, then pop it off and return to my blogging app, which was still running. More practically, I can open locations in the Google Maps application without losing my place.
Secondly, having my most common apps already open all the time eventually makes the G1 feel almost faster than the iPhone. I still feel enormously constrained by the speed of the device, especially with respect to the keyboard. It’s slow, and there’s no getting round this fact. But switching contexts feels lots faster than on the iPhone sometimes, as it’s a matter of ‘hold home, tap the app I want, and I’m there’, compared to the slick zooming-to-home-screen animation of the iphone, followed by lengthy app startup every time. Sometimes the iPhone animations start feeling like intentional delays put in to distract you from the fact that it’s not ready to show you the thing you’re zooming to yet. Just sayin'.
Finally, we have Spotify. This is where background apps running properly in the background actually matter in the traditional sense. I can listen to my music and do something else at the same time. The iPhone version of the app is lovely, as I said, but also totally useless, as I quite like using my iPhone to read things, check mail, other internetty things, and I also like to listen to music while doing this.
Finding some nice software has helped the Android experience a little.
newsrob - the closest thing to Byline, my favourite offline Google Reader app I've found so far. Doesn't know about starred items, though. And given that I've mostly switched to Instapaper for my offline reading, I'm drifting away from it.
twitdroid - twitter client. I have little to say about this other than it's the one that sucks the least. Damning with faint praise, really. It is getting better, though. It's still being worked on, and this is a big deal.
k9 - an ugly, but damn effective email client. It'll check more than one IMAP folder, for instance, which I love, because I do a lot of server-side filtering.
Annoyingly, as I have (access to) a G1 dev phone, I can't pay money for software. In fact, I can't even see software on the Marketplace if it costs money (or is otherwise marked as 'copy protected'). This means that there's a stack of supposedly-useful stuff I can't try. Most Android users I've talked to strongly recommend Better Keyboard as an alternative to the built-in keyboard, but that's not an option for me. A pity.
So, I'm aware that I presented a review of 'Android running on the G1' as a list of problems with Android. As I said in one of the comments later,
What I'm actually doing is comparing the 2 pieces of hardware I actually have sitting in front of me and that I can put a SIM card into. I know the Hero is better than this. I know there are things in the pipeline that will probably blow the iPhone away, when they actually arrive. But none of them are here, so I can't play with them.
There are comments elsewhere complaining that I'm holding the shortcomings of the G1 hardware responsible for Android's speed or unfriendliness. This is, of course, true. And I don't consider it relevant. It's a single thing to me. I know how it works, and where I could draw pretty arbitrary lines between 'hardware' and 'software', but I really don't think that it matters.
This is still the case - I've been unable to see a Hero running anything other than a looped demo video, though I have managed to grope the hardware and I like it. I've very tempted. But my SIM card is still in the iPhone.
in Blogs and baked goods John August simultaneously uses a new and incompatible baking metaphor about blogging, and argues that..
Most people shouldn’t be running their own blogging software
I agree. Except that I do run my own. In fact, not only do I host my own blogging software, on a machine that I admin myself, but I wrote the whole thing too. Every time I want a feature, I can't just look for a plugin, I have to crack open a text editor. I'm crazy!
I've pondered changing this a few times, and indeed, I've re-written the software a lot in the past, and ported it around various different off-the-shelf systems, and nearly just canned the whole thing and moved to Tumblr on a couple of particularly bad days in the past, but I don't. And I think it's worth explicitly writing down the reason.
I don't really care about the bread. I make ovens and baking trays. The bread (recent inexplicable blogging frenzy notwithstanding) is just a demo of the software. Look! I can syndicate a Flickr photoset and my twittering and Dopplr-driven maps and integrate them into a single page for the trip then tie them into an article about something, then provide a link to put all the photos on a map! The words aren't the important bit.
So that's why I bake. Except that I fry. Whatever.
Well, I was going to use Spotify on Android today. Wanted to take a couple more screenshots. Except that it's self-destructed - the app utterly refuses to run, because there's a newer version on the Marketplace (with no listed changes that apply to me). But I can't download the version on the Marketplace, I get nothing but 'download unsuccessful' messages.
Update later - aah, the Spotify Mobile page now has a direct download link for the app, and specifically mentions the G1 dev phone. Interesting.
adb install -r ~/Downloads/SpotifyAndroid.apk will install the app, assuming you have the Android dev tools installed.
Thus, an application in Snow Leopard cannot use a creator code attached to a document to bind that document to itself.
Snow Leopard Snubs Document Creator Codes
Well, as far as I'm concerned, good. I don't think I've opened a document by double-clicking on it in years - the unpredictability of 'which of the 4 text editors I have installed is going to open this time?' has led me to stick a TextMate icon in my Finder toolbar, and I open all text files by dragging them to that icon. Likewise, I have an Acorn icon there I drag images to. For other file types, I tend to drag them to the Dock. Why on earth would I want the preferred text/image editor of whoever originally wrote this file to affect what application I use to edit it?
Now I might be able to cure myself of the habit, and go back to trusting my computer to open files in the apps that I actually use.
Hurrah, Spotify for the iPhone/Android is released. This makes me very happy. Especially nice is the simultaneous release of the app on both iPhone and Android - I can't think of anyone else who's done this, and for good reason - it's REALLY HARD. So props to them for that.
Random first thoughts:
It's a really fast, smooth app. Almost no delays at all that I've seen. Music starts instantly, menus are fluid, it's all just lovely.
The song position indicator on the iPhone is in the same place, and looks the same, as the volume control in the iPod app. This is going to lead to me doing something stupid some time soon, I can tell.
The play/pause control on the headphones doesn't do the 'right thing'. It controls the iPod application. Not Spotify's fault, I assume, this is all Hidden Apple API stuff.
Another Hidden API Unplugging the headphones doesn't pause the music. Pity.
If you quit and run the app again, it restores what you were doing before perfectly - down to resuming playing music if you happened to be playing at the time. This is one of the best implementations of resume I've seen. But again, it's going to bite me next time I want to show someone the app and it starts playing Britney through the iPhone speakers at full volume and I have to go kill myself in shame.
So far, I think it's great. I'd like 'run in background' support, of course, and I'd like it to use the double-press-home play/pause controls so that I don't have to unlock the screen to control it, and I'd like it to use all manner of other forbidden Apple APIs that they're not allowed to use. None of this is Spotify's fault.
I've also now tried the Android version:
It's an equally wonderful and polished experience. Even on the very slow G1 I have access to in the office, it's pretty fast, and again, the music starts playing instantly. Very nice.
On Android, it runs in the background!
It really needs a home screen widget to control playback, though, the disadvantage of being in the background is that there's the overhead of switching to it every time you want to pause.
It does the same thing as the iPhone version and doesn't pause when you unplug the headphones.
Less forgivable here, as the 'private API' argument is harder to make.
I'd be very happy using either of these apps in the wild, I think.
I have a small collection of screenshots here.
Warhammer Online has a Mac client, finally. Except that, rather than an actual native effort, it's a shitty Transgaming wrapper.
I downloaded it, clicked 'create account', and it crashed.
I left the downloader, once persuaded to work, overnight to get everything. 20 mins after I leave it, as far as I can tell, it hung solid again. So I'm still no closer to finishing this 15 gigs of download, and meanwhile the 10 day trial account I had to sign up to to even start downloading is ticking away. I'll be lucky if I even see the inside of the game at this rate.
I had roughly the same experience when trying both City of Heroes and Eve Online - both also shitty Transgaming 'ports'. Random crashes, graphical glitches, the latest prettiness tends to not be supported, and they're a lot slower than the comparable Windows versions.
It seems to me that Transgaming have done more to hurt the Mac gaming world than anyone else. The idea that you can turn your product into a Mac game OVERNIGHT, without employing ANYONE WHO SEEMS TO CARE ABOUT THE PLATFORM is an absurd thing to peddle.
World of Warcraft runs on the Mac well because every Blizzard game since the dawn of time has run on both Windows and the Mac, off the same install disk. I'm convinced that a significant chunk of the WoW user base are there for the same reason I am - there are no decent alternative (mainstream) MMO for the platform. Until recently, there were just none. Now there is WoW and three shitty Transgaming ports. I assume they won't get lots of Mac users, because their Mac clients all SUCK. Which is self-reinforcing. Why bother putting effort into such a niche platform?