<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Thu, 25 Mar 2004 21:52:53 GMT -->
<rss version="2.0">
	<channel>
		<title>Tom Pierce: Programming</title>
		<link>http://radio.weblogs.com/0116883/categories/programming/</link>
		<description>Items related to programming and programming languages.</description>
		<copyright>Copyright 2004 Tom Pierce</copyright>
		<lastBuildDate>Thu, 25 Mar 2004 21:52:53 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>tpierce@navigatorsystems.com</managingEditor>
		<webMaster>tpierce@navigatorsystems.com</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>0</hour>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>23</hour>
			<hour>5</hour>
			<hour>18</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>VisiBone&apos;s Online Color Lab</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/25.html#a668</link>
			<description>I&apos;m sure that most people who are web savvy developers have experienced the greatness&amp;nbsp;that is&amp;nbsp;&lt;A href=&quot;http://www.visibone.com/colorlab/&quot;&gt;VisiBone&apos;s online color lab&lt;/A&gt;.&amp;nbsp; Not being particularly front-end studly, this is new to me.&amp;nbsp; I like to be able to pick the complementary colors by looking at the pretty hex wheel thingy.&amp;nbsp; Mmmm...&amp;nbsp; colors.</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/25.html#a668</guid>
			<pubDate>Thu, 25 Mar 2004 21:52:52 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=668&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F25.html%23a668</comments>
			</item>
		<item>
			<title>Mozilla Rhino saves my sanity</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/25.html#a667</link>
			<description>&lt;P&gt;Ever had to write alot of JavaScript?&amp;nbsp; Better yet, ever inherit alot of JavaScript and not have time to fully understand what it does?&amp;nbsp; Best - have you ever inherited alot of JavaScript that you don&apos;t have time to understand and have to quickly figure out how to extend it?&amp;nbsp; Well, I HAVE!&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Currently I&apos;m on a project that is built on top of a framework that contains a non-trivial amount of JavaScript.&amp;nbsp; Normally this would be OK, but I have to actually extend the framework a little for the current project.&amp;nbsp; And, normally this would be OK (with another language) because you would have tools like compilers, debuggers, and friendly editors that make it easier.&amp;nbsp; However, we&apos;re talking about JavaScript.&lt;/P&gt;
&lt;P&gt;So, I had this problem.&amp;nbsp; I had edited a JS file used by my web app and I expected the goodness to just start flowing.&amp;nbsp; However, it seemed as if the browser (IE) was not even loading the file.&amp;nbsp; When I debugged (with Visual Studio Script Debugger), I could evaluate some expressions that lead me to believe none of the functions in that entire file had been defined.&amp;nbsp; Hmmm...&amp;nbsp; Why wasn&apos;t it reading the file - the declaration in the HTML looked correct.&amp;nbsp; What&apos;s going on?&lt;/P&gt;
&lt;P&gt;That&apos;s when I started thinking I had some sort of syntax problem with the JavaScript in the file.&amp;nbsp; But, I didn&apos;t know how in the world I could figure it out without a compiler or some kind of LINT tool.&amp;nbsp; Maybe if I could just find a parser and see if it puked on my file...&lt;/P&gt;
&lt;P&gt;Enter &lt;A href=&quot;http://www.mozilla.org/rhino/&quot;&gt;Rhino&lt;/A&gt;.&amp;nbsp; &lt;A href=&quot;http://www.mozilla.org/rhino/&quot;&gt;Rhino&lt;/A&gt;&amp;nbsp;is an open source implementation of JavaScript written in Java and is part of the Mozilla project.&amp;nbsp; Not only does Rhino contain a JavaScript parser and evaluation engine, but it also contains a JavaScript debugger and interactive shell.&amp;nbsp; YES!!!&lt;/P&gt;
&lt;P&gt;As soon as I tried to load my JS file into the debugger, Rhino told me I had a problem.&amp;nbsp; The error said I had a missing variable name.&amp;nbsp; I could tell from the error message that the #288 on the end meant that it was on line 288.&amp;nbsp; So, I went to line 288 in my JS file:&lt;/P&gt;
&lt;P&gt;var default = defaults[0].split(&quot;@@&quot;);&lt;/P&gt;
&lt;P&gt;Hmmm.&amp;nbsp;&amp;nbsp; That looks fine to me.&amp;nbsp; What&apos;s going on?&amp;nbsp; Have I used some kind of reserved word as a variable?&amp;nbsp; So, I switched over to the JavaScript Console window and entered default at the prompt.&amp;nbsp; Syntax error.&amp;nbsp; Well, what happens if I enter an undeclared variable like &quot;dude&quot;?&amp;nbsp; An error telling me &quot;dude&quot; is not defined.&amp;nbsp; AH HA!&amp;nbsp; So I have used some kind of reserved word.&lt;/P&gt;
&lt;P&gt;So, long story (not so) short, I edited the JS file and changed var default = ... to var defaultFilter = ...&amp;nbsp; and Rhino read it just fine.&amp;nbsp; YEEE HA!&amp;nbsp; Back to the web page.&amp;nbsp; I fire up my browser, point to my web page and BAM!&amp;nbsp; No more JavaScript error.&amp;nbsp; After at least 2 shameful hours of head scratching that left me on the brink looking over at insanity below, the Rhino pulled me back to safety.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you Rhino...&amp;nbsp; thank you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/25.html#a667</guid>
			<pubDate>Thu, 25 Mar 2004 14:14:56 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=667&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F25.html%23a667</comments>
			</item>
		<item>
			<title>Groovy : a powerful dynamically typed language for the JVM </title>
			<link>http://groovy.codehaus.org/</link>
			<description>&lt;P&gt;&quot;&lt;EM&gt;Groovy is a new agile dynamic language for the JVM combining lots of great features from languages like Python, Ruby and Smalltalk and making them available to the Java developers using a Java-like syntax.&lt;/EM&gt;&quot;&lt;/P&gt;
