# Friday, 17 October 2003

I’m sure everyone knew about this but me, but I was impressed.  I needed to attach some extra data to an XML Schema document so that it would be available to a code generator I’m writing.  You can put whatever extra attributes you want in an XSD document (which is how MS does it with SQLXML, for example) and no one will be bothered. 

However, I needed some full on elements to express the extra data I needed to carry. Luckily for me, the clever people at the W3C thought of this, and gave us the annotation element.  I knew you could put documentation inside an annotation element, but I’d never noticed the appInfo element before. 

Inside an appInfo, you can put whatever you want to, and attach it to just about any place in your schema file.  Very cool. 

 

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:my="myNamespace" elementFormDefault="qualified" attributeFormDefault="unqualified">

     <xs:element name="root element">

          <xs:annotation>

               <xs:documentation>some documentation</xs:documentation>

               <xs:appinfo>

                    <my:whatever>some app specific data</my:whatever>

               </xs:appinfo>

          </xs:annotation>

     </xs:element>

</xs:schema>

 

On a completely different note, I’m amazed to see that WordML actually serializes the little red “you misspelled something again” bar into the XML.  Just in case you want to style it into a mistake somewhere else?

Work | XML
Friday, 17 October 2003 15:30:06 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, 16 October 2003

It’s been a very busy week in which I think I’ve written more code faster than I have in months.  All in all a pretty productive time for me.  Key learning for this week include:

 

  • CodeSmith is a pretty groovy tool, although I wish the documentation was better, particularly for writing extensions.  On the other hand, it does most of what I need it to, and free’s a great price J.  There’s so much more you can do besides strongly typed collections.
  • Custom attributes have got to be one of the coolest features of .NET.  The ability to carry around arbitrary, strongly typed data about your classes that you can ask for whenever you need it is such an amazing boon that I don’t think I can say enough about it.  
  • NAntPad is a very promising step in the right direction.  Still a bit rough around the edges, but I anxiously await further versions.  Much easier than maintaining NAnt build files by hand.
  • There aren’t enough hours in the day.

 

I haven’t been blogging much lately, largely due to the ongoing weirdness of my current employment situation, but I’m trying to be more conscientious about it.  

Update: NAntPad .4 is much improved.  I'm starting to use it more earnestly.

 

Thursday, 16 October 2003 18:37:46 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, 10 October 2003

On Wednesday I started doing some contract work at Corillian Corp.  Not only am I doing some really interesting work, but I'm working with my friend Scott Hanselman.  I shared an office with him for a couple of years at STEP Technolgy, and I'd forgotten how much fun it is.  Scott is one of the quickest thinking guys I've ever known, not to mention an actual standup comic :).  It turns out that I know a bunch of people at Corillian, including some people I worked with at Intel once upon a time, and the three best project managers I've ever had the pleasure to work with.  Should be a good time.

Friday, 10 October 2003 21:25:29 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Tuesday, 07 October 2003

I finally got around to moving this blog to dasBlog.  Now I'll have a lot more control over how things look, as well as features, etc.  Right now it's using one of the default templates, so there will probably be some cosmetic changes as I get time to mess with templates.  All of the old permalinks should still work, although the RSS has moved to http://www.cauldwell.net/patrick/blog/SyndicationService.asmx/GetRss

 

Home | Work
Tuesday, 07 October 2003 18:26:45 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, 01 October 2003

In one of his posts a while back, Scott mentioned that he was using Mozilla Firebird, so I decided to check it out.  Wow.  It completely rocks.  Page rendering is WAY faster than in IE, and I have yet to see any of the major rendering problems that I recall from previous experiments with Mozilla/Netscrape.  I’ve only seen a couple of minor issues regarding table layout (and the fact that Windows Update won’t load at all).  I set it as my default browser, and haven’t had any reason to resort back to IE (except for Windows Update).  

Possibly the best part is there extension architecture.  There are extensions for all kinds of things, including a Google bar, an Amazon browser, and a great download manager that handles multiple concurrent downloads without popping up extra windows.   

There are only two things which still vex me… 1) I can’t for the life of me figure out any way of replicating IE’s “never reuse browser windows” feature.  I’m so used to it that I keep clobbering stuff I’m not done with by clicking on links.  2) I miss my context menu for “Subscribe in NewsGator” when right clicking on links.  (I think I may be able to come up with a solution, just haven’t had time yet.)

Wednesday, 01 October 2003 14:58:41 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [2]  | 
# Thursday, 25 September 2003

Scott posted a great rant on what it means to be a GenX geek (I’m one too, although I’ve at least seen a punch card at the Smithsonian J ).  I was inspired to check out the geek test, and I only scored a 45%.  I was sure that those SCA questions would put me over the top.  Sigh.  I guess I came to it late.  I’ve always been a geek, but I didn’t really come to grips with that fact (or dedicate my life to it) until I was in college.  

And just in case anyone was wondering, I’m an INTJ, which didn’t really come as a surprise to me.

Thursday, 25 September 2003 17:09:11 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 

Clemens Vasters posted a great article on what’s really behind a Service Oriented Architecture from the implementation standpoint.  He makes some very astute points about why schemas are important for expressing service contracts, and what the implications of SOA are on implementing scalable solutions.  Having wrestled a bit with this myself, I agree with his conclusion that old-school OOD is not the way to approach this particular problem.  Also, with regards to the stateful vs. stateless issue, I really like his take:

Ruling out that state is implicitly shared between services (in memory or on disk) is a direct consequence from this and also serves the scalability purpose, because it further eliminates co-location assumptions about services and enables clustering. Note that this isn’t about “stateless” or “stateful”. Everything is stateful while it runs.

Thursday, 25 September 2003 13:25:27 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Tuesday, 23 September 2003

I’ve been a big fan of XMLSpy for a long time.  It’s one the best XML tools out there, and I’d have to say the very best schema editor.  Now with their new version 2004, you can integrate XMLSpy directly into VS.NET, and use all the functionality of XMLSpy without having to leave everyone’s favorite development environment.  Very cool stuff. I much prefer the schema editor in XMLSpy to the database-centric one that ships with VS.NET, so it’s nice not to have to launch yet another app to get at it.  

Tuesday, 23 September 2003 13:43:08 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 
# Monday, 15 September 2003

I love appropriate applications of technology, and I just came across a really cool one.  Our public transit system here in Portland (Hillsboro) OR now has up to the minute bus tracking information available for cell phones (trimet.org/wap) and wirelessly connected PDAs (trimet.org/pda).  You put in what route and which stop you are at, and it will tell you when the next bus is coming.  How cool is that?!  As someone who both has a WAP phone and commutes to work on public transit (since I can’t afford one of the new 2004 Prius), I’m pretty excited.  This is possibly even better than WAP/PDA accessible movie times, which was formerly my favorite application of wireless technology.  Since they are pretty static, I actually get my movie times through AvantGo on my PocketPC (a ViewSonic v37).  

Monday, 15 September 2003 18:32:05 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  | 

If you haven’t already, check out the PDC episode of Red vs. Blue.  Talk about an appropriate use of technology… 

Monday, 15 September 2003 13:18:29 (Pacific Daylight Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |