<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7285584530633112456</id><updated>2012-02-03T20:14:18.481-05:00</updated><category term='startup'/><category term='lifestyle business'/><category term='conference'/><category term='web'/><category term='software'/><category term='copyfight'/><title type='text'>Music Driven Development</title><subtitle type='html'>simple code engineering</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.musicdrivendevelopment.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-6277539669139715755</id><published>2012-01-08T14:38:00.001-05:00</published><updated>2012-01-16T20:09:45.258-05:00</updated><title type='text'>Data, Functions and Objects</title><summary type='text'>






Assassinations by Stateless on Grooveshark


One thing I realized while learning Clojure is how data, functions and objects relate to each others.

Data is a structured set of values or, said another way, values within a data structure (e.g. a list of integers, a map of [key, value] pairs, a struct).

A function takes data as input and produces data as output.

An objects is a combination </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=6277539669139715755' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6277539669139715755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6277539669139715755'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2012/01/data-functions-and-objects.html' title='Data, Functions and Objects'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-5953300329246043925</id><published>2011-12-31T22:27:00.000-05:00</published><updated>2011-12-31T22:27:00.870-05:00</updated><title type='text'>Retour</title><summary type='text'>The Low Hum by Moby on Grooveshark


The detour took longer than expected. I left to learn about Clojure and how its constructs can simplify a program, but I ended up taking a different turn and left the OZ -&gt; Nokia -&gt; Synchronica boat after more than 7 years to work for a very interesting Montreal start-up called Wajam.

In the next few weeks, I'll focus on entering the start-up mode and working</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=5953300329246043925' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5953300329246043925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5953300329246043925'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/12/retour.html' title='Retour'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-2994508155940537353</id><published>2011-10-30T20:30:00.000-04:00</published><updated>2011-10-30T20:33:11.027-04:00</updated><title type='text'>Detour</title><summary type='text'>

I'll take a detour. I will pause writing about simple testable code for the month of November. Instead, I will focus on learning and understanding Clojure. Why? Because of these two talks by Rich Hickey, Clojure's creator.

InfoQ: Are We There Yet?
InfoQ: Simple Made Easy

In these talks, Rich explains limitations of object-oriented programming and how it affects program complexity. In Simple </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=2994508155940537353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2994508155940537353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2994508155940537353'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/10/detour.html' title='Detour'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-8400930023349324284</id><published>2011-10-24T21:51:00.000-04:00</published><updated>2011-10-24T21:51:21.915-04:00</updated><title type='text'>Final, Clean and Simple</title><summary type='text'>

I've read Clean Code. This is a great book for any developer that values craftsmanship. Throughout the book, I could not stop thinking about the link between clean code and simple code. They should be the same don't they? Clean code is simple, simple code is clean. Robert C. Martin's book is clearly about making code clean and easy to read. Could someone who follows all the rules in Clean Code </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=8400930023349324284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8400930023349324284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8400930023349324284'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/10/final-clean-and-simple.html' title='Final, Clean and Simple'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-1349676045828404922</id><published>2011-10-17T20:21:00.000-04:00</published><updated>2011-10-17T20:22:08.855-04:00</updated><title type='text'>About Structure and Value</title><summary type='text'>


I've been thinking about the expert vs master dichotomy a bit more these days and my conclusion is that it is all about structure and value.

Expert programmers value structure first, master programmers build value first.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=1349676045828404922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1349676045828404922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1349676045828404922'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/10/about-structure-and-value.html' title='About Structure and Value'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7047170788856518549</id><published>2011-10-10T20:30:00.000-04:00</published><updated>2011-10-17T20:22:16.105-04:00</updated><title type='text'>The expert, the master...a Java Version</title><summary type='text'>

One of the inspiration for this blog is this post by Zed Shaw where he points out what he thinks is the difference between an expert and a master programmer.

The expert, the master, the programmer.

For fun, I wrote a Java version.


