Fear and Loathing
Gonzo blogging from the Annie Leibovitz of the software development world.
-
Hello, MS Marketing... what are you smoking?
Whatever it is I want some. Fast. Before you change another name.
Okay, awhile ago MS introduced us to a couple of cool cats. Indigo and Avalon. Just like naming your mail server Hermes and your primary domain controller Zeus, it’s cool (as in geek cool, not something you can pick up women with). Indigo. Avalon. Nice.
No, they don’t tell me what they are or what they do, but then Windows Professional 2000 didn’t either (and neither did Microsoft Bob for that matter). I am however still waiting for Windows 2000 Amateur Edition.
However they sound, they sound good. They look good on a slide deck. And they’re easy to remember. After all, developers can only remember two things.
So what’s the latest trend? What’s all the bruhaha now?
Those cool code-names that we liked and could remember became the Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF) and Windows Workflow (WF). And to make it easier to write (and remember) they were all packaged together into something called WinFX. Great, WinFx. I can remember that and it certainly fits on the slide. No problem.
Oh but wait, WinFX isn’t right. It doesn’t describe what it really should be and we need something better. So WinFX is now known as… The .NET Framework 3.0
Tada!
Huh?
Right, I get it. The current 2.0 framework is going away and a 3.0 framework that has a million other things in it (WPF, WCF, etc.) will replace it. Makes sense. 1.0 begat 1.1 which begat 2.0 which begat 3.0. I could live with that.
But alas, no.
The newly renamed .NET Framework 3.0 contains the (current) 2.0 CLR (which we call the .NET Framework today and have been since 1.0 days). The rename is to make the technology be named after what it represents, the next version of the developer framework.
Ummmm, yeah. There is a good blog that discusses and outlines it for those that are still scratching your heads. Check it out here. Personally it’s downright confusing. Yes, they’re all code names and code names (like Longhorn which begat Vista) are meant to be fleeting but this last change is just plain odd.
The current framework (can I even call it that now?) installs in the C:\WINDIR\Microsoft.NET\Framework\v2.0.50727 (or v1.14322) directory. So they’ll be a new “framework” installed under here in a “v3.0.1024” directory? But if the 2.0 CLR is part of the 3.0 framework and it’s in a different folder and you can’t be in two places at the same time…
Oh god. I think my head just exploded.
I’m with Sam on this and think that Microsoft marketers (or whoever is responsible for this and thinks it’s a good thing) have lost it. My next book is going to be called “Tips and Tricks of the .NET Framework 3.0 Gurus Featuring That Old 2.0 Framework That Has Been Around For Many Years Now”.
-
MSDN Wiki launches
Hey guys, what has MSDN not been the past few years? Yes, it's a tree view of 100,000 million documents, SDKs, etc. that is all searchable and great but it's been missing something like say .. has.
Microsoft stepped up and has publicly launched the MSDN Wiki!
The MSDN Wiki site experiments with ways that Microsoft can integrate community contributions into the Visual Studio 2005 and .NET Framework 2.0 documentation. This is only phase one and there's more to come. On the site you can add content and edit other people’s contributions in a wiki-like fashion around the official Microsoft-authored docs. In the future Microsoft wants to take this further by allowing people to edit the Microsoft-authored docs directly.
Check it out and let the guys in the MSDN Wiki Connect Workspace know what you think!
-
Calgary Code Camp Slides, here comes TechEd...
As I’m screaming through the 101,000 things I need to get done before TechEd (we leave Saturday) I’m just (finally) getting the Code Camp materials online. Sorry about the delay. You can grab the two slide decks here:
I had to go commando (of sorts) when I did my presentations so it was Notepad++ all the way. I was in the middle of moving from Office 2003 to Office 2007 and uninstalled everything. The morning of the Code Camp I wondered why my .PPT files were not showing that familiar Office icon.
Silly rabbit.
I had uninstalled Office. So I was left without a way to run my slides (not that I really like putting too much into the slides anyways).
The 20 Cool Tools presentation was fun as we ripped through as many tools and demos as we could (and that would work). The deck has each tool listed with a URL to get a copy. It’s actually 21 tools as I stumbled over Red Gate Softwares SQL Prompt which just kicks ass so I had to include that. BTW, it’s free until September 1st so go grab a copy now!
I’m still cleaning up the Web Part and Master Page demo so that’ll go up in another post later tonight. It was all good in the end but here are the slides if you’re interested.
After that, we go through the vast array of electronic inventory that I’m bringing to TechEd and start a 7 day series of blogs. Watch for the starter tommorow as I kick off with my itinerary, where I’ll be, how to contact me, what I’m going to be blogging about, and some extra special things that I’ve never done before (watch out Scoble!).
It’s going to be a busy week.
-
Simple NAnt integration with Visual Studio
Generally I use the most excellent TestDriven.NET for my building in Visual Studio as it can run tests and identify failed tests (with a context to jump to the error). Often though I have a setup (usually with a client) where they don't have the ability to run this addin or just want to build their systems and don't have unit tests (yes, it does happen, oh horrors of horrors). Also TestDriven.NET won't build an entire system and do additional stuff like maybe copying files for deployment, running database scripts for agile database development, etc. so you look to something more complete to automate the process.
The key thing about building systems when you have multiple team members is to have everyone build the same thing. We want to avoid the "it works on my machine" syndrome. This can be a problem though when someone goes off and tweaks some personal setting, or only builds part of the solution and forgets steps if the build is complicated. For the most part it's as simple as Ctrl+Shift+B, but sometimes that's not enough.
That's where NAnt comes in. JP Boodhoo has an excellent series of blog posts on automating your builds with NAnt in his NAnt Starter Series (I highly recommend JP's blog in any case as it just plain rocks) but I wanted to pass on a quick tip for those of us that want to get our feet wet, but don't want to leave the comfort of the Ctrl+Shift+B world.
If you've followed his series or have your own simple build file that you want everyone to use here's a super-simple way to make it your default build tool:
- Create a new External Tool by going to Tools | External Tools
- Click Add to add a new tool
- Give it a title of "NAnt"
- Browse to the location of the NAnt.exe file wherever you have it downloaded to
- Set the initial directory to $(SolutionDir) (where your .build file resides)
- Click on "Use Output Window"
- Click OK
- In the external tools menu, select NAnt and move it up to the top so it's the first tool (we'll see why later)
Now override the default keybinding of Ctrl+Shift+B to run this. Here's how:
- Go to the Options dialog by going to Tools | Options
- Under the Environment node in the tree click on Keyboard
- Find the command called "Tools.ExternalCommand1" by entering it the "Show commands containing:" text box or scrolling through the list
- Click on the "Press shortcut key(s):" text box
- Press Ctrl+Shift+B
- You'll see it's already assigned to the "Build.BuildSolution" command but click on the "Assign" button to reassign it
- Click OK to close the dialog.
Now, armed with your .build file in your solution directory press Ctrl+Shift+B and it will open up the Output window, run NAnt (which will run the .build file automagically) and output the results to your window. Grant you, if the build fails it won't highlight the error and let you click on it to go to the file but at least the build will run automatically and everyone will be on the same page.
If you have any additional steps that would be done as a result of the build (running unit tests, copying files, etc.) you can just edit the .build file (hint: make it a solution item and put it under source control as it's no different than code) and rebuild. All the steps will happen and everyone in the team will be running the same sequence of events when they build the solution.
These instructions are for VS2003 but VS2005 works the same.
-
Performance fix for SharePoint Forums
Okay, I’m human and prone to mistakes. I did a silly error when I released my SharePoint Forums Web Part in dynamically calculating post counts. I thought I was being smart by just using the value of the collection objects, trouble is that they’re all lazy loaded so when something like the stats come up for the site, every freakin’ message in the system gets loaded into memory.
Simple fix and will be included in the next release. For those of you with a few hundred messages (and growing) you’ll find a huge difference. I test filled the system with 100,000 messages (yes, you can do that in SharePoint lists if you do it right) and load times are back to under 1 second, which is where they should be.
Probably too many Fritos and Mountain Dew that night for this code monkey.
-
Adobe, give yer head a shake
I really don’t want to be Bill Gates.
Yeah, you heard right.
Even with a trillion dollars in my bank account and enough money to buy Belgium I just really wouldn’t want to be him. There’s just so much crap going on in the Microsoft world, I sometimes wonder how he sleeps at night (on a mattress filled with BillBucks?).
Yes, yes. Microsoft is evil and all that DOJ jazz, blah, blah, blah, blah, blah and they have to tread carefully when embedding things into operating systems and everyone cries foul when something comes out that’s apparently unique but has really been around for years. However this Adobe thing is just silly.
Last October when were were at the MVP Summit, Steve Sinofsky (he’s really a nice guy despite 2,000 people at a TechEd presentation walking out on him) dropped the bomb and told us Office 2007 (then Office 12) would support saving PDF formats. Out of the box. And told us to go blog about it. There was much rejoicing.
That was October. This is now.
According to CNET (which we all know how much of a technical resource for news it is) Adobe pipes up and cries foul and says that MS has to remove the saving as PDF feature or else bad things will happen (we’re not sure what those bad things are, but I’m sure they would be more court days and mudslinging).
It’s all very confusing. Joe Wilcox wrote up a good take at Microsoft Monitor on what was reality compared to the various claims being tossed around the media circuit. Brian Jones, a PM on the Office team, has a writeup on what’s going on from his side of the fence. There’s a Channel 9 interview with the Office team developer who created the feature (from back in January). Heck, even Scoble got his say on things (which doesn’t surprise me as that blogging machine doesn’t seem to sleep).
News travels fast. And wide.
So what’s with Adobe. Is PDF open or not? According to Adobe it is since they have the PDF Specification online (and have had for awhile). If it’s online and Adobe says “Adobe publishes the PDF specification to foster the creation of an ecosystem around the PDF format.” then why are they bitching about Microsoft releasing a product supporting this “ecosystem”. More importantly, why does Adobe wants MS to charge their customers extra BillBucks for this feature.
Not only do Word Perfect (sorry, I refuse to call it Word Perfect Office) and OpenOffice support this and have a PDF feature, there are gobs of free PDF tools out there all producing Adobes much touted “open” file format (and some that plug into Microsoft Office).
That’s pretty open from where I sit.
At least it looks like MS is going to play nice and remove the feature but offer it as a free download. That’s a bummer because I keep stumbling over Office workers and users who have no idea there’s a thing called the “interweb” out there, let alone downloading an add-on and installing it. Hopefully the IT guys of the world will download it and make it part of their corporate images or something so at least the untechs who know not of this thing called the internet (or is it the Internet? I can’t never be sure) will have their precious PDF functionality (which should make at least the legal suits happy).
Kinda sucks that one mega-corp goes off and tries to dictate what another mega-corp is charging their customers for. Like I said Adobe, give your head a shake and stop being such a pissant in the technical sandbox. Oh here’s how we made our sand so you can build your own sand castles if you want, but only if you’re not that big bully over there with the biggest sand castle machine of the whole beach. Sheesh.
P.S. Bill, if you’re reading this (as I know you always keep up with my blog) then feel free to hire me as your personal SharePoint guru and all around code monkey. I would be quite fine with that too.
P.P.S. Brian Jones has a second update (or maybe it’s a third) on the PDF legal issues here on his blog. Good read to round out this discussion.
-
Friday catch-up blogging
I’m just going through a few hundred emails and RSS feeds as I do everyday and getting caught up (in addition to dusting off my workspace due to construction out back). I wanted to address a few things in the SharePoint Forums Web Part.
First is performance. Some people have mentioned it’s taking a long time to load the pages when there are a lot of posts. I’m going to do some more tests this weekend and see what’s going on. When I first built it, I had a small routine to fill the forums with 10 posts in 100 topics in 10 forums, which I thought was a good test (10,000 messages). Load times were negligible (less than 5s) even on my VM so I thought this was acceptable. I’ll go back and revisit this and might have to do something different for the June 19th release.
Second is deployment. I still get emails from people who are putting the files in the “web server extensions\bin” folder so obviously my instructions are not clear enough (or people are not reading). There are some that refuse to put my dll in the GAC which is fine (you can deploy that assembly to the bin folder if you want). And there are others that still have security problems. So I’m doing a couple of things to rectify this. First I’m going to recheck the impersonation code and run it on a portal with an account that absolutely has no permissions. I’ve done this before and it worked fine, but this time I’m going to set it up and screenshot/cast it so you’ll see the step-by-step which should help you configure it in your own environment. Second, I’m going to produce a special single-dll version of the code for the next release so you can just deploy the web part and not have to worry about where this file goes or do any ugly GAC stuff. Finally, I will get an installer working (and maybe take another stab at with the single assembly) but this probably won’t be ready for next release as I have too many things to do before now and then.
As for the source code, it is going to be posted on CodePlex and no, I’m not hiding anything. I’m just trying to figure out how to get the silly thing up there without having to “upsize” my 2003 project to a 2005 one. I wish the command line would just do a “tf -import” or something but it keeps looking like I have to import every file AND associate every checkin with a package. Oh, how much I LOVE Team Foundation.
And yes, I still need to post the Calgary Code Camp presentations and code. Watch for that this weekend.
-
Forum update coming after TechEd, CodeCamp code sooner
Just trying to get ahead of the game here. There's a small update for the SharePoint Forums Web Part coming on June 19th (or so, after TechEd anyways) on the forums. Here's a sample:
Additions are boxes to quotes (might make this configurable) so you can see them better, better navigation, and a few other goodies.
Check out the Issue Tracker and Release Road Map to see what's going on.
I'll be posting the code and slides for the Calgary Code Camp sessions. This includes a complete ASP.NET 2.0 site built during the presentation (I've cleaned up the layout so it doesn't look like a retard built it) and the tools list with some notes.
-
Project OneShot
Yeah, at first I thought this was more spam for a new porn flick, but alas no. It’s a SharePoint Web Part from those whacky guys at Omnisys.
If you can’t wait until Microsoft Office SharePoint Server (oh god why is it so long to type this?) 2007, then check this out. It allows getting a single view of all the details from multiple projects (on a Project Server) on a joint time scale.
Are your legs all a jitter? Mine are.
Well, no. Not really.
Okay, so it looks like a pretty slick Web Part and something that’s missing OOTB from Microsoft. Omnisys always has quality stuff so if you’re into looking for something to supplement your Project Server, give it a shot. You can get all the information and download the Web Part from here.
Man, I should get paid for this junk.
-
Calgary Code Camp, a huge success!
We’re very happy with the turnout for yesterdays Calgary Code Camp. It was a first for us and yeah, we made mistakes but we had hoped for about 50 people but got around 80. With two tracks running, both rooms we filled well on each session and it seems everyone had fun. I’ll be posting slides and code from my sessions in a day or so after I recover from the event ;)