Rich Wareham of Desktop Manager

For DrunkenBlogs' 300th post I have a special treat for my 12 loyal readers: a chat with Rich Wareham, the creator of Desktop Manager for OSX. I also couldn't resist the gentle irony of putting this up on the 4th of July. Remember kids, cultural differences are meant to be bridged, and the sharing of alcohol and pejorative phrases are generally a good start.

As a quick primer, virtual desktops are a way of organizing open windows on your screen instead of constantly hiding or minimizing windows or applications. You might have one virtual screen for emailing, one for web browsing, and another for your design application. Switching between them usually involves either a key combination or a graphical pager which holds icons representing open windows. That's a really lousy way of explaining something that will become obvious once you've downloaded it and tried it, so I'd encourage you to do so.

Just about every *nix desktop comes with them, so switchers from that side of the fence often lament on their absence in Apples' OSX. There are other virtual desktop solutions for OSX, but Desktop Manager has garnered much praise for being high-quality, free, and open source. It hasn't won any awards that I'm aware of, but it sure as hell gets the coveted DrunkenBlog Seal of Approval™.

Rich was gracious enough to sit down for another lengthy chat covering a whole slew of topics, everything from iBooks to the GPL to hacking Quartz. Keep your eye on this guy.

What's your coding background, how'd you end up using macs, and what led to your deciding to to start development of Desktop Manager?

I started coding very young. In the January sales of 1986 (when I was five) my parents bought me a Commodore Plus/4 plus a few games. Most home computers in those days came with some variant of BASIC installed on them along with a book which told you how to program. It just so happened that the programming book was the first one I got my hands on. I was a really fast learner then and devoured the book. Indeed I mainly learnt to read via computer books.

Luckily my parents realized then the advantage of having a computer-literate son and helped me all they could. Encouraging me to experiment with programming techniques, saving the results to tape and being suitably impressed at my emerging skills. My father had worked for Dragon Computers (a Welsh computer manufacturer) and was somewhat skilled himself so he could help me.

I slowly became hooked and, usefully for me, it was right at the height of the home-computer programming era in England with plenty of magazines and books (some even intended for children like the Usbourne series) to help me out. I soon progressed further than the Plus/4 would allow and moved onto Acorn machines.

I stayed with Acorns until I started University in 1998. They were wonderful machines to program with good documentation and developer support. They also broadened my mind when it came to 'alternate' Operating Systems.

In the year prior to University I found Linux and again felt that initial thrill of excitement that digesting that programming book gave me. Here was a totally new OS (for me) to play with.

During my undergraduate degree I became more proficient with Unix-like OSes until now it is actually really hard for me to work a Windows machine. It is so alien to me.

Development screenshots from July 22, 2003



Unfortunately one of Linux's flaws, IMHO, is that its not terribly laptop-friendly. I was thus, when I started my PhD, on the look out for a nice laptop without Windows. I had previously had a Linux laptop but found it annoying to set up when, for laptops, you want them to Just Damn Work™. I had heard good things about OS X and how it is Unix-like underneath. Finally after half a year of indecision I gave in and bought my iBook to take to SIGGRAPH and as part of my PhD.

OS X almost lived up to all the hype. Indeed here was Unix, with X, on a laptop that Just Worked. Unfortunately little things niggled at me. Chiefly amongst these was the lack of virtual desktops.

There appears to be a culture in the Mac world that you 'micro-pay', $10 or $15 for small useful utilities. In the Linux world they either already exist, are part of the OS or you Just Damn Write Them. Coming from this background I was unwilling (and after the purchase of the laptop, unable) to pay for CodeTek's version. Also the demo appeared somehow 'clunky' to me in a way I couldn't quite define.

Perhaps lead into a false-sense of security by the Unix-like nature of OS X I thought 'It can't be that difficult to create my own' so I started hacking about during some of the less interesting talks at SIGGRAPH. Indeed the prototype version of Desktop Manager switched its first desktop half-way through the Finding Nemo talk (for any trivia-loving geeks amongst you :)). I doubt anyone else in that room was more excited to be browsing the net and checking mail on different Desktops than at the particle-modeling around Bruce the shark.