</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7047170788856518549' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7047170788856518549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7047170788856518549'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/10/one-of-inspiration-for-this-blog-is.html' title='The expert, the master...a Java Version'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-2302193886195935965</id><published>2011-10-05T22:27:00.001-04:00</published><updated>2011-10-05T22:27:38.371-04:00</updated><title type='text'>Event Driven I/O</title><summary type='text'>


The new cool web framework is node.js. It is a javascript web framework that uses OS calls to get notified when an I/O operation is ready to be made. This way, a single thread can manage the processing of many network connections. The concept is not new (java, python and ruby all have it)...but for the web app world, it seems to be a revelation.

Earlier this week, there was a debate over some</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=2302193886195935965' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2302193886195935965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2302193886195935965'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/10/event-driven-io.html' title='Event Driven I/O'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-715600748174183028</id><published>2011-10-03T21:15:00.000-04:00</published><updated>2011-10-03T21:15:02.828-04:00</updated><title type='text'>Simple Testable Code - The Next Step</title><summary type='text'>





Over the last three months, I've posted 10 posts on Simple Testable Code. Now it's the time for me to refactor all this content into one coherent entity.

Here is the list of posts in case you missed one of them:

Introduction
The Goal
The Principles
Code Dependencies
Managing Dependencies
Simple Tests
Asserting Behavior Part 1
Asserting Behavior Part 2
Stateless vs Stateful
Mocking </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=715600748174183028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/715600748174183028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/715600748174183028'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/10/simple-testable-code-next-step.html' title='Simple Testable Code - The Next Step'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7479154949719858449</id><published>2011-09-26T21:22:00.000-04:00</published><updated>2011-09-26T21:22:26.646-04:00</updated><title type='text'>Mocking Behavior</title><summary type='text'>


When unit testing a class, there are many options for dealing with its dependencies. I'll discuss a few of these.

Coded Mocks

Mock classes can be written. They can either be dummy classes or they can implement behavior. My main concern with this approach is that it creates code that has to be maintained. Also, implementing behavior in a mock class can be really painful in the long term. The </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7479154949719858449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7479154949719858449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7479154949719858449'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/09/mocking-behavior.html' title='Mocking Behavior'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7241586783402531771</id><published>2011-09-23T20:54:00.000-04:00</published><updated>2011-09-23T20:54:24.246-04:00</updated><title type='text'>What kind of programmer are you?</title><summary type='text'>

I often take a step back at my profession, at what I do. This week I've realized that programmers come in two (or 10 if you read binary) types. Now I need to decide on which side I want to be...with those programmers looking for fun or with those looking for innovation.

A few stories...

Last week, I managed to get into the private beta of geekli.st. This is clearly a fun start-up. All-in in </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7241586783402531771' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7241586783402531771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7241586783402531771'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/09/what-kind-of-programmer-are-you.html' title='What kind of programmer are you?'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-4151477620836972780</id><published>2011-09-19T20:52:00.001-04:00</published><updated>2011-09-19T20:52:11.817-04:00</updated><title type='text'>Stateless, Stateful</title><summary type='text'>

Often, the design of a class or the design of the application impacts not only its testability, but also the simplicity and maintainability of the test code.

One design decision that has this kind of impact is whether a class is stateless or stateful.

Suppose there is a stateful class that has 4 public methods. If all these methods both use and affect the object state in different ways, </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=4151477620836972780' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/4151477620836972780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/4151477620836972780'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/09/stateless-stateful.html' title='Stateless, Stateful'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-642173584646989883</id><published>2011-09-12T20:04:00.000-04:00</published><updated>2011-09-12T20:04:05.921-04:00</updated><title type='text'>Assert the behavior, not the implementation / Part 2 - Abstract Classes</title><summary type='text'>

To some extent, abstract classes are implementation details. They often emerge from a refactoring when common behavior is 'discovered'. Theoretically, abstract classes are not needed. Interfaces and lots of code duplication will produce the same results.

