jerakeen.org

by Tom Insam

notes☴

code☷

links☲

photos☵

Flame for the iPhone

Flame for the iPhone

created 02 December 2008 in notes tagged browser, development, flame, iphone, network, release and software.

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.

Byline 2.0

Byline 2.0

created 14 October 2008 in notes tagged byline, iphone, release and software.

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.

http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSof...

Released a new EmusicR

created 02 April 2008 in blog tagged emusic, emusicr, python, release and 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

created 28 March 2008 in blog tagged macos, python, release, shelf and 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.

Full changelog for this version here.

Released Shelf 0.0.12

created 14 February 2008 in blog tagged macos, release, shelf and 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.

Released Shelf 0.0.11

created 06 February 2008 in blog tagged macos, release, shelf and 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.

Shelf 0.0.10

created 11 January 2008 in blog tagged macos, release, shelf and 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)

created 10 January 2008 in blog tagged macos, release, shelf and 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

created 08 January 2008 in blog tagged cocoa, python, release, shelf and 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

created 06 January 2008 in blog tagged macos, release, shelf and 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.

Update: [Version 0.0.2 now available](http://2lmc.org/files/jerakeen/Shelf-0.0.2.zip) - it’s a little smarter, and tries to parse microformats in the source of the current Safari tab now. Another Update: Hmm, packaging things is _hard_. Never mind, try [version 0.0.5](http://2lmc.org/files/jerakeen/Shelf-0.0.5.zip) - it actually _works_, and does RSS feeds and Flickr photos and twitter messages and threading and things. I’m getting happier and happier with this..

Rather than me updating this page all the time, just go to the Shelf project page and get the most recent binary from there.

DuckCall 0.0.3

created 26 November 2007 in blog tagged duckcall, leopard, pyobjc, python and release.

DuckCall didn’t work work under Leopard. Noone really noticed, so I assume noone uses it. Which is probably a Good Thing. But if you were sitting on the edge of your seat, waiting for a compatibility release, you can now relax. DuckCall-0.0.3.zip is now available.

It’s also 80k zipped, as opposed to the 3 megs of version 0.0.2. Hurray for bundled PyObjC. This means that this version will only work under Leopard. But there are no other changes between it and 0.0.2, so all you laggards don’t need to feel left out.

New in Rhino 1.6R6 - MDC

New in Rhino 1.6R6 - MDC

created 01 August 2007 in links tagged javascript, release, rhino and strict.

oooh, strict mode for JavaScript. And Rhino is catching up with all the nifty SpiderMonkey stuff I like. Still no deconstructed assignment, though.

http://developer.mozilla.org/en/docs/New_in_Rhino_1.6R6

LWN: Patch: Linux 2.6.22 released

LWN: Patch: Linux 2.6.22 released

created 09 July 2007 in links tagged linux and release.

the full ChangeLog from 2.6.21 is over a hundred thousand lines, and weighs in at 3.8MB

http://lwn.net/Articles/240973/

DjangoKit

DjangoKit

created 28 March 2007 in blog tagged cocoa, djangokit, macos, python and release.

DjangoKit is a framework that will (eventually) allow me to package just about any Django application as a stand-alone MacOS .app. It’s not finished, but I have a working demo now.

licenses, daap and md5

created 12 March 2007 in blog tagged daap, license, music, python and release.

Another day, another python-daap release. Version 0.6 allows you to connect to shares requiring a password, and fixes some problems with the source tarball. However, there are still outstanding licensing issues that may entail an annoying change to the library in the future.

PythonDaap 0.5 released

created 12 February 2007 in blog tagged daap, python and release.

I’ve released another version of PythonDaap, with trivial changes suggested by Aren Olson to return more metadata. Nothing particularly special, but that doesn’t mean I can’t make a release. Find it here.

Using the iSight for Adium / iChat

created 22 November 2006 in blog tagged cocoa, hardware, python and release.

I have a lovely shiny office MacBook Pro sitting in front of me, and in the middle of the top of the screen is this little annoying black square. It’s an iSight camera, and it can always see me.

It’s annoying for two reasons. Firstly, it can always see me. There’s a little light to tell you that it’s on, but it’s perfectly capable of blipping on briefly without you noticing. But mostly it’s annoying because I hate the thought of such a high-tech piece of technology just going to waste up there.

I really have no real use for this thing at all - I don’t obsessively catalogue my book collection, I don’t hold frequent multi-person videoconference sessions, and I already have a camera. I’ve also seen enough PhotoBooth output to last me my ENTIRE LIFE. But merely having no good reason isn’t a good enough reason to stop me, so I came up with a use for it.

DuckCall is an application that runs in the background, and takes a picture of you every 30 seconds using the iSight. Then it’ll set this picture to be your iChat or Adium ‘status picture’ thing - the little picture of your head that other people see in their contact lists. Setting away messages is so web1.0 - when I’m not at my computer, you know it, because you can’t see me. It’ll also try to be smart - it won’t do anything if neither app is running, for instance.

Naturally, it’s not perfect. For the Adium stuff to work, you need to be using a recentish beta - the ones with the single buddy icon shared between services. And it has a nice little todo list, like all my projects.

The biggest thing wrong with it, though, is the Frankenstein nature of the thing. I write my crazy application prototypes in PyObjC because it’s very easy to get something working. But there are no Cocoa bindings for reading from the iSight (why??) so I shell out to an external tool and save a file from the iSight to disk. Then I use AppleScript to load the file from disk and set the icon of either of the IM apps that happen to be running (or both, I guess, if you’re weird). Using Python as the wrapper makes the app about 3 megabytes larger than it really should be. If someone wants to re-implement it in Objective C, that would be good.. :-)

