Friday, June 1, 2007

CSS nightmare

As most of you know, the behavior of CSS in different browsers/versions of browsers can be a nightmare...

Each browser interpret the standard on his own, and bugs (mainly in IE) add some spice to the pleasure of making all this work the same, no matter what the browser is...
One of the problem I had to solve recently was the positioning of div thanks to CSS...

But fortunately there are great resources out there, so if you have such problem and pull your hair to reach your goal, maybe this tutorial could help you:
Learn CSS positioning in 10 steps

Thursday, May 24, 2007

OpenUP/Basic: a good software development process to manage web-based software

How many of you have a software development method in place? I'm not talking about the famous "Da CoWbOyZ CodInG" method, but rather the ones hidden behind this appealing word that we hear sometime: Agile/Iterative software development processes...

In the last four months I've been attending an evening course at Harvard Extension school, called "Project Management of Information Technology" (very interesting course, full of learning!).

One of the deliverables of the course was a midterm paper about a topic on Project/Process management in software related domains.

As we are all tuned on WIIFM (What's In It For Me), I chose to write on the Agile/Iterative Software Development Processes and in particular on OpenUP/Basic, which is a minimal, complete and extensible software development process derived from RUP/UP.
Minimal, Complete and Extensible mean that it's self-sufficient, and you can extend it if the project grows...

Here are links to my paper "Iterative Methodologies to Manage Web-Based Software: Focus on OpenUP/Basic":


For this paper, I read and learned a lot about the most well-known Agile processes such as Scrum (see here, and there) and XP, about RUP, OpenUP/Basic (software development process led by the Eclipse Process Framework)

My conclusion:
- don't apply the process "out of the box" but rather adapt it to your constraints.
- Agile methodologies such as Scrum and XP are first and foremost philosophies. These philosophies must be understood to really get the most out of the disciplines (such as daily Scrum meetings, short and timeboxed iterations, Test-Driven Development, think simple and then refactorize when needed, a little bit of Design every day, ...)
- The disciplines can be adopted progressively, but in a certain order, based on your constraints and the goals you want to achieve. but you must understand the philosophy first!

One last word: among the tons of books I had a look at, I found one particularly interesting and with hands on examples: "Agile and Iterative Development: A Manager's Guide", by Craig Larman

I like hyperlinks!

Sooo useful, isn't it?! Let's try to ad a few more here!

I've 2 other blogs out there, but unfortunately in french...

For those of you who are interested, here they are:
- Laurent a Boston: a blog about my new life in USA
- Laurent Glande: a blog about vacation (unfortunately the number of weeks of vacation in USA are pretty small, don't expect hundreds of posts on this topic ;-) Even if you don't read french, you can at least appreciate the underwater pictures I take when I go scuba diving!

Hello World!

Here is my brand new blog... one more among the 10 other million of blogs that pollute the "WWW".
I will (when time allows) post remarks/discoveries/whatever_interesting on software when I'll stumble upon it!

Why is that? several reasons:
- I've been developing in PHP language (among others) for more than 5 years
- As many of the developers out there, sometimes I loose hours on coding problems: sometimes complicated, sometimes just because I should have gone to bed earlier and sleep on it instead of insisting...
- When I find something interesting, a "wow" factor, I'm glad, I use it, and after a few days... I don't remember anymore! This blog will (hopefully) help me keeping track of these issues/fixes and will (hopefully) help some of you.

Just to set the stage, here is what I'm doing:
- I'm working in a small bioinformatics company located in France (Rueil-Malmaison) and in the States (Westboro, MA), called GenomeQuest Inc. (previously known as Gene-IT)
- I'm working on a software called GenomeQuest (yes, as the name of the company!): in France for 4.5 years and at Westboro's office for more than 1 year. To sum up a little bit, it's like Google for DNA/Protein sequences search
- My day to day work is (for now) to develop GenomeQuest and introduce, when useful, new technologies such as *please insert here all the web2.0 buzzwords: AJAX, Javascript, JSON, templates, Star Trek, Matrix,...*
- Among the technologies I use: LAMP architecture (Linux, Apache, MySQL/SQLite, PHP), Smarty templates, Javascript (among the libraries I've used and evaluated, I particularly like: Prototype, Scriptaculous, Dojo Toolkit, Yahoo! UI library), XML.
- A while ago, I coded a little bit in C (yes, I'm a bit masochistic sometimes ;-) ),
- One day, I'd like to use Ruby on Rails, a killer web development framework developed by the 37signals buddies for Basecamp and other apps (these guys definitely rock!)

See ya!