Gray's Matter
Justice Gray - North America's favorite metrosexual software consultant

I Wish These People Updated More Than Once a Year

We found the following item in my clothing bag while unpacking after DevTeach Vancouver:

David Laribee - Where Did This Come From?

I have absolutely no explanation for how this got there.  I'm torn; while part of me has many questions, the other part of me keeps saying that I probably don't want to find out the answers...


Wednesday, December 19, 2007 #


(I've had to break these up for length - the rest of my adventures in Vancouver will be up post-haste)

My Sunday begins with a phone call in the morning from none other than EDMUG's own Program Director, Steven Rockarts.  Steven is calling to celebrate the fact he is now the first person in history to miss two flights in a row due to nothing but lethargy, having slept in past his first flight and showing up late to the second one.  You might be surprised that *anyone* could manage to do this unintentionally, but then again, you don't work with Steve.  The following exchange between my wife and I sums it up:

Mrs. Loquacious
: "How does *anyone* miss two flights in a row?"
Justice: "Rockarts?"
Mrs. Loquacious: "Point taken"

My flight is uneventful, which is unusual for an EDMUG executive member in that I have neither missed several flights, nor chased several stewardesses with my belt undone.  However, the moment I arrive in Vancouver the games begin.

Literally 10 seconds after getting off the plane my cell phone begins vibrating ferociously.  Obviously, it must be my wife, knowing when my flight arrives!  I pick up only to hear the Igloo Coder screaming:

"HEY BUDDY ARE YOU COMING OUT WITH US OR NOT YEEEEEEAAAAHAAAAA" 

I hurry Donald off of the phone and explain that maybe after I talk with my wife and actually get something to eatI can come out to hang.  Of course, it doesn't take more than about 15 minutes before I get another text message...

"So you're coming out tonight right?"

I arrive at the hotel and once I get in the room, the phone rings.  It must be Mrs. L!  I pick up and..

"HEY YOU @(#@* (**#*!!*@##   WHAT'S UP MAN!?!?!  GET TO THE BAR BEFORE I BEAT YOU DOWN"


of course, it's Donald again, only this time even drunker than previously and making even less sense than normal.   I try to reply that I still need to get some food, but it's for naught as Donald has decided to pass his cell phone around the bar in an attempt to pick up chicks.  After listening to static, swearing, and vomiting for 2 minutes I give up and decide to go pick up food instead.  30 minutes later, I am back in my hotel room eating one of the most marvelous burritos ever created (thank you to Steamrollers) and expecting a text message from my...oh, forget it, you already know where this is going:

"Quit being such a @#(*@  @*##*@(  and walk over here!"

"Dude, just admit it - you are drinking ALONE.  Besides, I still have to do some work on my presentation!!  P.S.  This burrito is amazing"

"@(#&#& you, and @*#&$ your presentation you candy-@$$ed burrito lover"


and then, the coup the grace - I get a text message from a number I don't even *recognize*!

Stranger: "Dude, are you joining us tonight?  Donald just said something about you making love to a burrito"

Justice: "First of all, I would totally make love to this burrito if I physically could, because it is that awesome.  Second, who are you and how did you get this number?"

I have no time to discover the answer to this mystery as immediately after sending this there is a large *THUD* sound at my hotel room door.  I open it up to find a large hunting knive sticking out of it and a note attached that appears to be written with someone's blood! 

"Hey there buddy!

Just wanted to wish you good luck on your MVC presentation on Thursday.  I sure hope nothing weird happens to you before then!

See you at the party tomorrow - or *will* I?    HA HA HA HA HA HA HA HA HA

Your friend,
Jeffrey Palermo
"

This has all been exciting enough for one evening, so I walk back in the room to get some sleep for Monday.  But of course, before I retire, one more text message is received:

"You're a loser. =("

As you might be able to guess, that one wasn't from my wife either...

To be *continued*!

Thursday, December 06, 2007 #


This photo was taken at the DevTeach Canadian User Groups summit last Monday (click for a larger version).



Why do I like this photo so much?  Well,


which makes this the perfect summary of the EDMUG executive in pictures.*

Stay tuned tomorrow for the only recap of DevTeach that matters!!

* To those of you who feel Steve Yang and Brad Daoust should be represented appropriately for this to be a real EDMUG representation, click here





Tuesday, December 04, 2007 #


It seems that the excitement continues to ratchet up at DevTeach 2007.  In addition to some of the greatest presentations in North American history, it seems that Jean-Rene Roy and the rest of the executive have creatively added a brand new attraction that I've never seen at any conference yet; the presentation version of "Survivor"!!

At least, that's the only possible explanation I can see for what is literally a change from just *yesterday*...

devteach2007_before.jpg

to *today*...

devteach2007_nowwithpalermo.jpg

That's right, apparently only at DevTeach will you be able to see Jeffrey Palermo and I do nearly identical presentations on exactly the same topic!!  Forget about D'Arcy Lussier's claims that I am somehow going to have a throwdown with one of the castoffs from Color Me Badd!  It looks like Mr. Palermo has decided *he* wants to take aim at the sexiest developer alive.

I can almost visualize what transpired in a darkened room in Austin, TX:

"He has amazing shirts, fantastic hair, oozes machismo, and people rip their clothes off at the sight of him.  How can I get a piece of that action?  He's not even an MVP!!!  I need to know HIS SECRET!!!"  (slams hands on table)

(frantic pacing, weeping, follows for 30 min.  Then...)

"That's *IT*!!  He's presenting on the MVC and *that's* why he's routinely mobbed by hordes of college women!  YOU'RE MINE JUSTICE GRAY!! MIIIINE" (cue cackling maniacally as Jeffrey twirls his imaginary moustache)

Jeffrey's wife (knocks on door): "Honey, are you done in there?  It's time for dinner!!"

Jeffrey: "I said IN A MINUTE!!" (frantically puts his shirt back on and rolls up his Justice Gray poster)

Jeff obviously wants to harness some of that raw metrosexual joie de vivre for himself, and who can blame him?  I'd want to capture it as well if I were not already me!  Jeff, I know you want more than anything in the world to come home to your wife and children with a crate full of women's underwear and loudly proclaim, "This got thrown at me in Vancouver!!  In public!!"  but the MVC is *not* the path to being covered in frilly lace garments.  Do not blame my upcoming presentation on the MVC for my status as the focal point of society's carnal desires.  Instead, blame the *real* culprit: genetics.  If I can give you any advice as a role model to millions and a brother in Christ, it is that ridiculous good looks don't come from presentations on *any* topic; they come from the heart.  If I could give you any *other* advice it is that you probably won't be able to become a software development sex symbol when you're throwing extravagant parties full of dudes

I know some of you are disappointed to hear this, but there will be no octagon matches between Palermo and Gray at DevTeach where I end up stuffing him into a serving wench dress.  And that same some of you should probably seek therapy.  Jeff P presenting on MVC is good news for you at DevTeach, and it's good news for your freedom of choice!  Believe it or not, not *every* software developer wants to come to presentations involving Mexican wrestler masks, public intoxication, sexual harassment and the threat of potential lawsuits.  Some people want to see technical presentations with technical *content*; thankfully, I know Jeffrey Palermo can provide it in spades!!  For the rest of you, nothing changes at DevTeach on Thursday, Nov 29th at 3 PM...except your LIVES.

FOREVER.

Thursday, November 15, 2007 #


Yes.

Oh, yes.

Introduction to the Microsoft MVC Architecture...what side are YOU on??
Presented by Justice Gray

Everybody who is anybody is talking about the new MVC.  And when you've heard it mentioned, you've *also* heard the standard "We can all play nice together", "there's still room for choice", "this is just an alternative" and all those other phrases that likely also involve group hugs and the Care Bear Stare.  FORGET THAT.    The world is waiting for a man to take a stand - a name that people trust to start the next great religious war in software! So at DevTeach, North America's Metrosexual Development Hero is going to break his silence and show you why the Microsoft MVC is the *only* Microsoft web architecture you should be developing with.   Sure, Justice *doesn't* have the advance betas, lines of cocaine at every table, and free entry to shady massage parlors that Microsoft gives their MVPs, but he *does* have the ability to incite a full-scale *RIOT*!!  Why is this the most important piece of MS web architecture in ten thousand years?  What's the problem with traditional WebForms development?  How do the mysterious Page Controller and Front Controller patterns figure into this?  Why do Datasets suck?  Will Justice even get a beta in time?  Will you get laid tonight?  Who hit you over the head with that beer bottle?   The answers to these and *many* other questions can only be found in THIS PRESENTATION, so make sure you're there for the session that neither you or the local authorities will *ever* forget!!

Let's get ready to RUMBLE!!  HA HA~!

Friday, November 09, 2007 #


Two pieces of massive news, ladies and gentlemen:
1) The absolutely stellar sequel to the 2006 Edmonton Code Camp is less than a week away!! 
2) At this code camp, you have the chance to be part of a session unlike anything you've experienced at a Code Camp before or ever will again.  Here are the details, ripped straight from the sessions page:

