Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

Well, that was interesting! Last time I wrote here I was just becoming a Mac programmer. Now I'm moving back towards GNOME and GNU. The sad thing is we've probably already gone past peak interesting desktop, and depending on your approach to life it was either Alto or NeXTSTEP. Not much new will be happening there now, even though it could and could be useful and exciting.

Try my blog instead. Yes, it's a livejournal. Yes, I have long hair. No, te tw don't necessarily have to go together. BTW, just to let you know what you're in for, a load of NeXT->Apple related nerdy stuff and some motorbiking.

After ages of prevarication, and of starting projects and giving up once they compile, I've actually started doing some useful stuff. Hopefully quite a lot will be finished this week and I can release.

Just a quick tasteroony: an Objective-C CGI library, an Objective-C dict accessor library and app, a few graphical apps, and an httpd and web browser. Hopefully they'll all compile anywhere that Cocoa and GNUstep can be compiled.

This has been discussed over with the GNUstep people, seems to have quite a few enthusiastic supporters.

This is a *very* geeky thought, but it strikes me that 2004-10-19 is the tenth anniversary of the OpenStep specification being published, and in my book that's as good an excuse for a party as any. Unfortunately, 2004-10-19 is also a Tuesday; however may I recommend that GNUstep/NeXTSTEP people from all over the world arrange to have parties on the weekend of October 16/17? I for one would like to meet some of you, discuss GNUstep, OS X, NeXT, reminisce about computers gone by and also have a lot of fun.

So, how does it sound? I'd appreciate any feedback. Number of people interested, locations of people, willingness to travel, what you'd like to do; and most important of all willingness to arrange meet-ups! It's unfeasible that everyone could get to one meeting but if we can arrange parties in a number of suitably-spaced locations then we'll still have a world-wide spirit; handy when considering the world-wide web came from NeXTSTEP!;-)

I myself will definitely organise something in Oxford, England...what we do depends on what people want to do, but I can definitely promise at least one real black slab for those who have never seen one to play around, compare it with GNUstep/Cocoa, and see what we're all fussing about. And whatever people want to do, I'm sure we can find a way to do it in Oxford (or at least jump on a bus to London, for more adventurous activities....).

OK, so the date was a bit of a cheesy tie-in, but the idea's real. Meeting other *steppers, sharing information, shaking the hand of that person you've been chatting to for the last few years on the mailing list, they're all worthy goals, no? Let me know what you think.

Anyone who lives in the Oxford, UK area can come along to my talk at the Oxford Mac Users' Group regarding Open Source Software for the Macintosh. It will necessarily be a bit superficial but I'll be happy to answer any questions. Bat-channel: media production unit, 37 Wellington Square; bat-time: 2004-06-08-19-30.

Anyone who lives anywhere in the world whatsoever may download my slides after the talk; I'll drop a link in here.

This is just a little hero worship on my part; a colleague and I just got off the phone from BobCringely in CA, USA. Talked about various things: his TV shows, the changes in the industry since then, his predictions for the future, etc. All had to be done though:-)

Well, not quite. But I've managed to get ye olde webbe server running on my NeXT, which is about as earliest ever as I can manage without borrowing Tim Berners-Lee's NeXT;-). If I can get a hole in the firewall for it (tough call, given local administrivia) then I'll post an URL. But don't go slashdotting it:-).

So, what was I doing in these iMacs? Well, neither of them were booting, and I tried to sort this out. It turns out that one of them just had a dodgy disk, so reinstalling OS 9 on that one was the way forward. In fact, I wanted to install Panther, but it kept panicking (something like 'cannot find drivers for platform imac'). So I tried Jaguar, and that kept failing with the message 'the installer has unexpectedly quit (return code 0)', so eventually gave up and just stuck with Oh Ess Nein.

The other iMac was slightly more interesting, and I still don't fully know what was wrong with it. Still, as I had the whole thing apart, I thought I may as well write about my experiences here in case it helps someone. At first, it appeared to be the battery, the terminal potential difference under load was 0. So I bought a new battery from watchbattery and set about installing it. Having taken the machine apart as described in my last post, the battery is quite clear to see, near the middle of the logic board. With the cable from the power filter board to the logic board disconnected (that's the one with the really wide connector, from the four you had to remove to extract the LB), press the power button on the front of the Mac. Now remove the battery, and wait at least ten minutes for everything to discharge. Insert the new battery. If you're lucky (I wasn't), the system should now work.

