2009.02.25
Start With the Most Difficult Part
There’s not a lot you can change in the process of constructing a building. You must lay the foundation before you erect the upper floors, and you can’t paint without having the walls in place. In software, we’re blessed with more freedom.
Continue reading "Start With the Most Difficult Part"Last modified: Wednesday, February 25, 2009 2:58 pm
2009.02.18
The Information Train
The Information Train is a scientific
experiment that I presented at the
Wizards of Science 2009 contest over the past weekend.
The entry demonstrates how computers communicate with each other by
setting up a network in which a model train transfers a picture's pixels
from one computer to the other.
You can find
a video of the experiment
on YouTube, and, if you're interested, you can also download
the corresponding software and schematics from
this web page.
Continue reading "The Information Train"Last modified: Wednesday, February 18, 2009 4:21 pm
2009.02.10
Visualizing Revision Logs with a UML Sequence Diagram
How can you visualize the developers' contributions in a collaborative
project?
One way involves drawing timelines adorned with marks indicating
each developer's contribution.
This is a simple UML sequence diagram,
a diagram that allows you to see the interactions of objects,
but in this case the objects are the actual developers and the
interactions are their contributions.
Continue reading "Visualizing Revision Logs with a UML Sequence Diagram"Last modified: Tuesday, February 10, 2009 12:34 am
2009.02.04
Beautiful Architecture
What are the ingredients of robust, elegant, flexible, and maintainable software architecture?
Over the past couple of years, my colleague
Georgios Gousios
and I worked
on answering this question through a collection of intriguing essays
from more than a dozen of today's leading software designers and architects.
Continue reading "Beautiful Architecture"Last modified: Wednesday, February 4, 2009 1:48 pm
2009.02.03
The World's Smallest Domain-Specific Language
Domain-specific languages, also known as little languages, allow us
to express knowledge in a form close to the problem at hand.
In contrast to general-purpose languages, like Java or C++,
they are specialized for a narrow domain.
Earlier today I wanted to initialize a rectangular array of Boolean
values to represent the stick figure of a human.
For that I devised a tiny domain-specific language (DSL) consisting of
two symbols (representing an on and an off pixel) and wrote its
commensurably simple interpreter.
Continue reading "The World's Smallest Domain-Specific Language"Last modified: Tuesday, February 3, 2009 1:04 pm