You mentioned an iBook was your first foray into the mac-world... what hardware are you using to develop Desktop Manager?

A 800MHz G3 iBook with CD (no DVD) and 512Mb RAM. Pretty puny. Any donated G5s would be much appreciated :).

Ah, yes, I'm very, very familiar with the dual-USB iBooks. Whenever I see someone with one, I ask them how many times theirs has gone in for repair in order to bond. How many for yours? :)

Once :). The famous mainboard problem bit me in the arse and it was off at Apple for a few weeks recently (luckily I had backed up the Desktop Manager arch-tree just that very day). Hopefully thats my quota of problems now...

There's been a ton of work going into the problem areas you've mentioned for Linux, but often people either have mindsets of where it was in 1994, or where it'll be in 2014 (sure this is true of many platforms). As an avid user of both platforms, do you see Linux making headway in terms of the desktop?

Ah... Linux on the desktop :). To my mind its pretty much there for power users who are willing to do some research into what they actually want from a desktop machine. I don't think that one can ever truly have a machine that is suitable for all users the moment they sit down in front of it.

All interfaces must do some 'impedance matching' between the way the machine works and the way computer operators think. No one interface captures how all people think. The advantage of Linux in this regard is there are a number of interfaces available so you can choose the one that matches your model best. KDE gives you a Windows-y feel with some nifty desktop integration features, GNOME gives you a mac-ish feel but possibly without some of the tight integration in KDE and there are a continuum of others spanning the interface spectrum. One project I have my eye on at the moment is WMI, one of the emerging 'tiled' window managers whereby everything is arranged for you (almost like Exposé) aside from a few bugs (which I might if fix they annoy me enough) its getting pretty stable.

I think one of the major design decisions in Unix and X, the 'Mechanism not Policy' will ultimately prove to give Linux an advantage since new UI metaphors and paradigms can be fitted onto the X subsystem much as was originally intended in its design. Take for example Sun's Looking Glass or Metisse.

To get back to the here and now (and your question) I think that Linux desktops are at least on a par with Windows and Mac ab initio. Of course the thing that differentiates those platforms is vendor support. There is the classic chicken and egg situation that Linux desktops would be better with vendors making software/hardware for them but vendors will only make the effort with Linux once the desktops improve.

The recent announcements of Linux desktops being deployed in government institutions is probably helping in this regard. Linux desktops can be almost indistinguishable from Windows to a computer-naive user simply browsing the web and checking e-mail so for simple 'utility' roles in the civil service, for example, Linux could be a very attractive option.

Overall the power of Linux is in the choice it offers you with regards interface. For example the German government customizing a KDE desktop to fit with their own needs is something that can only easily be done with an Open Source desktop.

What's your Linux distro of choice, and have you tried Yellow Dog Linux or Gentoo for PowerPC?

Gentoo by leaps and bounds. I've tried most of them, starting with Slackware '96 and progressing through Red Hat, Mandrake, Debian, SuSE, SourceMage and Gentoo. I was enamored with Debian for a while but left it for the sunnier climate of source-based distros when I started to personally find it clunky and inelegant (along with one Debian developer who shall remain nameless nicking my, now ex, girlfriend :)).

I like the Gentoo way of doing things. It seems to fit better with the original 'small, well-defined, orthogonal' methodology of Unix to my mind.

I have tried installing YDL or Gentoo on my laptop but each time I seem to manage to knacker the Mac equivalent of the Master Boot Record (MBR) although the Gentoo livecd works wonderfully and even supports AirPort. I think I should try again but possibly on an external hard drive or learn more about the Mac boot process (learning Forth in OpenFirmware was fun however :)).

Of course this was around the time the mainboard failed so perhaps it wasn't totally Linux's fault.

For most things, however, the ever wonderful fink project fulfills all my needs for Unix tools on OS X. A proper port of xine would be nice though. Perhaps I should add it to my TODO list :).

