Archives / 2007 / November
  • DevTeach Day 3 - The Mad Mexican Strikes Again!

    Poor Beth Massi. There she was, innocently giving her LINQ to XML in VB talk and up comes this.


    Well, the Mad Mexican is in Vancouver and has struck again. He burst into Beths session screaming "I LOVE YOU BETH MASSI!".


    And just as quick as he came, he was gone.


    Best Presentation Ever.

  • DevTeach Day 3 - Justice Gray is my Hero

    Justice is just starting up his talk and wow, we're off to a great start. Justice starts with a list of things that may offend, which include women beating up men, 5 level if statements, dissing datasets, and unchained masculinity. Luckily nobody left at the start.


    We've been going for a few minutes and Justice is focusing on what the session is not (including the fact that Justice is not JP Boodhoo even though they both have an incredibly uncanny physical resemblance).

    BTW, the women kissing men came into play when he showed the MonoRail slide. I wasn't offended.


    Like David Laribee's presentation, this is the first time I've seen Justice present. I like his style as again its relaxed and has some nice departures from the typical PowerPoint crap that we all see. It's funny, it's casual, and it's to the point. It's a good way to take in information in a contextual way that makes it fun and easy to digest. In this day and age when we're looking at huge frameworks and technologies, there's a lot to take in. Presentations like this make it easy to take eat the elephant, one bite at a time.

    Justice has the weirdest story of Steven Rockarts and his descent into druggie induced Hell. However it all relates (in Justice's strange and demented way) to MVC. Again, top skills as a presenter here. He finally winded into the problems between WebForms and MVC doing a compare and contrast example then the code samples came.

    The code samples are fun (and I'm assuming available on the web somewhere) and an interesting read (especially the tests PuttingSteveInDetoxShouldGetRidOfMeth() and GivingSteveAHugGivesHimABlackEye()). Give a look see and in early December when the CTP release of the MVC framework is available you'll be able to build your own samples and start working with it.

  • DevTeach Day 3 - David Laribee, The Coding Hippie

    The model is the code. That's the message David Laribee started off with his Fundamentals of Domain Driven Design. As described by Kyle Baley, David walks us through DDD with the laid back and relaxed view as only he can do it.

    "When you say design everybody has a definition which doesn't correspond with yours..."

    David posted a quote from Paul Rand, one of my favourite graphic artists (he was responsible for the Art Nouveaux movie posters from the 60s). The quote is completely relevant to DDD since the client has one notion of an Invoice and you have something else. This is the foundation of the ubiquitous language. One of my more favourite Agile tools is the customer, and listening to them is a key action you take with them during the life of building a solution for them.


    I really like David's slide approach. Mind you, he's using a MacBook Pro and perhaps his background is Mac-like and more visually focused but he has a nice approach to presentation. All of the slides are simple in nature and really focus on the message. This is very much the Lawrence Lessig approach to presentation where you don't need a lot of fluff and flashy lights. For example a picture from the movie 300 with a the simple caption of "Impossible Odds". Brilliant!

    Its tough trying to find the domain experts, the subject matter experts, on a project. However you have to work with them. It's more of an art than a science to try to extrapolate the information that you need to build systems out of your customers or experts. Of course having 7 experts in the room you'll probably get 10 different answers as to what an Invoice is. Or an Employee. Or a Product.

    David walks through the basic patterns used in DDD (Entities, Value Objects, Aggregates, Repositories, Services).

    A couple of tips for Repositories. 1 Repository for each Aggregate Root. David (and this is my preference too) is to have a Customer Entity and a CustomerRepository Repository. There's a big debate out there about calling Repositories Repositories and you can stand on either side. Sometimes a Repository makes more sense to call it using a domain concept rather than a pattern name. For example a FileRepository might be called a Folder. I would call it Folder in the domain rather than a FileRepository.

    All in a great presentation, however we just got a fire alarm which has basically put an end to the session. Well, off into the cold now with the rest of the geeks.

  • DevTeach Day 2 - XNA with Live!

    Sitting for the first session as we're going through the XNA session with Pat McGee. The session was an intro to XNA (and filled with a room full of guys who haven't done any XNA work so it was a good audience) but was fun with the people involved.


    XNA on Xbox requires you to be connected to XBox Live and the Xbox networking was down so the guys couldn't demo anything on the XBox. However the fallback plan was to demo some networking on the laptops they had (of course when you come for an XNA demo you bring extra laptops and Xboxes, it's all about the hardware). Luckily it was John "The Pimp" Bristowe who saved the day and got the Xbox hooked up to the network so the demos were good to go.

  • DevTeach Day 1 - ReSharper Madness!

    Despite the fact that Oren's presentation is about ReSharper and as an Agilist I try to follow the manifesto "Individuals and Interaction over Processes and Tools", ReSharper *is* something that developers need. It is hard as it flies in the face of the manifesto but I think there are exceptions to the rule, and this is one of them.


    Oren during his ReSharper talk opens up the PetShop client, runs a copy of Keyboard Jedi (which was flying of course) and started his refactoring madness. 4 keystrokes later he converted all of the crappy public fields in the codebase to public properties.

    So we're about 8 minutes in the demo and if you ignore the 4 minutes it took him to explain what was going on, he's converted the PetShop login code to use Castle ActiveRecord and achieved persistent ignorance in the codebase. Nice.

    Again, watching Oren (even as he's doing a demo here and pausing for questions) work in ReSharper is like watching DaVinci paint the Last Supper (not that I was there or anything). It's pretty slick (and a little overwhelming) especially when he undo's 5 minutes of coding in 5 seconds just to find something then redo all that code again. Then again Oren probably sees code like Neo sees the Matrix.

    In the end it took some time to extract the crappy code out of PetShop (which is no easy feat) and a lot of refactorings and keystrokes later, the goal was accomplished. Not bad for an hour sessions to introduce ActiveRecord to a legacy codebase. With some time and care and feeding you can do the same (maybe not at the speed of Oren but then that would be inhuman, or JP-like).

  • DevTeach Day 1 - User Stories for You!

    Just sitting through David Laribee's talk on User Stories (well starting really). No code, just fluff. No wait, that's not right. There's no code but that's okay as we're talking User Stories however there's redemption as David isn't cracking open PowerPoint but rather using Keynote on his MacBook Pro.


    How do you sell Agile (or User Stories) to your boss? If you're stuck in Waterfall land where there is a design phase, construction phase, testing phase (unit testing phase), and the be-all end-all deployment phase. Agile is about an alternative to getting away from the giant Gantt chart from hell where you're predicting what you're going to do 9 months from now. Projects can't work this way, babies can.

    TDD, DDD, BDD, Patterns, etc. are all engineering practices. They're all good and needed. However if all you're doing is these practices then you're just doing a half-baked job. Let's go back to the Agile Manifesto of "Responding to change over following a plan". Agile does have planning and it can be hard, but it's the type of planning that alters the roadmap as you travel along the journey.

    Just because you're doing iterative development, doesn't mean you're doing Agile development. There's a term called Scrumifall (and anti-Agile pattern) where you break up the waterfall approach into chunks. What you really want to achieve is more aligned to Analysis/Design/Code/Test/Deliver in each iteration. There is no design phase, there is no testing phase. At the end of the iteration, done is done and released to the customer (but not necessarily released to the public).

    How do you work with stories or tasks? There was a good example by Oren on "As a User I want to search the CRM system". This seemed like an epic and for him, involved 3 developers for a month. That's pretty big so a technique is to break this down to smaller pieces (not tasks) so they're more digestible. One rule of thumb is that if your story is longer than your iteration, then it's probably too big on it's own and needs to be broken down.

    User Stories have smells too. For example if you have a story like "As a manager I want to approve/reject a document so that...". You might want to stay away from CRUD like functions in your stories. If you've got a CRUD story, you might want to keep them together and not get them too small. Small, but not too small. It's more of an art than a science here.

    David mentioned the Story Point Hall of Fame which is a cool idea. The idea is to take a real story where it really is a good example (in your organization) of a 1 point story. Or a 3 point. Or 10. Here's the idea. Put the idea up on a wall, cork board, whatever and tell everyone that this is a good, proven example of a 1 point story. Then other teams can come back and look at the wall to say "That's a good example" and model from it.

    How do you deal with inter-dependent stories? A good practice for stories is to follow the INVEST principle (Independent, Negotiable, Valuable, Estimatable, Small, Testable). When you're looking at your story where there's a dependent story the technique to remove the dependency is to fake it out (almost like a mock for user story but it's more of a fake or stub). David calls them connectors and they're basically get the dependency out and create a new story to handle the fake out.

  • DevTeach Day 1 - Let the Games Begin!

    I'm not focusing very well today. I've been staring at the DevTeach schedule for about 10 minutes and still not sure what I'm seeing. No, I'm not being figurative here. I mean I've been literally staring at the schedule for 10 minutes and can't make heads or tails out of where I want to go. I also don't know how I could be a bigger fan of Dave Woods. I'm not sure if it's the lack of sleep or the inability to read right now. It's certainly not the clarity of the schedule itself. That's pretty clear and straight forward.

    The claw! It's all in the claw!

    Anywho, good news (or bad news if you were expecting to see someone else at DevTeach). I'm filling in a missing slot tomorrow in the Server Track. James Kovacs and I are going to pair up and do a session on source control best practices. Here's the abstract (cut me some slack as I wrote this at 3:05 last night):

    Do you use source control? Does it work for you or do you work for it? Join Bil Simser and James Kovacs as we explore the wonderful world of source control and how it makes your source code sing and dance and sometimes do tricks. We’ll explore the ABCs of setting up your initial tree, managing code branches, dealing with evil merge scenarios, multiple users, conflicts, all the way to scaling up source control to large teams, integration with other tools, and generally making your life easier when dealing with this precious commodity in your Enterprise. In this session you’ll take away some best practices, tips and tricks, and new techniques you can bring to your teams.

    Should be a blast. James and I are in the Port Hardy room at 3PM so check it out if that's your thing.


    Off to lunch, back later with some more stuff as the afternoon is full of Agile. David Laribee is doing a session on user stories, James Kovacs follows up with his PI Domain Model speak, and the day (for me) wraps up with Oren and ReSharper. Just hoping my eyes will be able to keep up with Oren and his ReSharper Kung-fu.

    Also tomorrow should be cool as I'm going to be on the Agile Q&A session hosted by David Laribee so join Jeremy Miller, James Kovacs, myself, and others as we talk ALT.NET for an hour or so.

    Speaking of ALT.NET, we're looking to get some some Rebel Alliance faction going Thursday night so ping me if you're down here (up here?) in Vancouver and we can get together for an informal ALT.NET chat.

  • DevTeach Day 0 - Vancouver Virgin

    Well, I'm not really a Vancouver Virgin. I've been here a few times. Never for a conference though. And this is the first time DevTeach hits Vancouver so hey, the title sticks and it's my blog so deal.

    Here we are again kids, first day of the conference and man it's been a day. It's 3:22 when I'm starting the blog and we've been going all night long. This poor old tired body can't take much more and I think I'm going to be skipping the 7:30 breakfast call tomorrow morning. I've already put the Do Not Disturb sign on the door and won't be getting up until Thursday. Unfortunately other MVPs were a little less happy-go-lucky than I was and fell by the wayside throughout the night. More on that later.

    So sit back for the next few days and again live vicariously through Unka Bil's blog, a train wreck full of fun, adventure, and photos that should have been confiscated at the bar.

    I did arrive in Vancouver pretty uneventful. There was a Santa Claus parade during the day so of course traffic was a gong show. The only redeeming quality was the fact I could harass the locals when they asked me questions I couldn't answer.


    Outside of the local Subway a couple asked me what all the commotion was about and why all the traffic delays. I had a hard time swallowing that locals wouldn't know about the parade, especially since they had parade bags and one of them had a parade scarf. This of course brought out the insane Calgary guy in me with the only response I could think of that was appropriate.

    "It's aliens! They're taking over the downtown core!! Run for your lives."

    At which point I tore off down the street and around the corner. Not sure if they followed but later at the market they were nowhere to be seen so I assume they found their own evacuation route.

    Dinner with the MVPs

    It was a great dinner at Steamworks with Microsoft, the MVPs (about 40 of us), and the user group leaders from around (Vancouver, Victoria, Edmonton, and even Saskatoon!). Of course as I turned around and checked a few tables out, who is the only person at a table with a laptop? Oren.


    No doubt masterminding another new Rhino Mock feature that we'll all hear about tomorrow (or is yesterday, I always get that confused).

    The other event for the night was the quote that almost had me spewing my drink at dinner. Of course it appeared courtesy of Justice as we were talking about and exchanging business cards.

    "If my business card was a penis it would be 15,000 feet long!"

    Yeah, it was going to be a long night...

    Party with Palermo


    Jeff, as usual, kicked off an awesome party. Looked like around 100 people crammed into a small room but then I was never good at guessing numbers. Books were given away, hats were thrown into the crowd (literally), and this lucky winner walked off with a ticket to DevTeach after picking a number between 1 and 1000.


    During the course of the party, much rejoicing went on. Here I caught Kyle and Justice together although I'm still not convinced they're separate entities:


    Beth Massi, ex-MVP now softie was out and about with the guys having a great time:


    It seems everyone at the party was somehow affiliated with the Justice Gray Fan Club. In fact, I tracked down this little fellow who's not only the president, but he's also a member:


    Our own Justice Gray won a copy of JetBrains ReSharper. Now we think it'll make him a better developer, but we can only hope.


    David Laribee explains the finer workings of Domain Driven Design to Jeremy Miller, while James Kovacs and our own Canadian MVP guy Sasha looks on.


    Shooters Don't Always Stay Down

    Just ask our Igloo coder, coming off his worldwide tour. He wasn't looking too good. Luckily I don't have a wife factor I have to deal with when it comes to publishing incriminating photos on the net or talking bad about him and his evil whiskey ways. Pictures speak louder than words.


    Donald, dude, whiskey and shooter don't mix.

    What Lies Ahead

    Who knows? It's late.

    We polished off the bar then headed up Robson street in search of food which was delivered unto us in the form of Earls. Ahh, bless Earls and they're burgers and, well, food stuff. Along the way sort of picked up Greg Young who schooled us on DDD (as he should) and met the lovely and talented Dave the Chef and Emma the Social Butterfly (who's aspiring to work in Client Service). Good food, good conversation, and good times.

    So it's late and most geeks are in their beds sleeping away. Others are furiously hammering on their keyboard (no, not *that* hammering) trying to get their presentations "just right". Oren is probably still jet lagged and re-writing Rhino Mocks to incorporate .NET 3.5 features. And the rest of us, well, we're just trying to make it through to the next day...

    For the rest of the trip, you can view my entire Flickr set of DevTeach 2007 Vancouver here.


    I'll be blogging from the floor during sessions and trying to keep things moving here at Fear and Loathing Central. I'll also be outfitted with my new Eye-Fi card. This is an uber-cool (geekwise) SD card that you setup with a network to upload to Flickr (or some other service, I chose Flickr) as you take the pictures. Yup, it means mere moments after I snap a picture on the DevTeach floor it'll be in your hot little hands courtesy of Flickr and a $100 SD card. Very slick.

  • So who would you cast?

    I just finished watching my DVD of Red vs. Blue Season 5. I've gone through all 100 episodes of the hit internet series and it's a blast to watch. From the first moments of "why are we here?" to the chuba-thingy/puma debate to 1,000 copies of Church trying to do the right thing, the series is one of my favorites.

    I was thinking this morning with all the bruhaha about the now defunct Halo movie, what if RvB was a live action flick? Of course everyone running around in full Spartan armor isn't any fun, but who would you want behind the masks? What do you think would be a good set of current actors to play our beloved Rooster Teeth characters? Here's my picks:

    • Church: The leading man of course is central to the show. Maybe Nicolas Cage could do it, but I would probably go for someone like Colin Farell or Hugh Jackman.
    • Doughnut: Doughnut is hard as he's a hard one to nail down but I might go for Jude Law or Matt Damon here.
    • Tex: Not my first choice, but Angelina Jolie might work here. Can be a bit of a tomboy but hot too (even if she is whacko)
    • Sarge: You need a rough and tough guy for this and the first person I thought of was Tommy Lee Jones, although (except for his age) Clint Eastwood could nail this.
    • Caboose: This was tough as he has to be dumb but believable. Maybe Will Farell, although he might be over the top and you might want to slot in someone like Heath Ledger.
    • Grif: I thought Mark Walberg might make a good Grif here with his off the cuff remarks and attitude.
    • Doc/O'Malley: John Lithgow as he can play a crazy evil mastermind, but he's not really military grade. I think Johnny Depp could pull this one off with flying colours or even John Travolta.

    I didn't include the whole cast here, but feel free to leave your choices in the comments.

  • What's an ALT.NET Girl to do...

    I ran into a lot of problems this week with VS2008 as I was trying to get my machine up to snuff for my geekSpeak on Wednesday. VS2008 wouldn't run properly last week and I couldn't do any WPF demos. So I uninstalled 2008 thinking I could re-install it. The re-install went worse and crashed all the time. So I uninstalled both VS2008 *and* VS2005 then re-installed 2008. After a few days of installing/uninstalling/re-installing, I finally got something up and limping and the demo went off without a hitch (I think VS only crashed once on me).

    So now I'm on the precipice of  re-imaging my system to get it back to some kind of normalcy and I turn to you, kind and gentle reader.

    What should Bil do:

    1. Re-install XP, spend a few hours updating service packs and hotfixes, knowing that it'll work and I'll be back where I am now but a little faster (always is after a re-install) and all my software will work.
    2. Install Vista Ultimate, hope to heck I can get all my tools working, and watch my Core 2 Duo crawl to Slothlike speed.
    3. Take a chance on installing Windows 2003 Server with no network or video drivers in the hopes that IJW
    4. Install Windows Server 2008 RC0, because you couldn't get enough of Vista on the desktop... now you can get it on your servers!
    5. Break down and convince my wife that buying a new MacBook Pro is a good thing (because she'll get my current Inspiron 9400 which is faster and better than her Inspiron 6000)

    Decisions, decisions.

  • WPF geekSpeak Webcast

    Thanks to everyone who attended my first (but not last) geekSpeak webcast yesterday. We had an awesome turnout and a lot of great questions and interaction.

    I'll be posting the source code to the shell application with all the demos I used (including the 5 or 6 demos we didn't get to) after I add some comments and instructions to make the code a little more tutorial-like rather than just a brain dump of the end result. I'm still waiting for the geekSpeak guys to put together the webcast in a recording so once that's done I'll put the code up with a link on Channel 9 to the webcast (you won't have to register for it, you can just watch/download it). I'll also include my own answers to the questions asked during the webcast as I have a capture of those and a few things were skipped over or missed during the session.

    Thanks again and here's to more geekSpeak sessions in the future!

    PS And no, I wasn't wearing any pants during the session.

    PPS The photo of me used was taken in Florida during a DevConnections I presented at last year so that's not snow behind me but rather it was white sand.

  • Everything You Always Wanted To Know About MS-MVC * But Were Afraid To Ask

    Scott Guthrie, bless his heart, has posted one of the longest and most in-depth blog entry I've seen from him in a long time (and most of his tend to be long and full of great nuggets).

    This is everything you need to know about the new MVC framework that is coming out from his group soon as an alternative to WebForms (not a replacement). It walks through a typical storefront example showcasing how the MVC does its thing. It's a nice piece of work although you might want to read his overview post which will get you familiar with MVC.

    For the record, his post has 5,648 words; 34,768 characters; 146 paragraphs; has 177 comments (so far); and is about 32 pages long.

    Now that's a blog post!

  • WPF geekSpeak Webcast Wednesday Reminder

    Just a reminder that I'll be doing my first geekSpeak webcast Wednesday on WPF. I'm calling the talk "Tricks of the WPF Programming Gurus". We'll wallow through WPF and talk about what it is and how to use it, dive into code (after about 5 minutes of the blathering) and then do some code, write some more code, look at some code, and finally check out some more code. In short, it's going to be an hour and a half of code, code, and more code. Should be fun and we'll see where things go. The talk starts at 12pm Pacific Time, and it touted as level 200. I guess I'll keep it at level 200 although I might go crazy and kick it up a notch to level 1200 (promise, no assembly code will be harmed in the making of this screencast) so who knows. You can register via the attendee URL right here right now. Be there or be WinForms based for the rest of your natural life.

  • Two things...

    Two things I learned this morning and it's not even 7AM yet.

    1. You can open up an image in Paint.NET in the File Open dialog by specifying a URL to an image on the internet. I'm assuming this is nothing new and maybe any File Open dialog can do this (not sure) but it works in Paint.NET. I was opening a file that I though I had copied the local path name in the clipboard. Instead I had the URL to it on a website. So I let it go and do it's thing and lo and behold it had brought the image down and opened it up for me in Paint.NET. Cool.
    2. Visual Studio (2005) holds a reference to your solution files even if you select File | Close Solution. This has bugged me for awhile but I was re-syncing my local folder with what was in TFS and needed to blow away my local directory. I selected File | Close Solution and waited a bit, then proceeded to delete the files. Up until recently, I just installed SysInternals file locker unlocker tool and up it popped telling me that msdev.exe had a hold on the files. No matter what I did I couldn't tell Visual Studio to let my files go (even opening another solution). So the only way to delete a directory of a project you've opened is to shut Visual Studio down. Very annoying to say the least.

    Wonder what the rest of the day holds?

  • Party with Palermo losing steam?

    Party with PalermoWas just over at the Party with Palermo site for DevTeach Vancouver that's coming up in a few weeks. Jeff's banner lists 250 attendees (approx) but I'm only seeing a couple dozen names there? C'mon people. If you're going to be at DevTeach you must attend this party. Heck, if you're just in the Vancouver area why not come (if you're a geek and can tell me the 3rd parameter to System.IO.Compression.BeginRead())

    Anyway, check out the site, sign up and let everyone know you'll be there. We'll even have Kyle and Justice together again for the first time. You just can't miss that!

    See you there!

  • Learning to live with the squiggly line

    My name is Bil Simser, and I'm a ReSharpaholic.

    There. I said it. I'm addicted to ReSharper in a very heroin-like dependency way. I refuse to work without it. Yes, I will actually turn down contracts if the firm doesn't provide or forbids me to use my own copy of R#. To me my value to a customer is providing the maximum productivity that I can and to me that productivity comes from using this tool.

    I know it seems wrong to depend on a tool like this but it's reality. The way I code works perfectly within the way R# aids me in being productive. It grants me a fluid motion to refactoring and code efficiency and helps me get into a groove when I code. A groove that is both productive and efficient and fun. That keeps me going throughout the day. No longer do I have to worry about namespaces, or perform manual acts of extracting interfaces, pushing methods up to base classes, or creating classes. I don't get bogged down finding classes or files and I've almost abandoned my mouse.

    However being so dependent on it I'm now at a crossroads. Visual Studio 2008 RTMs later this month and I was looking forward to using it. It's faster and seeemingly better than it's 2005 counterpart and works well (at least throughout all the beta testing we've done on it). R# provides a version for VS2008 however it's lacking some major compatibility not with Visual Studio but rather the underlying CLR, namely version 3.0. This means that if I choose to move to VS2008 and R# 3.x I have to live with squiggly lines in my code whenver I'm writing LINQ, lamdba expressions or extension methods (to name a few examples).

    What are these squiggly lines you ask? Take this screenshot for example:

    Here you see things like "lot" underlined with a squiggly line (I'm sure there's a more technical term for this) indicating there's an error of some kind. Sometimes it's as simple as a syntax error, other times it's the wrong type being passed to a method. This helps tremendously combined with the right gutter indicator that shows there's something amiss in your code. You can immediately just jump to the spot and fix it. This is insanely useful as I like my code clean. Squiggly lines are dirty to me and mean I have to do something (and you can see without them, how would you know something is wrong until maybe compile time [maybe]).

    Unfortunately things like extension methods in .NET 3.0 are alien to ReSharper, and will be for some time now. Extension methods for example allow you to extend a class (any class including string or object or your own) and enhance it. For example here's some code from Scott Guthrie that extends System.Object by adding a method called "In" to it:

    This allows me to write code for example like checking if a particular ASP.NET control is within a container control collection:

    However in the declaration of the "In" extension method, ReSharper is going to show it's squiggly lines as it doesn't understand "In(this object o, IEnumerable c)". It'll consider this a syntax error and indicate this in the right gutter column. This seems dirty to me. It makes me feel like I've got something wrong in my code and I need to react, but there's nothing wrong here. These aren't the syntax errors you're looking for. Move along.

    So it's a toss up between using VS2008 and 3.0 projects and living with squiggly lines, or not. On the flipside, stick with 2005 and just wait until JetBrains comes out with version 4.0 early in 2008. The other alternative is to use VS2008 but not write 3.0 code (or the features that ReSharper doesn't support yet). However that in essence makes me feel like I'm restricting myself because of a tool. Not a corner I like to be in but I seem to have painted myself there.

    While I understand we're talking about two different companies on two different schedules here, it bugs me. Maybe you'll say "Suck it up Princess" and deal with it. After all, the code will compile it's really only the UX inside the IDE. However to me that's important too as it makes me stop and wonder, did I miss something? Do I need to stop and do something extra here? Maybe it's not the same for you but for me it's a question I'm pondering which is making me think about this. YMMV.

    Update: Ilya Ryzhenkov, the .NET Tools Product Manager at JetBrians, posted an update in the ALT.NET mailing list with some information about ReSharper 4 and C# 3.0. While this isn't "official" information, it might be useful in making decisions:

    "It is not possible to convert C#-2.0 "brains" of ReSharper to semi-C#-3.0. Also, it doesn't make any sense. Not only new constructs appeared in new version of C#. There are many changes in type inference, symbol binding and other very internal things. Even if we just parse the syntax, we will not be able to resolve overloads because we can't infer the type from, say, lambda. It will still be all red code.  Refactorings and other features will break all the time, because they should be updated to support new constructs. Feature as simple as Expand Selection should be updated to work consistenly.

    Even now, when we have ReSharper 4 in development and it parses almost all new constructs (we use C# 3.0 actively), and even (almost) fully supports "var", extension methods, object and collection initializers, implicitly typed arrays, autoproperties - it is still a pain to use ReSharper with C# 3.0. We are working hard to make it consistent and support language in its full power, but it's going to take time.

    Also note, that EAP builds will be available pretty soon, December (optimistic) or January (more realistic). So you will not have to wait for 4-6 months, if you are going to jump pre-release wagon and provide us with your invaluable feedback."

  • Not Attending TechEd Barcelona this week

    I'm here in Calgary this week, not here:


    No. I will no be attending TechEd Barcelona. In not doing this, I will not be checking out Agbar tower at night:


    Nor will I be taking a tour of the Barcelona Palace:


    And I definitely will not be visiting the Casa Mila la Pedrea.


    If you are at TechEd Barcelona, feel free to check out these sites. I will however be working in Calgary, Alberta where the weather is basically crap and nothing like Barcelona.


    Just wanted to make this clear for everyone who was wondering.

  • SharePointPedia goes live

    The news came a little early as it was originally slated for public release on Monday, but the genie is out of the bottle now. SharePointPedia is a MOSS based website that Microsoft is running for SharePoint content. It's not WikiPedia with the SharePoint name so don't think you'll see content blocks here with all kinds of information. Instead it's more like an information portal that takes you to other places, places with SharePoint content (blogs, whitepapers, etc.) and the content is submitted and recommended by you. All you need is a Windows Live ID and once you're online, you can add your own content or recommend others. This is very much along the lines of a Digg-like community for SharePoint.

    I know, I know. Some of you may be saying "But Bil, isn't that what SharePointKicks was all about?" (and we know where that site is today). Well, yes and no. It is all links to content. Rated, categorized, and vetted content. However it goes beyond what SharePointKicks offered. Content can be related to other content, recommendations bubble up to the top of the list, and users who submit the content are featured so you can see who's talking about what.

    In any case, it's new and spiffy and is yet another showcase of what SharePoint can do (unfortunately no, the source code is not available). Check it out today as a contributor, a reader, or both.

  • Being a Better Presenter

    image I've talked previously on great presentations and presenters. For some of us, we live in two worlds. One is the eat-sleep-breath code world, and the other is the present-to-the-masses one. I think I'm a better developer than I am a presenter but I try to come up with good presentations, be flexible and friendly with my style, and above all provide value for your hard earned time you're sitting watching/listening to me. On that front here's some tips for those that are looking to advance their presentation skills.

    • I feel that the majority of speakers make the common first mistake of hitting the lights and sinking everyone into a semi-coma like state.  Whenever possible I suggest presenting with the lights on and tweaking slide-decks to accommodate.
    • Slide Decks are the #1 flaw I see in almost all presentations and I've personally tried to not use them.  People do not, can not and will not remember pages and pages of cde splattered into a presentation, 2 or 3 key words with a slick visual to invoke a reaction will almost always work better (the possible exception being web based / virtual presentations. When I do have to resort to them, I apply a 7-7-7 rule. 7 slides, 7 points, 7 words in each point. This gets the point across and let's me tell the story I want to tell without repeating what's on screen.
    • More confidence and attention to the presenter is always a huge plus.  The presenter should be the first point of attention, the slide deck is just a support blanket when you really need to resort to it. I was told once that a "good presentation" should be almost useless to someone (without the presenter).  You almost always see people looking for the "slide deck for such and such" which always amuses me when I think of the previous statement.  Again the exception being web/virtual presentations.
    • Better story telling.  People will always respond to a good story, any time it's possible to tell a couple of 5 minute stories that are funny or interesting and in some way tie into what your talking about, I'd say go for it.  In my mind good story telling goes hand in hand with a good presenter.
    • I point almost everyone I know whom is serious about presenting, and getting better at presenting to:  - awesome resource for tips/tricks. (other obvious favorites - Seth Godin, Guy Kawasaki).
    • Know your audience going in when possible - but be ready to change gears if you see eyes glazing over.  I've been mid-presentation on the finer points of some tool when I know I've lost the audience so a shift is needed.
    • Practice, Practice and more Practice - No surprise here.
    • Learn from others. Often I'm attending user group meetings or conferences simply for learning and picking up presentation tips from people. Seeing how others present topics and discuss ideas helps me be a better presenter. You might want to check out Al Gores traveling presentation (An Inconvenient Truth) - not so much for the environmental education, but it's possibly one of the most compelling presentations in history. It's out on DVD.
  • Geek Toys: Digital Camera Wi-Fi!

    This is totally cool. An SD card with a built-in Wi-Fi adapter for uploading your pics to Flickr, Facebook, and other sites.

    About a month ago John Bristowe showed me some Nikon camera that had Wi-Fi capabilities so you could upload your pics directly from the camera to Flickr. I thought it was cool so if I was say at Party with Palermo, I could snap some pics and upload them live. Pretty slick. However it meant buying a new camera which wasn't cool since I just dropped $800 on a new digital Nikon. Also the camera really didn't take great pictures so that was a bit of an issue, but the concept was what I wanted.

    Now this comes into my inbox. I just ordered one so I'll let you know how it works when I get it. If you have a SD card camera and are looking for a way to get your pics uploaded without the need for your laptop, this is the way to go. The card is just an SD card and comes with 2GB of storage, which is decent. Then after you set it up, you just snap your pics and the SD card will upload your pics to the site you configure it to when your camera is in contact with the wireless network. Slick!

    You can check out the webpage here.