Unlike most sessions you have participated in at conferences and code camps, this session will involve the entire room in the conversation. Anyone can take one of the five speaker chairs to ask questions, make statements or answer question. No one person will not be able to take control of the room as the fishbowl (group of 5 speakers chairs) will be constantly changing as people step in and out. Because of the dynamic nature of the people speaking, the direction of this session will be influenced directly by you, the attendees.

Come for the conversation that will make you want to change the world and *THEN* change your pants!!  *You* are the future of software development in Edmonton.  *YOU* are going to be the harbingers of change in our city, our community, and our entire industry.  So this is your session - an open dialogue with some of the brightest minds in Alberta...*and* perpetual tag-alongs Donald Belcham and Justice Gray!  If you can only attend one session at Code Camp...if you can only attend one session this *year*...heck, if you can only attend one session in your entire life, this is it!  If you have ever wanted to improve your team, your organization, your sex life, or Donald's fashion sense, this is the talk you can't afford to miss.     What happened at ALT.NET this past month?  How do we empower others around us to make change in their industries?  How do we demonstrate the value of agile development practices and tools to our management?  What gets you fired up like nothing else?  What is the future of the Edmonton .NET user group?  Come bring your voices and your experiences to the presentation as we come up with the answers to these and other questions that will guide the  


Yes, the abstract ends abruptly just like that; a stroke of brilliance.  Exactly what is it that we're going to be guiding here?  It looks like you'll have to attend this session to find out!!  However just for the readers of this blog I will kill the suspense and spoil it here: the results of this session will be guiding the Alberta .NET community for some time to come.

This is a conversation we have been wanting to have for some time, *with* the community's direct involvement.  You might argue this sort of session violates the "must be about code" rule, but I beg to differ.  A discussion like this is all about the code.  It's all about the code you and your teammates are writing every day.  It's all about the code that powers your companies.  It's all about the *real-world* code that we are putting into production systems every day.  Out of all the session at Edmonton Code Camp this year (and we have an amazing lineup, to be sure) I am the most excited about this one, because our community is the presenter.   I look forward to seeing and hearing you there this Saturday at the University of Alberta so that we can start changing the dev world together!! 

Monday, October 15, 2007 #


So the ALT.NET conference has begun, Donald Belcham is dressed up in his full-body plush dog costume and is apparently asking the remainder of the conference when the "yiffing" is about to start.  I suppose I should have informed Donald that "ALT.NET" was *not* an alternative lifestyles conference before he left, but I'm sure the results will be more entertaining this way.  There's been a lot of interesting technical topics discussed thus far but let's be honest, you don't *really* care about a bunch of developers hugging each other and singing Kumbaya every time someone mentions the word "Monorail".  No, you are wondering whether Martin Fowler has accepted his certificate yet!!   I have an update from my contact in the field:

"Hey, you wanted to know whether I talked to Fowler yet.  I came up to him at a quiet moment and said, 'Great news Martin!  I have a little something here from your friend Justice Gray'
'Justice?  Where is he?  He told me he was going to be here you know.'
'Um, Martin, he wasn't able to make it today.   But he did give you this certi...'
'HE PROMISED ME!!!!'
'I know, but he's not here and I...'  
Martin, shaking uncontrollably, bellowed 'You do something.  You take a picture of me right now and you send it to Justice - that way he'll see the kind of havoc he has wraught!!'  I fumbled for my camera as Martin, choking back tears, stared at me with the anguish of a thousand souls in torment."




