about photos bookshelf portfolio blog home
Begin main content

Good espresso in San Francisco chain coffee shop

It exists! Peets Coffee & Tea makes regular, non-flavoured, espresso based coffee. Still no flat white, but the espresso and Capacino is good.

As a good companion, the (badly spelt) SpecialtysDirect.com is a fine bakery on the corner of Bush and Market. Their Thai chicken sandwich is good although their rendition of a ciabata roll tastes rather bagel-like! I haven't tried their online ordering system yet.

08:28 AM, 14 Dec 2005 by Mark Aufflick Permalink | Comments (0)

San Francisco at night

Sunday night I decided to walk to Fillmore to get dinner. If you know San Francisco you will laugh when I tell you that I'm staying on Sansome - it's a long way! Plus I walked there along California - right over the highest part of the hill...

On the way back I met Walter. Walter doesn't like alcohol, it makes people do bad things. He had a "particular agenda" that apparently required a five dollar bill - he even swapped me one of his one dollar bills in exchange.

Last night I met Michael "the map man". He gave me the good oil on what areas to avoid and where Tom Lee Hooker's old haunts are. He knows a thing or two about Australia ("@#$% Botany Bay man") and is mad as hell about T.J. Hickey. Now I know which weekly papers advertise the best gigs, and which combination travel tickets will save me the most money. That should help me save back the three dollar "tip" I gave him.

Tonight at the Golden Gate Perk I listened in to the table next to me discussing the business plan for a new travel website targetting "party travellers". Apparently they're going to "take it to the edge" and it's going to be "viral". It will feature a travel weblogging feature so that the public users will make them "mountains of content every day" which they plan to leverage by hosting Google ad's and cataloging email addresses.

Later on in the night, the Bay area's 137th homocide took place in Mission - shortly after the town hall cancelled a public meeting on violence.

David Letterman was just chatting with someone from San Francisco - according to Dave San Francisco is colder in the summer than the winter, I sure hope that's not true - it's not the height of winter yet and my hotel sheet tells me the temperature range tomorrow will be 30 to 60 (that's farenheit people).

This place sure runs to a different drum.

05:08 PM, 08 Dec 2005 by Mark Aufflick Permalink | Comments (0)

Flat Merangue Gate

I am increasingly convinced that the "flat white" is an Australian invention. I saw no reference to it in Paris earlier this year (but why would you want milk in your coffee in a country where every street corner has such fantastic café aka espresso. I also blogged earlier this year about my attempt to get a flat white in London.

So here I am in the Golden Gate Perk purveyors of fine Coffee, lemon merangue pie and free wireless access, attempting once again. After attempting to describe the milk/water/froth combination of a flat white, the simplest description we could agree on was "something between a capacino and a latté". After stirring in the foam a bit more I have to say it's not a bad attempt! Certainly better than the "Special Blend" filter coffee I've been drinking all day to try and stay awake. In the end, CA autosys documentation was too much for me and I needed some real coffee!

01:44 PM, 06 Dec 2005 by Mark Aufflick Permalink | Comments (0)

United we stand

Well here I am in the United Airlines "Comfort Club". It's no Qantas Club, but they do have a reasonable selection of beers and snacks.

The Optus wireless zone doesn't seem to quite reach this far, so you won't be reading this until I get stateside.

I also had a random bag search before checkin, which was new. Thankfully I didn't also have my checkin searched after the metal detectors. I have learnt by now not to take aerosol cans in my hand luggage. I'm not sure when that became an issue but it's probably a hazard just like smoking in the toilets. It always amuses me that you used to be able to smoke on the whole plane, but now it's a "fire hazard".

The other interesting United experience is that the flight is overbooked, and there was an announcement that if you were willing to wait for the flight the next day they would put you in a hotel and pay you 800 USD. If I didn't have to work on Monday it would be seriously tempting!!

Ok - flight boarding now.


Onboard United (which is where I am right now) is an unusual combination of experiences. Unusual isn't really the right word, but Tom Jones is singing "It's not unusual" on my iPod right now, so it's the word I'm stuck with.

The first thing that hit me was the seat. The best way I can describe it is as a silghtly upmarket version of the Qantas business class seat from 2 revisions ago. Not the one before the business bed - the one before that. Part of the seat makes the United website a lyer (on top of being disorganised) and that was the 15 vdc Empower power port. The United website told me that I would be able to use my laptop power supply without an adapter. That means I need to stop blogging and get coding because I still don't have the SkypeMenuX project linking under XCode 2.2 yet.

The second thing that hit my was a glass of water. My glass of water. Tim will be no doubt rolling around his government funded office guffawing with mirth, or perhaps a small smile will creep onto his face as he knows all is right in the world. I thought perhaps a new era had dawned as I successfully negotiated four international flights earlier this year without spilling a single drink but I returned to regular form when I managed to spill a glass of water on myself anD my seat before we disembarked from the gate.

I guess an airline that has filed for bankruptcy can't afford new seats. Ironically the things I am loving are probably what sent it bankrupt in the first place. In great contrast to the BCG-designed efficiency of Qantas, the onboard service is impossibly good. After the usual champagne/juice/water before takeoff and a really long taxi (thanks to Sydney's 34R runway) came a drink and nuts. That's pretty standard, but the bourbon and dry was mixed for me, very well too, and the nuts weren't in a cost effective foil pouch - they were in a small dish and warmed to perfection. I honestly don't think I have eaten better tasting nuts.

The rest of the food was nothing to rave about but the wine choices were above excellent (Australian, French and Californian) and the service was again well above par. I've probably never had better service on a flight. The detail and demeanor of the staff matched Qantas first class.

Back to the fitout, the tv screen is abysmally small (again comparable to Qantas business class screens from the early 90s). That doesn't matter because the only movies worth watching are all on ther return leg. Unfortunately the headphone jack is different to all of the airline headphone adapters I have so i can't use my noise cancelling headphones.

Which brings me to another great thing - I think the iPod and podcasting are probably the best thing to happen to air travel recently. I don't have to put up with the looped music channels and I can listen to both Adam Curry and Dr. Karl while well above the clouds.

So all in all a mixed bag. I really hope I will be able to swing Qantas or BA for my flight to London in January though.


I'm a good few hours into the flight now (sorry, I'm not tempted to use the in-seat phone to upload this blog, so you readers get this in one hit) and I have two things to rave greatly about. Well three really. The first is Aaron Hillegrass's book on Cocoa programming. The sort-of-third thing is that Cocoa programming is so cool in the first place, but then you already knew that ;) The book is well written, wastes few words or screenshots, and is massively helping my self-taught Cocoa programming no end, and I'm only up to chapter 5. The other thing I want to do is reiterate my earlier comments about the United crew's service. Every time my glass of Bourbon and dry becomes empty, my friendly cabin crew asks me if I want a refill and knows wxactlly what I am drinking. That would be easy on the upper deck but here in main cabin business class there are more seats per crew member and I am mightily impressed. I guess it's also a testament to the clarity of Aaron's technical writing that it is still making sense (and compiling) after quite a few Bourbons and some Savignon Blanc. Dehydration be damned ;) If I can add a fourth, the backlit keyboard on my Aluminium Powerbook is a lifesaver with the cabin lights out. I feel sorry for the sucker in 22H with a Lenovo laptop running Windows XP!

10:19 AM, 05 Dec 2005 by Mark Aufflick Permalink | Comments (1)

Tracking my cygwin emacs debugging

Emacs 22.50.1 (cvs) seems to crash randomly under cygwin.

I am going to keep a track of my research here. First backtraces fingers the garbage collector which would explain why it is somewhat random. I am keeping track of the stacktraces and other useful verbose stuff in the previous blog entry (cygwin emacs cvs stack traces) I have had the same backtrace a number of times now.

The exit is caused by hitting the default clause of a case LispCons in alloc.c which I am now printing to stderr. I know nothing about cygwin api's, but here goes nothing!