Weirdy, I’m not sure if I like the philosophy of the app. I keep getting scared that it’ll take photos of me at bad times. Given my stated reluctance to publicise my life it’s odd that I even considered writing this thing. I comfort myself with the thought that no matter how stupid I look in this photo, it’ll be gone in 30 seconds, and most people will never see it…

Get it here and tell me what you think..

Flame 0.2.2

created 01 November 2006 in blog tagged cocoa, macos, python and release.

A very minor release of Flame - we were too aggressive in de-duping the service list. It’s possible to have more than one service with the same port an IP address, if they have different names. Thanks to Bruce Walker for the bug report.

PythonDaap 0.4 release

created 06 August 2006 in blog tagged daap, python and release.

I’ve put this off way too long. But Fernando Herrera has found a bug with python-daap and Tangerine (a very cool app, although subject to an annoying variety of disconnect bugs). The fix for this, combined with various safer handing of non-utf8 ID3 tags, is easily enough to encourage a 0.4 release.

Bot::BasicBot 0.7

created 11 June 2006 in blog tagged irc, perl and release.

  • Updates for new PoDo::IRC
  • No longer do 2 server connects on startup
  • the connect test doesn’t break itself by faking a connection first

from __future__ import * » MochiKit 1.2

from __future__ import * » MochiKit 1.2

created 22 January 2006 in links tagged mochikit and release.

http://bob.pythonmac.org/archives/2006/01/21/mochikit-12/

Class::Persist 0.30

created 10 December 2004 in blog tagged perl and release.

I’ve done something I’ve wanted to do for ages - get another release of Class::Persist out. This one I consider massively improved over the last one - it’s dropped some of the nastier dependancies, doesn’t require it’s own magic database tables to be created, can properly put objects into more than one database, and, my personal favourite new feature, all objects are maintained properly as ‘singletons’ - you can only have one copy of any given object around at any one time.

The release should be here: Class::Persist 0.30.

Bot::BasicBot 0.5

created 01 December 2004 in blog tagged irc, perl and release.

Bot::BasicBot 0.50 is released. The big thing in this one is nick tracking - the bot will keep track of what nicks are in a given channel, and if they’re opped or not - this is mostly so I can re-write slavorg on top of Bot::BasicBot, and bin slavorg2…

Blotter

created 24 November 2004 in blog tagged cocoa, macos, python and release.

PyObjC is very, very cool. Even not knowing python, I prefer using it over CamelBones, if only because the out-of-box experience is nicer. But a very compelling reason is that making standalone apps with it is soooo easy. Thus, I present Blotter 0.5, an experimental notepad application. It stores notes in a SQLite back-end DB, and gives you revision history, etc. It’s gonna be buggy, I wouldn’t use it for storing nuclear missile launch codes just yet, but it’s already dogfood, after very little development effort.

Oh, and scuse the nasty icon…

toybox

created 16 August 2004 in blog tagged cocoa, macos, perl and release.

Look, ma, a web browser.

Honestly, I don’t know why I bother blogging. All I say is ‘look, I wrote this shiny toy’. Bah.

Release Frenzy!

created 16 August 2004 in blog tagged irc, perl, release and wiki.

Had a bit of a release thing over the weekend, new versions of Bot::BasicBot, URI::Title, AudioFile::Identify::MusicBrainz were released, and I’ve also given the world URI::Find::Simple. Now I need a release of Bot::BasicBot::Pluggable to sync it up with Bot::BasicBot, and I have some german translations to integrate into CGI::Wiki::Kwiki. Insane, I tell you.

AudioFile::Identify::MusicBrainz

created 13 August 2004 in blog tagged mp3, perl and release.

After much muttering back and forth between blech and I, I have written and released AudioFile::Identify::MusicBrainz. The old MusicBrainz client relied on the C library they distribute, which was silly for something that sent and recieved pure RDF, so a pure-perl implementation was just begging to be written.

So, upsides, it works, there’s exactly one sort of query you can send it, but that’s fine, it’s the important one - you can say ‘I know this about a track, tell me more’. The next step is to give the user a nice choice, and then let them write the updated information back into the ID3 tag.

Downsides, I’m not using ‘real’ RDF parsers, I’m using XML::DOM. This worries me, frankly, I’d much rather do the right thing, but I get a headache trying to make the perl RDF stuff work. There’s an RDF::Simple out there now, though, so maybe I’ll try that…

I’m going to get a reputation here for stupidly long module names, you know.

CGI::Wiki::Kwiki

created 13 August 2004 in blog tagged perl, release and wiki.

Well, in the end, rather than fold my code into CGI::Wiki and its example scripts, Kake has persuaded me to release the thing as an actual module. So, the world now has CGI::Wiki::Formatter::Kwiki and CGI::Wiki::Kwiki. I’m not sure about the name of the latter, but given that is was mostly written as a Kwiki importer and front end, it made the most sense. I hope that people also realise that it doesn’t have to have anything to do with Kwikis at all, and can be used as a stand-alone wiki front end..

They still have very small version numbers, the formatter needs code, tables and comments, and the Wiki front-end needs tests (bad me), but as far as I can tell, for the most part they both work. The code is much cleaned up from the “last release”:/blog/programming/CGI-Wiki, all modular and everything, I’m much happier with it now.

You can get them both from CPAN.