software

GWT coming to Spring Roo

One of the problems with starting a new project is the time to set up the project. In recent years some frameworks, like Ruby-on-Rails have created a quick ways to set up projects days are not wasted setting up the project, build system and test environment. Spring Roo provides a way of creating project infrastructure for Spring-based web applications. It was announced in 2009 and produces the basic project layout and a working application connecting through to a database.

C++, Object Orientation and Alan Kay

I seem to have a recurring conversation these days about C++, and how badly designed it is. Despite knowing the language quite well I cannot defend it, I’ve been programming long enough to have used pre-template compilers and to remember when compilers went through the “C with objects” phase. However any programmer might feel about the language it is damming is that is has never really supplanted C as a replacement language. New C projects are still being started despite it’s lack of OO. Many a major project is still being written in C.

Hacking Additional Camera Features for your Canon

There is a community that has been taking apart canon firmware and adding extra features to cameras. So far they are mainly doing this on point and shoot cameras. So if you have an old IXUS you might want to try it: although it's probably not for the faint of heart. Loading the new firmware gives a number of features to your point and shoot that weren't there before such as:

  • Greater control over the shutter and ISO
  • Providing RAW if it wasn't there before.
  • Live histogram, visual indication of over/underexposed areas (Zebra mode)

Amazing thinking sculptures

Dutch artist Theo Jansen creates creatures powered by the wind that are able to react to their environment. These amazing creatures are built to live on the beach and are able to store up wind energy and detect when the tide is in. He uses genetic algorithms to evolve new breeds of these animals before building them.

Distributed Source Control popularity

The change-over to distributed Source-code control seems to be only a matter of time. Dispite the hype subversion makes many jobs harder, it might help with renaming files but it doesn't. The battle has really already been won my distributed systems in many organisations. There are a few factors that have prevented wholesale takup of distributed source-code control:

  • Maturity of tools. Many of the existing systems exist as extended research projects. They are scripts on top of other systems written in perl or python. Where they might work very well they are slow.

Developments in Configuration Management tools

Like many I cannot wait for a better configuration management tool. Possibly the most widely used tool up until recently was CVS (on UNIX at least) and the even worse SourceSafe (on windows). You cannot be overly critical of CVS--- to my mind anyway, it is a child of the eighties, and as so is more than a grandfather to most systems out there. Its popularity has remained because it's free and relatively easy/maintain. Also there is a large body of knowledge from people who have been using it for all these years. In the last few years Subversion has arrived as a CVS replacement--- why subversion should be considered a CVS replacement when no other is is anyone's guess. Little is similar to CVS. There are notable improvements like atomic commits and versioned directories. All make people who have used it not want to convert back to CVS. However, it looks like a product of the 90's. Current research and other systems are much better at handling change and are more suited the way modern teams work. There have been some interesting developments in recent years, that might mean that Subversion will either have to adapt or it will be supplanted by a newer system--- one more suitable to how development is performed now. Two of the most interesting developments are:

BlogTag: 

Dependancy Structure Matrix

To manage complex interdependencies of components in software architectures a Dependancy Structure Matrix can be produced. This is a relatively recently documented technique is great for an overview of the project: it can be used to get a feel of the system design and the actual relationships beyond that of a block diagram. It might help to identify where the system might be brittle and require refactoring.

BlogTag: 

Fredrick Brooks Jr talked up Agile methods

Fredrick Brookes Jr, notable for his contributions to Computer Science. Presented a lecture in 2000, just before the publication of Kent Beck's White Book, on interative development. He called it the Design of Design.

BlogTag: 

Let the language be your guide


'Tis but thy name that is my enemy.
Thou art thyself, though not a Montague.
What's Montague? It is nor hand, nor foot,
Nor arm, nor face. O, be some other name
Belonging to a man.
What's in a name? That which we call a rose
By any other word would smell as sweet.
So Romeo would, were he not Romeo called,
Retain that dear perfection which he owes
Without that title.

Design Simplicity

In design, and software design is no exception, simplicity is hard. It's not just a matter of reducing the number of variables or applying Occam's Razor, although this may help to a degree. Simplicity does not mean trivialing either. Sometimes particularly, in visual design, simplicity can be knowing about people. A design can be arranged in an intuitive way, the complexity reduced not by removal; but rearranging to appeal to intuition. Some software packages, like word, have more functions than ever--- the number of functions hasn't decreased; some would say that makes them less usable. But on the hole, the functions that most people want from word are readibly available.