header

Torsten Curdt’s weblog

It’s christmas time…

148794150 20b351c6dd t Its christmas time...Back in Boston I got the message that my new toy arrived. I could not wait to get back and last Friday was the day… I made the switch and picked up my new 17″ Powerbook! Unpacking this huge box was a bit like Christmas. I felt like a little kid experiencing this whole new mac world. New applications, new ways of driving the gui. So basically I spent the last few days setting up my machine. Harassing people by asking for application reviews, their top 10 tools and how some things are working on OSX.

So here is a little summary of my first week…

Hardware: The display is bright. I am wondering how I could live with such a dark display as my Acer has. The keyboard feels just great to type. …although it was a pain to find all the special characters. The tricky ones were:

option-shift-7 = \r
option-7 = |
option-n = ~
option-shift-3 = screenshot
option-shift-4 = partial screenshot

…on a german keyboard. And it’s also kind of weird that you have to press fn in order to get the usual F1-F12 keys. But I think the hardest thing is to get get used to is the missing delete key – there is only backspace. The keyboard-lit is great. As for the superdrive ..it’s a bit loud – but at least it’s now multi-norm. (Wondering if there is a way to make it region free). The keypad is good and I like the new two-finger mode for scrolling. Although I disabled it for the horizontal axis. Accidently hitting the back and forth buttons in a browser was just too annoying. The speakers are ok, the display hinge could be a more stiff IMO ….but the coolest thing that just rocks is the suspend!

Connectivity: When it comes down to networking everything worked so flawlessly as it ever could be. I haven’t tried to talk to windows shares yet though. Also I have no clue how to create windows shares or something like that – if there is a mac way of sharing files? Something Rendevouz based maybe? I would love to have a cross-platform zeroconf client that enables you to exchange files and clipboards just like that. Haven’t found such a tool yet. Worst case – write your own…
Connecting hardware was *almost* working out of the box. My webcam did not work …well, in the long run it will be an iSight anyway. The big problem was my big external usb drive. It had a single 120GB vfat partition which holds all my mp3s. As the most common denominator I used the crappy old vfat filesystem. Unfortunately OSX failed on mounting it automatically although I was able to mount it via command line. (strange!) Since I thought about a safer alternative anyway I copied all my data across and re-formatted the disc with hfs+. Hope linux will be able to mount it. I heart for windows MacDrive does the trick.

Software: It’s a whole new world! It takes a while to find the right tools.
This is what I came up so far…

This came with the operating system…

omnigraffle – awesome for presentation diagramms
ichat – to bad you cannot turn off the html messages which makes it impossible to use with an ICQ account
itunes – it’s great but still so much room for improvements
iphoto – somehow I hate the apple tendency of weird directory structures …same goes for itunes
imovie – maybe once I have a video camera
idvd – same here
isync – too bad my frickin nokia 6230 is not supported
ical – does not make much sense without isync …for me
quicktime – this has always been like a virus in your system. hate it. …and buying pro only for fullscreen mode?
garageband – seems to be pretty cool
safari – better go firefox
preview – this one sucks so badly …how do traverse a directory? I expected some sort of next?!
addressbook – too bad thunderbird is not using it
mail – well integrated …but does not scale
dvd player – well..

…but I have no clue if those are of any use

omnioutliner
sherlock
cinema tools
livetype
soundtrack

These are free…