Update: my c is rustier than an outback dunny! case is the match point of the switch construct (I was thinking the other way around) so my stderr print was silly! Of course since the breakpoint hits before the process exits I was able to just walk one level back up the stack and use pr to dump the lisp object. (If you're trying to debug emacs, make sure you at least browse etc/DEBUG in the emacs source). The problem is that the lisp datatype checker has no idea what it is:

(gdb) pr obj
#<EMACS BUG: INVALID DATATYPE (0x07) Save your buffers immediately and please report this bug>

So it's no wonder the garbage collector is having trouble.

Update: gdb + google = easy debugging! It seems to be the same problem as this thread: http://lists.gnu.org/archive/html/emacs-pretest-bug/2005-01/msg00301.html
and this one: http://lists.gnu.org/archive/html/emacs-pretest-bug/2005-09/msg00079.html

Update: well none of the threads I found helped me any, they are all inconclusive... Since it's *just* garbage collection, I can run crash free by just eliminating the abort, but that leads to a super phat memory leak. Open 20 frames and you've use 88Mb. Close 19 of them and you are still using 88 Mb!

Update: Seems ok in normal usage (and with plenty of VM to soak up the objects where garbage collection fails) but I would really like to get this bug fixed as I will be using emacs on cygwin for some time.

Update: Bug is still there as of 2006-12-15. See this entry for a current patch.

12:35 PM, 02 Dec 2005 by Mark Aufflick Permalink | Comments (0)

cygwin emacs cvs stack traces

Breakpoint 1, abort () at emacs.c:461
461      kill (getpid (), SIGABRT);
(gdb) bt
#0  abort () at emacs.c:461
#1  0x200efb11 in mark_object (arg=536989607) at alloc.c:5613
#2  0x200f048f in Fgarbage_collect () at alloc.c:4955
#3  0x20104673 in Feval (form=541751997) at eval.c:2116
#4  0x20103398 in internal_condition_case_1 (bfun=0x201045d0 <Feval>,
    arg=541751997, handlers=539968089,
    hfun=0x200a2aa0 <menu_item_eval_property_1>) at eval.c:1506
#5  0x200a2b32 in menu_item_eval_property (sexpr=541751997) at keyboard.c:7176
#6  0x200aeece in get_keyelt (object=540125025, autoload=1) at keymap.c:811
#7  0x200af523 in access_keymap (map=539900333, idx=539933345, t_ok=2,
    noinherit=0, autoload=1) at keymap.c:643
#8  0x200a37fc in tool_bar_items (reuse=566309892, nitems=0x22dcf8)
    at keyboard.c:7631
#9  0x2001d18f in update_tool_bar (f=0x212c4400, save_match_data=0)
    at xdisp.c:9193
#10 0x2002b080 in prepare_menu_bars () at xdisp.c:8899
#11 0x2002bd2e in redisplay_internal (preserve_echo_area=7) at xdisp.c:10584
#12 0x200a7011 in read_char (commandflag=1, nmaps=2, maps=0x22e920,
    prev_event=539912193, used_mouse_menu=0x22e968) at keyboard.c:2535
#13 0x200a99f7 in read_key_sequence (keybuf=0x22eac0, bufsize=30,
    prompt=539912193, dont_downcase_last=0, can_return_switch_frame=1,
    fix_current_buffer=1) at keyboard.c:8840
#14 0x200ab511 in command_loop_1 () at keyboard.c:1523

12:06 PM, 02 Dec 2005 by Mark Aufflick Permalink | Comments (0)

One million miles in 56 days - just in Canada!

I could make it up, but I may as well just quote the guy directly.

I just sort of moved it to a new level

Marc Tacchi, part time commercial pilot, set about to clock up 1 million miles of air commuter travel armed only with a C$7,000 Air Canada North America Unlimited Pass that allowed him unlimited travel within Canada during October and November.

He did it literally with days to spare, as journalled in his blog Marc Tacchi - The Great Canadian Mileage Run 2005.

Reuters have a nice summary article Very, very frequent flyer hits 1 mln goal.

That guy is a legend! 1 million miles in a month - It's the stuff of dreams :) Although I would hate to do it on domestic flights!!

10:12 PM, 01 Dec 2005 by Mark Aufflick Permalink | Comments (0)

My first United flight

Well I'm about to embark on my first ever United Airlines flight. I'm always up for something new and the fact that I have recently been demoted to serf status with Qantas means I don't really have anything to lose. Qantas don't have the worlds most amazing reputation so I could be in for a pleasant surprise.

My first surprise (of the unpleasant variety) is that the United online system really sucks. It's called Ted (part of United) which is cool, but that's about where the coolness ends.

Searching for flights was confusing in a number of ways: does "2nd day" mean it lands the day after departing or 2 days after?; why can my travel agent book flights that don't even appear in a web search.

I have obviously signed up for the United Miles Plus program which was painless and free, but the Miles Plus website really makes me feel like a consumer not a member. I have been spoilt by the Qantas frequent flyer online system which lets you see your forward bookings (literally before you hang up your phone with the Qantas rep) and other fun stuff. Not only does the United Mileage Plus site not do much, you have to keep going backwards and forwards between "My Mileage Plus" and "Mileage summary" which involves a change from https to http (and a browser confirmation dialog) and a login check redirection page (with related delay).

Let's hope their service and lounges is better than their technology!

11:34 AM, 01 Dec 2005 by Mark Aufflick Permalink | Comments (0)

Sun to integrate PostgreSQL into Solaris 10 [software.newsforge.com]

This is very good news. Hopefully this will be another tool to help IT departments and companies look at Postgres as an alternative for mid-range databases.

The sort of things that are implemented in MySQL or Sybase are much better (IMO) developed on Postgresql. The only impediment to being a total replacement for all enterprise DBMS products apart from Oracle is better replication support. Even many applications using Oracle would be excellent candidates for Postgres if they are not using Oracle's real winning features like the Media server.

02:14 PM, 24 Nov 2005 by Mark Aufflick Permalink | Comments (0)

del.icio.us uses perl/mason

And I discovered this tidbit because i hit a bad database handle in their code and they have fatal error display turned on!


System error

error:  Can't call method "prepare" on an undefined value at /www/del.icio.us/comp/user/get line 13.
context: 
... 
9:  my $usedb = 'master';
10:  my $ret;
11: 
12:  if (!$auth_user) { $usedb = 'user' }
13:  if (!exists ($db->{$usedb})) { $usedb = 'master' }
14:  $user_name_q->{$usedb} = $db->{$usedb}->prepare('select * from users where user_name = ?');
15:  my $query = $user_name_q->{$usedb};
16:  $query->execute(lc($user_name));
17: 
... 
code stack:  /www/del.icio.us/comp/user/get:13
/www/del.icio.us/site/dhandler:194
/www/del.icio.us/site/autohandler:108

I'm surprised they don't use some sort of global cache for prepared statements - that query must get run a LOT.

10:50 AM, 24 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Reading Bill Atkinson Code

I can't wait to get my eyeballs on this! According to this blog by Grady Booch, Apple and Bill Atkinson have given the goahead to allow the Computer History Museum to exhibit the source code of MacPaint.

It's the software cool equivalent of Woz's disk drive controller :)

12:32 PM, 23 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Java, Ruby on Rails and Buzzword compliance

There's this great article on O'Reilly network's OnJava site titled Ruby the Rival, ie. Rival to Java. It's a Java site, so you expect the article to relate the article to Java. In fact in that light, the article is very compelling - real Java people (some ex-Sun) moving to Ruby on Rails? Now that is a story.

The real heart of it in my opinioin though, is eloquently summed up by this comment from James Duncan Davidson - author of the Java Servlet API.

... I think that's the real win from the recent attention on Ruby on Rails and the breakaway from viewing the world with Java-colored glasses. It's not that Ruby on Rails is going to be the next Java. Far from it. It's that Ruby on Rails helps to break this idea that there is "One True Way." There's not. There are many different ways to solve a problem. And really, none of them is the clear-cut winner. There's just places where one solution has advantages.

Hooray! Yes, Java is best of breed for some things (eg. cross platform sand-boxed gui's), but so is Ruby (Rails web apps). And so, for that matter is Perl (system glue, reporting); Objective-C (many things - if only Yellow Box was still available); etc.

It is an unfortunately popular belief that there can be a single language/framework that suits all (or even most) problem domains. If developers really believe that, why do their applications nearly always contain two languages? How's that? How about Java+SQL? or Perl+JavaScript? or PHP+ActionScript? The truth is that languages/frameworks tend to model some real world problems better than others.

Hilbert's Universal algorithm is unsolveable. Einstein wasn't able to find his Theory of everything. It's probably not possible to create a universal programming language that is best suited for all problem domains.

Perhaps the obscene difference in LOC (lines of code) between equivalent J2EE (Java) web-apps and equivalent RoR (Ruby on Rails) applications will be a clear way to explain these facts to business stakeholders. In case your particluar business stakeholders need an analogy, Davidson offers this:

It's like the structures that we work, eat, and live in. Some structures are best built with concrete and steel. Others with masonry. And yet others are best built with timber. Nobody has jumped up and said "All buildings must be built with bricks!" And there's a good reason for that. It'd be stupid. In a similar vein, not all web applications should be built with Ruby on Rails or Django or J2EE or Perl. There's a multitude of tools for any particular job. And there are new ones waiting to be discovered. The trick is determining the best one.

Will the days of buzzword-compliance one day be behind us? Perhaps we are entering a time of cool-compliance.

What irritates me is that in the "applet" space that Java invented, you look at Flash(plus Flex/Laszlo) and it crushes applets in both "cool" (get me to a good user experience quickly) and "powerful" (I get data binding/SOAP/XML-RPC/etc. for free). The fact that the "powerful" side of that isn't in the core JRE immediately kills the usefulness of applets, and if anyone can show me an applet that looks anywhere near as good as the Laszlo Dashboard demo in a similar number of lines of code, I might have a coronary on the spot. "Cool" counts for a lot, too.

Back in the day, an "Enterprise" executive would get back to his office from a trip and show you the in-flight magazine advertisment for Cisco routers, Java webstart or whatever, and ask "why aren't we using this - everyone else is". Now it's more like "My iPod is easy to use, and it looks great. Why doesn't our intranet work like an iPod".

While any form of artificial compliance is bad, I would much prefer being directed to be compliant with cool than the latest buzzword :)

