Monday, October 06, 2008 12:06:40 PM
I know it's hard to beat my shocking announcement from a couple of days ago, but I feel that this one is even more important: Mono 2.0 has been released. Read the full details, go forth, and code.
Saturday, October 04, 2008 3:19:10 PM
After digging deep into the seedy underbelly of the .NET community, I managed to get some details on the PDC conference and TechEd Europe. My sources having survived a hectic rickshaw chase through the streets of Balzac managed to get to me their precious, illicit cargo. In their possession was a photo, a photo I thought some .NETters would find interesting.
Below are Don Belcham (left) and James Kovacs (right) trying out one of the possible uniforms for their tour of duty as a elite JetBrains booth babes while at these events.

Tuesday, September 30, 2008 7:43:08 PM
Today was my last full time day on this contract. Tomorrow I start up full-time with another. Personally, I've gotten in the habit of looking a my past contract and conducting my own personal retrospective on what I learned or how I would do things differently. I figured that because my memory is getting worse in my old age, I'd started putting these things down on my blog.
For a greenfield project, don't use the database someone hands off to you
The project I was working on was greenfield - almost. The business analyst spent a lot of time and effort gathering requirements, and this spilled out into him creating the database for us. On the surface, to most people, this seems like a good idea. In reality, I'd rate it slightly above mixing nuts and chewing gum for a snack. Why do I say that? Because, the database schema that was handed to me was highly normalized and (so I was told) optimized for reporting purposes - at the expense of the application. This application was more like an order-entry system, with snapshots of the data at points in time being very relevant. This "...optimization for reporting..." cause a lot of unnecessary work on the part of us poor developers.
The argument of "...the schema is this way to make reporting easy..." doesn't fly with me. First off, we don't have any reports defined. In fact, reporting wasn't within the scope of this project. So, why are we worrying about it? Secondly, if a certain schema was necessary for reporting, then that is where views and stored procedures come into play.
I very much wish that we would have said, "Thanks for the effort, but we will create the schema we need to delivery the product.".
Lesson learned for future projects: Greenfield projects should not accept databases designed by someone who has no stake/input/authority on the application architecture.
People are inherently obsessed with local optimization at the expense of the whole.
One example of this I've already quoted: effort was expended to create an academically pure database that would be good for reporting. This local optima cost the project in the whole, because it incurred extra effort in developing the application.
A second example in support of this claim is a touch more elusive. I witnessed a fair bit of "requirements dickering". Rather than looking at the project as a whole and trying to get the most bang for the buck (this project had a hard limit on dollars, but not on time), a lot of time was spent on arguing requirements. There was a perception that unless everything that was in the requirements document was done, "professionally" tested, and properly signed off, the application as a whole was not useful. It seemed that everything was important and had to be done. This obsession with getting everything done was, in my opinion, getting in the way of getting things of value done.
To misquote Napoleon: he who defends everywhere defends nowhere.
Lesson learned for future projects: Really to me, this experience did provide more anecdotal evidence supporting the Agile Manifesto and agile techniques. Being a lowly contract developer, I was in no position to dictate priority or importance of work. I'm kind of used to that as a consultant. My opinion and advice was provided and the project leadership did with it what the wanted. However, the process did open my eyes a lot. I hope that if I ever find myself running the show in similar circumstances, I have the wisdom and the patience to see the big picture, and not the black and white words of some document written almost a year ago.
Monday, September 29, 2008 11:25:22 AM
Looks like I'm getting a new static IP this week, so if you can't reach my site on Oct 3 , well now you know why.
Saturday, September 27, 2008 10:20:57 AM
One thing I've always regretted about building my new house was not running copious amounts of CAT6/CAT54 and RG6 co-ax to every wall in my house. Being that my career is so depending on technology, in hindsight it seems not having a wired house.
Then along came wireless, and I thought my problems would be solved. Turns out they were - to a point. Wireless is indeed handy, but there are some spots in my house where the signal isn't the best. I'm not enough of a radio geek to pretend to understand why, I just accept the limitations and carry on. In particular, the room where I keep my XBOX 360 is kind of crappy, which made me sad.
I thought I was going to crawl around in my attic and spend some quality time pulling cable. Before I did that, I started looking around for some sort of wireless repeater/relay/bridge. I came across the Netgear WNHDEB11 HD/Gaming Wireless kit. It was a bit tricky finding someone in Canada who had one in stock, but eventually Maurice at HardData found me one. One of the things that I like about this is you have two Ethernet ports on the back so it's pretty easy to hook up things that don't have a WiFi card but do have a NIC.
Setup was drop dead easy. It took maybe all of 20 minutes to set up the kit. I don't know if this was something a non-tech type would be able to do easily, but they could do it. I didn't like the lack of documentation in the kit. They expect you to drop in the CD, and read a PDF on it for installation and configuration directions.
I have my XBOX360 and my laptop currently plugged into one end of the bridge. Speeds don't seem to be that bad, all in all. Using Speakeasy.net's speedtest, I had about 2800kbps download and around 900kps upload against the Seattle, WA server.
So far, I'm content with the kit, but then again I've only had it about a day.
Friday, September 19, 2008 10:38:00 AM
Note: I orginally wrote this post on August 23, 2008. As things change with the book NHibernate in Action, I will be updating this post and resetting the date.
I'd like to take a break from boring you two readers of my blog about my experience with Linux and VMware, and take a moment to annoy you with a rant. Diversity is the spice of life after all.
This little remonstration of mine is about the Manning Early Access Program (MEAP). Well, specifically just one book. I've got my eye on a couple of other books available with MEAP to see how they pan out before considering the whole "early access" useless. Anyway...
It's been over a year ago that I "bought" a copy of the book NHibernate in Action. I did so because I want a bit dissatisfied with the documentation for NHibernate 1.2, and thought that the book would help me. I wasn't an NHibernate virgin/noobie, but I did need some help with a couple of things, and I really didn't have a large network of NHibernate masters to turn to for help.
I was disappointed when I saw that the book wasn't in print yet. Then I was happy to see that I could order the book, download a PDF, and the hardcopy would be sent to me when the book went to print. Given that, in the summer of 2007 it was expected NHibernate in Action would be in print in late 2007, I thought it was reasonable to pay the money up front, and get the finished product mailed to me a couple of months later (I like to have hard copies of my books).
Well, here we are now, a year later. As of September 9th, 2008 writing, summer of 2008, the softbound print date for NHibernate In Action is schedule for December, 2008. Since I downloaded my PDF of the book in August of 2007, there has been a total of one updated PDF.
Now, I can understand when deadlines get missed, and stuff is late. But, I think that, with a technology book, being over one year late is inexcusable. A lot happens in one year in the programming space: NHibernate 2.0 is now in Alpha. What will be released first, NHibernate 2.0 or the printed copy of a book on NHibernate 1.2? NHibernate 2.0 is now available.
I think the money spent on the PDF was worth it, but I honestly feel I got hosed on the cash I paid out for the hardcopy.
I just can't help but feel that the extra money I paid to get a hardcopy of NHibernate in Action would probably have been better spent using the bills to make little origami swans, ducks, and platypuses and then floating them out to sea.
I will be watching a couple of other books of interest to me on MEAP. But, in all honesty, I don't think I will be buying any more books in this fashion until Manning Publications does something to restore my faith in their Early Access Program. I still my get the PDF's if I have an immediate need for them, but I can't see purchasing a book in this manner anymore.
Updated August 25, 2008: NHibernate 2.0 has been released
Updated September 9, 2008: I see that the softbound print date has changed from November, 2008 to December, 2008.
Updated September 19, 2008:
Well, I just got the following e-mail from Manning publications:
Dear NHibernate in Action MEAP customer,
NHibernate in Action is almost ready! The last updates have been submitted,
the technical review is complete, and all chapters are in final production.
Some of you have been working with the MEAP for over a year, but we expect
the final ebook to be released in just over a month, with the print book to
follow shortly thereafter.
We appreciate your participation in the MEAP and especially all the valuable
feedback you provided in the Author Online forum. Your excellent comments
helped shape the final book.
To thank you for your patience, we'd like to offer you a $15 Manning Gift
Certificate to use for any print, ebook, or MEAP at Manning.com. Just enter
"_____" in the Promotional Code box when you check out. The Gift
Certificate will expire October 1, 2008.
Happy reading,
Manning Publications
(Note: I removed the promotional code from the e-mail and added emphasis on the expiry date)
I guess this is some sort of attempt at placating us for unacceptable amount of time this book has taken. Is it just me, or does anybody else see the irony in them thanking us for our patience with this book by telling us to hurry up and use the $15 Manning Gift Certificate?
Wednesday, September 17, 2008 7:43:25 PM
One September 17, 1944 the Allied forces launched Operation Market Garden against German forces in the Netherlands. The operation consisted of two parts: "Market" involved dropping large numbers of paratroopers behind German lines in an attempt to seize key bridges over main rivers. The "Garden" portion of the operation consisted of ground forces that would follow up, penetrating German defenses and linking up with the paratroopers who had captured the bridges. The intent was to then rapidly advance into northern Germany and to try and end the war before Christmas, 1944. The plan did not quite work as well as the Allies hoped.
The reason Market Garden always sticks out in my mind is because I remember as a boy watching the movie A Bridge To Far with my dad. My dad could recall during the operation, being on the roof of the barn with his brothers, counting the Allied aircraft dropping the paratroopers. They tried to count the Allied planes in the sky, but they couldn't - there were too many to keep track of.
Tuesday, September 16, 2008 8:41:47 PM
Well, I don't know why it's taken me so long to get to get around to this: but I must say that there are now a couple of "must haves" in my web developer's tool box. One of them is jQuery, and now the other is QUnit.
Chad Myers has a good, quick, post introducing QUnit, I'd strongly suggest checking it out if you do web development (which, IMHO, implies some use of JavaScript, right?). Chad's post covers the basics pretty good, and I think I would just be duplicating/plagiarizing Chad's work if I were to blog the hour or two I spent getting to know QUnit here.
It is nice to see that JavaScript is slowly being recognized as first class citizen of the web programming world, and is gradually having it's good name cleared of certain falsehoods. It's been my belief and observation for a while now that ASP.NET has done a pretty good job of stunting and retarding the adoption/use of JavaScript amongst .NET developers, at least in the Edmonton region. Good to see that this attitude is starting to change.
Thursday, September 11, 2008 9:47:46 AM
This seems pretty neat. Torkel Ödegaard has come up with a fluent interface for setting up your routes in ASP.NET MVC. He's submitted a patch to MVC Contrib, so hopefully we shall see it in there soon.
Tuesday, September 09, 2008 7:36:55 AM
I'm a bit late with this, but Mono 2.0 RC1 was released yesterday. You can download the RC release from http://mono.ximian.com/monobuild/preview/download-preview/.
Monday, September 08, 2008 2:52:22 PM
I ran into an issue that I had with jQuery. It's simple enough, but figured to help my failing memory, I'd blog about it.
I was trying to hide a DIV element on my page, which would then be displayed later on by jQuery/Javascript.
<div id="myHiddenDiv" style="visibility:hidden">
</div>
I thought that using something simple like:
$('#myHiddenDiv').show();
would then cause the DIV to turn up, which didn't happen.
It seems that you use .show()/.hide() from jQuery, you're actually setting the css attribute display, not visibility. So, what ended up doing was change my HTML a bit to:
<div id="myHiddenDiv" style="display:none">
</div>
Now .show() and .hide() work as I expected.
Friday, September 05, 2008 1:05:07 PM
At home I have an HP Printer, an OfficeJet 7580. When installing the drivers for it on my repaved laptop (the Windows XP), it installs this "wonderful" little program htqtra08.exe. Now, near as I can tell this program provides you with a system icon that is supposed to assist you with with diagnosing problems with your HP scanner. It doesn't seem to me to be malware/spyware/a trojan, so you'd think it's okay.
It is also a pain in the neck. On my computers, it has a nasty habit of stopping them from shutting down. When I've got hpqtra08.exe installed, I've found that when I want to shut down my computers I have to first manually kill the process using Windows Task Manager, and then shut down/restart. If you Google for it you'll see that this particular app isn't without issues.
Because I have to do this each time I install Windows (on a VM or on real hardware), I decided to blog about it, to help me remember.
To remove it, all I did was go into my Startup menu, and then delete the "HP Digital Imaging Monitor". That seemed to do the trick. Now my laptop no longer hangs when I shut down.
I did come across another way to stop hpqtra08.exe that involved stopping certain services, but that seems more complicated than necessary.
Thursday, August 28, 2008 2:15:33 PM
Looking to satisfy my own curiosity, I'm wondering how may ASP.NET developers, when developing their web applications, use IIS or the Visual Studio Development Web Server?
Based on my own informal and very un-scientific observations, it seems to be about an even split.
Myself, I prefer to have my development environment mimic my production environment as much as possible. You just eliminate so many deployment issues this way, as you're forced to deal with them as you develop, instead of saving the problems all the way to the end. So, in most cases, for me, that means using Windows Server 2003 and IIS. I've found this to be especially helpful in applications where you're using Windows authentication.
However, lately, for a couple of projects, I have been giving the Visual Studio Development Web Server a try. It seems to be not that bad, if you ask me. It's pretty quick to set up and get going, especially if for some reason you don't have/can't get IIS on your local workstation.
So, if I may so enquire, what do you use: IIS, or the Visual Studio Web Development Server?
Tuesday, August 26, 2008 4:28:11 PM
As I was driving home today, I couldn't help notice something. Microsoft's ASP.NET MVC framework is still in beta, and was only announced last October. To my knowledge, there are currently three projects in the Edmonton area based off this framework.
Castle Monorail has been around for much longer, three years or so? It's still listed as a release candidate on it's website, but I'd say Monorail is suitable for production. Currently, I am not aware of any projects in the Edmonton that are based off this framework.
I guess this is anecdotal evidence that you won't get fired for sticking with Microsoft. :)
The two frameworks have quite a few similarities. IIRC, in Austin last fall Scott Guthrie did mention that the ASP.NET MVC framework was influenced to some degree by Monorail.
Regardless, it's good news. Personally, I like both frameworks, and would prefer either of them to Web Forms. YMMV.
Friday, August 22, 2008 8:47:46 AM
As the two people who read my blog know, for the past couple of months I've been basically running openSUSE 11 as my primary OS and using VMware to do my daily work in. All in all, as I've documented, I think it went well. You really discover what you use, and what you don't use in the Windows world.
To be sure, there were some hiccups, and Linux isn't without it's own idiosyncrasies, some of which I'm sure the less patient would NOT put up with. The fact that I can't get sound working in my VM's bugs me to no end. And, Windows does handle automounting USB drives much better than Linux, IMHO.
Last week, I got a new HDD for my laptop, a 7200rpm, 200GB drive (replacing a 5400rpm 160GB drive). I've installed that new drive into my laptop, and then installed the old HDD into a USB/eSATA external HDD enclosure. I figured that this might be a good time to contrast setting up a bare-bones Windows XP VMware host with a bare bones Linux VMware host.
Why Windows XP? Why not Vista? Well, primarily because Vista, while pretty, doesn't seem to provide a compelling enough of a reason for me to switch. Windows XP does everything I need.
So, first difference that I can comment on: Installing Windows XP with Service Pack 3 was easily a day (i.e. nearly 8 hours), and that was what I would think of as a pretty lean system. Just the OS, service packs, drivers, updates, virus scanner, and VMware Workstation 6.0. To install all of the software to make my laptop a useful .NET developer box would probably add another 8 ~ 16 hours to this bill. Note that during all of this, I have to baby-sit my laptop, clicking OK in dialogs, swapping CDs, etc.
Installing openSUSE 11 took about two or three hours, and I was rolling. The package manager in openSUSE is pretty good (as are most of the package managers in Linux these days), so to get the software I want to install is a bit simpler. I use YaST to build my shopping list of software, tell it to install, and then walk away. To get an openSUSE box setup to be a .NET box (via Mono) would probably only add a few more hours to that. Plus, there wouldn't be now where near as much baby-sitting on my part.
I really think that Microsoft should sit up, and start paying attention to what is happening in the *nix space with installs. I remember when I first started in Linux, and installing it was sometimes problematic. Now it's pretty slick. I'd say easier/better than installing Windows.