Filesystems and commercial open source innovation
My friend Rusty pointed me to an article about ZFS File System Makes it to Mac OS X Leopard.
ZFS is a filesystem developed by Sun. The self-professed "last word in file systems" no less. If there's something Sun knows how to do it's design and implement kick-ass OS/hardware level software, and of course now (nearly) all Solaris code is open source. This is the kind of innovation acceleration that Vanevar Bush was talking about for the post-WWII scientific community - now we're really getting there in the commercial, as well as academic, software community. Google is gaining from, and feeding open source. So is Sun. So is Apple. Oracle is testing at the edges, others are tipping their toes in as well. Which makes you wonder about the people being left out. Specifically Microsoft. Microsoft's inability to deliver a next generation file system is well documented (even on their own winFS blog). Let's see - even in the early '90s Windows was planning an object file system. Apple had a similar early '90s foray (Pink/Taligent), but now they don't have to - they just tweak some code from Sun. The more we figure out how open source fits into "co-opetition" (I hate that non-word, but there it is) the faster software will progress. Being the biggest software company in the world isn't going to save you when Chinese and Indian companies start to bootstrap themselves on open source and feed back into it. 11:54 PM, 22 Dec 2006 by Mark Aufflick Permalink | Comments (0) Christmas deliveries
It was the day of receiving parcels today - firstly my A-One Apple 1 replica kit which is a Christmas gift from Kath - can't wait to get that thing cranking :)
Secondly a parcel I almost forgot was coming, the hard copy of Agile Development with Rails - 2nd Ed. The content is no surprise since I had access to the draft pdfs, but this really is a great book. I'm not doing a lot of rails development, but I have to say that the pragmatic programmers books in general are very good. They are selective like O'Reilly used to be, and they are almost as friendly as Randal Schwartz's standard-setting Learning Perl (aka the Camel book). It's going to be a very geeky Christmas :) 02:40 PM, 22 Dec 2006 by Mark Aufflick Permalink | Comments (0) Delicious links in my RSS feed
I recieved the following comment on my RSS feed:
Any chance could stop putting your delicious links in your RSS feed? It's Yes fair point. When I originally merged the feeds I was in a position where I had little time to write blog posts and I intended to write meaningful "mini-posts" in the comment field of delicious as I bookmarked links. It turns out that these days I use delicious as a bookmarking service (not surprising, since that's what it is) and sometimes I can bookmark rather a lot of pages, so I can see how that should be an opt-in feed. I'm going on holiday for a week (yay) so there won't be any form of posting then :) When I get back I'll un-merge the feeds and post the suggested instructions. I'm trying to guess who the anony-commenter was, just can't put my finger on it... but point taken. 06:15 PM, 21 Dec 2006 by Mark Aufflick Permalink | Comments (0) Cvs Emacs on cygwin
I decided it was time to update the emacs in my cygwin installation. Remembering the days it took me last time I hoped that some of the cygwin issues had been ironed out.
Thankfully some of them have. The bootstrapping process now works flawlessly under cygwin (last time I had to bootstrap the lisp files on a solaris box and then transfer the results to windows for the build process). It also seems substantially faster (although I may have compiled a full debug version for my previous install - can't quite remember). Unfortunately the memory allocation problem I blogged about at the time is still there. For posterity, here is the work-around patch for version 1.405 of alloc.c:
Index: alloc.c
===================================================================
RCS file: /sources/emacs/emacs/src/alloc.c,v
retrieving revision 1.405
diff -c -r1.405 alloc.c
*** alloc.c 13 Nov 2006 08:20:28 -0000 1.405
--- alloc.c 15 Dec 2006 04:05:41 -0000
***************
*** 5838,5845 ****
--- 5838,5851 ----
case Lisp_Int:
break;
+ /*
+ This is bogus, but there seem to be corrupt
+ objects placed on the stack under cygwin.
+ I assume this will lead to a phat memory leak!
+
default:
abort ();
+ */
}
#undef CHECK_LIVE
03:09 PM, 15 Dec 2006 by Mark Aufflick Permalink | Comments (0) Developing for arm hardware with qemu
qemu is an excellent multi-platform emulator that includes arm platform emulation. I'm just playing around for now but it's pretty neat.
If you want to do likewise, check out these instructions (including a custom kernel) for getting set up. Note that either because of recent SCSI patches to the qemu source, or because I'm compiling on OSX, the images on that page got stuck in a scsi reset loop during booting. Since I didn't want scsi anyway, I simply took the scsi hardware emulation out of the linked modules (manually removed lsi53c895a.o and added ide.o piix_pci.o in the Makefile) and commented out the scsi initialisation and added ide init in the versatile platform emulation (versatilepb.c):
*** versatilepb.c 24 Sep 2006 03:40:58 +1000 1.6
--- versatilepb.c 14 Dec 2006 01:02:28 +1100
***************
*** 10,15 ****
--- 10,22 ----
#include "vl.h"
#include "arm_pic.h"
+
+ /* ide support */
+ static const int ide_iobase[2] = { 0x1f0, 0x170 };
+ static const int ide_iobase2[2] = { 0x3f6, 0x376 };
+ static const int ide_irq[2] = { 14, 15 };
+
+
/* Primary interrupt controller. */
typedef struct vpb_sic_state
***************
*** 164,169 ****
--- 171,177 ----
NICInfo *nd;
int n;
int done_smc = 0;
+ int piix3_devfn = -1;
env = cpu_init();
cpu_arm_set_model(env, ARM_CPUID_ARM926);
***************
*** 194,205 ****
--- 202,219 ----
if (usb_enabled) {
usb_ohci_init(pci_bus, 3, -1);
}
+ /* disable scsi hardware */
+ /*
scsi_hba = lsi_scsi_init(pci_bus, -1);
for (n = 0; n < MAX_DISKS; n++) {
if (bs_table[n]) {
lsi_scsi_attach(scsi_hba, bs_table[n], n);
}
}
+ */
+ piix3_devfn = piix3_init(pci_bus);
+ pci_piix3_ide_init(pci_bus, bs_table, piix3_devfn + 1);
+
pl011_init(0x101f1000, pic, 12, serial_hds[0]);
pl011_init(0x101f2000, pic, 13, serial_hds[1]);
Performance is pretty slow on my PPC G4 powerbook - but then that probably tracks actual arm hardware quite accurately...
12:28 AM, 14 Dec 2006 by Mark Aufflick Permalink | Comments (1) All my Newton Christmases at once
I was actually searching the interweb to see if anyone had run arm-linux on the Newton hardware since I have a few lying around and it would be a neat hardware package for mini projects.
Einstein Platform (NewtonOS on MacOS X (PowerPC & Intel) & arm-linux) official page, and at the WWNC (world wide newton conference ;) The delicious irony of the above photo is that the Sharp Zaurus 5500 was the only (?) licensee of NewtonOS. Now it's successor provides host for it's own historical OS. 01:42 PM, 13 Dec 2006 by Mark Aufflick Permalink | Comments (0) Donald Rumsfeld handling press questions
All politicians need a finely tuned ability to deflect questions - who knew that Origami was an effective way? :)
04:21 PM, 08 Dec 2006 by Mark Aufflick Permalink | Comments (0) Differentiation
I just had a coffee and friand (raspberry and pistachio) at my favourite café in Sydney. It's way cool—it has a downstairs area that makes you feel like it's only available to those in the know. The staff treat you like a friend, the baristas are Italian and the food is great.
As I was being served my coffee I found myself thinking "I don't care how much this is costing me"—and that is the secred to differentiation that allows you to charge a premium. Have a product and service that makes your customers think that! 02:27 PM, 06 Dec 2006 by Mark Aufflick Permalink | Comments (0) Code listings via "Screen Shots"
In his page on Implementing VisiCalc, Bob Frankston describes how he made program listings by doing screen shots on a TRS-80:
I made a listing of the TRS-80 program by using my SX-70 Polaroid camera to take a picture of each page and then worked with this listing as I rewrote the code for the Apple. :) 12:47 PM, 01 Dec 2006 by Mark Aufflick Permalink | Comments (0) Douglas Engelbart - Father of more than just the mouse
I am a big fan of learning from history. In the case of our industry, computer science, the history is not very long. Some people act like we have no history and discard it, but it is richer than you think.
There has been a bit of a move lately to recognise the role of people like Doglas Engelbart - these days even popular press articles will often make a passing reference to the "father of the mouse". I can distinctly remember the first time I read As we may think, the Atlantic monthly article by Vanevar Bush in 1945 where he describes a hypertext system for aiding scientific discovery. I remember reading it in 1996 or thereabouts. The "web" was in it's infancy, but the dream was old. (You might want to get a copy of From Memex to Hypertext: Vanevar Bush and the Mind's Machine if you want to know more about Bush. It's a bit dry but packed with great stuff). As we may think made me realise that computer science and human computer interaction (HCI) could get great value from drawing on our history. Being a big Apple fan, I knew about Xerox Parc, and the modern history of computing, but here was a whole era I knew nothing about. That lead me on a search that discovered Douglas Engelbart.
I have known about "the demonstration" for many years, but now thanks to Englebart's prescience in having the demo filmed and someone saving the footage and uploading it to "the web 2.0", we can all experience it. I have to say, it is even more incredible than I had believed possible. I knew about the pioneering user input devices (the mouse, the chording keyboard), I knew about the multi-user collaborative features with hypertext linking, I knew about the interactive interface with line drawing, outlining, folding etc. What I was unprepared for was the incredibly advanced hardware and software design ideas. My list from watching the 1hour video is:
I mean this is just incredible. It would be an impressive system today - perhaps not unlike emacs - but in 1968! A mere 23 years after Vanevar Bush envisioned a hypertext research system based on microfilm. Simply amazing. Everyone must watch it - available on Google Video: Douglas Engelbart: The Demo. 03:40 PM, 25 Nov 2006 by Mark Aufflick Permalink | Comments (0) Converting Apple 1 hex dumps for the pom1 emulator
Traditionally, Apple 1 (or Apple ][ for that matter) hex dumps look something like:
0300: 25 14 23 84 23 14 16 1B This is suitable for entering straight into the Woz Monitor as a line starting with a colon indicates that the following bytes should be palced in the ram immediately following on from the previous write (or read). I was having trouble with the paste function in the pom1 emulator, probably due to speed sync issues. pom1 lets you load rom dumps, but it expects the memory address on each line, not just the first. As always, perl to the rescue :) With the following handy perl one liner you can convert a rom dump file in the usual format: perl -pe '$base = /^([0-9A-F]{4}):/ ? $1 : uc sprintf "%04x",hex($base)+8; s/^[^:]*:/$base:/' 03:39 AM, 24 Nov 2006 by Mark Aufflick Permalink | Comments (0) Apple 1 retro fun I'm thinking of asking for a replica Apple 1 kit for Christmas. Amazingly there are at least two choices, either a Replica 1 from Briel Computers (US), or an A-One from Achatz Electronics (Netherlands) There also seems to be a guy who has designed an even more faithful replica using the original Apple 1 PCB layout and unused surplus components. I can't find more than an unused ebay auction for his kits.
To make sure I won't get bored within an hour of completing it, there are thankfully a few emulators around to play with (Woz having released the original Monitor ROM sources for free some time ago). The one I'm having most success with is the patched version of pom1 released by the author of the Krusader Apple 1/6502 assembler (with the assembler and Apple Basic in ROM). The ironic thing is that the hp48 calculator that I am using to do decimal/hex conversions (since I can't do them in my head yet) has way more cpu power, a bigger stack, more ram, more advance graphics and even IR! I'm also looking into the C port of pom. It sounds like it has more issues than the Java version, but I don't much like Java so I might hack on it. The code is nice and clean - only 3.5k lines of c and header. Half of that is in the 6502 emulator. Of course to put 3.5k lines of c into context, check out the hex dump of the entire Apple Basic interpreter by Woz :) Image source: fantastine.com 09:06 PM, 23 Nov 2006 by Mark Aufflick Permalink | Comments (2) Feed republishing ... via print media?
I have blogged before about RSS feed republishing, but now it seems to have invaded the print media!
mX is a free (ie. advertising funded) newspaper that is given out for free to commuters on their way home in Melbourne and Sydney. DB from TramTown tells me that it used to be called Melbourne eXtra but was renamed for the launch into Sydney. I intentionally avoid taking one because I try to avoid as much trashy journalism as possible, but it's full of pictures so I can't help noticing some of the stories in my fellow commuters' copies. And today I realised why the stories always look so familiar - they are copied straight off Boing Boing! Obviously many "human interest" stories are widely carried, but it's pretty wierd that on the same day that boing boing has a story on kit cars from japan, mX has the same story. On a previous occasion I saw an mX with a story on a cool Japanese transport robot that boing boing had shown on the same day. Now I understand the allure since I also linked to the boing boing story but then I'm not pretending to be a real newspaper. mX has no online edition, so I'll have to start taking a copy to check myself. If I find more instances I'll scan them in and post them. 09:51 PM, 22 Nov 2006 by Mark Aufflick Permalink | Comments (0) Novell pwned?
Either Novell got pwned or, in the words of an anonymous groklaw commenter, "They must think we are as daft as they are pretending to be".
... See the ever reliable Groklaw for more. 08:45 PM, 22 Nov 2006 by Mark Aufflick Permalink | Comments (0) Improving search with machine learning
Ever since I wrote a small client/server demonstrating AI::Categorizer for Sydney University's Web Engineering group (where AI:Categorizer's auther Ken Williams was researching at the time) I have been interested in the practical application of machine learning and AI in particular (you can see Ken's powerpoint presentation about the demo and theses here if you're interested).
Lately I have been wondering why I don't see it appearing in search solutions more obviously. Sure there's Google personalized search, but I'm not sure I've seen amazing improvements. Certainly I have not been made aware of what those improvements are (and Google's public releases doesn't seem to mention AI). I can think of any number of ways that existing, proven, AI techniques could improve search, so I've decided to do somehthing about it! First off, there is the issue of irrelevant topics returned in my queries. A classic example is "Java". We all know it's a somewhat popular programming language. It's a type of coffee too right? But it's also the name of the most populated island on the earth (and holds the capital to the worlds 4th most populous nation), which also contains some active volcanoes. Want to know more about it? Well if you go to Google and search for "Java" you're going to need more patience than me - I got to search result page 10 with no mention of anything other than the programming language (with the exception of one Wikipedia result on page 3 I think). So I should learn to write better search queries like "Java island". Or use a directory like Yahoo!. That's pretty much my options currently. What about combining the two? What if I could refine my search results by selecting from the top categories represented in the result set, much like you do when you search yellowpages.com.au for "tyres" - you can drill down to "tyres - retail and fitting". So assuming I'm Google and already have an index of the web, all I need is to categorize every page on the web. Armed with the already human-categorized data set (or corpus) that dmoz.org handily offers in RDF form, I can train my machine learning categorizer robot. Then I can run that categorizer over the search result set and I have everything I need. So how effective could that be? Well my rough prototype that I banged together over the weekend has only been trained on 500 documents because I'm running low on my DSL quota for the month so I'm going to wait until nearer the end of my billing cycle before letting it loose on the whole of the dmoz data, but similar machine learning experiments I have seen have consistenly resulted in the 98-99% accuracy band. The other obvious way to improve results is to apply AI to the data set made up of [my search terms, which link(s) I chose]. I guess this is what Google personal search does, but there is so much more you could do with this data - like using clustering to provide Amazon-style suggestions "other people whose search terms are similar to yours found this link useful". I'm pretty excited - this is great stuff and very applicable to our current data-laden world. Plus I just like data :) 02:05 PM, 20 Nov 2006 by Mark Aufflick Permalink | Comments (2) Everyday Parallelization
I just got back from some last minute purchases at our local Coles metro and it struck me how much I enjoy the checkout procedure.
After you have loaded all the goods out of your basket onto the bench, there is always a few moments while the cashier scans the remaining items. With the Coles system, I can swipe my frequent-shopper card, then my credit card and finally select the desired account. It's a classically paralellizable situation . Two inter-dependant resources with multiple duties, some distinct some shared. One resource (the cashier) almost always takes longer and so it makes sense to allow the other resource (the shopper) to complete as many tasks as possible while it (you) would otherwise be in a blocked state. It reminds me of discussions I used to have with my friend Matt about the implicit least-cost decisions involved in every day situations, such as picking pedestrian routes. Does anyone else have examples of well designed human processes that exhibit good parallelization? Or the opposite? PS: apologies for gratuitously making up words from the parallel stem! 01:12 AM, 20 Nov 2006 by Mark Aufflick Permalink | Comments (0) Webdesign IS design, dammit!
I was browsing the ideas page of boxes and arrows. Christina posted an article to a great article by Lance Arthur under the digg-savvy idea title Webdesign is dead. It got my creative juices going and my comment ended up being such an essay that I thought I would reproduce it here for you all to enjoy!
Ever since my first "real" IT job where I was exposed to a lot of designers and printers (courtesy of working for an Apple reseller) I have had a love affair with type. Graphic design too, but especially type and typographical layout. One of my favourite ways to fill a few spare minutes was to leaf through font sample books from various font foundries or tweak a font in fontographer (ah memories). Being forced to limit oneself to HTML was a hard change for me. I remember when I first discovered http/HTML (late 1992 if I remember correctly, when one of my favourite gopher sites release a newfangled web version), the delivery mechanism excited me, and it was all ascii at first, so layout wasn't even an issue. Then came Mosaic. At first it was exciting, but then I realised the awful truth: it resulted in the destruction of the clean, simple, structural purity of plain-text html; and yet it did not deliver sufficient power to actually display good design. Now with the advent of XHTML/CSS we are in a better situation. We can get an even better, more pure, structural mark-up of data, while simultaneously being able to display it in a pleasing way. Still, we are stuck in a place where what is possible is dictated to us by the CSS standards committee and the browser implementations thereof. Changing tack for a moment, let's think about what it is that we use the web for - what information are we normally displaying? Or more pertinent here, what design tools do we need for what we are trying to communicate? I like the following paragraph in Lance's article: First off, I like distinct areas of separation. As you can see here, I used spacing and borders to set off the sections, giving the main content more weight by making it bright and big and stage centre. The headlines are also rather weighty, so that finding each article on the main page is simple, but the headlines are not so large that they outweigh the content itself. Here is a person actually thinking about the style of the communication first. So many people say they are designing a "style" when really they are designing a "look". Like a human conversation, a web site/page communicates in so many ways. The page style/layout. The navigation. The typographical layout. The style of writing. The collaboration tools on offer. You might think I'm talking hogwash, but imagine you are reading a paragraph in a company "blog" You read the phrase "we value our customers feedback" and then you notice that they have comments disabled. That is communicating something, and it's the opposite of what the words are saying. It's interesting to note that there are more possible "communication parameters" in web publishing than traditional publishing, and yet web publishing is rarely approached with the same vigour as is traditional publishing. After the above quoted paragraph, Lance goes on to talk about the colour palette which shows that at least he is applying some vigour - lets have more of it I say! So anyway - this isn't quite on the topic of "Webdesign is dead", but I think a more interesting/useful title would be "Webdesign IS design dammit!" or perhaps "Will webdesign for typefaces" ;) The latter only makes sense to those of us who remember when real typefaces cost > $100 not the $19.95 they do now. 03:46 AM, 19 Nov 2006 by Mark Aufflick Permalink | Comments (0) MapReduce in Perl
Someone recently asked to get access to the OpenACS paypal-support package that I wrote and lives in my cvs repository. Unbenknownst to me, my recent firewall change blocked access to the cvs web interface, which I have now fixed.
While I was looking around my public cvs interface, I remembered that I had never quite finished my Perl implementation of Google's MapReduce infrastructure. Since I'm too busy to get back onto it now I figure I may as well unleash it on you guys. Be warned that there's no documentation (that I remember) and that the current implementation only works on a single machine, although the structure is easily extendable to multiple machines by replacing the forking with some form of rpc. My sample Perl implementation of MapReduce (for sufficiently weak meaning of the word 'implementation' ;) Given that limitation it may also not quite work properly - I really don't remember what state I left it in. Nevertheless if you first read the MapReduce paper by Jeffrey Dean and Sanjay Ghemawat then the api and code should make sense. If anyone finds this interesting please feel free to email me any questions. If enough people are interested I may be able to make the time to polish it off and write documentation! 03:36 PM, 18 Nov 2006 by Mark Aufflick Permalink | Comments (0) Natural selection meets Engineering qualityAt that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation. --Igor Sikorsky, reported in AOPA Pilot magazine February 2003. 05:59 PM, 07 Nov 2006 by Mark Aufflick Permalink | Comments (0) 2006 F1 Season Stats
F1Fanatic.co.uk has a great roundup of interesting stats from this years F1 season, including my favourite:
Kimi Raikkonen may not have won but he did manage to rise 19 places to finish third in Bahrain. That was the greatest position gain any driver had made in a race since 1993, when Fabrizio Barbazza rose from 25th to sixth in the San Marino Grand Prix — in a Minardi! 08:52 PM, 06 Nov 2006 by Mark Aufflick Permalink | Comments (0) psh (Perl Shell) and the Emacs shell-mode
That I love both Emacs and Perl is a matter of public record.
One of the thing that's great about so-called agile languages (like Perl) is that they lend themselves to interactive shells. If you've played with Ruby on Rails you have probably come across the excellent irb. Well psh is one (of many) such shell for Perl. Trouble is it insists on extensively using gnu readline (if installed). This is great for regular terminals but is a royal pain if you try to use it within a shell-mode buffer in emacs. To get rid of all those escape characters without hacking the code, add the following to your .pshrc:
require "$ENV{HOME}/.pshrc_emacs" if $ENV{EMACS} eq 't';
and that .pshrc_emacs should look like:
{
package Psh::OS;
sub setup_readline_handler {}
sub remove_readline_handler {}
sub reinstall_resize_handler {}
sub check_terminal_size {}
}
1;
06:26 PM, 03 Nov 2006 by Mark Aufflick Permalink | Comments (0) Interesting weblog stats
Every month the #1 search term for this site is either "skills matrix" or "IT skills matrix". What comes after that is somewhat variable.
"Mel Kaye" is always near the top of the list somewhere, proving the IT world's unending search for the folklore that is the closest thing we have to real history. I used to be on the first page of Google results for that query. Now I'm way down the ranks. Now I have a new entry into the list - and it has debued at #2! The new entry is ...(drumroll please).... MAGIC MUG CAKE! You can read this highly sought after blog entry, but also take a look at the Google search. The only other solid reference to "magic mug cake" on the net is from someone in Melbourne (must be an AU only product) and they also have a sheep on their mug. Amazing coincidence? 04:01 PM, 03 Nov 2006 by Mark Aufflick Permalink | Comments (0) Oh boy I need one of these![]() Just saw this posted on Boing Boing. SO much cooler than a segway, and is that nuclear sticker for real?! If so it would never need recharging :) 07:17 PM, 31 Oct 2006 by Mark Aufflick Permalink | Comments (0) Automatic copy from X11.app to MacOS Clipboard
Well, from emacs under X11 anyway...
This has bugged me for a long lONG time. I have been doing a bit of unix coding on my laptop this weekend and it finally got to me. There MUST be a way I thought. A lot of people suggest autocutsel but all that does is synchronise the X11 CLIPBOARD buffer (or PRIMARY buffer) with the selection buffer. I'm sure this solves issues with some X11 apps that only use one or the other and X11.app may get confused. But that's not what I'm talking about. I'm talking about:
(if (eq window-system 'x) (progn (defun paste-to-osx (text &optional push) (progn (let ((process-connection-type nil)) ; use pipe (let ((proc (start-process "pbcopy" "*Messages*" "pbcopy"))) (process-send-string proc text) (process-send-eof proc))))) (setq interprogram-cut-function 'paste-to-osx)))Update: After reviewing this entry on my front page it occurred to me how unlikely it is that anyone has ever hacked up a lisp code fragment directly after some visual basic! At least the foray into a little visual basic hasn't rotted my coding brain :) 03:26 AM, 30 Oct 2006 by Mark Aufflick Permalink | Comments (0) Setting Outlook Categories with VBA
Posting this in a bit of a hurry. For context see the previous post How to do tagging in Outlook.
Open up the vba editor (Tools->Macro->Visual Basic Editor). Add a new module and paste the following code in (edit to suit). Then to add the sub as a toolbar button customise the toolbar in the normal way and choose the 'Macros' category in the left pane - all your applicable macros will appear in the right pane. You can just drag it to your toolbar. If the button seems to do nothing your outlook security settings may not be allowing macros. See Office Macro Security Settings.
Public Sub TagArchived() Dim objOutlook As Outlook.Application Dim objInspector As Outlook.Inspector Dim strDateTime As String ' Instantiate an Outlook Application object. Set objOutlook = CreateObject("Outlook.Application") ' The ActiveInspector is the currently open item. Set objExplorer = objOutlook.ActiveExplorer ' Check and see if anything is open. If Not objExplorer Is Nothing Then ' Get the current item. Dim arySelection As Object Set arySelection = objExplorer.Selection For x = 1 To arySelection.Count strCats = arySelection.Item(x).Categories If Not strCats = "" Then strCats = strCats & "," End If strCats = strCats & "archived" arySelection.Item(x).Categories = strCats arySelection.Item(x).Save Next x Else ' Show error message with only the OK button. MsgBox "No explorer is open", vbOKOnly End If ' Set all objects equal to Nothing to destroy them and ' release the memory and resources they take. Set objOutlook = Nothing Set objExplorer = Nothing End Sub 08:10 PM, 27 Oct 2006 by Mark Aufflick Permalink | Comments (0) How to do tagging in Outlook
Working on a corporate PC you may be using Microsoft Outlook - whether by choice or not. Outlook uses the traditional hierarchical filing concepts that have been in place for what feels like centuries (who remembers when MacOS replace MFS with HFS, or when ProDOS on the Apple // replaced DOS 3.3...).
After struggling for some time to find a good filing solution I just realised that it wasn't possible. Too many messages belonged in multiple folders at once. I had another issue which was a humungous inbox, and an 'archive' folder to keep the inbox in check. But where is that email I want? Is it in the inbox, the archive folder, or some other folder? Categories =~ Tags What I wanted was tagging. So I hunted around Outlooks functionality and found Categories. Now this does mostly what I want. But it's so hard to get too - I have to right click messages to get that option? First solution: add a categories toolbar button which you can find in the "Edit" section when you customise the toolbar. I renamed it to 'Cats...' to save pixels. (MS KB article on customising toolbars). Archiving Then I wanted a way to 'archive' messages. It turns out that I can just tag messages with a category 'archived' and add a filter to the regular 'view' to exclude all messages with that category. Filtered views In addition I can set up other 'views' to show a subset of commonly viewed tags. To get easy access to those different views, add the views menu to a toolbar - you'll find a widget called "current view" in the 'view' section. You can also add a 'filter' button for ad-hoc changing what categories to filter by. (Somewhat useless MS article on using filters) Ok great, but do I really want to click categories, then click archived, then click ok, every time I want to archive an email? I get hundreds of emails! One great thing about MS Office apps is that nearly everything is exposed as a vba api. Sure, they are often bad api's, but you can do nearly anything with enough trickery. In the next post I'll include some vba code that will let you make a toolbar button for 'archiving' emails. Update: The post (Setting Outlook Categories with VBA) Automatic Tagging If you used to have rules to file messages automatically - don't worry, because rules wizard understands categories and you can auto apply categories instead of filing. You can even add a chosen tag and choose to auto-archive or not (just like Gmail) by adding (or not) the 'archived' tag. A neat feature of Outlook categories is that they persist when you reply/forward messages (within an MS Exchange network). If I dig out an old email that I have archived, forward it to someone with comments, and then they reply - all my categories are still there on their reply. Thats actually really useful, except that the 'archived' category means it disappears in my regular filtered inbox view. To counteract that we need some vba code that is triggered when new messages are delivered that will strip the archived cat. I'm too lazy to write that in vba (which has horrendous string manipulation support) so I just strip all categories on inbound emails. Instructions on how to do that in a followup post. Reducing the clutter Phew! We're nearly in email nirvana. But my screen is still full of junk that is redundant, wasting space, and distracting me. First I don't want any headers in my preview pane (right click in the grey background of the reading pane and un-tick "header information"). Then I want only one row of toolbar buttons (remove anything you don't want). I also reduced the number of list columns to a minimum (and added the categories column of course). I also want to (usually) hide the navigation pane on the left - since I no longer need to constantly switch folders. But sometimes I want to switch between sent mail and the inbox (where all my email is - tagged or not) and also the calendar. So I made a toolbar with 6 buttons. Here are the toolbar command category/commands i have: go/Inbox (assigned a custom icon) : Go/Sent Items (shortened name) : Go/Calendar : View/Bottom : View/Off
TODO: make this post more intelligable and add more screenshots! 08:04 PM, 27 Oct 2006 by Mark Aufflick Permalink | Comments (0) War on Folate It seems that the war on moisture has now been upgraded to a war on everything your body needs.
Australian icon Vegemite is now being searched for by US customs authorities who could be doing more useful things, like targeting dead terrorists. Now I can understand the US authorities not wanting Vegemite to enter their shores, because it tastes absolutely foul. But that's not their complaint. No, their complaint is that it's good for you. [Vegemite] contains folate, which under a technicality, America allows to be added only to breads and cereals. That's right. That water soluble vitamin B that the US Government's National Institute of Health says you should get 500ug per day of and that helps prevent birth defects and may help prevent cancer and heart disease. It's so good for you that the FDA even requires that Folate be added to bread and other cerials. 12:27 PM, 24 Oct 2006 by Mark Aufflick Permalink | Comments (0) Oracle. So awesome and yet so lame.
So I've spent a number of hours now, installing and setting up Oracle 10g on my Powerbook. First of all, props to Oracle for making a Mac version at all. I'm sure Steve had a beer with Larry one day and that's how it happened. Second, I think Oracle is an awesome database in many ways, although horses for courses applies : many situations suit Postgres more, and I may even be persuaded to believe that Sybase IQ has it's place (not to be confused with Sybase ASE which has no place on the planet whatsoever).
Ok, with that disclaimer out of the way, why is it so darn hard to get going. First of all it requires a relinking step, with a particular gcc, if you want to use it on OSX 10.4 (see these excellent tips). Second of all, you need to set up a bazillion and one users and environment variables before you even think about running the (ugly) Java gui installer (see these pretty good instructions). So I have it kindof working, but can never quite login via sqlplus the way I imagine i should. All sorts of incantations result in the following cryptic message: ERROR: I'm pretty sure the tnsnames.ora file is all sorted, so after the 20th try, I search the web. Thankfully Burleson Consulting has this excellent tip: The error message ORA-12162 "TNS:net service name is incorrectly specified", is very misleading. So there it is. Tripped up by yet another environment variable. What is it with these enterprise software people and their beloved environment variables?! 09:41 AM, 18 Oct 2006 by Mark Aufflick Permalink | Comments (0) Hiring Programmers who won't make you say WTF!
The HiddenNetwork is a new IT job referral site brought to you by the people behind The Daily WTF. The Daily WTF is a web site by developers, for developers, where we go to complain and commiserate about bad code and poor development. You would hope that people reading that site have learnt how not to write WTF code themselves.
Thus, the theory is that people who apply for jobs from this network will be somewhat pre-filtered. Another job site. Great. Just what the world needs. I think, actually, that what we're seeing is a move to specialisation in job referrals. Instead of bulk job sites trawl-fishing the global pool of developers, we're seeing a move to niche and network based job sites. Sites like LinkedIn are being very effective at providing candidates with pre-existing personal recommendations. Sites like jobs.perl.com have been providing domain specific candidates to employers in the know for years. If you're in the hiring market you could do worse than try out The HiddenNetwork. During the Beta period posting is free! The site and their advertising will use geolocation to provide location sensitive jobs to candidates. And in a refreshing change from the control exerted by other job sites, candidates will contact you directly. Disclaimer: I will recieve a referral bonus for anyone who takes out a job ad from the links above to The HiddenNetwork. 12:50 PM, 15 Oct 2006 by Mark Aufflick Permalink | Comments (0) Life imitates Art as Montoya takes third at Talladega
I know it's old news now, but as I was reading up on this weeks F1 testing I wondered how ex-McLaran F1 driver Juan Pablo Montoya went with his NASCAR debut. I knew he had qualified on the front row of the grid, but could he show NASCAR what F1 drivers could do?
The Colombian had to pit under caution several times to have his car fixed, but he was able to remain on the lead lap, despite falling back to 31st. Cool! In the end he finished third - very respectable for nearly his first time in a NASCAR car. 04:08 PM, 14 Oct 2006 by Mark Aufflick Permalink | Comments (0) Good test coverage (by curling your right bicep)
I recently listened to a Perlcast interview with Andy Hunt (of Agile fame).
Most of his comments could almost have been direct quotes from his (excellent) new book Practices of an Agile Developer but one answer about testing really caught my ears. In response to a question about how to know that your writing the right sort of tests in your test driven development, Andy gave the following mnemonic: Right BICEP I love simple mental tools like that. I'll certainly be mentally checking my right bicep when I write tests from now on. Previously I'd only been checking out my right bicep in the shower after the gym... 12:48 PM, 12 Oct 2006 by Mark Aufflick Permalink | Comments (0) Simple /var/log/secure analysis
I could hear my development server hard drive ticking over more than normal, so I thought I'd check it out. It turned out that I had someone running a script against my ssh server looking for standard usernames. Not likely. My remote root access is turned off (of course) and theres very few usernames (all custom) with password login enabled.
I turned on the intrusion filter on my firewall, so we'll see how that goes. Hopefully it won't impede real connections to my cvs etc. For completeness I thought I'd add the ip address to the blacklist in my firewall. I saw a sea of attempted connections in my /var/log/secure log and came up with this very shell simple script to sift hack attempts out from bad typing days by either myself or my clients. In case it's useful for anyone I thought I'd blog it: for ip in `awk '/Illegal user/ {print $10}' /var/log/secure |sort -u`; do echo "$ip : "`grep -c $ip /var/log/secure`; done It makes some pretty wild assumptions but it did the trick for me. It gives output like:
202.136.62.130 : 16 210.0.204.27 : 762 211.137.76.105 : 887 218.247.185.214 : 29 ???.133.81.251 : 4 ??.143.0.183 : 4 61.187.8.54 : 329 ??.205.204.190 : 5I whacked it in a root cron file so I'll get a report each day. (Note I anonymized the low count ip's because I assume that it's me or a client just typing our usernames poorly.)
02:36 AM, 10 Oct 2006 by Mark Aufflick Permalink | Comments (0) Magic Mug Cake I don't know about you, but I love shopping in large supermarkets. The variety of wacky and interesting junk you can find there seems limitless. Many are worth browsing but occasionally one jumps aout and grabs you and you *have* to buy it.
Now the instructions are for a 660w microwave oven, so I figured that my mighty 1100w microwave should be dialed down to 60% and run for the same time.
With 10 seconds to go it was so far so good. As you can see on the left the cake was just peeking over the top of the mug - *magic*! As soon as the heat stopped, however, it sank right back down. It looked way to moist so I figured it needed some more time. After another 30 seconds it looked cooked - but not quite what the picture showed:![]() Thinking about the process, I think you must need the microwave power and time just right. I imagine that the process involves the cake bubbling up to it's maximum volume and then being 'snap-cooked' into that size/shape. Because I didn't let it run quite long/hot enough the first time the opportunity was lost. Kath asked me how it tasted. "Just like cake" I said. "Yes, just like cake" she dubiously replied... 07:29 PM, 08 Oct 2006 by Mark Aufflick Permalink | Comments (0) The creative programmer
"Why Writing is Harder than Programming" is Paul Graham's latest post. Pauls premise is that a programming project can have a definable measure of success and that reaching that success is ultimately achievable (given enough talent and time). With writing, however, "You don't have the same total control over the medium".
Probably my favourite programmer (and also a good friend) Lars Pind is similar. He likes to write. He plays at least one musical instrument on a regular basis. He is a prolific photographer. He's never afraid to debate his approach to programming or life. He programs fast and furious, but with a degree of elegance and insight that, I believe, couldn't come without all of the above. It's qualities like these that I always look for when interviewing potential employees (or employers), but rarely find. What do you think? Can you be a good programmer without being creative? Can someone be truly creative and maintain/nurture that creativity without a variety of creative outputs? Another question to a certain section of the developer audience: How do you manage the peculiar balance of creativity; logic; and a perfectionistic need for symmetry and alignment that comes with programming excellence? PS: This wasn't supposed to be a Paul Graham/Lars Pind love fest, but so be it! Footnote: On a totally unrelated use of creativity, a study by Indiana Universtiy shows that (on some selected topics), The Daily Show is as substantive as regular news broadcasts! 11:56 AM, 06 Oct 2006 by Mark Aufflick Permalink | Comments (2) Cool keyboard hardware
Everyone knows how much I love my keyboard hardware. Every day I use both a Kinesis Ergo keyboard (for my ergonomic satisfaction) and a Happy Hacking keyboard.
But there are two new must haves. Firstly, I have been looking for a good seperated keyboard. As much as I love the concave layout of my Kinesis, I really wish I could separate the two halves further. I also hate having to rehome after using the mouse. I used to love the nipple input on IBM Thinkpads for that very reason.
Last century scientists split the atom. This The other accessory is this so cute it hurts USB powered hamster wheel. It turns at a rate relative to your current typing rate!
Unfortunately of the two, the hamster wheel is the one already in production...
"Ari Zagnoev" <info@combimouse.com> wrote: >Hi Mark > >Thank you for your interest. > >Unfortunately at the moment we only have a few hand made prototypes. > >Ari 10:41 AM, 06 Oct 2006 by Mark Aufflick Permalink | Comments (0) LinkedIn.com redesign communicates less with more
I like to browse LinkedIn.com from time to time to see what people are up to, the state of the hiring market etc. I have always liked their design, and the occasional tweaks are usually good. Their latest attempt to redesign the recommendations UI, however, is confusing and less effective in two ways:
The new design is subtle and clean, and more information is available, but it actually makes the information less self evident. In HCI terms, the design lacks what is known as affordance where the function of an object (in this case a link) is intuitively known by it's characteristics. In the case of (1) it's the visual characteristics (traditional affordance). In the case of (2) it's what I would call the "affordance of proximity" (which may or may not be a phrase already in use - I'm sure it is). In my notes for this blog I jotted down "quote Edward Tufte, but I can't find anything appropriate, and I've gone a bit off Jakob Nielsen lately. 06:19 PM, 05 Oct 2006 by Mark Aufflick Permalink | Comments (0) Some new photosIt's going to be ages until I get time to scan in the Fuji slide film I was talking about. In the mean time I have shot another roll and plan to shoot more this weekend, so I thought I may as well upload the Ektachrome ones I have scanned already. I haven't done any photoshopping (other than a few dust removals) so please excuse any slightly off colour balancing. 09:49 PM, 27 Sep 2006 by Mark Aufflick Permalink | Comments (0) Conference Envy
I'd give my right leg to attend this year's OOPSLA and Dynamic Languages Symposium. (Can't give my right arm - I need that for typing).
Attending Designfest or hearing Avi Bryant give a talk titled "Data Refactoring for Amateurs" would be worth the air fares alone. 04:58 PM, 25 Sep 2006 by Mark Aufflick Permalink | Comments (0) Richard Hammond (Top Gear) in critical conditionTOP Gear presenter Richard Hammond has been injured in an accident while filming an edition of the programme, the BBC said.It sounds very serious. Various reports are saying that Hammond is in a "critical condition" and in a special "neurological unit". Top Gear presenter hurt | NEWS.com.au Update: He was doing 280 mph at the time aiming to set a new UK land speed record in a jet powered Vampire. Sky News: Top Gear Man In Crash. Apparently the Vampire is powered by a Rolls Royce Orpheus jet engine and accellerates from 0 to 272 mph in 6 seconds. One, two, three, four, five, six. There - you're now travelling 272 mph. Further Updates:
10:29 AM, 21 Sep 2006 by Mark Aufflick Permalink | Comments (0) Widgets are the new screensaversRemember when you had that old Mac Plus, or maybe an LC or some such, and you used to go scouring your friends, swap meets, bulletin boards etc, for that new cool screen saver? Somehow you would rotate back to Flying Toasters every now and then, but I remember a lot of cool screen savers. They didn't really save your screen, it was more like computer popcorn. I think widgets are a lot like that. A very few are useful (like the survey widget I used on a recent post from MajikWidget) but most are popcorn. Of course there's nothing wrong with popcorn. I like popcorn. And I like Asteroid. Happily they have come together in this Asteroid widget from Widgetbox! Update: Well just like the screensavers of yore, widgets han hijack your computer! Or your blog at least. It seems that the site that submitted the asteroids widget (www.80smusiclyrics.com/games.html) replaced the Asteroid widget contents with advertising some time after I wrote this post. As a replacement, this widget will get a new game every time urbaniacs.com releases one. 10:35 AM, 13 Sep 2006 by Mark Aufflick Permalink | Comments (0) Nikon CoolScan 5000 scanned photos on their way
I shot a few rolls of film last weekend. Both were E6 (slide) film - one Kodak Ektachrome 100 the other Fuji Velvia 100. The comparison between the films is quite striking, but I'll get into that later. Processing was expertly handled by Vision Graphics who are right behind my apartment in St Leonards. Why have I been going all the way to the Lab?!
It's also been an experiment for me since I'm doing my own scanning with a (borrowed) Nikon Super CoolScan 5000 ED. I haven't finished with the colour calibration yet but here's a sampler of what's going to be uploaded to my 23hq photos later this week. ![]() The camera is a Canon EOS 30 and the lens is a Canon Ultrasonic 24-80. The locations above include Dee Why, Woolloomooloo, San Francisco and Singapore (ok, so there were a few shots already on the roll before last weekend ;) 02:03 PM, 11 Sep 2006 by Mark Aufflick Permalink | Comments (0) Michael Schumacher Wins! Retires!! What a night in Formula 1. A crazy stewards decision, Alonso fighting back only to suffer a blown engine, Kubica getting his first podium in his third F1 race, Schumacher winning and thus closing the drivers title fight to two points...
All par for the course in the exciting world that is F1. But nothing compares to Michael retiring. Love him or hate him - he's a champion and he's done more for the sport than most. I can't believe he's retiring. He didn't sound like he wanted to retire! Mark my words though, he will win the chanpionship this year. In the drivers conference he referred to his upcoming "3 wins", and Ferrari management are already calling him an "8 time world champion"! Can't wait to see Kimi in a Ferrari too! Update: Sorry for the horrible typo of Schumacher in the heading. I was correct in the body - that's what happens at 2am in the morning people. 02:03 AM, 11 Sep 2006 by Mark Aufflick Permalink | Comments (0) OpenDarwin shutting down?! Well I can see that this is old news, but the demise of OpenDarwin is very sad. I must say I didn't realise what the original goals of the OpenDarwin project were, but it will be missed as a ports management community. I found OpenDarwin ports far better maintained and managed than fink and now it looks like I'll have to move back. Very sad.
Update: I can breathe easy - it seems that darwinports is continuing and will now be hosted by the (sort of) new Mac OS Forge. Well that's a relief. 01:04 AM, 09 Sep 2006 by Mark Aufflick Permalink | Comments (0) Issue with comments fixed
Thanks to an email from a would be commenter I discovered that some html quoting code I recently added to this site's code was over-quoting the url used for the ajaxian followup comment code.
It's now all fixed so please feel free to resume your normal rate of one comment every month or so :) 08:50 PM, 08 Sep 2006 by Mark Aufflick Permalink | Comments (0) Software development - finally into the 21st century?
I've been thinking lately about the changes I see in the programming landscape. Partly it's a personal journey thing, but there are definitely some major shifts going on.
<preramble> Firstly there's the growing acceptance of so called scripting languages like Ruby and Perl as legitimate for application development. There is certainly a shift from pre-compiled to just-in-time compiled and also from static (aka. strong) to dynamic (aka. weak) typing (excellently discussed by Steve Yegge). Secondly there is a move away from the previously accepted wisdom that it's better to pick a language and stick to it. Domain specific languages have been around for a long time (think SQL, awk, Excel macros) but are now being accepted in less traditional areas. Although some people are still confused about how to decide what language/environment to use, many are starting to see the wisdom in choosing a language that allows for the most natural description of the real world problem.
The lack of integration with "modern" gui operating systems is particularly frustrating because when it comes to rapid gui app development, nothing comes close to Smalltalk. Not even Cocoa. It' not just the language or the frameworks, it's the entire environment. And that is the problem, because it's not immediately obvious how you can mess with the smalltalk os environment and not lose some of the power.
I'm no Microsoft fan, but I will give them some advice. Give this guy money now. Lot's of it. If the libraries were shipped with Vista, this would beat Cocoa hand over fist (excluding multimedia, OpenGl... ok in a whole bunch of non-corporate areas). Sheesh - I might even need to own my first ever Windows machine. At least I can dual boot a MacBook ;) Update: As pointed out by a reader in the comments, Dolphin Smalltalk achieves the same sort of platform integration for existing windows versions. I must confess to being ignorant about Dolphin Smalltalk since I had previously avoided it because I traditionally avoid windows. I promise to investigate it and report back! Certainly products such as Cincom Smalltalk use their own widgets rather than native OS ones which is another (perceived at least) issue, but I'll hold judgement on Dolphin until I have checked it out. Update 2: I've been taken to task for my admittedly "hand waving" statement that Smalltalk has been traditionally difficult to delploy. Without stating it, I was really combining technical issues with human issues. Human issues being your client or manager saying something like "that deployment procedure looks a bit wierd - and the widgets are non-native. You'll never be allowed to use that". What I am excited about (and unashamedly hoping to promote) is that now is a time when we have the chance to promote uncommon thinking when it comes to software development. This is why I specifically linked the changes in attitude to scripting languages with this new Smalltalk framework. I apologise that some of my reasoning was not clearly spelt (or thought) out and that some people may have taken away the thought that there has never been a Smalltalk implementation useful for traditional application deployment. Thanks to the commenters in the comments and via email. 05:29 PM, 07 Sep 2006 by Mark Aufflick Permalink | Comments (3) Is RSS republishing stealing?![]() I blogged a while back about RSS republishing vs. plagiarism. I asked the question about whether RSS republishing was plagiarism. I gave an example of a site that scrapes RSS feeds (including mine) and republishes the content on a different site where they hope to get clicks on their google ads from the traffic the content generates. It was a fairly benign discussion and I wasn't too annoyed. I am, however, going to build on it now so you might want to read it first for background (make sure you come back for the survey below though. You know you just can't help yourself with those online survey widget thing-a-me-bobs ;). Today I found an altogether nastier version and I thought I would try to codify a set of tests for determining if an instance of RSS republishing is acceptable or not.
Having decided an instance is unacceptable, it's unclear what I should do about it. Certainly I'm considering writing a short set of terms under which I will license my RSS feed. I don't think creative commons will work because some aggregators who I would like to republish my feed are effectively using it for their own commercial gain. One practise I will try and adopt from now on is to include a link to my own site (an old related post, etc.) in most blog entries. The only reason I became aware of the vintage computer example above was because it appeared in my referrer stats by virtue of having links to some old posts of mine (with fully qualified links). At least a reader might eventually find my site and realise that it is the source. What do you think? Is the republishing of RSS ever justified? Is any publiscity good publicity? Is the RIAA right and shoudl all content reproduction be controlled by encryption and lawyers? PS: Yes I am familiar with the term splogging (spam blogging), I just didn't want a buzzword to get in the way of the discussion. Update: Read about one man's success and a (hopefully) reformed splogger on The head lemur 11:06 PM, 04 Sep 2006 by Mark Aufflick Permalink | Comments (1) And I thought _I_ was taking vintage computing a bit far
[Editors Note: This blog entry is also out of the archive of never-quite-published blogs of yesteryear. With DB of Tram Town donating some of his historical Mac hardware to an upcoming digital history exhibit at the Melbourne Museum, this entry I penned in January 2005 should see the light of day.] I couldn't quite get my Apple //e card reading files off an AppleTalk server and couldn't find any reference material for the Apple //e Workstation card (which implemented localtalk and AFP network booting, printing etc). But I did find this digest entry with a network that puts mine to shame:
At least Bart doesn't have any Un*x boxes, affording me one avenue of feeling superior ;) PS: I made the cassette image with the awesome says-it.com cassette virtual cassette generator Update: It's worse than I thought. Looking back at the time I drafted this, I wrote a patch for an Apple ][ emulator, bought a Kinesis keyboard, read the Be developers guide for fun, upgraded a Color Classic. People might think I'm a nerd or something...08:53 PM, 03 Sep 2006 by Mark Aufflick Permalink | Comments (0) Good Sense vs. Hyperbole
[Editors note:I drafted this blog entry last December but never published it. The extra freedoms we recently re-gained (ie. tweezers and nail clippers) have been more than obliterated by the new war on moisture.]
Looks like I might be able to take tweezers on board my flight on Sunday after all as US Transportation Security Administration chief Edmund Hawley is expected to announce a relaxation of the post 9/11 ban on airline passengers carrying sharp objects. Such common sense is generally applauded by the public and attacked (ie. made into a story) by the media, as witnessed in the frenzied response to Amanda Vanstones comments last month. This time, however, the media seems to be taking a reasonable stance and it has fallen to the US Association of Flight Attendants to provide the silly response: "When weapons are allowed back on board an aircraft, the pilots will be able to land the plane safely, but the aisles will be running with blood," said Corey Caldwell, a spokeswoman for the Association of Flight Attendants. It just doesn't get much more hyperbolic than that! 04:28 PM, 03 Sep 2006 by Mark Aufflick Permalink | Comments (0) Recent Links / del.icio.us feed
I've just noticed that my "Recent Links" feed has stopped updating. I've been posting quite a few interesting del.icio.us links recently (more than I've been blogging) so I'll have to fix it.
In the mean time you can go straight to del.icio.us/aufflick - or if you subscribe to my rss feed (rather than reading my website directly) you're still getting the links fine. Update: It seems that after running non-stop for months, this instance of AOLServer decided to stop running it's scheduled procs. I guess I should upgrade since the version running this site is over 6 years old! 09:40 PM, 20 Aug 2006 by Mark Aufflick Permalink | Comments (0) WWDC keynote notes
As always, I enjoyed watching the recent WWDC keynote by Steve Jobs et. al.
The new workstations and servers are awesome, and cheaper than Dell. Also on the hardware side, Apple now commands 12% of the "retail" laptop market. I assume that therefore ignores direct corporate sales, but it's still a huge increase. Now onto software. [Steve Jobs shows slide of 5 major OSX releases] ... so this is what we've been doing for the last five years ... what has our competitor been doing for the past five years ... Cute. Bertrand Serlet, Apple's SVP of Software Engineering, went on to compare OSX with Vista and pointing out where Vista appears to be a copy of OSX, with quotes like ... they even tried to copy the colour scheme ... but didn't quite get it right There were also a huge number of serious OSX announcements, including full 64 bit framework support right up into the Cocoa and Carbon layers (previously 64 bit support was only available if you coded directly on the Unix layer). Also, at last, a built in backup feature called Time Machine with the ability to do single file restores as well as a full restore of your hard drive (OS & Apps, not just your files) for any point in time, not just the most recent version. It can integrate directly with supported Apps at the data level, not just the file level. Oh and it has a UI that trekkies will die for! A lesson for Microsoft (and everyone else) - Scott Forstall (VP Platform Experience) had a freeze during his demo. Ok, so it's beta software. But instead of being embarrasing, he simply flicked a switch, and the backup computer was instantly in use. Total embarrasment around 4 seconds. Steve subbed in from Scott to introduce Spaces aka. virtual desktops. Very cool. Of course I have been using virtual desktops on MacOS since even before OSX, but it's awesome to have it built into the OS. A great feature I don't have right now is that when you switch to an app the OS will switch to the most appropriate desktop. Seeya later Exposé. Major Mail.app upgrades, while overdue, are welcome (thanks Bruce ;). While some people will hate the slick stationary feature the average punter will love it. I will love the notes and todo features since I seem to use mail in the same way as Steve. Beating Outlook at it's own game, multiple todo items can come from one email message or in fact from any application, and will appear in Mail.app and iCal via a system wide "todo server".
Too bad I wasn't actually there to get the developer preview. 11:45 AM, 08 Aug 2006 by Mark Aufflick Permalink | Comments (0) Go Russ!!
My good mate Russell Davies has just jumped into the top 10 chip holders one day into the world series poker champs in Las Vegas.
You can watch his performance on his blog Tales from the Felt and also on Poker Stars Blog 01:53 PM, 31 Jul 2006 by Mark Aufflick Permalink | Comments (0) More cool audio gear
Here's some more random stuff in line with my last cool audio blog/links like the retro analog synth clips and the totally hummable Stevie Wonder on Sesame Street clips:
You'll note that I didn't count Dwight Yoakam's Chicken Lickin's Chicken Rings as a music related posting ;) 05:05 PM, 17 Jul 2006 by Mark Aufflick Permalink | Comments (0) Microsoft Fined 280.5 Million Euro by EU Commission: "No Company is Above the Law"
As reported on GrokLaw, the EU antitrust investigations have followed up their earlier decision to fine with the amount. Ouch. As much as I dream of the day that Microsoft competes fairly (and thus will be forced to actually innovate), just thinking about being fined that amount makes me wince. Thank goodness for limited liability companies!
But seriously, this is a very good thing. Microsoft can no longer be under any illusion that they can get away with behaving illegally and unfairly forever. Being the largest employer in California and having the ear of US Congressmen doesn't help you in the rest of the world. And Microsoft needs the rest of the world - even if just to protect their dominance of the US market against foreign competitors. 11:56 AM, 13 Jul 2006 by Mark Aufflick Permalink | Comments (2) Dwight Yoakam's Chicken Lickin's Chicken Rings![]() 11:57 AM, 12 Jul 2006 by Mark Aufflick Permalink | Comments (0) Managing your brand requires calm pragmatism
Anyone in Australia will be done to death with the John Howard v. Peter Costello saga. I like both men, and would vote for either. In fact I have a particular fondness for Costello (as wierd as that might seem) and would love to see him as the PM one day. Unfortunately for him, I think that Jeff Kennet's erudite words are very accurate:
The former Victorian premier says Peter Costello would jeopardise the federal Liberal Party's re-election chances if he tried to force a leadership showdown. Of course Kennett knows a thing or two about being ousted from leadership, and then coming back. He also knows a thing or two about shooting yourself in both feet. Costello could do worse than to look to Jeff for advice, rather than the more obvious parallel of the Hawke/Keating dustup. 05:22 PM, 11 Jul 2006 by Mark Aufflick Permalink | | ||||||
Imagine my surprise when I discovered that not only is the Newton emulator project still alive, but it just released a fully working version, running on a host OS of OSX or linux-arm!! This means that I can finally have
Douglas Engelbart headed a research team that designed a system called NLS for oNline Learning System. He was more than just a man in the right place at the right time - he fought for funding year after year, from one government agency to another, until he reached his goal. And that goal is demonstrated in his famous 1 hour demonstration.
I'm thinking of asking for a replica Apple 1 kit for Christmas. Amazingly there are at least two choices, either a 
So my total toolbar looks like:
It seems that the war on moisture has now been upgraded to a war on everything your body needs.
I don't know about you, but I love shopping in large supermarkets. The variety of wacky and interesting junk you can find there seems limitless. Many are worth browsing but occasionally one jumps aout and grabs you and you *have* to buy it.
So it was with the Magic Mug Cake! Pour the sachet into a mug, mix in an egg, microwave for 90 seconds, add your favourite topping for more fun - it just doesn't get much better than that! I was intrigued by this product. Only slightly less than the
With 10 seconds to go it was so far so good. As you can see on the left the cake was just peeking over the top of the mug - *magic*! As soon as the heat stopped, however, it sank right back down. It looked way to moist so I figured it needed some more time. After another 30 seconds it looked cooked - but not quite what the picture showed:
Paul Graham is one of my favourite IT writers. Not that he's the best or the most insightful (although he is floating near the top) but because he combines programming with other creative pursuits. That's the way I think it should be. He also invests in the 

in the headline box of someone's profile, I see: "profile", which means the profile telling me about the person; "connections" which means the connections that that person has (again - information about the person); and "recommendations" which I assumed meant recommendations for that person (ie. more information about that person). Instead it is recommendations that that person has made about others - which reverses the meaning of the other two tabs. Not only that, but when I did click it, the design doesn't make it clear that it is the other until I am part way into reading it.
What a night in Formula 1. A
Well I can see that this is old news, but the demise of 

