git-osx-installer
created 22 September 2009 in links tagged git, installer and macos.
MacOS git binary installers.
http://code.google.com/p/git-osx-installer/downloads/list...
created 22 September 2009 in links tagged git, installer and macos.
MacOS git binary installers.
http://code.google.com/p/git-osx-installer/downloads/list...
created 08 September 2009 in notes tagged apple, creatorcodes and macos.
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.
created 02 September 2009 in links tagged autograph, macos, snowleopard and software.
10.6-only software that lets you sign things using the trackpad. Yay technology.
created 01 September 2009 in links tagged macos, ruby and snowleopard.
Useful list of things you need to do to get rails happy on Snow Leopard, particularly getting mysql to work and updating macports. Includes a very nice script for finding local gems with native parts and telling you to reinstall them.
http://weblog.rubyonrails.org/2009/8/30/upgrading-to-snow...
created 02 June 2009 in links tagged bandwidth, development and macos.
A mac system preferences pane that lets you arbitrarily limit bandwidth to particular ports/hosts. Useful for iPhone development, anyway. I believe it’s just a GUI wrapper around the mac system packet filter / firewall layer, ipfw.
created 07 May 2009 in links tagged cocoa, macos and programming.
AppKiDo, one of my favourite Cocoa documentation reading tools, has an iPhone-specific version. Yay.
created 19 September 2008 in links tagged macos, preferences, software, twitter and twitterific.
poweruser preferences for twitterific, including client-side filtering of tweets. Useful for talk-like-a-clown-day.
http://www.marusin.com/2008/02/12/setting-twitterific-pow...
created 12 June 2008 in photos tagged book, cocoa, macos and programming.
Third Edition. Yay.
created 28 May 2008 in links tagged installer, macos and 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...
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.
created 23 March 2008 in photos tagged hardware, macos, memory and screenshot.
In an astonishing coincidence, the Mac mini I keep under the telly takes the same memory as the MBP. So having put 4 gigs in the Pro, I suddenly had 2 gigs free I could put in the Mini. Which is an improvement over the 512 it had before..
created 21 March 2008 in links tagged git, gui, macos and versioncontrol.
oooh, pretty. When I have a free moment I must knock up something like this for subversion
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.
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.
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.
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.
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.
Rather than me updating this page all the time, just go to the Shelf project page and get the most recent binary from there.
created 05 January 2008 in blog tagged cluepacket, dashboard, macos, ruby, shelf and 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 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.
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.
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.
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.
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.
created 26 October 2007 in links tagged leopard, macos and ruby.
[[ ..write a Ruby class in Xcode, with outlets and/or actions, and everything automatically appears in IB […] the other way, you can manually define outlets and/or actions in IB, and the corresponding Ruby code will be pasted created ]]
http://trac.macosforge.org/projects/ruby/wiki/WhatsNewInL...
created 30 July 2007 in links tagged install, macos and ruby.
I don’t seem to have delicioused this, despire using it all the time. What can I say? I rebuild my computer a lot.
http://hivelogic.com/narrative/articles/ruby-rails-mongre...
created 19 June 2007 in links tagged macos, software, uncompress and zip.
File decompressor for macos - handles almost everything. via ssp.
created 18 April 2007 in links tagged application, install, macos, software and 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...
created 28 March 2007 in code tagged cocoa, django, macos and python.
DjangoKit is a framework that will take a Django application, and turn it into a stand-alone MacOS application with a local database and media files. It started as more of a thought experiment than an effort at producing a real application, but I have it working, and you can package perfectly usable stand-alone applications with it.
DjangoKit is currently hosted in a Google Code repository, so go there for downloads and source, or just get the svn tree directly at http://djangokit.googlecode.com/svn/trunk/.
created 22 February 2007 in links tagged macos and unicode.
This utility is great and I could not live without it.
http://earthlingsoft.net/ssp/blog/2007/02/unicodechecker_112
created 21 February 2007 in links tagged filesystem, fuse, macos and python.
linked because it lists how to install the python-fuse bindings under macos. And boy, is it nasty.
created 15 January 2007 in links tagged macos, software, sshkeychain and universal.
Universal SSHKeychain binary. Yay.
http://collectivity.goof.com/articles/2006/04/08/sshkeych...
created 12 January 2007 in links tagged filesystem, fuse and macos.
oooh, user-mode filesystems for macos. Bwahahahah
created 30 November 2006 in links tagged holycowmybrainhurts, macos and tex.
GAAAAAAAHHHH. Installing TeX is as hard as USING it.
created 16 November 2006 in links tagged development, leopard, macos and xcode.
oooh, Objective C 2.0 looks shiny - it’s getting far too high level for something that’s compiled. Can’t wait…
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.
created 31 October 2006 in blog tagged macos, programming and subversion.
If you’ve ever edited files over samba, or on a fat partition, using a mac, you’ll know that it scatters annoying ._foo.txt files all over the place when you save things. These files are the system’s way of compensating for these filesystems not supporting ‘real’ resource forks, and they’re a complete pain. I feel this pain especially when I’m trying to see what’s changed in a subversion checkout using svn st, and it produces 30 lines of ? ._foo.pl complaints.
Fortunately, subversion allows you to ignore this stuff. Edit the file ~/.subversion/config (which is created the first time you use the subversion client), and search for the ‘miscellany’ section. Uncomment the line [miscellany] if it’s not already, and also uncomment the line beginning global-ignores. This line is a list of glob patterns for files that should be ignored when doing a svn st, or svn add (if you svn add on a folder, it won’t add any backup files in the folder, for instance). Add the pattern ._* to the end of it, and your resource fork woes are over…
created 16 August 2006 in links tagged addressbook, macos and thunderbird.
A build of thunderbird that will talk to Addressbook.app. Lovely
created 15 August 2006 in links tagged development, macos and python.
A useful heap of python packages for macos
created 28 June 2006 in links tagged cat and macos.
Neko. For MacOS.
http://homepage.mac.com/takashi_hamada/Acti/MacOSX/NekoOn...
created 04 June 2006 in links tagged graphics, macos, programming and python.
things to play with when I get back to a desk that has a mac on it.
created 03 June 2006 in links tagged linux, macos and opensource.
one of the things which perennially disappoints me is the number of OS X machines there in the hands of free software hackers
created 06 May 2006 in links tagged cocoa, macos and objectivec.
On the possibility of garbage collection in MacOS. Having to do my own memory management always put me off Objective C, but frankly given the existence of high-level bindings like pyobj, I don’t see me ever using this.
created 03 October 2005 in blog tagged cocoa and macos.
Wow, core data is shiny. James re-wrote (the core of) Blotter in 10 minutes using it, so after a bit of polish, I have a 0.9 release, written in pure ObjC/Core Data. Alas, you need 10.4 to run it, and XCode 2.1 to build it (an 800 meg download! ow) but that’s the cutting-edge future for you. Sigh.
created 25 September 2005 in blog tagged hardware and macos.
Today’s shiny toy is BluePhoneElite, which sits on the lappy and talks to the phone via bluetooth. It does the usual proximity stuff - lock the screen when the phone goes out of range, pause iTunes and display bezels when there’s an incoming call (which is great when the phone is set to silent mode and I don’t notice it ringing..), and random other stuff (yay applescript). It’ll talk to your address book locally, and let you add unknown numbers to in from your incoming call list. I can use it to send SMSes using my nice big keyboard instead of fumbling around on a tiny phone keyboard. All this stuff is boring - Romeo will do the proximity stuff nicely, for instance, and is free, no less, and the SMS-writing stuff is handled perfectly well by the Apple Address Book. For me, the killer feature of BPE is that I can read past SMSes on the phone using it. This isn’t new technology - by far my favourite program in my ancient Psion was an app that would sync my SMS inbox/outbox with the phone, so I could read and write them on a device with a real keyboard. But that was 6 years ago! I’ve been looking for this app for ages.
Of course, there’s a downside. Given the amount of time I spend within bluetooth range of this machine, being bluetooth paired to it at all times is killing the battery life of the phone - it’s gone from easily >1 week to about 2 days. That’s quite a drop. I still haven’t decided if it’s worth it to me. Hopefully I’ll decide before the software trial period runs out and I have to pay for it..
created 22 April 2005 in blog tagged cocoa, macos and python.
I discovered Cocoa bindings and verily, they are the greatest thing since sliced bread. Not that I’m very fond of sliced bread.
I’ve re-written Blotter from the ground up to take advantage of them - it’s much nicer and more reliable now, although I totally changed the back-end format, so anyone actually using it and wanting to upgrade is in for a shock. I don’t think anyone is, though. I mostly wrote it because I saw xPad and didn’t really want to pay for something that seemed so trivial..
Anyway, Blotter 0.7 release - it’s usable, although unhelpful the first time you start it. I use this app constantly, myself, so I like to think it’s reliable. I’ve certainly never lost data to it. (I’m doomed now, of course.)
Curses, 0.7.1, with some small fixes.
created 22 March 2005 in blog tagged macos.
..because I keep having to tell people about it.
If you like your terminals to be white-on-black, like me, you’ll get annoyed, because when two terminals overlap, there’s no visible line between them. Set your terminal background colour to ~3% grey, instead of pure black. You’ll be able to make out the shadow of the upper terminal overlaid on the lower, which serves as a very good border, but the contrast in the terminal will still be very strong, you’ll never notice it’s not really black.
created 09 March 2005 in blog tagged cocoa, macos and python.
Finally, we have a public release of Flame. Getting this out the door has taken a while, but I’m very happy with it’s current state, so let’s see what the rest of the world thinks.. I have a project page here but the ‘real’ app page for linking is the husk.org one.
created 09 December 2004 in blog tagged browser, macos and unicode.
Today I discovered that safari ‘magically’ downgrades latin-1 input in form password fields to their nearest ascii equivalents - typing ‘pásswörd’ into a password box actually submits ‘password’. But you can cut and paste non-ascii in and it works fine. I’m very confused.
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…
created 16 August 2004 in blog tagged macos and rss.
So I wanted to see which of my NNW (
set errorlog to ""
tell application "NetNewsWire"
repeat with check in subscriptions
set err to error string of check as string
if length of err > 1 then
set errorlog to errorlog & “Error for ‘” & ((display name of check) as string) & “’ (” & (RSS URL of check as string) & “): ‘” & ((error string of check) as string) & “’\r”
end if
end repeat
end tell
tell application “BBEdit”
make new text window with properties {contents:errorlog}
end tell
Pretty nifty. Course, you have to have BBEdit. But making it use TextEdit shouldn’t be hard.
created 15 August 2004 in blog tagged browser, macos and tabs.
Dave Hyatt, the insane fool who is the public face of Safari, has actually asked for comments about the UI of Safari. So naturally every single comment and trackback mentions tabbed browsing. Hell, there’s even a comment saying roughly ‘I’ve never used tabbed browsing, but lots of people clearly like it, so they should put it in’. I consider this another good reason to kill all humans.
My house as a whole isn’t a big fan of tabbed browsing. blech will grouch on about them for hours. hitherto has actually ranted in a public place about them. But given the massive number of pro-tab advocates out there, I find myself needing to stick an oar in and splash as many people as possible as well, just to keep things even. And not only that, but I have the opportunity to trackback to someone who’s invited it. Oh, the excitement.
So. Tabbed browsing. it’s been around a while, I personally first remember it in Opera, but my first serious exposure to it was in Galeon, under Gnome 1. And verily, it was Good. I could put my browser on one virtual desktop, set all links to open in tabs, and then click links merrily from other apps. When I was done, I’d go back to the desktop that held my web browser, and gosh, look, there’s a big heap of links here! Shiny! When I switched to Phoenix (or whatever it’s called nowadays) under Gnome 2, I used in exactly the same way. And it was still good. And faster than galeon, even.
But that’s all missing the point. I was forced to use tabs there because the window-switching system is totally brain-dead under Gnome. I typically have 20+ browser windows open. Hell, I can have 40 if I get distracted. (aside: I loved galeon for this - the crash recovery was second to none. I’m afraid to open that many windows under any other operating system because if the browser dies, I lose them all.)
The problems with window-based browsing:
I’m now on a different platform. I use a mac. And the mac has per-application switching. So my Command-Tab list is manageable, I can switch between a relatively small number of running apps using the dock. And once I’m using the app, I can have a window list of all the windows belonging to that application. So I know I want a terminal, so I switch to the terminal app, and then I can flick through the terminals I have open until I find the right one. I can switch to the web browser, and easily get a list of open web browser windows. In fact, I can click and hold on the web browser icon, and jump straight to a required web browser with one (long) click. Handy.
Essentially, the task/window switching on the mac isn’t like windows. It’s very different, much more than appears superficially. Under windows, and under linux, tabbed browsing seems to work, giving you the same ‘switch to app, then decide what window I want’ behavior. It’s a different interface on the whole MDI nightmare that windows suffered from for so long. Under linux… hell, linux is a world to itself, as per usual, and I’m not going to judge it. But the mac has a way of dealing with this problem. It’s always had a way of dealing with this problem. People need to stop coming up with other ways to solve it, ways that aren’t as good.
Oh. And an actual feature I would like? It would be nice to be able to click on an RSS feed from a site, and have NetNewsWire subscribe to it. So I need the ability to set programs to be run for specific MIME-types. That would be nice.
created 15 August 2004 in blog tagged macos.
this morning, blech pointed me at a wonderful daring fireball article about file replacement and the trash and things. Now, most of my comments on this stuff is said better by other people, as usual, but there’s one point that I feel hasn’t been covered.
Application bundles, .pkg files, etc, these are all files from the point of view of the user - I can almost never get the finder to behave as if they’re something else. Even copying them around, the finder displays the copy as if it’s only one file, a win over the way Risc OS did this. (oh, yeah, riscos. It had bundles 10 years ago. whatever, stale rant.) But they’re not, they’re folders. So, instead of files replacing files, folders replacing files, etc, we have to special-case bundles as well. That takes us from 4 possible interactions (file-file, folder-file, folder-folder, file-folder) to 9. Quite a jump.
Personally I’m a fan of the ‘trash the overwritten thing’ approach, and let the user do what they wanted. But on the other hand, I’ve been bitten really quite badly by the ‘running things out the trash’ problem. You can’t run them by double clicking them, because the trash is ‘special’. But you can run them if the dock points at them… Very annoying.
created 14 August 2004 in blog tagged macos.
I’m a mac user. I have a blog. Union law therefore requires me to mention Konfabulator. It lets you put ‘widgets’ on your desktop - little image / XML / javascript components that do stuff like calendars and clocks and cuteness.
It’s all too unbearable for words. I used it for almost 4 hours before it drove me crazy. I have tools that do all this stuff. The default widgets are just not compelling. The one thing that would make it bearable would be if I (a) the widgets were on a layer behind the desktop icons, and not fully-fledged windows, so they don’t keep popping to the foreground on top of my other windows, and (b) if I could lock the layout so I can’t click on them and they won’t take the focus. But then they just become ‘further for macos’. Which would be a good thing, actually.
Oh, and the widgets aren’t configurable. Hell, resizable would do, I really need a frikking battery meter taking up half my visible screen area. And yeah, all the default colour choices are fine, I don’t need to change the colod of the stock ticker (stock ticker? Why do these things always have a stock ticker?) so it’s not INCREDIBLY UGLY. Sigh.
created 14 August 2004 in blog tagged macos.
So, an experiment. Take a folder on your Mac OS X computer, and let’s hypothetically assume it’s a folder full of really important documents that you mustn’t lose. Now, rename the folder. For some reason, the name you want for the folder is ‘Really important files for my .app’ because.. uh.. dunno, you’re developing an application and you need to store files for it. Or something. Unlikely, sure, but possible.
But wait! It didn’t work! The finder just stripped off the ‘.app’ from the end of the folder name. Darn. Oh, well, these things happen. Lets get back to work… Hang on. I can’t open the folder any more. I double click on it, and nothing happens. what’s going on?
This is a truly stupid behaviour. The finder didn’t strip the ‘.app’ extension, it’s hiding it, because it thinks that the folder is now an application package. Now, application packages are a truly wonderful idea that I’d be incredibly impressed by if I hadn’t seen them 10(?) years ago in RISCOS. But your folder here isn’t an application package, it’s just a folder with a silly name.
I’m not sure where the stupidity lies here. The finder should not let you rename a folder like that, for a start. But using file extensions on a folder name to indicate that the folder is actually a fundamentally diferent sort of object (from a user point of view) is also stupid. As is the fact that you can’t rescue the folder once you’ve done it except through the terminal. Which is an advanced user concept, damnit, and I shouldn’t have to use it EVER. Hell, the only way you can even see your files again is to right/control-click and select ‘show package contents’. Of course. What a simple, basic-user findable concept.
Now, blech has pointed me at a little app for OS 9, at least, that can fix this problem - Package First Aid.
But this is almost a whole other rant. When there’s an application that exists to repair an OS fuck-up, this should be a bad thing. In the same vein, windows XP has superb system state rescue code, so you can roll-back to earlier versions. You need it because it’s so easy to completely destroy the system. Rather than fix the problem, they just produce really nice looking band-aids.
In the same way that the finder shouts at me if I change the file extension on something, it should at least shout at me if I perform a potentially destructive (and it is destructive from the point of view of a non-expert user) operation on a folder. Especially one so non-obviously destructive.
created 13 August 2004 in blog tagged bonjour and macos.
useful things that rendezvous should be able to do:
I also really want these things to work from non-apple machines as well - I want the server at home to advertise the house music collection and SMTP server, despite the fact that it’s a linux box. But that’s harder to whinge about.
from a conversation with blech.
created 13 August 2004 in blog tagged macos, mp3 and music.
blech has been on at me recently to finish my half of our evil ‘Wire and string’ project - it’s a cunning, cunning plan which we really should put more effort into. Anyway, here’s a heap of self-congratulation that I’m done, and he should get off his butt and implement the other half.
Essentially, the problem is as follows: We have a computer in the lounge that can play music, hooked into the network and the stereo system. But there’s a complete lack of decent software to control the thing. We searched and searched, and all the interfaces we could find sucked.
Now, the best music control interface we know of is iTunes. We want iTunes to control what is being played on the lounge machine. But it’s not a mac. Hence the goal - have iTunes on a mac locally, pick up what song is selected/playing, and send that to the lounge computer, which will then play it through the amp. blech took the iTunes half (the Wire), I got the server half (the string).
Now, there are no non-awful MP3 playing interfaces for perl. None. Almost everything that I could get to compile at all (and didn’t need non-free libraries you can’t download any more) wrapped either mpg123 (now that’s a pretty web page) or xmms. The mpg123 wrappers seemed to be the best bet, and for the most part they work, but there are… issues. I didn’t get proper events for songs ending or stopping, it was quite easy to wedge the thing to the point where you couldn’t control it any more, etc, etc. | believe these are limitations of the command line mpg123 interface, and I can work round them, but I don’t want to have to patch the source code just to get a working system, and it makes distributing things a complete pain. I also need the server to be absolutely robust, it’s no good having to SSH in every 5 mins to fix the server - the whole point is to avoid having to think about it.
Wrapping xmms isn’t much of an improvement. It’s got a much nicer interface to control it, but, of course, it’s controlling xmms, which is a seperate app that needs to be running, and it needs to be running on a machine with an X server. Hard, given this is a headless server.
But, in the end, that’s what I used. I was saved by Xvfb - I can run an X server on the machine without having to worry about graphics cards, and launching xmms from the cgi is possible, so it will run as the right user and everything. After a lot of messing with annoying permissions, I have a CGI that will make noise.
The other problem is that the Mac only knows where the music is on the machine locally. Rather than having the iTunes end convert the local path into something the server knows about, I take anything that might possibly be a path to some music, and trim things off the left of it till the right hand side matches something in the ‘locate’ database. Disadvantages - you need an up-to-date locate database. Advantages - you can pass just about anything that is music, and the server will have a shot at playing it. In practice it works really quite well.
So, yeah, code . w00t.
created 13 August 2004 in blog tagged macos, philosophy and windows.
There was a throw-away comment by Dan Hill in an article on Elite about the desktop metaphor and the workarounds we have to use to make it work. Now, I don’t think exposé is a work-around. I think it’s the most sophisticated window-management system I’ve ever used, it’s lovely. But it does hilight something that’s need nagging at me for a while. The Desktop.
Now, essentially, the desktop metaphor is broken. It’s not a desktop at all. It’s far too small, for a start, I’ve heard it described as the airplane seat metaphor. But the most important distinction is what’s underneath all your bits of paper. Suppose you have a real desk. Pick up all the things on it and look underneath them. What do you see? You’ve got a completely blank desk. Ok, now hide all your windows and things from your computer ‘desktop’. Got a blank desk? No? Didn’t think so.
Eventually, everyone needs a hack in their windowing system so that they can get at the desktop. Windows has ‘Minimize All’, or in extreme cases, ‘Show desktop’ (there’s a difference between these two. Try explaining the difference to a non-geek). For me, Windows always seems neatest with all windows either maximized or minimized. The fact that the only graphical way of getting at your hard disk is the ‘My Computer’ icon on the desktop means that you need to be able to get at it easily. Mac OS X 10.2 and before never had a really good solution to get at the desktop. There are various third party hacks but the only decent way I ever used was to Command-Option-Click on the desktop, or Command-Option-H with the Finder focussed. This hides everything except Finder windows. Of course, if there are Finder windows blocking your desktop, you’re stuffed. Ah, well.
Exposé solves this - one button and all your windows get out the way. Yay! Finally they’ve solved a problem Windows solved 5 years ago. (Or whenever, I don’t care).
I’m tired of working round this. I can shuffle through all of my windows with Command-Tab, but I can’t get to the desktop without moving all the windows out the way? This is an annoying special case, and I don’t like it.
New philosophy. Nothing will go on the desktop. Nothing at all. I won’t display drives on it, I won’t save files on it. I’m going to change it’s permissions so that I can’t write to it. My default download folder will be a folder in my home directory. We’ll see how long I last before I go insane.
Update - I follow this up here
created 13 August 2004 in blog tagged macos.
The Mac OS X Finder has an interesting toolbar. blech will happily rant about it for hours, and I agree with him, toolbars do not belong on Finder windows. Or at least, not in the icon view Finder windows, and neither of us like the Browse view at all. But that’s missing the point. I’m convinced the toolbar on Finder windows is a vestigal shelf, although I can’t find anything on the web that backs this up, and I’ve never used NeXTStep, where the shelf was originally seen. You can drag things onto it from finder windows, and they’ll stay there and you can run / open them by clicking on them.
The way it fails in this is that you can’t drag files off the toolbar into another folder and move the original - dragging things off removes them from the toolbar. Arguably better from a least-surprise point of view, but it removes one of the nicest things about the shelf, it’s use as a scratch area. Oooh, thought, this is exactly how the right hand side of the dock behaves, except you can’t drag apps onto the right hand side of the dock.
Oh, and there aren’t any tooltips, so if you have ‘icons only’ toolbars, you can’t tell where things point. That’s annoying.
created 13 August 2004 in blog tagged macos.
blech and I were bored, so we played with FileVault. And it’s shiny. As long as you’re on the local machine, it all works transparently. When you have FileVault turned on, your home directory contains a single file, {username}.sparseimage. This is a standard Mac OS X encrypted disk image, certainly I can just mount the thing using a different user no problem. When you log in as a FileVault user, your encrypted image gets moved to ‘/Users/.{username}, and the sparseimage is mounted in your old home directory. When you log out, this is all undone. Pretty nifty.
Aside from the encryption, which is nice, the main benefit I see here is that suddenly your home directory is a really nice, easy-to-back-up .sparseimage file on it’s own. I’ve been having problems recently trying to find a nice way of backing things up, and this might be it. Slight worry is that only Panther can mount the .sparseimage, Jaguar has problems, so restoring needs a fairly recent machine. But I can live with that. I ph33r what will happen if I try to back up the image while I’m using it, though, so I’ll probably have to log out and in as another user to run backups. Which will be annoying, but bearable.
The next thing we wanted to try was network access. And this is where things get not-so-nice. Essentially, it looks like the process above is the entire system, other than the nice GUI to turn FileVault on and off. When you connect to the home directory using AFP or Samba or something, and the user is not logged in on the local machine, you get a folder containing one file, the disk image. Not very useful. If you have Panther, of course, you can just locally mount the image at this point by double-clicking on it. But that’s 2 steps, not very Applish. And of course, on any OS other than Panther, you’re out of luck, Jaguar can’t mount it, and Windows / linux don’t stand a chance.
If, when you log in, the user is logged in on the local machine, you get their home directory, and I should point out that this is their home directory being sent unencrypted over the wire. Not good if you had paranoid reasons for using FileVault, which will be most people.
Of course, I can’t think of a nice, simple, elegant way of having this do the Right Thing. The best we could come up with is that a Panther system should realize it’s connecting to a filevault home directory, and remount the .sparseimage locally again, so that the only thing going over the wire is encrypted disk image. This has the advantage that you could host these things on a linux / Windows server as well. But I have no clue how you do locking on a .dmg, it sounds too horrible to contemplate, so you’d need a way of negotiating with all the other clients so they couldn’t mount the drive at the same time.
So yeah, the current system has the advantage of being very simple, and Just Working. But not having network access to my home directory unless I’m logged in will be annoying.
created 01 January 2000 in code tagged cocoa, dnssd, macos, software and zeroconf.
Flame is another take on Rendezvous Browser - Paul and I decided that grouping by service wasn’t particularly useful, frankly - we’d rather group by person / machine, and see all the machines on the local network, and the services that they were advertising.