02:17 PM, 22 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Why is large-scale code reuse still an unsolved problem ?

I wanted to title this blog "Extreme Reuse manifesto" - but maybe I will write one of them, so I didn't want to steal my own thunder!

I have always been interested in the challenges of code reuse and lately have been thinking about my direction and the direction of the technology industry as a whole.

There has been some excellent commentary and discussion in Lars Pind's blog post Why Rails won't become OpenACS, or Rails is cool, but can we have a login system? which itself was a follow on from his post Reuse-in-the-large is an unsolved problem: Why I left OpenACS for Rails.

The thinking behind these posts came from this online sample chapter from Facts of Software Engineering Management by Robert Glass (in addition to Lars' experience). The sample chapter is an excellent and provocative read. It looks like an excellent book for anyone who is serious about furthering their understanding of the software development process. Time to track down those good technical book stores in Sydney (that I have been assured exist!).

08:18 PM, 17 Nov 2005 by Mark Aufflick Permalink | Comments (0)

SCO Asserts Its Rights to Almost Nothing [www.groklaw.net]

It's been a long time since I blogged about that most interesting of legal cases SCO vs. The World (all SCO related blogs search).

My prediction in that first posting was:

In the end, I suspect the whole thing will fizzle into an expensive bad idea hatched by some genius inside SCO who just didn't think the whole thing through very carefully.

And it looks like that's exactly what's happening. SCO is grasping at such thin straws now that their court submissions have the most basic of flaws in them.

Go read the Groklaw article, it's an amusing way to spend a few minutes :)

04:41 PM, 15 Nov 2005 by Mark Aufflick Permalink | Comments (0)

RIP Peter Drucker [news.com.com]

A brilliant and effective mind that will be missed by many of us on this earth. Thankfully his inspiration is recorded in his books for us.

10:25 AM, 14 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Presentation Zen compares presentations by Bill Gates and Steve Jobs [presentationzen.blogs.com]

My point in comparing Jobs and Gates is not to poke fun but to learn.

In this nicely written piece, the author does this well. The negative effects of powerpoint on our presentations are well discussed elsewhere (such as in Tufte on Powerpoint), but applying the concepts of Zen to public presentation hits a true note.

Simplicity means the achievement of maximum effect with minimum means.
-- Dr. Koichi Kawana

Presentation Zen also has an earlier post discussing the negative sides to Bill Gate's presentations in Bill Gates and visual complexity.

Which reminds me that this site is in desperate need of a Zen-like overhaul. Maybe it's time to put Ascii-Art back into the 80s :)

01:06 PM, 11 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Cocoa and the emerging software market [blog.x180.net]

Great article about how Cocoa is powering the emerging software market. It's about time, really, that application development became like this. The software engineering theory has been steadily improving since the early 70s, and yet software developers have been saddled with crud like MFC!

As my readers will know, I'm starting to dabble with Cocoa development in my spare time. I'm now learning to use Cocoa Bindings (and here) - truly inspiring stuff. I'd love to hang out with the framework designers at Apple :)

10:13 AM, 11 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Google Map Risk [www.ashotoforangejuice.com]

The useability isn't there yet, but an implementation of Risk using the Google Maps API is seriously cool.

05:13 PM, 10 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Six Stages of Debugging [www.68k.org]

  1. That can't happen.
  2. That doesn't happen on my machine.
  3. That shouldn't happen.
  4. Why does that happen?
  5. Oh, I see.
  6. How did that ever work?

04:33 PM, 10 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Outlining

I have always been fascinated with the concept of an outliner. A computer application that does nothing more than facilitate the expression, collation and reorganisation of thoughts is, to me, the most fantastic thing of all. I am not alone in this thought, and outliner fans can get quite animated and excited about the topic.

I got thinking about outliners today when I found the excellent articles on http://www.atpm.com/ :

The problem is, no one thinks in quite the same way, so there is not really a one-size-fits-all outliner. Strangely, if you read around the web, most people's real favourite outliners are discontinued applications. Programs like MORE or NisusOutliner are very popular - and yet no longer sold! MORE is mercifully freely available, but as it is a Classic Mac application, using it is slightly frustrating and will be impossible on Intel Macs.

My problem is even tougher : I have never found an outliner that suits me as much as the standard outliner in the Apple Newton. There is something about the physical and tactile feel of holding a sizeable unit and using a pen to write and draw. The Newton enhances on the qualities of paper by letting you reorganise, edit, fold etc. Everything that outliner software does for you, but on a small tablet.

I still use my Newton, but the complexity in communicating between it and my Mac are too frustrating for normal use. If truth be told, the jeering I get when using it in public are probably more of a barrier!

I have often toyed with the idea of writing my own outliner application. Perhaps now is the time to actually do it. Maybe I will be lucky and Apple will release an OSX tablet soon, and I can Inkwell-enhance the outliner. Then, at last, my Newton can enter into a well deserved rest!

11:33 AM, 10 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Photo's now moved to 23 [www.23hq.com]

I have been meaning to move my photos out of the (very old) lars-images package on this site and into some community photo site like flickr.

I'm glad I waited, because there is a new photo hosting site that I really like - 23. It's simple to use, I like the way they are trying to bring local photo printing companies online, and I like that it's based on OpenACS!

I have a lot more photo's to upload, and the dates/tags/titles are not up to date yet, but it's a start. The "Photos" tab on this site will currently just take you to my album on 23 but I plan to put my own front end on it using their RSS feed so that the user interaction remains on this site.

23 is great. It's totally free - no ads either. The sole limitation of the free account is that you are limited to 20Mb uploads a month. To upgrade to unlimited uploads is only 29 Euro for the year.

11:26 AM, 09 Nov 2005 by Mark Aufflick Permalink | Comments (0)

New Blog, New Application, New Flavour!

I've started a blog a year since 2002 (the first one died in it's sleep), so it's time for this year's new blog!

I decided it was time to get started into writing Mac Cocoa applications, but where to launch my software and keep people up to date with progress?

Mark's Software : http://mark.aufflick.com/software/
and
Mark's Software Blog : http://mark.aufflick.com/software/blog/

And to launch it, my first real MacOS X Cocoa application, SkypeMenuX. It's, like, a menu ... for Skype. Check it out.

05:43 PM, 01 Nov 2005 by Mark Aufflick Permalink | Comments (0)

Comparing Programming Languages

Comparing programming languages is fiendishly tricky. Many hold that it is not valid to do it at all.

Here is some material that I have come across recently that strikes me as useful:

Colourfully titled essay discussing some flaws of comparing languages: The Computer Jihad
Insight into how and why a startup might choose a programming language: Beating the Averages
Two tables comparing the availability of selected features in a range of languages: 1 2

The final one is the report of some fascinating research. It attempts to allocate a level to a langauge based on the number of lines required to achieve certain Function Points:

http://www.theadvisors.com/langcomparison.htm

