May 31, 2007
@ 05:36 AM

Several years ago, in my XML period, I read some book I can't remember about doing web design the "proper way", and have fealt a little ping of guilt every time I've used a table for layout purposes (very rarely now) since then.

The thing is, it's soooo easy to use tables for layout. I'll go so far as to say that I've not worked with a single developer that resisted the temptation to just use tables for layout since reading that book. A few (maybe 10%) of the developers I know and have worked with actually feel guilty about it (and know the difference), but most couldn't give a flying flux capacitor.

This has often led me to have deep reflective moments, where I ask myself questions like, "if I use floats and divs to do layout and no one notices, does it really matter?" or "why do I care about this stuff? Why! Why can't I just let it go and be like the other developers?" and "Why does it hurt when I use tables? Is it me?"

Just yesterday, I was having this conversation with my current BDFF (best developer friend for life) Michael. He came out and expressed his guilty feelings for doing table layout. We talked about using floats and divs and both agreed that it was confusing and easy to mess up, and who wants to spend time trying to figure out what's wrong with some CSS and HTML when you could be writing real code that you can write tests for and examine in a debugger.

So it was with great pleasure that I found this post by Jeff Atwood in my rss reader on the way home. The presentation linked to in the post is brilliant. I am going to suggest this to anyone I see doing table layout from now on. I have 0 design skills and I totally get this.


 
Categories:

May 31, 2007
@ 05:23 AM

Last night, listening to episode 65 of Hanselminutes, Martin Fowler speculated as to some reasons why there is a perception that Microsoft is starting to lose the "alpha-developer" crowd's interest to things like ruby. He expands on this on his weblog, and one thing he mentioned was the recent patent claims Microsoft has made and how this puts off many alpha-developers, who are mostly pro-open source from Microsoft.

I must not be an alpha-developer, because to be perfectly honest, I haven't really been paying attention to Microsoft's patent claims. Don't they always do this kind of stuff? Isn't this like that episode of <<sitcom name>> where <<character A>> acts like an ass and hurts <<character B>>'s feelings and then they make up 25 minutes into the show and are BFF again? Does anybody really think Microsoft is going to take legal action against some of their best customers? Come on...Microsoft is not SCO. This isn't worth getting worked up about. Not close to home.

What _is_ worth getting worked up about when they do things that directly affect me, like going after Jamie Cansdale, the developer of TestDriven.NET. To keep this in perspective, it sounds like they only want Jamie to remove support for Visual Studio express (?) but still, this is just lame and uncalled for. What's the purpose of this?

To drive Microsoft developers away from Microsoft, you don't need to pick a fight with linux developers - the Microsoft developers won't even notice that. You need to pick a fight with Microsoft developers.


 
Categories:

May 30, 2007
@ 12:54 PM

T-Mobile offered me a free upgrade to Windows Mobile 6.0 a couple of days ago when I needed help for something else. Of course I jumped all over it and downloaded the upgrade and had it running before the service person even gave me the link!

There are lots of nice little features, better live.com integration, and a lot of other things I liked about it, but the coolest feature is Voice Command. Here is a link to a list of all the commands.

What's so cool about it? I don't know...having a conversation with your phone? What's not cool about that!?


 
Categories:

Check it out.

This strikes me as awfully simmilar to the Multitouch device that was really hot stuff last year.

 

[via Don Box]


 
Categories:

May 28, 2007
@ 08:13 PM

It looks like DevTeach has a Vancouver conference. From the things I've been reading about the Montreal conference, I am really excited about this. I hope I can go. Will anyone else I know?


 
Categories:

May 28, 2007
@ 10:03 AM

Last week there was a nasty "blog-war" between two sets of bloggers I really enjoy reading. It was kind of dumb and unproductive, but things more or less of worked out in the end. All I can say is that talking smack doesn't fix anything.

One of the things that I did not see addressed in any of the noise (well, Sam kind of called this out in his first post) was how P&P's stuff is really helping make things better for teams not made of Ayende's and Jeremy's - and not so much from the tools or the frameworks themselves, but from the example they set.

I think of the P&P team as kind of the clutch between the ALT.NET world and the rest of the .NET developer world. The rate at which change and new ideas come out of the ALT.NET world is a little tough for most developers to follow. Right now, the clutch is getting burned. It sucks that the P&P team has done a lot of really cool things and not really been recognized much for their efforts, but that's the nature of being a clutch. What did they think was going to happen?

