Blogging from Word 2007

So I wanted to be one of the cool people who posted to their blog from Word 2007. Yah, wanted to be. I'm not going to be tonight. I have the product installed and it seems to run just fine.....with one exception. When I try to connect to my blog with Word, it won't authenticate the user I'm trying to post with and it doesn't matter what I try. As is always the cast with beta software you get some quirks, like the continual looping of the request to enter the UserName and Password for posting. Yep, you can't get out of it. Doesn't matter if you hit Cancel or click the X in the upper right corner. I suppose it would go away if I was successful in connecting to the blog, but alas it's not happening.

I'm the Igloo Coder and they say that the definition of insanity is trying the same thing over and over while expecting a different result. Based on that either Word 2007 is insane or I am. I'll let you decide that one.

Published at

My Tool List

Over the last number of months I've been working on building up the toolkit that I use for software development. By no means is it going to be like Scott Hanselman's list, but it is something that a few people have suggested that I publish and I'm going to oblige them. The following is a list of the tools and downloads that I use for my development work.

Visual Studio Addins
- MRU Cleaner
- Spell Checker for HTML and ASP.NET pages
- The Microsoft Consolas Font Family
- CoolCommands
- Avanade Integration Pack for Microsoft Enterprise Library
- CSS Properties Download
- RssToolkit
- Property Manager Addin
- Event Log Data Source (added May 30, 2006)
- Web Application Projects (added May 30, 2006)
- Clipboard Manager (added May 30, 2006)
- devMetrics -- Visual Studio 2003 only (added May 31, 2006)
- CopySourceAsHtml2005 (added June 11, 2006)

Other Tools
- FreeDiff file comparison utility
- SourceGear Vault
- nAnt Tasks for SourceGear Vault
- nAnt
- nAntContrib
- nUnit
- CruiseControl.NET
- Reflector
- SQLPrompt
- nDoc
- MyGeneration
- KryptonToolkit
- nCover (added June 1, 2006)
- nCoverExplorer (added June 1, 2006)

That's the list as it stands right now. I'll keep updating this as I update the software that I'm using.

I'm the Igloo Coder and I'm all tooled up.

Published at

Quotes from Calgary Code Camp

Like DevTeach, there were some memorable quotes from the trip to Calgary.

Here we go
  • It's like sex in my mouth. -- said when describing the Ahi Tuna Tacos at Joey Tomato's.
  • I don't know if I can sit here with this on my lap. It might burn it. -- JP Boodhoo's statement when presented with the prospect of having his laptop on his lap.
  • Is it just me or is that screen fuzzy? -- Justice in the first presentation of the day.
  • You masturbate too much. -- My response to Justice's inquiry about the screen being fuzzy.
I'm the Igloo Coder and the screen was not fuzzy for me!

Calgary Code Camp Review

I have to admit that I went to the Calgary Code Camp to attend the talks as well as see how the event was run. Overall the talks were great and the event ran quite smoothly. Two big thumbs up to the James and Bill on the success of their event. If you want to get a great overview of the content provided in some of the talks go to Justice's blog. I warn you in advance of the sexual harassment that some of the posts contain.

Steven Rockarts posted a nice list of things that help make events like a Code Camp succeed. To add to both his and D'Arcy's lists I will list these:
  • planning for hardware needs (not everyone carries a spare monitor extension cable)
  • don't use a podium, have a speakers table setup
  • ensure that there is an adequate walking area in and out of the room that does not require people to walk in front of the projector
  • room for people to hang out. This could be a cabana area or just a wide open space outside of the presentation rooms
Congrats to John Bristowe in is newly acquired Paint.NET MVP status.

I'm the Igloo Coder and here's to Steven putting on a great Edmonton Code Camp just like the Calgary one.

Published at

James Kovacs on ASP.NET Kung-Fu - Advanced Techniques and Idioms

I love HttpHandlers. You can restrict access, in .NET 2.0, to specific files by using the System.Web.HttpNotFoundHandler (returns a 404 error) or the System.Web.HttpForbiddenHandler (returns a 403 error). James is showing some great suff on using HttpHandlers for security type stuff and some GDI code on the fly. Pretty interesting stuff. Don't know that I'll ever use the image stuff (never say never right?), but it shows how you can intercept the Http requests and manipulate the request/response stream.

