I’d have to agree with Clemens
that one of the coolest parts of .Net is custom attributes. I’m
constantly amazed at how much you can achieve through the judicious use of
attributes. Best of all, since they are much like attributes (should be)
in XML, you can carry them over from one to the other. For example, you
can add some extra attributes to an XML Schema document in the namespace of
your choice, then (if you want to write your own xsd.exe) you can carry those
attributes forward into your .Net classes. Based on those custom
attributes, you can apply aspects to your
objects at runtime, and basically make the world a better place.

When all that work is finished, you can influence the
behavior of your data objects at runtime just be tweaking the schema that
defines them. At the same time, since you’re starting with schema,
you get lots of fun things for free, like XmlSerializer and other bits of
.Netty goodness.

I’m a bit to excited to go into all the details right
now, but suffice it to say the prospects for code generation, attributes and
aspects are pretty amazing. Once we get the work out of the way, the rest
is just business logic. More business, less work.

Say it as a mantra: “more business, less work
more business, less work…..”.

This week, Corillian
(my employer) sponsored a programming contest for employees. What I
thought was one of the coolest parts was that non-technical people were
encouraged to join teams (of 2-4) to solve the programming problem by
contributing their problem solving skills.

Since the contest is over (although the results haven’t
been announced yet) I can let the cat out of the bag. It was a word
search. Given a dictionary of words, and a rectangular array of
characters, find all the words from the dictionary that exist in the puzzle, in
any direction.

It was a total blast. I was on a team with some folks
I know from STEP, Dr. Tom (a real live
doctor of computer science), and Darin (a hardcore ATL head) and Don (a QA
engineer). Much fun was had by all. I haven’t had such pure
geek fun in a long time. I woke up the next morning still thinking about
potential optimizations to our solution (which ended up being in C#). I
got to work to find email from Dr. Tom with some more suggestions.

I thought it was a really great idea to get people thinking
about hardcore programming problems, involve non-technical people, and just
have a lot of fun coding. I’ll be really interested to see all the solutions
after the judging is complete.

Kudos to Scott and
Chris for coming up with the problem and the reference implementation.

Unfortunately, I’ve yet to have the opportunity to
meet Rory in person, although he was
one of the brave souls who actually staid to listen to me
speak at the Applied XML Dev Con
this year. I’m hoping to catch up with him if I ever make it to one
of the Portland Nerd dinners.
That desire was fueled by the fact that, like Don,
I think his take on the
PDC is one of the funniest things I have every read. I mean ever.
In my life. Really.

Running a close second is his jubilation at being
mentioned on Don Box’s blog. Luckily I was already sitting down
when I read it.

As of
tomorrow, I’ll be starting a new adventure as an employee of Corillian Corporation. I’m
looking forward to new challenges, and learning all about the world of online
financial services. There are some very smart people working there,
including Scott Hanselman, and many
other people I worked with back in the day at STEP
Technology.

So even if
I didn’t get to go to the PDC (I’m still moping), at least I’ll
get to do some really cool coding.

Hooray for
declarative programming! Let’s do more business and less
work. Whether it’s the BizTalk server orchestration designer (the
new Jupiter one TOTALLY rocks!) or XSLT, or possibly best of all, Avalon, it
just makes sense.

As Scott
mentions, I’ve done some declarative UI with SVG,
and I’m a big fan of XForms,
if and when we ever see a mainstream implementation. But I’d have
to agree that Avalon
is sheer genius. There’s no reason why to write the code for most
of the UI we do now, and since it sounds like the same XAML will work for both
the web and for Longhorn client apps, better still.

I love the
new features in dasBlog 1.4. The extra
statistics are very handy, and it couldn’t be much easier to use. Best
of all, between the source and all the samples, it was a snap for me to migrate
my existing content. If I were in LA :’( I’d thank Clemens
with beer!

Only days
ago I mused that it would be nice to have more control over the way the
XmlSerializer works. Sure enough, according to Doug Purdy via Christoph Schittko
we’ll get access to IXmlSerializable, and can write our own XML to our
hearts content.

While I
couldn’t go to PDC this year
at least I can get in on the next best thing. Watching the stuff that’s
coming up on PDCBloggers is pretty
amazing. You get the blow by blow in living color (or at least text). I love
watching what’s coming up on Scott’s
blog. He’s posting from the keynote via his Blackberry, so as Jim Alchin
says it, it’s coming up on his blog. Gotta love technology.

I’ve
used TortoiseCVS for a while, and
always considered it a nice to have, but not really the best way to deal with a
CVS server. Now that I’m running the latest (1.4.5) I think differently.

In the past
I’ve relied on WinCVS to do things
like recursively find out all the files I’ve modified, what revision my
files are at, etc, and pretty much used Tortoise just for simple commits and
adds. With 1.4.5, Tortoise will recursively find all the modified files,
categorize them as add, deletes and modifies, and allow me to commit any or all
of them at the same time. Very nice, and much easier than in WinCVS.

Also, the
explorer integration has gone that one step farther, and you can add CVS status
and CVS revision columns to any explorer view. Also much easier. I’ve
pretty much abandoned WinCVS in favor or Tortoise, which is nice, since it
saves one more application launch every time I want to deal with versioned
files.

It doesn’t
take huge changes in an application to make our lives better.

Granted,
there are some really great new features in Outlook 2003, and I’m totally
diggin’ them, but every time I can reboot my machine without facing the
dreaded “Please close all Office applications..” dialog my heart is
filled with a simple and pure joy.