<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-396730</id><updated>2008-03-27T09:27:12.665-05:00</updated><title type='text'>Sam-I-Am's Builder Blog</title><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/blog.html'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml'/><author><name>Sam-I-Am</name></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>156</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-396730.post-6973744421928743266</id><published>2008-03-07T08:31:00.002-06:00</published><updated>2008-03-07T08:50:08.724-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dojo workish'/><title type='text'>dijit.byNode and firebug fun</title><summary type='text'>Here's a little tip if you're working with dojo widgets. In firebug you can select an element in the HTML view. Back in the firebug console, your selected node is available as $1 So, $1.tagName shows you the element name, etc. 

If you've got dojo on your page you can use anything dojo has provided in the console, and if you're using dijit, you also have that stuff too. So, in the HTML view click</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/03/dijitbynode-and-firebug-fun.html' title='dijit.byNode and firebug fun'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=6973744421928743266' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6973744421928743266'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6973744421928743266'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-7097869770505043773</id><published>2008-02-22T23:03:00.006-06:00</published><updated>2008-02-25T22:08:56.897-06:00</updated><title type='text'>Restoring SVN repositories from disk - a story</title><summary type='text'>I recently had to move off a company laptop I'd been using for a while, and (thanks to the flu) didnt have much time to do it. So, I backed up those directories I knew had any personal projects and data in and crossed-fingers I'd be able to get what I needed out of there when the time came.

