Category Archives: General

Stuffs!

Being Brice Le Blevennec

For those of you who toughs that Spike Jonze’ Being John Malkovitch was a fiction, I must now confess that this cult movie is a ripoff of my biography. Many years ago a belgian puppeteer took control of me. This is why often during brainstorm at Emakina I seems to behave like if I was completely insane, pretending to invent mad concepts, sometimes even pitching them to very conservative customers at the risks of loosing all my hard earned credibility.

The truth is that there is somebody in my head, seeing reality through my eyes, manipulating my body, makes me behave strangely, … this is not really me. I’m actually a very boring person, with little imagination. My favorite past time is Solitaire on Windows 95 and I hate burgers. But nobody believe me when I tell the truth!

Sometime, he leave my mind, usually during football competitions or Formula 1 races. During one of those relief periods, I could do some research, and look what I found now…

My Puppet Master

This puppeteer is actually an digital creative, frustrated by miserable studies, who use me to seek revenge by achieving a successful career as digital creative. According to my sources, he found a portal to my mind between floor 2 and 3 in the Belgacom Proximus building around 2001. During a few years he just spied my boring life, trying to emulate me, but since 2005 he took control of me and use his talent to fool the world !

I know it’s hard to believe this story, but after an gigantic mistake, probably due to his sizable ego, I could finally locate his secret blog… On which I found this picture as an indisputable proof. I hope it’s convincing enough for the doctors to let me go now. I want to go try Solitaire on Windows Vista… and eat a salad.

White Apple Logo of death ?

My iPhone 3G is dead again so I can’t call anybody. Like thousands of other victims, I have the “Apple Logo of death” decease. I’m stuck at home doing a restore on my main iMac which holds my main iTunes Library, and my iPhone backup, for at least 3 hours. A great opportunity to revenge myself by writing this little blog post about my experience with iPhone.

Tired : blue screen of death
Wired : white apple logo of death

By reading my recent blog posts, one shouldn’t ignore that I am a long time Apple fan. Since about nine months, I had a first generation iPhone. A great toy first, a great tool since, but a great source of pains as well.

I remember being invited by Microsoft at Mix’07 in Las Vegas, receiving as an european guest a Samsung Blackjack running Windows Mobile 5.0 … but everybody at the show kept buzzing about the forthcoming iPhone. I remember getting my first iPhone, a 1.0 firmware one, from a friend travelling back from the US. I remember unlocking “the hard SSH way” my first iPhone on the 20th september 2007, not sleeping for a whole night before leaving for Paris for an important meeting, with a GroupeReflect customer, a daily newspaper. I remember very well selling them an iPhone web app this day.

I remember the joy of demonstrating my new toy to all my friends, like the child I’m doomed to stay forever. I remember the jealousy in the eyes of strangers in public gathering. I remember the silent complicity between iPhone users in business meeting. I remember the countless weekends wasted to upgrade my precious from firmware to baseband to booloader versions, all this to just make it work. I remember walking every day from the Venitian hotel to the Las Vegas Apple Store, to find a 16Gb iphone. I remember coming back to Belgium with empty hands. I remember buying a 16Gb iPhone a month later in an Apple store in Boston suburbs after an hour of taxi drive, after checking Boston central area Apple Store. I remember the taxi bill too.

I remember the easy Ziphone unlock, then the dev team version… I remember the dozen friends to which I did the huge mistake to sell an iPhone that I brought back from the US. I remember the countless nights fixing all of them, upgrading them, explaining to those normal human (= non geek) that they couldn’t click the update button in iTunes. I remember the chat sessions with my belgian twenty hacker network, detailing upgrade procedures for each unlocking method, swapping cool apps repository URL for installer app, … I also remember my 1500 euros bills in data roaming for a 3 day business meeting in the US. Since then I also remember to switch off data roaming 😉