&lt;P&gt;Have you seen Groovy yet?&amp;nbsp; I hadn&apos;t.&amp;nbsp; It actually looks pretty cool.&amp;nbsp; I think it&apos;s a pretty darned good idea to make the Java platform available in a lighter weight language.&amp;nbsp; Not sold?&amp;nbsp; Just check out &lt;A href=&quot;http://groovy.codehaus.org/markup.html&quot;&gt;Groovy Markup&lt;/A&gt; and how easily you can create a little Swing window:&lt;/P&gt;
&lt;P&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=1&gt;&lt;a href=&quot;//&quot;&gt;//&lt;/a&gt; lets create a form with a label &amp;amp; text field &lt;SPAN class=java-keyword&gt;&lt;FONT color=#009900&gt;for&lt;/FONT&gt;&lt;/SPAN&gt; each property of a bean &lt;BR&gt;swing = &lt;SPAN class=java-keyword&gt;&lt;FONT color=#009900&gt;new&lt;/FONT&gt;&lt;/SPAN&gt; SwingBuilder()&lt;BR&gt;widget = swing.frame(title:&apos;My Frame&apos;) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; panel() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class=java-keyword&gt;&lt;FONT color=#009900&gt;for&lt;/FONT&gt;&lt;/SPAN&gt; (entry in someBean) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; label(text:entry.key)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textField(text:entry.value)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button(text:&apos;OK&apos;, actionPerformed:{ println(&lt;SPAN class=java-quote&gt;&lt;FONT color=#990000&gt;&quot;I&apos;ve been clicked with event ${it}&quot;&lt;/FONT&gt;&lt;/SPAN&gt;) })&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;widget.show()&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;I actually got to Groovy while reading an &lt;A href=&quot; http://www.linuxworld.com/story/44137.htm&quot;&gt;article&lt;/A&gt; on why open sourcing Java probably won&apos;t cause more developers to move to Java on the server.&amp;nbsp; The reason?&amp;nbsp; Because there are languages like Python.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/23.html#a666</guid>
			<pubDate>Tue, 23 Mar 2004 14:22:47 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=666&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F23.html%23a666</comments>
			</item>
		<item>
			<title>Check Syntax in Dr. Scheme</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/19.html#a664</link>
			<description>&lt;P&gt;Another cool thing about the Dr. Scheme programming environment is the &quot;Check Syntax&quot; feature.&amp;nbsp; After you have written some code in the editor pane, you can hit the &quot;Check Syntax&quot; button to make sure you&apos;ve written valid Scheme.&amp;nbsp; The syntax checker just checks, well, syntax.&amp;nbsp; It doesn&apos;t catch some of the runtime errors that can happen like calling functions that don&apos;t exist.&amp;nbsp; But that&apos;s not its purpose.&lt;/P&gt;