James is now talking about the Caching features of ASP.NET which is pretty interesting.

Overall, a pretty good presentation. I'm looking forward to James being at edmug in June.

Published at

JP Boodhoo on TDD, Dependency Injection and The Data Access Layer

Finally I get see JP speak again. I love it when he busts Microsoft's chops on their drag and drop demo methods. It's even better when there are MS people in the room.

JP's got his water bottle with him again at this presentation. I'll let you know if he ever takes a drink from it.

Something that I didn't pick up from his last talk is that JP believes that moving to TDD is a fundamental paradigm shift equivalent to the change from Procedural to OO.

Dependency Inversion is a principle. High level components should not depend on low level components. Instead both should depend on interfaces. Think "another layer of indirection will solve any problem".

Hey JP if you're reading this, what tool do you use to do the screen zooms during your presentations?

As with JP's demo in Edmonton, he's pushing the top down development principle whereby you only need to agree on the contracts (interfaces) that allow interaction between the layers. This allows for the development of one portion of the system without the other layers needing to be started or completed.

Dependancy Injection is about creating an object in a well know state that allows it to immediatly work. To do this you pass values into the constructor that will create the object in the desired well known state.

He's picked up the water bottle......and he put it down.

I liked JPs point at the last talk about having people download the source code and being able to start working right away. One of his point today was to use references to nUnit and rhinoMocks based on relative paths rather than the GAC. Steve Rockarts just made a point that Rod Paddock's topic on VS Project Templates would be great for creating the nTier and testing structure of a solution. Nice tie in between two presentations.

He picked up the bottle again! And he set it down.

Another great presentation by Jean Paul. Once again he had so many things to talk about that he was a little rushed as he didn't want to miss out on any knowledge transfer.

Complaints about Edmug's Last Presentation

There have been a number of people who have complained about Rod's presentation at Edmug's May meeting. The most scathing complaint comes from Mike over at sideline.ca and I'd like to address his complaints.

The first statement that Mike makes that concerns me is this:

"In all honesty, I went into the meeting expecting to be a bit bored..."

If you went to the presentation expecting to be a little bit bored, why would you be complaining that you ended up bored? Really? We at Edmug have presented one meeting prior to this, and yes it was a great show put on by Jean Paul Boodhoo, but have people immediately set their expectations based on one single presentation? It's not just about the needs, desires or thoughts of one person. This is a group, by developers and for developers. If you have something that you'd like to see presented, by all means talk to us. We are trying to listen, even if the single to noise ratio is low.

The next thing that I'd like to address from Mike's post is this:

"But sitting through two hours of Hungarian notation..."

Hey Mike, are you telling me that someone's coding standard is too distracting for you to actually follow the code? If it is then maybe we should bring in a speaker that can talk at a lower level so that you can follow the content while trying to get around their personal coding preferences. Next time you order a beer try not to be distracted by the colors on the label, you might not see the beer.

Next on the list of random thoughts that I care to disagree with is this gem:

"...I think that MSDN is using edmug.net as the dumping ground for all the books that London Drugs couldn’t sell at their most recent computer book clearance sale. I love free books as swag but there comes a point when free crap is still just crap."

It's free you whinging idiot. Take it or leave it. Oh, and we did give away two license of CodeSmith Professional, but maybe you were still trying to figure out what variable type the 'o' prefix represented when I announced that. It's also odd that we gave away a package of VS 2005, SQL 2005 and Biztalk 2006 licenses, some of which are products that you either are, or will be, using at your place of employment. But those are crap aren't they? Yah the books are on older technologies, but most of us are still using .NET 1.1 aren't we? That alone makes the books relevant still. We all used to bitch that they weren't doing anything content or swag-wise at the Wizards and now you're telling me that we aren't doing it with books released in the last month? Put the book you took back on the table then. I'm sure someone else wouldn't mind it.