There's a rumor going around that Desktop Manager is your first ever mac app. WTF, is this true? Most people would try their hand at a CLI-wrapper or a tic-tac-toe game... are you a masochist, or just enjoy a challenge?

It was indeed. In fact I had only had my mac for a month or so when I started to write it. This lack of experience is obvious in looking at the early code and mostly accounts for the need to do a re-write for version 0.4 :). Initially my first prototype was a classic Unix command line app called 'sdsk' (switch desktop) which took a desktop number as input. I thought I'd just wrap this thing in a little GUI to learn about Cocoa. It sort of snowballed from there.

There was also the challenge aspect. I would have this idea of how, in a perfect world, the app would integrate into the OS and I tried to find out how to do it. Along with that there was the fun of reverse-engineering out the bits of Quartz required to do the magic. I've always been a bit of a reverse-engineer (c.f. for example 'libdvdnav', a library I wrote to allow Linux media players to play DVDs which is now used in xine and other similar players).

You've been using Cocoa for about a year now, doing some pretty funky stuff. What impressions (both positive and negative) have you garnered of it and developing for OSX in general?

The documentation could do with improvement. The API docs themselves are fine but the way Apple organize them into sub-topics is a little forced for my way of thinking. OTOH I'm sure some other people like it. Xcode is a lovely little app although I must admit to using it only as a build tool. I still edit all my code in vi. I think Apple made a smart decision to build upon GCC + Unix tool-chain for their developer software. There are a lot of clever people writing GCC and Apple immediately benefitted from the years of development of the compiler. Similarly the community benefitted from Apple's improvements to Objective-C support in the compiler. I think its this mutual benefit aspect that is an important indication of the use of GPL-style software for companies in that it enables everyone to get to, and extend, the state of the art together.

Cocoa itself is lovely and I am a great fan of Objective-C. It wasn't totally new to me, I had played with GNUStep before and one of my friends from secondary school had a NEXT cube to play with. I see some similarity between it and Microsoft's .NET infrastructure so I suspect the paradigm it uses may well come to dominate commercial coding sooner or later.

By similarities between Cocoa and .NET, are you talking about the Model-View-Controller (MVC) paradigm, or something deeper?

MVC in some ways (although that goes back to MFC as well) but somehow they 'feel' similar. I have a quite holistic approach to programming, especially APIs, where I find it better to attempt to get inside the mind of the designer. If I can get an idea of how the API designer views programming I find I can often just predict the API since it would be how I would implement it. I guess this is why I like reverse-engineering so much, it gives me a chance to see if I'm right :).

To attempt to put it into words is hard but I'd say the biggest similarity is that .NET's communication with objects appears similar to the message passing idea in Objective-C. Instead of direct manipulation os object both APIs seem to take the approach that parts of the program should indicate to other parts about what they would like the state of the world to be and then leave it to individual objects to do its best to make this happen. Its hard to find specific examples of this in either API but its 'just a feeling I get in my water' as my mother used to say.

Being an iBook user, I can imagine any improvements to GCC for PowerPC would be a big deal to you. Are you excited about the move to GCC 3.5 for OSX Tiger? There seems to be some neat stuff in there, such as auto-vectorization...

Indeed I am. GCC 3.5 looks pretty exciting from an optimization PoV. Hopefully big things such as moving from RTL to tree-SSA will make it even better.

You've recently finished a big rewrite of Desktop Managers' code to "clean up the nastiness". Knowing what you now know, what would you have done differently when you first set out?

I would have made the core app only a desktop switcher with the ability for other apps to request desktop change and obtain window location information. This would allow people to easily implement whichever feature they want (be it desktop pagers, etc) as separate apps.

As it is, as part of the re-write, the internals were re-structured so that most functionality is performed via 'plugins'. This allows me to keep a clear separation between the UI logic and core desktop switching logic.

Most of all I wish I had documented the APIs I found and found someone competent to code them up :).

Could you give us an idea of what you're having to do behind the scenes to get a virtual desktop scheme working under a window manager that really isn't setup for it? This isn't trivial stuff...