So you can imagine how happy I was on the 11th of July, when I could finally spend 625 euros for the privilege of owning an iPhone, legally, in Belgium, and even being allowed to use it with my mobile operator of choice, Proximus*.

Activation was a breeze, I did a quick Sync over USB as the next day I left for the North Sea Jazz Festival with my shiny precious. I used it in Rotterdam with the Facebook and Twitellator applications to upload pictures and status updates using a 3G connection. It worked great, I was happy. Life was beautiful, especially with a Jazz soundtrack.

After 3 days I came back home and started setting up MobileMe. To be honest, I had to endure a real debacle. I was one of those who couldn’t wait a few hours before having my address book synced over-the-air. I restarted, restored, switched off MobileMe syncing, restored, … I spent days trying to make it work before understanding that I just had to wait more time for my 5000 records address book to sync. It finally worked but I was for days without an working address book, answering unknown people over the phone.

After this first victory on technology, I became bolder and decided to setup Microsoft Exchange ActiveSync. First try, after a setup process without any errors, everything seemed to be OK. But once back to the address book I discovered that I had lost all my contacts, and all my agendas. Because of MobileMe it was impossible to sync over USB with my iMac to get it back (the fonctionality is disabled in iTunes). Switching MobileMe off didn’t solve the problem, my iPhone started syncing an empty address book with my Mac and I lost all my contact on my desktop ! Luckily I had a backup as I sync my office laptop with the same MobileMe account, and it was safely switched off, so all my data were still intact on this computer. After a MobileMe reset (upload) from my office laptop, a MobileMe reset (download) with my home desktop, a USB Sync with my iPhone 3G I could finally get my address book back in sync… and reactivate MobileMe successfully. I gave up on Exchange ActiveSync, enjoying a complete address book and the luxury of actually making phone calls.

I started spending (more) money in the App Store, trying most games and utilities. Then one day, luckily during a weekend, I was updating the Facebook app to version 1.1 on the iPhone itself, when in the middle of the update my iPhone 3G rebooted and got stuck on the Apple Logo. I tried switching it on and off, no luck. It kept displaying the Apple logo and vibrating twice a few minutes after each restart. I searched the web and found that it was a firmware bug with early software in the first shipping iPhone 3G. However since the iPhone was on sale a new firmware 1.0 was available through iTunes and the solution was to perform a full restore with the new firmware. I fumbled a few hours trying to get the iPhone in DFU mode but I finally managed to get it back to life.

First you need to restore your iPhone using the latest firmware, a hefty 250 Mb download. BTW did you know that we still have quota here in belgium, mine is 10 Gb / month. Second step : perform a iPhone backup restore, another hour passes. Unfortunately the backup does not restore your medias and applications, so you’ll have to do a full sync before getting your iPhone back in the state before it crashed… with an almost full 16 Gb iPhone, according to my unfortunates experiences, it will take about three hours for a complete cycle. At the end of the process you’ll probably notice that your photos have not synced and will probably redo a quick sync, enduring a another long backup of your iPhone… Then you’ll spend more time shuffling icons and checking settings. After this painful exercise, I decided I wouldn’t update application on the iPhone again but only in iTunes before syncing.

