Thursday, March 17, 2005
Going to Teched 2005

I'll be there. After months of persistance, I just got word that my request to go to teched this year was approved. Excellent. I have wanted to go to teched for many years, but never had the chance. This year, though, I'll get to be at the geekfest, and now I'm counting the days.

I haven't added myself to the techedbloggers list yet, but will in the next couple days. And of course I'll need to add the purty image that reminds me everyday that I'm going. I'll make sure to post a picture up (like Dave and Sahil) so if you see me there, make sure to say hi.



March madness baby

I've said it before, and I'll certainly say it again....

GO UCONN!!!!!!

We now return to our normally scheduled nerdy content



 Wednesday, March 16, 2005
Want gmail?

Went to google on another developers PC here and saw something really interesting, a want gmail link. Click it, and low and behold, you can sign up for a gmail account. Looks like the flood gates may have opened, although I still have 50 invites :) Congrats google on launching gmail (probably still beta) to everyone. I use gmail, and have since June as my primary email, and love it. Thanks for the great email service!



 Tuesday, March 15, 2005
Moving existing vss version controlled web projects to class lib

Yesterday I played the role of subversion salesman to our development team, and I wish svn had some sort of referral program :) I pretty much have our team sold on the value of svn, as well as moving away from web projects. We still have some learning to do before we implement it fully, but hope to have a sample svn repository setup later this week for a followup meeting. The biggest thing we need to brush up on are merging procedures and tools, since in my demo I was really fumbling around with that.

Out of the meeting, though, I did get the approval to move us off of web projects. So I took my manually modified .sln and .vbproj files and checked them into vss. Everything is working great. Until.... One of our developers was staging his new laptop and needed to get the whole project from VSS. I assumed with no web projects, it would go very smoothly. Nope. Can't get the projects that used to be web projects. Hmm, they aren't web projects anymore, so why not?

Come to find out, besides whats covered here, if your sln was controlled under vss, there are a few more steps that need to be done. Now, I couldn't really find anyone else doing this yet, so do this at your own risk. It seems to work here. The problem comes from the fact that the VS.Net VSS client adds more meta data that needs to be changed/removed. In the .sln file there are some values for SccProjectUniqueName, SccLocalPath, SccProjectName, and SccProjectEnlistmentChoice that need to be changed. I looked at another class lib and made the web projects match, and things seemed to work ok. So the final values looked something like this. (X being the number in the sln file)

  • SccProjectUniqueNameX = Folder\\file.vbproj
  • SccLocalPathX = .
  • SccProjectNameX : Removed the whole line
  • SccProjectEnlistmentChoiceX : Removed the whole line

After doing this and checking it all in it _seems_ to be working. If I find anything else that needs to be updated I'll update the post. Also, for those doing the same thing, the first step of the process is to add the "web" types to the class lib project. Here are the lines I added to my two files.

Added to C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\CSharpProjectItems\LocalProjectItems\LocalProjectItems.vsdir

..\CSharpAddWebFormWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2236|10|#2263|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4534|0|WebForm.aspx
..\CSharpAddWebServiceWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2243|20|#2266|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4521|0|Service.asmx
..\CSharpAddMobileWebFormWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2398|25|#2399|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4571|0|MobileWebForm.aspx
..\CSharpAddWebDataForm.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2380|45|#2381|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4559|0|DataForm.aspx
..\CSharpAddWebUserControl.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2378|55|#2379|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4558|0|WebUserControl.ascx
..\CSharpAddMobileWebUserControl.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2400|56|#2401|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4572|0|MobileWebUserControl.ascx
..\NewHTMPage.htm|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2042|60|#2280|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4528|0|HTMLPage.htm
..\Frameset.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2241|70|#2284|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4541|0|Frameset.htm
..\StyleSheet.css|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2314|80|#2315|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4544|0|StyleSheet.css
..\CSharpAddWebControlWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2297|120|#2298|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4533|0|WebCustomControl.cs
..\CSharpAddGlobalASAX.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2304|160|#2305|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4542|8192|Global.asax
..\CSharpAddWebConfig.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2312|170|#2313|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4545|8192|Web.config

