Fear and Loathing
Gonzo blogging from the Annie Leibovitz of the software development world.
-
ASP.NET MVC now available
You've read about it on the Internet, you've seen us talking about it, and if you were at DevTeach last week you soaked up Justice's inhuman presentation (and Jeffrey's more than human one) on the tool you'll know what the buzz this week is. Now you can see what the hype is all about.
The ASP.NET MVC addition is now available here. It's part of the ASP.NET 3.5 extensions which not only includes the MVC framework, but also includes some new stuff for AJAX (like back button support), the ASP.NET Entity Framework, and there are two new ASP.NET server controls for Silverlight.
Grab it, try it out, watch the skies for demos and tutorials and all that jazz (or read ScottGu's 20 page post on the subject which is more than anyone will ever need) and start building .NET web apps the smart way! The framework is available here for download and there are some QuickStarts that will help you get up and running here.
-
Terrarium Anyone?
Anyone out there got a copy of the Terrarium client and server they can flip me? I'm working on something new and need to find a copy of it. It seems to all but vanished from any Microsoft site I can find. For example, the download page is here on the WindowsClient.NET site but doesn't work. It continues to be listed as a Starter Kit for Windows Form (it hasn't been updated since .NET 1.1) but I can't seem to track it down anywhere. If you have a copy let me know via email and if you can send it that would be great, or I can provide a place for you to upload it to. Thanks in advance.
-
ALT.NET keeps on ticking
I can't say I've seen a community with more spirit, enthusiasm, opinion, views, experience, concealed lizards, logging chains, and gumption than the ALT.NET community.
Stats for the Yahoo! Groups mailing list, which only started 2 months ago on October 7th:
-
Almost 2000 posts on October (remember it was about 23 days of posting)
-
Over 3200 posts in November
-
Already 1300+ posts in December (and we're only 7 days in)
Prediction (based on velocity) for December: 6250+ (yes, I actually used my Scrum Velocity tool [a spreadsheet] to calculate this). That's insane (the number of posts, not the fact that I used a spreadsheet for this blog entry).
Anyways, keep the firehose going. We're all still trying to figure out how to consume this information without blowing our heads off. Just waiting to see if we'll get a special community away, "Most Active Yahoo! Groups List... Ever"
PS we've been doing some updates on the Wiki site as well so feel free to drop by and be a reader or writer there too!
-
-
Learning the Model View Presenter Pattern
The guys over at Patterns and Practices got it right. They've put together a package (available via a CodePlex project here) on learning and understanding the Model View Presenter Pattern (MVP). It's kind of a "mini-guidance" package and not the big behemoth you normally see from these guys that:
- Provides guidance on how MVP to promotes testability and separation of concerns within the UI
- Illustrates how to implement MVP with standard ASP.NET
- Illustrates how to implement MVP with ASP.NET and the Composite Web Application Block
The package contains full documentation on the pattern, unit tests, and source code (for both WinForms and CAB) demonstrating it. Very nice and very easy to digest! Check it out here if you're just getting started and want to see what MVP is about.
-
TRUE, True, true, and FALSE, False, false
I'm just in rant mode the last few days, trying to get my head wrapped about 3000 posts by Oren (who just happens to be an android and takes his orders from his dog) and 3000 posts on the altnetconf mailing list in the last 30 days (yes, 100 new messages a day and so many blog entries to come, somehow...)
However this is just plain rude:
This is the XML "Intellisense" in Visual Studio 2005/2008.
Yeah, 6 definitions of True and False.
Let me qualify this post which I should have done in the first place. This screenshot was for an XML file in SharePoint and the options presented in Intellisense are completely driven by your XSD. So really my brain wasn't working yesterday when I blamed the IDE for this as it's only as dumb as it can be told.
However, I guess if I was building the tool and the attribute was a boolean value I would only present two options "True" and "False" so maybe it is a deficiency of the IDE.
Or the XSD.
Or SharePoint.
Or me.
All of the above? Yeah, probably.
-
I love Sony, I hate Sony
You know. It's a love/hate thing. This Christmas the family decided we would get each other consoles. Hey, what's a house with 3 XBox 360s without some more console love? So I would buy the PS3 (and a couple of choice games) for Jenn, she would get me a Wii (plus the proverbial look-like-an-idiot games). I came through on my end, but unfortunately there is no Wii anywhere in Calgary. Anyways, so change of plan and we've bought the PS3 as our "family" present and we'll just fill each others stockings and whatnot with other goodies.
Now here's the kicker (and where my <rant/> begins). I own a Harmony 880. Best damn remote on the planet (well, at the time, the 1000 kicks it's butt). Controls everything. If I want to watch TV, it shuts other devices off; turns on the TV; selects the correct input; and turns on the digital receiver. Switch over to the 360 and it shuts down the digital receiver; turns on the 360; and changes the input on the TV to HDMI. Brilliant.
Then I tried to get it to work with the newly acquired PS3. That was a farce. Guess what Sony decided to do with their console (and I'm only finding this out now). It's a proprietary Bluetooth device (okay, not sure about the "proprietary" part or if it's standard Bluetooth). No Harmony remote (mine or anything else on the market) handles Bluetooth. I mean, why would they? That's a silly technology to support. Everything (and I do mean *everything*) is IR these days.
Sheesh. So basically my "universal" remote handles everything in the house *except* that crazy Sony device. There are some crazy hacks like buying a USB->IR thingy which requires the Sony remote so I would probably end up dropping *another* $200 bucks or something on top of the $400 I paid for the remote in the first place. Not something I'm going to entertain so I guess it's get off my lazy butt and walk across the room to turn the freakin' console on. Sigh.
Thanks Sony.
-
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.