"Martin refuses to speak to me and is now giving me the cold shoulder anytime I am near.  I don't know if I'll have a chance to give him this award but trust me, as a man who wears Linux-themed shirts in public I am no stranger to adversity.  I'll keep you posted."


Tom, I want to say thank you for trying to help the healing at ALT.NET.  It's nice to know that while some people representing Edmonton are running around in Snoopy costumes and dry-humping fire hydrants, *someone* is actually trying to take the first important steps of healing in our community.


Martin - don't run from the pain...embrace it!  Only then can you - and all of us - transcend it into something more.

I will keep you all posted with the *real* news of the conference as I get it...feel free to send or post updates as you have more pertinent info!

Saturday, October 06, 2007 #


Martin Fowler - the face of a broken heart
This is the face of the broken-hearted

Hey there Martin,

I received your messages - all 15 of them.  Some of them were angry.  Some of them were drunken.  Some of them were even musical (my wife was particularly fond of your rendition of Celine Dion's "All By Myself"), but all of them carried a common theme - you were hurt and angry that I will not be able to attend the inaugural ALT.NET conference after all.  I know that you are worried that
a) you will never be able to meet your "metrosexual hero" in person
b) you will never be able to thank me for the review of Refactoring that sent sales of that book skyrocketing
c) as a result of my non-attendance, ALT.NET will *no longer* be the greatest conference in North American history.

First of all, let me assure you that ALT.NET, despite the absence of one of the sexual giants of the software development industry, will still be one of the most amazing gatherings of developers ever.   Even if said bucket of machismo *could* attend, you might think Ayende Rahien's presence is not enough to make up for the absence of the man who wears North America's most seductive shirts.  I beg to differ; even without me coming, the conference is still filled with other Albertan luminaries like
Donald Belcham, Tom Opgenorth, and David Woods, just to name a few!  Second, you have an office in Calgary so it's never like we'll be all *that* far from each other.  Just drive up sometime!  Perhaps you could even do a presentation for Edmonton Code Camp, conveniently scheduled on October 20th of this year.  Even if you're too busy for that, I'm sure that two primal forces of the universe like you and I cannot help but one day collide.  Just trust your heart, Martin.

I know that you are angry.  Sure, not Scott Bellware "I'm going to walk into Bill Gates' office, defecate on his desk, and set it on fire" levels of rage, but nonetheless disgruntled and disappointed.  Martin, *no one* is more disappointed than I am about missing ALT.NET.  I was all ready to propose a session on "How to Tell People You Work in Software Development and *still* get laid", and maybe even a bonus on "Seduction Driven Development".  With you, myself, *and* Ben Scheirman
in the same place, we were poised for an incident of global proportions.  Alas this year it is not to be.  This situation was unavoidable and I made the only choice I could.  A year or two from now, Martin, you will understand that I made this decision for the greater good.  Will I have missed ALT.NET?  Yes.  But will I have saved the future of North American software development?  Almost *certainly*.

I know that you consider me to not only be a close personal friend but even a role model, so I am loathe to disappoint you.  Sure, maybe you'll tell people at ALT.NET, "I don't even *know* this Justice Gray!  He may be terribly good-looking, but he's loco!!" Don't bother.  The attendees at this conference are smart, insightful people and the Igloo Coder.  They'll all see through your clever facade to a man that is aching inside...aching for a friend.  Thus, I've come up with something for you that will make the days go by a little easier.

A while back, I mentioned the existence of the "Potential Friend of Justice Gray" certificate.  It pleases me to announce that you, Martin, are the *2nd ever recipient* of this coveted award, which I've passed along to my Albertan comrades to give you at ALT.NET.  Like the Golden Ticket in Charlie and the Chocolate Factory, this certificate is so rare as to almost be an urban legend - even peers of mine doubted its actual existence.  So I caution you to be careful with brandishing this certificate.  You may suddenly find yourself more popular.  You may suddenly find people throwing underwear and hotel keys in your direction at inappropriate times.  You might find yourself wondering if you are being used because of your association with me.  Don't worry - you *are*.  But enjoy it!  I know it is not the same as having me stand in your vicinity while you shout to passers-by "This is Justice Gray...my *friend*!" but it's pretty close. 

Even you hadn't been sobbing loudly into the receiver, I still would've known this weekend would have been difficult for you.  But remember, when it all comes crashing down and it hurts inside, you're got to be a man...don't let it slide.  You're a leader of the industry, for goodness sake!  People will be looking to *you* to be strong this weekend - to carry on as if there were not a gaping void in the hearts and minds of every person in attendance.  Just pull yourself together for this brief time - if not for yourself, then do it for everyone at ALT.NET!
 
I've sent a copy of this post with your certificate in the event you were too busy to read it prior to the conference.  If you require the certificate to be laminated please let me know but you will have to pay framing costs yourself.

Your brother in arms,
Justice Gray
Thursday, October 04, 2007 #


Oscar - at DevTeach 2007

A fantastic idea came my way this weekend.  Given my history of undeniable brilliance in motion, this is hardly a surprise to all of you.  What will be a surprise is that unlike the automated Gino Vanelli car or the It's Too Soon To Tell You About That One, I did not come up with this idea entirely on my own.  Many of you are no doubt rushing to burn your "I <3 Justice Gray" pillowcase, but I plead with you to hear me out as I think the quality of this idea makes up for its partial lack of originality.

This weekend I discovered that I had won two different prizes:
a) a trip to the Bahamas that only required me to pay $800-$1500 Cdn to get the chance to hear a bunch of time-share presentations for a week and a half, which I graciously declined
b) two drinks of my choice from the Caffienated Coder, Russell Ball - one for winning the "Most Viral Post" award and another for winning the "My name is Justice, not Justin" award, both of which I happily accepted

Russell didn't know it when he wrote his awards post, but he had unwittingly inspired the idea that could change technical conferences forever.  Indeed, this could make the upcoming DevTeach 2007 conference not only the best technical conference in North American history, but the best gathering of any group of people anywhere in the entire history of the Earth.  Yes, even more than when over 93,000 fans packed the Pontiac Silverdome to witness Hulk Hogan bodyslam Andre the Giant. 

DevTeach awards night.

