<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-396730</id><updated>2010-05-01T10:59:13.240-05:00</updated><title type='text'>Sam-I-Am on Web Development</title><subtitle type='html'>Sam Foster on the web and web-ish software developmen</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/blog.html'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><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='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><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>164</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-396730.post-2059960101175850901</id><published>2010-05-01T10:59:00.001-05:00</published><updated>2010-05-01T10:59:13.293-05:00</updated><title type='text'>This blog has moved</title><summary type='text'>
       This blog is now located at http://samfosteriam-work.blogspot.com/.
       You will be automatically redirected in 30 seconds, or you may click here.

       For feed subscribers, please update your feed subscriptions to
       http://samfosteriam-work.blogspot.com/feeds/posts/default.
  </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/2059960101175850901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=2059960101175850901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2059960101175850901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2059960101175850901'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2010/05/this-blog-has-moved.html' title='This blog has moved'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-396730.post-2097743024933865579</id><published>2009-04-09T04:01:00.002-05:00</published><updated>2009-04-09T04:23:00.583-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workish dojo air testing'/><title type='text'>AIR command line arguments</title><summary type='text'>I've been working on the next release of the Dojo Toolbox - which is an Adobe AIR app, using the Dojo Toolkit. I'm taking a TDD kind of approach to get on a better footing for evolving this thing, and needed a quick way to run a particular set of unit tests.

I wanted to be able to do something like this: 
$ adl runTests.xml testModule=toolbox.tests.SomeThing

Getting command line arguments in </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/2097743024933865579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=2097743024933865579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2097743024933865579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2097743024933865579'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2009/04/air-command-line-arguments.html' title='AIR command line arguments'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-396730.post-8479403736592008609</id><published>2009-02-27T17:05:00.002-06:00</published><updated>2009-02-27T17:15:02.347-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript rhino'/><title type='text'>A rhino prompt</title><summary type='text'>I'm tinkering with another ill-conceived friday night project that may or may not see the light of day. But in the meantime, I just put together this little snippet that illustrates a lot of what's to like about rhino: 

var getInput = function() {
 var br = new java.io.BufferedReader(
  new java.io.InputStreamReader(java.lang.System["in"])
 );
    return br.readLine();
};

var greetUser = </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/8479403736592008609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=8479403736592008609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8479403736592008609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8479403736592008609'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2009/02/rhino-prompt.html' title='A rhino prompt'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-396730.post-5357904816512927772</id><published>2009-01-08T15:28:00.004-06:00</published><updated>2009-02-17T05:38:59.174-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='rhino'/><title type='text'>Setting up Rhino</title><summary type='text'>I've been using the Rhino engine more and more to run command-line scripts, fiddle and try things out. But my setup has taken shape slowly, and it wasn't much fun to be honest when I first got started. 

I'm on a mac (Leopard), and here's how I've got it now: 


Download the Rhino .jar file, you'll find it inside the latest (binary) release. 

Drop it in your {user}/Library/java/Extensions folder</summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/5357904816512927772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=5357904816512927772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5357904816512927772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5357904816512927772'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2009/01/setting-up-rhino.html' title='Setting up Rhino'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-396730.post-6538263946869165511</id><published>2008-12-08T04:47:00.002-06:00</published><updated>2008-12-08T06:06:29.394-06:00</updated><title type='text'>Barcamp Liverpool</title><summary type='text'>I took in the first day of BarCamp Liverpool. It was Liverpool's first, and my second, and went off well I thought. I learnt some things, saw some new and familiar stuff and felt it was time extremely well spent. It was great to see people coming out of the woodwork and talking about what they are doing.  

There was much talk of iPhone apps, and the economic opportunities (or not) that presents </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/6538263946869165511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=6538263946869165511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6538263946869165511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6538263946869165511'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/12/barcamp-liverpool.html' title='Barcamp Liverpool'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-396730.post-5210050637771187117</id><published>2008-11-06T17:06:00.003-06:00</published><updated>2008-11-07T05:30:24.164-06:00</updated><title type='text'>String repetition in javascript</title><summary type='text'>This is about a little snippet I came up with the other month, while a colleague and I were talking about string building and its performance in javascript. I was looking for a neat way to front-pad or indent a string, and missing the x operator in perl.

It turns out there is a succinct, one-line idiom:
var indent = new Array(10).join(" ")

