I've been programming for a very, very long time... I started at 13 with a small TI57, then some BASIC on a PET, then assembly on an Apple II+; This last bit became the first video game programmed in Québec (maybe Canada?), Têtards [http://pages.infinit.net/vcote/tetards/tetards.html], created with Vincent Côté. (Here is an old article [http://www.pierrepilon.com/2003/07/daniel-pinard-et-lapple-ii.html]) In the same era, a small word processor with huge fonts, Mégatexte, still with Vincent, and published for primary schools.
Since those first programs in assembly, I have been coding in C++, Java, Perl, and sometimes some lesser-known langages; I've had my Forth and HyperTalk days in my youth; I fooled with Objective-C et Scheme; I have looked at Mozart and Scala. Now, when I have a choice, I use Python. But I mostly work at the software architecture level, where I marry a familiarity with techniques for modelization (UML [http://www.xml.org], Design Patterns [http://hillside.net/patterns/]) (UML, Design Patterns) and data representation (I am a stellar XML [http://www.w3.org/XML/] coder, with good mastery of XSLT [http://www.w3.org/TR/xslt], RNG [http://www.relaxng.org/], GXL [http://www.gupro.de/GXL/], object Marshalling (Java with XMLEncoder [http://java.sun.com/j2se/1.4.2/docs/api/java/beans/XMLEncoder.html]), and still others.)
Above and beyond the larger projects mentioned in other sections, I also fiddle with a few open-source projects. I have left a small mark, sometimes ideas, sometimes bug reports or patches, sometimes help porting (to OS X [http://www.apple.com/macosx]) and sometimes even more significant code (esp. around XML) for the following projects:
- Leo [http://webpages.charter.net/edreamleo/front.html] (suggested original XML data format)
- Mozart [http://www.mozart-oz.org/] (OS X port, with Denys Duchier)
- Swarm [http://www.swarm.org/] (contributions to OS X port)
- Shadow [http://www.codejedi.com] (Some suggestions for XML format improvement)
- Gengo [http://jamietalbot.com/wp-hacks/gengo/] (Suggested use cases for multi-lingual readers; some code)
- libxml2 [http://xmlsoft.org/] (Fixes [http://bugzilla.gnome.org/buglist.cgi?query_format=advanced&keywords_type=allwords&bug_status=CLOSED&emailreporter1=1&emailtype1=exact&email1=maparent%40acm.org&bugidtype=include&cmdtype=doit] for python binding)
- lxml [http://codespeak.net/lxml] (Discussions on XPath extension architecture)
- Compendium [http://kmi.open.ac.uk/projects/compendium/] (Patch proposal for loop detection)
I have also done some consulting, in particular with
- Merlin [http://orion.njit.edu/merlin/]
- Goa Technologies [http://www.goatechnologies.com/](now CloserLook [http://www.closerlooksearch.com/index.aspx])
- CBC [http://radio.cbc.ca/cgi-bin/insite/BrowseDir.cgi]
- OpenConcept [http://openconcept.ca/]
Long ago, I also wrote a small report [http://maparent.ca/maparent_jdb/] (in French) on Java storage technologies. (This report was on the CRIM site, who took it out, like much of our work; but I could find it thanks to the web archives [http://www.archive.org/] . Of historical interest only, of course.)