As we evolve Rico, we will also be looking at the Yahoo library to decide whether it makes sense to take advantage of some of their work.
So, this seems like a good time to provide a quick status update of Rico:
There will be a 1.1.1 bug fix around the weekend.
There will also be some site updates around the weekend as well.
There are improvements to current behaviors as well as new behaviors in the works.
We are currently getting more than 3,000 downloads a week.
I should be cautious about throwing out timeframes when life gets in the way.
The updates (that I mentioned would be out around the weekend) are still coming - though a bit late.
I will post a reference to them as soon as they are available.
It is a good start and I know they have more coming out soon. Making it available in the open source (under a BSD license) is just icing on the cake. With Bill heading up the library team, I expect to see some great things from them.
The obvious second goal for a library has got to be that a 'library has to be simple'.
Being 'simple' is so important in any area of technology that I question the longevity and disruptive capability of any technology or product that is not simple at its core.
As I was thinking of the key goals I want to achieve as Rico moves to 1.2, I came across a new post by Andy Hunt on Why Ruby. He talks about how one of the two main reasons he likes ruby is that it "stays out of your way". I agree that Ruby does a great job in this area by allowing itself to be molded to the problem at hand without getting in the way.
This is probably one of the hardest and yet most important goals of any framework, language, library, application, or tool. I think a good framework/library should allow itself to be shaped to easily work with required technologies and processes that are in place. Being opinionated is great, but only in the areas that the user does not want to worry about.
I am working on some updates to the openrico.org site - I am trying to get off of tigris for the Rico forum and issue tracking. Will also add a wiki and a Rico Blog (there has got to be a clever name there somewhere).
One of the things I am looking at is how to map tigris forum postings and copy them to another forum app.
I will be using rforum for the new forum. Looks pretty simple and I do enjoy tweaking rails apps.
Seems like tigris has a pretty poor service interface, so I guess I will be doing some screen scraping - yuck.
I am starting to look at Rubyful Soup for the screen scraping part.
I will post the resulting code. Hope to be done before weekend.
This morning I did my Monday morning commute (200 miles) that I am doing 3 times a month for the last couple of months. I am just getting to that point where I can zone in and do the trip without much thought as to where I am. At this point, I only become aware of the landmarks and towns when I am curious how my timing is doing. With about 90% - 95% of the trip being highway, I make pretty good time.
The great thing about highways and roads is that they get us where we want without too many detours and with reasonable road maintenance (well, better than driving across the country side without roads). Roads are kind of interesting in that they restrict where we can drive and yet they provide a lot of value by typically following paths that others have traveled in the past.
I am not particularly interested in expressing my creativity and freedom by driving across arbitrary fields that don't have roads (besides, my wife gets plenty upset with what little off-roading I do). I am much more interested in getting somewhere in the quickest and simple way possible - scenic drives are part of a different story. We are content to live with this restriction, because it adds lots of value to our lives.
As we evaluate frameworks, we need to consciously decide which part of our work we need be creative in and what part we just want to get done with minimal effort and thought (but with sufficient quality). Frameworks like Ruby on Rails, really restrict us in many ways (for example: directory structure), but allow us to really concentrate our effort in areas where creativity matter to an application.
I also think back on the old story where an architect waited to lay the sidewalks at a university until after the first snow. He then looks at where the majority of the people tracked through the snow and lays the sidewalk along those paths. You can see this as a kind of framework extraction process as well as a wisdom of the crowds sort of thing.
So, as we looks at software frameworks, we really need to understand how they restrict us so that we can spend our time and effort to be more creative in areas that add value.
Kathy Sierra has a great right up on using constraints to increase creativity in her post "Creativity on Speed".
Well, this road stuff might be stretching it a bit,... but it seems far better than most road based metaphors used by large enterprises in the technology field. And besides, I have to think about something for those 200 miles. Happy driving.
One of most important indicators for software quality is habitability. This can be see this from 3 perspectives: Firstly, how habitable is the code for others to live comfortably (convenient and simple) with. Then of course, there is always the habitability of the UI from the users perspective. And lastly, there is the habitability of the application for those that must administrate it (it is a good citizen and easy to administrate in the environment it runs in).
Of course habitability is not easily appreciated in software (like buildings) until it is in an executable form and is actively used in all three of these perspectives. I also find it interesting that if the software is truly habitable, then the time spent by all three of these user types is minimal. Or, at least it is fairly transparent in that the software stays out of your way or does not distract you when you use or change it.
As I recall (though I can't find a specific quote right now), Christopher Alexander always emphasized that one one of the most important criteria for quality in an architecture, is that the building must support (if not enhance) the peoples daily activities as they flow through it.
I will try to explore habitability in software applications and their associated frameworks as well as delve into the three perspectives of habitability over the next few months.
I attended the "Getting Real Workshop" from 37signals yesterday. Lots of content in one day. I really enjoyed Jason's and David's presentation style. I will try to talk about my thoughts in the coming week.
On another thought, I find it interesting how we rate events, movies, and books. Sometimes we rate them on pure entertainment (visual, action, funny,...) value. Other times we rate them on how well their message was conveyed. And, then on other occasions, I find that I get something out of them beyond what was intended.
This last one is real interesting to me. Sometimes when people ask me whether a movie is good or not, I have a problem rating them objectively. Because, sometimes a movie may not be particularly good, but it may have influenced thoughts because of my state of mind. Sometimes, even though my state of mind might be very different than the movie plot, there are very subtle aspects of a movie that sometimes opens up a train of thought in my mind that I had not realized was there before. Usually this happens when I am thinking of a specific problem or topic. I find this fascinating. I also love when it happens. Of course, with todays movies it is difficult to tell whether this is ever intended or not.
BTW, I think the "Getting Real Workshop" has a good share of all 3 - entertainment, intended messages, and some unintended messages (or perhaps they were intended).