That gets you a 9-spaces-long string. Using the formal </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/5210050637771187117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=5210050637771187117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5210050637771187117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5210050637771187117'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/11/string-repetition-in-javascript.html' title='String repetition in javascript'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-396730.post-8443817861744719240</id><published>2008-08-16T17:41:00.004-05:00</published><updated>2008-08-19T04:11:07.209-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BarCampLeeds08 adobeair dojo workish'/><title type='text'>BarCampLeeds 08</title><summary type='text'>What a day. Who knew that Leeds was this nascent tech hub. I had a hunch of course (and followed it by moving back here), but there's enery and talent oozing out the edges here, and its surely only a matter of time before it reaches critical mass and becomes a real tech ecosystem. 

What'd I learn? I started the day with an into to geocaching. Which I'd of course heard of, but somehow had lumped </summary><link rel='related' href='http://www.barcampleeds.com/' title='BarCampLeeds 08'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/8443817861744719240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=8443817861744719240' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8443817861744719240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8443817861744719240'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/08/barcampleeds-08.html' title='BarCampLeeds 08'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-396730.post-1894098019425452325</id><published>2008-08-12T04:51:00.003-05:00</published><updated>2008-08-12T05:12:03.893-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing UI dojo workish javascript'/><title type='text'>doh.robot</title><summary type='text'>New automated UI testing goodies just landed in dojo, and I'm moved to blog about them.  Getting test coverage of the messy stuff - user interactions, mouse-movement, clicks, drags - has always been an achiles heel of testing web UIs. Any kind of automated testing is better than none (provided you are testing the right things and keeping a good testing/developing balance), but for UI testing so </summary><link rel='related' href='http://dojotoolkit.org/2008/08/11/doh-robot-automating-web-ui-unit-tests-real-user-events' title='doh.robot'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/1894098019425452325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=1894098019425452325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1894098019425452325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1894098019425452325'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/08/dohrobot.html' title='doh.robot'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry><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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/6973744421928743266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=6973744421928743266' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6973744421928743266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6973744421928743266'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>1</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/7097869770505043773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=7097869770505043773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7097869770505043773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7097869770505043773'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/1394018761950592367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=1394018761950592367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1394018761950592367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1394018761950592367'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2008/01/parable.html' title='A Parable'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/5729859044270293024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=5729859044270293024' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5729859044270293024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/5729859044270293024'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>1</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/1124153050077393405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=1124153050077393405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1124153050077393405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/1124153050077393405'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='related' href='http://sam-i-am.com/work/sandbox/simplClock/test_DojoClock.html' title='Simple Clocks with the Dojo Toolkit'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/7404557467596899193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=7404557467596899193' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7404557467596899193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/7404557467596899193'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>1</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/2655276403368988322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=2655276403368988322' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2655276403368988322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2655276403368988322'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>1</thr:total></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='related' href='http://ajaxexperience.techtarget.com/east/' title='TAE keynote and CSS layout'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/3362311160525754039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=3362311160525754039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/3362311160525754039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/3362311160525754039'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='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='application/atom+xml' href='http://www.blogger.com/feeds/396730/8203757001964707197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=8203757001964707197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8203757001964707197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/8203757001964707197'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='related' href='http://onair.adobe.com/bus/' title='Adobe AIR tour'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/2743040805604954402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=2743040805604954402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2743040805604954402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/2743040805604954402'/><link rel='alternate' type='text/html' href='http://sam-i-am.com/work/2007/07/adobe-air-tour.html' title='Adobe AIR tour'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='related' href='http://www.mozilla.org/support/firefox/profile' title='Moving your Firefox profile'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/6209494422817027010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=6209494422817027010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6209494422817027010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/6209494422817027010'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='related' href='http://refreshaustin.org/' title='RefreshAustin is 1yr Old'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/4835855610844351355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=4835855610844351355' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/4835855610844351355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/4835855610844351355'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>1</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/655192680246971231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=655192680246971231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/655192680246971231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/655192680246971231'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/116129273001449461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=116129273001449461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/116129273001449461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/116129273001449461'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/115714575521775737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=115714575521775737' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115714575521775737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115714575521775737'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>1</thr:total></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='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='application/atom+xml' href='http://www.blogger.com/feeds/396730/115678924977587118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=115678924977587118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115678924977587118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115678924977587118'/><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?'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></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='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='application/atom+xml' href='http://www.blogger.com/feeds/396730/115579211145302457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=396730&amp;postID=115579211145302457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115579211145302457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/396730/posts/default/115579211145302457'/><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'/><author><name>Sam-I-Am</name><uri>http://www.blogger.com/profile/05557174239716985941</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='14797943393049250381'/></author><thr:total>0</thr:total></entry></feed>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
