Archive for March 2005

Quick google seaches

68 f – returns the equivalent temperature in degrees C. Does not seem to work the other way around though.
weather 90210 – returns the weather forecast for the requested zip code (90210 = Beverley Hills CA)

Agile Management

I started reading Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results by David J Anderson & Eli Schragenheim yesterday. I came across the book because I read some interesting blog entries on David Anderson’s blog.

It is really fascinating reading so far. He has really put a lot of thought into the maturityof software development, and where we need to go to move forward. Similarly to Lean Software Development, the author suggests that although creating software is different from manufacturing, we can still learn some things from the management processes that manufacturers use.

I can’t wait to read more…unfortunately, for now I have to work work work…

The DataNet

As I continue to create and work with applications that manipulate data, I am struck by how little the current set of APIs match what is actually required at the coding level.

Forget about databases for a minute, and focus on goals for data storage by an application. The way I see it, I want to store data in some combination of the following scopes:

  • current user – usually application settings and configs. No common api, only some basic toolsets, such as Nini. Usually stored in a SQL database or the user’s Windows profile.
  • current machine – Windows registry, app.config files, INI files, isolated storage
  • RAM – in memory objects
  • other users of the same application – SQL databases, SQL replication
  • other users using a different application – SQL databases, remoting/DCOM, web services
  • everyone who wants it – web services

(Security and data caching add some more dimensions to the above-list, but I’ll get into that in a different post). As you can see above, we have various technologies for dealing with each of these scopes, none of which is very compatible with the others. Programmers are forever trying to reconcile these technologies, which has given rise to several concepts:

  • SOA (Service Oriented Architecture) – a buzzword for the concept of creating a service layer in an application, as a kind of gatekeeper.
  • Object-based databases and O/R mappers – attempts to move the persistent storage of data closer to the in-memory representation, thus making programmer’s lives easier

I propose that what we need is a much more far-reaching solution – the DataNet. The idea is that from a programming perspective, we no longer communicate with databases, or file systems, or even the network. We create a configurable object called the DataNet, and we tell it to persist data, using various flags to indicate how we want that data to be available. For example:

myDataNet.Publish(myObject, Scope.Machine || Scope.Application)

This command would take care of saving my data, to be available on the current machine (independent of local network connectivity), the same application (in a SQL database). Scopes would have to be completely customizable and pluggable, so that developers could define their own.

Within the DataNet, each object would have to be unique, i.e. some type of Guid identifier, in combination with a namespace indicating the object ownership.

Here’s an example of a line of code to ensure that the local machine has access to all data in the current application, even if the network goes down.

myDataNet.EnsureAvailable(Scope.Machine, Scope.Application)

In SQL Server replication terms, this simpistic command makes the local machine an updatable subscriber to the application database. The mechanics of that relationship are not important (although of course, there are performance considerations).

The DataNet concept is still pretty vague in my mind, but it sure would be nice if we could do things this way.

Some of my favorite quotes

Over the last week or so, I collected a few quotes, shared here for your viewing pleasure…

“XML is like violence: if it doesn’t solve your problem, you aren’t using enough of it.” – Chris Maden, seen on http://www.whump.com/moreLikeThis/

“Not every damned thing in your toolbox has to come from Redmond! You know that uncomfortable feeling you get every time you try to run real fast? That’s your mommy’s umbilical cord snapping you back to your place at her feet. If you snip it off just above your navel, you wouldn’t believe the depth and breadth of the world of opportunities out there waiting to embrace you :) ” – Scott Bellware

I also subscribe to the RSS feed for Quotes of the Day, which is quite entertaining. Here are some of my favorites:

  • “An undefined problem has an infinite number of solutions.” – Robert A Humphrey
  • “In the beginning there was nothing. God said, ‘Let there be light!’ And there was light. There was still nothing, but you could see it a whole lot better.” – Ellen DeGeneres
  • “The mind of a bigot is like the pupil of the eye. The more light you shine on it, the more it will contract.” – Oliver Wendell Holmes Jr
  • “Don’t worry about people stealing an idea. If it’s original, you will have to ram it down their throats.” – Howard Aiken
  • “Television is the first truly democratic culture – the first culture available to everybody and entirely governed by what the people want. The most terrifying thing is what people do want.” – Clive Barnes
  • “Nothing is impossible for the man who doesn’t have to do it himself.” – A.H. Weiler
  • “The generation of random numbers is too important to be left to chance.” – Robert C Coveyou
  • “It is not worth an intelligent man’s time to be in the majority. By definition, there are already enough people to do that.” – G.H. Hardy

Finally, some from the king of humourous quotes, Douglas Adams:

  • I love deadlines. I like the whooshing sound they make as they fly by.
  • In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move.
  • The ships hung in the sky in much the same way that bricks don’t.
  • There is a theory which states that if ever anybody discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory which states that this has already happened.
  • Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so.
  • He felt that his whole life was some kind of dream and he sometimes wondered whose it was and whether they were enjoying it.
  • Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.