&lt;P&gt;The amazingly cool thing about using &quot;Check Syntax&quot; is what happens after your source has been checked (and I&apos;m guessing parsed).&amp;nbsp; After checking syntax, you can hover over any of the variable or function references in your code and arrows appear to show you where the other references to the symbol occur.&amp;nbsp; By right clicking on the arrows (control click on Mac) you get a context menu that gives you the ability to tack/untack the arrows and change the name of the symbol you&apos;re on.&amp;nbsp; Very very cool.&lt;/P&gt;
&lt;P&gt;Check out the shots...&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://127.0.0.1:5335/gems/arrows.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://127.0.0.1:5335/gems/arrows_with_dialog.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/19.html#a664</guid>
			<pubDate>Fri, 19 Mar 2004 14:31:09 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=664&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F19.html%23a664</comments>
			</item>
		<item>
			<title>Good JSTL Reference</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/16.html#a662</link>
			<description>I just stumbled upon a pretty good &lt;A href=&quot;http://java.sun.com/developer/technicalArticles/javaserverpages/faster/&quot;&gt;article on the JSTL&lt;/A&gt; (JavaServer Pages Standard Tag Library) that can be used as a quick reference.&amp;nbsp; The article provides a quick overview of JSTL 1.0 and how to use the expression language and tags.&amp;nbsp; </description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/16.html#a662</guid>
			<pubDate>Tue, 16 Mar 2004 21:22:50 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=662&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F16.html%23a662</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/15.html#a660</link>
			<description>&lt;A href=&quot;http://home.comcast.net/~bc19191/blog/040314.html&quot;&gt;Why Learn Lisp? Sunday, March 14, 2004 &quot;Why le ...&lt;/A&gt;. &lt;A title=&quot;Permanent link to this day: 040314.html&quot; href=&quot;http://home.comcast.net/~bc19191/blog/040314.html&quot;&gt;&lt;IMG alt=Daily src=&quot;http://home.comcast.net/~bc19191/blog/dailyLinkIcon.png&quot;&gt;&lt;/A&gt; Why Learn Lisp? Sunday, March 14, 2004
