Blogging from Word 2007
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.
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.
Quotes from Calgary Code Camp
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.
Calgary Code Camp Review
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
I'm the Igloo Coder and here's to Steven putting on a great Edmonton Code Camp just like the Calgary one.
James Kovacs on ASP.NET Kung-Fu - Advanced Techniques and Idioms
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.
JP Boodhoo on TDD, Dependency Injection and The Data Access Layer
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)
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.
Calgary Code Camp
I'm the Igloo Coder and I don't like 5am departure times.
Edmug Presentation Changes
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.
Edmonton .NET User Group's May Meeting
I'm the Igloo Coder and my templates will be changing....if I can figure out how to do it in VS 2003.
WineLog.net
I'm the Igloo Coder and no longer am I a closet wino.
Script#...WTF?
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.
Caching patterns
I'm the Igloo Coder and my cache is empty.
Why can't more of us be like this?
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....
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!
EnergizeIT 2006
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.
More free tools
I'm the Igloo Coder and I'm of to get some more intelli in my sense.
Edmonton Blogging Community
I'm the Igloo Coder and I'm off to feed my aggregator some more XML.
Edmonton Code Camp
I'm the Igloo Coder and I'm trying to decide on my topic for Code Camp. Really Steven, I am.
Back in '92
- 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
Abstracting the Developer
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.....
Agile Development
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.....
"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.
Hockey in Canada in the Spring
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.