Sure. OS X has a couple of undocumented API calls 'CGSSetWorkspace' and 'CGSGetWorkspace' which allow you to split the window trees into different desktops and move between them. This is the core magic which allows DM to support virtual desktops. That is the easy bit.

The hard bit, it turns out, is retrieving information about windows on screen and modifying them. As, perhaps, a 'security' feature Apple engineered it so that although modification of windows was possible it could only be done by the Dock. It is, in fact, the Dock which provides the Exposé function in Panther. To allow DM to modify windows I had to use a little but of code by Jon Rentzsch which allowed me to stick a bit of DM inside the Dock process (see later question). This bit of code communicates with the main app and performs much of the magic you see.

Interestingly CodeTek uses this exact same bit of code for their latest VirtualDesktop program.

This might be the white russians talking... but your app feels faster than any of the competing apps out there by an order of magnitude, even though you arguably throw a hell of a lot more eye candy in there and you've recently made it even faster. Where is this speed coming from?

Apple :). The actual 'switching' is performed by calling the secret API functions above. This is actually implemented in the Window Manager and hence is as fast as if I could delve in there myself and manipulate them 'by hand'. The transitions eye-candy in later releases is actually using Apple's own code.

Believe me there is a lot in OS X that is undocumented and suggests interesting things. For example, the fact that the Set/GetWorkspace functions were upgraded to work with Exposé suggests to me that either someone at Apple really likes Desktop Manager or that they are keeping Virtual Desktops around as a possible killer-feature for later releases.

If one was digging around through your source, one might notice that your app, as well as two other virtual desktop apps for OSX, make use of BSD-licensed mach_inject and mach_override libraries from Rentzsch. This is obviously kernel-level stuff used in more than one app, but rarely mentioned... could you give an idea of what these are, why they're necessary, and what led you to them?

See the above chat for why I use them. Mostly I found them through googling. I was wanting to find some way of sniffing the communication between the Dock and the Window Manager to see if I could spoof it in some way. Mach_inject just happened to come up on Google and was just what I was looking for.

Interestingly its not-quite kernel level stuff (Mach-releated things rarely are) but it certainly dances around the edges. Having the Darwin sources available to check what was going on was also useful.

Ah, so if I'm following, you just have to go through Mach to have access to the Docks' process, which is really all you're endangering in case something goes wrong?

Yup. I'm in fact using standard Mach API calls to inject some code into the Dock's address space. Nothing underhand is happening from Mach's PoV and so the worst that happens is the Dock crashes. Nicely, from a certain standpoint, when this happens the Dock just quietly re-starts without worrying you so if you have it on auto-hide you won't even notice a crash. Unfortunately this will stop Desktop Manager working though :).

Most *nix users switching to OSX are used to having virtual desktop support built in, and have long clamored for Apple to add them. With the advent of 10.3, and with it Expose, many claim there's now no need for virtual desktops in OSX. You haven't stopped development of Desktop Manager, so I'm assuming this isn't a view you hold?

Exposé is great but I like Virtual Desktops. Certainly its a novel way of solving a similar problem but my mental model is based on Virtual Desktops. People should really choose whichever is better for them. Choice, after all, is often a reason people come to Macs in the first place.

Besides that I don't like my desktop to be cluttered. My ideal 'wish-list' item in that regard is to have a set of 'boxes' on the desktop I can minimize groups of windows into. Perhaps the opposite to Exposé, 'Couvert' if you will :) (in fact there is some developmental stuff hidden in Desktop Manager to that end).

That sounds like an interesting paradigm, sort of a multi-paned 'window-well'? So one could have 'sets' of windows based on a task? Could you elaborate on how you envision actually grouping the windows (modifier key + mouse?) and getting them in and out of the well?

The idea would be like virtual desktops except that instead of one desktop completely disappearing when it gets switched for another, the collection of windows shrinks itself to a set location on the screen and the next desktop zooms from where it has been lurking. You can switch to any desktop at any time by clicking on the bundle of windows on the desktop background and also, like Exposé, you can see immediately if one of the windows on another desktop changes.