So I thought that maybe the CUDA was messed up. This can be reset using the, um, 'CUDA RESET' button which is labelled as such on the logic board. However, press it twice in quick succession, and you've lost it. Apparently this can cause the PMU chip to crash, which reduces the battery life from five years to two days. Not optimal, as I'm sure you'd agree.

That didn't help either; one time the computer would power up, go bong, then shut down as soon as the POST was completed and disk spun up, but other than that there was no joy. Actually, it did that twice. So I decided just to use it for spares, and removed the battery (trivial), CD-ROM (easyish; just unplug the cables and it will fall out) and hard disk (reasonably easy; there are two screws holding the mounting bracket to the logic board chassis - you need to unscrew these, then fiddle about a bit as the bracket has two tabs that fit into slots in the chassis). However, if anyone's got any bright ideas regarding fixing this Mac, I'd be glad to hear them:-)

I had to poke around in a couple of fruit-flavoured G3 iMacs today, as neither was booting properly. The inside of the iMac is a pretty interesting place, so here's a quick detail of what I did should it be interesting to anyone else. Needless to say, if you're not comfortable pulling computers apart, working with mains equipment or near the potentially fatal voltages found in the Cathode Ray Tube [see below], don't try this.

The first thing to do was to prepare. I found the Service Manual on the web, which contains troubleshooting and take-apart information. This is not quite indispensable, but gives you a good idea of what to look for. Read the take-apart section before you start working, so that you don't have to keep stopping and looking back.

Place the iMac face down on an anti-static mat, taking all the usual anti-static precautions. On the bottom near the back is a single screw in a recessed handle. Unscrew this (it won't come out though), and give the handle a good hard tug to get inside the case.

The good news is that if you just want to access the logic board, memory or drives, you don't need to go anywhere near the CRT:-). Just below the bit where you removed the cover are two screws clamping a bit of metal onto the plastic case. Unscrew those, and detach the four cables that plug into the area where the disks are. Now just pull upwards, and you're holding pretty much the whole computer in your hand. Be careful: the CD-ROM drive has a habit of sliding out of place (but can just as easily be slid back in).

That was the easy bit:-). Getting it back together is a bit trickier; my colleague and I collectively spent about an hour prodding, pushing and shoving until the logic board chassis went back into the case. Place the chassis at the top of its 'run' back down into the machine, and let it freely glide as far as it will go. Now you need to grab both sides of the outer case and pull outwards slightly, so that the chassis comes forwards (away from the machine) and downwards (toward the screen). It will then fall relatively smoothly into place.

It's pretty common knowledge that the person who wrote find, back in the days of version 1 UNIX from AT&T was working on IBM dinosaurs at the time and used the syntax from there to create find. It's also common knowledge that the syntax to find is pretty much the least UNIX-like of all of the UNIX tools.

What's less obvious - because find isn't used now as it was once, in many places - is just how bogglingly huge and redundant the code in find is. I mean, it has a -exec function which passes its output to the specified command. Now, wtf is xargs(1) supposed to be for? Indeed, that self-same function. find also has the ability to create cpio(1) archives. Well, unsurprisingly, cpio can already do that. The idea of UNIX is to make little tools that do one job properly, and chain them together. So there's no need for find to reimplement code that already exists elsewhere. Especially if it's going to do it in such a non-UNIX manner.

I know what you're thinking; if I hate it, I should fix it myself. Well I did. Grind is Graham's Replacement for fIND, and currently it will only do something similar to find's -name. I'm going to add some bits of find, but by no means all of it. And I'm going to try doing it in a UNIXey way. Documentation and build instructions (and a Mach_O PPC executable, oops) in the tarball.

I guess I could have called this a Mac OS X entry, a Linux entry, an UNIX entry, pretty much anything. But I think that the main subject here is BSD, so I'll go with that for now:-).

It all started here, with this rather impressive description of the differences between Linux and BSD. Not the implementation differences; indeed I might pen a few sentences about those some time. This article describes the broad methodological differences between the systems. Unfortunately, when it got to/., it was met with a certain amount of scepticism, derision and trolling.

This was partly due to the way the article was worded. For instance, the author said that in his experience, BSD people understood Linux more than Linux people understood BSD. Well, maybe that's true, but it's not the kindof thing you say on a predominantly Linux-oriented site if you want objective reviews:-). So I thought, to kill time, I'd try and quickly note the major differences. I'm going to treat Darwin as a 'special case' towards the end, as it differs a bit from the other BSDs.

