Blog

For Hire

As stated at the end of my previous entry, I am currently looking for a new job. I am seeking something involving either computer engineering, software engineering, or web development — or a mix of all that — and it has to be in Quebec City (telecommuting is also an option). If you are hiring and might have something for me, please take a look at my résumé below.

Education

2001-2005
Bachelor of Computer Engineering
Specialization in Intelligent Systems
Université Laval, Quebec City (Quebec), Canada
1998-2000
College Studies: Pure & Applied Science
Collège de Lévis, 9, Mgr.-Gosselin, Lévis (Quebec), Canada

Work Experience

2005
Université Laval – Electrical and Computer Engineering Department
Webmaster for course web sites, web development for the intranet and some other department-related web sites. [PHP, Perl, MySQL]
2004
INRS – Eau, Terre et Environnement
Summer trainee. Working on the project of a student in doctoral studies. Maintenance cost optimization for water distribution systems using genetic algorithms and creation of a data visualisation program.
[C++, MFC]
2001-2004
ACSM – Chaudière-Appalaches
Created a web site for a local branch of the Canadian Mental Health Association. Redesigned the web site at summer 2004. [HTML, CSS]

Other Experience

2005-2007
Reflex – Web development framework and modular content management system. [PHP, MySQL, Javascript, DOM]
2004-2007
Sim Daltonism – Implementation of a filter algorithm simulating various color blindness and creation of a realtime visualisation application for Mac OS X. [Cocoa, Objective-C, C, Mac OS X Core Graphics]
2004-2005
PHP Markdown & Extra – Program handling the conversion from text form to HTML using the Markdown syntax. This is a PHP port of the original Perl program written by John Gruber. [PHP, Perl]
2001-2005
Gamma Control & Black Light – Two applications to adjust the gamma correction curves of a computer screen and invert colors on the display to help make text more readable. [Cocoa, Objective-C]
2003
Easy Programming Interface for Graphics – C++ programming interface linked to a Java application that displays graphics on screen. Cross-platform tool build as part of a teem for the Design IV course. [C++, Java, SVG]

Technical Expertise

Languages
C, C++, Objective-C, D, Java, Pascal, Javascript, PHP, SQL, Regular Expressions, AppleScript
Platforms
Mac OS, Mac OS X (Cocoa, Carbon, Core Graphics), Linux, Windows (MFC)
Software
Xcode, Visual Studio, CodeWarrior, Matlab, FileMaker Pro, HyperCard, Microsoft Office, AppleWorks, Photoshop, Illustrator, GoLive, PageMaker
Code management
CVS, Subversion, Git
Other
HTML, SVG, XML, CSS, DOM, TCP/IP, HTTP

Hobbies

  • Software Programming
  • Web Design
  • User Interface Design
  • Typography
  • Photography
  • Piano and music composition
  • Bicycle

Let's Restart That

It has been a couple of months (9) since I’ve published my last entry on this blog. I could blame that on many things. For one thing, I wasn’t really in the mood to write anything for a few months (as you can see by looking at the frequency of updates for year 2006 in the archives). For another, I wanted to switch this website to a new system and as a motivator decided to wait until it was ready before publish anything — it didn’t really work, it even probably had the reverse effect.

Today, I break this auto-imposed silence; I’ll start to write again on subjects I think noteworthy. And I think there are many things noteworthy I’ve missed the chance (until now) to express opinions about. On the technology side, Apple launched its iPhone and the iPod Touch, Microsoft released Windows Vista, PHP 4 end of life is coming near, and the W3C restarted its HTML working group. Other things I’ve missed a chance to comment on during this hiatus are the 2007 provincial elections here in Québec and other various news and events in Canada and elsewhere.

I may have been silent on this blog, but it didn’t really sit idle either. Since a little more than a year, I’ve been from time to time contributing to the WHATWG mailing list, and I’ve continued contributing. I’ve been told my feedback (with dozens of use real-world use cases) has been particularly useful for Ian when he drafted the new figure element.

I’ve also updated some of the software projects on my website. Sim Daltonism has been updated to version 1.0.3 which fixes a couple of issues and increase performance (especially on those Intel Macs). PHP Markdown, my implementation of the Markdown syntax based on the original tool in Perl by John Gruber, and PHP Markdown Extra evolved a lot in the last months. I’ve made a PEAR channel for PHP Markdown; I’ve also setup a Git repository mirror for those who wish to track its development. I’ll do the same for PHP SmartyPants shortly.