You could trigger the switch by, say, exposing the desktop with Exposé and clicking on the window bundle or you could have per-bundle and switch next/previous hotkeys like Desktop Manager.

Alternatively the windows could be animated sliding into a box on the desktop if you don't want to have a bundle of windows cluttering the desktop, or they could arrange themselves into 'piles'.

There was some... fallout... between Codetek and the users of its VirtualDesktop product over several versions. Did you notice an influx of users for your app during this time?

No idea. I didn't know of the fallout when I was developing my app. It was mostly for my own use and I was just happy to get users. I suppose it could have happened like that. I still don't know much of what happened. I'm not really very interested either, not being a CodeTek user.

What does annoy me is the way that some people assume that I wrote Desktop Manager to in some way force CodeTek out of business or get back at them in some way. I never considered CodeTek for a moment, I just wanted a program that provided virtual desktops the way I wanted them so I wrote one. I still get some emails accusing me of being petty and small minded for GPL-ing Desktop Manager since CodeTek can't easily use my code. That is silly since they are quite capable of re-implementing Desktop Manager in a far better way using my techniques. I haven't tried (nor could I probably) claim control over how people use the APIs I discovered.

I'm not anti-closed-source particularly either. In fact I've helped quite a few people who write closed-source programs about how Desktop Manager hides some windows from Exposé. Code is an expression of an idea and as such I am touchy about how people use my code. The ideas themselves have to be public-property to allow people to progress. Oh damn -- there goes the Academic in me spouting off.

Of course if CodeTek suddenly take leave of their senses and want to get a license to use Desktop Manager themselves for a stupidly large amount of money I wont be complaining :).

They're basically upset that you didn't release your code under the BSD license, so they mistakenly think you've somehow locked Codetek out from creating their own implementation? You're across the pond, but the american term for those giving you a hard time over this would be "Asshats".

Pretty much. They seem to view the choice of the GPL as a weapon against CodeTek rather than a gift to the community. Personally I'm not overly attached to the GPL for its own sake but I feel that BSD style licenses don't encourage users to give back quite like the GPL.

As I said I viewed CodeTek as, at most, 'prior art'. If everyone were tomorrow to suddenly switch to VirtualDesktop I'd not really care too much since I still find Desktop Manager useful and, ultimately, it was written to scratch my itch.

I think the best term we have for 'Asshats' is 'Smeg Head' :).

You've taken the step of adding native support for their VirtualDesktops' pager skins. Have you taken any flack for this?

Initially yes when the developer of the CodeTek skin thought (incorrectly) I had shipped it with Desktop Manager too. Aside from that not really. I don't particularly like the skin format currently used but then I was too lazy to create my own and the CodeTek one is quite-literally just a collection of images stored in an XML file. It can be read using Cocoa with 6 or 7 lines. I just wanted to get a desktop pager out of the door quickly and it seemed like the natural thing to do.

What led you to decide to distribute Desktop Manager as open source, rather than Shareware or Freeware?

All my code (not just mac-related) has not only been Open Source but also Free (as in GPL-free). I view it as giving something back. All my desktop machines run some form of Linux as do all the servers I maintain in my house and lab so giving what software I can back to the community only seems fair. I learnt to program due to the massive amount of information and code available out there to look at and learn from. Closing it up and hiding it away seems counter productive. Certainly I don't think anyone can learn programming like I did these days.

Could you elaborate on why you don't think someone coming up could learn to code in the same way, as some would say that the amount of information and code out there has never been greater as a whole?

Because there isn't the encouragement there once was. Nowadays software makers have tried as hard as possible to hide the workings away from you and discourage fiddling. Although you can learn television maintenance by reading books on how television works generally and learning electronics, its no substitute for the amount of learning gained by getting the back off and almost killing yourself by grabbing hold of the high-tension wire :).

