<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Thu, 18 Mar 2004 00:28:44 GMT -->
<rss version="2.0">
	<channel>
		<title>Gordon Weakliem&apos;s Weblog</title>
		<link>http://radio.weblogs.com/0106046/</link>
		<description></description>
		<language>en-us</language>
		<copyright>Copyright 2004 Gordon Weakliem</copyright>
		<lastBuildDate>Thu, 18 Mar 2004 00:28:44 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>gweakliem@yahoo.com</managingEditor>
		<webMaster>gweakliem@yahoo.com</webMaster>
		<skipHours>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>0</hour>
			<hour>23</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>8</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>Moving Day</title>
			<link>http://radio.weblogs.com/0106046/2003/10/12.html#a328</link>
			<description>&lt;P&gt;This &lt;strike&gt;will very likely be&lt;/strike&gt; is the last post at this weblog.&amp;nbsp; After some delay, &lt;A href=&quot;http://www.eighty-twenty.net/blog/weblog/a1004.html&quot;&gt;all the parts are in place&lt;/A&gt;, and I have a &lt;A href=&quot;http://www.eighty-twenty.net/blog&quot;&gt;new weblog&lt;/A&gt; at &lt;A href=&quot;http://www.eighty-twenty.net/blog&quot;&gt;www.eighty-twenty.net/blog&lt;/A&gt;, and&amp;nbsp;&lt;strike&gt;I expect that&lt;/strike&gt; all my future posting will take place there.&amp;nbsp; I&apos;m attempting to &lt;A href=&quot;http://radio.userland.com/howtoRedirectRss&quot;&gt;redirect the RSS feed&lt;/A&gt;, but I&apos;m actually not sure how many aggregators support this, and AFAIK, there&apos;s no way to get Userland&apos;s servers to do a proper 301, so we&apos;ll see.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update: &lt;/EM&gt;It looks like none of the 3 aggregators I tried (NewsGator, RssBandit, and BottomFeeder) understand the &lt;A href=&quot;http://radio.userland.com/howtoRedirectRss&quot;&gt;XML-level RSS redirect&lt;/A&gt;, so you&apos;ll probably need to update your feed manually.&amp;nbsp; I&apos;ll do a redirect later if I find out a way to do it more portably.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106046/2003/10/12.html#a328</guid>
			<pubDate>Mon, 13 Oct 2003 04:08:59 GMT</pubDate>
			</item>
		<item>
			<title>Intuit and the lost art of personal finance programs</title>
			<link>http://radio.weblogs.com/0106046/2003/10/09.html#a327</link>
			<description>&lt;a href=&quot;http://www.sauria.com/blog/computers/625&quot;&gt;Ted Leung&lt;/a&gt; relates his frustration with Intuit.  Intuit lost me long before the DRM thing, by acting like a bunch of used car salesmen.  These days, you install Quicken and get 10 icons on your desktop and spend weeks turning off the screens asking if you want to give more money to Intuit.  I recently found a &lt;a href=&quot;http://pycheckbook.sourceforge.net/&quot;&gt;Python based checkbook program&lt;/a&gt;, as well as &lt;a href=&quot;http://cbb.sourceforge.net/&quot;&gt;CBB&lt;/a&gt;, written in Perl.  My demands aren&apos;t much more than something that will let me balance my checkbook and keep track of my mortgage, and maybe enable tracking transfers between accounts (a big maybe, I think I could live without).  As it is, I&apos;ve been running with the same copy of Quicken since 1996, but recently decided to download my Visa statement in Quicken format.  Unfortunately, my version can&apos;t read it correctly, and judging from the state of the imported data, it looks like Intuit was still using 2 digit years back in 1996; I suppose a Y2K bug gives people a reason to upgrade.  Looking at the reviews on Amazon, the latest &lt;a href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/B0000A9AIT&quot;&gt;Quicken sounds like a disaster&lt;/a&gt;, and &lt;a href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/B00009L1HS&quot;&gt;MS Money doesn&apos;t score&lt;/a&gt; &lt;a href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/B00009L1HM&quot;&gt;too much better&lt;/a&gt;.  Come on, personal finance programs have been widely available for what, twenty years?  I don&apos;t think I&apos;m being unfair by saying that an electronic checkbook is pretty much a solved problem.  I&apos;m not shelling out $30 - $40 for a 3 star (or less) checkbook program, at least not until I&apos;ve explored the alternatives.</description>
			<guid>http://radio.weblogs.com/0106046/2003/10/09.html#a327</guid>
			<pubDate>Thu, 09 Oct 2003 22:57:01 GMT</pubDate>
			</item>
		<item>
			<title>Python in DrScheme</title>
			<link>http://radio.weblogs.com/0106046/2003/10/03.html#a326</link>
			<description>Matthias Felleisen announced that the latest CVS for DrScheme allows you to write &lt;a href=&quot;http://www.ccs.neu.edu/home/matthias/Tmp/spy.jpg&quot;&gt;Python in DrScheme&lt;/a&gt;.  Nifty.  I&apos;ve noticed that DrScheme has a Java view as well - with Python support, it supports all the languages that I write in Eclipse except Ruby.</description>
			<guid>http://radio.weblogs.com/0106046/2003/10/03.html#a326</guid>
			<pubDate>Sat, 04 Oct 2003 00:27:55 GMT</pubDate>
			<category>Lisp</category>
			</item>
		<item>
			<title>A quick primer on SOAP</title>
			<link>http://radio.weblogs.com/0106046/2003/10/03.html#a325</link>
			<description>&lt;a href=&quot;http://www.decafbad.com/blog/tech/a_quick_irc_soap_primer.html&quot;&gt;Les Orchard recounts&lt;/a&gt; Sam Ruby&apos;s quick primer on SOAP.  It&apos;s pretty aggravating that SOAP toolkits never take Sam&apos;s approach.  A number of approaches that I see that I don&apos;t like: &lt;ul&gt; &lt;li&gt;Hiding the transport under some sort of &quot;service&quot; object.  &lt;a href=&quot;http://rrr.jin.gr.jp/rwiki?cmd=view;name=soap4r&quot;&gt;SOAP4R&lt;/a&gt; did this, last time I looked.  It makes it a pain to configure the transport - I couldn&apos;t figure out how to put HTTP credentials.  Why not just have the client create the transport and have the SOAP envelope serialize itself?&lt;/li&gt; &lt;li&gt;Hiding the raw XML.  SOAP should require nothing more than an XML parser (and a transport library, usually HTTP).  That even beats XML-RPC, where you have to have a library that knows the serialization rules.&lt;/li&gt; &lt;li&gt;Not supporting Document/Literal.  Doc/Literal is so much easier than RPC/Encoded, yet everyone does RPC/Encoded.  Allegro recently released a &lt;a href=&quot;http://franz.com/support/documentation/6.2/doc/soap.htm&quot;&gt;Lisp SOAP client&lt;/a&gt;, but it doesn&apos;t do Doc/Literal (yet).  If I were writing a SOAP library, I&apos;d forget about RPC/Encoded.&lt;/li&gt; &lt;/ul&gt; Interestingly, we have a customer who&apos;s essentially doing Sam&apos;s approach.  His implementation language is &lt;a href=&quot;http://directory.google.com/Top/Computers/Programming/Languages/Mumps/&quot; title=&quot;Massachusetts General Hospital Utility Multi-Programming System&quot;&gt;MUMPS&lt;/a&gt;.  To each their own.</description>
			<guid>http://radio.weblogs.com/0106046/2003/10/03.html#a325</guid>
			<pubDate>Fri, 03 Oct 2003 21:39:32 GMT</pubDate>
			<category>XML</category>
			</item>
		<item>
			<title>A new Lisp Book</title>
			<link>http://radio.weblogs.com/0106046/2003/10/03.html#a324</link>
			<description>&lt;A href=&quot;http://lemonodor.com/archives/000569.html&quot;&gt;lemonodor&lt;/A&gt; pointed at &lt;A href=&quot;http://www.gigamonkeys.com/book/&quot;&gt;drafts of Peter Siebel&apos;s new book Lisp book&lt;/A&gt;, to be &lt;A href=&quot;http://www.apress.com/book/bookDisplay.html?bID#7&quot;&gt;published by Apress&lt;/A&gt;. The other day, I added an &lt;A href=&quot;http://xml.amazon.com/onca/xml3?t=webservices-20&amp;amp;dev-t=D37Z8BH266HXU9&amp;AuthorSearch=Peter%20Siebel&amp;mode=books&amp;bcm=books&amp;type=lite&amp;ct=text/xml&amp;sort=+salesrank&amp;f=http://xml.amazon.com/xsl/xml-rss091.xsl&quot;&gt;RSS feed in NewsGator&lt;/A&gt;, hoping that I&apos;ll get a notification when Peter&apos;s book gets published. You could get the &lt;A href=&quot;http://xml.amazon.com/onca/xml3?t=webservices-20&amp;dev-t=D37Z8BH266HXU9&amp;AuthorSearch=Peter%20Siebel&amp;mode=books&amp;bcm=books&amp;type=lite&amp;ct=text/xml&amp;sort=+salesrank&amp;f=http://www.pcisys.net/~gweakliem/xml-atom.xsl&quot;&gt;same thing in Atom format&lt;/A&gt;, as well. I also created a feed to let me know when &lt;A href=&quot;http://xml.amazon.com/onca/xml3?t=webservices-20&amp;dev-t=D37Z8BH266HXU9&amp;KeywordSearch=Lisp&amp;mode=books&amp;bcm=books&amp;type=lite&amp;ct=text/xml&amp;sort=+daterank&amp;f=http://www.pcisys.net/~gweakliem/xml-atom.xsl&quot;&gt;new Lisp books are released&lt;/A&gt; (&lt;A href=&quot;http://xml.amazon.com/onca/xml3?t=webservices-20&amp;dev-t=D37Z8BH266HXU9&amp;KeywordSearch=Lisp&amp;mode=books&amp;bcm=books&amp;type=lite&amp;ct=text/xml&amp;sort=+daterank&amp;f=http://xml.amazon.com/xsl/xml-rss091.xsl&quot;&gt;RSS 0.91&lt;/A&gt;).</description>
			<guid>http://radio.weblogs.com/0106046/2003/10/03.html#a324</guid>
			<pubDate>Fri, 03 Oct 2003 21:24:22 GMT</pubDate>
			<category>Lisp</category>
			</item>
		<item>
			<title>Moving Away From XSLT</title>
			<link>http://radio.weblogs.com/0106046/2003/10/03.html#a322</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://martinfowler.com/bliki/MovingAwayFromXslt.html&quot;&gt;Martin Fowler is moving away from XSLT&lt;/a&gt;.  I agree completely with all of his criticisms.  For a great example, look at the abomination I had to go through to &lt;a href=&quot;http://www.pcisys.net/~gweakliem/xml-atom.xsl&quot;&gt;get ISO-8601 dates into an Atom feed&lt;/a&gt;.  The assumption is that the release date for a book can serve as both the issued and modified time.  I do have decent date information coming from Amazon, but it&apos;s in a format like &amp;quot;3 October, 2003&amp;quot;, and the day of the month is omitted for unreleased items.  It&apos;s not too hard to parse this: if the first characters are numeric, they&apos;re the day, otherwise default to some number (either the 1st or last of the month, I&apos;m not worried about accuracy).  Alternately, you can split the string on spaces: if you get 3 fields, the first is the day.  The second part is a simple table lookup: associate numeric strings to month names.  The year is pretty easy, it&apos;s the part following the comma in the string; for the rest, just make up a time (book release dates aren&apos;t accurate past a day anyway).  Anyway, all of this is hard in XSLT; in Python or Ruby string handling is easy and dictionary lookup is easy.  The advantage of XSLT is the same as Java&apos;s in the sphere of general programming languages: it runs almost everywhere.  XSLT&apos;s disadvantage is that it&apos;s a transformation language, and a transformation on XML Elements and Attributes, principally; XSLT falls apart when your transformation needs to work on text nodes.  There are XSLT extensions that would improve some of this, but I&apos;m dependent on Amazon in this case for my processor, and in any case, the use of extensions defeats the platform independence XSLT should give you.  If you&apos;re going to do that, you might as well use a general purpose language.&lt;/p&gt; &lt;p&gt;That said, Martin&apos;s approach looks great.  He borrows XSLT&apos;s rules based approach to handling nodes, but retains the processing power of Ruby.  I believe that XSLT&apos;s real power is in the XPath matching and querying coupled with the rules based approach.  It&apos;s just a matter of coming up with the framework; you could have the same in Ruby as well.  I&apos;ve been working with &lt;a href=&quot;http://ssax.sourceforge.net&quot;&gt;SXML&lt;/a&gt; lately, and it&apos;s based on the same theory: once you create a framework for pattern matching and querying, you have XSLT, but without the limitations.&lt;/p&gt;</description>
			<guid>http://radio.weblogs.com/0106046/2003/10/03.html#a322</guid>
			<pubDate>Fri, 03 Oct 2003 19:53:29 GMT</pubDate>
			<category>XML</category>
			</item>
		<item>
			<title>Never Fear Sir, For I Have a Cunning Plan...</title>
			<link>http://radio.weblogs.com/0106046/2003/09/26.html#a321</link>
			<description>&lt;p&gt;I&apos;ve posted 8 times in the past month, and 2 of my posts have contained links with a query string.  Radio seems to have developed a charming habit of trashing the equal sign in a query string. &lt;ul&gt; &lt;li&gt;This entry contained a garbage character in the query string, which &lt;a href=&quot;http://radio.weblogs.com/0106046/2003/09/15.html#a317&quot;&gt;which got replaced with some other garbage&lt;/a&gt; when I tried to edit it over email.  At least this garbage is valid XML. &lt;li&gt;The previous post that had a query string got trashed, and then Radio &lt;a href=&quot;http://radio.weblogs.com/0106046/2003/08/28.html#a315&quot;&gt;escaped my markup when I tried to fix it&lt;/a&gt; (that could have been my fault, trying to fix the post hastily).  That post is staying the way it is, I&apos;ve tried fixing it 3 times now.&lt;/li&gt; &lt;/ul&gt; Radio seems to have a general problem with escaping characters and creating well-formed XML in general.  I&apos;m about ready to pull the plug on this and try something else.  &lt;a href=&quot;http://cornerhost.com/&quot;&gt;Cornerhost&lt;/a&gt; and &lt;a href=&quot;http://www.thoughtlocker.net/&quot;&gt;Thoughtlocker&lt;/a&gt; seem to be reliable and offer most of what I want (&lt;acronym title=&quot;Linux Apache MySQL Perl/Python/PHP&quot;&gt;LAMP&lt;/a&gt;, on a reasonable budget), though Thoughtlocker seems to give a bit more for the money and also provides Ruby.  &lt;/p&gt; &lt;p&gt;Then there&apos;s this other wild idea.  I&apos;ve been working with Scheme and &lt;a href=&quot;http://ssax.sourceforge.net&quot;&gt;SSAX&lt;/a&gt; lately and I&apos;m really intrigued.  &lt;a href=&quot;http://www.plt-scheme.org&quot;&gt;PLT&lt;/a&gt; is a nice, if idiosyncratic, IDE, and &lt;a href=&quot;http://sisc.sourceforge.net&quot;&gt;SISC&lt;/a&gt; could be made to run in a Java Servlet.  One other possibility would be to use SSAX to generate xHTML fragments and then use something like Bloxsom on the server side to manage the static files.&lt;/p&gt;</description>
			<guid>http://radio.weblogs.com/0106046/2003/09/26.html#a321</guid>
			<pubDate>Fri, 26 Sep 2003 19:14:23 GMT</pubDate>
			</item>
		<item>
			<title>Struct or Class?</title>
			<link>http://radio.weblogs.com/0106046/2003/09/24.html#a320</link>
			<description>&lt;P&gt;I&apos;ve been reviewing a draft of a book on C#, and while reading the author&apos;s discussion of &lt;CODE&gt;struct&lt;/CODE&gt;, I disagreed with the author&apos;s criteria for determining whether to declare a class as a &lt;CODE&gt;class&lt;/CODE&gt; or a &lt;CODE&gt;struct&lt;/CODE&gt;, which came down to a decision over whether you&apos;ll ever&amp;nbsp;want to subclass the&amp;nbsp;type and whether you&apos;ll be passing the type as a parameter or returning them from a method.&amp;nbsp; For the first point, I&apos;m of the opinion that it&apos;s really hard to guess whether a class will ever be subclassed, and in any case, I&apos;m not a big fan of sealed classes, so class would win in this case.&amp;nbsp; Second, I understand the point that you don&amp;#146;t want to kill the stack by passing around large structs, so maybe you don&apos;t want to declare a struct with 100 fields, but lots of structs get passed around the FCL &amp;#150; System.Drawing.Point and&amp;nbsp;System.Drawing.Rectangle, are used extensively in System.Windows.Forms, for instance.&amp;nbsp; Maybe the choice should be class by default, and to use struct as an optimization; at least I&amp;#146;m pretty sure that&amp;#146;s how the FCL authors made the distinction. I don&amp;#146;t know how I&amp;#146;d determine that optimization was necessary; analyze the heap activity maybe? Isn&apos;t this a case of &lt;A href=&quot;http://www.neward.net/ted/weblog/index.jsp?date=20030413#1050273570331&quot;&gt;trying to outguess the GC&lt;/A&gt;?&amp;nbsp;&amp;nbsp; In any case, you can get around the copying problem for method parameters by declaring them as ref.&amp;nbsp; I think that most programmers will encounter Value Types by creating their own enums; in 2.5 years of .NET programming, can&apos;t remember ever declaring a struct.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0106046/2003/09/24.html#a320</guid>
			<pubDate>Wed, 24 Sep 2003 22:20:56 GMT</pubDate>
			<category>.Net</category>
			</item>
		<item>
			<title>Remember This</title>
			<link>http://radio.weblogs.com/0106046/2003/09/18.html#a319</link>
			<description>&lt;a href=&quot;http://www.joelonsoftware.com/items/2003/09/19.html&quot;&gt;Remember this&lt;/a&gt; the next time someone compares software construction to building a house: &quot;Well, what I&apos;ve learned from my first large construction project is that this is hogwash. The building industry doesn&apos;t know how to do anything on schedule or on budget, either.&quot;</description>
			<guid>http://radio.weblogs.com/0106046/2003/09/18.html#a319</guid>
			<pubDate>Fri, 19 Sep 2003 04:47:13 GMT</pubDate>
			</item>
		<item>
			<title>Balancing Developers and Testers</title>
			<link>http://radio.weblogs.com/0106046/2003/09/18.html#a318</link>
			<description>Joshua Allen has &lt;a href=&quot;http://www.netcrucible.com/blog/2003/09/10.html#a353&quot;&gt;an interesting post on the changing balance between development and testing resources&lt;/a&gt;, at least at Microsoft.  While the general claim that the advent of managed code has made developers so much more productive that the testers are now overwhelmed is pretty significant, the really interesting quote is in the third paragraph: &quot;there is always the possibility that the ever-increasing test expenditures will not coincide with a reduction in the number or severity of high-profile security and quality incidents&quot;.  To me, that suggests that the skill set for testers is changing.  Now I understand that it&apos;s typical for MS to hire more development oriented types as testers, but in every company I&apos;ve worked for, testers tend not to have significant programming experience and are on the whole less technical than the programmers.  So testers tend to concentrace on UI and &lt;acronym title=&quot;human computer interaction&quot;&gt;HCI&lt;/acronym&gt; types of tasks and not so much on security analysis.  I think that testing for security would require a technical and likely a programming background, so I would expect that companies that are concerned about security would not simply reduce programming headcount, but would end up moving programming resources from development to testing.  In the end, assuming that companies manage their people efficiently, I expect that the increased programmer productivity would be a wash, rather than an opportunity to reduce headcount.</description>
			<guid>http://radio.weblogs.com/0106046/2003/09/18.html#a318</guid>
			<pubDate>Fri, 19 Sep 2003 04:47:11 GMT</pubDate>
			</item>
		<item>
			<title>Building airplanes</title>
			<link>http://radio.weblogs.com/0106046/2003/09/15.html#a317</link>
			<description>&lt;p&gt;Over at &lt;a href=&quot;http://www.makeoutcity.com/2003/09/13#computer&quot;&gt;je apostrophe&lt;/a&gt;, there&apos;s a quote from one of the early conferences on software engineering: &quot;We build systems like the Wright brothers built airplanes-build the whole thing, push it off the cliff, let it crash, and start over again.&quot;  I&apos;ve been reading &lt;a href=&quot;http://allconsuming.net/item.cgi?isbn&amp;#132;856883&quot;&gt;To Conquer the Air: The Wright Brothers and the Great Race for Flight&lt;/a&gt;.  The book (at least the early chapters) is basically a contrast between the efforts of Samuel Langley at the Smithsonian Instutition and the Wright Brothers.  Langley&apos;s method was in fact much like what the quote describes: build the whole plane, launch it, and pick up the pieces.  The Wrights took a much different approach - these days, we might call it an &quot;Agile&quot; process.  One really salient point was that the Wrights insisted on designing an ideal wing by doing actual, frequent experiments with a glider and a human pilot, while Langley concentrated on producing a powered craft but flying it unmanned.  Langley&apos;s approach became mired in the complexity of balancing weight vs. power - you make the engine more powerful, it adds weight, so you have to add lift, which changes the flying characteristics of the plane.  Langley&apos;s approach also required that the design decisions be made up front, and frequently he would get only one test flight from a design, because the aircraft was destroyed on landing.  The Wrights invented a wind tunnel so they could observe the performance of small prototype wings and make an educated choice of the best performing wing, while all their contemporaries were operating off of untested assertions.  The Wrights dealt with the complexity of creating an aircraft that would be controllable in the air, and then dealt with the problem of adding an engine to a craft that was known to fly well.  Meanwhile, Langley fixated on the problem of powering the airplane, but never was able to produce one that had good flying characteristics.  Langley assembled a large team of engineers and workmen and was constantly running out of money and seeking new sources of funding, while the Wrights worked alone and were mostly self-funded.  I&apos;m really enjoying this book because I see a lessons in how the Wrights approached an unexplored problem domain.  Boeing and Airbus don&apos;t build airplanes like the Wrights, because they have a hundred years of experience to draw from, and because their aims are markedly different.  The Wrights just wanted to make something fly, they weren&apos;t building a 777.  It&apos;s also very interesting that the Wrights didn&apos;t patent their invention, partly because they believed that the first person to fly wouldn&apos;t be the ones to become rich off of the achievement.  It seems that they were correct: aviation got its first practical use during World War I and commercial aviation didn&apos;t get started until the 1920s and 30s, after their patent would have expired, assuming that they patented it in 1903.  &lt;/p&gt;</description>
			<guid>http://radio.weblogs.com/0106046/2003/09/15.html#a317</guid>
			<pubDate>Mon, 15 Sep 2003 23:44:24 GMT</pubDate>
			</item>
		</channel>
	</rss>
