September 2004 - Posts
I got forwarded this link today:
What a great list of attributes to aspire to!
This is my last week here at work and, while cleaning my desk I found this quote:
What I sometimes see when I interview people and review code is symptoms of a disease I call Object Happiness. Object Happy people feel the need to apply principles of OO design to small, trivial, throwaway projects. They invest lots of unnecessary time making pure virtual abstract base classes -- writing programs where IFoos talk to IBars but there is only one implementation of each interface! I suspect that early exposure to OO design principles divorced from any practical context that motivates those principles leads to object happiness. People come away as OO True Believers rather than OO pragmatists.
I didn't write that, I found it in a blog some time ago; where I can't remember. I think that that is great advice to remember, especially when prototyping and building small tools.
Because I will soon be looking for work I've decided to take this week off to do some "creative dreaming" about my future. What I've found is that there is a whole other world out there waiting to be tapped. In this week I've visited museums, art galleries and libraries in search of inspiration. I spent a lunchtime just hanging out in a cafeteria at a local university and I've enjoyed bus and train rides to places that I've never visited before. What a week... it's been great just letting my mind run free.
Today was a more structured day as I had to go and see recruitment people and visit my accountant. In between all of my scheduled meetings I decided that I would spend some time at a cafe to try and work out what to do with my free ASP .NET Hosting space.
As you can see from the picture above (not the Ferris Bueller one) I went mad drawing up plans and exploring ideas. Ultimately I came up with a really exciting project that I can't wait to start.
The other day I blog'ged about the new Options panel and today I'd like to announce another part of the expanded testing tools - the Details Grid:
Initially, the Details Grid displays information about Matches however, you can expand each Match out to view detailed information about the Groups within the Match.
At the Group level of data you are presented with all of the useful diagnostic information about the regex's matching behaviour such as:
- Value : the captured value of a Group. In the case where a group has sub-captures, the Value is equivalent to the value of the last Capture in the Group.
- Index : where the capture commenced in the input string.
- Length : the length of the Value. This is useful when the value contains whitespace or unprintable characters.
- Grp. Num. : The position of the Group within the Match. This is the number returned from regex.GetGroupNumbers (Refer Extra Information below). It is important to note that Named Groups *always* occur last. That is, no matter where your named group actually occurs within a match, it will always appear at the end of the Matches Groups collection.
- Name : This is the name of the Group. This is the name returned from regex.GroupNameFromNumber( grpNum ).
- Captures : This field lets you know whether there are sub-captures for this Group. If there are and you want to see their values, you can switch to TreeView mode and view the contents of the entire Match/Group/Capture hierarchy.
Extra InformationRegex: Functionality about named/numbered groups everyone should know.
Yesterday Justin blog'ged about the new features that are included in the new testing tool on RegexLib.com:
...but I just wanted to expand on that a little. In that article Justin mentioned the new "options" panel and alluded to the fact that we'll be adding all future functionality through that widget. Today I just wanted to highlight some of the functionality that I've added to it for this initial release.
The widget can be minimized by toggling the state with the arrow in the top right hand corner of the panel. Again, the state of the panel will be persisted so, if you minimize it, it will be minimized when you re-visit. It's easier to minimize the panel once you have made your initial configuration settings so that you have more space to play with to view matches.
Clicking on the text of any of the radio choices displays help text about that setting. In the future many more Help features will be added into the panel - most likely in the form of "flyouts" and, for each of them the text will be displayed in the center area of the panel.
I have to thank Justin Rogers and Thomas 'Aylar' Johansen for their help in getting this new testing tool to its current state. It was Justin's idea to use the panel as an extensible help provider and configuration widget and Thomas used his design skills to bring the panel to life.
The testing tool
Currently I'm in the middle of replacing the testing tool on RegexLib.com. You can play with the changes that I've made so far at:
The new features include:
- Ability to grab the source from a Url
- Ability to grab the source from a file on your PC
- Able to display .NET matches as either a Grid (group view) or a Tree (capture view)
- Settings that you make in the new "Options Panel" are persisted between sessions
There's more to come, but I wanted to get this stuff live because it's already head-and-shoulders ahead of what I had previously!
As of October I'll be a self-employed guy again. I'm going to spend my time working on my long-standing business - Forest Lake Web Services.
My first task will be to take 2 weeks in the Queensland sun to make some executive business decisions and then I'll be on the lookout for interesting contracts. So, if you are in Australia and looking for someone to teach or speak about .NET then I'd love to hear about it... please get in contact with me.