&lt;P&gt;
&lt;P&gt;
&lt;P&gt;
&lt;P&gt;
&lt;P&gt;
&lt;P&gt;
&lt;P&gt;&lt;/P&gt;[&lt;A href=&quot;http://home.comcast.net/~bc19191/blog/index.html&quot;&gt;Bill Clementson&apos;s Blog&lt;/A&gt;]
&lt;P&gt;Great list of quotations about why you should learn Lisp.&amp;nbsp; I love Kent Pitman&apos;s quote about &quot;...Please don&apos;t assume Lisp is only useful for...&quot;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/15.html#a660</guid>
			<pubDate>Mon, 15 Mar 2004 13:41:18 GMT</pubDate>
			<source url="http://www.wcc.vccs.edu/services/rssify/rssify.php?url=http://home.comcast.net/~bc19191/blog/index.html">Bill Clementson&apos;s Blog</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=660&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F15.html%23a660</comments>
			</item>
		<item>
			<title>PLT Scheme</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/12.html#a659</link>
			<description>&lt;P&gt;I may be in love.&amp;nbsp; Let&apos;s get into it.&lt;/P&gt;
&lt;P&gt;I decided that I would bite of Scheme this year.&amp;nbsp; That decision was based on 1) not being ready to kiss Lisp goodbye 2) being a little lazy (not much syntactic difference between Lisp and Scheme).&amp;nbsp; The decision was made clearer by Bill Clementson&apos;s blog thread &quot;What is the best Open Source Lisp?&quot; - especially &lt;A href=&quot;http://home.comcast.net/~bc19191/blog/040111.html&quot;&gt;part 2&lt;/A&gt;.&amp;nbsp; This is where Bill says that PLT Scheme is the best OSS Lisp environment.&lt;/P&gt;
&lt;P&gt;So, I went out and downloaded the latest copy of &lt;A href=&quot;http://www.drscheme.org/&quot;&gt;Dr. Scheme&lt;/A&gt; and started reading &quot;Teach Yourself Scheme in Fixnum Days&quot; that is included in the distribution.&amp;nbsp; Great book for quickly coming up to speed on the major features of Scheme.&amp;nbsp; Have I finished it?&amp;nbsp; No.&amp;nbsp; Am I writing Scheme code?&amp;nbsp; Yes.&amp;nbsp; There you go.&lt;/P&gt;
&lt;P&gt;The &quot;Dr. Scheme&quot; environment is wonderful.&amp;nbsp; I skipped the student levels of the language and went to Pretty Big.&amp;nbsp; Unfortunately this precludes me from using the Stepper.&amp;nbsp; But, I still get all the other goodies that are in the environment.&amp;nbsp; Some of my favorite features:&amp;nbsp; debugger (shows you the call path visually with arrows and traces the code to specifically the call the generated the error), test case boxes, and the large included set of libraries.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;One of my headaches using other OSS Lisp (CLISP, CMUCL, SBCL) was that you had to go out and find CL libraries and install them by hand.&amp;nbsp; Even tools like &lt;A href=&quot;http://www.cliki.net/asdf&quot;&gt;asdf&lt;/A&gt;&amp;nbsp;and &lt;A href=&quot;http://www.cliki.net/asdf-install&quot;&gt;asdf-install&lt;/A&gt;&amp;nbsp;didn&apos;t make the process painless enough for me.&amp;nbsp; Many things worked well with asdf, but some things just didn&apos;t work well at all.&amp;nbsp; In fact, I think that the &lt;A href=&quot;http://www.cliki.net/ACL-COMPAT&quot;&gt;ACL-COMPAT&lt;/A&gt; is not &quot;compat&quot; now that they changed out the ACL Net package for &lt;A href=&quot;http://www.cliki.net/puri&quot;&gt;puri&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;With &quot;Dr. Scheme&quot;, the library issue is MUCH cleaner.&amp;nbsp; In fact, many of the things I&apos;ve played with so far are distributed with the environment or they have PLT packages that can easily be installed through Dr. Scheme.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Another great thing about &quot;Dr. Scheme&quot; is that it&apos;s cross-platform.&amp;nbsp; It works the same on my Mac, Windows, and FreeBSD boxen.&amp;nbsp; The GUI is based on wxWindows, and the GUI gets the appropriate &quot;look&quot; for each platform.&amp;nbsp; For instance, &quot;Dr. Scheme&quot; is all Aqua-fied on my Mac.&amp;nbsp; On my Windows machine, it gets all Redmond-fied&amp;nbsp;(boring).&lt;/P&gt;
&lt;P&gt;So, in summary PLT Scheme is my new best friend.&amp;nbsp; If you are using OSS Lisp and getting a little frustrated, or if you just want to learn Scheme, then go get &quot;Dr. Scheme&quot; now.&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/12.html#a659</guid>
			<pubDate>Fri, 12 Mar 2004 14:01:49 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=659&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F12.html%23a659</comments>
			</item>
		<item>
			<title>Naming a directory TAGS in CVS</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/09.html#a657</link>
			<description>&lt;P&gt;I hope that someone smarter than I am will read this and correct me.&amp;nbsp; It seems that if I name a directory&amp;nbsp;&quot;tags&quot; somewhere in my CVS project, it will not be handled correctly by IBM Websphere Studio 5.1.1 (Eclipse 2.1.2).&amp;nbsp; When I try to check that directory (a Java package directory) out of CVS, WSAD says &quot;error fetching file revisions&quot;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I am using CVS for NT, but I AM NOT using a repository prefix.&amp;nbsp; So, I don&apos;t have &lt;A href=&quot;http://dev.eclipse.org/viewcvs/index.cgi/platform-vcm-home/docs/online/cvs_features2.0/cvs-faq.html?rev=1.17#server_10&quot;&gt;this&lt;/A&gt; known error situation.&amp;nbsp; I&apos;m not sure if&amp;nbsp;my issue&amp;nbsp;is a WSAD/Eclipse issue, a CVS for NT issue, or just a CVS issue.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We are working around it by renaming our tags package to taglib.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/09.html#a657</guid>
			<pubDate>Tue, 09 Mar 2004 21:23:36 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=657&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F09.html%23a657</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/03/09.html#a656</link>
			<description>Bill Clementson &lt;A href=&quot;http://home.comcast.net/~bc19191/blog/index.html&quot;&gt;summarizes and responds&lt;/A&gt; to a troll on comp.lang.lisp throwing down the gauntlet and challenging the speed of Lisp.&amp;nbsp; The result?&amp;nbsp; Code that performs better than C++ and demonstrates how to write highly optimized Common Lisp.</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/03/09.html#a656</guid>
			<pubDate>Tue, 09 Mar 2004 21:00:16 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=656&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F03%2F09.html%23a656</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/02/27.html#a653</link>
			<description>&lt;P&gt;&lt;A href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=36312&quot;&gt;Oh No! DTO!&lt;/A&gt;. Should DTOs have public variables? Or should they have private variables with getters and setters? [&lt;A href=&quot;http://www.artima.com/weblogs/&quot;&gt;Artima Weblogs&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;There&apos;s an interesting discussion going on in the comments of the blog.&amp;nbsp; Worth reading - I&apos;m sure we&apos;ve all pondered this question before.&amp;nbsp; Especially when you think of languages like Python where it&apos;s downright hard (well, at least contrived) to make member variables private.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/02/27.html#a653</guid>
			<pubDate>Fri, 27 Feb 2004 15:32:12 GMT</pubDate>
			<source url="http://www.artima.com/weblogs/feeds/weblogs.rss">Artima Weblogs</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=653&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F02%2F27.html%23a653</comments>
			</item>
		<item>
			<title>Dynamic Lisp 3</title>
			<link>http://home.comcast.net/~bc19191/blog/040225.html</link>
			<description>Bill Clementson&apos;s third installment about modifying lisp applications on the fly.</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/02/26.html#a652</guid>
			<pubDate>Thu, 26 Feb 2004 17:03:54 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=652&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F02%2F26.html%23a652</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/02/26.html#a651</link>
			<description>&lt;A href=&quot;http://lemonodor.com/archives/000720.html&quot;&gt;Dynamic Lisp&lt;/A&gt;. 
&lt;P&gt;Bill Clementson has two posts on the nuts &amp;amp; bolts of modifying lisp applications on the fly: &lt;A href=&quot;http://home.comcast.net/~bc19191/blog/040223.html&quot;&gt;Dynamically changing running Lisp code #1&lt;/A&gt;, &lt;A href=&quot;http://home.comcast.net/~bc19191/blog/040224.html&quot;&gt;Dynamically changing running Lisp code #2&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;[&lt;A href=&quot;http://lemonodor.com/&quot;&gt;lemonodor&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/02/26.html#a651</guid>
			<pubDate>Thu, 26 Feb 2004 17:02:52 GMT</pubDate>
			<source url="http://lemonodor.com/rss10-full.xml">lemonodor</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=651&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F02%2F26.html%23a651</comments>
			</item>
		<item>
			<title>Voruta: An Interesting Approach to O/R Mapping</title>
			<link>http://voruta.sourceforge.net/</link>
			<description>Voruta is an OSS framework for automatically generating data access code.&amp;nbsp; The framework allows you to embed SQL calls in the javadoc associated with DAO methods.&amp;nbsp; The code for the DAO calls is generated dynamically at run time.&amp;nbsp; This is an interesting approach, however it doesn&apos;t allow you to externalize the mappings and prevent recompiles when data access queries or methods change.</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/02/10.html#a648</guid>
			<pubDate>Tue, 10 Feb 2004 17:17:54 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=648&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F02%2F10.html%23a648</comments>
			</item>
		<item>
			<title>Show CSS computed styles for HTML page elements</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/01/15.html#a635</link>
			<description>I just found an awesome bookmarklet for Firebird (may work with IE, but it didn&apos;t for me).&amp;nbsp; Get it &lt;a href=&quot;http://www.kryogenix.org/days/bookmarklet&quot;&gt;here&lt;/a&gt;.&amp;nbsp; Some of its sweetness includes:&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;style information is shown in a separate window and elements are selected just by mousing over them.&lt;/li&gt;
  &lt;li&gt;showing you the hierarchy of styles that are being applied to the element&lt;/li&gt;
  &lt;li&gt;gives you a complete breakdown of the style that&apos;s in effect for the element&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
I&apos;ve been having some trouble debugging some CSS issues with one of my pages.&amp;nbsp; This is a tremendous help.&lt;br&gt;
</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/01/15.html#a635</guid>
			<pubDate>Thu, 15 Jan 2004 15:51:04 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=635&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F01%2F15.html%23a635</comments>
			</item>
		<item>
			<title>Idea for providing &quot;uncached&quot; objects after retrieving with Toplink</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2004/01/09.html#a631</link>
			<description>When you retrieve an object with Toplink, no matter if it&apos;s through the
ClientSession or a UnitOfWork, Toplink returns an object that it is
tracking in its cache.  If you change the object in one place, ask
for it again in the other, you will get the changed object.  In
some cases this is great because you can quickly and easily reflect the
latest information with incredible performance.  However I find
myself being confused by this behavior for most of my applications.&lt;br&gt;
&lt;br&gt;
My idea is that each of the classes you store with Toplink implements Cloneable.  Then, in your DAO layer (you &lt;span style=&quot;font-weight: bold;&quot;&gt;are &lt;/span&gt;using
a DAO layer, right?) , before you return an object to the caller you
call its clone() method.  This will ensure that you have a shallow
copy of the object that is not associated with Toplink&apos;s cache. Then,
you can count on 2 retrievals of the same object only reflecting any
updates that &lt;span style=&quot;font-weight: bold;&quot;&gt;have actually been committed&lt;/span&gt; to the cache/database.&lt;br&gt;
&lt;br&gt;
If you have a complex object graph that you are persisting with Toplink
and you want the same functionality, you can implement a method to do a
deep clone.  This would make sure that the entire graph reflects
the data at that point in time rather than any changes that are
happening in other places.&lt;br&gt;
&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2004/01/09.html#a631</guid>
			<pubDate>Fri, 09 Jan 2004 21:47:30 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=631&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2004%2F01%2F09.html%23a631</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/10/13.html#a598</link>
			<description>&lt;a href=&quot;http://www.zopemag.com/Issue006/Section_Articles/article_IntroToArchteypes.html&quot;&gt;ZopeMag Donates Archetypes Article&lt;/a&gt;. Mark Pratt sent me a note last week letting me know that the 
&quot;Introduction to Archetypes&quot; article by Sidnei da Silva is now 
freely available.  Sidnei did a very good job with this article, as 
did the editors at ZopeMag.[&lt;a href=&quot;http://radio.weblogs.com/0116506/&quot;&gt;Zope Dispatches&lt;/a&gt;]
&lt;p&gt;This looks like a great how-to article explaining how to create products for CMF with the new Archetypes approach.&lt;/p&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/10/13.html#a598</guid>
			<pubDate>Mon, 13 Oct 2003 12:30:21 GMT</pubDate>
			<source url="http://radio.weblogs.com/0116506/rss.xml">Zope Dispatches</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=598&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F10%2F13.html%23a598</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/10/12.html#a596</link>
			<description>&lt;A href=&quot;http://www.jot.fm/issues/issue_2003_09/column1&quot;&gt;Tuples + Objects + Infosets =Too Much Stuff!&lt;/A&gt;. &lt;FONT color=blue&gt;&lt;I&gt;Once upon a time it was possible for every new programmer to quickly learn how to write readable programs to &lt;EM&gt;&lt;STRONG&gt;C&lt;/STRONG&gt;&lt;/EM&gt;reate, &lt;EM&gt;&lt;STRONG&gt;R&lt;/STRONG&gt;&lt;/EM&gt;ead, &lt;EM&gt;&lt;STRONG&gt;U&lt;/STRONG&gt;&lt;/EM&gt;pdate and &lt;EM&gt;&lt;STRONG&gt;D&lt;/STRONG&gt;&lt;/EM&gt;elete business information. These so-called &lt;EM&gt;&lt;STRONG&gt;CRUD&lt;/STRONG&gt;&lt;/EM&gt; applications, along with reporting, were pervasive throughout business and essentially defined IT or MIS as it was called in those days... [Now] THINGS ARE SO COMPLEX YOU NEED AN M.SC. TO PROGRAM CRUD!&lt;/I&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;A href=&quot;http://blogs.gotdotnet.com/emeijer/PermaLink.aspx/51847cf6-6a9d-4ba4-ba4c-73eef9b265b1&quot;&gt;Eric&lt;/A&gt; says this is a great paper, so who am I to argue?
&lt;P&gt;[&lt;A href=&quot;http://lambda.weblogs.com/&quot;&gt;Lambda the Ultimate&lt;/A&gt;]
&lt;P&gt;There are a number of interesting articles to be found on the JOT &lt;A href=&quot;http://www.jot.fm&quot;&gt;(Journal of Object Technology)&lt;/A&gt; web site&lt;/P&gt; [&lt;a href=&quot;http://radio.weblogs.com/0124580/&quot;&gt;Jon Israelson&apos;s Blog&lt;/a&gt;]
&lt;p&gt;This is a &lt;strong&gt;really&lt;/strong&gt; great artile in my opinion.  During the last year, I&apos;ve been able to work with 4 of the top Java object/relational technologies (Castor JDO, Solarmetric Kodo JDO, Hibernate, and Toplink).  In each case I had to learn a great deal about the framework in order to simply persist my objects and find them again.  Not only that, but because I needed to write unit tests against my database, I still had to write SQL to figure out my test result sets! Go read the article - it nails the point.&lt;/p&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/10/12.html#a596</guid>
			<pubDate>Sun, 12 Oct 2003 21:33:56 GMT</pubDate>
			<source url="http://radio.weblogs.com/0124580/rss.xml">Jon Israelson&apos;s Blog</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=596&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F10%2F12.html%23a596</comments>
			</item>
		<item>
			<title>Of IDEs and Editors</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/10/10.html#a595</link>
			<description>
&lt;p&gt;I just found Bradley O&apos;Hearne&apos;s &lt;a href=&quot;http://www.devx.com/devx/editorial/16364&quot;&gt;10 Reasons to Dump Your Java IDE&lt;/a&gt;.  Not being a big IDE proponent, I felt justified in reading this article.  Even if some of the arguments aren&apos;t very strong.  Check out the counter-point: &lt;a href=&quot;http://www.rc3.org/cgi-bin/less.pl?arg=4872&quot;&gt;10 Reasons (Not) to Dump Your Java IDE&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;My latest frustration with IDEs is they almost always contain substandard editors.  What they lack in text manipulation, they partly make up for with code completion and source code browsing.  However, I spend most of my time manipulating text.  Don&apos;t you?  I would rather have Emacs hippie expansion to complete previously typed tokens than code completion.  Much faster, and can be used more often.&lt;/p&gt;

&lt;p&gt;On my last two Java projects, I&apos;ve had Emacs and Eclipse open side-by-side.  I like Eclipse for compiling and fixing errors, the debugger, and for running Junit tests.  I like &quot;Emacs&quot; with &quot;JDEE&quot; and &quot;ECB&quot; for editing.&lt;/p&gt;
</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/10/10.html#a595</guid>
			<pubDate>Sat, 11 Oct 2003 04:55:36 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=595&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F10%2F10.html%23a595</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/09/17.html#a593</link>
			<description>&lt;a href=&quot;http://patricklogan.blogspot.com/archives/2003_09_07_patricklogan_archive.html#106322847156990706&quot;&gt;Data Warehouse Review has an RSS feed&lt;/a&gt;. Data Warehouse Review has an RSS feed. Have at it. [&lt;a href=&quot;http://patricklogan.blogspot.com&quot;&gt;Making it stick.&lt;/a&gt;]
&lt;p&gt;If you are into Data Warehousing, Data Mining, etc. this is for you.&lt;/p&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/09/17.html#a593</guid>
			<pubDate>Wed, 17 Sep 2003 20:45:03 GMT</pubDate>
			<source url="http://patricklogan.blogspot.com/rss/patricklogan.xml">Making it stick.</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=593&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F09%2F17.html%23a593</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/08/27.html#a583</link>
			<description>Here&apos;s a little Oracle nugget that a coworker learned today.&amp;nbsp;
Oracle version 8.1.6&amp;nbsp; and lower doesn&apos;t like to be involved in
wrapped connections.&amp;nbsp; That means that you will have problems using
connection pooling with this version of Oracle and prior.&amp;nbsp; Go
figure.&lt;br&gt;
</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/08/27.html#a583</guid>
			<pubDate>Wed, 27 Aug 2003 22:00:52 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=583&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F08%2F27.html%23a583</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/08/27.html#a582</link>
			<description>&lt;a href=&quot;http://home.comcast.net/%7Ebc19191/lisp-books.htm&quot;&gt;Lisp books mini reviews&lt;/a&gt;. &lt;small&gt;(via &lt;a href=&quot;http://lemonodor.com/archives/000540.html#000540&quot;&gt;lemonodor&lt;/a&gt;)&lt;/small&gt;&lt;p&gt;
From Bill Clementson: A nice list of Lisp books, annotated with one-line reviews .&lt;/p&gt;&lt;p&gt; By &lt;a href=&quot;mailto:mslamm@mscc.huji.ac.il&quot;&gt;mslamm@mscc.huji.ac.il&lt;/a&gt; (Ehud Lamm). [&lt;a href=&quot;http://lambda.weblogs.com/&quot;&gt;Lambda the Ultimate&lt;/a&gt;]&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;All I can say is... Wow!&lt;br&gt;
&lt;/p&gt;
</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/08/27.html#a582</guid>
			<pubDate>Wed, 27 Aug 2003 15:56:07 GMT</pubDate>
			<source url="http://lambda.weblogs.com/xml/rss.xml">Lambda the Ultimate</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=582&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F08%2F27.html%23a582</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/08/23.html#a578</link>
			<description>&lt;a href=&quot;http://capescience.blogspot.com/2003_08_01_capescience_archive.html#106155200597053353&quot;&gt;Introducing XACML&lt;/a&gt;. This Computerworld   article provides a very brief introduction to XACML, an access control list language implemented with XML.

To attain an understanding of the lingo check out this XACML glossary or if you prefer dive straight into the specification( [&lt;a href=&quot;http://capescience.blogspot.com&quot;&gt;CapeBlog&lt;/a&gt;]
&lt;p&gt;This is an introductory article.  Sounds interesting.  This technology provides a standard way to query for and distribute access policies.  The Sun site for this technology is &lt;a href=&quot;http://developer.java.sun.com/developer/technicalArticles/Security/xacml/xacml.html&quot;&gt;here&lt;/a&gt;&lt;/p&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/08/23.html#a578</guid>
			<pubDate>Sat, 23 Aug 2003 23:50:37 GMT</pubDate>
			<source url="http://capescience.blogspot.com/rss/capescience.xml">CapeBlog</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=578&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F08%2F23.html%23a578</comments>
			</item>
		<item>
			<title>Checked vs Unchecked Exceptions</title>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/08/20.html#a577</link>
			<description>Lots of talk about checked exceptions vs. unchecked exceptions this
week.&amp;nbsp; Most of it is intertwined, and I believe it started with&lt;a href=&quot;http://www.artima.com/intv/handcuffs.html&quot;&gt; this Artima interview&lt;/a&gt; with &lt;span class=&quot;sts&quot;&gt;Anders Hejlsberg of Microsoft.&amp;nbsp; The interviewed spawned&lt;a href=&quot;http://www.artima.com/forums/flat.jsp?forum=32&amp;amp;thread=10534&quot;&gt; this discussion&lt;/a&gt; which references &lt;a href=&quot;http://lambda.weblogs.com/2003/08/18&quot;&gt;this LtU discussion&lt;/a&gt;. &lt;br&gt;
&lt;br&gt;
I have ambivalent feelings about checked exceptions.&amp;nbsp; Sometimes I
understand their utility, like when you need to report the file was not
found and this is a bad thing.&amp;nbsp; Sometimes I find them very
cumbersome like when I want to write some code that throws an exception
in the constructor of a Java class.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
One of the keys to living with checked exceptions is determining a
propegation strategy.&amp;nbsp; You have to figure out how you are going to
propegate the exceptions up through the layers of your
application.&amp;nbsp; You should figure out when is it important to see
individual exceptions and when is it OK to see a more coarse grained
exception.&lt;br&gt;
&lt;br&gt;
In an application I was recently a part of, we built a web application
that had several application layers.&amp;nbsp; The application had a
presentation layer, a service layer, and a data access layer.&amp;nbsp; The
data access layer threw alot of very specific exceptions about what was
happening.&amp;nbsp; The service layer caught those exceptions and took
appropriate action (if necessary) and wrapped that exception in a
higher level exception called ServiceFailureException.&amp;nbsp; This
allowed the presentation layer to deal with a single type of exception
and understand that something failed, but present the user with a more
friendly error message.&lt;br&gt;
&lt;br&gt;
 &lt;/span&gt;</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/08/20.html#a577</guid>
			<pubDate>Thu, 21 Aug 2003 04:19:33 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=577&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F08%2F20.html%23a577</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/08/20.html#a576</link>
			<description>&lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=10522&quot;&gt;Knowing and Learning&lt;/a&gt;.
Some thoughts about knowing, learning, and software design, many of
which were thought or written down while watching baseball. (From Jim
Waldo&apos;s Weblog) [&lt;a href=&quot;http://www.artima.com/weblogs/index.jsp?blogger=waldo&quot;&gt;Jim Waldo&apos;s Weblog&lt;/a&gt;]&lt;br&gt;
&lt;br&gt;
Great thoughts about the difference between knowing facts about
software engineering and knowing actually HOW to engineer
software.&amp;nbsp; Jim wonders why there is no apprentiship process for
software engineering.&lt;br&gt;
</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/08/20.html#a576</guid>
			<pubDate>Thu, 21 Aug 2003 02:58:23 GMT</pubDate>
			<source url="http://www.artima.com/weblogs/feeds/bloggers/waldo.rss">Jim Waldo&apos;s Weblog</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=576&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F08%2F20.html%23a576</comments>
			</item>
		<item>
			<link>http://radio.weblogs.com/0116883/categories/programming/2003/08/20.html#a575</link>
			<description>&lt;a href=&quot;http://www.cafeaulait.org/#news2003August19&quot;&gt;Dragongate
Technologies has released jSaluki 1.0.1, a small hyperelliptic curve
cryptography library for Java published under the GPL.&lt;/a&gt;. Dragongate Technologies has released jSaluki 1.0.1,
 a small hyperelliptic curve cryptography library for Java published under the GPL. Algorithms include [&lt;a href=&quot;http://www.cafeaulait.org/&quot;&gt;Cafe au Lait Java News and Resources&lt;/a&gt;]&lt;br&gt;
&lt;br&gt;
I&apos;ve stopped following the cryptography field as closely as I used
to.&amp;nbsp; From my fuzzy memory, elliptic curve cryptography was
supposed to be an up-and-comer for public key cryptography.&amp;nbsp; It
was supposed to be faster to calculate than other methods.&amp;nbsp; Some
people have said it&apos;s not as strong as some of the number theory
methods.&amp;nbsp; And, I&apos;m not sure how much peer review it has received
to date.&lt;br&gt;
&lt;br&gt;
It&apos;s extremely cool that there&apos;s an OSS implementation, though.&amp;nbsp; Hopefully this will spur things on.&lt;br&gt;
</description>
			<guid>http://radio.weblogs.com/0116883/categories/programming/2003/08/20.html#a575</guid>
			<pubDate>Wed, 20 Aug 2003 21:04:55 GMT</pubDate>
			<source url="http://www.cafeaulait.org/today.rss">Cafe au Lait Java News and Resources</source>
			<comments>http://radiocomments.userland.com/comments?u=116883&amp;amp;p=575&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0116883%2F2003%2F08%2F20.html%23a575</comments>
			</item>
		</channel>
	</rss>