The article noted the difference between a Linux distro and a BSD system, such as FreeBSD, NetBSD etc. This is a very key point. The various BSD flavours are not merely different distributions of the same system. They are different systems. Each one derives from the final Berkeley release of BSD, and has modified, added to, removed or replaced that Berkeley code as its developers have seen fit. So whereas SuSE and Fedora Linuxen use the same kernel, fileutils, C compiler etc. the different BSD systems truly are self-contained units.
A Linux distribution is a collection of software that contains the Linux kernel, and a bunch of other software that is necessary to get a useful operating system involving that kernel. The software is not (usually) maintained by the distributors. For instance, a particular Mandrake distribution may contain kernel version x.y.z from the Linux kernel project, gcc a.b from the Free Software Foundation, OpenSSL c.dp from OpenBSD, etc. etc.
A BSD system does not have distributions, per se. There is only one FreeBSD, for instance. As the original article stated, to obtain a BSD you typically have two options. One is to check out the current source code from their versioning system, the other is to download a "release" which is a snapshot of the source tree at a particular time. Some of the BSDs offer ISOs of their snapshot releases as binaries, which may be installed without the need to compile your own system.

The entire "base system" of a BSD is maintained as a single entity by its development team. So although a particular system may use a GNU utility, for instance, autoconf, if it's part of the base system then that autoconf is really a BSD derivative of the GNU code, and not necessarily identical to the GNU code that was merged with the base system. This is typically not the case with Linux distributions, in which the code is simply built and packaged 'as-is'.

I noticed while looking through the/. comments that some posters found BSD users to be more defensive of their art and hence condescending to newbies than those from the Linux world. Having spent time in comp.os.linux.setup, I'm not sure that's the case:-). Besides which, there is a vast wealth of information around on the various BSDs. Apart from their own sites, there's stuff on The BSD Fora and Apple's developer site, just to name a couple. The O'Reilly community press publishes a hefty chunk of this information in dead-tree form, for those who prefer to be able to read their manual offline. Usually a judicious search of the internet with your favourite search engine will yield good results; for instance the Google BSD directory contains a few handy links as well as a search of all things BSD.

Darwin - I promised I'd mention it near the end, I'm not sure whether or not this is the end but I've run out of things I thought I was going to talk about, otherwise:-). Darwin comes in two flavours, regular or Mac OS X. In this respect it is unique (AFAIK) in being the only BSD currently powering a commercial operating system (There was BSDi, OPENSTEP, SunOS4, etc.). It owes a fair amount of its code heritage to FreeBSD, but Apple have added their own stuff, including a replacement kernel (the OSF Mach microkernel).
As regards the subject of this little journal entry, the important differences between Darwin and the other popular BSDs are the existence of a commericial version and the lack of a ports system. Obtaining Darwin is also more geared toward binary distributions than checking out the source tree, although the latter is available. There are also snapshot source distributions at the Darwin website, and more information at OpenDarwin.

As apt-get kindly upgrades me to unstable (and I prepare for my computer to decay into a superposition of Spectrum and Commodore 64), I decide to update my journal before going back to Fourier transforms of electron densities.

So what shall I write about? Well, I'm currently trying to get up to date with Reports on Progress in Physics, a process that often makes me wish there was an "apt-get update brain" or the like. Also been checking in at the Nature Physics Portal, and the New Journal of Physics. Well it's either that or computing X-ray structure factors, which isn't the most interesting way that one can spend one's Friday afternoon...

My plan here is to create some random waffle that may or will not be true in a couple of months, so that everyone can have a jolly good tin barf when I'm wrong. At my expense.

OK, it's check date now, and I reckon that this time next month the high-end Apples will be running with PPC 970 processors supplied by Big Blue themselves. I expect these systems will be XServes, and a couple of the high-end PMacs.

Within three months, another % or so will have been shaved off all the existing G3/G4 stock, and some 970-based systems will be on the market.

Watch as I dig my time capsule into the mud, so we can all see how silly I look in years to come...

Firstly to annoy that AC, I note that the aforementioned power spike has now done in the cold cathode tube that was lighting up the inside of my computer. Luckily I got a photo of it in action before it died, so all is not lost.

Anyway, as the moment is taken up with Solid State revision, and installing GNUstep for Solaris, this update is being curtailed. This is possibly for the better.