Thanks to my first Apple Logo of death, I had to waste time reading forums again, just like in the prohibition days. But the good news is I discovered users using Exchange ActiveSync in the Real World. I had a whole sunday to waste on geek stuff, I gave it another chance. I tried every combination of setup parameters, and there are many possible … without success. We have around 40 iPhone users at Emakina Brussels (a mix of the first generation with various firmwares, and a dozen 3G). None of them succeeded in their desperate attempts to setup ActiveSync. Only plain old non-push imap access worked, email only. For days, my IT department searched why it did not work with our Exchange 2003 server. We all gave up, some rumbling, some planning to leave for another company with better IT services. (I can’t leave as I’m the founder 😉

… Unfortunately, it seems it’s even worse at the other agencies 😉

I am rumored to blame Microsoft for all my technical problems, even if this blog post demonstrate I can blame Apple too. However in this case the problem was really on Microsoft side. By chance we were just in the process of upgrading to Exchange 2007 and after a few more test, finally finding that ActiveSync must be activated manually per account (or some similar mumbo jumbo from my Exchange self-claimed expert), it finally seemed to work. For those stuck with Exchange 2003, we finally discovered that there is an add-on to install to enable ActiveSync. After a few days I even dared to activate both MobileMe and Exchange Sync at the same time. It now work flawlessly. The only missing piece of the puzzle is on Leopard side which until Snow Leopard can’t sync address book and iCal to Exchange.

Then my life was great again. I had achieved complete victory against technological adversity fighting Mobistar iPhone scarcity, MobileMe launch debacle, my own IT department, iPhone firmware bugs, a major Microsoft Exchange upgrade and mastered the complexity of a setup, full of mysteries, learned the maze of iPhone forums, bookmarked relevant apple support technotes, and in general more Jedi iPhone black arts (like the art of DFU according to iTunes sub-versions).

Still when updating apps in iTunes, for some strange reasons, the updates appeared several times. It wasn’t a big deal and I just applied all updates and synced. Also battery duration was low, with my setup : 3g, wifi and bluetooth activated, push/sync with Exchange, MobileMe and 4 more IMAP account, batteries get low in the middle of the day. So I plug my iPhone at home in my iMac, at the office in my MacBook pro, and in my car in a USB to cigarette adapter.

Suddenly, the iPhone firmware update 2.01 was released. I downloaded another 250 Mb update and applied to my iPhone 3G with no hesitations, confident that, as announced, this firmware would fix the obvious bug with application updates and sync.

It obviously did not!

Today, while syncing normally with iTunes, I got the Apple Logo of death again. Impossible to pass the Apple Logo on reboot, the two vibrations, the heat, … all the symptoms I already had the last time. My first day of holidays…

Now I’m angry. Apple know about the problem since at least the 12th July (see the first post on Apple Forum). There are thousand on view on this thread that can’t be ignored. Apple did not succeeded in fixing the Apple Logo of death in the 2.01 firmware update. Apple does not acknowledge the Apple Logo of death problem. Apple does not answer our questions on the forum about the Apple Logo of death. Apple does not give advices on how to avoid the Apple Logo of death. Apple does not give an date on the next firmware update that will fix this f***cking time waster that is the Apple Logo of death..

Now I’m angry and this is why I have written a whole blog post full of Apple brand, iPhone product name and Apple Logo of death mentions, to spam blog indexes with my anger while restoring my iPhone. I started the process at 5pm and it finally completed at 8pm. I can now submit this blog post.

(*) Disclose : I run Emakina the web agency of Proximus

My amateur PHP developer toolset

I am not a developer, but I enjoy coding sometimes for hacking pleasure. I toyed with Ruby (Rails), Python (Django), exotic scripting languages (WebDNA) but nowadays I mostly tweak PHP, HTML, JavaScript, CSS code and some Bash. As an long time Apple user, I run only MacOS X on my Macintoshes, so over time I have selected my software tools of choice.

As text editor I use Coda for its well designed interface, integrated FTP browser, grep integration, CSS editor, DOM inspector, integrated terminal and ability to share live code over Bonjour using the Subetha engine, with better developpers than me at Emakina.

Unfortunately Coda can’t grep through a bunch of files, so I still have to use BBedit for massive re-factoring.
I tested SubEthaEdit, the free TextWrangler and ForgEdit. All of them are great text editors too, but lack some polish in their interfaces.

I also use Transmit from Panic as my main FTP software. It’s strong at syncing a whole sites with my servers and just well integrated in MacOS X. It syncs FTP bookmarks over .Mac which is practical when you work nightshift from the office to home 😉 Forklift is cool too, especially it’s FTP to FTP feature and integration of Amazon S3.

I experiment a lot of Open Source PHPware, so I download the latest trunk version of my favorite projects from their subversion repository. After using svn X (free but ugly) for years I have recently switched to Version. The current beta 4 is very stable and it’s interface matches perfectly with Coda. I like the way it present the recents changes in a Timeline, that you can unfold to click every file for a quick diff. Juxtapose Folders is also useful and free. But the diff presentation of CornerStone are by far superior. CornerStone is another Mac OS X style Subversion client and I’m still wondering if I’ll buy Version at the end of the beta or go for CornerStone.

But to integrate update of Open Source software I have modified, I use Changes, a stronger diff tool which allow me to compare a whole project then integrate code changes bits by bits into my version. Previously I used DiffMerge (free but ugly), but I was tired of having false positive because of Mac OS X / Windows linebreak differences.

On my development servers, after using Mac OS X Server since the beta version to 10.3, I switched to Tenon iTools. They have great support, keep updating their Apache, PHP and MySQL packages and are a three clicks install on a brand new Mac mini. Its web based remote administration interface allow me to control my servers from anywhere, anytime, even on a Windows machine. When developing offline (during holidays in remote locations) I use MAMP on my MacBook Air.

To edit MySQL databases I currently use phpMyAdmin like everybody, but I just stumbled upon Navicat. If you know some better MacOS X native MySQL editor, let me know in the comments below.

Major update on ContactOffice beta !

ContactOffice is a collaborative and messaging platform offered in Software as a Service. It is used daily by more more than 350.000 users of which 250.000 paying users !

It’s new beta version is an AJAX enhanced interface developed using Google Web Toolkit. ContactOffice developers have added numerous features to GWT (drag and drop, marquee selection, contextual menus, sortable columns, resizable panels, …) and are showcasing what is – according to Google engineers – the most advanced web application built using their java based revolutionary AJAX web application development framework.

The latest beta version of ContactOffice (release 1.2.002) contains numerous fix and is very close to being the best in his class of applications. It is finally fully compatible with Safari, in addition to its outstanding Internet Explorer and Firefox/Mozilla support. The new beta also features numerous new functionalities and enhancements :

– Wiki
– Info panels
– Threading for emails (only for paying subscriptions)
– Categories on docs, notes, contacts, bookmarks, …
– Right click or Ctrl click for Mac users to access contextual menus
– View document as PDF (.doc .ppt .xls .txt + openOffice extensions)
– Import Google contacts
– Account backup now includes the notes
– Details panel fro emails and contacts can now be collapsed or expanded as well email headers
– ‘Print contact’ is now available
– Some drop-down menus were not displayed for FireFox/Mac users
– Better interface color contrast
– Tons of UI enhancements and bug fixes

If you are in web development, you really have to test this web application to have an idea of what is the state-of-the-art today in a web interface!

If you are a java / ajax developer, you should try working for this company.

If you are looking for a solution to manage your group online collaboration needs, you have just found the best on the web.

Exotic Programming Language #1 : Factor

Factor is a dynamically typed concatenative programming language whose design and implementation is led by Slava Pestov. Factor’s main influences are Joy, Forth, Lisp and Self. As of December 2007, the current version of Factor is 0.91. A 1.0 release is planned in 2008.

Factor is a general purpose, dynamically typed, stack-based programming language. The Factor implementation includes a VM together with an extensive library. The VM is written in C and provides basic runtime support and memory management. The library provides building blocks for applications. Factor is compiled to machine code, and on Mac OS X, can be used to build stand-alone native applications.

Factor began as a scripting language in a Java game project and quickly grew into a general-purpose language. While this was happening, the limitations of the Java virtual machine were making themselves apparent, and an effort to write a native Factor implementation with a minimal core in C was kicked off. The native implementation was bootstrapped from Java Factor, and soon thereafter native Factor became the de facto implementation, work on the Java implementation stopped.

Factor development is led by Slava Pestov, with extensive help from a community of contributors and testers.