It's important to note that when I say 'awards night', I do *not* mean some excessively formal affair where we all politely golf clap everytime someone gets an award.  I mean a radical high-energy MTV-style awards night with awards like:

  • Most Seductive Technical Presentation
  • Angriest Developer
  • Best-Looking Laptop
  • Best Shirt
  • Best Blogger
  • Hottest Kiss
  • Best Developer Related Blog Rant
  • Breakout Male/Female Star
  • Sexiest Developer who isn't named Justice Gray
  • Best Presentation Blunder by a Developer
  • Best Nude Scene
  • Best Musical Performance by a Software Developer
  • The Mort Award for Career Service to the Industry
  • Lifetime Achievement
In-between these award presentations would be a variety of musical performances and talent shows!  Roy Osherove playing "Sweet Child of Mine"!  Jean-Luc David and Carl Franklin teaming up for a incredible piano duet of "Endless Love"!  Donald Belcham getting drunk and smashing instruments that he doesn't own!!  D'Arcy Lussier serenading John Bristowe with the old Divinyls classic, "I Touch Myself!"  Truly, my friends, this could *be* the night - the night to remember!!    It might even be the night...to end all nights.  

Who *doesn't* think this would be totally awesome??  Let me know so I can mark you on my "Dead to Justice" list!!

Wednesday, August 08, 2007 #


That would be presentations by yours truly!

I am obviously no stranger to thrilling presentations, nor am I a stranger to writing thrilling presentation abstracts.  Despite how exciting my proposals were, however, I was frozen out of DevTeach 2007: The Montreal Years.  Sure, I got reasons like, "You're up against MVPs who are presenting similar topics" but I think we all know that the legitimate reason was that people in Montreal are frightened of too much rampaging masculinity.  As you all know, I am used to being shunned and hated for being this attractive, so I let it slide.

Things have changed.  DevTeach in November will *not* be in Montreal.  Instead, it is going to be in my favorite city of all time. In Vancouver, beauty and narcissism are not feared - they are commonplace; this alone ensures me an easier battle than the one I faced submitting to Montreal.

Like last time, I was warned that I'm up against stiff competition - people like Jeremy Miller, JP Boodhoo, and Ayende have all submitted talks that cover some of the same subjects I am.  I remain unfazed; while I do not possess an MVP or a book deal, I *do* possess unbounded charisma and unmatched sex appeal, which are of course far more important than technical credibility!   If that alone were not enough, two of my abstracts are team presentations that absolutely no one in their right mind would refuse.

I figure that my talks being accepted are a foregone conclusion and I'll be entertaining you all in Vancouver this November.  However, in the million billion to one chance that my talks are not included in the DevTeach presentations, I wanted you to all see the stellar material the DevTeach exec rejected.  This way, when you picket the conference with your signs and your rotting vegetables, you can know you are doing so with an informed mind. Here they are:

A guide to Resharper because I want a free license (300 level)


Forget about continuous integration and let's talk about continuous orgasm - that's what Resharper does for all those who dare to wield it.  You pretty much can't attend a .NET themed presentation without someone talking about how Resharper improved their development life, their family life, *and* their sex life.  Justice is here to give you the *details*, and show you exactly how Resharper can fix your code, fix your house, and even fix your dog!  If you've ever wondered what all the hype is about, this presentation is for you!  Presenters everywhere use Resharper, and *they* get free licenses from JetBrains...why doesn't Justice?  Will JetBrains pony up with the potential announcement of this presentation?  You'll have to attend to be sure!

Silverlight: We have seen the future and it is SEX (200 level)

Are you ready to redefine software development as we know it?  Are you ready for a new era of rich web applications?  Most importantly, are you ready to get laid anytime you *want*?  If the answer is yes, then *you* are ready for Silverlight!  Is this really the Flash-killer it is touted to be?  Will you ever need Javascript again?  The hottest new thing in software development gets presented by the hottest new thing in software developers as Justice Gray brings you the technology that may change EVERYTHING YOU KNOW about web development!

Scott Bellware: A Retrospective (400 level)

Why didn't Justice get his talks accepted at the last DevTeach?  No one is really sure, but he's definitely bound to get on the speakers list with the most obsequious presentation in DevTeach history!  See Justice suck up to Scott for 70 minutes straight!  We'll visit the laughter, the loves, the triumph and the tears of the most controversial figure in the .NET world today.  Is there any way Scott Bellware can justify vetoing over an hour of hero worship?  I don't think so either!!

.NET 3.5, the language that borrows from Ruby (300 level)

Everyone wants a piece of .NET 3.5, and for good reason; the latest iteration of the .NET Framework is bundled with a whole host of incredible features, including extension methods, LINQ, and lambda methods!  Sure, most of these were all in Ruby before but at least now they're in .NET!  Join Justice for an introduction to the language upgrade that might give you a bad case of deja vu, as we go through the major new features of .NET and where they *really* came from.  Bonus: watch Justice pick fights and start religious wars with random zealots in the audience!

IronRuby: It’ll make you cut yourself (200 level)

This is so bleeding edge that Justice needs bandages just typing about it!  The top-rated introduction to Ruby is back, with a *massive* difference: it's now in .NET!  All of the seductiveness, the sassiness, and Transformers of the original - only this time wrapped up in the DLR!  This just might be the last chance you have to get onboard the Ruby train before you're left behind...FOREVER!  IronRuby isn't out yet, but it *will* be out prior to DevTeach 2007 and that's all the time Justice needs to take you on a magic carpet ride through the ins and outs of Ruby's crystal persuasions!

27 books in 75 minutes (400 level)

Justice Gray had a lofty goal of reading 27 technical books in 27 weeks; by the time DevTeach Vancouver hits, that goal will be achieved!   But you're a busy person - you don't have 27 weeks!   Don't worry, Justice has read all of these books so that you don't have to!  With a whopping *3 minutes* per book, you'll finally know enough of the important points to pretend *you've* read them all as well!  "Learn C# in 30 days" has *nothing* on this, the hour that turns *you* into a software development expert!

Mock Objects Demystified (300 level)

No discussion of mock objects seems to be without an explanation of the Model-View-Presenter pattern and a lecture on why coding to interfaces is useful.  But what about a presentation on all the in-depth details and analysis on the mocking frameworks themselves?  Justice Gray provides you with the mocking presentation you’ve been waiting for without all the sidebars into pattern discussion.  Learn what mocking is, why mocking makes unit testing totally awesome, and most importantly, all of the details and differences between the three major mocking frameworks (TypeMock, Rhino Mocks, and NMock)!