But code duplication is the programmer's worst enemy. Furthermore, some abstract classes do implement concrete behavior and let a subset of </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=642173584646989883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/642173584646989883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/642173584646989883'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/09/assert-behavior-not-implementation-part_12.html' title='Assert the behavior, not the implementation / Part 2 - Abstract Classes'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-6355582928910160880</id><published>2011-09-05T20:39:00.001-04:00</published><updated>2011-09-06T09:20:53.484-04:00</updated><title type='text'>Assert the behavior, not the implementation / Part 1 - Mocks</title><summary type='text'>

When writing unit tests, the programmer should not couple the test code with the class implementation more than needed. Updating the tests whenever the internal implementation changes is painful and slows down development.

The key to soft-coupled unit tests is to assert only the expected behavior for the class, never its implementation. This makes the test code less fragile to change while </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=6355582928910160880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6355582928910160880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6355582928910160880'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/09/assert-behavior-not-implementation-part.html' title='Assert the behavior, not the implementation / Part 1 - Mocks'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-8132224025600615921</id><published>2011-08-29T21:00:00.000-04:00</published><updated>2011-08-29T21:00:41.173-04:00</updated><title type='text'>Simple Code and Simple Tests</title><summary type='text'>

So far, I've been discussing how to write simple production code while maintaining testability. The next few posts will focus more on how to write test code. You migth wonder...why are unit tests so important to code simplicity in the first place?

Writing simple production code has an enormous value. But as software developers know, code evolves fast and soon, the simple initial design is </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=8132224025600615921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8132224025600615921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8132224025600615921'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/08/simple-code-and-simple-tests.html' title='Simple Code and Simple Tests'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-uCoYkfw8bBg/Tlwuq_dN71I/AAAAAAAAAuY/6Yko8DX6xZM/s72-c/code-evolution-graph-no-bg.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-2832958658098091038</id><published>2011-08-22T12:53:00.006-04:00</published><updated>2011-08-24T11:19:58.712-04:00</updated><title type='text'>Managing Dependencies</title><summary type='text'>

In the last post, I showed how dependency injection helps solving the testability problem. Basically, if all of the class' dependencies are injected, it will be easy to inject a test version when writing the unit test code and therefore it will be simpler to test the class in isolation.

The goal is to write simple testable code. If all dependencies are injected and hidden behind interfaces, I </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=2832958658098091038' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2832958658098091038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2832958658098091038'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/08/managing-dependencies.html' title='Managing Dependencies'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7218007130100541044</id><published>2011-08-12T21:56:00.004-04:00</published><updated>2011-08-12T22:18:04.038-04:00</updated><title type='text'>All About Dependencies</title><summary type='text'>The main goal of unit testing is to assert the correctness of a class. Writing the tests can be easy or really painful depending on the class design. Most of the time, it is much easier to write the unit tests if the class can be isolated from its dependencies (also called collaborators).

The general idea is that you supply stubs (test friendly implementations) to the class to test instead of </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7218007130100541044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7218007130100541044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7218007130100541044'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/08/all-about-dependencies.html' title='All About Dependencies'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7396812765948983579</id><published>2011-08-06T21:30:00.000-04:00</published><updated>2011-08-06T21:30:20.801-04:00</updated><title type='text'>Simplicity Coder's Principles</title><summary type='text'>In my last post, I mentioned some principles that I will call the simplicity coder's principles:

simplicity over flexibility
concreteness over abstraction
soft-coupled unit tests over full code coverage
test aware development over test first development

In this post, I will explain why items on the left have more values than items on the right.

Let's start!

simplicity over flexibility

I've </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7396812765948983579' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7396812765948983579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7396812765948983579'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/08/simplicity-coders-principles.html' title='Simplicity Coder&apos;s Principles'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-8012541696151967468</id><published>2011-08-01T13:12:00.001-04:00</published><updated>2011-08-02T09:31:04.073-04:00</updated><title type='text'>The Goal</title><summary type='text'>Before I start explaining how to write simple testable code, I will define my objective. To achieve that objective, I will have to do some trade offs. So be prepared to be shocked at some point, because what's coming is not always seen as best practices...but that's what makes it exciting!

Let's dive head first!