Added to C:\Program Files\Microsoft Visual Studio .NET 2003\Vb7\VBProjectItems\Local Project Items\LocalProjectItems.vsdir

..\WebForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3062|10|#3063|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4533| |WebForm.aspx
..\WebService.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3032|20|#3033|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4516| |Service.asmx
..\MobileWebForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3127|25|#3128|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4562| |MobileWebForm.aspx
..\WebDataForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3094|55|#3095|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4552| |DataWebForm.aspx
..\WebUserControl.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3107|65|#3108|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4544| |WebUserControl.ascx
..\MobileWebUserControl.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3129|66|#3130|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4563| |MobileWebUserControl.ascx
..\StyleSheet.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3072|90|#3073|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4538| |StyleSheet.css
..\WebControl.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3060|130|#3061|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4532| |WebCustomControl.vb
..\WebConfiguration.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3076|180|#3077|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4540| |Web.config



Alton Brown is awesome!

Alton Brown is awesome. As far as I'm concerned, Good Eats is one of the best shows on foodtv, which also has many other great shows. Alton takes the cake in my mind though. His shows are always filled with fantastic tips, and plenty of science behind how cooking works. Also noticed this morning he runs a blog here, but couldn't seem to find the rss feed yet.

My wife was telling be about this yesterday, and I had to blog it. I haven't seen it yet, and it looks like the episode hasn't even aired yet, but this sounds sooooooo good. I'll be begging for some mac and cheese this week just to try this out. mmmmmm...

Link to fried mac and cheese.. yes, mac and cheese, but fried.. mmmmm



 Saturday, March 12, 2005
Pragmatic Version Control with Subversion book review and starting with svn

I remember the first day I saw VSS, and I wondered how on earth I worked without it, and how I ever kept up with all those copied source folders before. After living with VSS for years, though, it's limitations become obvious. The biggest downfall of VSS in my opinion is when the need arises to branch, and VSS offers little to no support.

So what do you do when you outgrow VSS? There are many options for more capable version control systems, but in many cases the community seems to pick Subversion (svn), and does so because of it's speed, branching support, and of course it's open source price. After reading the praises, I decided it was time to learn me some svn. Having just come off reading the pragmatic series book on unit testing, I decided to read the reviews on their entry into the svn arena, Pragmatic Version Control Using Subversion. They were good. Very good. I bit, and ordered the book Monday.

I got it yesterday, and pretty much didn't put it down until I was done. Knowing very little about svn yesterday, I can say this book is a fantastic introduction to svn, and version control in general. In true pragmatic form, Mike Mason walks the reader through version control and svn in a fast but thoroughal manner, covering not only the hows, but more importantly the whys.

The book tackles the topic of source control from the beginning, walking the reader from the first checkin, all the way to merging branches back into the trunk. It covers all of these issues in a situational sense instead of like a reference manual, making the book very easy to read from cover to cover. The book then goes on to cover integration with apache, and some of the more popular 3rd party tools. The book then ends out with a complete command reference.

I really enjoyed this book, and feel like I couldn't have had a better introduction to svn, as well as getting some fantastic tips on how to use version control effectively. I would highly suggest this book to anyone looking to learn svn.

That being said, I do wish the book had covered ignoring files in more detail. This aspect of source control is huge, and the book only touches on it in a couple places. From what I can tell there are 3 ways to handle ignores, in the repository itself, in local svn config, and in a given client (eg : tortoisesvn). I would have liked to read about these different methods, and some of the pros and cons of each method. I did notice this covered in some thoughtworks content here, but I chose to use John Elliot's exclusion list in my client for now. I'll definitely have to discuss these different methods with our team, and see what fits us best.