growl – should show you little message …don’t use it yet
fink – debian, baby!
finkcommander
firefox – what other browser could it be
firestarter fx – burn application …is meant to support overburning
eclipse – ide
idea – one of the best ides out there …well, free for open source development
subethaedit – editing the same document with multiple people. cool!
thunderbird – I wish it would integrate with the addressbook
adium – multi protocol IM
colloquy – irc client
skype – if it only had a server side contact list it would be my IM of choice
ieatbrainz – find id3 tags by their fingerprint. unfortunately does not scale
mplayer – the well know video player with a nice gui
vlc – never heart of that one before. also a very nice video player
adobe reader – a bit more sophisticated than preview
cyberduck – ftp client
fugu – scp/sftp client
quicksilver – indexer ala spotlight (I use the spotlight theme)
slimbatterymonitor – a better battery monitor
cisco vpnclient – connecting to our vpn
divx – the codec for movies
maven – build projects easily
subversion-client – not the one from fink. this one comes with native bindings for subclipse
xcode – apples ide
stuffit – was asked to upgrade to a later version. some stuffit sucks
rcdefaultapp – define default mappings for mime types etc
doxygen – generate documentation

Bought those…

keynote – why use powerpoint?
pages – why use word?

And these are maybe worth buying…

toast – seems to be *the* burn application. but does not support overburning?! wtf?
mp3rage – most of those mp3 organizers are crap compared to the ones in the window world. this one seems to do the job
adobe photoshop – the classic one
adobe illustrator
virtualpc – emulate a windows machine (wondering if it’s possible to also run linux in there)
final cut pro – maybe once I got a video camera

What I am still searching for…

ripping dvds to divx
rendevouz file and clipboard transfer (no not ichat)

I bet there are some more…

Any other recommendations?

Serialize your flow

Just recently I’ve did quite a big change to the javaflow API. It should now be much easier to use plus it also separates the execution context from the continuation itself.

A good example how to use it is the class that hooks javaflow into cocoon.

The context of course depends on your application. For cocoon it includes access to the ServiceManager and other cocoon specific classes or components.

The MethodLookup is being used for a lazy lookup of the method that is our entry point into the java based flow.

Why separating everything? …because that makes a continuation resumable in a different context. If you now make sure that all objects on the stack are going to be serializable you can write a continuation to disk and even resume it on a different machine by providing a new context.


  final CocoonContinuationContext context =
         createContinuationContext(params, redirector);

  final Continuation firstContinuation =
         Continuation.startWith(methodName, context);
  ...

  final Continuation nextContinuation =
         Continuation.continueWith(firstContinuation, context);


    private CocoonContinuationContext createContinuationContext(final List params, final Redirector redirector) {
        final CocoonContinuationContext context = new CocoonContinuationContext();

        context.setAvalonContext(avalonContext);
        context.setLogger(getLogger());
        context.setServiceManager(manager);
        context.setRedirector(redirector);
        context.setMethodLookup(lookup);
        ...
        context.setParameters(parameters);

        return context;
    }


    final Map methods = ReflectionUtils.discoverMethods(MyFlow.class);
    ...
    MethodLookup lookup = new MethodLookup() {
        public Method getMethod(final String methodName) {
            final Method method = (Method) methods.get(methodName);
            return method;
        }
    };

Powerbook updates!

148794045 44c9f7a7a5 t Powerbook updates!
…only a revamped version but still! The new Powerbooks are available! NOW!

Update: …and I finally ordered one :-D
Next Update: …more than two weeks later I am still waiting for it to arrive *snief*

Wooha! Now you are suspended!

I fear people that are used to Powerbooks or using the Windows installation that came with their laptop probably cannot understand my excitement but… FINALLY my software suspend is working on my laptop! Suspend and hybernation was always a pain under linux. APM vs ACPI, bad ACPI implementations …bla bla bla. Last night I stumbled across this little howto in the unbuntu wiki. And it almost worked right out of the box! Maybe because I am running Hoary (which is ubuntu unstable basically) I had to tweak the scripts a little bit …but at least the suspend to RAM is working like charm. I still have to try the hybernation. Great stuff! Ubuntu rocks!

For those who also get a false power event after the resume: I’ve added a little workaround to the scripts. If someone needs this I can put it online somewhere.

XOM

I’ve just came across the XOM API. From a first glance I really like it… Maybe a good alternative to W3C DOM, JDOM or dom4j.