My Adventures in Blogging
| | Sun | Mon | Tue | Wed | Thu | Fri | Sat | | 28 | 29 | 30 | 1 | 2 | 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 | 11 | | 12 | 13 | 14 | 15 | 16 | 17 | 18 | | 19 | 20 | 21 | 22 | 23 | 24 | 25 | | 26 | 27 | 28 | 29 | 30 | 31 | 1 | | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Search
Navigation
Categories
Blogroll
|

Sunday, November 25, 2007
Good News, Bad News
The Good News: VS 2008 is out (the RTM only, and you need MSDN to get it). The bad news: there’s currently no support for Silverlight 1.0. I’m trying very, very hard to not gripe about this. After all, VS 2008 is
just RTM, not really released yet. And, Microsoft (in their infinite wisdom) released it on
Thanksgiving. Things may change in the coming week. Here’s hoping.
11/25/2007 4:32:52 PM (Pacific Standard Time, UTC-08:00)
development

Saturday, September 15, 2007
Subversion Revisited
I was getting ready to make some changes to my regular expression editor, and once again wished for a Subversion repository on my home system. The last time that I tried to set this up, I failed miserably. The ugly underside of open source projects is that newbie support can be spotty at best.
I rummaged around quite a bit, and first managed to get the subversion server running from the command line, but once again failed to get it running as a service (my preferred method). This time, I persisted and began to get some traction.
Issue 1: version. The 1–Click Installer that’s available online is pretty old (version 1.3 of Subversion). The docs I found was for version 1.4. Also, it turns out that version 1.4 of svnserve supports running as a Windows service. I dumped the 1–Click stuff and dug up the 1.4.5 (the latest) installer for Windows and got it going. Still no luck.
Issue 2: network drives. Then, I remembered an issue we ran into at work: services cannot access mapped drives (and, in fact, have trouble with drives that require user id’s and passwords). I changed the mapped drive letter of the repository to a UNC path. Bingo! I actually had a connection.
Issue 3: creating the root project. I followed the instructions I found to create the root project, and it seemed to work. But, when I tried to browse to it, Tortoise couldn’t find it. I went back to the instructions. I’d skipped a few steps around security. I went back and set up security properly. Another Bingo! I now can browse!
So far, everything seems to be working well. I have my SVN repository set up (as a Windows service) and I have TortoiseSVN installed (a requirement for easy SVN use). Now, I’m ready to get back to work
…
9/15/2007 12:08:22 PM (Pacific Daylight Time, UTC-07:00)
development