Stop the Insanity: Refactoring for Fun and Profit (300 level)

Get ready to be completely indispensable to any of your clients, companies, family and friends!  Are you ashamed of the application you're currently working on?  Does your architecture make you want to break down in tears?  Do you think it would be nice if it looked like your application even *had* an architecture?  Then this is the presentation for you!  Justice is here to show you how to TAKE CONTROL of your codebase without simply tearing everything down and starting over!  There are countless applications with a tangled code-base that are *begging* for even a semi-talented software developer to come in and work their magic!  And if a clueless himbo like Justice can do it, just imagine what you can do with actual talent!!!   The road to sleeping on giant piles on money starts here!

Pimp Your UI With AJAX – Javascript doesn’t suck, but *you* do: a cooperative presentation with D’Arcy Lussier (300-400 level)

The Mad Mexican and the Mad Metrosexual pair up to give the presentation of a LIFETIME!  That's right, the red-headed stepchild of the development language family has finally had enough of being beaten across its backside with a Singapore cane!!  Now it's your turn!  For the first time in recorded history, D'Arcy Lussier *and* Justice Gray show you the wonders of closures, prototype and classic inheritance, JSON, private instance methods and *MORE*, finishing off with what everybody wants but nobody gets - deep exploration of the Javascript code beneath the ASP.NET AJAX Framework!!  If Javascript is good enough for Google and Microsoft, it's good enough for you, you thankless strong typers!
 

Drunken Design Patterns: now a team presentation with Donald Belcham~~~! (300-400 level)

Yes, you read that right - history will be made at DevTeach 2007 as Justice Gray and Donald Belcham JOIN FORCES for the biggest team-up since Michael Knight met KITT!  You've read Design patterns.  You've seen The Gang of Four.  BORING!!!  Sure, it's a good book, but we all know it is *tremendously* dry; this presentation is anything *but* dry!!  Have you wanted to learn design patterns but been put off by the academic tone of the GOF book?  Too ashamed to buy "Head First Design Patterns" because of the porn-star cover?    This presentation will give you all of the thrills of design pattern goodness but with Justice *and* Donald taking shots of tequila at 2 minute intervals!!!  Watch as the leaders of the Edmonton .NET User Group get progressively more inebriated, eventually degenerating into abusive rants at the audience, and finishing the presentation with Justice's spectacular projectile vomiting and Donald's awkward groping of front-row audience members!   Guaranteed to be the one presentation you will *NEVER* forget, no matter how badly you want to!!

How to be a better *looking* developer (400+++++)

Most of the presentations at DevTeach might help you get better at developing software.  But only one of them will show you the *other* way to stand out among your peers and get recognized by management - by being incredibly good-looking.  And who better to show you how to get there than North America's Favorite Metrosexual Software Developer?  Justice Gray is here to help in the session that will bring you closer to sexual encounters than you ever thought possible!  Silverlight and IronRuby are great to know, but all of your knowledge is useless if you keep wearing white socks with black pants!  Whether it's the wonders of basic color matching, the controversial topic of regular bathing, or a guide to shaving off that neckbeard, Justice has you covered!

Thursday, July 26, 2007 #


Confused?  Don't be!  I will explain!

Some of you E-mailed after my last posting asking one of three questions:

This last one was only asked by one person, so I will tell Tim Hibbard directly that the answer is no.

As for the answer to the first two, get ready, as this is a bitter pill to swallow.

I actually was not liveblogging DevTeach 2007 because I was not actually *at* DevTeach 2007

the_scream.jpg

I know - you are shocked, concerned, panicked, possibly hysterical.  For what reason would I have missed what has been pimped out as the premier Canadian development conference of the year?  Well, my friends, the answer is conspiracy.  A conspiracy against *what*, I cannot tell you, but a conspiracy nonetheless.  However, the disillusionment doesn't stop there.  Contrary to what you may have thought, I am far from the only person in North America who did not go to DevTeach 2007; George Clingerman and D'Arcy Lussier were not there either.  That's right, the Rat Pack of the software development world was not at DevTeach 2007 *at all*

the_scream.jpg
Don't let people fool you when they give you their conjectures and rumors as to why we couldn't be there.  When you have to tell your friends, your parents, your illicit lovers about why Justice Gray wasn't at DevTeach 2007, don't say "conflicting commitments", "other pressing travel the month following", or "intense negotiations".  Those are lies.  Tell them that sinister forces are afoot; do this and know that you are helping to spread the *truth* about my inability to attend.

I've tried to come to some completely unbiased and almost scientific conclusions about whether DevTeach 2007 was a worthy conference.  From what I have been able to gather from blogs and other anecdotes, I missed the following things at the conference:

  • great technical presentations
  • fantastic learning experiences
  • amazing networking
  • Donald Belcham throwing himself aimlessly at any woman with a pulse

Now, I'm sure for you Montrealers this was a big deal, but as a native Edmontonian I can tell you that I watch Donald throw himself at women almost every single weekend, so this is really nothing new.  So we have three *minor* plusses that are dramatically outweighed by the gigantic minus:

  • Justice Gray not in attendance

What we've learned from this exercise is that if Justice Gray is not seen at your conference, you don't have a conference.  It is with this I can safely declare that DevTeach 2007 sucked.  Am I trying to rationalize not attending?  Absolutely.  But let's move on to a conference that we know is well worth your time and money.  Yes, the conference that is *truly* going to change the software development landscape for ALL TIME...

DevTeach 2007!!!

What?

Yes, that's right.  DevTeach is happening *again* this year, but with two notable differences from the DevTeach that just concluded:

  • it will be in Vancouver, the greatest city in North America (as detailed previously on this blog)
  • yours truly will be there
What does this mean for you?  It means that if anything, DevTeach 2007 just got a hell of a lot sexier, and that's just from my showing up, let alone presenting!!  Before the developer world has a collective orgasm, I should clarify that I have not been selected to present on *anything* at DevTeach 2007, though I certainly have demonstrated that I have an *arsenal* of potential topics to choose from.  However, the biggest limiting belief about DevTeach is that you have be selected by committee to present!  Hardly!  You don't need *anyone's* approval - just walk into someone else's room during *their* talk and start your own birds of a feather session while they're talking!!  That's what I'll be doing at least once a day during this conference!