I personally spend several hours a day reading weblogs, learning, and trying to keep up with things. I do this because I enjoy it, not because it's part of my job. Most of the developers I have met are not interested enough in their jobs to sacrifice time with family, hobbies, friends, etc.

So if there was no P&P team, what would the clutch be? There is no equivalent to this function in the open source .NET community. You're either on their bus or not. No one is going to come along and try to make things better for you if you don't get on the bus. It's unlikely that anyone would spend a great deal of time and effort to make things like wizards, recipes, visual studio integration, for things like Castle, unless the person doing the work derives direct and personal benefit from the exercise. What more could anyone expect? The P&P team is different because they _don't_ derive any (direct) benefit from what they do. Their success has nothing to do with how much better their jobs are because of the things they build. It's about other developer's productivity.

At the end of the day, there is no panacea. The best you can hope for is to learn some new techniques that you might be able to use. CAB is loaded with these. SCSF, WCSF, even EntLib are loaded with these. The source code is easy to read. Most developer's with an open mind and a few minutes here and there should be able to learn from this stuff.

I don't see much emphasis, even from the P&P team on this, aspect of what they do. Just downloading SCSF and running a few wizards isn't where it's at. Without understanding how this stuff is designed and how it works, it's just a big fancy alien artifact. Understanding how it works and how it's designed is everything.

Could any developer, using not special tools at all, build a smart client application like a CAB application, but simpler, and with less code? Absolutely. No doubt.

Could any developer pick up the code for CAB and learn something about smart clients? Absolutely. I have no doubt.

So if you've never looked at the source code for CAB or SCSF, what are you waiting for? Check it out. It's working code that's easy to read and well designed. Once that's done, if you still have time, check out Castle, StructureMap, ActionPack, and the tons of other cool stuff that works and has source code. If you still have time, read a lot of blogs and books about DDD and design patterns.


 
Categories:

May 23, 2007
@ 11:43 AM
Categories:

May 22, 2007
@ 12:13 PM

One of the presentations I got to go to at Code Camp PDX was on Mocking, and to my excitement, Rhino Mocks was used for all the examples. The Presenter was John Hann, and I think he did a great job. There is also a lot of useful content on his weblog. If you are test-driven, or trying to get there, check it out!


 
Categories: CodeCamp | links | tdd

May 22, 2007
@ 05:57 AM

Jeffery Snover, an Architect on the PowerShell team, has a really good post here.

One thing I find, using PowerShell, is that it's natural to want to have one place to do everything, but the world really works better when you have specialization. PowerShell works really well for me as an integration tool. I often want to do things like threading, create new types, implement interfaces, etc., in PowerShell, but I'm kind of glad I can't.

In general, If I'm going to be writing new code, not integrating existing code, I think PowerShell is the wrong tool for the job. I would rather not have the language and the shell itself encumbered by the fact that people are using it to do things that should really be done in a systems programming language. Think about it: In C#/Visual Studio...I have intellisense, help, unit testing features, syntac highlighting (Code Rush!). That's where I want to write lots of code.

PowerShell is right in the sweet spot for automation and integration. I can go without Visual Studio (though it would be nice!) and TDD, because I'm not writing massive amounts of code in PowerShell. This is my virtuous cycle.

An old boss of mine, Josh McKone used to say, "Make it easy to do good things and hard to do bad things," as hid kind of mantra for API/library design. I think PowerShell hits this mark perfectly.


 
Categories: scripting | PowerShell

May 22, 2007
@ 05:33 AM

This last weekend, my friend Jason and I went to Portland for Code Camp PDX 3.0. It was a lot of fun. There were people all the way from Chico, CA and Bosie, ID. There was also a large Olympia/ssdotnet contingent. Our group rocks!

I did a presentation on using PowerShell to automate .NET applications. It was fun and there were a lot of really cool people in attendence.

Here are the slides and demo code from the talk. Let me know if you have any feedback/advice/etc. See the sidebar for contact info and don't hesitate.

Thanks to Stuart Celarier, Jason Mauer, WSU Vancouver, and the tons of other people involved for all their hard work!


 
Categories: CodeCamp | community

May 22, 2007
@ 05:23 AM

Sorry I haven't posted anything here in quite a while. This weblog actually kind of stopped working a while ago, and since I was super busy with other things, I never sat down to get it fixed.

I actually just wasted a ton of time getting it fixed: it turns out that my hosting company had a quota on how much space the account that this stuff is posted under can use, and it had been exceeded. For some reason, I never saw any errors from dasBlog when I tried to post and of course dasBlog was unable to log anything.

So...that's not an excuse. I hope someone still reads this.


 
Categories: bs