Also, switching to svn either means saying goodbye to web projects, or using a hacked client, since svn manages its data in a .svn folder, and this does not work with vs.net. I chose to change my local projects to class libraries as this tutorial shows, which makes the projects load MUCH faster, and also breaks the dependancy between IIS and my projects. Killer. Not sure how this methodology will fly in the office, though. Hopefully I can convince my peers of the benefits of this method.

All in all, get this book if you want to learn svn. It's cheap, a quick read, and another killer title in the pragmatic series. With this book in hand I've now moved all my personal code to svn, and merged a few branches for practice. Way to go guys!



 Friday, March 11, 2005
Reminder to self, always alias tables

I should always alias tables in queries, even if I'm not joining anything. It just makes life that much easier when I need to come through later and add a join (or 10), and not adding a new alias to XX places (yeah, I over use subselects sometimes).



Ron Jacobs podcasting

Ron Jacobs (blog) from the patterns and practices group has been producing a series of podcasts with .net patterns and practices in mind, that compliment his webcast series. I've listened to the first two so far, and managed to get well lost in the second one. Although the concept of dynamic config is interesting, I really need to find those blog posts :) Either way, there are two more, and I'm sure they will be quite technical if they follow the lead of the first two.



 Thursday, March 10, 2005
Great diagram of asp.net page lifecycle

I'm sure like many .net developers, I have the asp.net page lifecycle printed and on my wall at work. On the codebetter.com feed Raymond Lewallen points to this great colorful diagram of the asp.net page lifecycle by Leo Laposte. Can't wait to print this tomorrow.



 Monday, March 07, 2005
Taming del.icio.us

I've been using del.icio.us to manage my links since about the first of the year, and I can't say enough good things about it. I love the idea of organizing my links via tags, and navigating the trail of other like-minded geeks. Plus, it solved the age old problem of having way to many computers, and no good place to put urls.

Since I started the new blog, I have been using a very easy service to include a link blog. You can see it on the right there, the RssInclude portion. Rssinclude was a free and (Very) easy way to include the feed in my site, or any site for that matter. On the other hand, though, it's not meant for del.icio.us. It's just an RSS feed, and I think my linkblog could be so much more.

Enter del.icio.us.net. I have been working on this for a bit now, and finally have something at least up on the internet now to check out. It's way basic, and way pre-alpha. Basically, I have wrapped up all of the del.icio.us rss handling in a few classes, and am in the process of making a few controls on top of that. The first will be a new linkblog sidebar with new, more del.icio.us friendly features. You can check it out here to see where it stands. Currently that page is implemented as a control that displays the links (with appropriate css selectors for when I get to formating), and a form to feed the tags and username to the control. It's pretty clean, and I'm shooting for xhtml strict (although I'll take transitional :).

The next steps are going to be to wrap up the API model, and then build a winforms app to make managing links easier. Since using del.icio.us is so easy, I often put links in with bad descriptions, mainly because I know that I WILL be interested in this, I'm just not yet. When I'm interested, though, I then have the context needed to appropriately tag and describe this link. I hope the winforms app will support this workflow better.

I do plan on releasing the code for this soon. It's almost in a beta to where I will release the core lib, test suite (yes, this is also my first foray into straight TDD, or as close as I can come :) more on this later), and the ascx to include your linkblog in your own sites. Stay tuned.



 Saturday, March 05, 2005
CT .net users group happenings

Things are rolling with the new CT .net developers group. There is a new community server site, where we invite you to participate in the forums, or request to be setup with a blog. I am going to start cross posting over there soon also. We are also discussing putting together a code brew group, so if your interested make sure to stop by the forums and send in your suggestions. If your local make sure to check back often, our community is only as good as we make it.

Also noticed last night that Bill Hollis is going to be speaking on smart clients down at the Uconn .net users group in Stamford April 6th. Quite a hike for me, but I would love to make it down there to hear him speak.



Pragmatic Unit Testing in c# Review