Sunday, August 12, 2007
My IronRuby "Aha" Moment
A week ago, I attended a PADNUG presentation by John Lam on the IronRuby project being done at Microsoft. In short, IronRuby is a Ruby implementation that runs in the .NET CLR, and therefore has native access to the .NET libraries.
This both intrigued and confused me. Last year, at Portland Code Camp 2.0, I attended a session on Iron Ruby. That wasn’t presented by John. I couldn’t figure out what was going on. Well, today I found Wilco Bauwer’s blog. Wilco’s the developer of the original IronRuby, and the presenter that I saw last year. Apparently, the current IronRuby has no relation to Wilco’s project. However, Microsoft did ask Wilco for permission to use the name, and he did agree.
At least, my confusion is now cleared up.
8/12/2007 10:11:15 AM (Pacific Daylight Time, UTC-07:00)
development
Builds and Build Scripts
Currently, I’m using BAT files for my build automation. Over the years, I’ve been pretty happy with BAT files for this purpose. Microsoft has done a very good job of improving the capability of the command language over the years. Recently, though, I’ve been bumping into the limitations of BAT files.
My main problem is the weak support for variables. I use Environment variables and SET for script variables. In most use, it works great. Since each invocation of a BAT file gets its own Environment, new variables are automatically “local” to that file; this makes structured programming easy, as long as you don’t mind each subroutine being in a separate file (I don’t). However, global state management is extremely difficult.
So, I’ve been looking for an alternative.
One obvious choice would be vbscript or javascript, using Windows Scripting Host. After all, it was built for scripting, right? I tried this years ago, when WSH first came out. I learned that both vbscript and javascript are horrible programming languages (hence the move at Microsoft from ASP (vbs, js) to ASP.NET (c#, vb). The scripts were only marginally more maintainable than Perl (my first build scripting language, 10 years ago).
My next choice was PowerShell. I’ve been intrigued by PowerShell since I first saw it at PDC two years ago (when it was still called “Monad”). The idea of seamlessly calling into the .NET library is compelling. Reality turned out to be a different story. While I’m sure that PowerShell makes doing routine WMI or ADSI automation easy (the interfaces in .NET for these are horrible), batch-style automation (where you are automating the execution of programs themselves) is terrible. I found myself repeatedly calling directly into .NET to do things that should have been built into the scripting language (like changing the current directory). It was slow, slow going. When I finally hit a wall, unable to figure out how to do what should have been a simple task, I gave up.
I decided to try Ruby. Now, as some of you know, I looked at Ruby for scripting way back in the ‘90s when scripting (around Python back then) was just heating up. I was looking for an alternative for Perl (sound familiar?), but didn’t like the arcane syntax of Python. Ruby looked promising, but since there wasn’t a community of any size around it, I abandoned it as an alternative. A decade can make a big difference. Thanks to Ruby on Rails, its now (in my opinion) hotter than Python. I did a quick check on capabilities, and it looked like I could easily do with Ruby what I couldn’t figure out how to do in PowerShell. I decided to give it a try.
Sure enough, in less time than I spent with PowerShell, I was able to get a couple of my BAT scripts coverted to Ruby. As an aside, I’m using Ruby in Steel as my development environment. It’s great: it allows me to do my work right in Visual Studio 2005, with syntax highlighting, Intellisense, and integrated debugging.
The only real problem I was running into was Ruby’s syntax. Ruby is definitely not in the “Algol” family of languages like C, C++, Java, and C#. I was handling the simple stuff easily, but the more complex stuff was sailing over my head. The books I had (O’Reilly’s Learning Ruby and Ruby in a Nutshell) were very little help. I decided to pick up a couple of other books. Since the Ruby Cookbook was some help with my trial scripts, I picked it up as well as the “Ruby Bible”, Programming Ruby (the “pickaxe book”). I was shocked to discover the existence of a utility called Rake!
Rake is a Ruby-based Make utility. This intrigued me, so I did some research. Rake is a cross between Unix Make and Java’s Ant. With it, you can do dependency-style builds (like Make) or task-style builds (like Ant or NAnt). The beauty of it is that the build scripts are still just Ruby!
I’m a big fan of the task-style build process used by NAnt, but I don’t like the fact that the input file is XML. XML is just not suited for process-based programming, such as build scripts. It’se extremely difficult to read and maintain. Rake lets me build tasks and task dependencies, just like NAnt, but each step is procedural, not just a list of XML elements. As an added bonus, I get the full power of Ruby to accomplish what I need to do. Remember that the thing that got me down this path in the first place was the limitations of BAT files.
The outcome of all this is, first, that I’ll be giving Rake a try for build automation (and I have high hopes). Secondly, I’m intrigued by Ruby’s capabilities for creating DSL’s (Domain Specific Languages). DSL’s are hot right now. .NET’s LINQ is an interesting example of a DSL. The problem with LINQ is that it required changing the compiler to support it (due to the syntactic limitations of C#). Ruby’s flexible syntax makes implementing a usable DSL possible without changing the interpreter. I’m starting to think that this will be the ultimate advancement that Ruby brings to general programming.
As usual, this ability is not new. Stack based programming languages, like Forth and (yes) Postscript, have had this capability for years (or decades!), but stack-based programming languages have their own problems. Having similar capabilities in a more “traditional”, object oriented language is refreshing.
Now, I’m off to the store, to buy yet more Ruby books
…
8/12/2007 9:58:42 AM (Pacific Daylight Time, UTC-07:00)
development

Monday, December 11, 2006
Simplicity isn't so simple
Today, Joel had a post about Simplicity. To me, his point was “it’s not simplicity that sells, its complexity”. I find this an interesting perspective coming from someone who has a product (FogBugz) that is incredibly simple and whose simplicity is one of its biggest selling points. Now, this is not a criticism of either Joel or FogBugz. Hey, I love FogBugz. I use it all of the time, and it rarely gets in my way. And, it allows me to do things that more “complex” systems don't. Because of its simplicity
.
I think people (and developers, especially) get seduced by “simplicity”. It isn’t about simplicity, its about (first) usability. Usability is a particularly personal thing. To extend Joel’s example, what I do with a word processor isn’t necessarily what a Marketing worker will do with a word processor. We both want the feature sets that we “need” to do our jobs. What we don’t want is to have the features that we don’t use get in the way of what we do use.
12/11/2006 4:24:25 PM (Pacific Standard Time, UTC-08:00)
development

Wednesday, October 04, 2006
How do you know you're "doing agile"?
Steve Yegge’s piece continues to bother me (see my previous post)…
I’ve been sorely tempted to write some long essay rebutting Steve’s piece, but I don’t have that kind of time available (I’m censoring out the “snippy” thing I was going to say here). Instead, here’s some quick thoughts that came to me while stewing over the whole issue. Who knows, maybe sometime in the future I’ll edit the whole mess together and create that essay after all. That seems to work for Joel Spolsky
.
The first thing that occurred to me was that there really isn’t an “Agile Methodology”. I know this term gets thrown around a lot now; I’ve done it myself. I think that the term “Agile Development” is probably more accurate. I’m working on changing my own vocabulary to use this term. Methodologies do, in fact, scream “consultant” or “evangelist”. I understand Steve’s objection to this: it’s the tail wagging the dog. It should be all about “what people do”, not “what people define”.
Given that there’s no “magic formula” for “doing Agile”, how do you do it? Lets say your boss comes up to you one day and says “I’ve been reading a lot about this Agile stuff. I think all of our projects should do this from now on”. What do you do? Just how do you know you’re “doing Agile”?
Here’s my recommendations:
- Read. Start with “Practices of an Agile Developer” (ISBN 097451408X). Then, try “Agile Software Development, Principles, Patterns, and Practices ” (ISBN 0135974445) or “Agile Principles, Patterns, and Practices in C#” (ISBN 0131857258), depending on your language preference.
- Then, read some more. Read the Agile Manifesto. This is the fundamental philosophy of agile development.
- Get a “process person”. Either hire a contract “mentor” or bring someone in who knows how to do Agile Development. If you bring a contractor in, top priority should be to train an in-house person to take over once they’re trained.
The bottom line is that Agile Development is not a silver bullet that allows a company to take relatively inexperienced developers and have them produce high quality work as if they had years of experience. Instead, its an approach to software development that results in high quality software produced on time and under budget.
10/4/2006 11:30:21 AM (Pacific Daylight Time, UTC-07:00)
development

Friday, September 29, 2006
Software Religion
Today, Joel Spolsky pointed to an essay by Steve Yegge talking about Good vs. Bad Agile. Apparently, Steve had previously poo-poo’ed Agile development. This was his opportunity to say that he was only 90% right (sigh). The only thing his essay convinced me of was that he didn’t know what he was talking about. Apparently, his idea of “Good Agile” is to schedule meetings in the middle of the day and let people work on whatever they want to.
I’m getting really tired of the software “religious wars”. You know what I mean: where people get up on their soapbox and shoot off their metaphoric mouths about stuff that they don’t understand. In fact, their main criticism seems to be that whatever they’re against is wrong because they don’t understand it.
By the way, if I didn’t make myself clear, Steve’s essay falls into this category.
9/29/2006 12:27:12 PM (Pacific Daylight Time, UTC-07:00)
development

Monday, September 18, 2006
Thoughts on scripting languages vs. compiled languages
Back in my salad days, I used to write programs for the Wang minicomputer. The majority of what I wrote was in COBOL (yes, I know). However, the Wang had a built-in scripting language called “Procedure” that served the same purpose as JCL did on the mainframe IBM’s. Procedure was powerful enough that you could use it as a batch language, and build applications by gluing together utility programs, similar to what we do with BAT files on the PC.
While Procedure was very simple to use, and made getting certain applications up and running quickly, it had a big drawback: it was dog slow. So, if it looked like my quick and dirty utility written Procedure was going to be used for a while, I rewrote it in COBOL. The second writing took a lot longer than the first, but since I’d already proved that the application had significant usefulness, it made sense to rewrite it.
It seems to me that this is a good rule of thumb for modern scripting languages vs. their compiled siblings: Use the scripting languages to try stuff out and come up with something that’s useful. If it looks like the app will be used often, take the time to rewrite it in Java or C# (please, oh please don’t even try to write it in C++). As I discovered 20 years ago, this approach gets the value you need when you need it.
9/18/2006 8:58:53 AM (Pacific Daylight Time, UTC-07:00)
development

Thursday, September 07, 2006

Friday, August 25, 2006
What a difference a dot makes
Today, JetBrains released Resharper 2.0.1. Boy, what a difference that “.1” makes! I’ve had a love-hate relationship with Resharper 2.0. On the one hand, I don’t want to live without its features (I would say “can’t”, but come on! Its just software). On the other hand, various parts of the system were so buggy that I avoided using them (including the tabs on their test runner). Well, I just ran through 2.0.1, trying all the problem areas, and they’re all fixed! Oh joy, oh joy. So, if you’re not using Resharper 2.0, run (don’t walk) to their
web site and get a copy now.
8/25/2006 3:19:21 PM (Pacific Daylight Time, UTC-07:00)
development
The Optimization Jones
Many developers, especially C/C++ developers, are fixated on optimizing their applications early. Bob Martin has an excellent post on performance tuning that everyone (especially the above named folks) should read. It reinforces my philosophy that optimizing for speed (as opposed to readability, maintainability, and flexibility) is something that should be saved for the end when you know you have a problem and can spend the time to figure out the (real) solution.
For all of you now going “but, but, but”, please keep in mind that I’m not saying that you should be stupid about performance. Here’s a good rule of thumb. When you’re doing the early optimization (or thinking of it), if you feel proud of how neat it is, its too much.
8/25/2006 2:12:41 PM (Pacific Daylight Time, UTC-07:00)
development
Software and the Runway
Last month, I posted my “Runway crazy” piece, and Jennifer (hi, Jennifer! Thanks for reading!) commented that she’d like to hear more about the parallels between software development and fashion design (that sounds weird, even to me!). Now, I’d thought that I’d already written about this, but apparently not.
Here goes…
One of the first things that struck me about Project Runway when I watched the first season (available on DVD!), was “Hey! we do the same thing in software! In software development, we start with an overall concept (often from a “customer”), then plan out the steps, execute the steps, make final changes due to usage, and voila: software. In design, they do the same thing: take a concept, construct a pattern, assemble the outfit, fit the outfit.
The designers even face similar constraints:
- What fabrics should I use (software technologies: web, desktop, java, etc.)?
- How much time do I have (schedule)?
- How do my skills at sewing, pattern making, etc. impact the schedule (experience, training)?
As an aside (but not really), the Software Development conference used to have a feature called the “C++ Superbowl”. Developers from each of the C++ compiler/IDE vendors would go head-to-head to develop a series of application challenges. This was done in real time, on stage, in front of an audience. I thought that it was incredibly exciting. With the death of C++ as a major development language, the Superbowl was discontinued, but I wish that they’d bring it back. It was great to see how the various products could be used for the challenges, and it was also great to see how capable the vendor teams were. For the record, Borland won almost all of the challenges, until they stopped participating (due to their own internal problems). Also for the record, the think that killed the Superbowl was Sun’s lawsuit that broke off the main Java vendor, Microsoft. This basically made the Superbowl irrelevant.
Back to Runway: I’d recommend anyone that develops IP of some kind (software, hardware design, fiction, etc.) watch the show. There’s much to relate to.
8/25/2006 11:30:06 AM (Pacific Daylight Time, UTC-07:00)
development | TV

Wednesday, August 09, 2006
They're Baaaaack!
Looks like Borland’s coming back in a big way! They’ve announced the return of the “Turbo” line of software. You can see the offering here. I’ve got to admit, I’m pretty excited about this. We could see the return of the old Borland again. I’m hoping that they’re going to work toward growing the non-MS use of .NET/C#.
I also noticed an interesting thing: There was no mention of JBuilder or Java development. It could be that JBuilder is either staying with the parent company, or going its own separate way.
8/9/2006 9:53:53 AM (Pacific Daylight Time, UTC-07:00)
development

Thursday, August 03, 2006
Here's an interesting take on Avalon
Miguel de Icaza, the father of Mono, has an interesting take on Avalon (Windows Presentation Framework, WPF). He says that “Avalon is the J2EE of GUI APIs”. For those that don’t know J2EE (congratulations!), this is not a compliment. Speaking of someone who’s reaction to Avalon was “man, that’s complicated”, I tend to agree with him. I’d go on to say that its the “Word 2000 of GUI APIs”: it has way more features than the average developer wants to deal with, and in fact gets in the way of simple UI design.
sigh.
8/3/2006 11:50:46 AM (Pacific Daylight Time, UTC-07:00)
development

Monday, July 24, 2006
CodeCamp 2.0 was suprisingly good
Frankly, I didn’t have very high hopes. They cut the camp from 2 to 1 day, the organization showed extreme last-minute-itis, and it was way out in the boonies of north Vancouver (WA, not Canada).
In actuality, it turned out to be at least as good as last year, maybe even better. I especially liked the sessions on Iron Ruby and WMI. Boy, could I have used that WMI knowledge last year!
Now, I’m looking forward to next year’s camp, even if it is back at the WSU campus in Vancouver (a very nice, if remote, campus).
I want to give special kudos to Stuart Celarier and Jason Mauer for putting on such a good show.
That’s not to say that there weren’t some “opportunities for improvement”:
- The agenda came out way late. That needs to be better.
- I never was able to get wi-fi to work there. I know other people were, but they need to be better about helping out there. A few people were helpful, especially Stuart, but other folks just threw their hands up.
- They ran out of sugar for the coffee, and had no creamer at the start. They eventually fixed the creamer issue, but for those of us that can taste the difference, Sweet-n-Low tastes vile. Yes, I know that this is “extra” stuff, but you don’t want to mess with a techie’s coffee!
But, these were ultimately small issues, and (as I said), it was a good code camp overall.
7/24/2006 5:36:29 PM (Pacific Daylight Time, UTC-07:00)
general | development

Thursday, June 29, 2006
Loving that Resharper
First, a caveat: Resharper 2.0 still had tons of bugs in it. In fact, the unit test support still locks up Visual Studio at times. And, they’re horrible about letting people know about patches.
On the bright side, I’ve started using their template system, and I love it! I’m going template-crazy right now, creating templates that do all those tedious tasks that I’ve always done manually. So far, I have:
1. A File Template that creates an NUnit Test Fixture class that has all the right namespaces, methods, and attributes.
2. Property templates for Get-Only, Set-Only, and Get-Set properties. It automatically tabs through the type and property name
.
I’m sure there’s more to come…
6/29/2006 2:24:43 PM (Pacific Daylight Time, UTC-07:00)
development

Friday, June 23, 2006
Portland BarCamp anyone?
This weekend is the San Francisco BarCamp. What’s BarCamp, you ask? BarCamp is yet another form of the un-conference (like Code Camp). The thing that’s different about BarCamp is its only for participants. So, it breaks the speaker/audience model, even further than Code Camp does. Everyone presents (or at least participates in presentations), so its more of a peer gathering. You can find more information on BarCamps here and there’s a “BarCamp for Dummies Newbies” here.
I’m wondering if this would be a neat thing for the Portland area… Any takers?
6/23/2006 9:25:39 AM (Pacific Daylight Time, UTC-07:00)
general | development

Monday, June 19, 2006
Joel on Bill
Joel Spolsky, of Joel on Software fame, posted an interesting article on his first real experience with Bill Gates at Microsoft. It’s a very interesting read, that gives insights into both Bill himself, and how the rest of “techdom” view him (or at least those that know him).
I’d heard similar stories before, though it was interesting hearing Joe’s version. However, the thing that really struck me was that, this isn’t the way its done at Microsoft today and hasn’t been the way for quite some time. In the old days, Bill was central to the company, even after it became “big business”. This was how the now legendary “Internet shift” could happen. I think Bill liked having things this way, and he’s less interested in being just a “figurehead” for the company. This is probably central to his decision to wean himself from Microsoft and concentrate on his foundation, where he can have this kind of central role.
Good luck, Bill. It’s been a fun ride.
As a side note, I thought that it was interesting that last week’s Newsweek included a story on second careers for boomers, even before Bill’s announcement came out.
6/19/2006 10:24:21 AM (Pacific Daylight Time, UTC-07:00)
technology | development
Adobe vs Microsoft
Adobe is finally talking about its threatened suit vs. Microsoft regarding PDF writing support in Office 2007, and Microsoft’s new electronic document format, XPS. Of course, they’re talking anti-trust and Monopoly, having taken a page from Sun’s strategy in their lawsuits against Microsoft. Several thoughts come to mind:
1. The Justice Department should examine Adobe for anti-trust. After all, based upon Judge Penfield Jackson’s sliding scale approach to Monopolies (Microsoft has a Monopoly on OS’s running on computers able to run Microsoft software, the other computers, like Mac’s and Mainframes, and Unix machines don’t count), Adobe has a monopoly on PDF technology (it’s the ONLY electronic document format, and they own it).
2. Adobe should remember what happened to Sun: after winning their suit, and getting Microsoft to agree to remove Java from their OS’s, they had to go back and get Microsoft to agree to leave in their JVM to prevent Java usage from imploding since very few computer vendors seemed interested in shipping Windows with Sun’s (or anyone else’s) JVM pre-installed.
3. Microsoft also did a job on Sun by placing the C# language definition under the control of ECMA. What happens if they do the same thing for XPS? Just how does Adobe sue Microsoft for implementing an ECMA standard?
Adobe could find its core technology undermined in a big way if it tries to play hardball over this. Remember Ashton-Tate and Dbase: they sued Borland for copyright infringement and instead, wound up losing their own copyright over the database language.
6/19/2006 9:51:03 AM (Pacific Daylight Time, UTC-07:00)
development | technology

Friday, June 09, 2006
WinFX is dead, long live .NET Framework 3.0
It looks like Microsoft finally found a “product naming person” with a clue. They’ve decided NOT to call the (next) version of the .NET Framework “WinFX” after all, opting for the much more sensible “.NET Framework 3.0”. Okay, so it still a terrible name (try Googling “.NET” and see what you get!), but at least it has some continuity with what’s come before. We’ve been living with the “.NET” name since before 2002.
6/9/2006 5:08:21 PM (Pacific Daylight Time, UTC-07:00)
general | development

Tuesday, May 30, 2006
CodeCamp is coming
I was hunting around the internet, and found a blurb on the next Portland Code Camp. It’ll be July 22–23 at the WSU campus in Vancouver. It looks like, this year we’ll have wireless network access as well as some off-hours social activities.
5/30/2006 3:28:43 PM (Pacific Daylight Time, UTC-07:00)
development

Friday, May 26, 2006
Jason Diamond is back, and Anthem lives!
I’ve been concerned that the AJAX/ASP.NET project, Anthem, done by Jason Diamond seemed to have died on the vine. My study group had tried Anthem and really liked it. The past few months, there hadn’t been any activity on Jason’s blog.
Well, the drought is over. Jason just published both Anthem 1.2.0 and an additional article on Custom Configuration validation.
Welcome back, Jason! We missed you!
5/26/2006 9:55:56 AM (Pacific Daylight Time, UTC-07:00)
development

Tuesday, May 23, 2006
First (real) impressions of Resharper 2.0
It’s the end of the day, and I’ve spent a good chunk of it using Resharper 2.0 in a real project, rather than just tooling around its features (as I did with the beta), and have some first impressions.
1. A lot of the (nice) features start the wrong way by default. I had to play with my syntax highlighting and Unit Test settings to get them the way I want them. I was all set to post a complaint / bug related to Resharper always building the project before running the tests, until I found the button (default on) that causes this. Turned out to be a feature
.
2. Unit Testing inside VS is fantastic! And the Unit Test Runner window is dockable, so I’ve added it to my tabbed bottom windows (where the Task List and Output Window live). That gives me quick access to the test list and the test results. The runner properly wraps the output and includes hyperlinks back to my source code, so its superior to the NUnit graphic runner.
So far, I’m liking version 2.0 much more than version 1.5, and I don’t think I’d ever want to do C# development without it anymore. And, the price tag was a mere $199, rather than the thousand dollars for VSTS.
5/23/2006 5:03:04 PM (Pacific Daylight Time, UTC-07:00)
development
Tech stuff
This should probably be two posts, but I’m feeling lazy right about now…
First, Resharper 2.0 is released. It’s a “feature explosion” since 1.5 (what I’ve been using), and supports both VS 2003 and VS 2005. I highly recommend it. It’s refactoring support blows away VSTS, and at a nice price point ($199). If you already have a 1.5 license, the upgrade is (apparently) free.
Second: I’ve told several people that for Ajax to really be successful (mainstream), people need to be able to do it without writing Javascript; the language just doesn’t scale well at all. I’ve been saying that the way to think about the problem is to treat Javascript as “the assembly language of the browser”; that is, use a high level language, like C# or Java, and “compile” it to the necessary Javascript code. ASP.NET (and I assume JSP) sort of does this, but its much more limited; more a “code generator” than a “compiler”. Well, there’s some new promising work from Nikhil Kothari: a technology called “Script#”. This has some seriously great implications. Imagine being able to write Ajax-style code in C#! I’ll be following this closely and praying hard!
5/23/2006 9:00:23 AM (Pacific Daylight Time, UTC-07:00)
development

Monday, May 22, 2006
Ah yes. Now, the truth about CodePlex is out
Mike Gunderloy has an
article on CodePlex, and he mentions the
real reason (in my opinion) that Microsoft has decided to reinvent the GotDotNet wheel: some of the features require the Team Foundation Server client to use! So, this is all just a way to (once again) suck money from developers.
5/22/2006 8:33:58 AM (Pacific Daylight Time, UTC-07:00)
development

Wednesday, May 17, 2006
Microsoft continues to aim squarely at their own foot
Today, Microsoft unveiled
CodePlex.com, a new SourceForge-style collaboration site. For years, we’ve had their
GotDotNet.com site for this, and it seems to have worked fine. Now, all of a sudden, we have a second site. What’s the difference? I don’t know. I doubt if anyone knows. Once again Microsoft has gone out of its way to confuse its own development community.
5/17/2006 8:35:23 AM (Pacific Daylight Time, UTC-07:00)
technology | development

Friday, May 12, 2006
Philosophy of Testing
Hey, what gives? This isn’t about American Idol…
I said it would end.
I was going over our latest test results and how it is affecting our schedule, and it occurred to me that I’ve never really shared my basic “Philosophy of Testing”…
When developers plan schedules, they may remember to include test time; but more often than not, the forget to include re-work time. And, when I say “developers”, I’m including myself. This is why I have my basic “Philosophy of Testing”:
The only reason to do testing is because we expect to find errors that we have to fix. Otherwise, why test?
Some of you may be thinking “well, duh!”, especially if you work in QA. If so, go back and read my introductory paragraph again. By and large, developers don’t think this way; it takes effort for them to remember this.
By the way, in my experience, this is the main reason that Validation tends to break the schedule: it isn’t the raw test time, its that the schedule rarely includes time to fix the bugs that were found!
5/12/2006 3:00:58 PM (Pacific Daylight Time, UTC-07:00)
development

Tuesday, May 09, 2006
Remember ATL?
I’m trying very hard to forget. However, I received a huge shock today: ATL Internals, 2nd edition, is available for pre-order! I’d figured with all of the .NET hype at Microsoft, the book was dead. Apparently, not. For those still doing COM development, the book covers ATL 8 (which I assume is the VS 2005 version).
According to Barnes & Noble, publish date is July 2006, but you can pre-order now. And, for those of you who don’t mind the way they treat their customers, you can pre-order from Amazon too.
Hey, anybody remember when Amazon got sued because there was already an Amazon Bookstore in Minneapolis (for 30 years prior!) that was being confused with the internet store? Ah the good old days…
5/9/2006 9:11:33 AM (Pacific Daylight Time, UTC-07:00)
books | development
Microsoft has (finally) released Web Application Project (WAP) 1.0
I can’t remember if I’ve mentioned this before. The Web development interface in VS 2005 is vastly different than that in VS 2003. I’d say gratuitously different. My .NET study group took a look at it when VS 2005 first came out and were thoroughly confused by it.
Well, for whatever reason, Microsoft has been working on a thing called the “Web Application Project” for VS 2005. It adds a project type very similar to the VS 2003 Web project, but takes advantage of .NET 2.0 and ASP.NET 2.0 features. (I’d like to think that its because they realized the error of their ways, but come on. this is Microsoft.
According to Scott Guthrie, this will be part of the VS 2005 SP1, and will continue to be supported in the future as part of VS 2005.
Well, version 1.0 is now released.
5/9/2006 8:51:01 AM (Pacific Daylight Time, UTC-07:00)
general | development

Thursday, May 04, 2006
Resharper 2.0
I’ve been trying the Resharper 2.0 beta at home, in order to present it to my study group. I’m currently using Resharper 1.5 at work, and have become very dependent on it. The refactoring and cross reference features are fantastic, better than what’s built into VS 2003 (at least the cross reference features. It’s easy to be better for refactoring since VS 2003 has nothing there).
Resharper 2.0 add tons of new features, including a “Test Driven” style unit test runner built into VS (who needs Team System
). I highly recommend the tool; anyone using VS for .NET development should look into it. You can find it at http://www.jetbrains.com/resharper/.
5/4/2006 9:02:53 AM (Pacific Daylight Time, UTC-07:00)
development

Wednesday, April 26, 2006
At Last!
I was all set today to (finally) send some e-mail to the OSCON (Open Source Convention) organizers, complaining about a lack of open source .NET coverage, and lo and behold, there’s a “Windows” track in this year’s conference. Not exactly what I wanted, and I don’t know how they can call it a “Windows” track when it includes two Mono sessions. Okay, yes, Mono does run on Windows, but come on; its a Linux technology. Microsoft does an adequate job of providing a .NET implementation for Windows; you might have heard of it.
Anyway, it looks like this year I’ll be attending OSCON, especially since it’s in Portland
…
4/26/2006 9:34:25 AM (Pacific Daylight Time, UTC-07:00)
development
Unit Tests, Code Coverage, Cruise Control, etc.
I don’t think that its any surprise to the folks that know me that I advocate unit testing. Two of the big problems involved in unit testing are: making sure that your tests are up to date, and making sure that you have adequate code coverage.
For C# developers, NUnit is a great resource for unit testing. Based upon the original JUnit test framework, NUnit has surpassed its parent in a lot of ways. Anyone doing professional programming in C# (or VB for that matter) should be using it.
To handle coverage, there’s NCover; also a great tool. Unfortunately, NCover’s results appear textually.
Well, this has now changed. There’s a new tool available called NCoverExplorer that provides a GUI front end to NCover. Version 1.3.3 even provides a way to add its coverage summary to Cruise Control’s web page.
As an aside, CruiseControl.NET is also a great tool. It provides continuous integration for .NET projects and works with both Subversion (for source control) and NAnt (for automated builds). It helps to solve the first problem mentioned above: making sure your tests are up to date. The way that CruiseControl.NET works, every time someone checks changes into Subversion, it gets those changes and automatically does a build. The build process can also include automatically running the suite of NUnit tests. Finally, it publishes the results to a web page. There’s also a monitor application that the developers can run locally so that they’re notified of the “health” of the build at all times. It’s amazing how much this helps to keep development on track.
To recap, here’s a list of tools that any professional C# developer should be using:
1. NUnit
2. NAnt
2. Subversion
3. CruiseControl.NET
4. NCover
5. NCoverExplorer
4/26/2006 9:11:40 AM (Pacific Daylight Time, UTC-07:00)
development

Monday, March 27, 2006
Alistair Cockburn has an interesting article at his site...
Alistair Cockburn has an interesting article at his site: Are Iterations Hazardous to Your Project?
Hmm. It turns out that this article isn’t particularly new (from 9/9/2005), but still, very interesting (I found out about this from Sam Gentle’s site).
I took away, two bits of information from this article:
First, it shows how people can go wrong when trying to implement an agile development strategy, and (in fact) how they could succeed without doing agile development per se. It helps to underscore the important distinctions between “how to success” and “how to fail” beyond just “do agile” (what bad grammar!).
The second bit of information was more intriguing: The article is essentially a “fine tuning” of agile development. Instead of talking about “why agile development is good / better than waterfalling”, it talks specifically about how to be successful within agile development. This shows just how much agile development is moving to be mainstream.
A recent SDTimes article said that of surveyed companies, 19% were doing agile development. It sounds pretty low, but I wonder what other categories people answered with. How many were doing RUP-style I/I development, how many were doing Waterfall-style development, and how many were not really following any formal development strategy (I suspect the last category was the largest)? I think that the next 5 years are going to see a dramatic change in how mainstream software is developed.
3/27/2006 4:25:44 PM (Pacific Daylight Time, UTC-07:00)
development

Thursday, March 23, 2006
Open Source
Scott Hanselman has an interesting post, commenting on the Economist’s article on Open Source. One interesting quote is
“The contributors are typically motivated less by altruism than by self-interest.”
Well, duh.
Sure, the Open Source marketing guys (and they do exist) want to world to think that participants in Open Source are all selfless saints, but the ugly fact is that we all participate in Open Source development to get something out of it. Whether its a working system or experience or even the good feeling you get when you see your name in an About box, its all about self interest.
The “beauty” of Open Source isn’t altruism, its the high degree of collaboration that’s possible. There’s no worries from the sponsors about the secrecy of the intellectual property; it all open for gosh sake! That’s the idea.
Again, contrary to what the Open Source marketers like to say, Open Source software isn’t intrinsically better than non-Open Source software, its just cheaper (and I don’t mean free, though it can be that too). Therefore the price/performance curve can be radically different. If I have to pay $400 for a piece of software, it darn well better work satisfactorily. However, if the software just costs $25, I can live with some glitches while the folks that produce it learn from their mistakes. This is what Open Source is really all about. Okay, so, technically, I could dig through the source code, find the “problem area” and fix it (then submit the fix back to the community), but (as any experienced developer should be able to tell you) this a lot easier to say than to do!
I think Open Source is here to stay, and continues to have an impact on how software is developed today, just as Borland’s low price models in the ‘80s changed the way software pricing is done. However, the thing I don’t know is what form Open Source development will take in the future. I sure had no idea that it would be where it is today when I was playing in the sandbox fifteen years ago.
3/23/2006 4:06:06 PM (Pacific Daylight Time, UTC-07:00)
development

Tuesday, March 21, 2006
Microsoft: changing direction without changing direction
In Computerworld today, Bill Gates is quoted as saying that MS waited too long for a new browser release. Yeah, I guess it’s “too long” when you start working on the next release after you’ve announced that there will be no new versions of the browser
. Okay, okay. They said “stand alone versions” of the browser. Of course, IE 7 will be available for XP. That sounds pretty stand-alone to me.
Anyway.
I think it’s interesting that this time MS is spinning this as a late, but intended change rather than a huge shift in strategy, like their move to the internet was in the ‘90s. This is a company that spent two years trying to convince the development community that web development was dead, and their “one click” technology would replace it. Of course, they changed their tune when the community started beating the AJAX drum. They quickly announced their own “AJAX product”: Atlas.
More and more, I’m thinking that Microsoft’s 15 minutes of technological leadership are over. However, I’m more than a little nervous about what/who comes next.
3/21/2006 9:29:01 AM (Pacific Daylight Time, UTC-07:00)
development | general

Friday, March 17, 2006
SD Expo: Its over (again)
Now that SD Expo ‘06 is over, I’d better take the time to finish writing up some experiences 
Wednesday, Day 1 of Classes:
I started off Wednesday by hearing Scott Ambler’s talk on Database Refactoring. Scott’s worked out a series of refactoring tasks, similar to Martin Fowler’s code refactoring that Martin covered in his book by the same name. Like Martin, Scott now has a book on the topic. I’d already pre-ordered the book (it should be waiting for me at home as I write this), so I didn’t take a lot of notes; I”m planning on reading the book when I get back.
During the second part of the morning, I went to a roundtable discussion on the future of Web application development run by Christian Gross. I know I’ve heard Christian before, his accent is unmistakable, but I can’t remember when. I’m sure it was a previous SD Expo. Christian mainly wanted to talk about REST, with a little side trip to AJAX. Nothing substantive came from the session, but I did get interested in REST. Since Christian had two sessions on AJAX and REST on Thursday, I made a note to attend those and get updated on this stuff.
During lunch, I attended a panel discussion on Model Driven Architecture (MDA) and Model Driven Design (MDD). The MDA concept has been floating around for at least 3 years now. It’s OMG’s next big thing after UML, and they’ve been pushing it hard. Until now, It’s been mainly smoke and mirrors. I’ve been skeptical about it, but I figured that I’d give them another chance to make their case. Besides, Scott Ambler was on the panel (definitely anti-MDA), so it looked like it would be entertaining at least.I couldn’t have been more wrong. At the panel, Scott pointed out several issues with MDA (for instance, most teams don’t all have modelling skills), but the rest of the panel just ignored him. The other panelists were obviously there simply to push the technologies that their companies were selling, not to really discuss the pros and cons of MDA. In fact, the Microsoft guy (who said he really wasn’t an MDA guy, though he cur knew how to talk the talk) went so far to say that anyone who didn’t know how to model should be looking for new work at Home Depot. I couldn’t help wondering how many developers Microsoft has laid off because they didn’t know how to model. I also wondered just how much of Office 12 existed in a model. This was a major waste of my time. The one good thing that came from this was that, as far as I’m concerned this was the last straw. MDA is, in my humble opinion, just a scam to sell consulting at high prices, the old Schlaer-Mellor scam of building dedicated translators for each company. It’s no longer worth my time.
After lunch, I went to a couple of ASP.NET 2.0 sessions. Once on Personalization and one on Web Parts. My study group has been dabbling in ASP.NET 2.0 with very little success, so I though I’d see if the experts could shed any light on the subject. I was pleasantly surprised to see that they were. The Personalization feature in ASP.NET seems to be pretty darned good. By making use of the web.config file and a back-end provider (the default is SQL Server 2005 Express), the system makes it easy to add type-safe properties to the system. I’m all set to share this with the study group! Web Parts turned out to be the reverse. It turned out to not be what I thought it was. It’s similar to the “web parts” in Sharepoint (yuck); I’d thought that it was more of a way to build specialized HTML emitters, like is done in custom controls in 1.1. By the way, the web parts built with ASP.NET 2.0 is incompatible with the web parts in Sharepoint. It won’t be until the next version of Sharepoint when Microsoft unifies them. Nevertheless, I’m feeling a little better about ASP.NET 2.0 than I’d felt earlier. I wish I’d gone to the previous presentation on the security features in ASP.NET 2.0, since that was what we had such a hard time with in my study group. Live and learn.
Wednesday night was the annual Jolt awards. I wasn’t able to take notes on the runners up, but I was able to note down the winners when I got back to my room:
Book, General: Prefactoring by Ken Pugh
I’ve known Ken for a while. He’s a veteran of SD. I remember sitting with him in a Birds of a Feather session back in 1997 on whether Java was going to go anywhere or not
. I actually bought the book at the conference. Any other books, I just ordered online from BN.COM (boo Amazon! boo!). That way, I saved the California sales tax and the hassle of carting the books home.
Books, Technical: Agile Web Development with Rails by Dave Thomas et al
Ruby on Rails is hot right now, and it showed here. This is sure a different attitude toward Ruby than when I first read about it back in the late ‘90s. In those days, no one cared; they were too enamored with Python. Rails changed all that. I just might have to revisit Ruby, though (apparently) Rails doesn’t play well with IIS (I’m sure it’s all Microsoft’s fault
).
Enterprise Project Management: WelcomRisk 2.6 from Welcom
I forgot what went here. Had to do some research on the web. I think it’s interesting that no one has posted the winners yet, other than that the individual winners have posted blurbs announcing their own award. I wonder why not. Anyway, the winner is some sort of risk management tool. I don’t know why we have two project management categories. By the way, this is the only category that Microsoft was nominated in where they didn’t take home the jolt award.
Database Engines and Data Tools: SQL Server 2005 by Microsoft (you remember them)
This was the start of a trend. Can you think of anything else that Microsoft released over the past year? Yes, they’re coming up
.
Defect Tracking, Change, & Configuration Mgt: Perforce SCM from Perforce
I know absolutely nothing about Perforce, except that they’ve gone on the record, saying that commercial tools are superior to open source tools. One interesting sidelight: last year, FogBugz 3.1 won the Defect Tracking award (that was rolled into this new category). This year, FogBugz 4.0 was a runner up.
Design Tools & Modelling: Lattix LDM from Lattix
This is another tool I’d never heard of before. They beat out Borland’s Together 2006 for Eclipse (Borland’s walking dead anyway) and Altova’s UModel 2005. Altova’s product looks interesting to me (they just added C# support). It’s a lot cheaper than the others, which I think should be the trend here. Hopefully, they’ll do better next year.
Development Environments: Visual Studio Team System 2005 from Microsoft (here they are again)
Yup, they did it again. VSTS is a hugely expensive product, practically a CASE tool with a built in compiler. I guess if you’re going to buy a CASE tool anyway, you might as well get a compiler and code editor with it. Again, I’m waiting for the Open Source version.
Libraries, Frameworks, and Components: .NET 2.0 from Microsoft (detecting a trend here?)
Nothing else on the list came close to the impact that .NET 2.0 will have, so this one was a no brainer. Even given my qualms about ASP.NET 2.0 and VS 2005, the framework is a real winner, with its superior robustness, support for generics, and support for dynamic languages.
Mobile Development Tools: Crossfire 5.6 from AppForge
I’d be using this myself if it wasn’t so darned expensive. It lets you use C#/VS for cross platform mobile development: Palm, Nokia, MS CE, Symbian, and now Blackberry. Cool stuff.
Quality Project Management: Rally 5.6 from Rally Software Development
Rally is an Agile project management system, so I was very interested in this. I’d seen their ads for quite a while. I kept wondering just how much “management” an agile project required. As it turns out (according to my recent experience), a nice management tool can help. I stopped by their booth at the show. The tool looks pretty good, but they use a hosted, subscription model. Probably too rich for my blood. Too bad. It looks like they’re onto something. I’ll just wait for the Open Source version
.
Security Tools: Elemental Compliance from Elemental
Beats the heck outta me what this is. One of those new security thingies that everybody is sighing over.
Testing Tools: VMTN Subscription from VMWare
They really deserve this one. VMWare’s VM Workstation is the best addition to our test system we’ve made, and VMTN is the MSDN of VMWare. Very very cool.
Utilities: Camtasia Studio from TechSmith
This is an application recording tool, excellent for building training and marketing materials. I’ve used their screen capture product.
Web Development Tools: Rails 1.0 from rubyonrails.org
The one truly Open Source winner this year. Good thing ASP.NET 2.0 wasn’t up for the award
.
So, Microsoft had a near-perfect sweep of awards this year. They even won the Hall of Fame award for VS Professional. The folks at SD were saying that this was the end of VS Pro’s reign as the IDE of choice (implying that this was going to pass to VSTS), but I’m not convinced. Frankly I don’t see a whole lot of companies paying the big price for VSTS when VS Pro plus a few open source tools gets you everything you need. We’ll see…
Anyway, that was the Jolt awards.
Thursday:
On Thursday I spent the day at several AJAX presentations. The one thing I took away from the sessions was that a lot of people wanted to know about AJAX, and a lot of people promised to talk about it, then didn’t.
There were 2 hot topics this year: Ruby on Rails and AJAX. Of the two, AJAX was the leader by far. But no one had anything original to say about it. I think there are two problems with AJAX right now:
1. The basic technique is nothing new, and the underlying technologies have been around for a loooong time
2. AJAX as a “product” is still not ready for prime time. This reminds me of the first SD where XML was being talked up. No tools existed yet and it was all “promise”. It’s still something to follow though.
Friday:
I spent Friday morning at a tour of Microsoft Research. They’ve got a lot of neat stuff going on there. I’ll have to expound on this in detail later, because it really is some nice stuff, for .NET developers…
At lunch, Bob Martin was the keynote speaker. He called his talk the Prime Directive: Always Make Progress, Never be Blocked. As usual, he was excellent. Bob has to be the best speaker out there today. He got me all fired up again. It reminded me that I don’t just come to SD to see what’s going on in the industry; I also come here to get all fired up again about software development. His talk really got me going again. Can’t wait to get back in the saddle next week 
In the afternoon, I went to Ken Pugh’s talk on HTTP. You know, I thought I’d pretty much understood the HTTP protocol. Boy, was I wrong. This turned out to be another one that’s going to have to take some digesting on my part.
So, that was SD 06. I’d been on the fence whether this conference was really worth coming to again. I completely skipped it last year. It turned out that I was right to come back. I had a great time, and have some ideas on how to move my development project forward…
3/17/2006 10:10:15 PM (Pacific Daylight Time, UTC-07:00)
development

Wednesday, March 15, 2006
SD Expo: Third Day (already)
I can’t believe that it’s Wednesday already. Time to get something posted before it all leaks out of my head!
The first day, I attended a half day tutorial on Agile Estimating that was very good. I knew a bit of what was discussed, thanks to XP and Scrum, but it was good to see it all put together, and it gave me some ideas on techniques to incorporate into my own scheduling.
I skipped the second tutorial on Monday; it was way too crowded. Hey, I thought that we had to sign up for these in advance! What’s the deal with it ending up SRO? Somebody didn’t plan well.
As an aside, that’s been one of the themes here at the expo. There are a lot more people here than in the past. It looks like SD is now on the growth curve. That’s great, although its created some “challenges” this year 
Tuesday morning, I had a session with Scott Ambler on Agile Modelling. It sort of degenerated into a talk on Agile Development, since a lot of the audience seemed to be new to Agile. I enjoyed the talk anyway. It was interesting talking to others who were wrestling with the whole Agile concept.
In the afternoon, I went to a talk by Bob Martin on O-O design. Once again, the room was packed! Still, it was Bob Martin, so I shoe-horned myself into a corner to listen. A lot of what he covered was stuff that I first heard 10 years ago, but again, it was nice to get a refresher from him. Then, the real gem for me: he went over a TDD scenario. It was eye opening. He did an exercise he called the “Bowling Game”, it was a simple scoring system for bowling. It allowed you to input rolls, and then get a final score at the end. The eye opening part was that the easily apparent object model that should be used turned out to be wrong! By using the tests to drive the development, he ended up with a much simpler system that met all of the requirements easily. I was floored. I’ll be revisiting TDD in my own development work.
I’ll post more later…
3/15/2006 8:44:16 PM (Pacific Daylight Time, UTC-07:00)
development

Monday, March 13, 2006
At last, reality is setting in
I’ve been using VS 2005 for a while now with my study group. My biggest question about it is “why aren’t people complaining about this animal?” At last, Brendan Tompkins has a rant against VS 2005 at his site.
The more I use VS 2005, the less I like it. And this includes ASP.NET 2.0. Okay, there’s added functionality there, but its definitely not well thought out. Due to what I’ve seen, I’ve decided to push back any adoption of VS 2005 until 2007 at the earliest. I’m hoping that SP1 for VS 2005 will fix enough of the problems to make using it (and the various 2.0 technologies) worthwhile.
3/13/2006 3:19:59 PM (Pacific Daylight Time, UTC-07:00)
development

Wednesday, March 08, 2006
New language features for C# 3.0
Reported on CodePost, via Digg, the first of the new language features planned for C# 3.0 (and a lot of flames from folks that don’t know what they’re talking about).
It’s interesting to me that I’ve already seen all of these changes related to LINQ. It seems like that’s the big driving force behind C# 3.0.
For those of you that haven’t seen LINQ yet, visit MS’s LINQ site (and shame on you!).
One neat thing is that these changes are all compiler changes. No changes have to be made to the .NET runtime to support them.
It’s only a matter of time before Sun announces them for Java
…
3/8/2006 4:01:25 PM (Pacific Standard Time, UTC-08:00)
development
Linux becons
Today the Daily Grind announced a new GUI designer in MonoDevelop. Seeing this, I’m sorely tempted to try out Linux and Mono…
Though, judging from the pic, I’ll have to brush up on my Spanish
.
3/8/2006 9:05:54 AM (Pacific Standard Time, UTC-08:00)
general | development

Wednesday, February 08, 2006
End of an era (again)
This just in: Borland is leaving the integrated development market (Computerworld). They will be selling off their Delphi and JBuilder products (the only real ones left) and concentrating on ALM (Application Lifecycle Management). This really is the end of an era. Many of us cut our developmental baby teeth on Borland products. In the past they were technology leaders in areas like Pascal and C++. In fact, before Borland came out with Turbo C++ in the late ‘80s, it was accepted that it was “impossible” to do object-oriented Windows development, because of Windows’ weird programming model (remember the WinProc, lParams and wParams?). Borland did it.
But, they stumbled during the ‘90s, concentrating first on database systems and then on web development. At one point, they even renamed the company to Inprise. After that, at the Software Development Conference, Richard Hale Shaw insisted on referring to the Inprise crew as Borland. Sure enough, in a few years, they were Borland once again. But the company had become only a shadow of what they once were.
In the intervening years, there’d been a huge “brain drain” at Borland, and they never were able to regain any real traction in the software development area. I was at the rollout of Delphi in 1995, back in the pre-Inprise days. Now, the guy responsible for Delphi (and Turbo Pascal before that) works for Microsoft (Anders Hjelsberg), and (in fact) gave us the C# programming language.
I expect that Delphi (and maybe JBuilder along with it) will be bought by a foreign outfit, maybe European (where Delphi continues to do well). JBuilder is basically a dead product, since Eclipse has taken over the Java IDE space, and is in fact way better than any of the commercial tools out there.
As for Borland, dead corp. walking. They’re just going to fade away. What a shame.
2/8/2006 2:03:04 PM (Pacific Standard Time, UTC-08:00)
development

Friday, January 13, 2006
My first reaction to ASP.NET 2.0
ASP.NET 2.0 sucks rocks.
Okay, I said it.
Recently, my study group decided to take a look at ASP.NET 2.0. We’ve been exposed over the past couple of years (yes, years) to various Microsoft ASP.NET marketing hype, so we knew what the feature set was. We decided to get Scott Hanselman’s book and use it as the basis of our study group.
Big mistake.
I’m not going to say that I hate Scott’s book. Though, I did loan it out to one of my study group members, with no expectation that it will be returned. And, I did order O’Reilly’s ASP.NET in a Nutshell 3rd printing, that covers ASP.NET 2.0. I’m thinking that maybe Scott’s book is good as a reference for ASP.NET. I don’t know right now.
Because, ASP.NET 2.0 is so darn complex that it’s going to be a while before I can do anything useful in it and am able to satisfactorily review any of the resources out there for it.
On the other hand, I pulled up the O’Reilly book via my Safari account (yay, O’Reilly) and we could quickly get an ASP.NET site going with a Master Page. It still required futzing around on our part, but (again) Scott’s book didn’t help here at all. The error message from ASP.NET didn’t help either. Once we figured out (on our own, though based on the O’Reilly illustrations) what we were doing wrong, we did eventually get the site up and running.
But it was not in any way “intuitive”.
Sigh. Just when are we going to see some easy way to set up web applications?
1/13/2006 2:42:33 PM (Pacific Standard Time, UTC-08:00)
development

Wednesday, January 11, 2006
A nice parable
The Agile Management blog has a nice parable on requirements called “The Defective Paper Towel”.
It really gets to the point. Much of what was said about requirements in the ‘90s and before was kind of “ivory tower”, and really didn’t reflect the actual state of affairs concerning requirements.
It’s an “agile” fact of life: Requirements change. Accept it.
It’s all about understanding what the customer really wants, sort of the “meta-requirement”; and, in many cases, the customer doesn’t even know this coming into a project.
1/11/2006 10:22:12 AM (Pacific Standard Time, UTC-08:00)
development
Unaware
Yesterday, Chris Sells posted a comment regarding a comic Rory put together about Chris and various other ‘Softie luminaries. Somehow, Chris has the mistaken idea that he’s not a marketing geek. sigh. Where to begin?
By the way, Chris’ blog/RSS includes no permalinks. It makes referencing his comments difficult. Just what I’d expect from a marketing geek. 
1/11/2006 9:33:35 AM (Pacific Standard Time, UTC-08:00)
general | development

Thursday, January 05, 2006
Testing and Interfaces
Today, both Martin Fowler and Ian Griffiths wrote about Implicit Interfaces and their implications in testing.
Essentially, both Java and C# borrow a “feature” of C++, that each class implicitly has a defined interface matching its implementation (actually, in C++ each class has 3 interfaces: public, protected, and private).
Martin’s point (sort of) and Ian’s addendum are that this implicit interface can be difficult to test, and using explicit interfaces can help this issue by making “mocking” easier. Ian goes on to make a good point that what we really need is some “automatic” way to split the interface from the class.
I’d like to add one other point:
Among other things, I use unit testing to evaluate the design of my classes, and if I run into difficulty testing them, I infer that means that there is a problem with the design of the class. This philosophy has helped me out numerous times. I’ve lost track of the number of times that changes I made to a class’s interface turned out to be necessary for proper usage of the class.
So, I’d say that the difficulty that Martin would like addressed in the language is actually in the design of the class under test.
Let the flames begin 
1/5/2006 2:17:15 PM (Pacific Standard Time, UTC-08:00)
development

Wednesday, January 04, 2006
Windows and IE
Today, Microsoft Watch had an article titled “Should the Windows and IE Teams go their Separate Ways?”. Here’s my own 2 cents on the subject:
Frankly, I think Microsoft has way too much of its attention paid to Windows. It seems that they are using their success in other areas more and more to shore up Windows. Not only with IE, but I see the same thing with .NET (C#, at least, should be widely available, and the .NET runtime should also), Visual Studio, and Office. While I never bought into the whole “Microsoft is a Monopoly” nonsense (depending upon how you cut it, Apple is a monopoly, Intel is a monopoly, Dell is a monopoly, etc.), Microsoft is now placing their own interests ahead of those of their consumers. Now, this may be perfectly legal and ethical, but as a Microsoft consumer, I don’t like it, and am more and more leaning to expressing that dislike by moving on. Do you hear me, Microsoft?
1/4/2006 11:07:54 AM (Pacific Standard Time, UTC-08:00)
general | development

Thursday, December 01, 2005
Well, this is a surprise!
A few moments ago, I went to the OOPSLA 2006 site, just to see what’s going on and where it will be. Well, did I get a surprise! It’s going to be in Portland next year! sweet!
12/1/2005 12:01:39 PM (Pacific Standard Time, UTC-08:00)
development

Wednesday, November 23, 2005
My suspicions are confirmed!
Computerworld just published
an article that has confirmed what I’ve suspected for a long time: Linus growth is affecting the Unix community a lot more than its affecting the Windows community.
11/23/2005 3:08:06 PM (Pacific Standard Time, UTC-08:00)
general | development

Tuesday, November 22, 2005
TDD
Microsoft has been receiving a lot of criticism over their
TDD Guidelines. I didn’t realize what the real issue was until I read
Scott Bellware’s comments. I recommend his his article (and probably his blog) to anyone interested in: agile development, TDD, or (generally) the future of software development. This is good stuff.
11/22/2005 10:54:03 AM (Pacific Standard Time, UTC-08:00)
development

Monday, November 14, 2005
Nerd TV
Bob Cringely (the real one, not the InfoWorld wannabe) finally has had someone on his new program that’s interesting.
As background, Bob recently (okay a couple of months ago) started a Pod Cast-friendly web “program” called NerdTV. It was a good idea (Bob interviews movers and shakers of the computer industry) that (until now) didn’t work out so well for him. It sounds good to say that you’re interviewing the likes of Andy Hertzfeld, Bill Joy, Dave Winer, or Tim O’Reilly. However, none of these interviews (and I listened to all of them) seemed to result in anything interesting to hear. Now, your mileage may vary. I’ve been tooling around long enough in computer-dom that none of these names were unfamiliar to me, and I suspect that Bob may have dwelled a little too long on computer history rather than anything contemporary.
However, his interview of Anina, a mobile web maven, and (gasp!) international model, was brilliant. Anina brings an interesting perspective to software development, and the mobile web in general: She’s a hobbyist, who got into web technology programming because no one was providing what she needed to stay in touch. Since her initial foray, she’s become a leader in the industry, with her own highly artistic web site as well as a list of credits that would do any technologist proud.
Take some time to hear her interview, I found it extremely fascinating.
Bravo, Bob!
By the way, I was so impressed, that I've added NerdTV to the Nav list...
11/14/2005 4:36:45 PM (Pacific Standard Time, UTC-08:00)
development | general

Monday, October 31, 2005
Open Source's Silver Revolution
Bob Cringely has an interesting article on the effect of boomer retirement on the Open Source industry.
It’s an interesting read. By and large, the Open Source community has been the home of the young, since they have a lot of time on their hands and way too much enthusiasm
.
However, with baby boomers entering retirement, there will be a growing number of experienced developers with time on their hands. This could really shake things up. While I haven’t been a big fan of the Open Source movement (until recently), I have deep roots in its precursor, the Shareware/Freeware movement of the early ‘80s. And I think I better understand the various motivations in the Open Source community today. That being said, it boggles my mind what armies of experienced software developers could do to the entire software industry by just doing what comes naturally to them.
10/31/2005 10:06:59 AM (Pacific Daylight Time, UTC-07:00)
development

Friday, October 28, 2005
Hey Alan!
It would sure help if you provided a link to the INCOSE document you’re
talking about! Never mind, I’ll find it <grumble>…
10/28/2005 2:03:46 PM (Pacific Daylight Time, UTC-07:00)
development
SWEBOK: The Software Engineering Body Of Knowledge
Alan and I have been talking about SWEBOK recently, and he’s got some entries in his blog about this. Now, I’m skeptical. The parties involved don’t have a great track record when it comes to Agile Development, and I’ve become convinced over the past year that this is definitely the future trend in software development.
I’m also skeptical of licensing efforts for Software Engineers. While I agree that something has to be done to improve the general skill level of software engineers, every licensing model I’ve seen has felt more like formalized cronyism than any realistic effort to set a minimal level of ability. Frankly, how can we do this without first agreeing on just what this minimal level is? I guess that this is where SWEBOK comes in. However, I suspect that its more aimed at the government contracting world, and to a lesser extent the governmental oversight world (FDA & FAA). These SEI/CMM based systems are more concerned with making auditing of a software product easy than producing quality software inexpensively.
I guess I’m going to have to spend more time reading SWEBOK stuff to at least debunk it effectively
…
10/28/2005 2:02:38 PM (Pacific Daylight Time, UTC-07:00)
development

Friday, September 30, 2005

Monday, September 19, 2005
Jon Galloway is afraid of DLINQ
In his
Blog, Jon Galloway says that DLINQ scares him. He says that he’s afraid of code maintainability and people “abusing” the feature. He could make the same statement about UI development, or threading. Frankly, making it easier to do something increases the chances of abuse. That’s a given. Whether its queries integrated into the language, operator overloading, or even public attributes. This is where standards and discipline come in. Frankly, I think LINQ is ground breaking technology, and DLINQ is just what the doctor ordered for SQL Server queries.
9/19/2005 8:44:40 AM (Pacific Daylight Time, UTC-07:00)
PDC 05 | development

Friday, September 16, 2005
PDC's over
Well, that’s it. PDC ‘05 is officially history. I can’t even get to the online site to post my evaluations of the sessions I saw today.
So, today I spent most of my time at panel discussions. It was great to have the bulk of the panels all day Friday. It made it a whole lot easier to figure out what to see. Which leads me to my central theme for this posting:
This was the best organized conference I’ve ever been to. Now, I’ve been going to development conferences for over 10 years. I’ve seen really big ones, like the year that Software Development was held with the first Java One conference, and I’ve been to really small ones, like the Software Development conference that coincided with the start of the Iraq war. And, yes, I’ve been to conferences other than Software Development too! But, let me reiterate: this was the best organized conference I’ve ever been to. Here are some of the things I think that others should be emulating:
1. Food: There was food available at all times. Easy to eat stuff that included both the typical “junk” food that so many developers run on as well as more “healthy” stuff like tons of fruit. Coffee was also always available in copious quantities. While lunch was also served, I neither partook of it or missed it. I never had to stop going to sessions in order to eat. Instead, I was picking all day long, while packing in the sessions.
2. Lounges: There were lounges set up in the Big Room, each of which was dedicated to a different track. People could hang out in the lounges and talk to experts in that particular field. Okay, so MS was mainly interested in using this venue to push its products. That’s always the case. The main thing was that this created yet another place were attendees could get together with each other as well as speakers they may have heard.
3. Computers: There were PC’s everywhere! In fact, all reviews were done online, so there weren’t the usual little pieces of paper you had to deal with at the end of each session. You could also use the PC’s to get up to date info on the conference as well as just do general Internet stuff, like checking your e-mail.
4. Network Connections: This leads to the next great thing. WiFi everywhere (nearly) and tons of tables set up with both power and wired connections. It was trivial to stay connected with both the conference and the outside world while here, thanks to the ubiquitous network connections available. In fact, I didn’t even attend Bill Gates’ keynote; I watched it on my laptop! No crowds, no lines. And I could read the news while listening.
5. BOF’s: There were tons of BOF sessions. And, these were real BOF’s, not just marketing opportunities for various consultants (or MS for that matter). My only real beef was that the sessions were always late at night (starting at 9:00), and since I wasn’t at a conference hotel, this made attending inconvenient.
6. Shuttles: All of the conference hotels (not mine, unfortunately) were on a shuttle route, with the shuttles running continuously. So, if you wanted to go back to your hotel for an hour or so, and then return you could do it (fairly) easily.
7: Panels: Lots of panel discussions. We tech heads love panel discussions. Get the experts on stage together and give us a chance to ask them the hard questions. And better yet, they reserved a day for these panels, so I didn’t have to give up some other activity to see them.
I don’t know how much money MS spent on this shindig (A lot, I think), and I don’t know how profitable another conference that offered these features would be. I do know that all of these things would attract tons more people than I’ve seen at other conferences recently.
The folks at SD Expo should especially take note.
9/16/2005 3:47:16 PM (Pacific Daylight Time, UTC-07:00)
development | PDC 05

Wednesday, September 14, 2005
PDC: LINQ and C# 3.0
Anders Hejlsberg is a genius. No, he’s a god! Okay, maybe LINQ isn’t really all his idea, so there’s praise to go around his team. However, all in all, this is massive! Not only does the LINQ project solve what has been a huge problem with general purpose programming languages for years, but it did it in a domain-generalized way. The result f which is a great addition of functionality to C#, and any other language that also provides for its capabilities.
LINQ is big, big, big. Not only the query language itself, which is marvelous itself, but also the concept of Extensions to existing classes, and the various other features being added to C# 3.0. I agree with Anders’ point that it allows for the kind of ease of development found only in dynamic languages without the messiness that typelessness adds. Bravo to all! This technology seems pretty new to me, so I don’t know where it’ll eventually go (I suspect that Sun will be making changes to their road map for Java soon
), but I think this could be bigger than Aspect Oriented programming.
9/14/2005 7:12:02 PM (Pacific Daylight Time, UTC-07:00)
development | PDC 05
PDC: Writing a Dynamic Language Compiler
Back to the PDC: Yesterday I saw a presentation on writing a dynamic language compiler using .NET.
It was very good. They glossed over a lot of the fundamental issues (using code snippers in VS 2005), but gave a good explanation of the features in .NET to support code generation. Especially, the new features added to provide better support for dynamic languages, where code is compiled, executed, and thrown away.
I’ve had a long standing interested in domain specific languages, and so it was interesting to see these guys do their thing in .NET.
Now, if I could just figure out how to do an official evaluation of the session… The PDC site keeps changing…
9/14/2005 9:40:08 AM (Pacific Daylight Time, UTC-07:00)
development | PDC 05

Monday, September 12, 2005
Free Day
Well, today was a free day for me. Microsoft (in their infinite wisdom) decided to handle pre-conference registration by handing out those colored bands that get used for conferences. To compound things, they handed out the bands first, then (in another room) handed out the bags. So, as a result, my band for today went into my pocket. Well sometime between registration and this morning when I put my pants on, the band disappeared.
So, how does Microsoft handle this? they want me to pay another $600 to attend a rather questionable session on Visual Studio Extension. I laughed, and gave myself a “free day”. Sometimes I wonder just who is running the show at Microsoft. sheesh.
9/12/2005 8:18:41 PM (Pacific Daylight Time, UTC-07:00)
development | general | PDC 05

Sunday, September 11, 2005
At the PDC
It’s Sunday, and I’m at the first pre-conference PDC session. Actually, it’s lunch time and I’m sitting at a table outside of the session room. My first session is on C# 2.0. So far, just one real surprise: Thanks to Generics, foreach has gone from the iterating loop of choice to “not so great”. Because, as when templates were added to C++, it’s much faster/cheaper to just add iteration directly to your generic collection classes than deal with the inefficiencies of Enumerators. It turns out that there are still reasons to use Enumerators in C# 2.0, but it’s a whole lot less clear, and frankly, much more esoteric. Unless something changes, look to see foreach getting deprecated as a general looping mechanism in C#.
A word on what I’m doing and where I’m at: This is being brought to you via wireless access at the LA Convention Center, thanks to our host, Microsoft. They even have facilities here for the “great unwashed” that don’t have WiFi capability: wires for direct connects and even Internet Terminals for those who really travelled light.
This as been my first real opportunity to post to the blog. PDX advertises WiFi at the airport, but I couldn’t connect via my laptop. I would’ve suspected the machinations of my IT department, but the WiFi connection at my home worked like a charm. I don’t know what the problem at PDX was, especially since my Palm LifeDrive had no trouble hooking up (note to self: investigate blogging sw for the Palm). My next opportunity was my hotel room at the Radisson Midtown LA. It turns out that this is the weekend that they’re switching over from wired access (piggy backing on USC’s connection) to their own WiFi solution. So, while there’s no connection this weekend, I should have WiFi capability tomorrow (Monday) morning. We’ll see…
As a result of no Internet prior to the conference, I had to scoot here when I got up this morning, since I’d forgotten to print out my pre-conference itinerary. The good news was that my session didn’t start for 2 hours. The bad news was that I hadn’t eaten breakfast yet, and there are no real breakfast facilities near the Convention Center. However, I did have 2 hours, and I saw a Holiday Inn at the outskirts of the downtown LA area, so I hoofed it over there and had a nice, if expensive (hotel prices) breakfast there before hoofing it back to the Convention Center. I still ended up back with an hour to spare
.
Today’s the short day. It doesn’t look like anything after the pre-conference session, so I can just head back to my room for the evening. Tomorrow I can take my time getting to the Convention Center.
9/11/2005 12:39:10 PM (Pacific Daylight Time, UTC-07:00)
development | general | PDC 05

Thursday, September 01, 2005
Some of the fog is clearing
It looks like some of the hype fog around Linux, and specifically desktop Linux, is clearing. ComputerWorld reporter Sharon Machlis recently published a series of articles on her experiences with various desktop Linux distributions, and let’s just say that she was less than complimentary.
It’s about time that there were more clear headed discussion of the Linux vs. Windows issue. Evangelizing (from both camps) is all well and good, but at some time, the guys that are supposed to be keeping us honest need to speak up. Frankly, in the past, there was way too much MS bashing and Linux rah rah-ing for my taste.
Way to go, Sharon, and whomever at ComputerWorld assigned this to you.
9/1/2005 10:44:12 AM (Pacific Daylight Time, UTC-07:00)
development | general

Wednesday, August 24, 2005
Make one person responsible...
On Signal vs. Noise, Jason Fried talks about making one person responsible for a single task. Amen to that. I’d never really considered just how important this is, until I was put in the same sort of situation recently. My first impression of this was to appreciate how empowering it felt.However, I think the more important point is the one that Jason makes: when you assign a single person to a task, it gets done.
By the way, 37 Signals has some products that look pretty compelling. Anyone in need of decent project management software (MS Project,
) should give theirs a try. As it is, I’m going to give their Ta-da list a ride around the block…
8/24/2005 9:07:08 AM (Pacific Daylight Time, UTC-07:00)
development

Tuesday, August 16, 2005
RSS vs. Web Feeds
There seems to be a lot of talk lately around the name for this syndication thing that we’re all using. From what I’m hearing, various people are upset that Microsoft is thinking of using the term “Web Feeds” instead of “RSS” to refer to their syndication support.
At first, I agreed. Why play with names? Why gratuitously use a different name than the industry uses? Then, as I was reading Asa Dotzler’s comments on the issue, I got to thinking about it: RSS is a syndication protocol. Atom is a syndication protocol. These guys are different animals, even though they provide essentially the same service. And just what is this service? Well, I guess “Web Feeds” is as good a name as any.
I wonder how the Atom folks feel about this controversy. After all, I’m sure they wouldn’t like the general service to be called RSS…
By the way, I love the RSS button from Dave Winer's post. I just might change my xml icons to use this instead
.
8/16/2005 9:37:02 AM (Pacific Daylight Time, UTC-07:00)
development | general

Friday, August 05, 2005

Wednesday, August 03, 2005