Beside all this, I also put much of my time working on a software product I hoped to publish and sell in addition to use it on my website: Reflex. Reflex is some kind of a hybrid between a web development framework and a content management system. An older prototype of Reflex is what runs this site. The version I was working on was a complete rebuilt, but it turned out more like an exploratory process during which I made a lot of incomplete prototypes, but never could decide on an architecture to stand on.

So I decided to let go of Reflex and do something else. Take note that this doesn’t mean I’ve done all this for nothing. First, this has been a very interesting experiment, and even if it didn’t reached its logical conclusion I learned a lot from my errors. Secondly, there are many components in my various prototypes which can be reused or released as separate libraries, I may very well do that for some of them in the future. Perhaps I’ll relaunch Reflex later when I the concept will have matured a bit more. Right now however, what I need is a rest from Reflex.

As for now, I’ve another completely different project in the works. It involves D, and is almost ready for a first announcement. (“Release early, release often” they say, let’s try that this time.)

Oh, and by the way, I’m now for hire. If you have something for me in Quebec City, please drop me an email. More on that later.


The state of Markdown

Markdown, the text format created by John Gruber, has become very popular on the Internet since its first public appearance in March 2004. The PHP version I ported from John’s original Markdown implementation in Perl has become very popular too, probably more than the original mostly due to PHP being more widely used than Perl on the web today. But for some reasons, Markdown has evolved very slowly in the past two years. Anyway, that’s not a reason for me for not providing updates.

The last public release of Markdown in Perl dates from December 2004, two year ago. John has been working on a new version during this year, sporadically I’d say, and released a couple of betas for 1.0.2 semi-privately to subscribers of the discussion list. But at this rate, it’ll be a long time before improvements and bug fixes come to the publicly-available version.

So last Friday, I updated PHP Markdown to version 1.0.1d. PHP Markdown still mirrors the feature set of the Perl version 1.0.1, but I decided that from now on I’ll go further than simply port what is in the Perl version. With this latest release, I decided to go forward by installing a better HTML block parser (for those of you who insert HTML directly in your Markdown documents) and with a couple of other things. This release also fix a lot of bugs that were discovered in 2005 and were corrected in the 1.0.2 betas and for which there is no reason to delay (kudos to John for many of these fixes).

But one of the biggest changes to PHP Markdown 1.0.1d is that the code is now completely object-oriented and comes with an extension mechanism to help build customized versions of PHP Markdown with few code duplication, if any, so that they’re easy to keep up to date with the base parser. And thus, PHP Markdown Extra has just become easier to update for me because it is now implemented this way, as an extension to PHP Markdown.1

PHP Markdown Extra 1.1 is based on Markdown 1.0.1d and thus benefits from all the changes in that version. In addition, it includes a features that was much discussed on the list in 2004, namely footnotes, and another that wasn’t discussed so much but for which I received a couple of requests: abbreviations. It’s described in more details on the PHP Markdown Extra page.

I don’t know when John will release 1.0.2, but I certainly hope he does soon. I do not blame John for taking his time; I don’t know his schedule and can only assume that he is a busy man with many other things to do. But it’d certainly be interesting if the core Markdown language could improve and evolve a bit faster. Two years is a long time for wildly-used software with many known bugs still to fix.


  1. I plan to document the extension mechanism of PHP Markdown in 2007. But you can play with it right now if you want: it’s not that difficult to figure out, especially with PHP Markdown Extra as an example. ↩︎


Nation

There is a debate raging on in Canada this week about recognising that the people from the province of Quebec form a nation. I’ve heard some people who claim that the word nation has a different meaning in French and in English. Since most Quebeckers speek French and most Canadians outside Quebec speck English, this is of crucial importance to the debate. So, with my usual skepticism, I decided to check that claim by myself.

Surely, if the meaning is different between the two languages, dictionaries should be able to provide evidence for this. So I dug out the English definition from The New American Oxford Dictionary, 2nd edition:

nation
A large aggregate of people united by common descent, history, culture, or language, inhabiting a particular country or territory.

Then I looked up the first definition for the French word in Le Petit Larousse Illustré 1993. Here’s the translation:

nation
Large human community, generally installed on the same territory and having a historical, linguistic, cultural, economic unity more or less strong.

While there are many identical words with slightly different meaning in French and English, nation does not appear to be one of them. Next time I hear someone claiming that, I’m going to ask for some proofs or I’m not going to buy it.



  • © 2003–2025 Michel Fortin.