Developer testing is a very interesting topic that gets more and more momentum everyday. All developers know they should be testing, but even with the advent of numerous tools to assist in testing, many still let it fall by the wayside.. As a developer, I've been using nunit for about a year now to test my professional code, as well as my personal code. That being said, I know I have not been using nunit as effectively as I could be, so a couple weeks ago I picked up Pragmatic Unit Testing in c# with nunit by Andrew Hunt and David Thomas hoping it would help get me thinking in TDD.

The book as a whole is relatively short, and an easy read. Direct and to the point, without being dry, I found it easy to just pickup and read this book cover to cover. There is also a good mix of commentary and code.

The first few chapters of the book act as an introduction to unit testing, and the basics of writing fixtures and tests with nunit. The authors do a good job of presenting the whys of unit testing, without being overly religious and theoretical, focusing on things like productivity and quality. The basics of nunit are then presented in a concise and thoroughal manner, showing enough code to feel like an nunit expert by the end of chapter 3.

The next three chapters focus on what to test, why, and how. These chapters were definitely the ones I took the most away from. The authors present a good set of concepts that will help developers think about their tests, and write the tests that will matter. Not too much code in these chapters, but since the chapters focused on the concepts of what to test, I didn't see that as a bad thing.

The last few chapters dive back into code showing how to apply the concepts from the first 6 chapters, covering mock objects, refactoring for testing, and TDD. These chapters take a higher level view at these concepts, showing some details here and there. These subjects could each fill a book themselves, and in fact do, but this book does a good job of providing an introduction to some of these concepts.

Overall, I enjoyed this book very much. It was a small, quick read, and pretty cheap, even at my local Borders. I would highly suggest this book for people that are looking to start unit testing, while those that have been writing tests for a while may want to peruse it first. I purchased this book hoping to think more TDD, but ended up just thinking about my tests more, which isn't a bad thing at all.



 Thursday, March 03, 2005


 Wednesday, March 02, 2005
Worldwind new release

Last week on .net rocks the guys interviewed some folks from NASA who are behind world wind, a fantastic open source world viewer created with .net. I've been playing with this since Richard bloged about it, and it's really alot of fun.

They eluded to a new version during the show, and it must have hit the shelves either yesterday, or early today. I started the download at home when I woke up, but it didn't finish before I left, so I just started it again here at work. Can't wait to play with it.



 Monday, February 28, 2005
HP company nc6000 slow when running on battery

I was setting up my new laptop this weekend, and ran across a slight issue. First off, the nc6000 has quickly grown on my, and although I miss minime, I'll be just fine with this super fast replacement :)

Back to the issue at hand. Our IT group gave it to me with all of the updates on Friday, but over the weekend I figured I would check windows update anyway to look through optional updates. Hey look at that, I have a few driver updates. Lets do 'em all.

No problems after that. I keep setting this or that up, and all is well. Then, I unplug the power. I swear, this thing was acting like I was trying to run XP on a celeron 300. So I started searching. I found this post, which really started to make me queasy. How happy is the IT group going to be when they give me a laptop on Friday, and I hand it back on Monday to get it replaced. Something doesn't seem right, though, since it was running just fine on battery just yesterday.

So, if you updated your network, video, modem, and sound driver, which would you roll back first? I picked video, and won the gold star. Right after the reboot the machine was fast as hell again on battery. I normally wouldn't post this to my blog since, well, you probably don't care. HP's forum registration site was broken, though, and if I don't post this today I will forget about it :)



 Friday, February 25, 2005
When great laptops go bad
Today is a sad day.  It's one of those days that you know will be here one day, but you hope it never comes anyway. 

The day started like a typical winter day in CT.  Wake up, clean up, go clean 5 inches of snow off my car, goto work.  Get to work, and the nomalities continue.  Send out a few emails, check a few things, fire up vs.net *slam on brakes*.  BSOD.  Huh?  Shit.

Reboot, and everything looks ok up to the login prompt (yeah really, that far).  Login, BSOD.  ...  Rince repeat BSOD.  ...  At this point I want to cry.  Boot into Knopix, and I can see everything on the drive, so that helps my sanity level.   Also, since I can boot into Knopix I'm pretty well assured the issue is a software one.