I find this last one particulary interesting because it looks at the effectiveness that a language delivers to the developer rather than a simple comparison of features. For example, the designers of Java and C++ chose to be strict about features for valid reasons, but it turns out that the result of that strictness is much more developer effort. Agile languages such as Perl, Ruby and Python score well on this metric as many would expect (Lisp didn't score well but Eiffel did). What I wouldn't have expected until recently was for Objective-C to score so well. While Objective-C relies on very simple extensions to the standard C syntax (which scored 2.5), the concept behind it is so powerfull that it scored 12. Almost as high as the agile languages at 15.

What this means is that you can write (a certain class of) programs in Objective-C with a similar number of lines to what would be needed in Perl or Ruby. Yet Objective-C is all the things that people say are missing in Agile languages (like the speed and obfuscation of native compiled code for example).

As Ovid said (see the first link), there are valid reasons to choose different languages in different situations. After browsing a lot of analysis of features and effectiveness, it is hard to see how Java or C++ could ever be the right choice (with the exception of Java for binary distributed cross platform gui applets).

I'm sure some readers have feedback to give on this post :)

01:43 PM, 21 Oct 2005 by Mark Aufflick Permalink | Comments (0)

How Apple Does It [www.time.com]

I don't often buy Time magazine, but I couldn't resist the headline article "The man who always seems to know..." referring to the bearded, black t-shirt wearing, Steve Jobs. Lev Grossman writes a nice article, not punchy but good to read nonetheless. The article begins by posing the question of why Apple, the one major tech company ignoring much standard standard business wisdom, has given us "three of the signatire technological innovations of the past 30 years".

Grossman does give some good insight into Apple's current practises that enable this, which is worth the read, but the answer given in general is Steve Jobs. All the three innovations listed (the Apple II, the Mac and the iPod) are Steve's babys. The Apple II was Steve Jobs + Steve Wozniak, the Mac was Steve Jobs + Burrell Smith + Bill Atkinson + Jef Raskin + Andy Hertzfeld, the iMac was Steve Jobs + Jonathan Ive and the iPod was Steve Jobs + Jonathan Ive + PortalPlayer.

Let's look at those projects some more:

  • The Apple II was Jobs taking Wozniak's brilliant machine, guiding it's development and identifying the market.
  • The Mac was Jobs driving a project against the wishes of the (then) Apple management
  • The iMac was Jobs dragging a (then) reluctant Apple corporate machine in yet another crazy scheme
  • The iPod was Jobs obsessively refining a seemingly simple product into not a category killer, but a category definer

(Yes this is a simple and general discussion - if you want information to dispute this, you should read Insanely Great and Folklore.org).

Between the Mac and the iMac of course, there were some terrible times. Really the two good things to come from that time were the PowerPC changeover and the Newton. Of course as we all know, Apple botched the PDA market and Jobs canned the project when he came back. I wish he hadn't, but I understand why he did. And how did Apple make up for the years lost in aimless Copeland/Taligent/Pink development? By modifying NeXTstep - one of the companies that Steve built in his forced Apple exile.

Steve Jobs is not perfect, but he does some things well. And now we have the video iPod. As Adam Curry said in the Daily Source Code a few days ago, "f#$%ing brilliant Steve, f#$%ing brilliant".

So lets see what useful info did Grossman collect (other than being thoroughly charmed by the reality distortion field).

Steve Jobs told him a short story, the "Parable of the concept car":

You know how you see a show car and it's really cool, and then four years later you see the prduction car, and it sucks? And you go, What happened? They had it! They had it in the palm of their hands! They grabbed defeat from the jaws of victory!

That sounds a lot like the question addressed to Intel's CEO Paul Ottelini by a Wall Street Journal journalist:

Why are Intel's demo products always cooler than the actual products its customers make?

No wonder Apple and Intel are getting along.

Another thing that really caught my eye was when Grossman was comparing the "success" of Apple (Steve) with the "success" of Microsoft (Bill) he said this:

But Job's doesn't just care about winning. He's willing to lose. He has done it often enough. He's just not willing to be lame, and that may, increasingly, be the winning approach.

Always has been in my book.

My last quote (I promise) is this:

What Jobs has accepted&8212;the truth that he's willing to face and others cower from&8212;is that new things don't want to be born. Innovation causes problems, and it's much easier to avoid it.

Worth buying Time for just that article.

Update: More press is giving Steve a good time - an independant panel assembled by USNews voted Jobs among the top 25 "America's Best Leaders". Also honoured in the list were Bill & Melinda Gates, Condoleezza Rice and Oprah!

http://www.usnews.com/usnews/news/articles/051031/31intro.htm

10:46 PM, 20 Oct 2005 by Mark Aufflick Permalink | Comments (0)

Tate Salvation

Yesterday I visited the British Museum. It was an enjoyable time, but it is no Musée du Louvre. I did especially like the reading room.

This morning however, an entirely different story. I spent some time wandering around Tate Modern which thoroughly lived up to its reputation. Anyone with an interest in modern art must visit it at some time. If you are interested in architecture all the better, because the gallery is housed in a majestic old power station - the original architect was Sir Giles Gilbert Scott who also designed the iconic British red telephone box.

Then for a break I popped into the calm, cool & quite stylish Salvation Army Cafe where I paid an astoundingly cheap 80p for a 500ml bottle of vanilla coke (which is hard to come by in London at any price). It also claims an "internet hot spot", but I didn't have my laptop with me to test it out.

11:49 PM, 12 Sep 2005 by Mark Aufflick Permalink | Comments (0)

Foyled again

I just bought a book Theories of International Relations from the famous Foyles book store on Charing Cross Road. The bookstore is great - 4 floors of all the books you could want. I bought the book, decided against buying another Cocoa/Objective-C book, and headed for the Jazz store/Café on level 1, where everything went tragically wrong.

The coffee is undrinkable. I leave a coffee unfinished less often than a University student leaves a free beer unfinished (I only recall doing that once - and it was Swan Gold...), but after only three (3) sips I won't be drinking any more. The spirit of Rutho failed me and I couldn't be bothered complaining.

Furthermore, the free wifi doesn't work either. My Powerbook found the access point fine, but their DHCP server wasn't listening hard enough apparently, and OSX boldly, but in futility, self-assigned it's own 169 address.

07:07 PM, 08 Sep 2005 by Mark Aufflick Permalink | Comments (0)

In London, is a Mac a McIntosh?

Well here I am in the London Apple store. I have a pack of iKlear which is so hard to get in Australia. iKlear, for those of you who have never researched a scratched Powerbook screen, is the Apple sanctioned way of polishing and cleaning your Apple device LCD screen.

It's also tempting to buy a new 15" Powerbook here. With the current exchange rates, they are quite a few hundred dollars cheaper than in Australia. The main reason I definately won't is because of the wacky UK keyboard layout. Not that I'm afraid of different keyboard layouts (every keyboard I use is different - especially my Kinesis-Ergo contour!), but the UK keyboard as implemented on Apple laptops has a horrendously hard to hit return key. The left shift is also smaller than normal. It's not as bad as the insane backspace key on some PC keyboards, but still offputting. I don't like the new-ish silver PB keyboards as it is.

On the plus side, the trackpads on the new PBs are MUCH better than on my original model Tibook.

Nothing too interesting in the genius bar either, so it's time for my next stop - let's see where I can get wireless next!

Update: I decided to go and checkout the training session anyway. The interesting thing is that of the probably 50 people there, I counted exactly two (2) listening to the session. Everyone else was just taking advantage of the comfy seats and free wireless. Maybe they were taking notes on their Powerbooks? Well, some were so blatant as to wear their iPod headphones, and I even spied one Windows laptop! I was grateful for the seat though, because my back was really sore from loads of walking with my Crumpler bag slung over one shoulder.

10:43 PM, 05 Sep 2005 by Mark Aufflick Permalink | Comments (0)

Free wireless & cheap Leica's in London [www.cameracafe.co.uk]

Well here I am at the Camera Café - as recommended by the London Perl Mongers. It's a very cool café/camera shop located on Museum road just near the British Museum.

As you walk in you can browse the coolest of second hand Leica's, large format and regular SLR cameras.

Past them is the very friendly and helpful café staff who put up with me trying to describe how a "flat white" coffee should be made (a foreign name over here - does anyone know if it is specific to Australia?).

The coffee is good and the wireless is free :) They ask for a donation, which is more than fair since you can use it as long as you like and the drinks are well priced.

