

~/Library/Mail/Signatures folder you can replace the most recently modified signature file.





We've seen Jesus, now we have giant MP3 players. Is there no end to the things people find with Google Maps err Google Local?
Have you ever heard the term "built for Adsense"? Have a look at this AJAX word processor site, and then come back here and place your bets on how long it takes for Google to buy the company behind it. Edit: Yes, Google already bought Writely, but this version is available for you to try out right now. Via Fosfor Gadgets.
I've been using the great little image CMS known as FolderBlog for the last few months and have been thoroughly enjoying it. The program is easily adapted to any design and is incredibly simple to use, allowing even the most computer-illiterate client to easily upload images and edit captions. The official program doesn't have an easy non-FTP way to delete images, but that is taken care of by a nifty little modification by Björn-Frederic Limmer known as FolderBlog Ikue Reloaded (FIR). FIR also adds other features - including adding .gif compatibility and sorting by EXIF data - but it is the delete function that tops my list.
However, my entire experience of using FolderBlog and FIR has been on Apache servers. Today I tried to use it on an IIS server and ran into many problems. Searching for information to solve this problem was difficult, largely due to the lack of a search function at the official FolderBlog forums. The incomplete documentation for the current version 3 of the program also doesn't help! As a result I've decided to post my solution here:
Step 1
Edit fb_settings.php and replace:
Note: To post new images and captions after changing this setting you need to browse to fb.php?p=post instead of fb.php/post/
Step 2
IIS does not have the REQUEST_URI function. We need to use PHP_SELF instead. Open up fb.php and replace all instances (there should be 5) of:
Step 3
Some IIS servers which are running PHP as CGI may not have EXIF enabled. This was the case with my IIS server. In order to fix the exif_imagedata errors that result from this I had to find this section in the FIR version of fb.php:
// MODIFIED BY IKUE
// check if it is a supported filetype, better error handling included
$original = @imagecreatefromjpeg($filename);
// could it be loaded? if not, try another
if (!$original) { $original = @imagecreatefrompng($filename); }
// could it be loaded? if not, try another
if (!$original) { $original = @imagecreatefromgif($filename); }
// still not loaded? dear... give an error message
if (!$original) { showerror("You attempted to load an unsupported filetype. Check your file extensions in the settings.<br>File: $filename"); }
$x = imagesx($original);
$y = imagesy($original);
if ($square_thumbs==0) {
$scale = $thumb_maxsize/max($x, $y);
$newx = $x*$scale;
$newy = $y*$scale;
$thumb = imagecreatetruecolor($newx, $newy);
imagecopyresampled($thumb, $original, 0, 0, 0, 0, $newx, $newy, $x, $y);
} elseif ($square_thumbs==1) {
$scale = $thumb_maxsize/min($x, $y);
$newx = $x*$scale;
$newy = $y*$scale;
$thumb = imagecreatetruecolor($thumb_maxsize, $thumb_maxsize);
imagecopyresampled($thumb, $original, ($newx-$thumb_maxsize)/-2, ($newy-$thumb_maxsize)/-2, 0, 0, $newx, $newy, $x, $y);
}
if (exif_imagetype($filename)==IMAGETYPE_JPEG) {
imagejpeg($thumb, $thumb_directory . basename($filename), 95);
if ($altname) {
imagejpeg($thumb, $thumb_directory . $altname, 95);
}
} else
if (exif_imagetype($filename)==IMAGETYPE_GIF) {
imagegif($thumb, $thumb_directory . basename($filename));
if ($altname) {
imagegif($thumb, $thumb_directory . $altname);
}
} else
if (exif_imagetype($filename)==IMAGETYPE_PNG) {
imagepng($thumb, $thumb_directory . basename($filename));
if ($altname) {
imagepng($thumb, $thumb_directory . $altname);
}
} else { showerror("You attempted to load an unsupported filetype. Check your file extensions in the settings.<br>File: $filename"); }
return array($newx, $newy);
}
And replace it with the same function from the original unmodified (not FIR) version of fb.php (this will remove EXIF functionality from FIR, but I don't need it anyway):
Step 4
Almost there! The FIR gallery now displays in my web browser, but although the thumbnails are visible none of links work. It turns out that all of the links were missing the ?q= characters. Thanks to this thread all you need to do to fix this is edit fb.php and replace this line:
Step 5
There is no step 5. You should now have a working FolderBlog installation on a Windows IIS server.
Matt doesn't think much of the poll, saying that it is difficult to trust when webcams are included but RSS, XML and AJAX are not. I can't say I agree with Matt there, even today your average websurfer wouldn't have a clue what RSS, XML and AJAX were. Commenters on Matt's post offer a variety of other opinions, some of which I disagree with, and a couple of which simply made me laugh (modems? HTML? How can these be 'Top 10 Web moments'?)10. WiFi hotspots -- wireless Internet connectivity appears in airports, hotels and even McDonald's.
9. Webcams and photo sharing -- communication becomes visual, and inboxes fill with baby photos. 8. Skype -- telephony turns upside down with free long-distance calls, Ebay snaps it up in September 2005 for $2.6 billion.
7. Live 8 on AOL -- five million people watch poverty awareness concerts online in July 2005, setting a new Net record.
6. Napster goes offline -- Regulators close the pioneering music swap site in July 2001 and file-sharing goes offshore.
5. Lewinsky scandal -- Matt Drudge breaks the Clinton/Lewinsky sex scandal in 1998. The blog is born.
4. Tsunami and 9/11 -- two tragic events set the Web alight with opinion and amateur video.
3. Boom and bust -- trillions of dollars were made and lost as the dotcom bubble ballooned and burst between 1995 and 2001.
2. Hotmail -- went from having zero users in 1995 to 30 million subscribers 30 months later. It now has 215 million users.
1. Google -- redefined search. Invented a new advertising model and commands a vast business empire.
I'm sure I've forgotten some, but I think these deserve a place on that list. Has anyone else got any suggestions?Netscape - the first popular graphical web browser, sparks the 'browser wars'
WYSIWYG HTML editors - it's 1995, PageMill is released, and suddenly anyone can build a webpage
Javascript - webpages become interactive, later develops into AJAX
Amazon - dramatically shook up e-commerce with great prices and fast worldwide delivery
ICQ - instant messaging enters the public consciousness via a tiny Israeli company
eBay - wasting time on the web while at work explodes in popularity and propels thousands into earning a living in their pajamas
Boing Boing are reporting on a San Antonio university course where students are required to observe interactions in the online role playing game World of Warcraft. One bright spark boldly embarked on an investigation into sexism, and was inexplicably surprised when she got plenty of juvenile responses ("show us yer t*ts!!!") on the WoW discussion forums. Hello? It's a GAME - with a commensurate number of children playing. Juvenile behaviour is the norm.
Thus concludes Mac History 101.2.9 Content-Disposition and Multipart
If a Content-Disposition header is used on a multipart body part, it applies to the multipart as a whole, not the individual subparts. The disposition types of the subparts do not need to be consulted until the multipart itself is presented. When the multipart is displayed, then the dispositions of the subparts should be respected.
If the `inline' disposition is used, the multipart should be displayed as normal; however, an `attachment' subpart should require action from the user to display.
If the `attachment' disposition is used, presentation of the multipart should not proceed without explicit user action. Once the user has chosen to display the multipart, the individual subpart dispositions should be consulted to determine how to present the subparts.
I somehow missed it at the time but I've just discovered that back in April Google launched a Google Maps service on certain mobile phones. The service is a downloadable application which lets you view Google Maps (maps and satellite imagery tied together with driving directions and telephone directory information) on your mobile phone. Just like the computer version of Google Maps, you can drag the map around the screen. The mobile phone service also introduces a new feature named 'click to call' where you can phone up a local business simply by locating them on the map.
Here's one for all of you with unlimited data connections on your mobile phone plans: German developer CipSoft have finally introduced a worldwide version of their Tibia MMORPG for Symbian Series 60 phones. For those of you paying per kilobyte, one hour of gameplay averages around 400kb of data transfer. Could this be a threat to the dominance of World of Warcraft? No longer will people need to closet themselves at home to get their online gaming fix!
Funnily enough most World of Warcraft players are fairly blasé about the whole epidemic, regarding it as not merely a programming foul up, but as a hazard of virtual life and something to celebrate! Rightly so, in my opinion! This is fantastic stuff, how can anyone not love it?Heres the skinny: Blizzard adds in a new instance, Zul'Gurub. Inside is the god of blood, Hakkar. Well, when you fight him he has a debuff called Corrputed Blood. It does like 250-350 damage to palyers and affects nearby players. The amazing thing is SOME PLAYERS have brought this disease (and it is a disease) back to the towns, outside of the instance. It starts spreading amongst the genral population including npcs, who can out generate the damage. Some servers have gotten so bad that you can't go into the major cities without getting the plague (and anyone less than like level 50 nearly immediately die).
The relatively unknown (to the general public) web browser known as Opera is now free! From humble beginnings in 1996 with a public debut as a small Norwegian browser to 2005 and membership of a very exclusive club - browsers that cost money - Opera has had a good innings.

Pretty nifty, especially in this day and age when ordinary people have to come up with more and more non-trivial passwords.


For me, and I suspect a significant proportion of other RSS users, the language of the headline plays a major part in whether or not I read the article. I have tried to reflect that in the headlines I choose for this site. However every once in a while you see a headline that just has to be shared (the granddaddy of them all surely must be 'Keegan fills Schmeichel's gap with Seaman'). So, without further ado, here is this week's Headline of the Week:
During the relocation of this site to Register1's hosting service an issue cropped up with James Seng's MT-Scode. The scodetest.cgi script was failing due to a missing GD.pm. Register1 were very helpful and had GD.pm installed within a couple of hours of my first email. However GD still refused to function - the SCode numbers weren't being drawn. From the http error log:
[Fri May 13 18:46:04 2005] [error] [client 81.151.xxx.xxx] Premature end of script headers: mt-scode.cgiAfter a dead end or two, Aaron & Isaac Goldberg provided the vital clue - it appeared to be a problem with the server's GD installation.
[Fri May 13 18:46:04 2005] [error] [client 81.151.xxx.xxx] /usr/bin/perl: relocation error: /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/auto/GD/GD.so: undefined symbol: gdFontGetGiant
[Fri May 13 18:54:38 2005] [error] [client 81.151.xxx.xxx] gd-png: fatal libpng error: Invalid number of colors in palette
[Fri May 13 18:54:38 2005] [error] [client 81.151.xxx.xxx] gd-png error: setjmp returns error condition
Despite just having spent a fair amount of time on my GD.pm problem, Register1 enthusiastically started investigating the new problem. They weren't running CPanel so the Goldbergs' cleangd advice didn't apply. Nevertheless Register1 solved the problem two days later without any further prompting, and the previously-broken SCode installation suddenly started working. They explained how they fixed it:
We had to downgrade the version of GD from 2.23 to 2.11 and use a pre-compiled Perl-GD rpm available from Redhat as opposed to a self-compiled version.
Comment
Register1's support has been nothing short of outstanding throughout this episode. Email replies were very quick - often within an hour. On one occasion, having just sent off a half-past-midnight email inquiry, a reply arrived at 1am! A great personal service - I've only been with them for a week but they are looking like the perfect hosts. Highly recommended, and very reasonably priced as well. They are also currently offering a "3 years for the price of 2" deal.
This site is now hosted by Register1, a UK-based hosting service. I chose them after reading many recommendations at the overclockers.co.uk forums. Migrating has not been totally hiccup-free, but Register1's support has been nothing short of outstanding.
Wouldn't you know it. Just when I'm feeling quite pleased about upgrading to a 2 megabit connection, a company in my home town named Hong Kong Broadband Network has announced a 1 gigabit connection. Essentially they are installing gigabit ethernet in apartment blocks, so it's currently only about a third of the total households in Hong Kong. Discussion on Slashdot here, and although some of it is pure ignorance Slashdot reader xstein astutely noted that the 1 gigabit speed only applies to local traffic within Hong Kong, overseas bandwidth is capped at 20 megabit (warning: Chinese language page, plus humongous flash advert).
I noticed today that my MySQL install seemed to have broken. I was getting an error when I tried to post a new entry via Ecto, and after poking around a bit I discovered that any query involving the mysql database (such as a site search) produced the same error:
Further investigation seemed to indicate this was a permissions problem. The only thing I've installed recently has been the OS X 10.3.9 update, so I'm guessing it happened then. After much googling I found the fix.
Change directory to your mysql directory:
And enter this change ownership command:
And voila! Everything works again.
Utterly useless, but great fun! Even the webpage is amusing!
Reading the comments on VersionTracker and MacUpdate is also entertaining.
I first saw this in an excellent Creative Bits post yesterday and have since been playing with it. It is truly jaw-dropping! Here's one I whipped up myself. The service isn't quite perfect, for one thing it's very hard to bring up information bubbles for buildings you recognise, and the search function itself is pretty flakey. Also after 20 minutes of fooling around with it caused Safari to start behaving strangely (clicking in the search box wouldn't make a cursor appear). But considering the satellite firm Keyhole was only acquired by Google in October, it's still pretty impressive!
Update: this site uses a similar technique, but on a 2.5 gigapixel landscape photo instead of satellite imagery.
Despite the fact that it took British Telecom 3 weeks instead of 1 to reconnect me, and despite the fact that they are giving out speed upgrades to everyone (so no matter what they say it isn't really 'compensation'), I'm still smilin'
ServuStats are one of the many free website statistics trackers who offer free services in return for a small javascript-generated button (seen to the left) on your site. Like many other people, I used to use ServuStats to keep track of my site's statistics. But as of today someone in the organisation has had the bright idea of replacing the small button with a gigantic banner ad, without notifying anyone.
This is what the banner looks like:

Needless to say, I will removing the ServuStats code as soon as I have a free moment.
Update: I have now clicked through the banner ad, and discovered that it takes me to my ServuStats page, and then redirects me to engineseeker.com. This rake-it-in-now attitude makes me think that ServuStats have been hacked, rather it being a misguided marketing ploy. I have sent them an email, we'll see what they have to say for themselves.
I mentioned Google's amazing new map service recently, noting that it only worked in Firefox and Internet Explorer. No longer! Google have now got it working with Safari as well.
Google Maps has gone beta. Most definitely worth a look, but only using Firefox or (ugh) Internet Explorer. Make sure you try click-and-drag on the map! Double-click it as well! Amazing stuff - streets ahead of the competition. It only covers the United States at the moment, but expect more countries to be added soon.
Despite previous failed attempts to get this working I did not lose hope. Since the recent firmware upgrade hadn't done anything significant to solve the problem, I concluded that it must be the generic bluetooth dongle I had. I decided to do what I should have done to start with, and bought a D-Link DBT-120 bluetooth dongle. This has cracked it!
The combination of the new firmware and the new dongle allows P800 Manager to share my internet connection for what appears to be an indefinite duration! So far my P800 has been sharing my laptop's internet for about 6 hours straight without any problems.
The mobile Opera browser is, as you can see, pretty slick. It resizes images very nicely and the 'fit-to-width' option saves you from a lot of side scrolling. Furthermore the full-screen option (as shown to the right) allows you to make maximum use of your screen real estate.
Over the last couple of days this site has had something in the region of 200 trackback spams proclaiming the wonders of online gambling. It's actually quite a refreshing change to have some spam again after 10 weeks of being spam free.
After doing a little research, it appears there is no reliable way to block trackback spam whilst allowing legitimate trackbacks, but given their relative unimportance turning off trackbacks for all previous entries appears to be a no-brainer. Clearly the mere fact that someone else is linking to this site is the important point, the trackback's main purpose (* see below) seems to be providing an ego-boosting acknowledgment of that link.
* The argument that trackback serves as a sort of 'continuing the discussion elsewhere' signpost could conceivably be an argument to keep trackback, were it not for the fact that the vast majority of trackbacks are the blogosphere's equivalent of UseNet "me too" posts.
Update: Phil Ringnalda wrote an insightful article on this subject.
I read a useful Google hack recently - the following link opens a Javascript window:
Javascript:void(q=prompt('Type%20in%20the%20search%20term:')); if(q)void(location.href='http://www.google.com/search?q='+escape(q))
Click the link and type in your search term. When you click 'OK' it takes you to the Google results page for your search term. What's that you say? Not very inspiring so far? Well, how about this -
Using just a little knowledge of the way Google searches you can search web directories:
Javascript:void(q=prompt('Type%20in%20the%20type%20of%20file%20here:')); if(q)void(location.href='http://www.google.com/search?client=googlet&num=100&q=intitle%3A%22index%20of%20/%22%20%22'+escape(q)+'%22')
Or you can specify a particular file type (in this case I've used .mp3, you can replace it with .ogg or .avi or whatever takes your fancy
):
Javascript:void(q=prompt('Type%20the%20name%20of%20the%20MP3:')); if(q)void(location.href='http://www.google.com/search?client=googlet&num=100&q=intitle%3A%22index%20of%20/%22%20%22'+escape(q)+'%22%20mp3')
Of course, despite the title of this post, this tip isn't restricted to Google - my favorite use of this technique is the search term below which I cobbled together to enable me to quickly search this blog:
Javascript:void(q=prompt('Search%20Digital%20Life%20the%20OS%20X%20way:')); if(q)void(location.href='http://thoughton.co.uk/cgi-bin//mt-search.cgi?IncludeBlogs=1&search='+escape(q))
Note that there should be no spaces in the above code snippets.
One great use of this method is to place a button in your Bookmarks bar:

BoingBoing today mentioned a fascinating Google hack which locates unsecured webcams. Just plug the following term into the Google search box. Note that Safari does not support JPEG streaming - use FireFox instead. Note that you can pan and zoom the camera by clicking the controls on the left!
inurl:"ViewerFrame?Mode="
This discussion also produced a couple of variations on the theme:
inurl:"MultiCameraFrame?Mode="
inurl:/view/view.shtml?videos=
ThreadWatch.org have posted a discussion on the possible solutions to blog spamming. Unsurprisingly, they've concluded that a installing a captcha system is probably the best single solution. There's a mention of the bBlog system which has implemented captchas right out of the box - possibly worth looking into.
The Register today published a very interesting scientific paper analysing BitTorrent as used via Suprnova.
One of Safari's more annoying user-interface decisions is the "Safari can't find server" error message.

If you open a link in a new page or a new tab and encounter this error, when you switch to the page or tab in question, you cannot close or refresh the page or tab until you dismiss the error message. This is simply terrible interface design, and not worthy of Apple. Whoever is responsible for Safari's UI, please do something about this! The error message should appear in the title bar, or address bar, or simply as a webpage saying "Server not found", not as a drop-down sheet that has to be dismissed.
Anyone who grew up in the 80s and was interested in science fiction might remember a visionary TV show called Max Headroom. However, if you do remember it, don't bother trying to order it on DVD - it doesn't exist. Warner Brothers, who own the copyright, have decided in their infinite wisdom that it's not worth the effort. There is an online submission form here where you can petition for a DVD release (Warner Brothers titles only). Don't wait - do it now!
Gizmodo are reporting on a David Hasslehoff-signed 20GB iPod on eBay (click through for a little movie from the man himself). The current eBay price after 6 bids is £102.01. A brand new 20GB iPod from Apple costs £212. Go figure - evidently the Hoff's signature immediately strips £100 off the iPod's value. I wonder if the signature can be buffed off?
Total Wireless Solutions have released NewsFlash, an RSS reader for the UIQ platform. I've been trying to estimate the total size of my 170 or so regular RSS feeds. On average each feed seems to be anywhere from 3 to 15 K of data when it refreshes each hour or so - except for blogs like BoingBoing which include images in their RSS feed as well as blogs like EnGadget and Gizmodo which put out a very high number of articles. If we call the average 5K and we have 170 feeds, the total is about 850K downloaded for each hourly refresh. That's 5 or 10 minutes by GPRS, not great but acceptable. On the other hand it would be half a minute or so on 3G - perhaps I should be investigating 3G options when I upgrade my P800.
Using Brad Choate's MTMacro plugin I've enabled smilies on this site
All I did was install the plugin as per the instructions, and then put a bunch of smilies inside a smilies folder (inside my icons folder).
Then I inserted this code into the head of each template (and repeated it with modifications for each different smiley):
<MTMacroDefine name="smiley1" string="">
<img src="<$MTBlogURL$>icons/smilies/biggrin.gif"
alt="" />
</MTMacroDefine>
I installed Adam Kalsey's Improved Related Entries System today. It's working great, except I'm having to go back and add keywords to some badly titled previous entries. Apologies if I accidentally re-pinged anyone - I forgot to turn off notifications in Ecto for the first entries I added keywords to.
It has now been exactly 30 days since MT-Captcha was installed on this site. In that time this site has not seen a single spam comment. The previous month saw spam figures pass the 600 mark, so it would seem reasonable to call that a glorious debut! Thank you James!
A few days ago I wrote about AOL suspending my AIM account after one day of use. It seems that I wasn't the only one - AOL have now admitted to accidentally removing some active AIM accounts during a routine removal of dormant accounts.
I missed this when it came out three weeks ago, but there was an interesting article on Engadget about setting up automatic downloads of TV episodes via BitTorrent and RSS. They are doing it on a PC, but the BitTorrent client they are using is Azureus, a java client which also works on OS X.
My AIM account, which I have used for a grand total of one day, has been suspended by AIM. There was no explanation, no email, no nothing. To date, I have sent about 20 IMs with the AIM service, and I have attempted but failed to have a video conference using iChat. Perhaps they've suspended me for that, I don't know.
What I do know is that attempting to log on produces this error message:
Unknown Authorization error when connecting to AIM, error = 17 More information | OK
Clicking on 'More information' leads me to this generic webpage:
Your Screen Name is blocked from signing in to the AIM service. Your Screen Name is blocked from signing in to the AIM service. There are several reasons why you may have received this message: 1. Screen Names that were previously used on AOL but have been cancelled or suspended, can no longer be used on AIM. This includes both master accounts and sub-accounts. In order to continue using this Screen Name on AIM, please reactivate the account on AOL.2. AOL Screen Names that have one or more of the following Parental Controls set will no longer able to use AIM, even if they have previously been able to do so:
- Instant Messages are Blocked.
- Kid's Only age category.To access AIM, the Master Screen Name on the AOL account must go to AOL Keyword: Parental Controls and change the above settings for this Screen Name. In addition, your Screen Name must also be set to one of the following age categories: Young Teen, Mature Teen, or General (18+).
3. Users who identify themselves as a child under the age of 13 may not use this service at this time. If you are an adult and have entered your birth date incorrectly, you may use a credit card to complete our age verification process now, or anytime within 30 days of the date when you identified yourself as a child. You will not be charged for this credit card verification.
Click here to sign in to our age verification form to reactivate your Screen Name.
4. An account may be terminated for violations of the terms of service.
Pretty useless huh? I don't know why I expected more from AOL after the iChat-AIM team-up, but I shouldn't have. Evidently their level of competence is pretty much what it's always been. I've heard horror stories about their UK broadband service too.
I wouldn't even mind so much if there was some way of contacting AOL. But they deliberate make it impossible to do so. The only help you get is the inscrutable page shown above, or a ridiculous FAQ page with one entry.
Since getting the Airport Express and going wireless, I've noticed that I get disconnected from the Airport network when I use Fast User Switching to switch over to my iTunes user (I used this MacOSXHints hint to set up a large second shared iTunes library on an external hard disk). After a bit of research I came across this mailing list post. Switching to my iTunes user showed that I could not make any changes to the Network settings. This was when I remembered that I had set the iTunes user to Simple Finder to see what was so simple about it. Switching back to my main user showed that I couldn't make changes to logged in users, so after a quick switch back and logout of the iTunes user, I set it to Full Finder, logged back in, opened up the Airport tab of Network preferences and entered the appropriate network name and password. Note: the password box only appears once you've chosen a network. Voila! No more disconnects when switching users.
Igor asked me to compile his latest version today - I had a look at my previous write-up on the process, but I needn't have worried - it installed without a hitch.
Not a single other forum I've ever visited does it, so why does Apple? A whole host of troubleshooting information is being deleted for no reason at all. I can't even count the number of times I've been directed to the Apple discussion boards for a solution to some problem or other, only to find that the thread is too old and has been deleted.

This site has recently started to attract spammers, extolling the virtues of viagra, cialis, and large penises in general. Since the Movable Type interface is relatively slow, deleting these spams has become a bit of a pain.
There are several methods of defence, ranging from simply removing the 'post message' button and forcing everyone to preview, to installing Jay Allen's MT-Blacklist, or a script which disables comments after a set period of time. Elise Bauer of the Learning Movable Type blog has an extensive description of the various approaches.
The best solution for minimal admin-interaction (i.e. the best solution for lazy folks like yours truly) appears to be James Seng's MT-Captcha, an MT plugin which adds a graphical security code which the commenter has to read and type in (thus defeating the automated spam bots). Apparently captcha stands for "Completely Automated Public Turing test to tell Computers and Humans Apart."
Fink hell
Unfortunately, in order to draw the images, MT-Captcha requires that you install the perl module gd. I had previously downloaded and attempted to install this using these instructions but got lost in a maze of dependencies and fink hell. However today I stumbled across a promisingly-titled document How To Install gd version 1.8.4 on Mac OSX on DarwinPorts!
However, this meant I had to install darwinports ...
Next up, DarwinPorts
I set about following the site's instructions:
% cd ~
% mkdir darwinports
% cvs -d :pserver:anonymous@anoncvs.opendarwin.org:/Volumes/src/cvs/od login
% cvs -d :pserver:anonymous@anoncvs.opendarwin.org:/Volumes/src/cvs/od co -P darwinports
% cd ~/darwinports/base
% ./configure
% make
% sudo make install
Unfortunately I hit a problem almost immediately. The second cvs command left me with this error:
cvs checkout: in directory darwinports:
cvs checkout: cannot open CVS/Entries for reading: No such file or directory
cvs [checkout aborted]: cannot write: No such file or directory
After a few minutes of Googling I discovered that this error was likely the result of already having a directory called darwinports (i.e. there is an mistake in the instructions). I removed the directory and tried the second cvs command again, and hey presto! Screenfuls of stuff scrolling past as darwinports downloads! This lasted several minutes on my half megabit ADSL.
Eventually it finished and I moved onto the next step. After switching directories as instructed I entered ./configure. Cue lots more scrolling, only to come to a premature end with this message:
Please install the X11 SDK packages from the Xcode Developer Tools CD
configure: error: Broken X11 install. No X11 headers
And then X11
Argh! I thought I had already installed XCode 1.1 back when I was getting tintin++ to work. Apparently I didn't install the X11 part of XCode. Popping in the XCode 1.1 CD confirmed that it was missing. A lengthy 35 minute install later (the last 1% of which took 15 minutes), I was back to the Terminal to try and configure darwinports again. This time ./configure went smoothly, and make and sudo make install both completed without incident.
Finally, gd
Now to install gd! Referring back to the How To Install gd version 1.8.4 on Mac OSX document, the first instruction was to type sudo port install gd. Naturally this didn't work (does any unix software work first time?) - 'port' was not recognised. Adding export PATH=$PATH:/opt/local/bin to my ~/.profile file fixed the problem. After a 5 minutes or so I ended up with a screen like this:
$ sudo port install gd
---> Fetching jpeg
---> Attempting to fetch jpegsrc.v6b.tar.gz from http://www.ijg.org/files
---> Verifying checksum(s) for jpeg
---> Extracting jpeg
---> Applying patches to jpeg
---> Configuring jpeg
---> Building jpeg with target all
---> Staging jpeg into destroot
---> Installing jpeg 6b_0
---> Activating jpeg 6b_0
---> Fetching libpng
---> Attempting to fetch libpng-1.2.6.tar.bz2 from http://voxel.dl.sourceforge.net/libpng
---> Verifying checksum(s) for libpng
---> Extracting libpng
---> Configuring libpng
---> Building libpng with target all
---> Staging libpng into destroot
---> Installing libpng 1.2.6_0
---> Activating libpng 1.2.6_0
---> Fetching gd
---> Attempting to fetch gd-1.8.4.tar.gz from http://www.boutell.com/gd/http/
---> Verifying checksum(s) for gd
---> Extracting gd
---> Applying patches to gd
---> Configuring gd
---> Building gd with target all
---> Staging gd into destroot
---> Installing gd 1.8.4_3
---> Activating gd 1.8.4_3
And that's it! gd is now installed.
Now onto MT-Captcha...
The instructions for installing MT-Captcha itself are quite simple. All you have to do is insert some code into your MT templates. However after making the necessary changes and rebuilding I got lots of these errors:
MT::App::Comments=HASH(0x815db34) print() on closed filehandle OUTFILE at lib/MT/SCode.pm line 5
This turned out to be incorrect permissions on my MT-Catchpa temporary folder. Setting the owner of that folder to www (UID 70) cured the rebuilding errors. However, my security code was still not appearing! According to James Seng if your image doesn't appear it is always related to your gd install. After much frustration I finally realised that my install was missing GD.pm! Seeing as how I know absolutely nothing about perl, I failed to appreciate that gd and GD.pm are two different things, and we need to install both.
Not just gd, GD.pm too
So, after some more googling, I found that GD.pm (version 2.17) can be found here. After downloading and expanding it, perl Makefile.PL resulted in hundreds of error messages:
GD.xs: In function `newDynamicCtx':
GD.xs:440: error: structure has no member named `gd_free'
GD.xs: In function `gd_cloneDim':
GD.xs:460: error: structure has no member named `alpha'
GD.xs:460: error: structure has no member named `alpha'
GD.xs:466: error: structure has no member named `thick'
GD.xs:466: error: structure has no member named `thick'
GD.xs: In function `XS_GD__Image_newFromPngData':
GD.xs:595: error: structure has no member named `gd_free'
GD.xs: In function `XS_GD__Image_newFromGdData':
GD.xs:614: error: structure has no member named `gd_free'
GD.xs: In function `XS_GD__Image_newFromGd2Data':
GD.xs:631: error: structure has no member named `gd_free'
GD.xs: In function `XS_GD__Image_newFromJpegData':
GD.xs:651: error: structure has no member named `gd_free'
GD.xs: In function `XS_GD__Image_newFromWBMPData':
GD.xs:676: error: structure has no member named `gd_free'
GD.xs: In function `XS_GD__Image_copyRotate90':
GD.xs:1189: error: invalid lvalue in assignment
GD.xs:1189: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_copyRotate180':
GD.xs:1210: error: invalid lvalue in assignment
GD.xs:1210: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_copyRotate270':
GD.xs:1231: error: invalid lvalue in assignment
GD.xs:1231: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_copyFlipHorizontal':
GD.xs:1252: error: invalid lvalue in assignment
GD.xs:1252: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_copyFlipVertical':
GD.xs:1273: error: invalid lvalue in assignment
GD.xs:1273: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_copyTranspose':
GD.xs:1294: error: invalid lvalue in assignment
GD.xs:1294: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_copyReverseTranspose':
GD.xs:1315: error: invalid lvalue in assignment
GD.xs:1315: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_rotate180':
GD.xs:1335: error: invalid lvalue in assignment
GD.xs:1335: error: invalid lvalue in assignment
GD.xs:1336: error: invalid lvalue in assignment
GD.xs:1336: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_flipHorizontal':
GD.xs:1353: error: invalid lvalue in assignment
GD.xs:1353: error: invalid lvalue in assignment
GD.xs:1354: error: invalid lvalue in assignment
GD.xs:1354: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_flipVertical':
GD.xs:1371: error: invalid lvalue in assignment
GD.xs:1371: error: invalid lvalue in assignment
GD.xs:1372: error: invalid lvalue in assignment
GD.xs:1372: error: invalid lvalue in assignment
GD.xs: In function `XS_GD__Image_stringFT':
GD.xs:2085: error: `gdFTStringExtra' undeclared (first use in this function)
GD.xs:2085: error: (Each undeclared identifier is reported only once
GD.xs:2085: error: for each function it appears in.)
GD.xs:2085: error: parse error before "strex"
GD.xs:2104: error: `strex' undeclared (first use in this function)
GD.xs:2108: error: `gdFTEX_LINESPACE' undeclared (first use in this function)
GD.xs:2112: error: `gdFTEX_CHARMAP' undeclared (first use in this function)
GD.xs:2114: error: `gdFTEX_Unicode' undeclared (first use in this function)
GD.xs:2116: error: `gdFTEX_Shift_JIS' undeclared (first use in this function)
GD.xs:2118: error: `gdFTEX_Big5' undeclared (first use in this function)
GD.xs:2140: warning: assignment makes pointer from integer without a cast
GD.xs: In function `XS_GD__Image_stringFTCircle':
GD.xs:2188: warning: assignment makes pointer from integer without a cast
GD.xs: In function `XS_GD__Font_DESTROY':
GD.xs:2353: warning: comparison between pointer and integer
GD.xs:2354: warning: comparison between pointer and integer
GD.xs:2355: warning: comparison between pointer and integer
GD.xs:2356: warning: comparison between pointer and integer
GD.xs:2357: warning: comparison between pointer and integer
GD.xs: In function `XS_GD__Font_Small':
GD.xs:2369: warning: assignment makes pointer from integer without a cast
GD.xs: In function `XS_GD__Font_Large':
GD.xs:2380: warning: assignment makes pointer from integer without a cast
GD.xs: In function `XS_GD__Font_Giant':
GD.xs:2391: warning: assignment makes pointer from integer without a cast
GD.xs: In function `XS_GD__Font_MediumBold':
GD.xs:2402: warning: assignment makes pointer from integer without a cast
GD.xs: In function `XS_GD__Font_Tiny':
GD.xs:2413: warning: assignment makes pointer from integer without a cast
make: *** [GD.o] Error 1
Reverting to GD.pm 1.33
This error totally stumped me. There's a thread here which discuses it along with a possible fix, but it might as well be Greek as far as I'm concerned! Finally I read a note here, which suggested that reverting to GD.pm version 1.33 would work on OS X. After a quick download of the older version, I was once again installing GD.pm as per the ReadMe file. This time, despite hundreds of make test errors, make install worked perfectly! A quick rebuild of the site and - wow, stop the presses! I virtually jumped out of my chair as the sweet sight of a graphical security code greeted my eyes!
PS: for perl idiots like myself, here is a useful command to see if GD is working:
perl -e "use GD"
If there are no errors then GD is working.
Back to reality
Alas, despite the appearance of my security numbers, all was not rosy. After turning off comment approval and posting a few test comments, it became rapidly apparent that the security code was not being checked at all. Any comment was accepted, no matter what number was input into the security code field! Back to the drawing board...
Finally, success!
After flailing around for a couple more hours, and reading every one of the 500 comments on the MT-Captcha page, I've finally figured it out. There is a typo in the ReadMe!!! Growl. The key passage is this:
+++++++++++++++++++++++++++++++++++
INSTALLATION MT 3.x
+++++++++++++++++++++++++++++++++++From: http://www.setcomputing.com/blog/archives/computing/2004-September/incorporating_mtsecu.html
Follow Step 1 to 5 as above and then...
But this is wrong, wrong, wrong. What it should say is:
+++++++++++++++++++++++++++++++++++
INSTALLATION MT 3.x
+++++++++++++++++++++++++++++++++++From: http://www.setcomputing.com/blog/archives/computing/2004-September/incorporating_mtsecu.html
Follow Step 1 to 7 as above and then...
Once I completed steps 6 and 7 from the MT 2.x instructions (editing Comments.pm and the templates), the security code check FINALLY started working. I'm on cloud nine!
In the course of researching Movable Type anti-spam techniques, I came across a Bayesian filter plugin by James Seng. It looks promising, but after reading this entry at Al-Muhajabah's MT Tips blog, I've decided to hold off. Apparently you need something like 1000 comments before it 'learns' enough to be useful. I have about 100 comments, so maybe I'll try it in a couple of years
I've been attempting to install Jay Allen's MT-Blacklist in order to help deal with comment spam. However, despite widespread acclaim I found this software quite badly documented and hard to install. The help forums were notably unhelpful - they are full of people requesting help and little to nothing in the way of answers. That said, this is free software and I suppose one can't expect too much.
After precisely following instructions and installing the software (including installing Storable.pm) I ended up with an error when I tried to load mt-bl-config.cgi ("Use of uninitialized value in concatenation (.) or string at /Library/WebServer/CGI-Executables/extlib/File/Spec/Unix.pm line 78."). According to Jay Allen this is a "superfluous perl warning". Whatever it is, MT-Blacklist simply doesn't work. No matter what I click, it takes me to a login page which doesn't allow any logins. Using my Movable Type login and password merely causes the page to reload. Interestingly, using any other login information results in a red box saying 'Invalid Login'. So obviously I am using the correct password information, there's just something broken in MT-Blacklist.
One of the suggestions in the help forums (in reply to someone else's problem) was to simply reinstall MT-Blacklist. I wasted a couple of hours and did so, only to get to the loading stage (running mt-bl-config.cgi) be greeted by a message to the effect that there were pre-existing MT-Blacklist entries in the MySQL database which needed to be removed. After spending a fruitless hour searching for an idiot's guide on command-line commands to drop tables from a MySQL database, I ended up installing phpMyAdmin following these instructions. After that ordeal trying to load phpMyAdmin resulted in this error: " The configuration file now needs a secret passphrase (blowfish_secret).". A quick google led me to this page where I found the solution. Finally, something that worked! Like so much other unix software, this whole ordeal has been a case of 'one step forward, two steps back.'
Unfortunately, after removing the old MySQL tables and reloading MT-Blacklist, I'm getting the exact same problem as before - no matter what I click I get taken to a non-responsive login page. As you can imagine, this is intensely annoying
If anyone has a clue, I'd love to hear from them!
Updated the site! First I installed Marc Liyange's PHP Apache Module in order to experiment with PHP. Then I found a slick PHP random image script which led me to (finally) revamp the site's general look. Finally rid of those default Movable Type colours!
After years of reading SlashDot, I have finally taken the plunge and registered for an account there! The reason? The decrease in what usenet geeks call the "signal-to-noise" ratio. In the (possibly rose-tinted) past SlashDot comments were invariably insightful and technically impressive, but recently the surge in irrelevant comments has been quite irritating.
After thinking about it for a few minutes, it occured to me that given SlashDot's unique moderation system there might be some kind of preference where I could filter out the frivolous comments. But only if I registered. And, lo and behold, after registering and checking the user preferences section I found exactly what I was after! Once you log in, you can go to the Preferences:Comments page, and change the "Reason Modifier" for "Funny" to "-6". This will moderate all "Funny" comments down by 6, and thus guaranteeing they fall below my threshold of 2 (and guaranteeing I never have to read another inane joke about Beowolf clusters).
To illustrate my point about the number of wannabe comedians, this story about the recently-discovered giant apes in the Congo has 172 comments with no humour filtering. With humour filtering that number drops to 132. In my humble opinion having 1 in 4 comments making some kind of joke is far too much. And most of the jokes aren't even funny!!! I wouldn't object so much if the humour moderation was a bit more discerning, but when a one-line comment such as "An ape capable of killing lions ran away after a peek--that must have been one ugly face!" rececives the maximum +5 moderation for humour, I find I lose a lot faith in the collective sense of humour of SlashDot moderators. Apologies to whoever posted that comment, but this feeble joke would barely crack a smile if you told it in real life, why is it so funny on SlashDot?
I was recently directed to ManyBooks.net as a good site for free books. There are a lot of the Project Gutenberg books here, but the layout and organisation is much better, and books are available in many popular eBook formats, including my preferred PalmReader (pdb) format. I'm a long time fan of the late Robert Heinlein, and given his many references to Edgar Rice Burrough's John Carter of Mars series, I've always wanted to read them. So it was a nice surprise when I found book one of the series, Princess of Mars. Books two to five are also available.
There was a nifty tip on MacOSXHints today - apparently the codecs from the latest RealPlayer are usable in Mplayer. This is useful if you want to convert streaming RealVideo but the codec is too new for Mplayer.
Ok ... I've been discovered by one particularly dorky spammer. He's just posted a spam comment to every single previous post! I am now investigating the options. There is a good summary here, but the best bets seem to be MT-Blacklist and SCode. However according to this page, SCode hasn't been tested with MT 3.x yet. In the meantime I've turned on comment approval, so comments will no longer appear on this site until approved by me. Sorry about that, hopefully it won't last long. Watch this space!
I've heard good things about some blogging software called ecto and decided to try it out today. Installing it was a bit of a pain, it turned out I needed some files that were included in a full Movable Type 3.x install but not included in an MT 2.661 upgrade install. I ended up in the ecto support forums where with some very prompt help from the author managed to get it working.
I've now been playing with the software for a couple of hours and, essentially, I love it. There are a few areas where it it still manages to outfox me, most of them are to do with ecto's WYSIWYG Rich Text editing interface. There is also a plain HTML interface, which is mainly what I've been using. Even though the entries in plain HTML look the same as they do in the Movable Type entry screen, ecto's interface is infinitely better, largely because of the vast speed increase the whole blogging procedure undergoes.
Other highlights have been ecto's clever HTML tag shortcuts For instance you can copy a destination URL into the clipboard, switch to ecto and highlight the phrase to be hyperlinked, press command-shift-U and hey presto you have a hyperlinked phrase. Simpler stuff like command-I and command-B work as well (this sounds like nothing, wait until you've have typed <>i> and <>/i> a few hundred times). Also worth a mention is the highly illuminating graphical breakdown of the program in the ecto support forums.
Upgraded this site's underlying software from Movable Type 2.661 to Movable Type 3.11 today. Following the upgrade instructions got me into trouble straight away simply because I uploaded the required files as the root user instead of from my user account. This gave all my files the wrong owner and group, which caused mt-upgrade30.cgi to give me this error:
Bad ObjectDriver config: Connection error: Access denied for user: 'thoughton@localhost' (Using password: NO)
After poking around a bit, I figured out that simply using the Finder instead of FTP to copy the required files from the MT-3.11-upgrade-en_us folder to my CGI-Executables folder solved this problem. Opening mt-upgrade30.cgi in a browser now produced some upgrading messages. Opening mt-upgrade31.cgi finished the job. Movable Type 3.1 should now be installed! But first I had to iron out a few problems.
The first thing I noticed upon logging into the new MT 3.11 installation was that the screen was all mixed up, with some new background images and some old (version 2.661) background images. Rebuilding the entire site fixed this, but on my first few rebuilds I got permissions errors involving index.html, index.rdf, index.xml, rsd.xml and archives.html files. Using the Finder to change the permissions of these files so that the group owner was 'www' and had read and write access fixed these rebuild errors.
Voila! Logging into the site worked fine now. One of the first things I did was to go to the preferences section and uncheck 'Use Old-Style Archive Links'. This switches the individual archive entries to have meaningful names (like upgrading_to_mo.html instead of 000090.html). Rebuilding after this produced a new permissions error involving MT's local archive path (on this site the path is tim/weblog/). Using the finder to change the ownership of the folder so that it was in the www group with read and write access fixed that problem.
I soon realised that the new site did not have the category icons anymore, but copying over topicon.pl and topicon.cfg from my old MT install followed by a rebuild fixed that! So far everything else seems to be working. Watch this space!
Update: Due to the extra two levels in the directory structure of the new meaningful-name archive files I also had to update some image paths on the archive templates.
It's almost like something out of Neuromancer! An article at the Register today describes the discovery in Norway of a 10,000-strong network of PCs all infected with worms such as MyDoom and Bagle being controlled via Internet Relay Chat (IRC) for spamming or Distributed Denial of Service (DDoS) attacks. The article goes on to refer to a Ohio-based IRC provider shut down for acting as middleman in corporate DDoS attacks.
Movable Type 3.1 was released yesterday. Looks good, perhaps one day soon I'll look into upgrading.
Cory Doctorow over at BoingBoing discusses a C|Net report on the current state of eBook publishing and whether or not Digital Rights Management (DRM) makes a difference.
I received this via email. I wouldn't normally post this sort of thing, but the captions really did make me laugh!
The US government has a new website, titled Be Ready. The thing is that the pictures from the site are so ambiguous they could mean anything! Here are a few interpretations.
If you have set yourself on fire, do not run.

If you spot terrorism, blow your anti-terrorism whistle. If you are Vin Diesel, yell really loud.

If you spot a terrorist arrow, pin it against the wall with your shoulder.

If you are sprayed with an unknown substance, stand and think about a cool design for a new tattoo.

Use your flashlight to lift the walls right off of you!.

The proper way to eliminate smallpox is to wash with soap, water and at least one(1) armless hand.
Michael Jackson is a terrorist. If you spot this smooth criminal with dead, dead eyes, run the hell away.

Hurricanes, animal corpses and your potential new tattoo have a lot in common. Think about it.

Be on the lookout for terrorists with pinkeye and leprosy. Also, they tend to rub their hands together manically.

If a door is closed, karate chop it open.

Try to absorb as much of the radiation as possible with your groin region. After 5 minutes and 12 seconds, however, you may become sterile.

After exposure to radiation it is important to consider that you may have mutated to gigantic dimensions: watch your head.

If you've become a radiation mutant with a deformed hand, remember to close the window. No one wants to see that shit.

If you hear the Backstreet Boys, Michael Bolton or Yanni on the radio, cower in the corner or run like hell.

If your lungs and stomach start talking, stand with your arms akimbo until they stop.

If you are trapped under falling debris, conserve oxygen by not farting.

If you lose a contact lens during a chemical attack, do not stop to look for it.

Do not drive a station wagon if a power pole is protruding from the hood.

A one-inch thick piece of plywood should be sufficient protection against radiation.

Always remember to carry food with you during a terrorist attack. At least you'll be able to enjoy a nice coke and apple before you die.
Interesting article on MacMerc this week describing how to enable encrypted and digitally signed emails in Mail and other Mac email apps. I'm waiting for my certificate now, although to be honest I can't imagine anyone I know encrypting their emails
The Register today reported the merger of two of the UK's online DVD rental companies, MovieTrak and Qflicks, supposedly in preparation for US pioneer Netflix's arrival later this year. As mentioned elsewhere, I'm a fan of LoveFilm.com. Other outfits include Video Island and Screen Select. While looking up their websites I had a chuckle at the inevitable hyperbole:
Screen Select - "Join the UK's number 1 online DVD rental service"
Qflicks - "Largest DVD Selection in Europe - over 20,000 titles"
MovieTrak - "Europe's first online DVD rental company"
Video Island - "Rated UK's No.1 DVD rental service"
LoveFilm - no bold front-page claims, but the FAQ mentions "over 20,000 titles - that's virtually every DVD available in the UK"
I wanted to add category icons to the website, so after a bit of reading I decided to give the TopIcon Movable Type plug-in a try. Installation was fairly straightforward - the only slightly obscure part was the documentation on the naming conventions for the icon files. I seem to have it cracked though, except for an odd spacing issue where the entry title doesn't extend to two lines.
Update: worked around the space problem by wrapping everything in a table with a defined width for the first cell.
GPRS is mighty expensive in the UK, just a month or two ago I looked into it on my T-Mobile pay-as-you-go plan and prices started at £1.50 per megabyte or £40 a month for 'unlimited' usage (discretionary 100MB cap, 12 month contract). This is way too much for me to use it for my regular email, let alone browsing the web.
So when I noticed this I thought, what a great idea!. A text-based web browser almost makes me want to sign up for GPRS so I could use the P800 as a mobile modem for the laptop. I'd still have to lug the laptop around along with the phone though. All I need now is a similar program for the Symbian OS.
I've recently been trying out one-liner, a handy Konfabulator widget. This is a highly customizable widget that uses regular expressions to extract data from a user-specified webpage and display it on screen with regular updates. The suggested uses are to keep track of new comments on a site such as VersionTracker, or to keep track of the latest version of an application. This latter use is what I like it for.
Some history: a few years back, VersionTracker made their name by offering a free service to check for updates of all your installed software. It was a bit slow (at the time everyone had dial-up connections) but it worked very well and was a big timesaver. Rather than Get-Info on each application (or worse yet, launch it just to check the version number), you could just run VersionTracker's app and it would tell you which of your installed apps had an update available online. Unfortunately, VersionTracker now want us to pay for this program (now called VersionTracker Pro, obviously). Worse yet, it's not even a traditional "pay-once" program. We now have to pay US$50 every year to use the service! This is known in some industries as a "bait and switch" scam ;-) but in the computer world it is unhappily quite common (mac.com anyone?)
Back to one-liner. What I wanted to do with it was to set it up to check for updates to a few apps that I regularly use (and have some minor issue that I'm waiting for a bug-fix for). After a bit of reading, including this nicely done RegExp tutorial, I was able to put together some generic expressions to parse VersionTracker entries for the information I want (i.e. the latest version number). Simply create a new entry in one-liner and enter the following values (use the VersionTracker URL of the application you want to watch):
Update: I realised VersionTracker have a different page for each version, which makes tracking the newest version difficult. MacUpdate only keeps the latest version which simplifies things a lot.
Parse Target URL (use the MacUpdate URL of the app you want to track):
http://www.macupdate.com/info.php/id/13341
RegExp1(A):
/<>title>(.*)<>\/title>/[1]>
Title:
/<>title>(.*)<>\/title>/[1]>
Display:
A
This will make one-liner request the MacUpdate page and display what the current version number of the software is. You can set the interval in the one-liner preferences. This is the result (the bottom five lines are the result of this technique):

A good place to ask RegExp-related questions is regexp.org.
On the face of it, this shouldn't be a problem. After all, it apparently works on Windows.
My early efforts at this stemmed largely from this hint and this hint at MacOSXHints. However I was unable to get it to work. I was continually getting this error in my Console log:
Failed to open /dev/tty.Bluetooth-PDA-Sync: Device busyI then spent a few days fiddling with this method from TechnoHappyMeal, but after a lot of frustration I gave up on it. At the time I had decided that because my internet connection was coming through a USB port I wouldn't be able to share it over bluetooth (the various scripts that were developed in this and the MacOSXHints threads above all only specified built-in-ethernet or airport connections).
I left it for a while but then I heard about an app called Bluetooth to Internet Utility. It looked promising, but unfortunately it seems to have been broken by one of the recent OS X system updates. (In step 3 of installation it tries to open Sharing Preferences but instead opens Universal Access Preferences and then pops up an error window).
Then a few days ago I read about an app called P800 Manager which has an internet-over-bluetooth option. This app looks like it has (almost) cracked it. For one thing it can establish (and maintain indefinitely) a bluetooth connection with the phone (the phone's bluetooth icon shows a two-way connection, which none of my previous attempts had managed to do). Almost there! However when I fire up Opera on the phone it appears to manage to send out a page request, and I can see some data being downloaded over the broadband modem (courtesy of MenuMeters), but the data does not reach the phone. I'm not sure what is going wrong, but I am investigating the phone's settings and the Mac's port settings.
Update 9/12/04: I recently went wireless with an Airport Express which involved replacing my USB broadband modem with an ethernet one. This has solved my problem - P800 Manager's internet sharing works now! I still get occasional drop-outs of the bluetooth connection (which requires a restart of the P800 Manager sharing process), but I'm confident that is a P800 firmware problem fixable by getting a firmware upgrade.
This problem has cropped up in the last few days. There has been much discussion about it, including on Slashdot here and here. The general consensus seems to be that the best solution is to use Rubicode's DefaultApp as documented on Daring Fireball.
Good news: a contributor at MacOSXHints has found a solution to prevent postfix from breaking down whenever you repair permissions. Three cheers for clvrmnky!
I have finally, after months of effort and four transatlantic faxes, managed to persuade Network Solutions that I am actually who I say I am. They have now changed my registered email address (they still had the old Hong Kong one) so that I once again have access to the typhoon8.net domain. Thanks to the free URL redirection service at MyDomain.com, I've pointed typhoon8.net to this page for now.
On a related note, while looking into the typhoon8.net situation, I noticed that typhoon8.com has been registered to an outdoor adventure company based in Hong Kong. On their website's links page they have a link for the "other" typhoon8, and the link is to the Hong Kong Observatory's typhoon signals explanation page! In the spirit of one-upmanship I thought I'd post this:
whois typhoon8.net
Domain Name: TYPHOON8.NET
Administrative Contact, Technical Contact:
Houghton, Timothy (31613958I)
Record expires on 18-May-2005.
Record created on 18-May-1999.
whois typhoon8.com
Domain Name: TYPHOON8.COM
Created on..............: Fri, Nov 29, 2002
Expires on..............: Mon, Nov 29, 2004
Record last updated on..: Thu, Feb 06, 2003
Administrative Contact:
Asia Explorer Limited
Maybe I should email them and demand inclusion on their links page! Or maybe I should just flog typhoon8.net to them.
I recently used Carbon Copy Cloner to back up my 30gig startup drive to an equal sized partition on my external 160gig. CCC is set to repair permissions on the source volume prior to cloning, and whattya know, Postfix didn't work afterwards. Applying the earlier fix got it working again.
Finally got tintin++ working on OS X! I think it's more to do with Apple switching to the bash shell than anything else. I did this on OS X 10.3.3, but this should work under any version of OS X 10.3. Pre-10.3 installations use the tcsh shell instead of the bash shell. tintin++ reportedly does work under tcsh, but it needs some special configuration to make it work (I've tried many times but always failed). Also note I am a unix novice and this is written for people like me
What is tintin?
tintin++ is a mud client for unix-based operating systems. It features triggers, aliases, tickers, paths, variables, gagging, and many other advanced features.
Getting the software
The first thing you will need is a compiler. Most users of OS X wouldn't know a compiler if they tripped over one, so it's not included in a default install. To get your compiler you will need to download the OS X Developer Tools (also known as Xcode 1.1). This is avalable at the Apple Developer Connection (free registration required). Note that the Xcode package is approximately 600 megabytes in size - we only need a tiny piece of it but this is the easiest way to get it). Note: recently-purchased Macs may come with an OS X Developer Tools CD.
Next you will need a unix package known as readline-4.3. This is available here.
Finally you will need the tintin++ package. The original tintin++ (v1.86) does not seem to be developed anymore (and the old homepage is dead), but my buddy Scandum has been working on updated version (v1.91) which is available at here.
Once you have all the software, you're ready to go!
Installing everything
1. Mount the Xcode disk-image. Launch the installer, follow the on-screen instructions for a default install.
2. Launch Disk Utility and repair permissions! This is recommended after installing any OS X system software.
3. Unpack the readline.tar and tintin.tar.gz packages by dropping them onto Stuffit Expander (installed by default with OS X). This will produce two folders, one called readline-4.3 and one called tt.
4. Copy the readline-4.3 and tt folders into your home folder.
5. Launch Terminal (inside /Applications/Utilities/).
6. Now you're going to compile readline. In the terminal, type the following:
cd readline-4.3
./configure
make
make install
You may get a couple of errors, but don't worry, you've just installed readline (enough of it for tintin anyway!). Congratulations. Type exit and quit the terminal.
Note: The readline install sometimes produces a load of messages about not having permissions to write in /usr/local/ This didn't happen to me - I don't know why - but it happened to another buddy Jeff. His solution was to type su and his root password before typing make (you may need to enable the root account and set a root password in NetInfo Manager [inside /Applications/Utilities/] - you should probably disable the root account after finishing this install).
Further note: Jeff has since told me that the permissions issue was due to him having just installed OS X and never having logged out since installing. After logging out and back in he was able to install readline without resorting to su.
7. You also need to compile tintin. Launch Terminal again and type the following:
cd tt/src
./configure
make
You've just installed tintin++. Congratulations again. If you get an error while compiling tintin saying it cannot find readline in either of the two usual locations, there's something wrong with your readline install (most likely you had the permissions issue described above).
Using tintin++
You can navigate to the tintin directory and launch it by typing
cd ~/tt/src.
./tt++
Once tintin has loaded, you can connect to a mud by typing:
#ses sot sotmud.net 23
where sot is the name of the session you are starting and sotmud.net (port) 23 is the address of the mud you are connecting to.
Note: To exit from tintin press ctrl-c
Getting started with login scripts
Create the file run by typing the following:
cd ~/tt/src
pico run
./tt++ run.scr
save the file (ctrl-X, Y, <enter>
and make it executable by typing:
chmod 755 run
Create the file run.scr by typing the following:
pico run.scr
#read run.tin
save the file (ctrl-X, Y, <enter>
Create the file run.tin by typing the following:
pico run.tin
To auto-load a login alias called 'loginsot' every session, type the following:
#alias loginsot #ses sot sotmud.net 23
An alternative here is to bind the login command to the F1 key (#help macro for more information) by typing:
#macro {\e[11~}{#ses sot sotmud.net 23}
save the file (ctrl-X, Y, <enter>
What did that accomplish?
After all of the above typing ./run should start up tintin, and read in the contents of run.tin You can then type loginsot (or hit F1, depending what you did at the end of the previous step) to login to the mud address you defined.
While you have a session open you can now type: #config and set the configuration to your liking, and once done type: #write run.tin This will save your configuration in the run.tin file, so it'll be loaded whenever you use run.
Adding an alias for speedy launching
Launch Terminal and type:
pico .profile
This edits a hidden file (.profile) in our home folder. Use the down arrow to move down to the end of the file. Add the line:
alias tintin='cd tt/src;./run'
save the file (ctrl-X, Y, <enter>
You can now launch tintin (and your run.scr script) by opening a new terminal window and typing tintin.
Additional help
While in a tintin session typing #help will give you detailed help on making the most of tintin++. Also don't forget to look in the docs folder (inside the tt++ folder) at the example scripts. Finally the tintin messageboards has some useful discussion about older versions of tintin (most of it is still applicable).
Well ... I've already broken my Postfix installation. All I had to do was repair permissions! I noticed a bunch of Postfix related stuff in the repair log and, sure enough, I couldn't use my SMTP anymore.
After much googling I found this page which contains the following fix:
sudo chown -R postfix /private/var/spool/postfix
sudo chown root /private/var/spool/postfix
sudo chown root /private/var/spool/postfix
sudo chown :postdrop /private/var/spool/postfix/public
sudo chown :postdrop /private/var/spool/postfix/maildrop
sudo chown :postdrop /usr/sbin/postqueue
sudo chown :postdrop /usr/sbin/postdrop
sudo postfix start
Now it all works, but presumaby repairing permissions will break it again! We'll see.
Continuing in the spirit of experimenting with an 'always-on' internet connection, I've been playing with setting up my own FTP server courtesy of PureFTPd-Manager. This app makes the set up ridiculously easy, and after some teething problems with my firewall, all is well (time-saving tip: if you want your clients to be able to use passive FTP you will either have to open all ports from 1024 - 65535 on your server's firewall, or you will need to manually specify which ports your server will use for passive FTP, and then only open those ports on the firewall).
I've become sidetracked. MySQL is on hold because after playing with Apache I got interested in setting up a mailserver on my laptop, especially since BT Broadband do not offer an SMTP service. I had been testing SpyMac's free SMTP but it doesn't always allow me access if I haven't checked my SpyMac mail recently.
However there is a solution - sending mail with my own SMTP server and not relying on any ISP. Prior to version 10.3 OS X came with sendmail installed but disabled; it now ships with Postfix installed but disabled. So I needed to enable Postfix. Graham Ordorff covers OS X and mail servering (including Postfix) in intricate detail here, whilst John Brewer has written a slick tutorial here concentrating on setting up Postfix with authentication. Reading through these two tutorials enabled me to get Postfix up and running for my outgoing mail. For incoming mail I still rely on Fastmail's excellent free service.
Update: since getting Postfix working I've discovered (via FreshGoo) that the easiest solution may be Postfix Enabler which is available here on Bernard Teo's excellent weblog (he also has a Sendmail Enabler for pre-10.3 installations).
There's a new service called FreshGoo which provides an easy way to search for recent entries to the Google database. Pretty useful if you're looking for recently-updated information and can't be bothered to negotiate Googles Advanced Search page.
I discovered that the BT broadband is actually going at almost full speed. The connection is reported as a 288000bps connection, but it seems that OS X is detecting the upstream and not the downstream. I didn't figure this out until trying out the excellent broadband speed test at the ADSL Guide. My downstream results were 444kbps (estimated at approx 480kbps with overheads) and the upstream results were 245kbps. Both values are pretty close to what they should be with a 256up/512down ADSL service.
The broadband modem arrived today. Setting it up was pretty simple, just plug it in and a few clicks. BT's OS X installer even works (their dialup one didn't, I had to manually open up their coookie to configure that). It only seems to be able to connect at 256kbps though, instead of the advertised 512. I'll give it a few days and see how that goes, since some ADSL modems need to be 'trained'.
Setting up the Apache webserver that's built into OS X was very easy. One click fired up the server, but then I had to spend a few minutes googling to finding out where the root directory was (inside /Library/Webserver/Documents/ if you're wondering). I then set up an account with no-ip.com to forward emandtim.no-ip.com to my broadband connection's IP. no-ip.com make a nice little utility which will monitor your connection and regularly report your IP address to no-ip.com (and thus update the emandtim.no-ip.com redirection). Pretty slick for a free service. I'm now downloading the 600MB Apple Developer Tools - apparently I need them to set up MySQL. With my half-speed broadband it's going to take 4 or 5 hours.
I just learned that SpyMac has recently started offering a free email and webspace offer (which includes a mountable volume known as SpyDisk, very similar to Apple's iDisk service). I've signed up for accounts for both Emma and myself. The service includes both SMTP and POP, which will be useful once we cancel our BT dialup account. My preferred email service, Fastmail, does not offer an SMTP server with their free service so I had been wondering how we were going to send emails.
Signed up for BT broadband this week. I was originally going to go for Tiscali based on their advertising (30% cheaper, 50MB webspace, free web SMS) but after spending a while reading reviews on the web I've abandoned that idea and gone for BT instead. The only other choice in this area is NTL cable, but Emma and I have had bad experiences with NTL customer support in the past.
Broadband will be great, but it'll mean canceling our BT dialup account. Stupidly BT have decided that although you get 50MB of webspace with dialup accounts, you don't get any with a broadband account. So I'm looking around for free webspace - I didn't pay for it before and I'll be damned if I'll pay for it now! The alternative I've been thinking about is serving this webpage from my own Mac. The broadband will be always on after all! I just have to get the hang of the Apache and MySQL on OS X ... we'll see how that goes.