This is, of course, the natural progression as computers have become more appliance-like and less machines of wonder. When cars first came out, the owners had to learn how they worked sufficiently to prime pumps, turn cranks, oil, turns, strip and otherwise maintain their machines. Now they are more reliable but you can't learn how a car works by taking it to bits any more.

Also, although there is a lot of material, modern computers are too sophisticated when it comes to getting you hooked. With the old home computers one could get instant gratification by writing a program which drew a space-ship on the screen in 10 lines of BASIC. Nowadays you'd have to learn COM + Win32 + DirectX just to get a black rectangle. The 'activation energy' required for kids to get exciting things on the screen has increased exponentially over the past decade. The lack of home-programming magazines is also a problem although some the the Linux magazines here in the UK are starting to carry beginner's programming articles again.

Finally no machines come with BASIC + a programming manual in the box any more. When I was a kid programming was Just What You Did™ with a computer since commercial software was thin on the ground. I guess what I mean to say is that today's computer landscape doesn't encourage hackers like it once did.

You mentioned all of your code being released as GPL, and much of it isn't throw-away stuff. Do you ever worry or wonder about it being 'lifted' and incorporated into proprietary software?

Not especially. For my mind application software vendors tend to be quite good with that sort of thing. Its often fairly trivial to detect after a bit of poking if stuff has been lifted wholesale.

Where such things occur more is in the embedded and device-driver spaces. Its a (almost) universally accepted fact amongst software developers that hardware people can't write software for love nor money. People also consider they can't write suitable documentation for software writers to write drivers to. This isn't a reflection on the skills of the hardware people, more a comment on their specialism. I, for example, could in no way design a 802.11 card.

I think that the embedded guys have yet to fully wake up to the vicissitudes of the software world and realize that grass-roots people are now looking to see if their stuff gets taken and that, just because you can download it, it can't be stolen.

Many don't realize what kind of time commitment a project can be, especially one with a user base that has grown in leaps & bounds like yours. Does working on Desktop Manager sucks up a large chunk of your time?

Yes. But not as much as it should do recently. I'm also working full time on my PhD (unrelated to DM) and also, in the past few months, being an improvised comic and find that making time for DM development is hard. Generally when I find time it is in month-long blocks and three or four releases can come out.

I've just finished writing and submitting a paper so, hopefully, I should have some more free time coming up soon. On the other hand if I'm suddenly discovered and go on to be a part of a brave-new comedy TV show on BBC3 then Desktop Manager development might slow still more :).

Woa. Improv? Social setting, in front of unknown groups, where you don't fully know the parameters that are going to be fed to you. And you have a girlfriend. Are you sure you're cut out to be a coder? :)

LOL. I was in fact discussing this last night. My girlfriend (also a geek, yay!) was bemoaning that most people she knew either spoke 'geek' or 'normal' and she was happy I was a geek but could speak 'normal', albeit with an accent :).

I like challenges in my life and I find that coding is one way I can exercise my longing for intellectual challenge. The improv is a way I could face the challenge of speaking in public (it has helped my presentation skills no end) and the girlfriend just comes about because of my incredible sexiness :). She'll kill me for writing this but the magic chat-up line was "want to come back to mine and see my plasma-ball?".

Coding for me is one aspect of my intellectual side, I also sometimes pretend to be a mathematician when doing my PhD. I think that I'm a typical geek in that I thirst for knowledge on how things work but I'm not restricted to just computers. I find just as many things to be interested in when regarding a social group or person's behavior as when I'm looking at the workings of a piece of code. I love the way, in certain systems, simple interactions lead to complex, unpredictable outcomes.

I guess the apparent social-side of me is just me hacking my friends :).

Comedy is a bit like that. Strange, small impulses can lead to an audience suddenly falling off their chairs with laughter and there is no easy way to predict or define it. I guess I'm just looking for an answer to how humour works.

Goodness, this self-analysis thing is fun isn't it :).

You've got yourself a Keeper™ if that "plasma-ball" line worked. :) Moving along... there's a link on your website for donations via PayPal, and I always wonder if and how these things are working for the developer. Do you ever feel like a cow in a river full of leeches, or have you seen appreciable support?