DevTeach 2007 - register early, and register *often*!!  This might be your only chance to see oozing machismo in action!!!

Friday, June 01, 2007 #


DevTeach 2007 - Where love goes to die

Clipped from a discussion with the apparently infamous Igloo Coder on the last day of DevTeach 2007:

9:50:21 AM  Justice~!:    So you've had a good week?
9:50:54 AM  Donald:    without a doubt i have had fun
9:50:58 AM  Donald:    last night was a hoot
9:55:19 AM  Donald:    had dinner & drinks with the
hot agilistas
9:56:26 AM  Justice~!:    When you say, "Had dinner", do you mean:
9:56:27 AM  Justice~!:    a) just you
9:56:34 AM  Justice~!:    b) you and another guy and the Agilistas
9:56:38 AM  Justice~!:    c) you and a room of 40 other people
9:57:45 AM  Donald:     25 other people
9:58:00 AM  Donald:     I hate you

(Donald has disconnected)


Saturday, May 26, 2007 #


(My apologies...it took me a little while to post the final session of Calgary Code Camp because it took me *that long* to recover from Donald's choice of clothing.  As you will read below, you'll understand why.)

We're here for the final presentation of the day.  It's good that they put Donald's presentation on last, since his pre-conference preperation involves a lot of crying in the fetal position and
Shirt update: my shirt is...HOLY CRAP.  *Forget* about *my* shirt.

Listen, I don't even know what I can say except to tell you that you have *NEVER* seen an outfit like Donald Belcham's unlike you've been a fan of:

* Dallas
* The Beachcombers
* Knight Rider
* Highway to Heaven

Red and white shirt - *open almost to the navel*.  WTF?!?!  You've never seen billowing chest hair until you've seen Donald Belcham.  Seriously, *nothing* seen at any past Code Camp activities could have prepared me for this.  Is it 5 stars?  Is it -5 stars?  I just don't know anymore what I'm doing with my life.

Continuous integration - which you check in your source code to your source code repository, it will be checked out atuomatically and a build being run.  From a pure code standpoint, this allows *you* to know that things are okay.

"How many people should be on a team to justify continuous integration?" - Donald uses cruise control on his own server to check his builds.  He recommends continuous integration even if you're working alone.

Continuous integration is *bigger* than Agile to Donald.  It's a concept that should be done regardless of whether you're following all Agile all the time

Donald is taking the unusual step of doing his presentations in Notepad++ since Powerpoint is apparently alittle too complicated.  Actually, to be honest, I quite like the minimalist style.  Donald laughably says that this presentation has no flash and bang, despite flashing his chest at every unfortunate attendee of this presentation.

Uh oh - I seem to have lost my draw tickets!!    Where are they?

Donald ends up covering a couple of things:

1) Resharper - *again*

Donald pimps Resharper like *everyone else* today.  Resharper gives *intellisense* for XML attributes in NANT, etc.
Resharper allows you to also see all uses for a particular tag in NANT.  This was actually the best sell job of Resharper I've seen today (and considering absolutely everyone here has been pimping it, that is saying something).

Ah, someone asks Donald a question about NANT and is rewarded with Donald *throwing a water bottle into the chest of the woman sitting next to him*.  How do you misthrow to someone sitting 2 feet away?  *THIS* was the captain of the football team?

2) CCnetconfig

CCNetconfig allows you to configure Cruise Control through a GUI.    Nice and very slick editor.

3) Iteration-based labelling

CCnet.config will help you to label code at point of build.  This is a nice shortcut to determine iteration/release numbers and abstracting it away from the devs to some degree.   CCTray will allow you to put version numbers and iterations against the builds through altering assemblyinfo.cs.  I can't tell you how helpful this sort of stuff is to a *huge* amount of shops out there.  Heck, half of these places don't even use cruise control.
 
4) NCover

Donald demonstrates NDover, the coverage tool for .NET.    You're able to hook NCover into CruiseControl so that if the level of code coverage goes down , your build will fail.  This is awesome!  I've integrated NUnit into CuriseControl before but never thought to use NCover before.  Donald is doing this through NCover Runner, which produces NANT xml for integrating NCover into the build!

"Does anyone have a mouse 101 lesson?"
"JP says no mice Donald"
"well, JP says a lot of things...he makes a lot of promises...but he's always travelling...I...I...forget it."  Oh, here we go again.

Hmm, they're not in my extra pockets...

5) nantContrib
Some things from nantContrib - Who kicked off the last build?  Was it forced?
nantContrib's "codestats" tag can also tell you how much of your project is in VB and how much of it is in C#, for example, among other things.  It also tells how many empty lines are in the project and our comment lines as well.

Not in my side bag...

6) dashboard.config

Dashboard.config will help configure our cruise control display output.

"Do you use Simian, and how did you find it?"

Donald: "It was pretty good - Simian goes out and looks for similarities in code structure; it will notify you and tell you it's a possible refactoring point.  I think it's okay, but it's also the only one on this list that costs you money.  Relatively cool."

Donald has found ways to sniff cruise control servers and force builds.  "I've got a lot of time on my hands."  Sometimes Donald writes these cracks for me.

I think the guy behind me thinks I am on drugs, given how I am furtively searching through my bag to no avail.  Where the heck did I put those things?

7) limit test runs

Donald's entire suite of tests at work takes 20 minutes to run.  He'd like a way to limit what is running, and CC allows him to turn off certain tests.  

Okay, now I've successfully convinced everyone in the room that I'm high, as half of my bag has been quietly emptied off to the side.  Still can't find this stuff!!

8) assemblyinfo.cs

Donald normally removes assemblyinfo.cs during compilation.  Assemblyinfo.cs is essnetially a collection of attributes about your assembly.  It's a good thing to have it consistent across every assembly.  You are able to use CC to automatically generate your assembly info file - unfortunately we're not able to see this as Donald has apparently deleted said code!!  

Seriously, I will crap myself in public if my ticket number gets drawn and I don't have the tickets!!!  

9) C# inline

You're able to put C# inline code into your NANT files.  Donald finds out through this exploration that he actually *does* have his assembly info generation code.  