The goal is to write simple and tested production code with soft-coupled unit tests</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=8012541696151967468' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8012541696151967468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8012541696151967468'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/08/goal.html' title='The Goal'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-542218103233326860</id><published>2011-07-25T23:17:00.000-04:00</published><updated>2011-07-25T23:17:15.301-04:00</updated><title type='text'>Simple Testable Code</title><summary type='text'>I used to code using the test driven methodology (TDD): write the failing unit test first, then write the code to make it pass. Features after features, I ended up slightly disappointed by the result. Yes, the code worked properly and was fully tested, but somehow, the final design was overly complex. It had too many indirections, too many classes and interfaces.

It seems that when doing TDD, my</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=542218103233326860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/542218103233326860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/542218103233326860'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/07/simple-testable-code.html' title='Simple Testable Code'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-2662984839218172287</id><published>2011-07-06T13:40:00.002-04:00</published><updated>2011-07-06T22:00:15.446-04:00</updated><title type='text'>Mind Refactoring</title><summary type='text'>Sometimes you just have too much stuff on your mind, too many projects going on...sometimes you feel you are not going into the right direction after all.

Time for mind refactoring and creative destruction...

I'll be abandoning a few projects...in order to focus on something more epic...

More to come...

</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=2662984839218172287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2662984839218172287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2662984839218172287'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/07/skull-refactoring.html' title='Mind Refactoring'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-3572273652229155787</id><published>2011-04-22T20:21:00.000-04:00</published><updated>2011-04-22T20:21:10.095-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>High Standards</title><summary type='text'>Sometimes morale is low.

Some of your teammates and colleagues do not enjoy the work anymore. Something is missing. For some, it's a perceived lack of leadership or direction. For others, it's a lack of new challenges. In this situation, I've seen many people falling in a trap. They are not as committed to their work as they once were. Their standards are not as high as they use to be.

I met </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=3572273652229155787' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/3572273652229155787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/3572273652229155787'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/04/high-standards.html' title='High Standards'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-5499601361176326173</id><published>2011-03-24T12:36:00.000-04:00</published><updated>2011-03-24T12:36:03.618-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Momentum</title><summary type='text'>Keeping programmers happy is important.

Maybe code is a liability, but programmers are natural resources. In any important software project, if you want the project to succeed, you need happy programmers. In the early phases of a software project, people are excited. Things move fast! Innovation rate is high, programming is fun. Then, bugs are raised, the code base grows in complexity...making a</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=5499601361176326173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5499601361176326173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5499601361176326173'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/03/momentum.html' title='Momentum'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-2078272553651715008</id><published>2011-03-22T23:24:00.000-04:00</published><updated>2011-03-22T23:24:51.358-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Code is a Liability</title><summary type='text'>Functionality is an asset, but code is a liability.

I've been thinking about this since I first read it on Ted Dziuba's blog.

Troubling. If you follow the reasoning, the less code you write, the better. But wait! Isn't writing code what I love?

In the last few months, I've been experiencing the liability effect first hand: intense product support and maintenance. It is bad. I can imagine it </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=2078272553651715008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2078272553651715008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2078272553651715008'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/03/code-is-liability.html' title='Code is a Liability'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-1889993768551230863</id><published>2011-02-14T22:40:00.002-05:00</published><updated>2011-02-14T22:40:56.634-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Side-Experiment</title><summary type='text'>A new space has been created on the web. A new experiment has started. Let’s see how this will grow…

http://side-experiment.com</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=1889993768551230863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1889993768551230863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1889993768551230863'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/02/side-experiment.html' title='Side-Experiment'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-8186216201918334751</id><published>2011-01-28T22:11:00.001-05:00</published><updated>2011-01-28T22:21:22.342-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lifestyle business'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Lifestyle Toolkit</title><summary type='text'>As a follow-up on my last post, here is my toolkit for this lifestyle business I am dreaming...

I'm now ready to learn, create and experiment! 

Technology



Business
 

Tools
 
Office 