My last comment on Mike's post is about this statement:

"...from the people I talked to I was able to calculate a suckage rate of 9 out of 10"

I realize that people were disappointed and we are working on ways to better manage the expectations of the attendees, but think about this for a second or two (if you're no longer distracted by the naming standard). Part of the defining reasons that we (edmug) exist is to foster and enhance the development community here in Edmonton. The term community includes all the developers in town, no matter what their current skill level. Hell, I'd argue that the most important part of the task of fostering the community is to help the lower level developers to grow their skills and become better professionally and technically. It's not all about satisfying the technical desires of the most senior technical minds in the community. If we do that the user group will become a bunch of pompous, elitist pricks that live in ivory towers and look down on the less knowledgeable. They say knowledge is power, but knowledge transfer, in my mind, is so much more.

I have never met and heard so much excitement about a developer community as I have in the last two and a half months. For me this indicates that edmug is starting to achieve it's goals for the community. We will never make all people in the community happy at all times and in all ways. I've read the feedback from both of the meetings we've held and I will state that the average presenter scores for JP and Rod were almost identical. Based on those numbers, I find it hard to believe that the suckage rate was 9 out of 10. If people did think it was that bad why were the scores so high? If it's because people ranked the speaker high and are now whinging about the content, they have no ground to stand on. If you gave a score consisting of 7s, 8s and 9s then you have no standing for saying that the event sucks. Either give us that feed back at the time of the event or shut the fuck up. I know that you did do this Mike, so this is directed at all those people who you polled.

My final statement on this fact is this: If the presentation sucked so much then we have July and August speaking slots open and there may be some space at the Code Camp still. Step the fuck up to the plate and prove that you can do as good as these guys did. Until then, either come to the meetings or don't,. Which ever you choose, do not be the person who bitched about the old user group's inadequate content only to see that we've brought in two conference quality speakers and then bitch about that too.

I'm the Igloo Coder and, although this room at Calgary Code Camp is rather cool, I'm still smoking under the collar.

29 May 2006 -- Updated formatting

The .NET Language Integrated Query Project (LINQ)

To start the Calgary Code Camp 2006 I'm sitting in on Daniel Carbajal's presentation on LINQ. I've seen a bit on this before, but I'm interested in what new things I'm going to be able to pick up.

The example:

var query = from s in names
where s[0] == 'F' 
orderby s
select s.ToUpper();
shows a very nice and easy way to filter a selection based on the first letter of the s objects. Also note that the variable 'query' is the one that you will want to work with to see the results of the query. If you work with the name object (which in this case was an array variable) after running that query you will not be able to see the results in the query result set variable.

When you are doing DLinq queries you can debug (new to the May CTP) the queries that you send to the database and see them in a SQL Query Visualizer and even better you can run the query and see the results, for one or more queries, in a grid formatted visualizer.

XLinq for XML Data is very cool. I hate writing code that requires you walk the XML document when you're searching for a specific element or group of elements.

Overall, good presentation. 200 Level introduction to new technology.

Published at

Edmug Presentation Changes

The feedback for Rod Paddock's talk last night at Edmug is starting to trickle in this morning and one thing is becoming clear. Some of the attendees were expecting an advanced talk and Rod's talk did not live up to their expectations. That said, I don't think that many would say the talk sucked, its just that their expectations were incorrectly set.

We are going to take at least one step to rectify the problem with the expectations. Going forward, all of our presentations will be categorized with a level numbering system. The values will be 100, 200, 300 and 400, and will show progressively more advanced subject matter. This is in line with the webcast numbering system that is used by Microsoft and similar to those used by universities and colleges for their courses.

I'm the Igloo Coder and keep talking people....we're listening.

Published at

Edmonton .NET User Group's May Meeting

The Edmonton .NET User Group held it's May meeting tonight. Rod Paddock presented on Creating Custom Visual Studio 2005 Project Templates. I learned a ton of stuff and had some great discussions with people in the local industry. The crowd was small, but the few who shunned the Oilers game were treated to a great presentation. Next month we have two great presentations and no matter what, there won't be a playoff game at that time.

I'm the Igloo Coder and my templates will be changing....if I can figure out how to do it in VS 2003.

Published at

WineLog.net

Any of you that know me well understand that I have a weakness for the elixir of life. Today Michael Arrington over at TechCrunch posted on the new Web 2.0 (my thoughts on that are starting to change from what they were) WineLog.net. I don't immediately see how it qualifies as a Web 2.0 application unless you say that having a blog is the only requirement. Regardless, it's a great start and I know that you'll be able to see my picks at this link. According to the blog, they are working on adding RSS feeds to the site so that you can publish your wine log through that.

I'm the Igloo Coder and no longer am I a closet wino.

Script#...WTF?

Really, this is a great extension (watch the screencast too) of the .NET platform. Having data typing "capabilities" when creating a set javascript routines is invaluable. I'm all for this type of tool in my environment. It takes some of the pressure off of me when code reviewing our not-quite-web-2.0-website. I'm going to have to look at it a little longer, but I think this may also help me in getting some unit testing implemented against our javascript.

I like this part of Nikhil's post

In December, while on vacation, I decided to finally get down to writing a compiler that could enable this.

Dude, where was your vacation? Regardless, I'm not going there anytime soon. Really...where were you? Saskatchewan? Winnipeg?

I'm the Igloo Coder and I'm sharpening up my javascript tools.

Published at

Caching patterns

Here's a great article by Gavin Joyce on the Reluctant Cache Pattern. I like it's simplicity and the way that won't bloat the memory usage on the server. The project that I'm working on is by no means being hit hard, but this is how the caching should be done in it. I wish I had the time to retrofit this. Maybe I'll work over a weekend to put in this pattern.

I'm the Igloo Coder and my cache is empty.

Published at

Why can't more of us be like this?

I've worked some crap jobs. I've worked some great jobs. The one thing that carries through all these is that at some point I always hated them. I'm not talking about feeling like the morning sucks. I've thought "Why the hell do I do this?" at all the jobs.

We all think we've been dealt the bad hand at one time or another. The fact is people who have Down Syndrome did get the bad hand and, unlike me or you, they have to play that hand every single day for the rest of their lives. That said, what about a guy who is afflicted with this disease who has risen to be an inspiration, not because of what he accomplishes in the face of the disease, but because of the person that he is. Joey Moss rocks people rarely talk about him. The guy is an icon in Edmonton. He's got the job that all of us wish we had. The great thing is that he does it better and will do it for longer than you, your buddy, or I would ever be able to. Better yet, the guys who he's vacuuming for feel inspired by him. No matter how hard I worked at that job, I just wouldn't be putting in the same amount of heart that Joey puts into it. That's what makes him a great inspiration. It's the heart, the passion and the understated nature that the job gets done.

Here's a little tribute to a man who's head and shoulders above the tallest guy on the ice.

Joey with Wayne
Joey presenting the Joey Moss Cup
Ryan Smyth celebrates with Joey during the 06 playoffs
Proudly displaying an Oiler tradition during the playoffs

A great verbal tribute to the longest serving Oiler.

I'm the Igloo Coder and we should all belt it out like Joey!

Okay, I'm a homer, but....

Have you ever seen any event, sporting, cultural (is there a difference when you talk hockey?) or emotional where the guy who is paid to sing the national anthem, just stops. This was a good kind of stopping. Not that "Oops, I forgot the words" or "I can't sing while you boo my awful voice" kind of stop. Paul Laurier sang the first verse of O Canada tonight at the Oilers game and then he stopped and let the crowd do the singing. And oh did they sing. The belted out the words from down deep where it really matters. The best shot of the singing was Joey Moss standing on the bench, screaming the words out as hard as he could. That kind of thing makes me get all goose-bumpy. Joey Moss rocks!

After all that emotion during the anthem, the teams still managed to start the game with some good old fashioned knock 'em down, kiss-my-fist hockey.

I'm the Igloo Coder and you can't tell me that being in a Canadian NHL city during the late playoffs sucks.

And another scrap....I love early eighties hockey!

Published at

EnergizeIT 2006

Microsoft Canada is trying out a new style of event in June. EnergizeIT will be a live, day long event in Toronto. The difference with this event is that everyone who isn't part of the center of the universe will have the opportunity to participate via live and delayed, two way webcasts. Here in Edmonton, like all other places that think the Maple Leafs suck, we have the option to create a local mini-event that will bounce the feeds from Toronto onto a projection screen. We're not too sure if this is going to happen (EnergizeIT is on the 24th of June and we have meetings already planned for the 27th and the 29th), but we're going to take a look into what the logistics are. If the event doesn't happen you will still be able to connect to the different feeds coming out of TO on your PCs at home.

On a completely separate note, this was the first chance for me to interact with the Edmonton Microsoft User Group. It looks like they are having two events in June as well. Take a look at their site. Looks like they're into some pretty cool Vista and Office 2007 stuff.

I'm the Igloo Coder and the Oilers are really making it fun to bug the other NHL cities in Canada.

Published at

More free tools

I've just added another piece of software to my toolkit. RedGate's SQL Prompt is now available for free download until September 1 2006.

I'm the Igloo Coder and I'm of to get some more intelli in my sense.

Published at

Edmonton Blogging Community

Hey all. If you have a blog with some technical content and you're from Edmonton, leave me a comment and I'll see about adding your blog's RSS feed to the consolidator on BloggingOnIT.com. All the site does is consume your feed and include your posts on the page and in it's RSS feed. We're hoping that it will become a centralized feed that anyone interested in the Edmonton IT scene can use for their aggregator.

I'm the Igloo Coder and I'm off to feed my aggregator some more XML.

Published at

Edmonton Code Camp

Steven Rockarts has committed to putting on a Code Camp here in Edmonton. I know some of the speakers that Steven is trying to get lined up and if he can do it, this will be a top notch event. I'm going with a few of the local .NET addicts to the Calgary Code Camp on the 27th of May. I'm stoked about the topics and I'm interested to see how they run it. It does require a 5am launch time for the white Neon, but hell, all that means is that I'm going to be a grump, excited geek.

I'm the Igloo Coder and I'm trying to decide on my topic for Code Camp. Really Steven, I am.

Published at

Back in '92

Oil Country is pumping out the black gold! Tonight the Oilers advanced to round 3 (the semi finals) of the NHL playoffs. According to history buffs this is the first time that the Oil have been this far into the playoffs since 1992. So, as a retrospective, I'm going to outline what was happening in 1992.

  • Rodney King is taped being beaten
  • The Michelangelo virus, originating in Europe, disables computers worldwide
  • Riots break out in Los Angeles
  • Aurthur Ashe announces he has AIDS
  • Last episode of the Cosby show airs
  • NAFTA....need I say more
  • Michael Schumacher wins first ever Formula 1 race
  • The Pittsburg Penguins swept the Chicago Blackhawks to win the Stanley Cup
  • Mario Lemieux wins the Conn Smythe Trophy as playoff MVP
I'm the Igloo Coder and I'm hoping the neighbours tone it down a bit before midnight comes around.

Abstracting the Developer

Joel Spolsky posted about the concept of abstracting the developer to insulate them and make them more effective at the time.  I read this article and thought "This is great" and then "Damn my last PM did a great job of this".  Today I realized another way that it can occur.

I'm currently working onsite with a client. We've all heard the horror stories of how contractors are given the closet (sometimes the water closet) for an office and a P2 with 128MB of RAM for them to run VS 2005 on. Today I realized the the client I'm currently working with has got it all right from a hardware standpoint. All people on my team, for the last year, have been working on P4 2Ghz boxes with 1GB of RAM. For a contractor this is paradise. I can go to work and I don't have to dread compile time, or running out of memory, or waiting for my PC to boot.

Now, I know I've been lucky on site with a PC like that, but let's talk about my 21" monitor. Mmmmmmm. Monitor. Today I found out that all the PCs are on a three year lease and our monitors are coming up for replacement right away. Yes I'm going to have to lose my beautiful and sexy 21" Sony Trinitron monitor, but I will be getting it replaced with a 19" LCD. Hopefully it will run at 1600x1200 for me.

I'm the Igloo Coder and size isn't everything, unless you're talking about monitors, RAM or processors.....

Published at

Agile Development

What is it about Agile methodologies causes them to be "Old Boys Clubs". I can dig around the internet and find all the information I want on Scrum, Agile or TDD, but all of it is from the developer perspective. What part of this is only concerned about one or two portion of the SDLC? Yah it covers off the Coding / Debugging and, in some cases, the Requirements Gathering portions just fine, but those are only 2 of the 5 tenants of the SDLC. What about Architectural Design and System Testing? I have not seen a single post, article or explanation of what the steps are for taking an iteration based approach to software development and turning it over to team or business testers with cohesion and continuity. Why is that?

Is it because the Agile community is focused solely on the process of creating the software, or is it because the process of business acceptance testing is so clearly defined? My experience makes me believe that this community is focused on one thing and one thing only. They have gotten so wrapped up in the process of writing the software (which I tend to thing is a good process) that they've started to wear blinders. They can't see that there is more to the process than, in the case of TDD, write test, make test fail, make test succeed, and refactor. Well, I tend to believe that most of us creating business software have to answer to the....hold on....brace yourself....yes, the business. Now to do that we must turn software over to them that can be tested or used either through the development process or at the tail end of it. Yes, I know...that sounds very waterfall.

So what I'm trying to figure out right now, as I approach the first project I've worked on that dictates an agile approach, is how do you turn your iterations over to the different test teams. In my case I'm thinking of having 2 week long iterations and, after the iteration is complete, we provide a build to the team testers. This I have no problem with. The problem arises when I begin to think about how this process works when I add in the need to release the iteration to User Acceptance Testing for the business to play with, verify and generally check over. Traditionally I've released to the internal test team, started a loop of test and release with that team and finally provided a tested build to the UAT team.

So what do I do once I've released to the internal test team? My instinct says wait, fix and retest. The problem I see is that if I follow this process I will be ready to release to the UAT team once the code from any subsequent iteration is started or worse yet completed. The only thing that I can think of doing is releasing the code to UAT less often than I release it to the internal test team. What is the problem with this? Well, in my mind it's less agile. Maybe I'm wrong though.

At any rate, I'm open to suggestion, opinion or, if it's your style, ridicule.

I'm the Igloo Coder and I'm thinking that I should be building my igloo one tested block of snow at a time.

Unable to create offline cache location at.....

Today I got back to work for the first time in a week and the weather outside is not helping my ability to concentrate or be productive.  As is my luck, I get back to work and try to fire up Visual Studio when I was greeted with this error message

"Unable to create offline cache location at C:\Documents and Settings\MyLoginAccount\My Documents\MyApplicationFolder"

After a couple of hours fighting with this I finally figured out what the problem was. If open Visual Studio and go to the Tools | Options menu you will get the configuration window. Expand the Projects folder and select the Web Settings Node below it. Change the Location of Web Projects Cache value to be

C:\Documents and Settings\MyLoginName\VSWebCache

Where C:\ is the value for the drive that holds your Documents and Settings folder and MyLoginName is the login account you are using when you are trying to open Visual Studio. This seemed to work like a charm, but I'm still left wondering why the value changed in the first place.

I'm the Igloo Coder and I'm back to being unproductive with no reason.

Published at

Hockey in Canada in the Spring

I live in the northern most city that is the home to an NHL team, the Oilers. Sure it's spring, but it is early spring here in the City of Champions. That said the weather is awesome. The Oilers are playing in San Jose (crappiest ice in the league?) tonight (they're up 4-3 in the game right now) and I'm able to sit out on my deck, work on this via wireless, and watch the game through the sliding doors. To top it all off I'm doing it in shorts.

I'm the Igloo Coder and I'm beginning to really enjoy the warm weather, but I do miss the Polar Bear hunting.

Update: Edmonton has just scored to make it 5-3 and I'm really starting to get a kick out of the people in the different apartment buildings getting out on their decks and yelling after every Oilers goal.