I did something most unusual the other day - I purchased some software.
The unusual thing wasn't the purchasing (I do try and keep legitimate), but that I did it rather than getting work to pay for it.
What I bought was the SnoopSoft Dashboard and WebCalendar bundle for my HP iPAQ rw6828 Pocket PC.
It turned out to be quite cheap (USD17.95 - only AUD23.13 for me), and I couldn't really claim it was for work purposes.
The main feature I'm interested in is the WebCalendar. This lets me display the agenda from my Outlook/Exchange calendar at work and also a number of Google Calendars as well.
I've recently created a private "family" calendar, and also created one for our basketball matches (that one's public).
So now I get a view of all the coming events for both work and home stuff. The nice thing is that this mirrors what I can do in Outlook 2007 by adding those same calendars as Internet Calendars.
The only problem I've found with the software to date is that it isn't able to retrieve the Google Calendars when my iPAQ is docked to my work computer. I think it's related to the fact that we use a proxy to access the Internet. Hopefully this can be resolved soon.
I've published an updated version of my Australian Weather Radar Gadget.
I had a request from Simon to enable the 256km images as he lives just out of range of his closest radar's 128km image.
A small number of the Bureau's radars also support a 64km image (Adelaide's Buckland Park being one), so I also added that option while I was at it.
When you set the image height, it also now resizes the "centering" image on the settings page, so it should now correspond to the same size as is shown in the sidebar.
Ideally, I'd re-write the re-centering so that it would use a drag/drop method like Google Maps etc, but my initial trials weren't successful. Either I'm not coding it right, or drag/drop is disabled for sidebar gadgets.
Despite comments on the gadget page asking for weather details, I'm not planning to add them to this gadget at this stage - I figure it's better to concentrate on one thing and try and do that well.
Developer Express have released new versions (2.2.2) of their ASP.NET and VB.NET refactoring tools.
These are both free cut-down versions of their Pro product (USD99 per license).
I was curious as to what the overlap was between the three products, as they don't appear to have a nice comparison table on their website. So here's list of the included refactorings in each edition:
|Refactor! Pro ||Refactor for ASP.NET ||Refactor for VB + Bonus|
|Add Block Delimiters || |
|Add Parameter || ||Add Parameter|
|Add Validator ||Add Validator |
|Boolean to Enum || |
|Break Apart Parameters || |
|Case to Conditional || |
|Change Tag || |
|Collapse Accessors || |
|Combine Conditionals || |
|Compress to Null Coalescing Operation || |
|Compress to Ternary Expression || |
|Conditional to Case || |
|Convert to HEX || |
|Convert to Named Color || |
|Convert to RGB || |
|Create Method Contract || ||Create Method Contract|
|Create Method Stub || |
|Create Multi-variable Declaration || |
|Create Overload ||Create Overload ||Create Overload|
|Create Setter Method || |
|Create With Statement || ||Create With Statement|
|Decompose Parameter || |
|Encapsulate Field ||Encapsulate Field ||Encapsulate Field|
|Expand Accessors || |
|Expand Null Coalescing Operation || |
|Expand Ternary Expression || |
|Extract ContentPlaceHolder ||Extract ContentPlaceHolder |
|Extract ContentPlaceHolder (and create master page) ||Extract ContentPlaceHolder (create master page) |
|Extract Function (outside of class) || |
|Extract Interface ||Extract Method ||Extract Interface|
|Extract Method ||Extract Property ||Extract Method|
|Extract Property ||Extract Style (Class) ||Extract Property|
|Extract Style (Class) ||Extract Style (id) |
|Extract Style (id) ||Extract to User Control |
|Extract to User Control ||Flatten Conditional |
|Flatten Conditional || ||Flatten Conditional|
|ForEach to For || |
|For to ForEach || |
|Inline Format Item || |
|Inline Macro || |
|Inline Recent Assignment || |
|Inline Result ||Inline Temp |
|Inline Temp || ||Inline Temp|
|Inline With Statement ||Introduce Constant ||Inline With Statement|
|Introduce Constant || ||Introduce Constant|
|Introduce ForEach Action || |
|Introduce Format Item ||Introduce Local |
|Introduce Local ||Introduce Local (replace all) ||Introduce Local|
|Introduce Local (replace all) || ||Introduce Local (replace all)|
|Introduce Result Variable || |
|Introduce Setter Guard Clause || |
|Line-up Arguments || |
|Line-up Parameters || |
|Lock to Try/Finally || |
|Method to Property ||Move Declaration Near Reference ||Method to Property|
|Move Declaration Near Reference ||Move Initialization to Declaration ||Move Declaration Near Reference|
|Move Initialization to Declaration || ||Move Initialization to Declaration|
|Move Method to Header || |
|Move Method to Source File ||Move Style Attributes to CSS |
|Move Style Attributes to CSS ||Move to Code-behind |
|Move to Code-behind || |
|Move Type to File || |
|Property to Method || ||Property to Method|
|Optimize Namespace References || |
|Remove Assignments to Parameters || ||Remove Assignments to Parameters|
|Remove Block Delimiters || |
|Remove Empty Handler || |
|Remove Parameter || ||Remove Unused Parameter|
|Remove Private Setter || |
|Remove Redundant Conditional || |
|Remove Setter Guard Clause || |
|Remove Tag || |
|Remove Type Qualifier || |
|Rename File to Match Type || |
|Rename Style ||Rename |
|Rename || ||Rename|
| ||Reorder Parameters ||Rename Local|
|Reorder Parameters ||Replace Temp with Query ||Reorder Parameters|
|Replace Temp with Query || ||Replace Temp with Query|
|Replace with Alias || |
|Replace with Constant || |
|Replace with Local ||Reverse Conditional |
|Reverse Conditional ||Safe Rename ||Reverse Conditional|
|Safe Rename ||Simplify Expression ||Safe Rename|
|Simplify Expression ||Split Initialization from Declaration ||Simplify Expression|
|Split Initialization from Declaration || ||Split Initialization from Declaration|
|Split Multi-variable Declaration ||Split Temporary Variable |
|Split Temporary Variable || ||Split Temporary Variable|
|Split With Statement ||Surround with Update Panel |
|Surround with Update Panel || |
|Use IsNullOrEmpty || |
|Use StringBuilder || |
|Use String.Compare || |
|Use String.Format || ||Use String.Format|
|Using to Try/Finally || |
|Widen Scope || ||Widen Scope|
I'm sure this was in the news, but somehow I missed it.
The Australian Do Not Call Register is now open for business.
"On your bike" Telemarketers!
"Lean Thinking" is a process management philosophy, and is often associated with Toyota Production System.
I first heard of this via my friend Jane, who is applying this in a healthcare setting.
It might sound a bit strange using a manufacturing philosophy (where the business is all about production lines and making widgets) to a hospital (which normally deals with lots of people with various health problems). However I've heard they've been applying the lean principles with some positive effects to things like waiting times for people in emergency and also improving how patients are moved through the hospital - the "patient journey".
And so it isn't just in healthcare that a manufacturing philosophy is being used - we now have Lean Software Engineering too. I'm not an expert on all the details, but it does seem to relate to a lot of the Agile practices that are becoming more popular now.