|
I like metadata for some tasks. Luckily for all of us, Commons-Attributes implements metadata for pre-Tiger JDKs. Unluckily, it requires an extra compilation step (with Ant, no less). But no more. I’ve created an extension that does it all in memory. The class uses both xjavadoc and commons-attributes. Here is an example of usage: CommonsMemoryAttributes attributes = new CommonsMemoryAttributes("src"); Class testClass = AttributeTestClass.c..
|
|
How should development teams be organized? Reduce chatty interfaces. In Lean Software Development Mary Poppendieck describes the seven wastes of production and their analogy in software development. Three of these are: Motion (software analogy: Finding information), Waiting (Waiting), and Transportation (Handoffs). I see these in many projects that I am involved in, or hear about. One problem many organizations experience is a divergence of..
|
|
I would like to start by apologizing from having a political entry in my blog. I believe that politics is intertwined with other intellectual endeavour. As scientist and engineers, we have a duty of social awareness, to see that our creations are being used for the benefit of humanity. I was saddened by tuesday’s election results. Up until the eve of November 2nd (Central European Time), I was hoping that the Unites States would wake up fro..
|
|
When I have been using easyMock Mock Objects for testing I often find it helpful to intersperse expectations and test code, for example: mock.start(); control.replay(); server.handleCommand("START"); control.validate(); control.reset(); mock.shutdown(); control.replay(); server.handleCommand("STOP"); control.validate(); Doing this with easyMock requires me to validate and reset the object frequently. I was thinking: What is stopping me from..
|
|
Spring has shown us how to effectively separate the business logic from data access logic. This allows for easy testing of business logic without having to deal with the database, but it does not provide any easy way to test the DAO code. A new feature in the Hypersonic database might just be what the doctor ordered. HsqlDb 1.7.2 introduced RES urls. If you access your database with a RES-url, you get an in-memory database initialized with ..
|
|
For a long time, I have been plagued by comment spam on my blog. To battle this problem, I have now installed a Movable Type plug-in that verifies that posters are not robots. This will hopefully improve the situation. The plug-in is called scode. It displays a number in an image that the user needs to type to verify that he is not a robot. The plug-in was a bit of a pain to install: My version of the perl GD image creation library did not ..
|
|
On JavaZone (which was an huge success, IMHO), Richard Stallman was the guest of honor. He talked about the four freedoms which free software gives you, how the Sun Java implementation is not free, and why that might concern us. Then, he talked about something that should concern all of us, even if you think Free Software is bogus: software patents. As I understand Stallman, if software patents become law, you can violate a patent without k..
|
|
I am currently reading Hackers & Painters by Paul Graham. It contains many brilliant essays, but it also has a few not so brilliant ones. In “Mind the Gap”, Graham proposes the idea “in a modern society, increasing variation in income is a sign of health”. The rationale for this is that some people have the potensial to be more productive than others and by rewarding them proportionally, everyone as a whole would be better off.
|
|
When I look back at the lessons from User Stories Applied, I realise that many approaches to requirements muddles different purposes of requirements together. There are three things requirements need to address in one form or another: First, the development team needs an understanding the needs (requirements) of the user. Second, the project needs a specification of what is inside and outside the scope of the project, as well as the priorit..
|
|
I bought User Stories Applied to get help with practical problems with writing good user stories and requirements in general, but it ended up changing the way I think about requirements and tracking them. The book first fullfills one very important mission. It answers “what is a good user story” with a mnemonic rule: Independent, Negotiable, Valuable, Estimatable, Small, and Testable (INVEST). Cohn refers to William Wake as the source of th..
|
|
We just came back from the Ontario Science Centre today. While my daughter checked out the educational exhibits (obviously learning important information), I was more impressed by the fact that some exhibits that haven’t changed for several years are still powered by Mac Classics! And to boot, the exhibits were still pretty damn good with those old computers.
|
|
We just came back from the Ontario Science Centre today. While my daughter checked out the educational exhibits (obviously learning important information), I was more impressed by the fact that some exhibits that haven’t changed for several years are still powered by Mac Classics! And to boot, the exhibits were still pretty damn good with those old computers.
|
|
In 2004, I had the distinct privilege of being an unpaid Interaction Designer and Programmer for an ambitious Iowa City tech startup hoping to make waves in the then-emerging world of touchscreens. The technology was crude, unreliable, and already a dead-end, but the founders had a patent, some trademarks, and just enough confidence to convince […]
|
|
Today I attended a meeting where IBM/Rational got to extol their glorious Unified Process (RUP). RUP has a lot of good sides, and I think a lot of the high-level ideas are very good. Phases, workflows, artifacts, and roles all make sense. The concepts can be used to understand any process, even “non-processes” like code-and-hack. The central question then is whether the components of RUP individually are the right ones for a given project a..
|
|
I have a confession. I looove gadgets. With many knobs and blinking lights and cool stuff. Stuff like Blinkenlights makes me quite excited. When I was young, I used to play with hours with math. I invented the hyperparabola, which was my own term for a formula that combined a hyperbolic function and a parabolic function. I could make a neat curve based on the formula. Opening Rational’s RUP tool gives me the same feeling.
|
|
Extreme Programming vs. Interaction Design Elden Nelson interviews Kent Beck, the founder of the Extreme Programming method and author of “Extreme Programming Explained: Embrace Change”; and Alan Cooper, the prime proponent of interaction design and author of “The Inmates are Running the Asylum”. The interview is well worth the effort of navigation through the horrible interaction design of FTPOnline. Beck’s analysis of interaction design a..
|
|
Yes! The first thing that strikes me about Eric Evans “Domain-Driven Design: Tackling Complexity in the Heart of Software” is how it seems to bring together the ideas that have resounded the best with me during the last few years. The central thesis of the book is that that enterprise software should to be built around the model that (non-software) experts in the field has of the problem domain. The shared understanding between the software..
|
|
I was recommended “The Art of UNIX Programming” by Eric Raymond (esr) from Joel Spolsky’s “Joel-On-Software” blog. The recommendation in it self warrants some comments, as Joel Spolsky normally is very much a Windows-kind of guy. Despite the title, the book definately has much to offer people who never touch UNIX as well. esr focuses on the cultural aspects as much as the technical aspects. For organisations that are migrating into Unix inf..
|
|
Oh No! DTO! Should DTOs have public variables? Or should they have private variables with getters and setters? [via Artima Weblogs] Finally someone with a little sense on the subject. Notice that this fits in with the idea of “accessors considered harmful”. (Which, just for the record, I noted before Holub) A final observation by Dave Astels: “Sometimes a data structure is just a data structure.”
|
|
I have been looking for a while for a refactoring tool that could improve the encapsulation of my code. More specifically, I want to be able to analyse a closure of code (like what JDepend does), and make methods private, package protected or protected as much as possible. Of course, if it is to be useful, there has to be a good way of defining root classes and methods, ignored name patterns (getters/setters for those who are still addicted..
|
|
Martin Fowler has an excellent piece about MDA on his blog. Also be sure to check out Fowler’s link to Dave “Bederra” Thomas’ article on UML. It seems like quite a few people who are knowledgeable about MDA dislike Fowler’s article quite a bit. I thought it was time someone who knows MDA and is not starry-eyed about it chipped in. Yeah, that would be me, your humble host ;-). I have worked quite a bit with Compuware’s tool OptimalJ, and pre..
|
|
I have been real bad about writing in my blog lately, but I am finally back. It’s been a crazy few months, including a new job, which of course takes up some time. I have now officially stopped working as a consultant, but I still take some projects on the side when time permits. My next interesting event will be Software 2004, where I am both a speaker at the .
|
|
This paper documents the creation and testing of a game playing artificial intelligence (AI) agent program. The agent is designed to play a game of Connect Four by Milton-Bradley. The game is played by dropping pieces into a game board consisting of a grid of 6x7 slots. The object is to make a vertical, horizontal or diagonal line of four pieces before the opposing player does. The agent designed in the current study is able to play against....
|
|
A Literature Review The purpose of this paper is to provide an overview of the existing literature concerning speech segmentation, categorical perception, and some other issues concerning bilinguals of English and Japanese. It will touch on some of the differences in the two languages and how they affect learning the L2. The paper will start by providing background information about some of the two languages and some of the current issues....
|
|
Note: This term is also used about mixed economies. Central dogmas: The purpose of government is to work for a vision of a good society A good society is one where wealth is distributed in such a way that no-one suffers and everyone is given incentives to produce at their fullest capability. Distributed control is superior to central control Monopolies hurt
|
|
It is funny how little incidents reminds us of more general principles… Today, when I went to the store, there was a baby that was crying, and it’s mother kept going, “be quiet now!”, “sit down!”, “hush!” in a real angry voice (the dog-peed-on-the-rug-voice). The whole thing just reminded me of two funny things from cognitive science: Punishment is actually a very ineffective way of teaching. Indeed some researchers believe that punishment ..
|
|
My notes and impressions from a talk Cem Kaner gave at the 2003 Pacific Northwest Software Quality Conference in Portland, Oregon. The title of his talk was “How Many Lightbulbs Does It Take To Change A Tester?”
|
|
If a beginning programmer was to read just one book, this would definately rank high on a list of candidates. (But then again, why should a beginning programmer only read one book) “Agile Software Development: Practices, Principles, and Patterns” is in many ways Robert C. Martin’s magnum opus. After having read much of his papers on Dependency Inversion Principe, the Open-Closed Principle and other object-oriented methods, as well as Extrem..
|
|
I have come to a conclusion: I do not want to be on any more fixed price, fixed scope projects. From what I hear, that is all the projects the consulting business is getting today – if that is the case, I will have to find something else to do. The main reason I take this stance is simple: To me, seeing the value of my work in the real world is the only real measure of accomplishment.
|
|
Update: Cleaned up mess made by “WYSIWYG” tool) Rating: Must-buy The agile movement has started to gain speed and become more mainstream, and the Poppendiecks’s “Lean Software Development” added an important part of the puzzle for me. Like so many manifestos before it, Lean Software Development compares software development to other industries (lean thinking takes its roots in the Toyota manifacturing system). However, the authors reach a v..
|
|
The video from my presentation at this year’s JavaZone are available. The conference has done a lot better job of follow-up this year than last. Thanks, JavaBin. This is actually the first time I get to see a full-length video recording of myself speaking. I was afraid I would be real disappointed, but I am actually fairly happy. Most of the problems with the presentation was things I already was aware of, like the fact that I had way too l..
|
|
Warning: Boring, personal entry) I am writing this entry on a bus. More specifically, on the bus from the airport to the conference Sanntid 2003 (Real-time 2003), where I am scheduled to speak tomorrow. The airport in question is Kjevik airport, which is a military/civilian airport in the south of Norway. Normally, when I ride busses, I like to read. I brought along Mary Poppendieck’s fascinating “Lean Software Development”. This time is di..
|
|
Are those CMM-mandated procedures too difficult and onerous to complete? People will find a work-around, bypassing the intent of the CMM and filling in whatever documents are required to get by. Is that comprehensive (and manual) test plan overly lengthy and tedious? People will take short-cuts. The “extra-legal,” or alternative system will evolve in any social setting where the official mechanism doesn’t cut it. […] [via /\ndy’s Weblog] An..
|
|
Beyond Software Architecture (Luke Hohmann) is an invaluable read for any aspiring project manager or program manager. There is so much more to getting successful programs out the door than just the classical analysis, design, development, test. The most important feature of this book is how it helps frame software development in a larger picture. The point of software development is to create value for someone. It is important not to lose ..
|
|
I came to remember my thoughts on Open-Source software while talking to a friend after lunch today. The idea is that even though reuse of third-party software is something that a lot of companies want to encourage, we don’t really know the total cost of third party software. The problem as I see it is that under almost any circumstance, an organization delivering a composite product is always responsible for the totality of the product.
|
|
Just a little reminder list to myself. Check out this Java technology before next Java project: Pico Container eXo portlets Hibernate
|
|
Read: http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf. The following is an except: Ralph Johnson: So, a better definition would be “In most successful software projects, the expert developers working on that project have a shared understanding of the system design. This shared understanding is called ‘architecture.’ […] the architecture only includes the components and interfaces that are understood by all the developers.â€..
|
|
I have just recovered from JavaZone 2003. This year was quite good. A lot of good speakers this year. I had great fun holding my presentation. I didn’t get through my whole program, but I do think people were entertained, and that was all I hoped for. It is a real rush to present for such a crowd. eXtremeProgramming.no god off to a good start. Along with the other funders, I got to meet Kent Beck.
|
|
Infectious Greed: How Deceit and Risk Corrupted the Financial Markets by Frank Partnoy is a fascinating book. Partnoy describes how the ever raising performance-related bonuses for brokerage bankers in the 1980s lead the brokers to create a succession of schemes to inflate bonuses. The early waves of this phenomenon was in the dervatives business. Derivatives are financial instruments the payoff of which is determined by other factors. The ..
|
|
dATAPLOT art show at St. Xavier University Gallery, curated by Nathan Peck. September 2003 update: 20 year retrospective exhibit at the Beverley Art Center, Chicago
|