Fear and Loathing
Gonzo blogging from the Annie Leibovitz of the software development world.
-
SharePoint Connections - Orlando - Day 3: MVP for another year
Hey kids, guess who’s most annoying SharePoint MVP is back again for another year? Yup, my anniversary came up and I lucked out and Microsquishy wants me back for another year. It was tense going there so I figure I got the sympathy MVP vote but for what it’s worth you got me as a SharePoint MVP until next April. Time to celebrate with some alligator tails and other slimy Florida fare.
-
SharePoint Connections - Orlando - Day 3: Sessions, sessions, sessions
It was a slow(er) blogging day yesterday at the show as I was running around madly getting updated with the vendors here, meeting new people, making trouble in the speakers room, and generally enjoying the Florida sunshine. Mos the day the speakers were in the speakers room, wildly typing up code, tweaking presentations and generally having fun (although at times it was pretty intense in there). I think Carl Franklin and Rick Strahl were in the the entire day (although Carl claims he did leave for a bathroom break a couple of times).
I had a great chat with Mark Miller of DevExpress about Code Rush and Refactor. I’m slowly shifting from ReSharper over to the CodeRush camp as various people like Hanselman totally convinced me (watch this guy code with these tools, he’s a machine). Mark really knows his stuff and they have a great attitude towards their customers and the community. If you haven’t seen the training videos yet, please do but they’re only part of the magic that is Code Rush. Also, the DxCore, the engine that runs Code Rush, is completely free and very, very powerful. There are some great things you can do just with DxCore so be sure to check that out. Mark is so confident (and well versed) with Code Rush that he’s got a crazy session today. He’s going in with no code, no slides, nothing. Just the notion that he’s going to build an add-on, tool, or whatever using Code Rush based on audience participation. This is writing code in a straightjacket at it’s finest. We think he’ll do fine (even if he is insane).
Lunch was fun as we jammed with Fitz and Tom Rizzo between their sessions. They presented a few tandem sessions on Microsoft Office SharePoint Server 2007 (MOSS) which was nice (if you didn’t catch the info at PDC or the Office dev cons yet). Lots of great demos and even some code with even more great questions. This is going to be the best year for SharePoint. Not only are there more SharePoint vendors at this conference than any others, but the number 1 selling book at the conference is SharePoint 2003 Advanced Concepts by Jason Nadrowski and Stacy Draper (which I’m going to pick up to check out now). Since I couldn’t snap a picture of him on stage I figured I would do the next best thing, catch him eating. This is truely Microsoft Unplugged.
Today it’s sessions, sessions, sessions and I’m off to pop in to see various people and tweak my sessions for tommorow. Back later with more pics and updates.
-
SharePoint Connections - Orlando - Day 2: Let the tips begin
I’m in the speakers room with some great people like Billy Hollis, Carl Franklin, and others.
Billy mentioned a tip that most of us here didn’t know. By default, in IE6, there’s a scripting section in the Advanced tab of the Security settings and it enables peeking into the the Windows clipboard. You can test this by going to Project IP to see your settings. Scroll down to the bottom and if it’s turned on (the default) whatever is on your clipboard will be there. You can turn this off (and I suggest you do this) so sites can’t exploit this “feature”.
Okay, that’s my sane tip for the day. Back to the screwy life that is DevConnections.
-
SharePoint Connections - Orlando - Day 1: Here there be alligators
Yup, alligators. I said it right. There are alligators here in Orlando. Not only that, but at dinner tonight I ate one. Well, a tail anyways. Very odd as we were having dinner tonight and there was Florida Gator Tail on the menu. I had to do a second look but it was there. The waitress confirmed it and yup, gator was being served up at $9.50 a basket. Since I snapped a picture of the sign warning us of gators, I figure they just would go out to the lake and wrangle up one to serve for the night. Nothing like fresh amphibian to start of the evening. I just had to try some so I ordered it, even though I’m sure I’ve violated at least 9 separate PETA by-laws and a half dozen infractions for eating the poor little bugger. And yes, you guessed it. It tasted like chicken.
I missed Scott Guthries keynote as I favoured chowing down on some gator instead (sorry Scott). It was good (the keynote, the gator was a little rubbery) and covered a lot of Atlas stuff (Web 2.0, blah, blah, blah). Atlas is a big part of the conference here and you’ll find a lot of it (including Atlas and SharePoint integration). You can catch a video of an Atlas demo which is very similar to what Scott presented at tonights keynote here (although I think his keynote might be available online via the DevConnections sight shortly). The rest of the night here was mostly spent schmoozing (official word) with the vendors. SharePoint vendors dominate a large part of the booths here and there are some great people presenting great products.
The CorasWorks guys are here with their products. I was involved with CorasWorks way back when they started (I think I was like their 9th customer or something). They’ve just passed their 650th customer and keep growing. It’s guys like these that enhance what SharePoint can do out of the box, and provide really nice web part frameworks that do cool stuff. If it’s a choice between spending a couple of weeks building stuff or buying a supported third party product like theirs, I choose them hands down. It’s vendors like these guys (and others) that fill the gap that SharePoint misses or enhances what SharePoint provides. Remember they were the first with “roll-ups” and while it’s going to be a standard in the 2007 product, 3rd party products like these are always value-added and worth taking a look at so check them out.
Not to be out done by the two guys and a small dog setup at CorasWorks, I stopped by the Bamboo Solutions booth to chat with the gang there. Yes, those are real girls in the picture and they hang out and know SharePoint stuff. So what if there’s a 5:1 ratio of women to men, they make cool web parts. They’ve been putting together a lot of little web parts that make sense and again, fill a gap where SharePoint might fall a little short. If you’re down at the conference and have a chance to check them out, drop by and say hi and see what they have to offer. Who says IT isn’t exciting?
Finally I stumbled over a few MVPs and other presenters here. Some I knew, others I met for the first time. These shows are always a great place to get to meet old friends, create some new ones, and avoid the ones you don’t want to talk to. Brad Smith is doing a session on SOA and SharePoint here and like the last picture I snapped of him at the MVP Summit, here he is in his typical Brad pose, drinking his face off. Man, what a great job he has to be shuffled off to conferences to drink. Keep the faith Brad!
So remember to hunt me down at the conference and say hi. Tell me you hate my blog. Profess your love of SharePoint to me. Bore me with a story about your latest SharePoint installation. I’m easy.
-
SharePoint Connections - Orlando - Day 1: The Beauty of Orlando
Wow. All I can say is wow. Being in Calgary, I’m not easily impressed. I mean, when you live next to the Rocky Mountains and wake up in the morning to see 3,000,000 tons of rock jutting up into the landscape it does take your breath away sometimes. We’ve only taken a quick walk around here but even the pictures I snapped from the hotel room are jaw dropping (and that’s saying a lot as I’m a craptastic photographer). Anyways, here’s the view out of our room.
Nice huh? Bet you were here huh? Huh Andrew huh?
Registration is complete as I picked up my official secret decoder ring for the conference and the uber cool shirts they gave us. The keynote starts at 6:30 tonight and there are a few workshops going on right now. Also the expo hall opens tonight around 8, so expect the swag posts to kick in (I already have a little swag from the initial bag but I’ll post my ill-gotten booty later tonight after I raid the vendor booths).
For the photobug in you I’ve created a couple of sets in Flickr to view my pics. I have an Orlando set which will just be boring vacation type pics. They’re nice if you’re looking for a sunny disposition. I also have a DevConnections April 2006 set which will contain pics from the conference (and the wild debauchery that will take place after hours).
If you’re around the conference IM me or look for the geek who’s taking all the pictures.
-
SharePoint Connections - Orlando - Day 0: Elvis has landed
We have arrived, and the world is still standing. Wow, I have to say the Hyatt Grand Cypress is simply fabulous. It’s been a long day with getting up around 6am (Calgary time) and we checked in around 12am (Florida time). So that’s about 20 hours or 1 complete download of Windows Vista. I’m, in a word, beat.
The day started off okay. We had to take an exhausting flight from Calgary to Toronto, then hop on down to Florida. Okay. The Calgary flight wasn’t so bad other than the fact we had none other than Cruela DeVille on board. Seriously. This chick had bleached white hair with some black “highlights” in various places. Either she was a bad reject from a Disney casting call, or really wanted to form the first punk band with an all 50+ crew. In any case, I couldn’t snap a pic of her without her beating me within an inch of my life so you’ll just have to use your imagination on this but trust me, she was the real deal.
We pulled into Toronto and had to hop over to Terminal 2 to board for the States. Terminator 2 is more like it as it was desolate of any real form of life. That is until we got through customs and saw what was waiting for us.
200 screaming kids, teens, and burnt out surfers all heading home for the holidays.
Oh god.
My brain started to melt and if I wasn’t in an airport, I was going to scream bloody blue murder and kill everyone of the little buggers on the spot (especially the 10 year old who kept insisting on “skating” by with her stupid roller runners). Not only that, we hunted desperately for some semblance of reality called the internet. Yeah, we found it. A lonely terminal that you had to slip a credit card into and use their keyboard and monitor. With no chair in sight.
What the hell is wrong with Toronto?
I’m originally from the greater T.O. area and moved out to Cowtown a lot more years ago than I want to admit. At least in Calgary we could get WiFi through Telus (for a price). In Toronto, nothing. Not even a blip. A vast wasteland of emptyness. This is superior western technology? Someone needs to right some wrong in Terminal 2.
Like I said the room and hotel is fantastic as we mow down on some late night cheesecake and pepsi however there is one complaint. The internet connection blows Grand Cypress chunks. Not only did I have to pay $30 bucks for 5 days worth of connctivity, but my Flickr upload tool doesn’t seem to work, RSS Bandit is choking on a few simple tasks, and I fear I’m not going to be able to upload this posting using BlogJet. It’s a direct connection in the room, but there’s some wonky proxy setup which is just screwing with everything here. At least they’ll have a connection down in the conference for us, but I need to get some work done in my room so I’m just going to be grumbling all week about it.
I’m uploading all the pics from the trip to my Flickr site and tagging the conference pics with “devconnections” so feel free to do the same and let me know. Maybe we should get a public pool going.
Anyways, pushing the 20+ hour mark means it’s bedtime for bonzo so we’ll be back in the morning with pics of all the little Disneyites and that process we call conference registration.
You can keep up to date on the goings on at the DevConnections blog here (and of course tune in to my blog, same bat time same bat RSS channel).
-
Windows SharePoint Services To Be Open Source With 2007 Microsoft Office Release
This kind of caught me by surprise, but then us MVPs are always the last to know. It seems with the release of SharePoint 2007 later this year, Microsquishy will be opening up the source code to Windows SharePoint Services. Here’s an excerpt from the press release:
REDMOND, Wash. — Apr. 1, 2006 — Microsoft Corp. today announced that the source code for its upcoming 2007 Microsoft® Office system product, previously code-named Microsoft Office “12,” will be released by the end of 2006. The 2007 release is designed to increase individual impact, simplify collaboration, streamline business processes and content management, and improve business insight. The source code is the human readable scripts that tell programs what to do. Windows SharePoint Server 3.0 is the cornerstone for the Office 2007 Server products and forms the key element in creating collaboration solutions. Microsoft will make available both supported and non-supported packaging options to make it easier for customers to select what is right for them and download solutions that best meet their unique business needs.
Sounds very cool for a lot of us who want to not only know how the unpinnings of SharePoint work, but also how to best write tools and utilities against it. You can read the full press release here.
NOTE: THIS IS BLOG ENTRY AND THE “FAKE” PRESS RELEASE IS AN APRIL FOOLS JOKE.
-
SharePoint Connections... here we come!
It’s about 12 hours before I hit the airport to head off to Orlando for SharePoint Connections. After that it’s a few hours flight to Toronto, hang out in airport for a couple of hours sans wireless (thanks airport jerks) and then fly down into the land of oranges. Seriously, why is it that airports can’t offer free wifi? Is it really that difficult to help out a guy who has to hang out for a couple of hours in a terminal by giving us a free connection to check our mail? If I flew as much as some people did, I would get the Verizon coverage where it’s $40 per month and you get worldwide coverage. Well, at least there’s Timmies and my unexhausted supply of double-doubles.
I’ll be heavily blogging from here until next week with dialy pics of the conference, the crazy “Geeks Gone Wild” after hour parties, and the wonder that is Disneyland (or is it Disneyworld down there?). So if you enjoyed my coverage of PDC, expect the same thing. Otherwise tune out of my blog for the next week and go read Scoble or something. There’s a DevConnections blog that will be updated with information about the conference so check that out for the aggregation of what’s happening down there.
Moo.
-
TDD isn't enough
There’s been a bit of a bru-ha-ha recently with Rocky Lhotka’s comments on TDD (which I’m listening to for a refresher). This touched off a few posts, but unlike the Microsoft got TDD wrong incident a few months ago, discussions are pretty level headed all around. Jeffrey Palermo had a good post to get things started and Rocky has followed up with an excellent post called Forests, trees, testing and design. All good stuff for those that are interested and juxtaposing positions of arguments is usually the best way to elevate awareness of something and introduce discussion. This one certainly has.
As I’m giving a session next week on TDD and SharePoint I thought I would stress the fact that TDD isn’t the be all and end all to development. Just like unit testing. Just like any practice. As Jeffrey Palermo stated “A comprehensive testing strategy is a must, and testers should have a good testing plan.”. Actually I would say developers should have a good testing plan. The line is slowly being blurred between developers and testers, just like it’s happening between developers and designers and it’s important to know what needs to be done.
I don’t subscribe to the TDD purists about 100% tests written for 100% lines of business code. That’s a nice utopia to think about, but there still is user acceptance testing, functional testing, etc. and some things that, while they might be able to be automated, can’t be realized up front. There’s a term in Agile called Big Design Up Front (BDUF). You’ve probably seen it before. The developer comes out with a giant UML/Class diagram with all kinds of classes and methods specified. As a guy that practices and tries to strive for a clean object design, I usually question a lot of classes when I see them. To the guy who made that big diagram it probably makes sense to him but when you pose the question to him (and this happened recently for me) they usually get to the point of saying “Well, I guess we really don’t need that set of classes”. With TDD you get this up front (or can) so I would much prefer to see my domain evolve as needed, based on requirements (rather than some developer saying we need this class and that class).
In any case, practising TDD and always writing tests first isn’t always enough. It’s a small part of a larger world. You do want to test your business functionality, but in a lot of applications I keep seeing there’s very little real “business logic” and more “access logic”, “transaction logic”, and “dependency logic”. Access logic is where you put some kind of rule in a business class getter like this:
5 public class Customer
6 {
7 private string firstName;
8
9 public Customer()
10 {
11 }
12
13 public string FirstName
14 {
15 get { return firstName; }
16 set
17 {
18 if(value.Length > 50)
19 throw new ApplicationException("First Name is too long.");
20 firstName = value;
21 }
22 }
23 }
So you do want a test to ensure that you’re not exceeding your string length here, but this is pretty simple and could be done using either TDD or building the object first (yes, the example is a bit lame because I probably wouldn’t throw an exception here and you could use attributes on the property instead, blah, blah, blah, blah). Is this business logic? Maybe, and it does need a test but probably only one will suffice and you certainly don’t need TDD to arrive at this.
Transaction logic is where you end up doing a lot of testing just to make sure something gets in one end and out the other. I see so many examples of this where someone passes a DataSet to a method, fills it, throws it back (or uses a ref object), lather, rinse, repeat. This is so non-OO it’s not funny so writing tests or calling this business logic is just plain silly. Yes, objects need properties set to be of any value (for the most part) but OO is about behaviour not data.
Dependency logic is the big, bad, wolf of the BDUF syndrome and if you create that giant class diagram, expect to see this a lot. Take a look at this test:
9 [TestFixture]
10 public class ActivityTestFixture
11 {
12 [Test]
13 public void PlannedManHours()
14 {
15 Activity activity = new Activity(new Template(new Job(), new Discipline()));
16 int expectedHours = 100;
17 int actualHours = activity.PlannedManHours;
18 Assert.AreEqual(expectedHours, actualHours);
19 }
20 }
It was for testing something and get some estimate of hours. The test looks REALLY ugly because as we fleshed it out (using TDD) it became immediately apparent that we needed to create 3 separate classes (in a certain order) just to get the object we really wanted to test. Not the best class design I’ve seen and something that looked okay on a big class diagram but when you got down to it, you realize that you have this crazy dependency between your classes and in order to test them, you need to create a giant hierarchy of objects. TDD would have brought this out at the forefront (or at least identified it early or helped with the design a little better).
Okay, so I got a little off track here but really it’s about balance. TDD by itself as a testing methodology or a design methodology just doesn’t work. It needs help from other things. Sometimes those things are class design, unit tests, etc. and they all balance each other in order for you to get your job done. Whether you use TDD or not is up to you of course but you need to use a multitude of things to balance it out. It’s like SharePoint. It’s a mish-mash of technologies as just one isn’t enough. Use what you need when you need it, and try to keep it level across your solution.
Now playing: Carl Franklin - CSLA.NET 2.0 with Rocky Lhotka
-
The SharePoint Show
Just noticed that Gene Kraybill’s SharePoint Show hasn’t put together a new episode? Hopefully he’ll be back soon as it’s been almost a month since the last show. It’s a great show and the only SharePoint podcast on this side of the pond so check it out.
Now playing: Scott Hanselman and Carl Franklin - Microsoft Command Shell (MONAD)