75€ de publicité offerte sur Google AdWord

Meme chose qu’il y a 9 mois, j’ai reçu un bon d’achat de 75€ de pub pour AdWords.

Ayant déjà bénéficié d’une offre similaire, je ne peux pas l’utiliser. Je transmet donc le code donnant droit à cette réduction à la première personne qui m’en fait la demande. Déposez simplement un commentaire sous cet article sans oublier d’indiquer votre mail.

A noter qu’après le 15 Novembre 2010, la valeur de ce coupon tombe à 50€, et reste valable jusqu’au 31 Décembre 2010.

2 x iFixit $5 voucher

I’ve just got 2 coupons from iFixit. They’ll give you $5 off on your next purchase. As I plan to get rid off of all my Apple hardware very soon, I don’t need them anymore.

If you want one, please leave a comment below and don’t forget to fill the appropriate field with your email. I’ll then be able to contact you and send you the coupon’s code.

Export Quartz Composer to video

Quartz Composer is a really nice piece of software for visualists. It allows you to create animated and/or interactive compositions mixing sounds, images, effects, user inputs and any other kind of data. In fact, Quartz Composer was the main reason I bought a MacBook Pro 18 months ago.

The first composition I created was this simple kaleidoscopic effect with shifting colors:

The source composition is available under a Creative Commons 3.0 BY-SA license. And here is the screenshot of the main patch:

And this is how I designed the color wheel sub-patch:

If creating a composition is really simple and straightforward, exporting the result to a video file is another story…

I first tried the Export to Movie v1.3b plugin. But it didn’t worked on my Snow Leopard, throwing me this exception every time:

0x8272938b: -[QCContext renderPatch:time:arguments:]
0x8272906d: -[QCGraphicsContext renderPatch:time:arguments:]
0x827281bb: -[QCOpenGLContext renderPatch:time:arguments:]
0x0000d873
0x8276495b: -[QCView render:arguments:]
0x82763f68: -[QCView startRendering:]
0x0000cd80
0x8548584e: _nsnote_callback
0x81ccda90: __CFXNotificationPost
0x81cba008: _CFXNotificationPostNotification
0x8547c7b8: -[NSNotificationCenter postNotificationName:object:userInfo:]
0x86da2f5f: -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:]
0x86da2bbe: -[NSWindow orderWindow:relativeTo:]
0x86da0544: -[NSWindow makeKeyAndOrderFront:]
0x86fa55c1: -[NSWindowController showWindow:]
0x0000ca7f
0x873461d3: -[NSToolbarButton sendAction:to:]
0x86fb73c1: -[NSToolbarItemViewer mouseDown:]
0x86ea4763: -[NSWindow sendEvent:]
0x86dd9ee2: -[NSApplication sendEvent:]
0x0000a994
0x86d70922: -[NSApplication run]
0x00001d2b

So I tried the old trick of importing compositions in iMovie. If this was possible in the past with iMovie ’06, Apple removed this feature in iMovie ’09.

My last chance was another plugin: Movie Exporter (v0.0.20091011). As the other one, you have to drop your original composition in a Render in Image macro block and export the resulting stream to the Movie Exporter block:

It did the trick but it looked like I messed things up: my goal was to export a 720p clip. But compression artifacts are so present in the final video that I think the exported images are blow-ups of a rendering executed at a much lower resolution. The rendering in the preview panel support this hypothesis:

Another big problem with this video export lies in the framerate: it cannot be set. For this composition the plugin exported a clip at 11fps. Which is far from fluid. I guess it’s because of the plugin grabbing images in real-time instead of taking the necessary time to render them one by one.

At the end, because of the reduced number of options available to export QC’s compositions to movies, and because of the proprietary nature of the platform, I don’t want to invest more time and energy in Quartz Composer.

I did some more experiments with it last year. I plan to share them with you and published them in the coming weeks. Then I’ll be free to sell my Apple machine and switch back to a full Open-Source stack (I’m thinking of Processing, PureData and their derivates here).

Mercurial commands

  • Checkout a distant repository:
    hg clone http://bitbucket.org/mirror/django
    
  • Commit all changes locally:
    hg commit -m "Here is my commit fixing bugs."
    
  • Push local commits to the remote repository:
    hg push
    
  • Apply latest changes of the remote repository to our local working copy:
    hg pull
    
  • Align the current repository to a specific revision:
    hg update -r 502
    
  • Restore all changes and files to the state they are in the distant repository:
    hg update -C
    
  • My minimal ~/.hgrc config file:
    [ui]
    username = Kevin Deldycke <kevin@deldycke.com>
    verbose = True
    
    [auth]
    # BitBucket creds
    bb.prefix = bitbucket.org
    bb.username = kdeldycke
    bb.password = XXXXXXXXXXX
    bb.schemes = https
    
  • Display the last 5 commits:
    hg log --limit 5
    
  • Display the local changes since last commit:
    hg diff
    
  • Undo the last local commit:
    hg rollback
    
  • Create a tag on a particular revision:
    hg tag -r 432 component-2.6.1
    
  • Create a bundle file containing all changes committed locally:
    hg bundle fix-bug.bundle