One of the directories I got housed my subversion respositories (I'd been using the flat-file db option). </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/02/restoring-svn-repositories-from-disk.html' title='Restoring SVN repositories from disk - a story'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=7097869770505043773' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7097869770505043773'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7097869770505043773'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-1394018761950592367</id><published>2008-01-15T12:45:00.000-06:00</published><updated>2008-01-15T13:10:59.765-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workish'/><title type='text'>A Parable</title><summary type='text'>A man was asked to do some renovation on a house. He worked steadily at it for several weeks and finally called his client to come take a look around.

He said, "I was able to keep a lot of the original flooring. I got a good match for the wood and finish where I had to patch and extend the floor. I'm nearly done. I just need to pick up my offcuts and sweep up."

"Oh good" said the client. "So </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/01/parable.html' title='A Parable'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=1394018761950592367' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1394018761950592367'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1394018761950592367'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-5729859044270293024</id><published>2008-01-14T16:23:00.000-06:00</published><updated>2008-01-14T16:46:03.593-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dojo workish'/><title type='text'>dijit.Declaration and its mixins</title><summary type='text'>I love the dijit.Declaration widget introduced into the dojo toolkit around version 0.9+. It lets you declare a new widget class inline in your html - which can be very useful, especially when you want the widget templateString to be dynamic output from the server.

Just a little tip - I had been getting a m._findMixin is not a function error when instantiating widgets from my Declaration. If </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/01/dijitdeclaration-and-its-mixins.html' title='dijit.Declaration and its mixins'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=5729859044270293024' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5729859044270293024'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5729859044270293024'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-1124153050077393405</id><published>2007-11-30T11:42:00.000-06:00</published><updated>2007-11-30T11:54:12.812-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regexp workish'/><title type='text'>Regexp to match only html filenames and directory names</title><summary type='text'>I've been working on a script to create filtered directory tree listings. It can be configured with both include conditions, and exclude conditions. If something passes the include filters, it then checks to see if its explicitly excluded. For example, I want to exclude cgi-bin, but include all other directories and files. 

So its useful to have a good catch-all pattern for including only the </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/11/regexp-to-match-only-html-filenames-and.html' title='Regexp to match only html filenames and directory names'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=1124153050077393405' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1124153050077393405'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1124153050077393405'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-7404557467596899193</id><published>2007-11-28T01:47:00.000-06:00</published><updated>2007-11-28T01:52:49.252-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='workish'/><category scheme='http://www.blogger.com/atom/ns#' term='play'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><title type='text'>Simple Clocks with the Dojo Toolkit</title><summary type='text'>Something I was playing with - this page shows a couple of javascript clock/countdown treatments. None are as whizzy as the dojox.gfx (vector graphics) clock you might have seen around, or your various dashboard widgets - but this is just dojo core + 6k (uncompressed) of code.</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/11/simple-clocks-with-dojo-toolkit.html' title='Simple Clocks with the Dojo Toolkit'/><link rel='related' href='http://sam-i-am.com/work/sandbox/simplClock/test_DojoClock.html' title='Simple Clocks with the Dojo Toolkit'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=7404557467596899193' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7404557467596899193'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7404557467596899193'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-2655276403368988322</id><published>2007-11-27T23:57:00.000-06:00</published><updated>2007-11-28T00:27:32.629-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='workish'/><title type='text'>string.replace with substitution by function</title><summary type='text'>It may or may not be news to you that in Javascript you can do: 
someString.replace(
  /\w+/g, 
  function(match) {
    return "blah"
  }
);
Which in this case turns "the original string" into "blah blah blah". Your function is passed the match, and you return whatever you want. That's pretty handy, as you can run the match through transformations, or even use it to lookup or generate some </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/11/stringreplace-with-substitution-by.html' title='string.replace with substitution by function'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=2655276403368988322' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2655276403368988322'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2655276403368988322'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-3362311160525754039</id><published>2007-10-24T08:25:00.000-05:00</published><updated>2007-10-24T08:46:10.091-05:00</updated><title type='text'>TAE keynote and CSS layout</title><summary type='text'>the Ajaxian folks are doing their little summary of the past year or so as pertains to Ajax. One of the "trends" or opportunities they observe is doing layout using javascript. CSS got a panning. Now I understand that CSS layout is complex - no argument there. But doing layout in javascript is hardly new and proven to be a dead-end - at least with current browsers. In Dojo 0.9 the widget and </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/10/tae-keynote-and-css-layout.html' title='TAE keynote and CSS layout'/><link rel='related' href='http://ajaxexperience.techtarget.com/east/' title='TAE keynote and CSS layout'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=3362311160525754039' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/3362311160525754039'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/3362311160525754039'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-8203757001964707197</id><published>2007-09-06T20:34:00.000-05:00</published><updated>2007-09-06T20:53:24.126-05:00</updated><title type='text'>Sortable list with dojo 0.9</title><summary type='text'>This is a quick proof of concept of a sortable, data-store backed list (using dojo 0.9). The store  (a dojo.data.ItemFileReadStore instance) does the sorting. Each list-item has an id, that is mapped to the store item identifier. So when the re-sorted list comes back I just look up the list-item node and appendChild it to move it in the list.

The store has 52 items (its a list of states) and </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/09/sortable-list-with-dojo-09.html' title='Sortable list with dojo 0.9'/><link rel='related' href='http://sam-i-am.com/work/sandbox/dojo0.9/samiam/sortableList.html' title='Sortable list with dojo 0.9'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=8203757001964707197' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8203757001964707197'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8203757001964707197'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-2743040805604954402</id><published>2007-07-21T03:12:00.000-05:00</published><updated>2007-07-21T07:56:51.596-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript air'/><title type='text'>Adobe AIR tour</title><summary type='text'>I made a quick trip to Dallas to catch the Adobe AIR bus tour there. You know, it was pretty interesting. I was braced for a 4 hour long vendor sales demo, and it kind of was that, but with enough hands-on detail to keep my attention. Plus, it looks like a sweet product.

A few misunderstandings that got cleared up for me:

AIR is specifically the runtime. Think the .NET runtime - its a </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/07/adobe-air-tour.html' title='Adobe AIR tour'/><link rel='related' href='http://onair.adobe.com/bus/' title='Adobe AIR tour'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=2743040805604954402' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2743040805604954402'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2743040805604954402'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-6209494422817027010</id><published>2007-07-11T15:34:00.000-05:00</published><updated>2007-07-11T15:38:20.461-05:00</updated><title type='text'>Moving your Firefox profile</title><summary type='text'>Little tip. You can easily move your FF profile directory to another local drive/directory e.g. thumb drive, or a backed-up directory. In my case it was to a directory that doesn't have every read/write scanned by anti-virus software. (I can see how this might be prudent and all, but it was making for a very slow browsing experience on my pc.)</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/07/moving-your-firefox-profile.html' title='Moving your Firefox profile'/><link rel='related' href='http://www.mozilla.org/support/firefox/profile' title='Moving your Firefox profile'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=6209494422817027010' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6209494422817027010'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6209494422817027010'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-4835855610844351355</id><published>2007-02-22T08:33:00.000-06:00</published><updated>2007-02-22T08:45:13.415-06:00</updated><title type='text'>RefreshAustin is 1yr Old</title><summary type='text'>I'm prompted to post because almost a year after we disbanded the Austin Web Standards Meetup, and merged with RefreshAustin I'm still getting email from meetup.com with people signing up for future web standards meetups in Austin. Folks, the group is alive and well, we meet at least monthly, but we now fly a "Refresh" banner instead of the web standards meetup one. 

The Refresh format is simple</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/02/refreshaustin-is-1yr-old.html' title='RefreshAustin is 1yr Old'/><link rel='related' href='http://refreshaustin.org/' title='RefreshAustin is 1yr Old'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=4835855610844351355' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/4835855610844351355'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/4835855610844351355'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-655192680246971231</id><published>2007-01-12T10:32:00.000-06:00</published><updated>2007-01-12T10:57:11.192-06:00</updated><title type='text'>Terminal funkiness with ActiveState perl</title><summary type='text'>I just finally got on top of an annoyance I've had for a while: on my work machine I use MKS Toolkit - which provides a lot of the common unix tools for developers using windows. It provides its own Perl build, but I've been using ActiveState's for a while, and didnt want to complicate  synchronizing my work across the different machines I use perl on.
An unhappy side-effect of installing MKS </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/01/terminal-funkiness-with-activestate.html' title='Terminal funkiness with ActiveState perl'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=655192680246971231' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/655192680246971231'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/655192680246971231'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-116129273001449461</id><published>2006-10-19T16:11:00.000-05:00</published><updated>2006-12-06T01:41:06.226-06:00</updated><title type='text'>Javascript shell with Rhino</title><summary type='text'>The Rhino javascript interpreter (from Mozilla, sister to SpiderMonkey) has an interactive mode:

C:\dojo\buildscripts&gt;java -jar lib/js.jar
Rhino 1.5 release 3 2002 01 27
js&gt; print('boo');
boo
js&gt;

The Rhino jar is a part of the dojo distribution, so if you've got dojo (from SVN, not the pre-built releases) you already have it.
The Scripting Java page from Mozilla has these and other details. </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/10/javascript-shell-with-rhino.html' title='Javascript shell with Rhino'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=116129273001449461' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/116129273001449461'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/116129273001449461'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-115714575521775737</id><published>2006-09-01T16:19:00.000-05:00</published><updated>2006-09-01T16:22:35.230-05:00</updated><title type='text'>Soft-wrapping long words</title><summary type='text'>The issue of long, non-breaking words like urls has been around for a while on the web - and the impact this can have on layouts and other places where width is constrained for whatever reason.
 
I've been going back and forth on this, and dug up and old test page on No-wrapping and Soft-wrapping. This has some test cases using &lt;nobr&gt;, &lt;wbr&gt; and the soft-hyphen character &amp;shy;. The results aren't</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/09/soft-wrapping-long-words.html' title='Soft-wrapping long words'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=115714575521775737' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115714575521775737'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115714575521775737'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-115678924977587118</id><published>2006-08-28T13:08:00.000-05:00</published><updated>2006-09-01T16:25:20.776-05:00</updated><title type='text'>Re: Has accessibility been taken too far?</title><summary type='text'>(Jeff Croft posted this provocative article which seemed to tap a common feeling that accessibility is a pain in the ass, strictly optional and web designers should be cut some slack)

If you wade through the slop of the first round of comments to this post, there's actually some reasonable debate that follows. Jeff came out saying he wanted to provoke discussion and (eventually) seems to have </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/08/re-has-accessibility-been-taken-too.html' title='Re: Has accessibility been taken too far?'/><link rel='related' href='http://www2.jeffcroft.com/2006/aug/21/has-accessibility-been-taken-too-far/' title='Re: Has accessibility been taken too far?'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=115678924977587118' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115678924977587118'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115678924977587118'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-115579211145302457</id><published>2006-08-17T00:20:00.000-05:00</published><updated>2006-08-17T00:24:18.113-05:00</updated><title type='text'>"Surveying OS Ajax Toolkits" article on infoworld</title><summary type='text'>This is well worth a read. Unlike most reviews I've seen, this author
obviously spent sometime with each of the libraries he includes -
enough to get a meaningful impression of the strengths and weaknesses.
For me, he's right on the money with Dojo, YUI, Rico, Atlas. I differ
a little on GWT, but in truth it sounds like he spent more time with
it than I did.
Being a dojo guy at present, I think </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/08/surveying-os-ajax-toolkits-article-on.html' title='&quot;Surveying OS Ajax Toolkits&quot; article on infoworld'/><link rel='related' href='http://www.infoworld.com/article/06/07/31/31FEajax_3.html' title='&quot;Surveying OS Ajax Toolkits&quot; article on infoworld'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=115579211145302457' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115579211145302457'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115579211145302457'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-115107352813089369</id><published>2006-06-23T09:33:00.000-05:00</published><updated>2006-06-23T10:20:35.876-05:00</updated><title type='text'>Krugle - open source code search engine</title><summary type='text'>I bumped into one of Krugle's developers at the Ajax experience conference. Looks like they just came out of beta and are open to the public. This is sweet, I can't emphasize enough how useful this is already proving. 90% of all code (I reckon) is boiler-plate, but by the time you've tracked down an implementation (and possibly ported it to your language of choice) its easier (say, 75% of the </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/06/krugle-open-source-code-search-engine.html' title='Krugle - open source code search engine'/><link rel='related' href='http://www.krugle.com' title='Krugle - open source code search engine'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=115107352813089369' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115107352813089369'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115107352813089369'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-114779215173902285</id><published>2006-05-16T10:00:00.000-05:00</published><updated>2006-05-16T10:21:00.326-05:00</updated><title type='text'>Javascript conflicts and portlet namespaces</title><summary type='text'>First - javascript doesn't actually have "namespaces". But the idea is there - unless functions, objects and variables are designated otherwise, they exist in the global scope - properties of the window object. In a portal - where portlets might want to include script libraries to facilitate interaction within the portlet - there's a risk of conflicts with objects using the same name being </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/05/javascript-conflicts-and-portlet.html' title='Javascript conflicts and portlet namespaces'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=114779215173902285' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114779215173902285'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114779215173902285'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-114610347112406250</id><published>2006-04-26T20:50:00.000-05:00</published><updated>2006-04-26T23:06:32.876-05:00</updated><title type='text'>Playing nice with others in javascript</title><summary type='text'>Andrew Dupont has written a very interesting article on Prototype, and the recent $() extensions that allow things like $(someelement).hide() and so on.

This is actually a really nice solution. It's syntactical sugar without actually extending the element itself. Andrew argues that as an object oriented language, its reasonable to want to be able to extend objects like HTMLElement in javascript.</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/04/playing-nice-with-others-in-javascript.html' title='Playing nice with others in javascript'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=114610347112406250' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114610347112406250'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114610347112406250'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-114591042147251111</id><published>2006-04-24T14:50:00.000-05:00</published><updated>2006-04-24T15:27:01.530-05:00</updated><title type='text'>WCAG 2.0 (as compared to section 508)</title><summary type='text'>I've been really impressed with the WCAG 2.0 guidelines. This is a big improvement in the way the guidelines are presented and worded that I think will make adoption much much more likely. This here page answers the inevitable question: how does WCAG 2.0 line up against section 508? On one hand it adds specifics and details: sucess criteria and techniques for achieving success. On the other WCAG </summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/04/wcag-20-as-compared-to-section-508.html' title='WCAG 2.0 (as compared to section 508)'/><link rel='related' href='http://www.jimthatcher.com/508wcag2.htm' title='WCAG 2.0 (as compared to section 508)'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=114591042147251111' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114591042147251111'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114591042147251111'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-114558444364385697</id><published>2006-04-20T20:45:00.000-05:00</published><updated>2006-04-20T20:54:03.656-05:00</updated><title type='text'>Accessible maps at ALA</title><summary type='text'>This is a nice write-up of making a point-map (a map with information relating to points on that map) in a semantic and accessible manner. I read a lot of articles, and rarely feel compelled to blog them. I was impressed with this one though. It doesnt shy from diggging right into the details, and does an admirable job of working through some complexity to present a real, viable solution. So many</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/04/accessible-maps-at-ala.html' title='Accessible maps at ALA'/><link rel='related' href='http://www.alistapart.com/articles/cssmaps' title='Accessible maps at ALA'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=114558444364385697' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114558444364385697'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114558444364385697'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-114194780844747833</id><published>2006-03-09T17:40:00.000-06:00</published><updated>2006-03-09T17:43:28.456-06:00</updated><title type='text'>Object vs. View-centric apps (RoR vs. PHP)</title><summary type='text'>This post starts out as an account of trying out PHP and Ruby on Rails to build a simple app, and comparing the experience. The thread builds though into an interesting discussion of differing approaches to web application development, and differing needs from the framework you use.</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/03/object-vs-view-centric-apps-ror-vs-php.html' title='Object vs. View-centric apps (RoR vs. PHP)'/><link rel='related' href='http://www.megginson.com/blogs/quoderat/archives/2005/06/11/rails-vs-php-mvc-or-view-centric/' title='Object vs. View-centric apps (RoR vs. PHP)'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=114194780844747833' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114194780844747833'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114194780844747833'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-114013558744637030</id><published>2006-02-16T18:17:00.000-06:00</published><updated>2006-02-16T18:19:47.460-06:00</updated><title type='text'>Drupal recipes for a simple site</title><summary type='text'>This is a great thread that invites suggestions on how to build a simple "brochure" kind of site with Drupal - in the interest of getting people started quicker with Drupal. In amongst the meta-babble, there's some clear walkthroughs of how to achieve the goal - this is just the kind of stuff that's had me stumped these last 48 hours.</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/02/drupal-recipes-for-simple-site.html' title='Drupal recipes for a simple site'/><link rel='related' href='http://drupal.org/node/31896' title='Drupal recipes for a simple site'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=114013558744637030' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114013558744637030'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/114013558744637030'/><author><name>Sam-I-Am</name></author></entry><entry><id>tag:blogger.com,1999:blog-396730.post-113820243735618132</id><published>2006-01-25T09:16:00.000-06:00</published><updated>2006-01-25T09:20:37.356-06:00</updated><title type='text'>Charles HTTP Proxy</title><summary type='text'>Java (cross-platform) HTTP/S proxy for debugging and working with HTTP sessions. At first glance it looks to compare favorably with Fiddler in some aspects. It will do throttling for low-bandwidth emulation, act as a reverse-proxy, and has various reporting/monitoring possibilities. Shareware - giving it a whirl.</summary><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2006/01/charles-http-proxy.html' title='Charles HTTP Proxy'/><link rel='related' href='http://www.xk72.com/charles/' title='Charles HTTP Proxy'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=396730&amp;postID=113820243735618132' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://sam-i-am.com/work/builder-atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/113820243735618132'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/113820243735618132'/><author><name>Sam-I-Am</name></author></entry></feed>