Michael Maclean
My latest acquisitions:
Add to this the Cisco CCNA stuff and the Programming Ruby I got the other week, and I'm going to be busy for a while. I don't quite know what possessed me there.
Oh, and I have a
GPX2 on the way as well. Oops.
I read recently that GMail lets you set the From: address in emails that you send from the Web interface, so I went looking for the setting as it would let me use GMail for webmail for all my email accounts and hide the @gmail.com address. According to the site I read it from, you need to click the Settings link and then Accounts. This didn't appear for me, until I tried switching to English (US) instead of English (UK). Now I can add several From: addresses and switch between them, which saves me running my own webmail software. Putting it here just in case it's useful to anyone else.
A couple of random comments.
I've just signed up for a Linux virtual server from
Bytemark. It's a User Mode Linux machine running in userspace on top of another Linux machine, which has the advantage that it can be rebooted, moved to other hardware, or blown away and started from scratch in seconds should it need it. It doesn't have as much RAM, CPU or hard drive space as a standard colocated server but it's a lot cheaper. So far, they seem to be pretty good. They supply secondary DNS and backup MX service for free and the setup was pretty painless. Support times seem pretty quick as well, and their status reports are in RSS. More ISPs need to do that.
I've been using Windows machines more often these days, and I'venoticed a few things that irritate me compared to the Macs and GNOME desktops I've been using recently. I will admit that Windows XP is a lot nicer than I gave it credit for. A lot of the time the problem is an application doing something non-standard. One example is Skype. As good as it is, its GUI does some odd things. When a tab isn't selected, it's greyed out. That makes me think that it's disabled and I can't use it for some obscure reason. However, if I click on it, it works normally. Windows Media Player is good at doing odd things as well. It usually appears to have a rounded window, until you move the mouse to where the title bar should be and at this point the conventional window decorations appear duplicating the ones that were already there. What's the point of that? I usually try to click through the window to a full-screen PuTTY behind it when this happens and fail.
Apple and GNOME have guidelines for developing graphical interfaces,which means most applications are standardised. Windows doesn't seem to have that, and too many applications try to have their own layouts just to be different and do unexpected things. I think the key thing in UI design is consistency. If a UI has an unusual way of doing things but is at least consistent in its operation, people will get used to it.
I've also got back into doing a bit of PHP code recently, returning from doing my project in Java. That's another place that could do with consistency. Function names are all over the place so I always have to look at the manual to find out which variation_of_spacing or runningwordstogether has been used to construct the function name. Several other people have written far better articles about this and other features of the language than I could so I'll just link to one:
http://tnx.nl/php. I'm tempted to go and have another look at Ruby but beyond installing it on my new server I haven't really got time at the moment.
Apple have announced that over the next couple of years they're going to be switching to using Intel Pentium 4 CPUs at the core of their Macs. I didn't believe the rumours when they started but Steve Jobs announced it so it must be true! It should be interesting seeing what they're going to be doing with the platform. Hopefully they'll be able to come up with an x86-based system that gets rid of all the legacy features that PCs put up with today—things like the BIOS and the bizarre layout of system memory with limits all over the place. It might not have much basis in reality but I expect that a Mac should beat a PC in performance when running at the same clock speed. We'll have to wait and see.
Apple have also responded to all the KHTML people who were unhappy with the level of cooperation they were getting with the Safari team by open-sourcing the whole thing. They've released WebCore, based on KHTML; JavaScriptCore, based on kjs; and WebKit, which is their Objective-C wrapper for the others and includes the Safari browser. That's also great news, hopefully meaning Konqueror will be able to merge back a lot of other changes that have been made since the fork that haven't been able to be implemented yet due to the various problems that were discussed a couple of weeks ago.
Some comments have been made that since Apple have switched to Intel and Debian Sarge has been released that these are the signs of the Apocalypse. People at Heriot-Watt have been thinking that for a couple of weeks now, with a bomb scare two weeks ago and the Civil Engineering explosion at the weekend. I think I'm going to run home and hide under my bed.
Here's a tip for anyone using lots of Linux machines with NFS-mounted home directories, the virtual terminal utility 'screen', and Vim or some similar editor. Don't run screen with a Vim session on one Linux machine, detach it, and forget about it. Opening the same file in Vim on two machines usually ends up with several hours of work being blown away amidst lots of weird error messages. I hadn't committed what I was doing to CVS yet, because it wouldn't compile and I have a thing about not committing broken things to version control. Now it's all gone, and when redoing it Java is wanting to throw exceptions it never did before. I realise it's my own incompetence but I'm still going to whine about it. I'll whine about checked exceptions later.
My iBook is dead again and has been for a week or so. It's been in two different shops, the first of which wasn't allowed to do anything with it by Apple, so it's back to the same people who had it last time it went wrong. As I was in the middle of writing my dissertation when it went, I'm not massively happy about it. Oh well. The dissertation should be out of the way on Monday, and I'm really looking forward to it.
Part of the Uni blew up yesterday morning, which was quite exciting. There was a (suspected) gas explosion in the civil engineering department which blew a hole in the wall on one side and parts of the wall on the other side clean out. Fortunately it happened early in the morning and there was nobody about so no injuries happened. I've got photos on my phone, but no Bluetooth to get them off there yet, so for the moment check out the Union's statement on it
here which has a couple of pictures.
Talking of the Union, it was my last Thursday night live music gig as part of the Ents crew there this week. It's weird to think that I've been doing those almost every Thursday in term time for three years now. I've learnt a lot, and met a lot of people on the crew and in the many bands and other crew that come through the place. It's been a lot of fun and I'm going to miss it. The bands that night were
Underbelly and
Team Salt, both of whom are spectacularly good and played a fantastic set with some collaborations in the middle. They also sounded a lot better than they had any right to, as various parts of the rig were dying on us throughout the night, including the Spirit LX7 mixing desk we hired to replace our own one which is considered almost dead. I'm looking forward to hearing the recording we did when I get the data from the laptop we used.
Mr Tascam has been well used this last couple of terms.
I just noticed
this while browsing, and I really don't like the sound of it. The mileage charge for starters doesn't sound good (though it's apparently replacing fuel tax, which might mean fuel costs go down—though I'll believe that when I see it), but the part that says "every vehicle would have a black box to allow a satellite system to track their journey" scares me. The potential for abuse is massive.
For some random reason I started playing with Xcode and Cocoa last night on my Mac. I decided that I wanted to write a Web browser that could go full screen, with no chrome or menubars or anything, on a given display: this was something we needed to be able to do at the Union at the end of term, and had to hack by using browser windows that were far too big for the display that they were being shown on. I guessed that by using an embedded Safari Web view it wouldn't be too difficult. I was right. It is very easy to create a basic browser without actually writing any code at all: you drag the WebView object, a text field and a few buttons for back, forward, stop, and refresh onto the page and draw some lines between them and it all just works.
This page on
macdevcenter.com describes how.
After a lot of googling I was able to find some example code using some low-level functions to set up a "shielding" window to prevent dialogue boxes being displayed over the page, and that also worked, but I suspected it was overkill for what I wanted to do. By removing all the CoreFoundation code I found I was able to use about 5 lines of pure Objective-C to get a list of displays, and choose one, then create a window covering the entire screen. It all works, but now I just need to work out how to make it go back to using a window. I think I know how, but I have other things I need to be doing right now. When the code is a bit less embarrasing I'll probably release it to the world. I was very impressed at how easy it is to do these things with Cocoa, once you get over the slightly strange Objective-C syntax. There are far too many square brackets for my liking.
I've begun to realise that while CSS is quite good at some things, it's also really horribly bad at doing others. I'm going to use as evidence the number of websites that have sprung up to offer tips about using HTML and CSS properly—people like
A List Apart,
Eric Meyer, and the site that kicked off this thought,
The Man In Blue. All of these are very good sites, and always very informative, but some of the techniques they advocate are a bit strange. They usually rely on using bugs in some browsers that don't exist in others to create workarounds for problems.
In a recent
post, The Man In Blue describes a way to get HTML forms to line up properly and look semi-decent using CSS. This is something that is dead simple to do using tables, but we're not supposed to use those for layout any more. I agree for the most part, but every time I have to do a form that's more than just a text box and a submit field, I end up putting it in a table as it's the quickest and easiest way to make it look decent. It can usually be argued that it is tabular data, it's just that most of it is provided by the user. And it's not just forms—these websites also advocate the use of
mad hacks in order to get round broken CSS implementations in browsers, and sometimes of dispensing with tables even for things that should be in tables. Argh! I'm glad I don't have to do this kind of thing full time. I think my opinion on CSS is best described by the phrase "It's better than the alternative", as Cory Doctorow and the EFF are fond of saying. It's still not particularly nice though.