WHO CARES ABOUT THAT THOUGH??  I've found the tickets.  I'm going to revise my earlier statement and will now only promise to crap myself if I do not win any prizes.  DevTeach attendance, I am talking to *YOU*!!

10) deploy

Cruise Control can also be used for deployment.  NantContrib can be used for doing these deployments.


This presentation was *packed* with content - Donald was a man on a mission today!  I'm seen a lot of Belcham presentations, almost all of them ending in riots and tears (most of those tears being Donald's).  But he held it together for this one and it paid off - tons of content and lots of information for anyone who wants to be doing continuous builds.  Good job man!!

Now maybe next time we can work on buttoning up those collars...

Addendum:
I didn't win the DevTeach prize
Calgary Code Camp rewards me with nothing but LIES
Donald's presentation put him on the map
And now my pants are...no, no, I can't go on.  I can't go on.

Tuesday, May 01, 2007 #


Ah, finally the presentation we've all been waiting for - Steve Rockarts on the castle project!

I can't really rate Steve's shirt since he spends so little time keeping the thing on.  It *was* a grey cardigan number but now we are greeted to the sight of nothing more than pale flesh and the frequent questions of "Does anyone have any rock??"   

Rockarts has this presentation up as a screencast except the font size is making my eyes bleed in the worst way.  "Can you reduce the font size?"  "Uhm...no."  Uh oh...whoa, Rockarts is going LIVE WITHOUT A NET!!!!  This could get dangerous...

Okay.  Originally I was going to comment about a bunch of things in this presentation, such as:

  • One thing I really like about this presentation (along with every other one I've seen today) is that *everyone* is doing TDD.  I think it's a great way to reinforce that this is the way of the future.
  • Windsor has the concept of a lifestyle -  by default it is a singleton (Windsor returns a single instance back).  If we needed a new instance every time, we'd add the Transient lifestyle - no doubt a lifestyle many developers are intimately familiar with already.
  • Resharper somehow reminding me of Soylent Green

But all that went out the window when I heard

"I am not a fan of Macs..."

"My Mac sucks because..."

Kyle Baley was a psychic: he said that in 45 minutes time, I would call Steven Rockarts a LIAR.  

Steven, my friend, for a brief shining moment, you and I were brothers in Macdom.  You even seemed a little bit more attractive; I mean that in a totally hetero way.  But now that's all gone.  *WE* are gone.  Our friendship...gone.     What is it that causes you to do this?  Is it because your Mac isn't racing green?  Is it because people no longer pay attention to your oil-pouring antics and instead want to focus on the shiny sleek exterior of the sexy laptop case?

I...I just can't go on.  Well, maybe I can, but only in pseudo-iambic pentameter.

Betrayed, shattered, and stabbed in the back
This is how I felt after Rockarts' attack
On the glorious system that men call a Mac

What is it about you that made you this way?
Was it having to keep all those women at bay?
Seriously, Steve, are you feeling okay?

I counsel you, Rockarts, before it's too late
Before you're a shell of man from your unfounded hate
Take back your words and proclaim the Mac great.


Sunday, April 29, 2007 #


JP Boodhoo's company tagline is "Developing With Passion", thereby cementing his reputation as the Tony Robbins of the software development industry!   I should be able to concentrate more on JP's presentation this year, considering that Donald is not in the room - no clumsy attempts at seduction this time!!  

Speaking of seduction, I'm not too sure what to think of JP's "red bumblebee" sweater - at times alluring and at other times confusing.  Not sexually confusing like the shirt I am wearing today, but just disorienting.

"I should warn you I'm really tired today" - I'm hoping that's not an omen!

I think I see my agenda up there.  Oh, now he's just *TAUNTING* me!

"Being a TDD developer does not mean I shouldn't be at a whiteboard...but it does mean that I don't have to totally commit to a design once I start developing."

"A lot of time is wasted coming up with the perfect UML diagram!"

Words cannot describe the design of JP's sample web application.  

Holy cow, JP actually drinks some water!!  It's like he's a whole new person!

I have never seen anyone run faster through design pattern principles than JP.  Talk about a whirlwind.  It's the same difficulty that you run into with mock objects; there definitely is a reliance on earlier concepts/knowledge.  That said, it's nice to have some "deep" presentations that really delve into some of the innards.

Man, I could use some water myself...

MIT open courseware on interface-based programming.  What is the link for this?
 
"I know I'm *getting off* on tangents on there, but what pattern is this?"  Obviously Decorator!!   

Okay, *proxy*.  But talk about a *totally* innocent mistake!  I think *anyone* could make that mistake.  

Now JP is "getting off on a rant".  JP has now gotten off almost as much as John Bristowe at the previous presentation.

"I'm not saying we have to reinvent the wheel - but we need to understand how the wheel was made."   Rockarts behind me:, "Ya man..understand the wheeeeeeel...I CAN SEE IT"

JP gives a "small" diversion on MVP and dependency resolution.  

"How embarassing when the presenter leaves his phone on" - actually, I think it's more embarassing when the presenter has children's show theme music on his phone, but that's just me.  But at least it's not like he's got a bunch of girlie pop in his application!

As an aside, if you have not gone to a JP Boodhoo presentation before, you *definitely* should.  If you could ever say someone writes "sexy code", it would be JP.  The cleanliness/dumbness of his views (and I mean "dumbness" in the complimentary sense) and the logical separation of concepts is absolutely beautiful - every developer should aspire to have their code as clean as JP's tends to be.

JP is using Boo for the Monorail examples.  

The Monorail views don't use Page directives, etc. - they're quite clean.  They are (of course) very similar to Rails template pages, in that HTML wraps a declarative for page content.

Monorail is a true front controller for .NET.  

Interestingly enough, there are no System.Web references in MonoRail at all.   Monorail has an IHttpHandler that is a gateway to controlling the request.

How does Monorail know it should've shown a particular view?  Like Rails, it is all about a directory strucute.  When it sees a request, irs Front Controller looks for a controller (ie. if we're looking for "Home", it looks for "HomeController").  As you'd expect (once again), this is a Rails specific thing.  

I need to tell you all that this presentation probably will personally excite me the most out of these; I love the cleanliness of Rails implementations (and obviously, I quite like Ruby) but having the ability to have the Rails abstractions in .NET itself are a *HUGE* benefit to me (and anyone!) when loading applications.  N ow the *only* thing that the pages have to worry about is displaying information; largely adhering to the single responsibility principle.