The perfect place to while away a few days teaching myself Cocoa development. (After I've visited the London Apple Store that is :)

09:48 PM, 05 Sep 2005 by Mark Aufflick Permalink | Comments (0)

London - Hot, Sunny, Humid!

Who woulda thunk it! Kath and I have been in the UK for over a week now, and it has been hot and humid nearly every day! Some night time rain, but 28+ every day. AND the Brits are making us look silly on the cricket field (maybe that has something to do with global warming?)

Ironically, one of my first ever weblog posts (on my long gone first blog - I can't even find it on the wayback machine because I can't quite remember it's url...) was titled London, 6am, cold, raining!

Roaming on wireless over here, I have discovered how terrible IMAP (and OSX Mail.app in particular) is over high latency connections (may mail server is in Sydney).

High latency connections also make you do more than one thing at once (while you're waiting for a conneciton to open etc.) and that makes me realise how much I depend on virtual desktops X-Windows style. OSX-sexiness aside, boring old virtual desktops are my favourite - I get virtual desktop functionality in OSX from Desktop Manager, and I constantly wonder how I lived without it. Fortunately it is now (according to it's website) Tiger compatible, so all my pre-requisites are now met to allow me to upgrade. Not while I'm travelling though - I don't like to live quite that riskily! (is that a word?)

08:13 PM, 05 Sep 2005 by Mark Aufflick Permalink | Comments (0)

Off to the Motherland

Well I'm off to the motherland for a quick trip. Kath is presenting at an education conference and I'm tagging along as a conference-spouse.

I *really* hope we win this test, otherwise I will have to hide my Aussie accent in shame...

04:14 PM, 26 Aug 2005 by Mark Aufflick Permalink | Comments (1)

Social bookmarks as a Podcast [blog.del.icio.us]

For those of you who don't know, del.icio.us is a free bookmarking service where you can keep your bookmarks well organised, and browse through other people's bookmarks. You can do neat stuff like see who else bookmarked the same thing that you did, or see what people are bookmarking with particular tags. (For instance if you're a Ruby programmer, following http://del.icio.us/tag/ruby gives you an insight to whats new & happening on the web with regards to Ruby.

dsl.icio.us is what powers my site's "Recent Links" box that you will see just to the left. You can see every link I have ever bookmarked with del.icio.us at http://del.icio.us/aufflick .

Well the del.icio.us guys have just had a brilliant idea, and added enclosure support to their RSS feeds where the enclosure is driven by the file extension of the bookmarked url (not foolproof, but very simple & intuitive). What does this mean for you? Well, take this example:

http://del.icio.us/rss/tag/system:filetype:mp3+mashups

That's an iTunes compatible Podcast reflecting every mp3 file that any del.icio.us user has bookmarked and tagged with the keyword mashup.

Pretty damn cool if you ask me!

04:18 PM, 22 Aug 2005 by Mark Aufflick Permalink | Comments (1)

Pretty Printing objective C with GNU a2ps

a2ps includes a stylesheet for objective c, but it's not mapped to anything. Plus, the .m extension is mapped to "octave" files (which I guess is some music notation format system...).

To have a2ps recognise and nicely print your Objective C source files, you just need to make the following changes to /usr/share/a2ps/sheets/sheets.map

Search for "octave" and comment out those lines like so:

# octave files
#octave:	/*.octavescript/
#	/*.m/
Then add a line for objective c like so:

# objective C
objc: /*.m/
If you also want your header files to be highlighted with the objective c stylesheet (instead of the default c stylesheet), use the following entry instead:

# objective C
objc: /*.m/
      /*.h/

01:17 PM, 17 Aug 2005 by Mark Aufflick Permalink | Comments (0)

RAID1 Installation of an Apple XServe G5

This is a re-post (an accidental click lost my last post), so it's shorter and less entertaining that it otherwise would have been.

I encouraged a friend to buy an XServe for his business, so it of course became my job to install it. I also told him to buy a second drive so we could set up drive mirroring.

So far so good. Connecting Point in Melbourne were able to ship an XServe G5 to Sydney faster than we could get one in Sydney, and it faithfully arrived a few days later.

All good so far.

I performed the very simple remote installation assistant/wizard - nice and easy. Except it didn't ask me about disk partitioning. Hmm. The supplied OSX Server manual (which is marked as for MacOS X Server 10.3 and above) was fairly useless for setting up a headless XServe G5 with OS 10.4 (supplied). It contained useful suggestions like "connect a monitor to your server" and "consult the XServe manual for instructions on how to boot your XServe from the internal optical drive". The (fairly thick) manual supplied contained very thorough information on booting from an external optical drive, but not the internal one.

I also couldn't install the OS X Server admin tools on my 10.3 Powerbook (which the manual promised that I could) - luckily my friend had 10.4 on his 12" Powerbook. That won't help his office once he goes overseas, but hopefully the iMac that we killed by running a 10.4 upgrade on it will be fixed soon!

Thankfully, AFP548.com have a great article called Headless Xserve G5 installation instructions.

The instructions are for 10.3, but the only difference in 10.4 was some slight name and location changes of the command line tools - otherwise it all worked perfectly.

One thing that did have me freaked for a little while was that the installer command line tool counts up to %1.0000 - when it only got to %0.0500 in 5 minutes I thougt I was in for a long night!

I still have to figure out how to do software updates and shutdowns remotely with an admin tool, since I don't want to ask my friend's staff to ssh in as root to their server...

All in all it was a little disappointing. By far the easiest commercial Unix installation I have ever done, but I was really hoping that it would be a Mac quality experience which it just wasn't.

09:03 AM, 16 Aug 2005 by Mark Aufflick Permalink | Comments (1)

Language Support for Design Patterns in Object Oriented Agile Languages [www.usenix.org]

This technical whitepaper presented to the 5th USENIX Conference on Object Oriented Technologies way back in 1999 has prompted something of a renaissance in my thinking towards OO programming in scripting or "agile" languages such as Perl, Ruby and Tcl.

Gustaf Neumann (also member of the OpenACS team) and Uwe Zdun present some fascinating ideas, which get to the heart of what has been troubling me for some months now. The driving force behind this paper, in a few nutshells, is:

"[Agile] languages provide features like dynamic extensibility and dynamic typing with automatic conversion that make them well suited for rapid application development.

and:

"Large applications typically entail complex program structures. Object-orientation offers the means to solve some of the problems caused by this complexity, but focuses only on entities up to the size of a single class. The object-oriented design community proposes design patterns as a solution for complex interactions that are poorly supported by current object-oriented programming languages.

and yet (generalising for all scripting languages):

Since [agile languages are] designed for glueing components together, [they are] equipped with appropriate functionalities, such as dynamic typing, dynamic extensibility and read/write introspection. Many object-oriented [Agile languages and extensions] do not support well these abilities in their language constructs. They integrate foreign concepts and syntactic elements (mostly adopted from C++). Even less appropriate is the encouraged programming style in structured blocks and the corresponding rigid class concept, which sees classes as write-once, unchangeable templates for their instances. This concept is not compatible with the highly dynamic properties of the underlying scripting language.

Taking Perl, which I do a lot of OO development with, I can agree completely. Perl gives you these amazing flexibilities with which to block together your requirements in double time. When you start to want to develop larger systems you turn to your abstraction of choice - mine is OO (for you it may be functional programming or somethig else).

Once you have signed on to the OO bandwagon, you get design patterns and all sorts of mental tools to help you, but you start to find that your flexible "agile" language of choice starts to become, well, less agile.

Allow me an example. On a large telco project, we wanted to introduce heavy-weight error handling, to allow full error detail to be passed around to logs, web front ends, SNMP traps, tyou name it. One of my (blog-less) colleagues, Ryan, came up with a good system that used source filters to take care of clearing the error stack so you didn't have to remmember to. Source filters are a great example of a flexibility that an Agile language can offer you, but they are a sledge hammer ill-suited to OO code. For example, how about automatically bubbling the error up from one method call to the next. We didn't want to use exceptions, because we wanted to be able to raise non-fatal errors that would not alter the flow of execution. We resorted to requiring the developer to remember to surface any errors that might have been generated by a method call, but this is error prone and nigh-impossible to test for.

What we really wanted in this case, was a way to hook into the inputs and output of every method call. I discovered that apparently people have thought of this before ;) and called it Aspect Computing. This turned out to be devilishly difficult to implement in OO Perl (and frustratingly it is apparently possible in Windows COM development).

It is exactly this filtering example that Uwe and Zdun describes in the whitepaper.

My example may not have made any sense to you - it is perhaps too specific. To make sure I haven't put you off reading the paper, allow me to paste in the paper's conclusion:

The intention of this paper is to show that object-oriented scripting languages and the management of complexity are not contradictory and that it is possible to handle complexity with a different set of advantages and tradeoffs than in ``systems programming languages''. Scripting is based upon several principles of programming, like using dynamic typing, flexible glueing of preexisting components, using component frameworks etc., that can lead towards a higher productivity and software reuse. We have introduced a new language construct, the filter, that offers a powerful means for the management of complex systems in a dynamic and introspective fashion. It would have been substantially more difficult to implement dynamic and introspective filters in a systems programming language. We believe that both scripting and object-orientation offer extremely useful concepts for a certain set of applications and that our approach is a useful and natural way to combine them properly.

But please do youself a favour and go read it yourself: Filters as a Language Support for Design Patterns in Object-Oriented Scripting Languages.

08:32 PM, 14 Aug 2005 by Mark Aufflick Permalink | Comments (0)

Adding C to your Perl is easy!

Looking for optimisation options for a client Perl project, I starting thinking about implementing some of the tight loops in C instead of Perl.

There is a CPAN module Inline that makes it easy to inline other languages inside Perl modules (or scripts). With Inline::C you can inline C code, and it will be wrapped, compiled and linked for you (it's only re-compiled if your source changes).

You can call C procedures from Perl, and Inline::C will translate simple scalars for you (int, char *, etc). Or you can use the perl api C macro's to realtively simply access arrays and hashes etc. You do need to increment and decrement the scalar reference counts your self, but if you've been a heavy Perl programmer for a while you probably are used to keeping reference counts in mind.

To whet your appetite, it goes something like this (example simplified from Inline::C-Cookbook

#!/usr/bin/perl

print "SQRT(9^2 + 5^2) = ", pyth(9, 5), "\n";
    
use Inline C => <<'END_C';

double pyth(int x, int y) {
        return sqrt((x * x) + (y * y));
}

END_C

05:00 PM, 12 Aug 2005 by Mark Aufflick Permalink | Comments (0)

Looking for new Noise Cancelling Headphones

Well I'm preparing for another overseas trip, this time to London - Kath is presenting at a conference and I'm just a passenger!

But my Sony MDR-NC5 noise cancelling headphones are a little the worse for wear. The (non-replaceable) outer foam cover has all but disintegrated which makes them a tad uncomfortable. The noise-cancelling intermittently cuts out in the left channel and I need to jiggle the cable where it comes out of the right ear (where the battery is).

So I'm starting to look around. Obviously the Bose units would be great, but too expensive for me. I found a reasonable collection of reviews on this CNet page. Based on the user feedbacks it sounds like the Panasonic RP-HC100 (review) units are a good option. The reviewer specifically compares them with my Sony model quite favourably. Reading the user reviews for the various headphones, it seems that the CNet reviewer was placing more of a premium on absolute sound quality rather than the noise cancelling and practicality so much. The user reviews (ie. people who actually use the headphones on planes and in noisy environments) seemed to rate the Panasonic higher and the Seinheisser PXC 250 (review) lower (which was another option I considered alongside the PXC 150, which is presumably worse).

Does anyone have any recommendations? I'm sure one or both of the Tram Town boys have an opinion on noise cancelling audio equipment :)

Update: Unfortunately the RP-HC100 is a superceded product.

Update: It seems the updated Sony model (the MDR-NC6) has the same comfort issues as my old NC-5 (see user review on the Apple Store).

Update: The mid-range Sony MDR-NC20 cans are nearly universally loved (wheras most of the models get mixed reviews) - see the Amazon customer reviews.

Helpfully, Digital City here in Sydney has 10% off headphones at the moment, but Australian prices are inexplicably higher than overseas prices. The MDR-NC20s sell in the US for $USD77-119 (which translates to $AUD102-158), but even including the 10% discount we're talking $AUD269. That's 70% ON TOP! Sheesh.

I've emailed some outlets in Changi Airport to see what price they can do on the Sony MDR-NC20, JVC HA-NC100 and Panasonic RP-HC100 (since some online retailers are listing it as still in stock).

06:04 PM, 11 Aug 2005 by Mark Aufflick Permalink | Comments (2)

PDF Plugin's for Safari (plus a World Clock for good measure)

I made the mistake of installing Adobe Acrobat Reader 7 on my mac which also installed a safari Plugin. In principal this is great, because I prefer pdf's to open in browser tabs than in an external app, but on my original model titanium G4 powerbookk, it's a tad slow to say the least.

While Googling how to remove it, I came across an excellent Quartz based PDF plugin for safari from Schubert-IT. I'm not sure if I prefer it yet, but it seems pretty good.

While I'm plugging shareware Mac software, I think I love World Clock Deluxe from MaBaSoft enough to deploy some permanent disk and cpu to it (both scarce on my TiBook) and register it. It's great when you want to iChat/Skype someone overseas and want to be sure of the time.

02:06 PM, 11 Aug 2005 by Mark Aufflick Permalink | Comments (0)

Apple's Mighty Mouse [www.apple.com]

I have a love for input devices: mice, trackballs, touch screens, (remember light pens?), and for the Macontosh.

Apple has finally begun to apply a little bit of innovation to the humble mouse and the result is the (less humble) Apple Mighty Mouse!

In a sign of the influence Apple is regaining, the media lemmings have written a slurry of articles - all about a mouse! The New York Times published a remarkably well thought out article "Apple Offers a Mouse to Counteract the One-Button Blues".

12:49 PM, 03 Aug 2005 by Mark Aufflick Permalink | Comments (0)

Macy's Brand to replace Filenes [www.businessweek.com]

I hope the Filenes automatic discount basement will still be there next time I get to Boston.

11:03 AM, 29 Jul 2005 by Mark Aufflick Permalink | Comments (0)

Lars Rasmussen - Google Maps

I'm on the train on my way back from today's keynote presentation at The 5th International Conference on Web Engineering (ICWE2005) by Lars Rasmussen, one of the key developers with Google Maps. I know at least some readers will be interested in this, so I thought I would share some of my (very unstructured) notes.

Google maps came from a startup acquisition where Lars worked with his brother and two other developers. They were developing a native windows map navigation application and had been looking for funding. There is an interesting story about how they ended up being acquired by Google rather than recieving wad loads of VC funding, but I will wait for Lars' approval before I post that one.

The thing is, Google is a web company so Larry Page (Google co-founder) asked what they could do with mapping on the web. In a way perhaps not dissimilar to "sound by monday", they had to come up with something fast. Split into two teams of two, while one pair investigated a plugin route, Lars and his brother investigated what could be done using DHTML and javascript. That prototype became Google maps as we know it today.

Out of that history, Lars has an interesting viewpoint on the difference between producing a native application versus a rich web application. Here are some bullet points paraphrased from his slides and talk:

  • Consider integration between native app and web app to deliver both convenience and richness
  • The native sexiness not available to web apps will shrink
  • Explosive growth in 1 day is unlikely for downloadable applications
  • Google: The only thing that is required is that something is useful to users
  • If you can attract large numbers of users, there will always be a way to monetise it

  • End user is royalty
  • Go beyond the browser Lowest common denominator - the functionality and implementation doesn't have to be the same for all browsers
  • eg: overlay direction lines: in firefox is a generated at the backend as a transparent png; in IE it is done with vml
  • Do what it takes! Harness the power of optimism. If you're not crashing the browser, you're not pushing it hard enough.
  • Launch early & often; harness the power of your users to get attention and market feedback - Google maps got around 5,000 emails a day when it launched
  • Web applications allow rapid fault resolution
  • The pain of cross platform/browser web development is still far less than the pain of cross platform native application development
  • Web deployment allows rapid deployment of bug fixes which in turn allows earlier (ie. riskier) releases

Lars then gave us a short insight into some of the implementation details including the map tiling and hidden iframe based navigation.

  • A problem is that you are doing things beyond the design intentions of the browser eg. forward/back/print buttons
  • When you are implementing application sexiness, you need to be careful not to break the simplicity of the browsing experience.
  • Harness/Link the forward and back buttons to what the user would expect - try it in IE/google maps. Removes the need for popups

  • Google implementation: content navigation happens in an iframe - the iframe browsing history are recorded within the IE history, as does the content of edit fields (not true in all browsers)
  • attached an event handler to the iframe, when it changes, put that content into the main page, hide the iframe (I assume the link still needs to target the iframe), also need handler to copy the input field from the copy back into the iframe
  • when copying the content, the urls are rewritten to target the iframe

Lars also spoke about the rise of google map hacks, the problems that lead to with their content providers and, as we know, the happy ending that is the google map API. There are some interesting outcomes of public access to your code (which is unavoidable with a jaascript based product).

  • www.busmonster.com
  • bloggers will describe your design more accurately than your design document
  • you WILL be reverse engineered - design your models and publish an API to avoid the pain & encoourage a community to build around you [Mark's thought, not from Lars' slides]
  • rss feed to code.google.com featured project link
  • after 3 weeks of the api being published, there are 2,500 developers in the discussion group

Future Gazing

Short term

  • renewed interest in AJAX

Long term

  • increased access to host machine resources
  • better development tools
  • secure 'greasemonkey' like extensions (loaded javascript has the same access as the viewed page eg. cookies) - the browser needs a richer security model
  • need more flexibility to control the behaviour of the next/back/print/save buttons etc.
  • But: need to maintain the simplicity of 'surfing' experience

moon.google.com !!

  • Choose a development model that suits your application

  • demo's have a much bigger impact within google that requirements document
  • the process becomes more formal as the product becomes more mature (& therefore has more to protect)

  • Google mission statement: organising information.

Sorry for the unstructured nature of these notes - they are a copy/paste from my outliner - I will try to improve them soon!.

Update: CNet have posted an article on Lars' keynote ( Google mapper: Take browsers to the limit). It reads nicer, just like a real journalist wrote it (as opposed to me!). It always astounds me though, just how innacurate an image you can get of someone's message when it is wrapped with hyperbole like "As such, Rasmussen remains disappointed with Google Earth" (which he is not) and inserted words like "Google is looking for Web mapping experts to beef up its Sydney office" (all he said during the keynote is that they are hiring, and actually they are looking for machine learning and data mining experts).

07:15 AM, 29 Jul 2005 by Mark Aufflick Permalink | Comments (0)

Want to buy a Honda S2000 ? [drive.com.au]

As per my ad in drive.com.au, I am parting ways with my beloved car (sob)! I'm a sensible married man now, with no need for a sports car to heighten my attractiveness to the opposite gender ;)

Seriously though, it is a top car - if I get time I will link to some reviews of it - but this side of the Porsche Boxter S, it's only competitor is the Nissan Z convertable (which is nice too!)

It has a Totally rad (sorry for the 80s-ism there!) custom HKS Exhaust system and air filter. Not only does it sound really sweet (gets more positive comments than my friends Porches) but other S2000 drivers have commented that you can feel more pull when you accelerate :)

Price: $36,500Reg Exp: Nov 2005
Trans: ManualReg No: AKS82M
Year: 1999 Body: 2D CONVERTIBLE
Engine Size: 2l Fuel Type: Premium Unleaded
Km's: 95494 Colour: Silver
Location: Sydney

If you're interested, call me on (Australia) 0438 700 647

02:52 PM, 01 Jul 2005 by Mark Aufflick Permalink | Comments (0)

Dan Bricklin on the Gillmor Gang [www.itconversations.com]

It's not often I listen a whole Gillmor gang podcast through, but I always enjoy lietening to Dan Bricklin, so I downloaded this one (available via the iTunes podcast directory as well as itconversations.com).

As I remember, 1 hour is about 20 minutes too long and the conversation gets to be a bit rambling in the middle. To the point that I had to re-listen to the first 30 minutes to remember why I liked it so much!

Bricklin really adds some great conversation about universality of storage, mobility and processing power and provides some insight into his opinion that innovation in IT is pumping right now (as compared to the "Does IT Matter" question which, from memory, was popularised at around the same time (this podcast was released on February 4th). I was particularly interested to hear about some major innovators of his era who are getting back into IT.

Update: I hadn't realised how long it was since I listened to the Gillmor gang - it seems that Feb 4 was the last Gillmor Gang published/broadcast. I think the last time I listened in must have been on my honeymoon in Paris!

Update: The Gillmor gang is still making podcasts - just not on IT Conversations. Check out the podcast directory in iTunes.

01:18 PM, 01 Jul 2005 by Mark Aufflick Permalink | Comments (0)

Michelin holds their ground [www.timesonline.co.uk]

No comment from me this time, but I have to agree with Pierre Dupasquier, Michelin’s sporting director, who said the following:

It is nice of the FIA to have good ideas. It would have been interesting if they had that many ideas before the race in Indianapolis.

09:12 AM, 01 Jul 2005 by Mark Aufflick Permalink | Comments (0)

iTunes 4.9 Podcast suport [www.apple.com]

I was looking forward to this, Apple have released the iTunes podcast integration that Steve Jobs demo'd in his WWDC keynote.

Finally I can do away with my cobbled together perl/Applescript solution because itunes does exactly what I want.

Being able to browse Apple's podcast directory is nice - all the podcasts I listen to are there, although the iTunes store interface is way too busy for my liking.

And since Podcasts are treated quite seperately t music tracks, I can set the preference to auto-sync them even though I have my music set to manual sync.

On the iPod (with the associated iPod software update), Podcasts appear as a sepatae entry under the Music menu. Each podcast feed gets a menu item, and behind that the actual sound files themselves are arranged. In iTunes, this is replicated by a triangle pop-down type list, keeping all your podcasts nicely organised.

I used to do this using Genre, Grouping and smart playlists allocated by my old perl/Applescript combo but this is much cleaner.

03:22 PM, 29 Jun 2005 by Mark Aufflick Permalink | Comments (0)

Does Pi necessarily contain any sequence of numbers?

PIAt work today, concerned about whether our new product release will actually work, we discussed the above question (totally unrelated to our product).

More formally, is there any property of Pi (assuming an infinite level of precision) that means it must contain any (possibly infinite) sequence of digits. For example, does it (by it's nature) contain the sequence 123.

Pi in fact DOES contain the sequence 123 (see 10000 Digits of Pi) but that's not the point! Can we prove that a non-random number must contain it.

After much arguing about the interaction between probability theory and infinity, trancendental numbers entropy and other related concepts, we seem to have agreed (between a Maths major, a Computer Science major and an Archaeoloy major ;) that it can't be concluded from the obvious properties of Pi, but we didn't rule out that a rigerous attack of the various Pi algorithms might in fact be able to prove otherwise.

Google and Wikipedia haven't shed any further light on the subject - can anyone comment further? (Note to self: get Dad to read this blog entry).

Clarification: We are of course dealing with Pi in decimal form. And yes, it is a stupid question that is of interest purely because of our human interest in patterns and order!

Image courtesy of xkcd A webcomic of romance, sarcasm, math, and language.

03:37 PM, 28 Jun 2005 by Mark Aufflick Permalink | Comments (12)

Opensource Business & Customer Experience

I listened to two must-listen podcasts this morning.

First up is a keynote presentation by Larry Augustine at the Opensource Business conference titled "The next wave of Opensource: Applications".

It's an engaging keynote looking at the opensource implications for delivering major business apps (like CRM) to middle tier business.

Next is a discussion with Jeffrey Rayport - Harvard Business School's first e-commerce professor - talking about focussing on customer experience, how it impacts profitability and how technology might be involved in that.

The slightly amusing thing (for Australian viewers) is listening to Rayport talking to "Moira" about TV shopping :) It's a great discussion with big numbers and radical ideas, that are already happening.

Both podcasts come from IT Conversations.com (homepage currently sporting a post-affro Malcom Gladwell - I guess he got sick of it catching on fire).

08:45 AM, 28 Jun 2005 by Mark Aufflick Permalink | Comments (0)

Mmm Kinesis

I had a bit of time on my hands, and I felt like doing a little typing tutor practise (heh - no pun was intended, but i'll take it).

It's the first time i've done that since I got my Kinesis Ergo Essential and wow what a difference. The biggest thing I have noticed is that I never have any problems because my fingers are not homed properly thanks to the shape.

Big thanks to Lars for putting me onto Kinesis contour keyboards. Funny thing is, he is now getting into Dvorak in a big way. But after shelling out the exorbitant import duty I was slugged with to have this keyboard shipped over here, I won't be switching any time soon ;)

The typing tutor of choice is TypingMaster - the Mac version works anywhere you have a Java runtime (including linux), and it's actually quite good.

09:13 PM, 27 Jun 2005 by Mark Aufflick Permalink | Comments (0)

Batman Begins - And it's actually damn good! [batmanbegins.com]

Mind you, being in Greater Union Gold Class may have helped ;)

The only lame part was the car chase - it was way too slow to be a believable Batmobile car chase.

Gotham City was excellent - dark, dirty and very human. The characters were great - my favourite was Liam Neeson, but I can't tell you much about his character. Christian Bale does a fantastic job as Batman, his character has a perfect mix of dark and light. Katie Holms was easily the best female actress in the film (possibly with the exception of the two "European" chicks Bruce Wayne takes to a restaurant one night ;)

I hope we see more from Christopher Nolan (also the director of Memento) and Christian Bale.

09:15 AM, 23 Jun 2005 by Mark Aufflick Permalink | Comments (1)

Cisco AON - like database constraints for your network :)

The new Cisco technology dubbed AON or "Application Oriented Networking" sounds quite interesting. In a nutshell, it seems to be router based in-packet data analysis of xml (and possibly other) data.

A common example given is for a bank to do some validation on the customer and account ids at the router level for fraud prevention. Not that you couldn't do that know by writing code to do that on you firewall. In fact, firewall based intrusion detection has been doing in-packet protocl-aware data analysis for years.

It does seem like a useful technology however, to be able to specify in some sort of config syntax, how data should be structured, what should reference what, and have those rules executed very fast on a standard router platform.

Kind of like database constraints for your network. And everyone knows that I like database constraints!

Useful articles:

Cisco AON, "new" internet, fraud prevention, S&M, and more... [Computerworld]


Cisco's AON moves closer to apps [Australian IT]

01:52 PM, 22 Jun 2005 by Mark Aufflick Permalink | Comments (0)

Sawfish X11 Desktop Pager now hosted on SourceForge (sawfish.wm.ext.pager) [sawfish-pager.sourceforge.net]

Here is the mail I just sent to the sawfish mailing list:


Since the demise of it's previous hosting, I have arranged for the source of Daniel Pfeiffer's excellent sawfish pager (sawfish.wm.ext.pager) to be hosted as a SourceForge project.

I have also set up a website and wiki for the project - please feel free to add content. Also, if anyone uses the pager and has patches, I will give basically anyone who asks cvs commit access.

For those interested, the wiki is dokuwiki and has anti-spam features. Write access is currently public, but if necessary I can change that to require registration (which in turn requires a functioning email address).

The website is:

http://sawfish-pager.sourceforge.net/

You will find cvs and download information there.

Thanks again to Daniel for his provision of all the source code so promptly.

09:32 AM, 22 Jun 2005 by Mark Aufflick Permalink | Comments (0)

The F1 story unfolds

The facts are starting to become clear - and while Michelin are still clearly answerable for a fundamental mistake, Max Mosely and the FIA are getting more heat.

sportsillustrated.com, in their article F1 drivers were desperate to race quote an interview with Frank Williams:

Indianapolis promoter Tony George and Formula One commercial supremo Bernie Ecclestone had both agreed to the chicane in a meeting with teams on Saturday night but FIA president Max Mosley had vetoed it.

"Bernie called (FIA race director) Charlie (Whiting) on Saturday night and said get on with it," said Williams, who pointed out several precedents including the 1994 Belgian Grand Prix at Spa-Francorchamps.

He said it was to be expected that the FIA would blame the teams, with all seven summoned to a World Motor Sport Council meeting on June 29 for acts prejudicial to the interest of the competition.

However, he pointed out that the teams did not make the tyres and said Michelin had informed them late in the day of the problems.

That sounds like dynamite to me - and Frank Williams isn't known for lying or mis-quoting.

Bernie must be steaming. The Guardian says Ecclestone could face £7.4m lawsuit. Normally it would be Bernie and the track owner exposed financially, but the FIA is about to feel it too with at least one lawsuit so far against the FIA (reported by indystar.com)

01:46 PM, 21 Jun 2005 by Mark Aufflick Permalink | Comments (6)

The chicane was not the answer

I agree with Semi's comment that the chicane was not the answer - Barichello said exactly the same thing (f1racing.net) as Charlie Whiting, and Whiting is one of the few respectable people in F1 management.

Barichello also suggested the most sensible option within the rules, that the teams could run through the pits every couple of laps to avoid turn 13, although a busier pitlane has it's own safety issues.

My mate Nick and I came up with probably half a dozen ways to solve the problem this morning. My favourite is to amend the rules to allow tyre change at any pitstop, each time incurring a 10 or 20 second penalty. You would never do it unless you really had to - but if all Michelin teams pitted 5 times for tyres (Michelin said it would be safe if they changed tyres every 10 laps) then they would have been racing each other for the minor points. This would also have legitimised the points haul by the Bridgestone teams as a reward for being well prepared.

Of course the problem is not that no options were given the go-ahead : no options were seriously entertained by Max or Bernie. In the words of Neil Crompton, "The answer is no - what's the question?". And that is the real problem. The Indianapolis owners were not asked about the feasability of the chicane, the FIA did not suggest any ideas to solve the problem, even their pseudo-suggestion of "drive slower" had no meat to it about how accidents might be avoided behind heavily breaking Michelin shod cars...

Now the FIA is blaming the teams and looking for a rule to penalise them under (Michelin teams summoned by FIA [f1.com]), Race boycotts are a realistic option (grandprix.com), and I don't want to have to wait for 2008 to see another F1 race!

09:33 AM, 21 Jun 2005 by Mark Aufflick Permalink | Comments (0)

Well How wrong I was [f1.racing-live.com]

Formula 1 is never too far from some kind of controversy - not unlike other union of mostly european groups - but today is a new level.

Maybe Paul Stoddart is in fact the only reasonable one there after all. So what does this mean?

Do we need more tyre manufacturers? Goes against all the const saving measures by the FIA.

One tyre manufacturer? Probably the most likely outcome - the tyre manufacturer would then be free to focus on safety and driveability.

Does this make the GPWC more likely? Well, it will certainly fire up the GPWC teams (all of whom a are michelin shod).

Not much to say really - I don't understand the some of the FIA's ways, I guess this is just one of them.

Not surprisingly the official f1 website is not responding.

04:02 AM, 20 Jun 2005 by Mark Aufflick Permalink | Comments (1)

They said they would be fast at Indianapolis [www.formula1.com]

And they were right - Toyota in F1 pole position!!

This is going to be interesting.

01:48 PM, 19 Jun 2005 by Mark Aufflick Permalink | Comments (0)

There's a chip in there, and a bear as well... [www.apple.com]

... there are people with programs, and stories to tell ...

Well blow me down with a heatsink fan - the rumours were true!

Apple Mac's with Intel processors. Unfortunately it means I will probably never get my G5 laptop, but I'm glad I haven't bought a new G4!

Check out Steve Job's key note speech. The highlight for me was when Paul Otellini from Intel played the "Toasted Bunnies" Apple ad.

Steve also demo's an Intel powered Mac - in true Steve style (I won't give it away in case you want to watch it) - and announced that intel-based development boxes (with OS) were available immediately.

Tum, ta tum ta tum :)

The OS includes on the fly binary re-writing for legacy PowerPC code (not dissimilar to the 68k/PPC migration) in a technology called "Rosetta". Rosetta won't run AltiVec/G4/G5 optimised code which is not really a big deal because if your code was optimised specially for speed, then you are not going to want it to run on an emulated cpu anyway. What IS sad is that it won't support Classic applications :( Not only do i still own a number of little-used classic applications that I have not needed to upgrade, I draw a perverse pleasure from running the likes of Font/DA mover on my G4 tibook :)

Remarkably though, you can debug a running emulated application using gdb - almost like normal. Now that's reality distortion stuff if ever I heard it.

I wonder how long it will take Vmware to support MacOS X/intel (Macos Xi ?) as a supported guest operating system. Conversly, Aqua implementations of WINE / CrossoverOffice for MacOS Xi will be nice as well.

It will also be interesting to see what boot loader/bios arrangement Apple goes for - It's not going to be Open Firmware, and it's probably safe to bet that it won't be the legacy PC Bios - at least I hope not!

Also unanswered is the 64 bit question. The Universal Binary Programming Guidelines only refer to IA32 in various places - never IA64. Hopefully that won't be a backwards step with the first batch of hardware next year. Ironically, I was just this afternnon watching a quicktime movie of Apple's 1984 shareholders meeting - including a radiant Steve Jobs effusing over the new Mac with it's "powerful 32 bit microprocessor"!

Update: Apple Press Release : Apple to Use Intel Microprocessors Beginning in 2006

The comments about the Intel compiler are interesting - I wonder if it will be offered as an alternative to gcc in a forthcoming Xcode release?

Update: Lack of Classic support discussed at eweek.com

Update: Here is a a very interestingWall Street Journal article from 2 weeks ago with very timely question/answers like:

WSJ: Why are Intel's demo products always cooler than the actual products its customers make?
Otellini [intel]:Part of the problem is today the desktop [computer] business is a zero margin business for many of our customers [ But not for Apple :) -- Mark]
WSJ: Pressed about security by Mr. Mossberg, Mr. Otellini had a startling confession: He spends an hour a weekend removing spyware from his daughter's computer. And when further pressed about whether a mainstream computer user in search of immediate safety from security woes ought to buy Apple Computer Inc.'s Macintosh instead of a Wintel PC

Not only would Otellini have been very happy to be able to leave that interview with a smile on the inside, it gives an insight into why intel views Apple as such a desiarble customer - Apple actually builds cool things with chips. And that's something no PC vendor has done in the last 10 years.

Update: I couldn't for the life of me remember where I had heard of a software technology code named Rosetta before - Russell and I presumed that Apple had bought some other binary rewriting technology off someone else, or perhaps it was in fact the same technology as used in the 68k/PPC migration (the caching sounds very similar).

Semi from Tram Town reminded me that Rosetta was the code name for the second gen