Saturday, December 10, 2005
Ellis
The New York Times has a nice article on Ellis, the guy who does chalk tracings in Brooklyn.
I'd like to disagree with the Times, though. He does them in Cobble Hill, not Carrol Gardens.
Friday, December 09, 2005
Boing!
"Existing CMOS sensors can record light 1,000 times brighter than their dimmest detectable light, a dynamic range of 1:1,000, while the Rochester technology already demonstrates a dynamic range of 1:100,000."
Boing!
Thursday, December 08, 2005
Complexity
The more I do this software stuff, the more I think that managing project complexity is one of the keys to consistent success.
- Maintaining documentation at appropriate levels of specificity and organized logically. Good docs help you functionally understand the system at multiple levels. It should be obvious that, if you don't understand the system, you'll write some bad software.
- Using use cases, XP stories, or some other result-focused documentation to drive work. Describing software is inherently complex. Getting Earth people to understand software requirements is near impossible. Use cases or XP stories structure the requirements in terms of visible, useful features, making them far easier to understand and discuss.
- Creating well factored classes. This should be obvious, but well designed classes factor behavior and related data to one entity, making them easier to understand and change.
- Creating both dynamic and static UML describing the systems at appropriate levels of abstraction. Good UML gives you a roadmap for understanding the structure and relationships in the system. UML is succinct and has semantic meaning; it is the best thing we have for describing the basic structure of software.
- Establishing roles for project members to make responsibility clear. Clear roles let team members focus on a set of related tasks, rather than having to context-shift from hour to hour.
- Organizing meetings with as few people as possible. You have a meeting to get something done; each extra person in the meeting adds an additional line of communication, making consensus more difficult. Worst case, the extra people can't even contribute to the topics being discussed. Even worse case, the idiot who can't contribute to the meeting also can't shut up.
- Planning work in order of risk and dependency. Finishing high-risk tasks first means that more simple tasks will be left as integration draws near. Keeping dependencies straight means less re-work on already completed code.
Complexity and risk are closely related. Managing one often mitigates the other. Less-complex systems are easier to understand, easier to modify, and are less likely break in the process.
Taking the reverse, if you see a project that isn't managing its complexity, assume they will bite it at some point.Procmail
Wednesday, December 07, 2005
Bomb
Wall
Tuesday, December 06, 2005
Monday, December 05, 2005
POTD
For my Friend, Edward, whom I keep missing. Because I'm scatterbrained.
I'm making the Canon camera RAW file for this image available under the license below, hoping that you'll take the image and post process it.
I'm always curious to see how others would photoshop the photos I make, so I invite you to realize a final image from this RAW file. You'll need Photoshop CS, or something that can convert Canon RAW files (this one is from a 5D). The image is licensed for non-commercial use, though I'm requesting that you share alike; send me a link to the image you create, or send me the image if you'd rather I host it.
This work and associated RAW file is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.
Sunday, December 04, 2005
Here is an idea.
One of the reasons I like walking around with an iPod is that my world suddenly has a sound track. Sometimes I want to hear the street noise, but sometimes I want music.
But wearing an iPod is kind of antisocial. You end up in your own world.
Wouldn't it be fun if iPods broadcast their signal over Bluetooth, so that anyone within 30 feet could "tune in" to your station? I think I'd like that. I imagine a crowd forming on the sidewalk, following behind the person with the best mix playing. Could also be a mini social network kind of thing. The listening person could have a way to signal back to the "broadcaster" with a VCard, saying, "nice mix" or something like that.
Is this stupid?