Deployment
</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=8186216201918334751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8186216201918334751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8186216201918334751'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/01/lifestyle-toolkit.html' title='Lifestyle Toolkit'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-8482119063663534585</id><published>2011-01-26T22:22:00.001-05:00</published><updated>2011-07-06T22:32:42.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lifestyle business'/><category scheme='http://www.blogger.com/atom/ns#' term='startup'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>The Opportunity</title><summary type='text'>Recently, I've been exploring the idea of starting my own business. That is the main reason I went to statupcamp. Even thought it was a great event, somehow, I felt out of place. Why?

I realized that the reasons people create startups are not my reasons for starting my own gig:
I want to work on my ideas and experiment,
I want to use the tools I enjoy,
I want to program with a language I like,
I</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=8482119063663534585' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8482119063663534585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8482119063663534585'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/01/opportunity.html' title='The Opportunity'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-1572318364164947589</id><published>2011-01-22T20:21:00.000-05:00</published><updated>2011-01-22T20:21:58.173-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='startup'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Startuping in Montreal</title><summary type='text'>I've been following the startup community in Montreal from afar for a while now. Last week, I decided to jump into it at startupcamp montreal 7. More than 700 people interested in startups showed up. You could feel that something is going on in Montreal. The interest in startup have been there for a long time, but now structures to surround the entrepreneurs in their journey are emerging.

If you</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=1572318364164947589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1572318364164947589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1572318364164947589'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2011/01/startuping-in-montreal.html' title='Startuping in Montreal'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-5413640974759172656</id><published>2010-11-01T23:08:00.000-04:00</published><updated>2010-11-01T23:08:42.116-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>A Programmer Reborn</title><summary type='text'>Can't believe it has been a year and a half since I last wrote on this blog. I can't believe it, but I know why...at least now I know.

I was bored about programming.

I even thought about deleting the blog altogether a few times...but that meant denying a part of who I am...a coder.

So what happened?