I have been using my personal laptop at work since I was hired.  Not because the company wouldn't furnish me one, but I love my thinkpad, and my mgr was kind enough to make an exception.  Today ends that tradition, though.  Within a couple hours of the crash, I had a new company issued HP laptop.

So now starts the long and painful process of moving my life.  We all go through it, so I won't complain about that too much (other then company issued laptops don't have 2k3 on them like my shiny broken thinkpad).  Such a sad day. 

So far, though, the HP is ok.  The screen pails in comparison, but it seems quite a bit faster.  The new laptop adds new features like cd burner, and bluetooth, which are nice, but I'm still to freaked out by the wierd colors and new keyboard to even look at those. 

There is one plus that comes out of this.  I think I am going to take the thinkpad and retire it from production, but move it to a new position in the iceglue family, "beta machine".  So if nothing else, at least I can now have a dedicated laptop to play with Yukon and Whidbey.

All I can say..  sad day..  sad day..  RIP minime (AKA my thinkpad t30).


Network Engineer Position around Hartford

It's time for another job opening. This position is at the company I work for. We are a small-medium sized company specializing in healthcare transactions (intentionally vague :). We are a very technology oriented company with very forward technology plans, and a great working environment. We are also still looking for a DBA. Details :

The Systems Architect is an operational role responsible for supporting key Intel based servers; Cisco based networks, and Application Development staff. The environment is all new software and equipment installed in 2004 and there is growth planned for 2005. The position is based in Avon, CT and does not require overnight travel on a regular basis. This person will be on call as required.Supervising one staff administrator is anticipated.

Desired Tech Skills :

  • 5-10 years proven knowledge of Cisco Security, LAN, WAN, and High Availability Architectures
  • Knowledge of general E-Commerce architectures, preferably with .Net
  • Experience with/knowledge of the following Microsoft technologies:
    • Active Directory
    • 2003 Server
    • SQL Server 2000 (Clustering is a plus)
    • IIS 5.0/6.0
    • BizTalk 2002 (2004 experience is a plus)
    • Operations Manager 2000 (2005 experience is a plus)
    • ISA 2000 (2004 experience is a plus)
  • Experience with the following administrative software a plus:
    • Veritas Backup Solutions Practices
    • Symantec Anti-Virus Solutions Practices
    • Enterprise Storage and SAN
  • Other Qualifications:
    • This position requires excellent verbal and written communications skills; a can do, enthusiastic attitude toward work and internal customers; the ability to adapt to environmental changes; and strong troubleshooting skills.
    • The candidate must be a well organized self-starter, able to deliver assigned tasks on time, and manage multiple tasks with minimal supervision in a fast-paced environment.
    • Previous supervisory experience also a plus.
  • Microsoft and Cisco certifications are preferred.

Please contact tranqy a t gmail d o t com for more information.



 Sunday, February 20, 2005
ugh, traffic

File this under ideas. This is one I have had for a few years. This came to me when I was living in the Dallas area, where traffic was a more apparent problem then here in rural Connecticut. I've been back in CT for a few years and still don't see this product, though I have seen some strides in the arena, just not in this direction

So what is it you ask? It's really more of a suite/service. Why can't my alarm go off 15 minutes earlier if there is a traffic jam? Why doesn't my computer know which way I should go to work today to avoid traffic, and give me an outlook reminder at work that the highway is backed up and my daughter is going on in the school play in 15 minutes across town (note, specifically for family, that daughter is FICTICIOUS...)

Traffic is a huge part of many peoples lives. Even in rural CT I find myself looking for more reliable ways to know what I'm going to see on the way home. Why don't we know what the traffic is all the time, just like the weather. I know some GPS packages are now taking traffic into consideration, but that's still reactive.

I want proactive traffic. The system knows where I live and work, so that part is easy. Link it to outlook and then get me to appointments on time. Link it to my mobile phone and tell me that I won't make it to Aunty Bertha's on time if I don't leave the mall right now.

Hey, I never said they would be good ideas. Just ideas.