Quite a lot of support actually. I only put it on there because my girlfriend pestered me to do it (and even now, I'm still using her PayPal account) and I expected nothing, monetarily, back. As I explained I view what software I can write as a way of giving back myself and consequently all the authors of the software I use day-to-day have paid me back in some small way for developing Desktop Manager.

That being said after every release there is a steady trickle of $15/$20 donations that come in. Its currently going towards a possible hardware upgrade or perhaps buying Tiger when it comes out to make sure Desktop Manager keeps functioning. Certainly the donations add up and I think Mac users are, through their culture, more inclined to donate a little to projects they find worthwhile.

Lets say a user loved your product and wanted to help, but either was short on dough, or hadn't been part of the mac base long enough for them to become conditioned to carrying their wallet at the ready... how could they contribute?

Ancillary support is great too. Glenn Gear has designed some nice icons for the 0.5.2 release and some people have sent me translations too. If you still have nothing to offer a ego-fueling gushing email is always appreciated. Finally, you could always offer to interview me for your website :).

If you could push a feature request or perhaps a bug on your wish-list to the top of Apples' radar for OSX, what would it be?

Aside from the desktop window boxing (see above) I have an old, boring wish and one where I fully understand why its not going to happen but I'd love to see OSX on x86, perhaps even x86_64. OS X is a wonderful OS IMHO and Apple hardware is also wonderful but that doesn't help me with the fact I'd like to have a nice Apple desktop machine without mortgaging one of my limbs. I'm a poor student after all.

My other big wish(es) would be iTunes related:

  1. iTunes for Linux (pretty please!). I don't want to be stuck using the afternoon's hack I threw together.
  2. Open (like Darwin) the sources for the DAAP (iTunes music sharing) server. I use my Linux server to serve music to iTunes but the server is based on a reverse engineered protocol and breaks with each iTunes release.
  3. Alternatively, open the protocol. Perhaps put it over UDP to discourage people sharing their music on the Internet (UDP inside your own LAN is fine for sharing but I wouldn't want to stream MP3s from China using it :)).

Being across the pond, you also have to contend with things like VAT which push the prices up even more... Do you think Apple's current pricing might be a little out of touch with the market, and what the vast majority of users are willing to pay or able to afford?

Being a student almost cancels the VAT out luckily.

Its not out of touch with their base-market. Those users who want a machine to Just Damn Work™, have good after-sales support, be easy to use yet powerful and be pretty are willing to pay a premium to get it.

On the other hand its pretty out of touch with the growing market, since OSX, for Unix geeks who want a nice laptop. I think there would definitely be room for a geek-laptop from Apple which is a wee bit cheaper which concentrated more on a geek's need (keep Airport in, lesser graphics card, can get away with a slower G4).

The new iBooks are getting there but we really need an iBook in a PowerBook-style case. Make it black, shiny, put a little red demon where the Apple is and call it the GeekBook. Apple's sales would probably double overnight.

In the spirit of the site, what's your spirit of choice?

I don't really drink spirits and if I do I tend to have them in cocktails. Instead I am a real fan of beer. Specifically what has been termed 'real ale'. I find that properly brewed beer can have a subtlety and character that often surpasses even the best wine I've drank (and being in Cambridge, thats been some quite good stuff). I'm happy to see that in England more and more pubs are seeing that serving tasteless, characterless nitrokegs and Stella-bergs are actually turning away the more sophisticated drinkers. Possibly my favourite beer at the moment is 'Old Growler' from Nethergate breweries.

The pub opposite my house is having a beer festival at the moment and I'm hoping to find some more beers to enjoy. I'm sure any Desktop Manager users in the Cambridge area wanting to buy me a pint will help me find a new favourite :).

yummy alcohol posted button Posted by drunkenbatman
    July 04, 2004, at 06:17 PM


Comments (45)




Post a comment



Anonymous comments are allowed, but please enter something for a name.

And do endeavor to appear sane.









Remember personal info?