The speed difference between Monorails' controller implementation and ASP.NET's controller implementation is *amazing*.  

"We can't get into view components today, but you can use them to write out your Javascript, etc."  I know, I know, it's something Rails does as well.  But having this sort of thing available for ASP.NET dev is fantastic for making applciations faster, better, and cleaner!!  Once I get into this more myself, I will throw up some posts around it.

Advantages/drawbacks:
New scripting languages to learn
Dropping of habits
Lack of good docs
Simplicity
Better separation of concerns

"If you want to use Monorail, you'll need to abandon the viewstate mentality entirely.  There is no concept of a postback"

JP is writing his new site in Monorail!!  Nice!

One other disadvantage of this is the ability to test views - although with Braille/Velocity you may not have compile time checks, but you're also able to run unit tests against the views.  

(This is one thing, as I was just discussing with D'Arcy, that may be a barrier towards business acceptance of Monorail - some people arguing against "yet another language" involved in these.  I could be jumping the gun here - I will definitely take this back after I get more exposure to it.)

"If you want to write true OO objects, Prototype and Scriptaculous are the best possible script libraries to do your work with it."  

"Monorail is inherently more testable than ASP.NET.  Have you ever tried testing Session or Context?"  Oh, some of us have.  Some of us still have the scars!!!

"Why are these things done in Braille/Velocity rather than C#, etc?"  

Ah, here we are. JP : "I'm not betting the farm on Monorail.  Two of the main languages in Monorail are Velocity and Braille, where Velocity hasn't had a lot of activity around it.  How long can Ayende remain committed to extending the source?  What happens if Ayende stops bothering to update?  Castle updating this is great - they probably won't let it die.  Castle has a huge community around it now.  Monorail itself won't go away, but I *am* worried about Monorail's view implementation."  

Whoa - did I just hear that JP is done on time??  It *IS* a new JP up there!  Drinking water, finishing before the time limit...it's like I don't even know which way is up anymore...

Once again JP shows us all how it's done
Showing new architecture that's easy and fun
Monorail's sexy and I am aroused
When viewing the framework in which this is housed




 





Saturday, April 28, 2007 #


My two major memories from Calgary Code Camp 2006 were being blinded by Tom Opgenorth's loud Hawaiian shirt and signing his gun registry application.  I'm assuming his presentation today will be equally as memorable!

We encounter a slight hiccup when Tom finds out OpenOffice won't recognize his file extensions!  Where's open source now??  John Bristowe (who has showed up at pretty much *every* meeting thus far - that guy is everywhere) saves the day once more by loaning Tom his laptop.

List of places writtten under Mono include Sourcegear, Wikipedia, etc.

Mono's name apparently originates because the author is Spanish, and the author likes monkeys.  Interesting choices.  It's also "interesting" that the author looooves monkeys that much, confirming my earlier theory that Linux users are either asexual or merely perverse.

I am a little disappointed that Tom is not wearing a Hawaiian shirt today.  Tom is all, "I'm bleeding edge". How bleeding edge can you be with the UNIX equivalent of an alligator polo shirt?  COME ON BUDDY

Mono supports C#, VB.NET, Java(??), IronPython, PHP, and Boo.  

Boo is a "wrist-friendly" language.  Yike.  I have no idea what that means but it sounds a tad disturbing.

Wow, Mono runs under a lot of systems.  Mono is a TOTAL WHORE!  *NOW* I understand why they named this sucker Mono.  

"Mono is everywhere you need to be and probably a few places you don't" - like that doesn't sound like a massive STD waiting to happen.

"Any of you use Web parts?  I don't want to say it's bad..." TAKE A STAND!!!  

"Mono implements things that people ask for rather than just mirroring Microsoft..."   Bristowe: "Watch it buddy!!" I know John is confident after the @$$-kicking he gave Donald Belcham last September but Tom owns rifles.   He might have bitten off more than he could chew here!!

Mono has .NET 2.0 support and a host of tool support:
Gendarme - FxCop equivalent
MoMA - Mono deployment

Oh man I am DIZZY

Mono 2.2 in Q4 of 2007 will have WinForms 2.0 and the first beta of Olive - which brings LINQ, WPF, WCF, WF to Mono.

System.Management and System.EnterpriseServices are not supported under Mono, as COM and the Management libraries are largely win32 calls that have not been done.

How do you write code for Mono?  

SharpDevelop
MonoDevelop (for MACS!!  Obviously this one is the superior one)
Visual Studio .NET

Tom loads up SharpDevelop IDE.  "There's a designer!!" - John Bristowe, looking intimidated.  Point for Tom!!

My head is spinning from *something*!  Maybe it's the IDE.  

Seriously where the *@#& is my agenda??

Bristowe -"I know there's two CLRs you can use here."  John is standing up now face-to-face with Tom.  

"I have other questions if you don't mind."   Oh my goodness - it's not fighting at all.  Bristowe is in love!!

"I think Bristowe is having a Mono chubby." - some anonymous developer. Actually, I think it's Tom that Bristowe is aroused by.  Holy crap: a Linux user has actually succeeded in arousing another human being for the first time in recorded history.  I'll never forget where I was when this occured.

Tom beings demoing MonoDevelop.  Jonas: "I wish I had Mono right now!!"

"What's the output of this?" - it's an EXE run using Mono!!  I'll be writing Hello World applications *all the time* in this!!

Apache web server can be run using mod_mono.

"Is mod_mono cross-platform?"  Nope.

Cross-platform tips:
Platform abstractions: Windows isn't case sensitive, but UNIX is. 
Path separators are different.  Use System.IO.Path.Combine and System.IO.PathSeparator rather than the slash.  Bristowe: "FxCop checks this as well."  Winks at Tom and smiles.  Awwwww.

Tom recommends:
Use a DataProvider Model for database abstraction
use Code Generation (myGeneration or others - TOm prefers mygeneration because it is free)
Use an O/R Mapper (nHibernate)

Many databases are case sensitive as well.

CLS Compliance: Bristowe: "ooooooh, that *sucks*".  

Non-standard builds: Debug symbols are not compatible and incremental builds are not compatible.

Infragistics an