I've been working at the same place for many years now, doing pretty much the same thing for </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=5413640974759172656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5413640974759172656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5413640974759172656'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2010/11/programmer-reborn.html' title='A Programmer Reborn'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-8679466925053671783</id><published>2009-08-04T22:19:00.012-04:00</published><updated>2009-08-05T08:43:46.463-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Is your blog telling a lot about who you are?</title><summary type='text'>I think it does. True or not, at least people will attach a personality to the blogger based on the blog.The way it looks...the layout...the author's picture...the text in the about section...the way posts are written...it tells a lot...so be careful.As examples...guess who's behind...Green on black. Quick, short and irregular posts on random thoughts on technology and technology meetups. No </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=8679466925053671783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8679466925053671783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8679466925053671783'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2009/08/is-your-blog-telling-lot-about-who-you.html' title='Is your blog telling a lot about who you are?'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-1870221356679740331</id><published>2009-07-14T22:09:00.005-04:00</published><updated>2011-01-22T20:27:58.191-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyfight'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Free it! Rip it!</title><summary type='text'>A documentary about copyright and free culture. A must see!http://nfb.ca/rip</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=1870221356679740331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1870221356679740331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/1870221356679740331'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2009/07/free-it-rip-it.html' title='Free it! Rip it!'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-5684429058244072998</id><published>2008-10-28T17:08:00.000-04:00</published><updated>2008-10-28T19:02:57.062-04:00</updated><title type='text'>The Montreal Tech Community</title><summary type='text'>You are in Montreal, you love technology, you believe in sharing, openness and community, I suggest you read the following blogs...http://montrealtechwatch.com/ - by Heri. This is a good starting point to know what's happening in the tech community in Montreal.http://www.billionswithzeroknowledge.com/ - by Austin Hill, a serial entrepreneur who just launched Akoha.http://www.afroginthevalley.com/</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=5684429058244072998' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5684429058244072998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5684429058244072998'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/09/montreal-tech-community.html' title='The Montreal Tech Community'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-5979112614572042284</id><published>2008-10-15T21:17:00.005-04:00</published><updated>2008-10-15T21:53:00.373-04:00</updated><title type='text'>A Creative World</title><summary type='text'>Poverty is not only about money...and solving poverty is not only about giving...it is also about sharing.What if education was global? What if every book was free, accessible to anyone? What if anyone could access, remix and reuse every single piece of work that exists...literature, music, movies,...free of charge!What if knowledge was global? Patents are about protecting intellectual property..</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=5979112614572042284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5979112614572042284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5979112614572042284'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/10/creative-world.html' title='A Creative World'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-5862712380314728457</id><published>2008-07-20T17:12:00.019-04:00</published><updated>2011-01-22T20:27:58.192-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Good Software Engineers</title><summary type='text'>First there was The Dip. It basically says that if you are not aiming at being the best at what you do, you are wasting your time. The big pay-off is only for those who are exceptional. The others are interchangeable. This got me thinking...I'm spending about a third of the week as a software engineer and I don't want to waste that much time, so I better make sure I keep improving in this </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=5862712380314728457' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5862712380314728457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/5862712380314728457'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/07/good-software-engineers.html' title='Good Software Engineers'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-3505783616140385239</id><published>2008-06-04T22:26:00.006-04:00</published><updated>2011-01-22T20:27:58.192-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Fact-Based Software Development</title><summary type='text'>In my opinion, software development decisions are often based on false knowledge: geek-gossip, guesses, techno-trends.Recently, I read "The McKinsey Way". The book is uneven; some sections are very interesting, some are close to useless. But I learned that when facing a problem, the best business consultants gather relevant facts first. Then brainstorm to find options. Evaluate, test, and finally</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=3505783616140385239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/3505783616140385239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/3505783616140385239'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/06/fact-based-software-development.html' title='Fact-Based Software Development'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-6159251020672829327</id><published>2008-03-22T17:24:00.006-04:00</published><updated>2009-01-01T13:53:25.791-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyfight'/><title type='text'>Qui est Lawrence Lessig?</title><summary type='text'>Qui est Lawrence Lessig? Depuis quelques jours, quoi que je lise, je retombe sur lui.Vous vous souvenez de mon post de jeudi dernier sur le copyfight et Creative Commons (CC)? Hé bien en regardant la liste des Commoners, je suis tombé sur Hugh McGuire et son projet Librivox. Je reconnaissais Hugh, parce qu'il fut le premier présentateur au dernier BarCampMontreal. J'avais bien aimé sa </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=6159251020672829327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6159251020672829327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6159251020672829327'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/qui-est-lawrence-lessig.html' title='Qui est Lawrence Lessig?'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-4468673014644039555</id><published>2008-03-22T17:24:00.003-04:00</published><updated>2008-03-22T17:25:54.322-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyfight'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Copyfight!</title><summary type='text'>Je lisais aléatoirement Changer le monde: Un guide pour le citoyen du XXIe siècle et je suis tombé sur la section qui parle du copyfight.  Suite à cette lecture, je me suis rendu sur le site de Creative Commons et j'ai trouvé le vidéo ci-dessous. Inutile de dire que je supporte totalement cette initiative. Comme dit un autre petit vidéo: 'Creativity always builds on the past.' Le web est une </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=4468673014644039555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/4468673014644039555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/4468673014644039555'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/copyfight.html' title='Copyfight!'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-6825459917326919680</id><published>2008-03-22T17:23:00.002-04:00</published><updated>2008-03-22T17:25:17.040-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>The Next Social Web</title><summary type='text'>The web has now evolved into an organic platform that grows with the content created by the millions of netizens. They use the net to communicate, to network and to share. People have finally conquered the web. Nowadays, when we want to buy a book or find a great restaurant we go on the web and read reviews by people for people. Only a few years ago, product information was pushed to us by ads. </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=6825459917326919680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6825459917326919680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/6825459917326919680'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/next-social-web.html' title='The Next Social Web'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-594766868968481055</id><published>2008-03-22T17:22:00.001-04:00</published><updated>2008-03-22T17:22:38.532-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>BarCampMontreal3</title><summary type='text'>Hier, c'était le BarCampMontréal3. Il devait y avoir plus d'une centaine de personnes rassemblées à la SAT  sur St-Laurent. Comme la règle de base d'un BarCamp est que tous les spectateurs sont aussi des participants et organisateurs, donc responsables de l'organisation de l'événement, je me suis rendu à la SAT vers 8h30 pour donner un coup de main. Les premières présentations commençaient à 10h.</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=594766868968481055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/594766868968481055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/594766868968481055'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/barcampmontreal3.html' title='BarCampMontreal3'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_P8mqvZp7tKk/Ry5PRy6lu5I/AAAAAAAAAH4/dNvgXcqUDWs/s72-c/DSC03320.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-4461534055968838666</id><published>2008-03-22T17:21:00.002-04:00</published><updated>2008-03-22T17:22:01.436-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Business of Software - Jour 2</title><summary type='text'>Je ne savais pas trop à quoi m'attendre pour cette deuxième journée de conférences. Tous les présentateurs vedettes étaient déjà passés et les sujets proposés semblaient s'éloigner du logiciel.La journée a encore commencé par un double déjeuner (6h et 8h). Il faut bien que je remplisse le t-shirt médium non? Le premier présentateur fut Dan Nunan sur la simplicité et le marketing. L'idée: avoir un</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=4461534055968838666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/4461534055968838666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/4461534055968838666'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/business-of-software-jour-2.html' title='Business of Software - Jour 2'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-8389935132803753196</id><published>2008-03-22T17:21:00.001-04:00</published><updated>2008-03-22T17:21:28.501-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Business of Software - Jour 1</title><summary type='text'>Arrivé au Marriott à 8h, je me mets en ligne pour m'enregistrer. On me demande alors ma taille pour le t-shirt. Quoi, pas de small?? Est-ce que c'est un préjugé envers les informaticiens? Est-ce que c'est parce que le marché pour les 'small' est trop réduit aux États-Unis? Tant pis, un médium...et je me mets en ligne pour mon 2e déjeuner ;-)La première présentation, celle de Guy Kawasaki sur </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=8389935132803753196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8389935132803753196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/8389935132803753196'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/business-of-software-jour-1.html' title='Business of Software - Jour 1'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_P8mqvZp7tKk/RydCfC6luxI/AAAAAAAAAG4/wRti-s_hrcs/s72-c/DSC03311.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7928410376907964102</id><published>2008-03-22T17:18:00.001-04:00</published><updated>2008-03-22T17:18:27.647-04:00</updated><title type='text'>En attendant le début de la conférence...</title><summary type='text'>Hier soir, je suis allé faire un tour au San Jose Marriott pour voir à quoi ressemble le site de la conférence.Ce matin, je me suis levé à 5h. Vive le décalage horaire! Comme la conférence ne commence qu'à 8h, j'ai profité de la connexion internet pour passer le temps...</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7928410376907964102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7928410376907964102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7928410376907964102'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/en-attendant-le-dbut-de-la-confrence.html' title='En attendant le début de la conférence...'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_P8mqvZp7tKk/RyXx4S6luuI/AAAAAAAAAGg/EkQZGqJXiJY/s72-c/DSC03306.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-2531649336204976233</id><published>2008-03-22T17:17:00.001-04:00</published><updated>2008-03-22T17:17:42.512-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Le barcamping</title><summary type='text'>La saison de camping s'achève, mais le barcamping débute à Montréal samedi prochain. Qu'est-ce que qu'un Bar Camp? C'est un regroupement de gens passionnés de technologies qui se rencontrent et qui organisent une conférence informelle. L'objectif principale est d'échanger de l'information. Le mot d'ordre est: "Il n'y a pas de spectateurs, seulement des participants". Le troisième Bar Camp </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=2531649336204976233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2531649336204976233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2531649336204976233'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/le-barcamping.html' title='Le barcamping'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_P8mqvZp7tKk/RyVYkS6lutI/AAAAAAAAAGY/np87rBs5Pqg/s72-c/Barcamp_montreal_orange.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-2328344381133694375</id><published>2008-03-22T17:16:00.002-04:00</published><updated>2011-01-22T20:27:58.193-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>The Human Voice of the Internet</title><summary type='text'>I'm reading the Cluetrain Manifesto. It is an interesting and rather provocative book that forecasts the end of the current business paradigms. The authors argue that this radical change is caused by the internet, which is bringing back something we have lost a long time ago, authentic human conversations. I haven't finished the book yet, but I want to share a part of the thinking I have had on </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=2328344381133694375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2328344381133694375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/2328344381133694375'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/human-voice-of-internet.html' title='The Human Voice of the Internet'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7695958937986790873</id><published>2008-03-22T17:14:00.000-04:00</published><updated>2011-01-22T20:27:58.194-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Programmer Manifesto</title><summary type='text'>Software is changing the way we do business. It is time for business to change the way it does software.Current methods for managing software development are wrong in most organisations. They prize long hours and tight deadlines in order to speed up organisational growth and profit.I believe people should come first. I believe in open communications and global collaboration. I believe in hard </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7695958937986790873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7695958937986790873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7695958937986790873'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/programmer-manifesto.html' title='Programmer Manifesto'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-822806399478495374</id><published>2008-03-22T17:13:00.001-04:00</published><updated>2011-01-22T20:27:58.194-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>How does it scale?</title><summary type='text'>As a programmer, whenever we add new pieces of code in a software, we should ask ourselves “How does it scale?” What if it gets executed many times a second. What if it is executed on all nodes in the cluster simultaneously? Will it waste CPU cycles? Will it fill the memory or the log files with garbage? Could it crash the whole cluster?As a human, whenever we buy something, we should ask </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=822806399478495374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/822806399478495374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/822806399478495374'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/how-does-it-scale.html' title='How does it scale?'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7621321576485770201</id><published>2008-03-22T17:12:00.001-04:00</published><updated>2011-01-22T20:27:58.194-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Iteration and Feedback</title><summary type='text'>We often think of iterative processes as successive refinements. But the key to the success of any iterative process is the feedback received between iterations. The quality of that feedback will determine the quality of the output. But what kind of feedback do we need? Suppose you are driving a car on a highway. You want to drive as fast as possible but you also want to avoid getting a speeding </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7621321576485770201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7621321576485770201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7621321576485770201'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/iteration-and-feedback.html' title='Iteration and Feedback'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-7961000363928099164</id><published>2008-03-22T17:11:00.001-04:00</published><updated>2011-01-22T20:27:58.195-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Conceptual Integrity</title><summary type='text'>     In my last post, I mentioned the agile manifesto. Agile software development methodologies are very fashionable these days...almost too fashionable. These methods for developing software are a response to the 'Big Design Upfront' methodologies where you design the software system first and then you start coding. The main problem with the BDU approach comes from the fact that the system </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=7961000363928099164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7961000363928099164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/7961000363928099164'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/conceptual-integrity_22.html' title='Conceptual Integrity'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7285584530633112456.post-3960178398459357665</id><published>2008-03-22T17:09:00.002-04:00</published><updated>2011-01-22T20:27:58.195-05:00</updated><title type='text'>On manifesto and vision</title><summary type='text'>I woke up this morning wanting to read the hacker manifesto. This was written in 1986 by 'The mentor'. I was pretty young at that time and had no clue about computer or software. I discovered it many years later and it certainly played a role in bringing me to the software world. Not that I'm considering myself a hacker, but the criticism, cynicism of that text had always fascinated me. How can </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7285584530633112456&amp;postID=3960178398459357665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/3960178398459357665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7285584530633112456/posts/default/3960178398459357665'/><link rel='alternate' type='text/html' href='http://www.musicdrivendevelopment.com/2008/03/on-manifesto-and-vision.html' title='On manifesto and vision'/><author><name>Félix Trépanier</name><uri>http://www.blogger.com/profile/18022355298251047970</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_P8mqvZp7tKk/R-WBaLvCiJI/AAAAAAAAAIc/B7fQYiwfPuU/S220/n708278746_1715.jpg'/></author><thr:total>0</thr:total></entry></feed>
