<?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:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6278452269103964523</id><updated>2012-02-08T23:01:07.254-05:00</updated><category term='computer science'/><category term='women in technology'/><category term='development environments'/><category term='astronomy'/><category term='colleagues'/><category term='SQL'/><category term='olpc'/><category term='analysis and design case studies'/><category term='processors and other hardware'/><category term='security'/><category term='emulators'/><category term='world wide web'/><category term='business models'/><category term='storage'/><category term='projects'/><category term='metaposting'/><category term='languages and processing'/><category term='networking'/><category term='browsers'/><category term='recruiting and training'/><category term='tools and hacks'/><category term='augmented reality'/><category term='css'/><category term='cms'/><category term='society'/><category term='bookshelf'/><category term='history'/><category term='mathematics'/><category term='sorting and searching'/><category term='regular expressions'/><category term='professional development'/><category term='standards'/><category term='fun'/><category term='performance optimization'/><category term='i18n and l10n'/><category term='methodologies'/><category term='usability'/><category term='online services'/><category term='statistics reporting and graphics'/><title type='text'>IEFBR14</title><subtitle type='html'>Software development, then and now.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default?start-index=101&amp;max-results=100'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>225</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-140278258144670152</id><published>2012-02-08T22:54:00.000-05:00</published><updated>2012-02-08T23:01:07.260-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='olpc'/><title type='text'>Keep trying</title><content type='html'>Jairaj Bhattacharya et al. give &lt;a href="http://spectrum.ieee.org/computing/hardware/searching-for-the-aakash/"&gt;poor marks to DataWind's Aakash-1 tablet&lt;/a&gt;, the latest in a series of low cost computers designed for students in developing countries.  The expected price point for this device, which is more than a prototype but not yet generally available, is &amp;#8377;2500 (about $50).&lt;blockquote&gt;Its limited battery life—a maximum of 2.5 hours, which falls to 1 hour and 20 minutes with video or other applications running—is disappointing for a device that is supposed to be used in villages where access to electricity is sporadic at best.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-140278258144670152?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/140278258144670152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=140278258144670152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/140278258144670152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/140278258144670152'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2012/02/keep-trying.html' title='Keep trying'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8534270793424105918</id><published>2012-01-30T12:53:00.000-05:00</published><updated>2012-01-30T12:53:15.891-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colleagues'/><title type='text'>Learning to COPE</title><content type='html'>Scott M. Fulton, III &lt;a href="http://www.readwriteweb.com/hack/2012/01/netflix-engineer-daniel-jacobs.php"&gt;interviews Daniel Jacobson&lt;/a&gt; in support of Dan's new O'Reilly book &lt;a href="http://shop.oreilly.com/product/0636920021223.do"&gt;&lt;span class="workTitle"&gt;APIs: A Strategy Guide&lt;/span&gt;&lt;/a&gt;, co-authored with Greg Brail and Dan Wood.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8534270793424105918?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8534270793424105918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8534270793424105918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8534270793424105918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8534270793424105918'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2012/01/learning-to-cope.html' title='Learning to COPE'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6300819491156708839</id><published>2012-01-26T14:06:00.000-05:00</published><updated>2012-01-26T14:06:41.268-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>Had we but money enough and time</title><content type='html'>&lt;a href="http://plan28.org/"&gt;Plan 28&lt;/a&gt;, brainchild of John Graham-Cumming and Doron Swade, and with the cooperation of London's &lt;a href="http://www.sciencemuseum.org.uk/"&gt;Science Museum&lt;/a&gt; and the &lt;a href="http://www.computerconservationsociety.org/"&gt;Computer Conservation Society&lt;/a&gt;, has begun the process of building Charles Babbage's Analytical Engine.  Once Babbage's plans are digitized, the first big task is to figure out which of his (incomplete) designs to build.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6300819491156708839?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6300819491156708839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6300819491156708839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6300819491156708839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6300819491156708839'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2012/01/had-we-but-money-enough-and-time.html' title='Had we but money enough and time'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8030807865690407616</id><published>2012-01-24T12:35:00.000-05:00</published><updated>2012-01-24T12:35:04.415-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='cms'/><title type='text'>No vanilla, just chocolate</title><content type='html'>I am sure that one of my upcoming projects can find a use for this: Matthew DeLambo introduces ICE, a &lt;a href="http://open.blogs.nytimes.com/2012/01/23/introducing-ice-writing-for-the-web-first/"&gt;plugin for TinyMCE and WordPress that tracks changes&lt;/a&gt;.  The post also mentions the &lt;a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html"&gt;DOM Range&lt;/a&gt; feature, which also might have helped us out on some previous work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8030807865690407616?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8030807865690407616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8030807865690407616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8030807865690407616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8030807865690407616'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2012/01/no-vanilla-just-chocolate.html' title='No vanilla, just chocolate'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-446516262999912135</id><published>2012-01-18T13:18:00.001-05:00</published><updated>2012-01-18T13:18:05.037-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>Job openings</title><content type='html'>The best job opportunities are found through &lt;a href="http://www.readwriteweb.com/archives/another_reason_to_become_facebook_friends_with_str.php"&gt;weak ties&lt;/a&gt;, or so Alicia Eler claims.  What better way to test this hypothesis than to check out the &lt;a href="http://tbe.taleo.net/NA12/ats/careers/searchResults.jsp?org=SITEWORX&amp;cws=1"&gt;current openings at Siteworx&lt;/a&gt;?  We have 24 slots that we are looking to fill in New York, Chicago, Raleigh, and at headquarters in Reston, Va.  If your're intertested, contact me through &lt;a href="http://scr.im/dgorsline"&gt;http://scr.im/dgorsline&lt;/a&gt; or leave a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-446516262999912135?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/446516262999912135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=446516262999912135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/446516262999912135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/446516262999912135'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2012/01/job-openings.html' title='Job openings'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7810831213362162022</id><published>2012-01-18T13:08:00.001-05:00</published><updated>2012-01-18T13:08:22.395-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><title type='text'>Good advice</title><content type='html'>Two related links via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;: Jennifer Lindner interviews two instructors from &lt;a href="http://girldevelopit.com/"&gt;Girl Develop It&lt;/a&gt;, which offers workshops in HTML/CSS, JavaScript/jQuery, Ruby on Rails, and other topics in six cities worldwide; &lt;a href="http://www.steminist.com/"&gt;STEMINIST &lt;/a&gt;is a Storify-style aggregator of news about women in science, technology, engineering, and mathematics.&lt;p&gt;Izzy Johnson of Girl Develop It:&lt;br /&gt;&lt;blockquote&gt;I would advise anyone who wants to be involved in instruction that the first issue you have to address is never about the language. Not “What is a variable?” or “What does a for loop do?” The first issue you have to address is making sure each person in the room believes that they are capable of learning everything you are about to tell them. From your curriculum, to your slides, to your attitude–create a class that builds confidence at every step.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7810831213362162022?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7810831213362162022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7810831213362162022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7810831213362162022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7810831213362162022'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2012/01/good-advice.html' title='Good advice'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6149753650533915876</id><published>2012-01-09T10:06:00.001-05:00</published><updated>2012-01-09T10:06:57.180-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='languages and processing'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>Looking for an NB compiler</title><content type='html'>&lt;blockquote&gt;I decided to follow the single-letter style and called it C, leaving open the question whether the name represented a progression through the alphabet or through the letters in BCPL. &lt;/blockquote&gt;Via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;, in a paper from 1993, Dennis Ritchie describes &lt;a href="http://cm.bell-labs.com/cm/cs/who/dmr/chist.html"&gt;the evolution of C&lt;/a&gt; from its predecessor languages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6149753650533915876?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6149753650533915876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6149753650533915876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6149753650533915876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6149753650533915876'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2012/01/looking-for-nb-compiler.html' title='Looking for an NB compiler'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-4031691578624146101</id><published>2011-12-29T10:37:00.000-05:00</published><updated>2011-12-29T10:37:45.316-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><title type='text'>Sorry about the boat</title><content type='html'>&lt;p&gt;Grace Hopper gives David Letterman a nanosecond.&lt;/p&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/RZ0g5_NgRao" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-4031691578624146101?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/4031691578624146101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=4031691578624146101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4031691578624146101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4031691578624146101'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/12/sorry-about-boat.html' title='Sorry about the boat'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/RZ0g5_NgRao/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7171147582312695887</id><published>2011-12-23T16:07:00.002-05:00</published><updated>2011-12-23T16:12:59.205-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>So long for now</title><content type='html'>&lt;a href="http://www.flickr.com/photos/32054489@N00/6560921963/" title="The car for D.S. would pull up here by landslide virgo, on Flickr"&gt;&lt;img src="http://farm8.staticflickr.com/7152/6560921963_7c38bb3d6a_t.jpg" width="100" height="75" alt="The car for D.S. would pull up here" class="photoleft"&gt;&lt;/a&gt;My engagement here is complete, but they haven't asked me to return my badge just yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7171147582312695887?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7171147582312695887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7171147582312695887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7171147582312695887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7171147582312695887'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/12/so-long-for-now.html' title='So long for now'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-791488200773386841</id><published>2011-12-20T15:07:00.000-05:00</published><updated>2011-12-20T15:07:19.612-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colleagues'/><title type='text'>Quick with a Sharpie</title><content type='html'>This is why I have loved working with this client for nearly three years: everyone here lives at the intersection of unstinting accuracy (I am acquainted with the copy editor who marked up the milk carton) and the &lt;a href="http://npr.tumblr.com/post/14319093326/this-is-npr-seen-today-in-the-5th-floor"&gt;willingness to share a joke&lt;/a&gt;.  This is what Russell Baker called being serious, not solemn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-791488200773386841?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/791488200773386841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=791488200773386841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/791488200773386841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/791488200773386841'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/12/quick-with-sharpie.html' title='Quick with a Sharpie'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1689272642317070537</id><published>2011-12-19T11:06:00.001-05:00</published><updated>2011-12-19T11:24:19.522-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='performance optimization'/><title type='text'>Links roundup 2</title><content type='html'>More interesting links in the read-and-file pile.&lt;ul&gt;&lt;li&gt;Phillip Tellis's piece on &lt;a href="http://coding.smashingmagazine.com/2011/11/14/analyzing-network-characteristics-using-javascript-and-the-dom-part-1/"&gt;analyzing network performance&lt;/a&gt; with JavaScript might come in handy some time.&lt;/li&gt;&lt;li&gt;Beyond &lt;code&gt;console.log()&lt;/code&gt;: &lt;a href="http://www.andismith.com/blog/2011/11/25-dev-tool-secrets/"&gt;a synoptic how-to&lt;/a&gt; for Chrome Developer Tools, Firebug, IE Developer Toolbar, Dragonfly, and Safari Developer Tools.&lt;/li&gt;&lt;li&gt;More information than I could possibly make use of about &lt;a href="http://matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp"&gt;what's inside a .gif&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1689272642317070537?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1689272642317070537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1689272642317070537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1689272642317070537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1689272642317070537'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/12/links-roundup-2.html' title='Links roundup 2'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8582100166587633689</id><published>2011-12-16T15:22:00.001-05:00</published><updated>2011-12-16T15:22:41.695-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>Soft launch</title><content type='html'>We're rolling out a new look for live events (music now, but next year, who knows?).  The &lt;a href="http://www.npr.org/event/music/141420520/hilary-hahn-tiny-desk-concert"&gt;Tiny Desk Concerts&lt;/a&gt; are in the process of being migrated to this new wide-screen theater-like experience.  As usual, my contributions were down in the gritty works, rather than up front.  But I was very happy to be on the team.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8582100166587633689?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8582100166587633689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8582100166587633689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8582100166587633689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8582100166587633689'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/12/soft-launch.html' title='Soft launch'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8656083819143558916</id><published>2011-12-13T11:39:00.001-05:00</published><updated>2011-12-13T21:00:05.694-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emulators'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>Links roundup</title><content type='html'>Lots of interesting material accumulating in my Instapaper account that I need to read and/or shuffle into my bookmarks repository and/or link to here.&lt;ul&gt;&lt;li&gt;Swizec Teller and his commenters have been working on coding a &lt;a href="http://swizec.com/blog/a-turing-machine-in-133-bytes-of-javascript/swizec/3069"&gt;Turing machine in JavaScript&lt;/a&gt; in as little source code as possible.  (I was about to write "as compactly as possible," but optimization in space and time of this little beastie is a project for another day.)&lt;/li&gt;&lt;li&gt;Man, I need me a &lt;a href="http://thedailywtf.com/Articles/Directive-595.aspx"&gt;Directive 1&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Wonderful vintage video of LEO, &lt;a href="http://googleblog.blogspot.com/2011/11/celebrating-leo-worlds-first-business.html"&gt;Lyons Electronic Office&lt;/a&gt;, placed into service 17 November 1951.  LEO was built, not by a business machines manufacturer, but by J. Lyons &amp;amp Co., a large British baking firm and chain of tea shops.&lt;blockquote&gt;LEO was such a success that Lyons set up a commercial subsidiary to sell spare time on LEO to other businesses, including the Ford Motor Company, which used it to process the payroll for the thousands of workers at its U.K. plant. Later, Lyons also built entirely new LEOs and sold them to other blue-chip companies of the era. In total, more than 70 LEOs were built, with the last remaining in service until the 1980s....&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.scientificamerican.com/at-scientific-american/2011/08/23/systems-analysis-look-back-1966-scientific-american-article/"&gt;Peter Norvig gives a balanced appraisal&lt;/a&gt; of Christopher Strachey's "System Analysis and Programming," written for the September 1966 issue of &lt;span class="workTitle"&gt;Scientific American&lt;/span&gt;.  In the original article (available online), Strachey walks through the process of analyzing, designing, and coding a program to play checkers.  Unfortunately, Strachey probably never compiled (by hand: at the time, his high-level CPL language had no compiler, nor even a complete formal description) and executed his demonstration program, as it has typos and bugs.  But the trick (borrowed from Arthur Samuel) that he uses to number the squares of a checkerboard is quite clever.&lt;/li&gt;&lt;/ul&gt;(Links via &lt;a href="http://twitter.com/#!/NPRTechTeam"&gt;@NPRTechTeam&lt;/a&gt;, &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;, and others.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8656083819143558916?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8656083819143558916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8656083819143558916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8656083819143558916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8656083819143558916'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/12/links-roundup.html' title='Links roundup'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-180370894959315730</id><published>2011-12-07T21:12:00.001-05:00</published><updated>2011-12-07T21:17:05.755-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='development environments'/><title type='text'>dmr</title><content type='html'>Nice recap by Warren Toomey of the genesis of &lt;a href="http://spectrum.ieee.org/computing/software/the-strange-birth-and-long-life-of-unix/"&gt;the ultimate under-the-radar project&lt;/a&gt;, Unix.&lt;blockquote&gt;But [Ken] Thompson and the others helping him knew that the PDP‑7, which was already obsolete, would not be able to sustain their skunkworks for long. They also knew that the lab's management wasn't about to allow any more research on operating systems.&lt;p&gt;So Thompson and [Dennis] Ritchie got crea­tive. They formulated a proposal to their bosses to buy one of DEC's newer minicomputers, a PDP-11, but couched the request in especially palatable terms. They said they were aiming to create tools for editing and formatting text, what you might call a word-processing system today. The fact that they would also have to write an operating system for the new machine to support the editor and text formatter was almost a footnote.&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-180370894959315730?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/180370894959315730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=180370894959315730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/180370894959315730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/180370894959315730'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/12/nice-recap-by-warren-toomey-of-genesis.html' title='dmr'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6069104886889911317</id><published>2011-11-05T16:11:00.000-04:00</published><updated>2011-11-05T16:11:31.142-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><category scheme='http://www.blogger.com/atom/ns#' term='online services'/><title type='text'>This week's mystery</title><content type='html'>&lt;p&gt;I'm building a little interface between my client's CMS and Flickr.  The new tool will harvest images that the client (and its photographers on assignment) has posted to Flickr and will incorporate them into the CMS, with editors adding additional metadata subsequent to publication.&lt;p&gt;First let me say how impressed I am overall with the &lt;a href="http://www.flickr.com/services/api/"&gt;Flickr API&lt;/a&gt;.  The services are comprehensive; names of things are consistent and parallel; each service has its own web-based test harness so you can try it out.  And the API Just Works. &lt;p&gt;Now, to get the full-size images originally posted to Flickr, my interface app has to authenticate to Flickr using the OAuth protocol.  This is somewhat fiddly code, but Flickr's documentation &lt;a href="http://www.flickr.com/services/api/auth.oauth.html"&gt;explains the process flow quite well&lt;/a&gt;, and with the help of the &lt;a href="https://github.com/fernandezpablo85/scribe-java"&gt;Scribe&lt;/a&gt; library from &lt;a href="http://www.linkedin.com/in/fernandezpablo85"&gt;Pablo Ferndandez&lt;/a&gt;, I had my app working in short order.&lt;p&gt;Until this past week, that is.  A few days ago I was actively working on my app and doing a lot of debugging and banging through the user authorization page.  And then, sporadically, instead of the expected "[David's app] wants to link to your Flickr account." the page would display this message: "Oops! Flickr doesn't recognise the "oauth_token" this application is trying to use."  Long story short, I tried just about everything, wiggling all the wires that I could, logging out of Flickr, restarting my Tomcat and Apache&amp;#8212;and then sometimes the right page would appear and sometimes it wouldn't.&lt;p&gt;It turns out that other developers are experiencing the same problem.  See, for instance, &lt;a href="http://www.flickr.com/groups/api/discuss/72157628028927244/"&gt;this discussion thread&lt;/a&gt; on the Flickr API group, as well as &lt;a href="https://github.com/fernandezpablo85/scribe-java/issues/177"&gt;this post&lt;/a&gt; to Scribe's support board.  No replies from Flickr's tech team as to what's going on.  I suspect that Flickr is silently throttling the number of requests to the authorization page.  This may not be a problem for my client when this tool goes into production, but it makes it dang hard to code and test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6069104886889911317?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6069104886889911317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6069104886889911317' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6069104886889911317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6069104886889911317'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/11/this-weeks-mystery.html' title='This week&apos;s mystery'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1206886992816447010</id><published>2011-10-28T22:24:00.000-04:00</published><updated>2011-12-23T16:12:20.918-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'></title><content type='html'>&lt;a href="http://www.flickr.com/photos/32054489@N00/6290059913/" title="two Eds by landslide virgo, on Flickr"&gt;&lt;img src="http://farm7.static.flickr.com/6058/6290059913_7da93dfbe1_t.jpg" width="100" height="75" alt="two Eds" class="photoleft"&gt;&lt;/a&gt;Ed the fish, &lt;i&gt;Betta&lt;/i&gt; sp., graciously agreed to pose with me and one of the honors the team has received recently, a&lt;a href="http://www.rtnda.org/pages/media_items/2011-national-edward-r.-murrow-award-winners2028.php?id=2028"&gt; 2011 Edward R. Murrow Award&lt;/a&gt; granted by the Radio Television Digital News Association.  The award recognizes &lt;a href="http://www.npr.org/"&gt;NPR.org&lt;/a&gt; in the Radio-Network Market for excellence as a Broadcast Affiliated Website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1206886992816447010?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1206886992816447010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1206886992816447010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1206886992816447010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1206886992816447010'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/10/ed-fish-betta-sp.html' title=''/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm7.static.flickr.com/6058/6290059913_7da93dfbe1_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1036218373360805639</id><published>2011-10-24T22:03:00.002-04:00</published><updated>2011-10-24T22:07:21.107-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analysis and design case studies'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>5 pages</title><content type='html'>Sometimes a photo of a whiteboard isn't such a creative, cheerful thing.  &lt;a href="http://thedailywtf.com/Articles/The-Query-of-Despair.aspx"&gt;The horror! the horror!&lt;/a&gt;  As clear as I can read, one of the tables in this query is called BEST_MURDER.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1036218373360805639?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1036218373360805639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1036218373360805639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1036218373360805639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1036218373360805639'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/10/5-pages.html' title='5 pages'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6771627530547634598</id><published>2011-10-24T21:44:00.004-04:00</published><updated>2011-10-24T21:51:46.499-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>Two for one</title><content type='html'>With Zach Brand as co-author (and curator of penguin images) (and editing by Kim Bryant and Wright Bryan), I put together a post that describes the team's recent forays into low-impact skunkworks, known as &lt;a href="http://www.npr.org/blogs/inside/2011/10/14/141312774/happy-accidents-the-joy-of-serendipity-days"&gt;Serendipity Days&lt;/a&gt;.  Siteworx &lt;a href="http://www.siteworx.com/blog/2011/10/24/siteworx%E2%80%99-david-gorsline-takes-part-in-npr%E2%80%99s-%E2%80%9Cserendipity-days%E2%80%9D/"&gt;graciously accepted the material&lt;/a&gt; as a cross-post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6771627530547634598?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6771627530547634598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6771627530547634598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6771627530547634598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6771627530547634598'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/10/two-for-one.html' title='Two for one'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-3658052936199993019</id><published>2011-10-20T12:44:00.003-04:00</published><updated>2011-10-20T12:47:22.996-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><title type='text'>Compact</title><content type='html'>Lea Verou explains some simple, clever ways to do your own &lt;a href="http://coding.smashingmagazine.com/2011/10/19/optimizing-long-lists-of-yesno-values-with-javascript/"&gt;bitpacking in JavaScript&lt;/a&gt;, including a sneaky way to break up text into 16-character chunks with a regular expression match.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-3658052936199993019?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/3658052936199993019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=3658052936199993019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3658052936199993019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3658052936199993019'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/10/compact.html' title='Compact'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5525302134110693293</id><published>2011-10-18T21:38:00.001-04:00</published><updated>2011-10-18T21:42:10.175-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><title type='text'>What if...?</title><content type='html'>Registration is still open for the 2011 &lt;a href="http://gracehopper.org/2011/"&gt;Grace Hopper Celebration&lt;/a&gt; of Women in Computing.  This year's conference will be held in Portland, Ore., in November.  Career fair, workshops, and more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5525302134110693293?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5525302134110693293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5525302134110693293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5525302134110693293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5525302134110693293'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/10/what-if.html' title='What if...?'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5370117735601164998</id><published>2011-09-27T12:45:00.001-04:00</published><updated>2011-09-27T12:47:30.509-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>False immodesty</title><content type='html'>What can I say?  Word gets around: &lt;a href="http://www.patrickcooper.com/2011/09/taking-wins-where-we-find-them.html"&gt;"Your CMS is legendary. We are all envious!"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5370117735601164998?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5370117735601164998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5370117735601164998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5370117735601164998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5370117735601164998'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/09/false-immodesty.html' title='False immodesty'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1907571497986740699</id><published>2011-09-25T17:40:00.003-04:00</published><updated>2011-09-25T17:47:50.223-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><title type='text'>STEM outreach</title><content type='html'>&lt;a href="http://www.businessweek.com/magazine/a-campus-champion-for-women-in-computer-science-09222011.html"&gt;Ari Levey profiles Maria Klawe&lt;/a&gt;, president of &lt;a href="http://www.hmc.edu/"&gt;Harvey Mudd College&lt;/a&gt; (one of the Claremont colleges).  Since her arrival in 2006, the percentage of female computer science majors at Mudd has more than tripled, to 42%.&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="https://plus.google.com/?hl=en&amp;tab=wX#110286587261352351537/about"&gt;Felicia Day&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1907571497986740699?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1907571497986740699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1907571497986740699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1907571497986740699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1907571497986740699'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/09/ari-levey-profiles-maria-klawe.html' title='STEM outreach'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7990057277654705037</id><published>2011-09-25T17:14:00.004-04:00</published><updated>2011-09-25T17:32:08.085-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mathematics'/><title type='text'>Clear as a bell</title><content type='html'>&lt;a href="http://mathdl.maa.org/images/upload_library/22/Allendoerfer/stahl96.pdf"&gt;Saul Stahl explains how the Gaussian distribution&lt;/a&gt;, friend and bane of every new statistics student, came to be, well, normal.  It's far from obvious that the best estimator of some unknown (but presumably fixed, measurable) quantity is the one that minimizes the squared errors of all the imperfect observations, but that's what we do when we compute a mean.  And indeed, in the 17th and 18th centuries some scientists (like Robert Boyle of the Royal Society) argued that averaging all observations was a bad way to summarize data:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;... experiments ought to be estimated by their value, not their number; ... a single experiment... may as well deserve an entire treatise.... As one of those large and orient pearls... may outvalue a very great number of those little... pearls, that are to be bought by the ounce...&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Read as much or as little of the math in Stahl's paper as you care to.&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.johndcook.com/blog/"&gt;The Endeavour&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7990057277654705037?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7990057277654705037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7990057277654705037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7990057277654705037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7990057277654705037'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/09/clear-as-bell.html' title='Clear as a bell'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5191435155336530413</id><published>2011-09-09T21:06:00.003-04:00</published><updated>2011-09-09T21:10:48.315-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Do you think you can do better?</title><content type='html'>Via &lt;a href="https://plus.google.com/109179169574535647337"&gt;Chris Curtis&lt;/a&gt;, a sort algorithm that is constant in time and linear (i.e, zero) in memory: &lt;a href="http://www.dangermouse.net/esoteric/intelligentdesignsort.html"&gt;Intelligent Design Sort&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5191435155336530413?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5191435155336530413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5191435155336530413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5191435155336530413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5191435155336530413'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/09/do-you-think-you-can-do-better.html' title='Do you think you can do better?'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6910110041599720165</id><published>2011-08-31T12:37:00.004-04:00</published><updated>2011-12-07T21:08:00.171-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='languages and processing'/><title type='text'>Wish I had learned this</title><content type='html'>&lt;a href="http://www.johndcook.com/blog/2011/08/31/awk-one-liners/"&gt;John D. Cook reviews&lt;/a&gt; Peteris Krumins's new e-book, &lt;a href="http://www.catonmat.net/blog/awk-book/"&gt;&lt;span class="workTitle"&gt;Awk One-Liners Explained&lt;/span&gt;&lt;/a&gt;.  The need for one-line programs accounts for the long-tail popularity of an old command-line language like Awk.  As Cook writes,&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;If something takes more than one line of awk, I probably don’t want to use awk.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;My copy of &lt;a href="http://www.amazon.com/AWK-Programming-Language-Alfred-Aho/dp/020107981X/"&gt;Aho, Kernighan, and Weinberger&lt;/a&gt; has this one-liner pencilled on the back page.  I've never found a simpler way to find the longest pathnames in a directory tree:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;find . | awk '{print length($0) " " $0}' | sort -r -n&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;As I remember, I once prototyped a COBOL pretty-printer in Awk.  That was more than a one-liner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6910110041599720165?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6910110041599720165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6910110041599720165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6910110041599720165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6910110041599720165'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/08/wish-i-had-learned-this.html' title='Wish I had learned this'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5908022877536426272</id><published>2011-08-26T12:34:00.003-04:00</published><updated>2011-08-26T12:38:44.388-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Taling to the duck</title><content type='html'>Harry Roberts offers &lt;a href="http://coding.smashingmagazine.com/2011/08/26/writing-css-for-others/"&gt;coding conventions for writing CSS&lt;/a&gt;.  His tip about pattern-matching selectors with regular expressions is nifty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5908022877536426272?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5908022877536426272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5908022877536426272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5908022877536426272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5908022877536426272'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/08/taling-to-duck.html' title='Taling to the duck'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6711868803559900169</id><published>2011-08-23T13:02:00.001-04:00</published><updated>2011-08-23T13:04:06.597-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>We all want to be B.A.</title><content type='html'>My scrum team for my new project has &lt;a href="http://nprmle.tumblr.com/"&gt;daily theme music&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6711868803559900169?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6711868803559900169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6711868803559900169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6711868803559900169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6711868803559900169'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/08/we-all-want-to-be-ba.html' title='We all want to be B.A.'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8899939795465159105</id><published>2011-08-23T12:53:00.003-04:00</published><updated>2011-08-23T12:58:10.671-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analysis and design case studies'/><title type='text'>Fail better</title><content type='html'>Via &lt;a href="http://www.readwriteweb.com/hack/"&gt;ReadWriteHack&lt;/a&gt;, Kevin Montrose &lt;a href="http://kevinmontrose.com/2011/08/14/history-of-the-stack-exchange-api-mistakes/"&gt;performs a retrospective&lt;/a&gt; analysis (including pointing out his team's mistakes) of the first version of the &lt;a href="http://stackexchange.com/"&gt;Stack Exchange&lt;/a&gt; API.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8899939795465159105?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8899939795465159105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8899939795465159105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8899939795465159105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8899939795465159105'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/08/fail-better.html' title='Fail better'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6101309852673173007</id><published>2011-08-11T09:10:00.003-04:00</published><updated>2011-08-11T09:15:44.208-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cms'/><title type='text'>Not many happy campers</title><content type='html'>&lt;a href="http://www.adweek.com/news/press/trouble-back-ends-133917"&gt;Erin Griffith surveys media companies&lt;/a&gt; and finds very few of them that are successful with the CMS (content management system) they use&amp;#8212;be it open source, proprietary, or purpose-built.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;“When you try to build a product that works for everybody, it works for nobody,” a former AOL employee says.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.themorningnews.org/"&gt;The Morning News&lt;/a&gt;.)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6101309852673173007?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6101309852673173007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6101309852673173007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6101309852673173007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6101309852673173007'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/08/not-many-happy-campers.html' title='Not many happy campers'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1719028496084275773</id><published>2011-08-07T17:06:00.002-04:00</published><updated>2011-08-07T17:10:43.007-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>Job openings</title><content type='html'>It seems like every time I repost this link, we're looking to fill more positions than the time before.  &lt;a href="http://tbe.taleo.net/NA12/ats/careers/searchResults.jsp?org=SITEWORX&amp;cws=1"&gt;Siteworx needs 31 people&lt;/a&gt; to fill slots in our Reston, Va. headquarters; New York; Atlanta; Rochester, N.Y.; and Raleigh, N.C.  Interested?   Contact me through &lt;a href="http://scr.im/dgorsline"&gt;http://scr.im/dgorsline&lt;/a&gt; or leave a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1719028496084275773?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1719028496084275773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1719028496084275773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1719028496084275773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1719028496084275773'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/08/job-openings.html' title='Job openings'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2746107212819222504</id><published>2011-07-27T14:25:00.004-04:00</published><updated>2011-07-27T14:48:28.427-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><title type='text'>Geek girls return</title><content type='html'>&lt;a href="http://blog.fogcreek.com/girls-go-geek-again/"&gt;Anna Lewis interviews Fog Creek Software's Leah Hanson&lt;/a&gt;, currently that organization's only woman intern.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;Q:&lt;/span&gt; As you know, Fog Creek would like to attract and hire more developers who are women. Is there anything you’d recommend we do in our recruiting process to attract more women?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Leah:&lt;/span&gt; ...one of the things that happens is that women don’t even think they’re qualified for something because it’s advertised in competitive language. The language of competition not only doesn’t appeal to many women, it actually puts them off. Google advertises their Summer of Code with very competitive language. In 2006, GNOME received almost two hundred GSoC applicants – all male. When GNOME advertised an identical program for women, but emphasizing the opportunities for mentorship and learning, they received over a hundred highly qualified female applicants for the three spots they were able to fund.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Lewis leads the post with an excerpt from the April 1967 &lt;span class="workTitle"&gt;Cosmopolitan&lt;/span&gt;, which makes the point that programming is very Cosmo girl, especially when you get to use the cool &lt;a href="http://publib.boulder.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.f54ug00/comm.htm"&gt;light pen&lt;/a&gt;.  And for a time, women were attracted to the field, but the proportion of female CS majors peaked in the mid-1980's, when Ronald Reagan was president and hacking moved to the desktop.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2746107212819222504?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2746107212819222504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2746107212819222504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2746107212819222504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2746107212819222504'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/07/geek-girls-return.html' title='Geek girls return'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2522280667656352812</id><published>2011-07-27T13:48:00.002-04:00</published><updated>2011-07-27T13:54:18.593-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>Just in time for Adam Mansbach's 15 minutes</title><content type='html'>Ladies and gentlemen, may I present the new &lt;a href="http://www.npr.org/books/"&gt;NPR Books&lt;/a&gt; home page (with links to landing pages for each book and author featured)?  As usual on my projects for this client, I was on the team that built back-end tools to manage the content (and automate extraction of it from third-party sources), while other specialists did the work to make the content look good to the outside world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2522280667656352812?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2522280667656352812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2522280667656352812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2522280667656352812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2522280667656352812'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/07/just-in-time-for-adam-mansbachs-15.html' title='Just in time for Adam Mansbach&apos;s 15 minutes'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5901206338311478402</id><published>2011-07-20T09:22:00.002-04:00</published><updated>2011-07-20T09:28:33.545-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><title type='text'>Antikythera recap</title><content type='html'>Michael Edmunds and Tony Freeth review the &lt;a href="http://www.computer.org/portal/web/csdl/doi/10.1109/MC.2011.134"&gt;computational tools and techniques&lt;/a&gt; used to analyze the Antikythera Mechanism, ranging from the exotic (Tom Malzbender's polynomial texture maps) through the imaginative (DNA sequence matching tools) to the mundane (Excel macros).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5901206338311478402?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5901206338311478402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5901206338311478402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5901206338311478402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5901206338311478402'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/07/antikythera-recap.html' title='Antikythera recap'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7240724006280387654</id><published>2011-07-13T12:54:00.003-04:00</published><updated>2011-07-13T13:01:13.460-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><title type='text'>Go geek girls!</title><content type='html'>Congratulations to the &lt;a href="http://www.readwriteweb.com/archives/google_announces_the_winners_of_its_first_science.php"&gt;three winners of Google's first worldwide science fair&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    * Lauren Hodge (age13-14): Hodge studied the effect of different marinades on the &lt;a href="https://sites.google.com/site/decreasingcarcinogens/home"&gt;level of potentially harmful carcinogens&lt;/a&gt; in grilled chicken&lt;br /&gt;    * Naomi Shah (age 15-16): Shah endeavored to prove that making changes to indoor environments that improve indoor air quality can &lt;a href="https://sites.google.com/site/naomibetterairbetterlife/home"&gt;reduce people's reliance on asthma medications&lt;/a&gt;&lt;br /&gt;    * Shree Bose (17-18): Bose discovered a way to &lt;a href="https://sites.google.com/site/ampkandcisplatinresistance/home"&gt;improve ovarian cancer treatment&lt;/a&gt; for patients when they have built up a resistance to certain chemotherapy drugs&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7240724006280387654?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7240724006280387654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7240724006280387654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7240724006280387654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7240724006280387654'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/07/go-geek-girls.html' title='Go geek girls!'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1854966176620076075</id><published>2011-07-13T08:57:00.002-04:00</published><updated>2011-07-13T09:22:56.623-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><title type='text'>Survey design 101</title><content type='html'>Back when I worked at Vovici, I saw my share of badly designed online surveys.  Great sweeping masses of matrix questions were always popular, alas.  One of the services we provided was consulting with our customers to make their surveys more sensible and thereby to improve completion rates.&lt;br /&gt;&lt;br /&gt;Because I once had this professional interest, and because I actually have a graduate degree with a concentration in marketing and market research, I try to respond to solicitations to take a survey.  And if I see that it's poorly designed, I have no compunction about bailing out after the first page.  Forcing an answer to a question where my response is really "don't know/don't care" especially peeves me.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dcist.com/2011/07/please_take_the_dcist_reader_survey_2.php"&gt;DCist's 2011 readership survey&lt;/a&gt;, therefore, comes as a pleasant surprise.  It's short and to the effing point (three pages plus the thank-you page), that is, it's focused on getting business intelligence in just a few areas.  All the intrusive (for some people) demographic questions are on the last page, where they should be, so the respondent can skip them if he chooses to.  This is not the sort of survey you usually see hosted by the free service SurveyMonkey.  The only quibble I have is that the demographic questions are required-response.&lt;br /&gt;&lt;br /&gt;But it's this sequence of "don't care" response alternatives that tickles me.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;8. What device(s) do you use to get your TV programming? Check all that apply.   &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Computer&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A television&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Apple TV/Google TV/Boxee&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Game Console&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Smartphone&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tablet (iPad, Playbook, etc.)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I don't watch TV&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Other (please specify)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;9. What service(s) do you use to access your TV shows? Check all that apply.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Local network TV&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Cable/Satellite/FIOS TV&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Network sites (NBC.com, ABC.com)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Free streaming video sites (Hulu, Veoh)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Premium streaming video sites (Hulu, Netflix)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Subscriber exclusive apps (HBO Go, TWCable App, etc.)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I don't watch TV&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Other (please specify)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;10. What kind of TV programming do you enjoy? Check all that apply.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Drama&lt;/li&gt;&lt;br /&gt;&lt;li&gt;News&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sci-fi&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sports&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Movies&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Educational&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Reality&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Comedy&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Food &amp; Home&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I told you I don't watch TV, dammit!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Other (please specify)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1854966176620076075?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1854966176620076075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1854966176620076075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1854966176620076075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1854966176620076075'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/07/survey-design-101.html' title='Survey design 101'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6223151812351794129</id><published>2011-06-28T08:59:00.002-04:00</published><updated>2011-06-28T09:49:06.652-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Quick reaction</title><content type='html'>We have a little corner of the application that's a low-volume, lightweight workflow and e-mail notification system.  On demand, the web app assembles an e-mail message containing a summary of the article that the user has written; it then bundles that message into a &lt;code&gt;mailto:&lt;/code&gt; URL, attaches the URL to a hidden &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag on the page, and simulates a click of the tag's hyperlink.  The browser routes the request to the appropriate e-mail client (usually Outlook), the user adds any other desired information to the message, and sends it from the e-mail client.&lt;br /&gt;&lt;br /&gt;We found that we had to fudge things a bit so that the various browsers we support don't complain about this indirection.  The production JavaScript that was working smoothly up until last week follows.  (The method name is a little funky, but I think I had a good reason for it at the time.)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;//////&lt;br /&gt;//&lt;br /&gt;// Open a new window for an e-mail message with the specified properties.&lt;br /&gt;//&lt;br /&gt;// Arguments:&lt;br /&gt;//      subject, body, toAddress: expected to be URI encoded, special characters scrubbed&lt;br /&gt;//      mailToLink: DOM object to attach the mailto: link to&lt;br /&gt;//&lt;br /&gt;//////&lt;br /&gt;CLIENT.Utilities.openEmailBaseWindow = function (subject, body, toAddress, mailtoLink) {&lt;br /&gt;    try {&lt;br /&gt;        var url = 'mailto:' + toAddress + &lt;br /&gt;            '?subject=' +  subject + &lt;br /&gt;            '&amp;body=' + body;&lt;br /&gt;        if (mailtoLink.click) {&lt;br /&gt;            //IE path: avoids the 'sending by e-mail' warning&lt;br /&gt;            mailtoLink.href = url;&lt;br /&gt;            mailtoLink.click();&lt;br /&gt;        } else {&lt;br /&gt;            var form = document.forms['mailto'];&lt;br /&gt;            //Firefox path&lt;br /&gt;            form.action = url;&lt;br /&gt;            form.submit();&lt;br /&gt;        }&lt;br /&gt;    } catch (e) {&lt;br /&gt;        //write error message to the log; show error to the user;&lt;br /&gt;        //drop hints that the browser may not be properly config'd for mailto:&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This code uses the presence of the &lt;code&gt;.click()&lt;/code&gt; method to detect browser capabilities.  But this month's release of Firefox 5, which apparently &lt;a href="http://news.cnet.com/8301-30685_3-20074590-264/rapid-release-firefox-meets-corporate-backlash/"&gt;caught some people unprepared&lt;/a&gt;, broke this JavaScript.  &lt;a href="https://developer.mozilla.org/en/Firefox_5_for_developers"&gt;Firefox 5 now defines a &lt;code&gt;.click()&lt;/code&gt; method for anchor tags.&lt;/a&gt;  So, in the code passage above, Firefox 5 takes the true path on the &lt;code&gt;if&lt;/code&gt; statement (commented as the Internet Explorer path).  Not a problem in itself, except that in this context, the &lt;a href="http://"&gt;&lt;code&gt;.click()&lt;/code&gt; method&lt;/a&gt; doesn't do anything&amp;#8212;more specifically, it does not cause the browser to navigate to the new URL.&lt;br /&gt;&lt;br /&gt;Our current workaround is to disable the &lt;code&gt;if&lt;/code&gt; test and to always use the form submission technique.  Using the form, Internet Explorer 8 under Windows 7 produces two separate warning popups, but we can live with this wart: few of our users depend on IE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6223151812351794129?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6223151812351794129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6223151812351794129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6223151812351794129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6223151812351794129'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/06/quick-reaction.html' title='Quick reaction'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2827717500859408801</id><published>2011-06-16T11:19:00.002-04:00</published><updated>2011-06-16T11:26:02.838-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>Murrow Awards</title><content type='html'>&lt;a href="http://www.npr.org/"&gt;npr.org&lt;/a&gt; is the recipient of the &lt;a href="http://www.rtdna.org/pages/media_items/2011-national-edward-r.-murrow-award-winners2028.php?id=2028"&gt;Radio Television Digital News Association's 2011 award&lt;/a&gt; for best web site in the network radio grouping, along with awards for audio reporting: hard news, audio investigative reporting, and (with Youth Radio) audio news series.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2827717500859408801?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2827717500859408801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2827717500859408801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2827717500859408801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2827717500859408801'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/06/murrow-awards.html' title='Murrow Awards'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8426447929468341423</id><published>2011-06-15T12:39:00.005-04:00</published><updated>2011-06-15T12:46:39.215-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><category scheme='http://www.blogger.com/atom/ns#' term='colleagues'/><category scheme='http://www.blogger.com/atom/ns#' term='cms'/><title type='text'>Content management ecosystems</title><content type='html'>&lt;a href="http://www.patrickcooper.com/"&gt;Patrick Cooper&lt;/a&gt; &lt;a href="http://www.poynter.org/how-tos/digital-strategies/134791/4-ways-content-management-systems-are-evolving-why-it-matters-to-journalists/"&gt;talks to Matt Thompson &lt;/a&gt; in a good piece that paints the big picture of which a news organization's CMS is just one element.&lt;br /&gt;&lt;blockquote&gt;We’ve finally begun to accept that no single CMS can handle all of a digital news organization’s content functions. A good content management system today is designed to interact with lots of other software. There’s now a genuine expectation that a CMS will play nicely with videos stored on YouTube, or comments managed by Disqus, or live chats embedded from CoverItLive. Other environments such as Facebook, Twitter and Tumblr come with their own suites of tools. And increasingly, what we call a “content management system” is actually a combo of multiple tightly-integrated systems.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8426447929468341423?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8426447929468341423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8426447929468341423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8426447929468341423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8426447929468341423'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/06/content-management-ecosystems.html' title='Content management ecosystems'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-229492707331047637</id><published>2011-06-07T13:17:00.002-04:00</published><updated>2011-06-07T13:21:40.277-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>Integrated</title><content type='html'>&lt;a href="http://searchcontentmanagement.techtarget.com/feature/NPRs-Web-content-management-system-governs-a-quarter-million-files"&gt;Jonathan Gourlay recaps Siteworx's participation&lt;/a&gt; in the redesign of &lt;a href="http://www.npr.org/"&gt;npr.org&lt;/a&gt;, and the necessary revamp of the CMS supporting it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-229492707331047637?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/229492707331047637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=229492707331047637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/229492707331047637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/229492707331047637'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/06/integrated.html' title='Integrated'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1527604335314802515</id><published>2011-05-31T21:10:00.003-04:00</published><updated>2011-05-31T21:15:30.933-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bookshelf'/><title type='text'>No argument here</title><content type='html'>&lt;a href="http://drdobbs.com/tools/229700183"&gt;Andrew Binstock rues&lt;/a&gt; that, 33 years after the first edition of &lt;span class="workTitle"&gt;The C Programming Language&lt;/span&gt;, Brian Kernighan and Dennis Ritchie's approach to teaching a language is still the gold standard.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The second thing K&amp;R omits is spoon feeding. You have to think as you work through it. All the information is there, but you're forced to engage the language through the examples to get what you need. The authors expect you to be an attentive reader. As a result, you can move quickly through the language because the book supports you, rather than forcing you to read pages that add little to your comprehension. &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1527604335314802515?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1527604335314802515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1527604335314802515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1527604335314802515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1527604335314802515'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/no-argument-here.html' title='No argument here'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6373775628376306440</id><published>2011-05-30T12:10:00.005-04:00</published><updated>2011-05-30T12:27:32.478-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colleagues'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>A great day in Arlington</title><content type='html'>&lt;a href="http://www.flickr.com/photos/32054489@N00/5776910028/" title="reunion by landslide virgo, on Flickr"&gt;&lt;img src="http://farm6.static.flickr.com/5062/5776910028_bfff110bcc_t.jpg" width="100" height="75" alt="reunion" style="float: left; padding-right: 5px;" &gt;&lt;/a&gt;Though it lacks a lot of the swing of &lt;a href="http://www.greatmodernpictures.com/pictures.htm"&gt;the original&lt;/a&gt;, 'twill serve.  Gary Long and Greg Lupfer rounded up two dozen of their former staff for a reunion.   These are folks that worked for Lupfer &amp; Long, Inc. and/or L&amp;L Software and/or L&amp;L Products in the late 1970s into the mid 1980s.  The various companies operated out of McLean, Va., and Hanover, N.H., providing professional services and off-the-shelf software products for accounting and general database applications.  Our computing platforms included the mainframes of the day under timesharing; in the 1980s, we moved onto minicomputers from Digital Equipment, Prime, Wang, and Hewlett-Packard.  Remnants of the companies made the transition to desktop computing and PCs toward the end of the decade.&lt;br /&gt;&lt;br /&gt;Top row, L-R: Louise, Ceil, Peter (seated); next row: Steve, Ken, Anne, Susan; next row: Eric, John, Jenny, Gary, Hao; next row: ?, Joanne, Amy, Dave J., Donna, Bill; next row: Elizabeth, Julia, David G.; bottom left: Greg; bottom right: Aubrey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6373775628376306440?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6373775628376306440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6373775628376306440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6373775628376306440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6373775628376306440'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/great-day-in-arlington.html' title='A great day in Arlington'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm6.static.flickr.com/5062/5776910028_bfff110bcc_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-9058124544233696492</id><published>2011-05-29T08:55:00.003-04:00</published><updated>2011-05-29T08:58:12.821-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics reporting and graphics'/><title type='text'>Shades of gray</title><content type='html'>Marcin Kozak proposes a &lt;a href="http://doi.ieeecomputersociety.org/10.1109/MCG.2010.112"&gt;hybrid design for scatterplots&lt;/a&gt;, using the best ideas of Edward Tufte and William Cleveland.  Kozak's improvement really shines when applied to multipanel plots.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-9058124544233696492?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/9058124544233696492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=9058124544233696492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9058124544233696492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9058124544233696492'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/shades-of-gray.html' title='Shades of gray'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6301586631935354705</id><published>2011-05-27T09:28:00.003-04:00</published><updated>2011-05-27T09:37:24.894-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Fonts for coders: 3</title><content type='html'>Dan Benjamin updates his &lt;a href="http://hivelogic.com/articles/top-10-programming-fonts/"&gt;top-ten list of monospaced fonts&lt;/a&gt; for coding work.  I rather like the swingin' look of &lt;a href="http://www.dafont.com/monofur.font"&gt;Monofur&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Benjamin is more interested in how fonts work at small point sizes than I am.  The smallest type that my tired old eyes can tolerate, for reading the excessively wide log files that this project generates, is Bitstream Vera Sans Mono at 8 points.&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6301586631935354705?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6301586631935354705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6301586631935354705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6301586631935354705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6301586631935354705'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/fonts-for-coders-3.html' title='Fonts for coders: 3'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6660925332522930432</id><published>2011-05-18T12:28:00.004-04:00</published><updated>2011-05-18T12:35:26.159-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emulators'/><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>What? no man pages?</title><content type='html'>Farbice Bellard has built a &lt;a href="http://bellard.org/jslinux/"&gt;Linux emulator in JavaScript&lt;/a&gt;.  One dependency: the draft &lt;a href="http://www.khronos.org/registry/typedarray/specs/latest/"&gt;Typed Arrays&lt;/a&gt; feature, supported by Firefox 4 and Chrome 11.&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.readwriteweb.com/hack/2011/05/run-linux-on-javascript.php"&gt;ReadWriteWeb&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6660925332522930432?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6660925332522930432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6660925332522930432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6660925332522930432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6660925332522930432'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/what-no-man-pages.html' title='What? no man pages?'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-3115678427883542333</id><published>2011-05-16T14:18:00.003-04:00</published><updated>2011-05-16T14:23:28.796-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Supercalifragilisticexpialidocious</title><content type='html'>Colleague Todd directed our attention to the CSS word-wrap property.  On newer browser platforms, it solves the problem of &lt;a href="http://webdesignerwall.com/tutorials/word-wrap-force-text-to-wrap"&gt;long unhyphenated words set in a narrow inset column&lt;/a&gt; or sidebar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-3115678427883542333?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/3115678427883542333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=3115678427883542333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3115678427883542333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3115678427883542333'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/supercalifragilisticexpialidocious.html' title='Supercalifragilisticexpialidocious'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-4672843537376507813</id><published>2011-05-09T12:33:00.002-04:00</published><updated>2011-05-09T12:38:00.490-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Not to mention Rosalind and Grace</title><content type='html'>&lt;blockquote&gt;...you don't become great by trying to be great.  You become great by wanting to do something, and then doing it so hard that you become great in the process.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;xkcd offers &lt;a href="http://xkcd.com/896/"&gt;Mother's Day wishes&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-4672843537376507813?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/4672843537376507813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=4672843537376507813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4672843537376507813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4672843537376507813'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/not-to-mention-rosalind-and-grace.html' title='Not to mention Rosalind and Grace'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-9102333678700474171</id><published>2011-05-05T21:40:00.003-04:00</published><updated>2011-05-05T21:51:35.755-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>Not just slinging rivets</title><content type='html'>&lt;a href="http://spectrum.ieee.org/podcast/computing/software/from-ballistics-to-programming/"&gt;Steven Cherry interviews LeAnn Erickson&lt;/a&gt;, director of &lt;span class="workTitle"&gt;Top Secret Rosies: The Female Computers of World War II&lt;/span&gt;.  The difference engines that were used to compute artillery tables were cranked by workers of the feminine gender.  Something as regrettable as waging war, throwing projectiles at people, at least had the favorable side effect of providing a few brain-job opportunities for women.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-9102333678700474171?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/9102333678700474171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=9102333678700474171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9102333678700474171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9102333678700474171'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/05/not-just-slinging-rivets.html' title='Not just slinging rivets'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7139873372296860476</id><published>2011-04-15T21:52:00.002-04:00</published><updated>2011-04-15T21:59:10.491-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>Just sayin'</title><content type='html'>When the exec for your client's unit brags about how productive the team is, you have to link to it: &lt;a href="http://www.niemanlab.org/2011/04/love-me-love-my-npr-public-radio-listeners-can-show-off-their-loyalty/"&gt;Kinsey Wilson talks to Andrew Phelps&lt;/a&gt; of the Nieman Journalism Lab:&lt;br /&gt;&lt;blockquote&gt;NPR’s digital team works on a bold schedule: Programmers work on two-week coding cycles to encourage rapid development. These so-called sprints encourage both failure and innovation. It’s what allowed NPR to develop its iPad app in one month, or two sprints, just in time for the iPad’s launch in April 2010. (That app just surpassed one million downloads.)&lt;br /&gt;&lt;br /&gt;I asked Wilson, who used to run digital operations at &lt;span class="title"&gt;USA Today&lt;/span&gt;, why it can be so difficult for other large organizations to churn out new projects — and how he’s able to do it now. “From my perspective, it comes from long, hard experience doing it badly,” he said. “Resources are always tight and so there’s probably a fear of burning too many cycles on something that…doesn’t go right.” But he said the rapid-release schedule encourages unconventional projects like &lt;a href="http://apps.facebook.com/iheartnpr/"&gt;I Heart NPR&lt;/a&gt;, and very few ideas are swatted down.&lt;br /&gt;&lt;br /&gt;“The digital media staff here is about half the size of the one I had at &lt;span class="title"&gt;USA Today&lt;/span&gt; and probably produces twice the output,” he said.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Link via Javaun.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7139873372296860476?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7139873372296860476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7139873372296860476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7139873372296860476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7139873372296860476'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/04/just-sayin.html' title='Just sayin&apos;'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-175354538551259005</id><published>2011-04-14T09:56:00.004-04:00</published><updated>2011-04-14T11:00:30.061-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>Job openings</title><content type='html'>Siteworx has &lt;a href="http://tbe.taleo.net/NA12/ats/careers/searchResults.jsp?org=SITEWORX"&gt;17 open positions&lt;/a&gt; to fill for openings for software developers and architects, tech managers, PMs, and other fine folks. Locations include Reston headquarters and four other cities.  As always, contact me through &lt;a href="http://scr.im/dgorsline"&gt;http://scr.im/dgorsline&lt;/a&gt; or leave a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-175354538551259005?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/175354538551259005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=175354538551259005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/175354538551259005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/175354538551259005'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/04/job-openings.html' title='Job openings'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8301421403688860473</id><published>2011-04-08T11:39:00.003-04:00</published><updated>2011-04-08T11:46:50.944-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><title type='text'>Scribing</title><content type='html'>More secrets of the &lt;a href="http://www.antikythera-mechanism.gr/"&gt;Antikythera Mechanism&lt;/a&gt; revealed: last year James Evans et al. &lt;a href="http://www.shpltd.co.uk/jhacont2010.html"&gt;published&lt;/a&gt; evidence that subtle asymmetries in the zodiacal dial markings match slight differences in the sun's yearly apparent motion across the sky. &lt;a href="http://www.wired.com/wiredscience/2011/04/antikythera-mechanism/"&gt;Lisa Hopkins explains.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.readwriteweb.com/"&gt;ReadWriteWeb&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8301421403688860473?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8301421403688860473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8301421403688860473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8301421403688860473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8301421403688860473'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/04/scribing.html' title='Scribing'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5695773440920641569</id><published>2011-03-31T13:04:00.003-04:00</published><updated>2011-03-31T13:08:36.624-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='languages and processing'/><category scheme='http://www.blogger.com/atom/ns#' term='statistics reporting and graphics'/><title type='text'>Inklings</title><content type='html'>For the watch-later pile: Klint Finley &lt;a href="http://www.readwriteweb.com/hack/2011/03/3-presentations-on-r.php"&gt;rounds up&lt;/a&gt; several presentations on R.  Hmm.  I wonder what sort of project I could make with R for the statistical package and the Bird Phenology Project's &lt;a href="http://www.pwrc.usgs.gov/bpp/BPPData.cfm"&gt;data set&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5695773440920641569?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5695773440920641569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5695773440920641569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5695773440920641569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5695773440920641569'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/03/inklings.html' title='Inklings'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6269223921206310468</id><published>2011-03-28T12:59:00.005-04:00</published><updated>2011-03-28T13:06:47.642-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sorting and searching'/><category scheme='http://www.blogger.com/atom/ns#' term='augmented reality'/><title type='text'>Might not have helped with the scores, though</title><content type='html'>Man, if we'd had this tool when I had a work-study job with the university music library... well, I wouldn't have had a job.  Audrey Watters points to a demo by Matt Hodges of a prototype AR application for Android tablets.  It automates a time-consuming, tedious, knee-wrinkling task: &lt;a href="http://www.readwriteweb.com/archives/awesome_augmented_reality_app_could_save_librarian.php"&gt;shelf reading&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6269223921206310468?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6269223921206310468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6269223921206310468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6269223921206310468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6269223921206310468'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/03/might-not-have-helped-with-scores.html' title='Might not have helped with the scores, though'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5126624228375332056</id><published>2011-03-17T21:25:00.002-04:00</published><updated>2011-03-17T21:28:30.459-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>1, 2, 3, 4, 5, 6, ...</title><content type='html'>Panel 3 nearly made me &lt;a href="http://xkcd.com/872/"&gt;splurt my coffee&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5126624228375332056?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5126624228375332056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5126624228375332056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5126624228375332056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5126624228375332056'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/03/1-2-3-4-5-6.html' title='1, 2, 3, 4, 5, 6, ...'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5928364426119850535</id><published>2011-03-01T22:49:00.004-05:00</published><updated>2011-03-01T22:56:52.222-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>O tempora</title><content type='html'>Alas, my scrum team, once named for a Saturday morning &lt;a href="http://en.wikipedia.org/wiki/Thundercats"&gt;cartoon series that I don't remember&lt;/a&gt;, is now named &lt;a href="http://wrightbryan3.tumblr.com/post/3585930038/caffeinatedrabbit-thanks-internet"&gt;Jedi Squirrels&lt;/a&gt;, in honor of a bit of internet-dispersed Photoshoppery (that also turned into a troublesome test case for the CMS).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5928364426119850535?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5928364426119850535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5928364426119850535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5928364426119850535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5928364426119850535'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/03/o-tempora.html' title='O tempora'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2533622245676178795</id><published>2011-02-25T17:47:00.002-05:00</published><updated>2011-02-25T17:52:50.939-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Plain old utility</title><content type='html'>Christopher Haupt offers a gentle introduction to &lt;a href="http://www.engineyard.com/blog/2011/reuse-your-javascript-as-jquery-plugins/"&gt;refactoring your project's utility JavaScript&lt;/a&gt; into jQuery plugins.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2533622245676178795?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2533622245676178795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2533622245676178795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2533622245676178795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2533622245676178795'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/02/plain-old-utility.html' title='Plain old utility'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2696938126444365451</id><published>2011-02-09T21:27:00.002-05:00</published><updated>2011-02-09T21:34:14.622-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colleagues'/><title type='text'>"A high degree of chattiness"</title><content type='html'>Daniel Jacobson of Netflix explores strategies for coping with the &lt;a href="http://techblog.netflix.com/2011/02/redesigning-netflix-api.html"&gt;explosive growth in API requests&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;...we will also be looking at ways to handle partial response  through the API. Our goal in this approach will be to conceptualize the API as a database.... We want the API to be able to answer questions with the same degree of variability that SQL can for a database. &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2696938126444365451?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2696938126444365451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2696938126444365451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2696938126444365451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2696938126444365451'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/02/high-degree-of-chattiness.html' title='&quot;A high degree of chattiness&quot;'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8440776685941085998</id><published>2011-02-03T21:52:00.003-05:00</published><updated>2011-02-03T22:06:02.387-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>What did I do?</title><content type='html'>Wright Bryan is &lt;a href="http://www.npr.org/blogs/inside/2011/02/03/133426512/what-did-you-do-to-the-shots-blog"&gt;generous with the credits&lt;/a&gt; for Wednesday's update to the Shots blog.  I did some back-end work, but I also (for once) worked on a module that you can see in the final product: I wrote the Perl script that scrapes links from Scott Hensley's Tweeted Times topics and drops them into the right-rail "popular news from the field" sections of the mega-category pages, like &lt;a href="http://www.npr.org/templates/story/story.php?storyId=133188445"&gt;this one&lt;/a&gt;.  Marc provided the insights; Todd and David W. provided the style.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8440776685941085998?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8440776685941085998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8440776685941085998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8440776685941085998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8440776685941085998'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/02/what-did-i-do.html' title='What did I do?'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7457552172315394718</id><published>2011-02-01T22:11:00.003-05:00</published><updated>2011-02-01T22:22:19.988-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='languages and processing'/><title type='text'>League tables</title><content type='html'>&lt;a href="http://www.drdobbs.com/tools/229100358"&gt;Andrew Binstock analyzes&lt;/a&gt; this year's release of the &lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;TIOBE Programming Community Index&lt;/a&gt;, a rough and ready measure of programming language popularity based on search engine hits.  Bubbling under the hot 10, Ada and RPG are resurgent.  Either that, or the methodology still needs some tweaking.  At position 44 on the chart, PL/I is tanned, rested, and ready for its comeback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7457552172315394718?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7457552172315394718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7457552172315394718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7457552172315394718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7457552172315394718'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/02/league-tables.html' title='League tables'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2630312681252996062</id><published>2011-01-31T10:48:00.004-05:00</published><updated>2011-01-31T10:57:34.803-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Fun with MySQL</title><content type='html'>The problem: Given a pair of tables in a header-detail relationship (or any one-to-many relationship), write a query that returns one row for each header row, including a column that is a comma-delimited vector of the subkeys that are found in the detail rows (for instance, line item numbers).  For example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Table INVOICE&lt;br /&gt;&lt;br /&gt;Invoice  Date&lt;br /&gt;-------  ----&lt;br /&gt;AZ456    1-Jan-2010&lt;br /&gt;AZ457    2-Jan-2010&lt;br /&gt;AZ459    2-Jan-2010&lt;br /&gt;&lt;br /&gt;Table INVOICE_LINE&lt;br /&gt;&lt;br /&gt;Invoice  Line  Part&lt;br /&gt;-------  ----  ----&lt;br /&gt;AZ456    1     ZQX3&lt;br /&gt;AZ456    2     WF612&lt;br /&gt;AZ457    1     TY301&lt;br /&gt;AZ459    3     TY301&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Colleague Jared gave me this screwdriver from the MySQL toolbox: the GROUP_CONCAT() function.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT I.Invoice, I.Date, GROUP_CONCAT(IL.Line) AS Vector&lt;br /&gt;FROM INVOICE I&lt;br /&gt;INNER JOIN INVOICE_LINE IL ON IL.Invoice = I.Invoice&lt;br /&gt;GROUP BY I.Invoice&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The results:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Invoice  Date        Vector&lt;br /&gt;-------  ----        ------&lt;br /&gt;AZ456    1-Jan-2010  1,2&lt;br /&gt;AZ457    2-Jan-2010  1&lt;br /&gt;AZ459    2-Jan-2010  3&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In particular, we used this query to produce a table of photo image assets retrieved from the CMS (that met certain search criteria against the metadata like caption, photographer, agency).  Each image asset has one or more crops in various aspect ratios (standard 4:3, square, wide 16:9).  The search results table includes a vector of which crops are available for each image asset.  In the UI, this vector is rendered as a nifty, compact row of gray and black icons designed by colleague Vincent.&lt;br /&gt;&lt;br /&gt;This technique would work for any other attributes of the detail table, not just keys, in which case you may want to add the DISTINCT keyword to &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat"&gt;GROUP_CONCAT's&lt;/a&gt; argument.  The SEPARATOR clause can overide the default comma delimiter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2630312681252996062?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2630312681252996062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2630312681252996062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2630312681252996062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2630312681252996062'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/01/problem-given-pair-of-tables-in-header.html' title='Fun with MySQL'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-722062514821319947</id><published>2011-01-14T19:40:00.002-05:00</published><updated>2011-01-14T19:45:28.916-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colleagues'/><title type='text'>Linkback</title><content type='html'>My colleague &lt;a href="http://www.patrickcooper.com/2010/11/not-letting-our-desks-contain-us.html"&gt;Patrick is inspired&lt;/a&gt; by my temporary commandeering of a whiteboard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-722062514821319947?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/722062514821319947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=722062514821319947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/722062514821319947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/722062514821319947'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/01/linkback.html' title='Linkback'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-598170264950852963</id><published>2011-01-12T12:23:00.002-05:00</published><updated>2011-01-12T12:55:07.626-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Close enough</title><content type='html'>Michael Donohoe describes an update New York &lt;span class="workTitle"&gt;Times&lt;/span&gt;'s &lt;a href="http://open.blogs.nytimes.com/2011/01/11/emphasis-update-and-source/"&gt;Emphasis &lt;/a&gt;feature, which enables readers and bloggers to deep link to individual paragraphs within a story.&lt;br /&gt;&lt;br /&gt;What's most interesting is the solution that the team devised to automatically assign durable keys to paragraphs of text, in a dynamic news environment when grafs are being added, subtracted, and moved around post-publication.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Each six-character key refers to a specific paragraph. Keys are generated by breaking a paragraph into sentences. Then, using the first and last sentences (which are sometimes the same), the key-generation code takes the first character from the first three words of each sentence.&lt;br /&gt;&lt;br /&gt;* * *&lt;br /&gt;&lt;br /&gt;For example, let’s look at this paragraph — the relevant characters for key generation are [set off as code]:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;    &lt;code&gt;L&lt;/code&gt;ast &lt;code&gt;s&lt;/code&gt;ummer, &lt;code&gt;a&lt;/code&gt;fter 10 years of debate and interagency wrangling, a prestigious committee from the National Academy of Sciences gave highest priority among big space projects in the coming decade to a satellite telescope that would take precise measure of dark energy, as it is known, and also look for planets beyond our solar system. &lt;code&gt;T&lt;/code&gt;he &lt;code&gt;p&lt;/code&gt;roposed &lt;code&gt;p&lt;/code&gt;roject goes by the slightly unwieldy acronym Wfirst, for Wide-Field Infrared Survey Telescope.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The result is this key: &lt;code&gt;LsaTpp&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The matching process uses two means to perform a fuzzy equality match between the key derived from the current story text and the key on the hyperlink.  If there is no perfect match, the 3-character partial keys for the first and last sentence are compared, in hopes of a match on either one.  In the event that rewriting has changed the text that affects both parts of the keys, the &lt;a href="http://en.wikipedia.org/wiki/Levenshtein_distance"&gt;Levenshtein distance&lt;/a&gt; between the linking key and the text's key is computed.  If it's small enough, it's considered to be a match.&lt;br /&gt;&lt;br /&gt;The Levenshtein metric makes perfect sense in this context, because the two keys have moved away from one another precisely because of insertion, deletion, and substitution.  Andrew Hedges supplies a web app and JavaScript source for &lt;a href="http://andrew.hedges.name/experiments/levenshtein/"&gt;computing Levenshtein distances&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My only qualm with this strategy is that the keys it generates are not evenly distributed.  There will be a lot of 3-character partial keys that start with "T" and "A."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-598170264950852963?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/598170264950852963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=598170264950852963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/598170264950852963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/598170264950852963'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2011/01/close-enough.html' title='Close enough'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2299765388533098328</id><published>2010-12-29T22:59:00.002-05:00</published><updated>2010-12-29T23:05:52.532-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>2,000 calculations per second</title><content type='html'>3-minute TV spot for &lt;a href="http://www.jaredbkeller.com/post/2514279531/in-the-1950s-businessman-and"&gt;Remington Rand's Univac&lt;/a&gt; (inserted into an episode of &lt;span class="title"&gt;What's My Line?&lt;/span&gt;, if I'm not mistaken).&lt;br /&gt;&lt;br /&gt;Why does the script for every live TV commercial from that era use "You see," as a transition?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2299765388533098328?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2299765388533098328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2299765388533098328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2299765388533098328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2299765388533098328'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/12/2000-calculations-per-second.html' title='2,000 calculations per second'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-9022545793061856162</id><published>2010-12-24T11:01:00.003-05:00</published><updated>2010-12-24T11:16:27.920-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emulators'/><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><title type='text'>Plastic fantastic</title><content type='html'>Andy Carol has built an emulator of some elements of the &lt;a href="http://www.antikythera-mechanism.gr/"&gt;Antikythera Mechanism&lt;/a&gt; out of LEGO bricks.  A slick video by John Pavlus shows &lt;a href="http://blogs.nature.com/news/thegreatbeyond/2010/12/ancient_greek_computer_rebuilt.html"&gt;an exploded view&lt;/a&gt; of the contraption's operation.  Carol's own page explains how to make a &lt;a href="http://acarol.woz.org/antikythera_mechanism.html"&gt;gear ratio of 19&lt;/a&gt; when all you have are gears of 1, 3, and 5.&lt;br /&gt;&lt;br /&gt;Seems like everyone is on the Antikythera Mechanism bandwagon.  Soon, I expect to see an emulator based on a &lt;a href="http://www.donparrish.com/Arirang.html"&gt;North Korean card section&lt;/a&gt;, filmed as part of an OK Go video.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-9022545793061856162?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/9022545793061856162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=9022545793061856162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9022545793061856162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9022545793061856162'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/12/plastic-fantastic.html' title='Plastic fantastic'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-9140288824671802699</id><published>2010-12-15T12:25:00.003-05:00</published><updated>2010-12-15T12:34:41.952-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sorting and searching'/><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>A candidate for the WTF HOF</title><content type='html'>At a previous job, one of our initial screens for a job applicant was to throw her or him a Code SOD from The Daily WTF (with the explanatory setup removed) and to ask to applicant to explain what the code did and how to improve it.  Today's snippet would be perfect for that exercise.  You don't even need to understand much PHP to see that &lt;a href="http://thedailywtf.com/Articles/Thorough-Letter-Checking.aspx"&gt;the algorithm is crazy mean bull bad&lt;/a&gt;, and that there are so many ways to make the code better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-9140288824671802699?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/9140288824671802699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=9140288824671802699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9140288824671802699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/9140288824671802699'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/12/candidate-for-wtf-hof.html' title='A candidate for the WTF HOF'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-602197392111913605</id><published>2010-12-10T09:01:00.003-05:00</published><updated>2010-12-10T09:03:32.406-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Happy holidays</title><content type='html'>&lt;a href="http://holiday.siteworx.com/wallpapers/index.php"&gt;Seasonal wallpapers &lt;/a&gt;for your desktop or mobile, courtesy of Siteworx.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-602197392111913605?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/602197392111913605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=602197392111913605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/602197392111913605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/602197392111913605'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/12/happy-holidays.html' title='Happy holidays'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-3129978220322803145</id><published>2010-12-06T12:24:00.002-05:00</published><updated>2010-12-06T12:28:19.115-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Is more</title><content type='html'>Dmitry Fadeyev reports on several &lt;a href="http://www.smashingmagazine.com/2010/12/06/using-the-less-css-preprocessor-for-smarter-style-sheets/"&gt;CSS preprocessors&lt;/a&gt;, including LESS.  On my current assignment, we've had specialists to take care of everything but the most trivial CSS, so I don't need one of these tools right away.  But I expect that a project will come up in the future where I'll have to do my stylesheet fiddling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-3129978220322803145?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/3129978220322803145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=3129978220322803145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3129978220322803145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3129978220322803145'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/12/is-more.html' title='Is more'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-56927390204167215</id><published>2010-12-03T06:49:00.002-05:00</published><updated>2010-12-03T06:54:18.251-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>Revolution</title><content type='html'>Looks like there are some new goodies on display as part of the Computer History Museum's first "permanent" exhibition.  Harry McCracken follows Steve Wozniak on a &lt;a href="http://technologizer.com/2010/12/02/a-guided-tour-of-computing-history/"&gt;sneak preview tour&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-56927390204167215?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/56927390204167215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=56927390204167215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/56927390204167215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/56927390204167215'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/12/revolution.html' title='Revolution'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-565741146896630587</id><published>2010-11-30T16:32:00.005-05:00</published><updated>2010-12-06T12:29:32.198-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='performance optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><title type='text'>Regex mystery, once more</title><content type='html'>I spent some quality time with Friedl's &lt;span class="workTitle"&gt;Mastering Regular Expressions&lt;/span&gt;, and I'm beginning to get a better understanding of JavaScript's NFA regular expression engine.  I dimly understand how the case I described in an earlier post sent the engine into &lt;a href="http://iefbr14.blogspot.com/2010/07/return-of-regex-mystery.html"&gt;backtracking perdition&lt;/a&gt;.  I tested (but did not commit to the codebase) this version.  It addresses the specific bad data case, but I don't think it's a comprehensive solution.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;var PROBE_REGEX = /client\.org/;&lt;br /&gt;var URL_REGEX = /^(http:\/\/)?(\w+\.?)*client\.org(.*)$/i;&lt;br /&gt;&lt;br /&gt;stripUrlPrefix = function (url) {&lt;br /&gt; var regex = new RegExp(URL_REGEX);&lt;br /&gt; var result = jQuery.trim(url);&lt;br /&gt; if (result.search(PROBE_REGEX) == -1) {&lt;br /&gt;     return result;&lt;br /&gt; }&lt;br /&gt; var matches = regex.exec(result);&lt;br /&gt; if (matches) {&lt;br /&gt;     return matches[3];&lt;br /&gt; } else {&lt;br /&gt;     return result;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's one or both of the quantified expressions &lt;code&gt;(\w+\.?)*&lt;/code&gt; and &lt;code&gt;(.*)&lt;/code&gt; that are responsible for the performance issues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-565741146896630587?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/565741146896630587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=565741146896630587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/565741146896630587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/565741146896630587'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/11/regex-mystery-once-more.html' title='Regex mystery, once more'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-3693687125614181423</id><published>2010-11-30T13:04:00.003-05:00</published><updated>2010-11-30T13:08:50.976-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>Job openings</title><content type='html'>Siteworx has ten posted &lt;a href="http://tbe.taleo.net/NA12/ats/careers/searchResults.jsp?org=SITEWORX"&gt;job openings&lt;/a&gt; for PMs, user experience professionals, software developers, and sales folk.  Locations include Reston, metro Atlanta, and Chicago.  As always, contact me at &lt;a class="email" href="mailto:&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#97;&amp;#99;&amp;#116;.&amp;#100;&amp;#97;&amp;#118;&amp;#105;&amp;#100;.&amp;#103;&amp;#111;&amp;#114;&amp;#115;&amp;#108;&amp;#105;&amp;#110;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#109;&amp;#99;&amp;#97;&amp;#115;&amp;#116;.&amp;#110;&amp;#101;&amp;#116;"&gt;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#97;&amp;#99;&amp;#116;.&amp;#100;&amp;#97;&amp;#118;&amp;#105;&amp;#100;.&amp;#103;&amp;#111;&amp;#114;&amp;#115;&amp;#108;&amp;#105;&amp;#110;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#109;&amp;#99;&amp;#97;&amp;#115;&amp;#116;.&amp;#110;&amp;#101;&amp;#116;&lt;/a&gt;  or leave a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-3693687125614181423?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/3693687125614181423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=3693687125614181423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3693687125614181423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/3693687125614181423'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/11/job-openings.html' title='Job openings'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-4897505981929350070</id><published>2010-11-30T12:57:00.003-05:00</published><updated>2010-11-30T13:02:44.698-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><title type='text'>Bronze metaphor</title><content type='html'>New research by James Evans suggests that the artisans who built the &lt;a href="http://www.antikythera-mechanism.gr/"&gt;Antikythera Mechanism&lt;/a&gt; suggested epicycles to the Greek astronomers as an explanation of planetary motions, and not the other way around.  &lt;a href="http://www.nature.com/news/2010/101123/full/468496a.html"&gt;Jo Merchant reports&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-4897505981929350070?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/4897505981929350070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=4897505981929350070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4897505981929350070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4897505981929350070'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/11/bronze-metaphor.html' title='Bronze metaphor'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6167983713413584038</id><published>2010-11-11T12:48:00.002-05:00</published><updated>2010-11-11T12:52:06.067-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='world wide web'/><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>Friendly is good</title><content type='html'>Joanne Garlow reports on a just-released increment of software to which I contributed, broad support of&lt;a href="http://www.npr.org/blogs/inside/2010/11/11/131240227/friendlier-urls-come-to-npr"&gt; semantic URLs at npr.org&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6167983713413584038?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6167983713413584038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6167983713413584038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6167983713413584038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6167983713413584038'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/11/friendly-is-good.html' title='Friendly is good'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-170193989738569198</id><published>2010-10-15T11:48:00.004-04:00</published><updated>2010-12-06T12:35:03.587-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Might come in handy again</title><content type='html'>The table &lt;code&gt;amgp_release&lt;/code&gt; associates UPC codes (&lt;code&gt;amgp_upc&lt;/code&gt;) with album IDs (&lt;code&gt;amgp_a_id&lt;/code&gt;).  You'd think that this would be a one-to-one relationship, but apparently multiple IDs can share the same UPC code.  Question:  What are the UPCs that are associated with multiple IDs?  Query:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;select count(*), amgp_upc &lt;br /&gt;    from (select distinct amgp_upc, amgp_a_id from amg.amgp_release) tbl&lt;br /&gt;    group by amgp_upc &lt;br /&gt;    having count(*) &gt; 1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-170193989738569198?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/170193989738569198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=170193989738569198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/170193989738569198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/170193989738569198'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/10/might-come-in-handy-again.html' title='Might come in handy again'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2475791369733382349</id><published>2010-10-13T12:43:00.004-04:00</published><updated>2010-10-13T13:12:50.815-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='development environments'/><title type='text'>'N Sync</title><content type='html'>At this shop, a developer uses a Windows laptop to shell into a virtualized machine running Linux where the source code is compiled into a web application.  Most of us use Eclipse as a development studio.  I had set up my Eclipse to edit my working copy of the code base directly on the virtual machine, mounting it as an SMB network drive.  But over time, I found that some serious latencies would occur sporadically--Eclipse would take several minutes to open a short file of JavaScript, that sort of hassle.  So, after some cajoling from colleague Jared, I followed his lead and moved my setup so that my working copy is on my laptop's hard drive.  So now, instead of an edit-build-test-think cycle, I have an edit-&lt;a href="http://en.wikipedia.org/wiki/Rsync"&gt;rsync&lt;/a&gt;-build-test-think cycle, but the edit step is much faster.&lt;br /&gt;&lt;br /&gt;But I was faced with a new annoyance.  Every rsync or ssh to the VM required me to type my password.  (The other way with SMB, I just left a shell window open already logged in to the VM.)&lt;br /&gt;&lt;br /&gt;(Hunh.  I suppose I could have set up rsync to pull from the VM rather than push from the laptop.  Never thought of that.)&lt;br /&gt;&lt;br /&gt;Anyway, the team's wiki links to a helpful crib on how to make RSA keys to perform an &lt;a href="http://magicmonster.com/kb/net/ssh/auto_login.html"&gt;automatic login with ssh&lt;/a&gt;, but my first efforts failed.  Colleague Harold provided the missing piece.  He checked &lt;code&gt;/var/log/auth.log&lt;/code&gt; on the VM and found an error message that indicated the file permissions on my home directory were &lt;em&gt;too open&lt;/em&gt;.  We did a &lt;code&gt;chmod 755&lt;/code&gt; on my home directory, and I was in!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2475791369733382349?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2475791369733382349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2475791369733382349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2475791369733382349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2475791369733382349'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/10/n-sync.html' title='&apos;N Sync'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5070572827765883788</id><published>2010-09-30T16:24:00.002-04:00</published><updated>2010-09-30T16:30:58.740-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>As simple as possible, but no simpler</title><content type='html'>Greg Grothaus pens a gentle introduction to &lt;a href="http://gregable.com/2010/09/why-you-should-know-just-little-awk.html"&gt;one of my favorite tools, AWK&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5070572827765883788?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5070572827765883788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5070572827765883788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5070572827765883788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5070572827765883788'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/09/as-simple-as-possible-but-no-simpler.html' title='As simple as possible, but no simpler'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2632311301142647803</id><published>2010-09-17T22:07:00.003-04:00</published><updated>2010-09-17T22:10:18.995-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Work in progress</title><content type='html'>I started to draw these page flow diagrams with the tool that's integrated with our wiki.  But sometimes there's just no substitute for a whiteboard and a camera.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/32054489@N00/5000246872/" title="work in progress by landslide virgo, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4111/5000246872_145635052d_m.jpg" width="240" height="180" alt="work in progress" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2632311301142647803?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2632311301142647803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2632311301142647803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2632311301142647803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2632311301142647803'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/09/work-in-progress.html' title='Work in progress'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4111/5000246872_145635052d_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5296848487543434655</id><published>2010-09-16T21:05:00.007-04:00</published><updated>2010-09-23T21:51:54.367-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Not to mention shortening URLs</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;W (double U) has, of all the letters in our alphabet, the only cumbrous name, the names of the others being monosyllabic.  This advantage of the Roman alphabet over the Grecian is the more valued after audibly spelling out some simple Greek word, like ἐπιχοριαμβικός.  Still, it is now thought by the learned that other agencies than the difference of the two alphabets may have been concerned in the decline of "the glory that was Greece" and the rise of "the grandeur that was Rome."  There can be no doubt, however, that by simplifying the name of W (calling it "wow," for example) our civilization could be, if not promoted, at least better endured.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;—Ambrose Bierce, &lt;span class="workTitle"&gt;The Cynic's Word Book&lt;/span&gt; (1906)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5296848487543434655?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5296848487543434655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5296848487543434655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5296848487543434655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5296848487543434655'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/09/not-to-mention-shortening-urls.html' title='Not to mention shortening URLs'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6757662209947420081</id><published>2010-08-24T18:56:00.002-04:00</published><updated>2010-08-24T19:01:40.316-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='methodologies'/><title type='text'>Measure twice, cut once</title><content type='html'>A simple, brilliant idea: &lt;a href="http://tom.preston-werner.com/2010/08/23/readme-driven-development.html"&gt;README Driven Development&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;...you're giving yourself a chance to think through the project without the overhead of having to change code every time you change your mind about how something should be organized or what should be included in the Public API.&lt;/blockquote&gt; &lt;br /&gt;&lt;br /&gt;(Link via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6757662209947420081?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6757662209947420081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6757662209947420081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6757662209947420081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6757662209947420081'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/08/measure-twice-cut-once.html' title='Measure twice, cut once'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6578902935201655030</id><published>2010-08-19T21:03:00.002-04:00</published><updated>2010-08-19T21:06:45.736-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Post-modern obsolescence</title><content type='html'>I don't know whether to be tickled or appalled: &lt;a href="http://www.usbtypewriter.com/"&gt;USB Typewriter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;(Link via &lt;span class="workTitle"&gt;IEEE Spectrum&lt;/span&gt;'s &lt;a href="http://spectrum.ieee.org/slideshow/geek-life/tools-toys/icandy-august-2010"&gt;iCandy&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6578902935201655030?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6578902935201655030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6578902935201655030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6578902935201655030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6578902935201655030'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/08/post-modern-obsolescence.html' title='Post-modern obsolescence'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-4046938120192946246</id><published>2010-08-19T14:22:00.002-04:00</published><updated>2010-08-19T14:25:14.422-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Empirical observation</title><content type='html'>Gorsline's Corollary to Osborn's Law ("Variables won't; constants aren't."): Temp directories aren't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-4046938120192946246?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/4046938120192946246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=4046938120192946246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4046938120192946246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4046938120192946246'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/08/empirical-observation.html' title='Empirical observation'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7215230549924329844</id><published>2010-08-17T13:48:00.003-04:00</published><updated>2010-08-17T14:02:49.368-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Small victories</title><content type='html'>This is a puzzle I had failed to solve a few weeks ago; I finally figured out how to do it.  Given a modal that you've opened with jQuery's &lt;a href="http://docs.jquery.com/UI/API/1.8/Dialog"&gt;dialog()&lt;/a&gt;, and given that it has some buttons (like "Save" and "Cancel") that you've added as options, how can you programmatically disable or hide a button?  dialog() doesn't give the buttons IDs or distinguishing classes.  And you don't want to look at everything in the DOM, just the row of buttons on your modal.&lt;br /&gt;&lt;br /&gt;I already have as part of our framework the DOM ID of the &amp;lt;div&amp;gt; that makes up the body of the modal: it's in a variable called &lt;code&gt;overlay.context&lt;/code&gt;.  The trick is to walk up two levels of the DOM to the common ancestor of the body and the buttons.  So, to hide the button with a label of "Cancel": &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    var grandParent = $(overlay.context).parent().parent();&lt;br /&gt;    $(":button:contains('Cancel')", grandParent).hide();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7215230549924329844?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7215230549924329844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7215230549924329844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7215230549924329844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7215230549924329844'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/08/small-victories.html' title='Small victories'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1561478359922479344</id><published>2010-08-04T08:52:00.001-04:00</published><updated>2010-08-04T08:56:18.685-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>Internships</title><content type='html'>Siteworx has two open &lt;a href="http://tbe.taleo.net/NA12/ats/careers/requisition.jsp?org=SITEWORX&amp;cws=1&amp;rid=43"&gt;internship positions in the marketing department&lt;/a&gt;.  Job location is company headquarters in the leafy planned community of Reston, Virginia. Contact me at &lt;a class="email" href="mailto:&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#97;&amp;#99;&amp;#116;.&amp;#100;&amp;#97;&amp;#118;&amp;#105;&amp;#100;.&amp;#103;&amp;#111;&amp;#114;&amp;#115;&amp;#108;&amp;#105;&amp;#110;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#109;&amp;#99;&amp;#97;&amp;#115;&amp;#116;.&amp;#110;&amp;#101;&amp;#116;"&gt;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#97;&amp;#99;&amp;#116;.&amp;#100;&amp;#97;&amp;#118;&amp;#105;&amp;#100;.&amp;#103;&amp;#111;&amp;#114;&amp;#115;&amp;#108;&amp;#105;&amp;#110;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#109;&amp;#99;&amp;#97;&amp;#115;&amp;#116;.&amp;#110;&amp;#101;&amp;#116;&lt;/a&gt;  or leave a comment if you're looking to get a foot in the door at a growing software consultancy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1561478359922479344?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1561478359922479344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1561478359922479344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1561478359922479344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1561478359922479344'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/08/internships.html' title='Internships'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-540663724304104165</id><published>2010-08-02T13:09:00.004-04:00</published><updated>2010-08-02T13:30:11.618-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Primality test</title><content type='html'>&lt;a href="http://kottke.org/"&gt;kottke.org&lt;/a&gt; pointed out this egregious abuse of regular expressions some time ago, but the page he referenced never made it into my post, and I can't find Kottke's post in his archives.  In the course of trying to track down the page, I found several variations and amplifications of /^(11+)\1+$/ as a regular expression to find prime numbers in Perl, Python, or what have you.&lt;br /&gt;&lt;br /&gt;See posts from &lt;a href="http://everything2.com/title/Primality+testing+with+Perl+regexs"&gt;Brontosaurus&lt;/a&gt;, &lt;a href="http://www.catonmat.net/blog/perl-one-liners-explained-part-three/"&gt;Peteris Krumins&lt;/a&gt;, &lt;a href="http://montreal.pm.org/tech/neil_kandalgaonkar.shtml"&gt;Neil Kandalgaonkar&lt;/a&gt;, &lt;a href="http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/"&gt;Avinash Meetoo&lt;/a&gt;, and this &lt;a href="http://stackoverflow.com/questions/20448/what-is-the-most-brilliant-regex-youve-ever-used"&gt;Stack Overflow thread&lt;/a&gt;.  There is a &lt;a href="http://www.foo.be/docs/tpj/issues/vol2_4/tpj0204-0014.html"&gt;Perl one-liner by Abigail&lt;/a&gt; (last name?) from a 1997 &lt;span class="workTitle"&gt;Perl Journal&lt;/span&gt; that perhaps takes historical priority.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-540663724304104165?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/540663724304104165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=540663724304104165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/540663724304104165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/540663724304104165'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/08/primality-test.html' title='Primality test'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-1559915230029538496</id><published>2010-07-24T18:01:00.006-04:00</published><updated>2010-07-24T18:41:59.825-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='standards'/><category scheme='http://www.blogger.com/atom/ns#' term='bookshelf'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>COBOL grouse</title><content type='html'>I dug out some of my old technical books from storage, looking for blog fodder.  One of them was the book I really learned COBOL from, Greg Lupfer's &lt;span class="workTitle"&gt;DTSS COBOL: Introduction&lt;/span&gt; (1974), published by Dartmouth College's Kiewit Computation Center (DTSS is &lt;a href="http://dtss.dartmouth.edu/"&gt;Dartmouth Time-Sharing System,&lt;/a&gt; and was an online environment that shared roots with Multics).  There was a shelfload of copies of this book available to new programmers like me at Greg and Gary's consultancy in the early 1980s.  For the most part, the presentation is no-nonsense, focusing on the features of COBOL 68 that you'd actually use to write business applications (with the exception of the Report Writer module, which has always been no more than a historical curiosity to me).  The book is set throughout in a Courier-like font, and it looks like it was laid out with RUNOFF.&lt;br /&gt;&lt;br /&gt;Using the example of an order entry system for a consumer audio store in Minnesota (with customers like R. Zimmerman from Hibbing!), Greg walks you through how an indexed-sequential file works, he explains figurative constants and the REDEFINES clause, and he touches on a few points of good programming practice.  Early on is this deadpan gem:&lt;br /&gt;&lt;blockquote&gt;The first program to be described is ORDER11.  This program will accomplish the first step described above, which is to create a working data record that contains three additional fields used as the record progresses through the order edit module.  The functions of these three fields are defined in the comments included in the IDENTIFICATION DIVISION of the program.&lt;br /&gt;&lt;br /&gt;The name ORDER11, which seems to a rather unimaginative name for a program, is the result of an overall &lt;em&gt;file naming convention&lt;/em&gt; that is used throughout the system described in this text.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Greg spells out a convention for naming source, object, transaction data, and master files within the constraints of eight (8) alphanumeric characters and no extensions. He then expostulates:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Most COBOL application systems use dozens of programs and files, so a consistent file naming convention is essential, and is to be preferred over assigning "meaningful" names to the files.  These meaningful names often have meaning only to the programmer who wrote them.  One actual system of seven programs used the names DOC, HAPPY, BASHFUL, SNEEZY, GRUMPY, SLEEPY, and DOPEY, and the programmer was not Ms. White.  Any experienced programmer can probably recall similar instances of absurd names for programs. (pp. 22-23)&lt;/blockquote&gt;&lt;br /&gt;Greg didn't always follow his own advice.  There was a legendary one-off that he wrote for a customer to scrub out unwanted control characters and other fluff.  As the story goes, he named it REMOSHIT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-1559915230029538496?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/1559915230029538496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=1559915230029538496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1559915230029538496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/1559915230029538496'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/07/cobol-humor.html' title='COBOL grouse'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5899341894028424272</id><published>2010-07-22T12:17:00.004-04:00</published><updated>2010-12-06T12:30:11.731-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><title type='text'>Return of the regex mystery</title><content type='html'>The little one-off function that I wrote to &lt;a href="http://iefbr14.blogspot.com/2009/12/regex-mystery.html"&gt;extract the file name from a URL&lt;/a&gt; still continues to baffle.  Rekha, in the course of reviewing some other code and functionality, threw a random string of letters (no punctuation) at it, which caused the browser's script engine to time out.  I rewrote the code somewhat, but even this version takes about 30 seconds to complete, when given a string like "asdfghjklasdfghjklasdfghjkl":&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var URL_REGEX = /^(http:\/\/)?(\w+\.?)*client\.org(.*)$/i;&lt;br /&gt;&lt;br /&gt;stripUrlPrefix = function (url) {&lt;br /&gt;    var regex = new RegExp(URL_REGEX);&lt;br /&gt;    var result = jQuery.trim(url);&lt;br /&gt;    var matches = regex.exec(result);&lt;br /&gt;    if (matches) {&lt;br /&gt;        return matches[3];&lt;br /&gt;    } else {&lt;br /&gt;        return result;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5899341894028424272?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5899341894028424272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5899341894028424272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5899341894028424272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5899341894028424272'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/07/return-of-regex-mystery.html' title='Return of the regex mystery'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-5903235338891158478</id><published>2010-07-20T12:22:00.003-04:00</published><updated>2010-07-20T12:29:21.944-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>More songs about buildings and slugs</title><content type='html'>I wrote about &lt;a href="http://iefbr14.blogspot.com/2010/05/alpha-bravo-charlie.html"&gt;slugs as naming technology&lt;/a&gt; some weeks ago.  It seems that in the direct mail industry the term has a slightly different meaning.  And somewhere out there, if there is justice, there's a requirements analyst that &lt;a href="http://thedailywtf.com/Articles/Similar-to-Snail-Mail.aspx"&gt;got slugged&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-5903235338891158478?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/5903235338891158478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=5903235338891158478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5903235338891158478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/5903235338891158478'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/07/more-songs-about-buildings-and-slugs.html' title='More songs about buildings and slugs'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6722746581917366542</id><published>2010-07-12T13:00:00.002-04:00</published><updated>2010-07-12T13:05:47.132-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>Job openings</title><content type='html'>Siteworx lists &lt;a href="http://tbe.taleo.net/NA12/ats/careers/jobSearch.jsp?org=SITEWORX&amp;cws=1"&gt;seven positions&lt;/a&gt; that we're looking to fill, in Rochester, New York; Reston, Virginia (HQ); and Atlanta, Georgia.  We need software developers and information architects.  Contact me at &lt;a class="email" href="mailto:&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#97;&amp;#99;&amp;#116;.&amp;#100;&amp;#97;&amp;#118;&amp;#105;&amp;#100;.&amp;#103;&amp;#111;&amp;#114;&amp;#115;&amp;#108;&amp;#105;&amp;#110;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#109;&amp;#99;&amp;#97;&amp;#115;&amp;#116;.&amp;#110;&amp;#101;&amp;#116;"&gt;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#97;&amp;#99;&amp;#116;.&amp;#100;&amp;#97;&amp;#118;&amp;#105;&amp;#100;.&amp;#103;&amp;#111;&amp;#114;&amp;#115;&amp;#108;&amp;#105;&amp;#110;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#109;&amp;#99;&amp;#97;&amp;#115;&amp;#116;.&amp;#110;&amp;#101;&amp;#116;&lt;/a&gt; or leave a comment if you're curious or ready to  make a career move.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6722746581917366542?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6722746581917366542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6722746581917366542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6722746581917366542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6722746581917366542'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/07/job-openings.html' title='Job openings'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-6234245421806111986</id><published>2010-07-10T11:44:00.003-04:00</published><updated>2011-05-05T21:53:34.106-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='women in technology'/><category scheme='http://www.blogger.com/atom/ns#' term='recruiting and training'/><title type='text'>Carrying on for Adm. Hopper</title><content type='html'>Via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;, &lt;a href="http://mashable.com/2010/07/08/women-education-programming/"&gt;Emily Goligowski surveys&lt;/a&gt; five programs designed to give girls and women an extra boost in technology training.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In 2008, girls made up just 17% of Advanced Placement test takers in computer science (the lowest percentage of any subject) and held less than 20% of CS degrees.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Too bad about the annoying widgets salted into the text of Mashable's pages; also, the demo for this article apparently skews female, so the ads are all about shoes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-6234245421806111986?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/6234245421806111986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=6234245421806111986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6234245421806111986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/6234245421806111986'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/07/carrying-on-for-adm-hopper.html' title='Carrying on for Adm. Hopper'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-8734872404022754350</id><published>2010-07-09T08:45:00.003-04:00</published><updated>2010-07-09T09:16:03.605-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>There's a plugin for that</title><content type='html'>I recently went through this exercise: for a form submitted by Ajax, disable all the controls on the form until the Ajax update completes.  The code to perform the disabling is nothing particularly complicated:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CLIENT.Utilities.disableJQueryDialog = function (jq) {&lt;br /&gt;    try {&lt;br /&gt;        $(":input", jq).attr("disabled", "disabled");&lt;br /&gt;        //NOTES: Disabling other clickable elements (&amp;lt;a&amp;gt;, &amp;lt;span&amp;gt;, etc.)&lt;br /&gt;        //is the responsibility of the specific resource overlay.&lt;br /&gt;    } catch (e) {&lt;br /&gt;        CLIENT.Utilities.postWarnMessage('', 'Utilities.js disableJQueryDialog()', e);&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Call this function with anything that can be a jQuery context, and all the one-line text boxes, dropdowns, checkboxes, and radio buttons in that context are disabled.  As the notes indicate, we have other UI elements that the user can interact with (like hyperlinks), so I worked out a simple pattern so that a dialog overlay can register a callback function to disable other HTML elements.  I also used this callback to disappear any popups from the date picker plugin and to remove TinyMCEs attached to &amp;lt;textarea&amp;gt;s.&lt;br /&gt;&lt;br /&gt;Well, it turns out that there is a jQuery plugin that will do most of what I needed to do, and throw up a "Loading..." message as well, according to Dino Esposito.  If I have some extra time this afternoon I'm going to check out the &lt;a href="http://www.drdobbs.com/windows/225702258"&gt;BlockUI&lt;/a&gt; plugin for jQuery.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-8734872404022754350?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/8734872404022754350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=8734872404022754350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8734872404022754350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/8734872404022754350'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/07/theres-plugin-for-that.html' title='There&apos;s a plugin for that'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7150354201802969054</id><published>2010-06-18T08:57:00.002-04:00</published><updated>2010-06-18T08:59:37.020-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><title type='text'>More awards</title><content type='html'>&lt;a href="http://www.editorandpublisher.com/Headlines/2010-eppy-winners-announced-at-interactive-conference-61720-.aspx"&gt;npr.org (and NPR Music) was honored with EPpy Awards&lt;/a&gt; from Editor and Publisher on both the news and entertainment sides.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7150354201802969054?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7150354201802969054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7150354201802969054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7150354201802969054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7150354201802969054'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/06/more-awards.html' title='More awards'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-4295782206939719730</id><published>2010-05-31T10:14:00.003-04:00</published><updated>2010-05-31T10:31:55.005-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><title type='text'>Depends on how you look at it</title><content type='html'>Tom Malzbender's presentation to the Smithsonian Associates on the &lt;a href="http://www.antikythera-mechanism.gr"&gt;Antikythera Mechanism&lt;/a&gt; focused on &lt;a href="http://www.hpl.hp.com/research/ptm/"&gt;Polynomial Texture Mapping&lt;/a&gt;.  PTM has its roots in computer graphics techniques for rendering artificial surfaces (in game applications, for instance), but in this case it's used to enhance surface detail of physical artifacts.&lt;br /&gt;&lt;br /&gt;The process starts with high-resolution image acquisition from multiple POVs: the object to be imaged is mounted in a domed frame fitted with dozens of digital cameras.  (The contraption looks something like the &lt;a href="http://en.wikipedia.org/wiki/Trinity_%28nuclear_test%29"&gt;Trinity device&lt;/a&gt;, to me.)&lt;br /&gt;&lt;br /&gt;Once the images are captured, software apps can manipulate the apparent direction of the light source (to realize the artist's "raking light"), and more astonishingly, the apparent surface characteristics (e.g., reflectivity) of the artifact.&lt;br /&gt;&lt;br /&gt;The application of this technology to recovering lost surface detail on chunks of bronze that have been sitting in saltwater for two millennia is a natural.  Mazlbender and John Seiradakis report that the metal plates that comprise the Antikythera Mechanism's "user's manual" have revealed an additional 2,200 characters, thanks to PTM techniques.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-4295782206939719730?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/4295782206939719730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=4295782206939719730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4295782206939719730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4295782206939719730'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/05/depends-on-how-you-look-at-it.html' title='Depends on how you look at it'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7305786718667181935</id><published>2010-05-28T17:30:00.003-04:00</published><updated>2010-05-28T17:39:27.251-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='olpc'/><title type='text'>Breaking the C-note</title><content type='html'>And first looks at a prototype XO-3 from &lt;a href="http://tech.fortune.cnn.com/2010/05/27/negreponte-one-laptop-per-child-is-now-a-75-android-tablet/"&gt;Seth Weintraub&lt;/a&gt; and &lt;a href="http://bits.blogs.nytimes.com/2010/05/27/olpc-partners-with-marvell-to-launch-100-tablet/"&gt;Nick Bilton&lt;/a&gt;.  I like the little key ring thing at the corner, though I suspect that's not its intended purpose.&lt;br /&gt;&lt;br /&gt;Plans are for at least one version of the box (how can you call anything that slim a box?) to run Android.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[Nicholas] Negroponte also stressed the importance of the open source nature of the project, pointing out that every aspect of the the project would still be open source. "We're going to go totally open," he said. "In some sense it's the complete opposite of the Amazon bookstore or iTunes, where we'll run anything, including viruses and Flash."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Weintraub link via &lt;a href="http://www.codeproject.com/script/News/List.aspx"&gt;The Code Project&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7305786718667181935?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7305786718667181935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7305786718667181935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7305786718667181935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7305786718667181935'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/05/breaking-c-note.html' title='Breaking the C-note'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7254598774177160534</id><published>2010-05-28T10:45:00.002-04:00</published><updated>2010-05-28T10:48:51.214-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Make another compartment in the toobox</title><content type='html'>Colleague Harold passes along a notice about &lt;a href="http://googlecode.blogspot.com/2010/05/chrome-extensions-for-web-development.html"&gt;Chrome extensions for web development&lt;/a&gt;.  Not enough there to move me away from Firefox and Firebug just yet, but it's good to know that there are some options.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7254598774177160534?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7254598774177160534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7254598774177160534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7254598774177160534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7254598774177160534'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/05/make-another-compartment-in-toobox.html' title='Make another compartment in the toobox'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-4082230008145177900</id><published>2010-05-28T09:20:00.010-04:00</published><updated>2010-05-28T10:39:18.774-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>In a bind</title><content type='html'>Yesterday I did some refactoring of the JavaScript that manages jQuery Datepickers and the event handlers attached to them.  Several of the modal dialog boxes of the application use the following pattern: a text box that permits direct entry of a date (as 'MM/DD/YY'), a &lt;a href="http://jqueryui.com/demos/datepicker/"&gt;Datepicker &lt;/a&gt;tied to the text box that allows the user to point and click at a date, and 3 hidden fields for the month, day, and year portion of the date.  It is this set of 3 fields that is persisted.&lt;br /&gt;&lt;br /&gt;So we have an event handler that takes care of direct input (&lt;code&gt;hdlChange&lt;/code&gt;) and one that takes care of the point-and-click selection (&lt;code&gt;hdlDatePickerSelect&lt;/code&gt;).  The difficulty I had to overcome was establishing an execution context for the event handlers so that they could access member variables that identified the date being processed (several of the app's modals [managed with a jQuery &lt;a href="http://docs.jquery.com/UI/API/1.8/Dialog"&gt;Dialog&lt;/a&gt;] collect 2 or 3 dates).&lt;br /&gt;&lt;br /&gt;Another complicating factor was this unfortunate behavior of the Datepicker object: as we use it, the Datepicker's text boxes on each modal must have distinct IDs, even modals that have been closed and destroyed.  Hence the variable &lt;code&gt;overlayAffix&lt;/code&gt; (we call the modals "overlays" in this app) that is appended to the ID-based selector for the Datepicker.&lt;br /&gt;&lt;br /&gt;Anyway, back to the problem of establishing context.  The nut of it is passing some sort of extra information to the event handler that identifies the &lt;code&gt;this&lt;/code&gt; that you want to use, because the event handler's &lt;code&gt;this&lt;/code&gt; is the text box DOM element.&lt;br /&gt;&lt;br /&gt;I experimented with jQuery's &lt;a href="http://api.jquery.com/bind/"&gt;.bind()&lt;/a&gt; method, and that worked just fine for the change handler.  (&lt;a href="http://www.digital-web.com/articles/scope_in_javascript/"&gt;Mike West's article&lt;/a&gt; is helpful background.)  Using .bind(), you can pass whatever you like into an event handler&amp;#8212;say, a pointer to your execution context&amp;#8212;and retrieve it through the event object.  But, unfortunately, I did not find a way to make this technique work for the select handler.  The Datepicker doesn't have a .bind() analogue: rather, the handler is specified as the option &lt;code&gt;onSelect&lt;/code&gt;; furthermore, the signature of the handler doesn't include the event (AFAIK).&lt;br /&gt;&lt;br /&gt;So I resorted to what I consider trickery, taking advantage of &lt;a href="http://it.toolbox.com/blogs/think-clients/javascript-the-redheaded-stepchild-of-web-development-18471"&gt;JavaScript's expando properties&lt;/a&gt;: I simply attached the execution context as a an additional property of the text box (date control).&lt;br /&gt;&lt;br /&gt;Here's the completed script, lightly edited for presentation.  Wording note: &lt;code&gt;context&lt;/code&gt; in the code below refers to the jQuery DOM context, not the execution context that we've been discussing.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//    Helpers for managing a datepicker, the associated text box, and hidden fields.&lt;br /&gt;&lt;br /&gt;CLIENT.Utilities.DatePicker = function (context, overlayAffix, dateAffix) {&lt;br /&gt;    this.context = context;&lt;br /&gt;    this.overlayAffix = overlayAffix;   //identifies the overlay we're on (e.g., 'GeneralJournal')&lt;br /&gt;    this.dateAffix = dateAffix;         //identifies the date (e.g., 'invoice')&lt;br /&gt;    this.datePickerSelector = '#' + dateAffix + 'Date' + overlayAffix;&lt;br /&gt;    this.monthSelector = '#' + dateAffix + 'Month';&lt;br /&gt;    this.daySelector = '#' + dateAffix + 'Day';&lt;br /&gt;    this.yearSelector = '#' + dateAffix + 'Year';&lt;br /&gt;    &lt;br /&gt;    this.setDate = function (date) {&lt;br /&gt;        try {&lt;br /&gt;            $(this.monthSelector, this.context).val(date.getMonth() + 1).change();&lt;br /&gt;            $(this.daySelector, this.context).val(date.getDate()).change();&lt;br /&gt;            $(this.yearSelector, this.context).val(date.getFullYear()).change();&lt;br /&gt;        } catch (e) {&lt;br /&gt;            CLIENT.Utilities.postWarnMessage('', 'DatePicker.js setDate()', e);&lt;br /&gt;        }&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.clearDate = function () {&lt;br /&gt;        try {&lt;br /&gt;            $(this.monthSelector, this.context).val(0).change();&lt;br /&gt;            $(this.daySelector, this.context).val(0).change();&lt;br /&gt;            $(this.yearSelector, this.context).val(0).change();&lt;br /&gt;        } catch (e) {&lt;br /&gt;            CLIENT.Utilities.postWarnMessage('', 'DatePicker.js clearDate()', e);&lt;br /&gt;        }&lt;br /&gt;    };&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    this.setupControls = function () {&lt;br /&gt;        try {&lt;br /&gt;            $(this.datePickerSelector, this.context).change(this.hdlChange);&lt;br /&gt;            &lt;br /&gt;            $(this.datePickerSelector, this.context).datepicker({&lt;br /&gt;                showOn: 'button', &lt;br /&gt;                buttonImage: '/new_cms/images/calendar.png', &lt;br /&gt;                buttonImageOnly: true, &lt;br /&gt;                onSelect: this.hdlDatePickerSelect&lt;br /&gt;            });&lt;br /&gt;            &lt;br /&gt;            //give the date control a reference to the 'this' DatePicker object,&lt;br /&gt;            //so that event handlers can access the DatePicker object&lt;br /&gt;            $(this.datePickerSelector, this.context)[0].theThis = this;&lt;br /&gt;        } catch (e) {&lt;br /&gt;            CLIENT.Utilities.postWarnMessage('', 'DatePicker.js setupControls()', e);&lt;br /&gt;        }&lt;br /&gt;    };&lt;br /&gt;    &lt;br /&gt;    //event handlers for which 'this' is the date control, not the DatePicker object&lt;br /&gt;    this.hdlChange = function () {&lt;br /&gt;        try {&lt;br /&gt;            //retrieve the object reference from the date control&lt;br /&gt;            var myThis = this.theThis;&lt;br /&gt;            &lt;br /&gt;            var dateText = $(myThis.datePickerSelector, myThis.context).val();&lt;br /&gt;            if ($.trim(dateText).length &gt; 0) {&lt;br /&gt;                var date = CLIENT.Utilities.parseDateString(dateText, $(myThis.datePickerSelector, myThis.context));&lt;br /&gt;                if (date) {&lt;br /&gt;                    myThis.setDate(date);&lt;br /&gt;                } else {&lt;br /&gt;                    $(myThis.datePickerSelector, myThis.context).val('');&lt;br /&gt;                    myThis.clearDate();&lt;br /&gt;                }&lt;br /&gt;            } else {&lt;br /&gt;                myThis.clearDate();&lt;br /&gt;            }&lt;br /&gt;        } catch (e) {&lt;br /&gt;            CLIENT.Utilities.postWarnMessage('', 'DatePicker.js hdlChange()', e);&lt;br /&gt;        }&lt;br /&gt;    };&lt;br /&gt;    &lt;br /&gt;    this.hdlDatePickerSelect = function (dateText, inst) {&lt;br /&gt;        try {&lt;br /&gt;            //retrieve the object reference from the date control&lt;br /&gt;            var myThis = this.theThis;&lt;br /&gt;&lt;br /&gt;            CLIENT.Utilities.clearValidationMessages($(myThis.datePickerSelector, myThis.context).parent());&lt;br /&gt;            if ($.trim(dateText).length &gt; 0) {&lt;br /&gt;                var date = new Date(dateText);&lt;br /&gt;                myThis.setDate(date);&lt;br /&gt;            } else {&lt;br /&gt;                myThis.clearDate();&lt;br /&gt;            }&lt;br /&gt;        } catch (e) {&lt;br /&gt;            CLIENT.Utilities.postWarnMessage('', 'DatePicker.js hdlDatePickerSelect()', e);&lt;br /&gt;        }&lt;br /&gt;    };&lt;br /&gt;};&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Example HTML:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;div id="divGeneralJournal"&amp;gt;&lt;br /&gt;* * * &lt;br /&gt;&amp;lt;label for="invoiceDateGeneralJournal"&amp;gt;Invoice date&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;lt;input type="text" id="invoiceDateGeneralJournal" value="" class="datefield" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;input type="hidden" id="invoiceMonth" /&amp;gt;&lt;br /&gt;&amp;lt;input type="hidden" id="invoiceDay" /&amp;gt;&lt;br /&gt;&amp;lt;input type="hidden" id="invoiceYear" /&amp;gt;&lt;br /&gt;* * * &lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Initialization script would go something like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var invoiceDatePicker = new CLIENT.Utilities.DatePicker('#divGeneralJournal', 'GeneralJournal', 'invoice');&lt;br /&gt;invoiceDatePicker.setupControls();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-4082230008145177900?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/4082230008145177900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=4082230008145177900' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4082230008145177900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/4082230008145177900'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/05/in-bind.html' title='In a bind'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7373736360993969283</id><published>2010-05-21T17:01:00.006-04:00</published><updated>2010-05-21T17:14:51.111-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Alpha bravo charlie</title><content type='html'>Every software development effort more complex than an accountant bashing away with Excel macros divides itself into phases.  Practitioners sometimes assign simple sequential numbers to the phases of a project, but number-based designators often don't work out because phases overlap, get rescheduled, subdivided, and cancelled&amp;#8212;who wants to explain to management that Phase 3.7 will be completed after Phase 6.2?  And numbers don't have much sizzle.  While they do have the advantage of being arbitrary, they still imply a precedence.&lt;br /&gt;&lt;br /&gt;Temporal designators ("the fall '09 release") are even worse, because we all know that sometimes the fall release is completed the following summer.&lt;br /&gt;&lt;br /&gt;And so we use code names, and the more arbitrary but transparent the better.  They function in much the same way that journalists use slugs to identify stories.  A slug doesn't tell you what's in a news story&amp;#8212;the headline and teaser do that.  It's just enough of an identifier so that you know which story you're talking about in an page space budget meeting.  Monday's story on a key Senate floor action might be slugged HEALTHCAREVOTE.  In fact, you need the slug in order to conceptually manipulate the story even before you know the story's outcome.  Not unlike many software projects I've known.&lt;br /&gt;&lt;br /&gt;Choosing the pattern for a group of code names is an important decision, and one best left not to the group, but rather to one person.  Group-chosen patterns are rather bland and uninteresting. At a previous job, the whole company voted on the pattern and we ended up with "Caribbean resort islands." And so I worked on Aruba, and Barbados, and Coba, etc.  Blah.  Or way too pretentious: names from Greek mythology was another popular pattern there.&lt;br /&gt;&lt;br /&gt;Much better is the approach that my current client uses.  Each January, the code names start following a new pattern at the beginning of the alphabet, but the pattern is left a mystery known only to the project management office, which doles out the names a few letters at a time.  The first team member who susses out the pattern&amp;#8212;and mind you, this is an honor system thing, no search engines allowed&amp;#8212;gets to choose the pattern for the next year.&lt;br /&gt;&lt;br /&gt;And so phases for this year were named Abby, Biff, Claribelle (a tantalizingly distinctive spelling), Domby, and so on.  One of us, Kate, eventually cracked the code at Kami.  I wonder what Kate will give us next year?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7373736360993969283?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7373736360993969283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7373736360993969283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7373736360993969283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7373736360993969283'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/05/alpha-bravo-charlie.html' title='Alpha bravo charlie'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-856059260801215192</id><published>2010-05-01T15:02:00.003-04:00</published><updated>2010-05-01T15:06:47.342-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><title type='text'>Tik tok</title><content type='html'>D.C. area residents interested in the &lt;a href="http://www.ahoneyofananklet.com/2006/11/30/clockwork-moon/"&gt;Antikythera Mechanism &lt;/a&gt;have an opportunity to learn more at a &lt;a href="https://residentassociates.org/ticketing/tickets/reserve.aspx?performanceNumber=220294"&gt;lecture&lt;/a&gt; to be given by John Seiradakis (professor of astronomy, Aristotle University of Thessaloniki) and Tom Malzbender (senior research scientist, Hewlett-Packard Laboratories) later this month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-856059260801215192?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/856059260801215192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=856059260801215192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/856059260801215192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/856059260801215192'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/05/tik-tok.html' title='Tik tok'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7337429772794978879</id><published>2010-04-28T09:20:00.001-04:00</published><updated>2010-04-28T09:22:52.706-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools and hacks'/><title type='text'>Beyond sliders</title><content type='html'>Via &lt;a href="http://www.codeproject.com/"&gt;The Code Project&lt;/a&gt;, Vitaly Friedman recaps &lt;a href="http://www.smashingmagazine.com/2010/04/27/45-useful-jquery-techniques-and-plugins/"&gt;40 useful jQuery techniques and plugins&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7337429772794978879?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7337429772794978879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7337429772794978879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7337429772794978879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7337429772794978879'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/04/beyond-sliders.html' title='Beyond sliders'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2771283564996788992</id><published>2010-04-23T20:25:00.003-04:00</published><updated>2010-04-23T20:33:12.709-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colleagues'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><title type='text'>Moving on</title><content type='html'>&lt;a href="http://www.shainmiley.com/wordpress/" rel="acquaintance colleague met"&gt;Shain Miley&lt;/a&gt; links to the video archive of presentations at this year's MySQL conference, including a presentation on &lt;a href="http://www.youtube.com/watch?v=V3XjuGTQVQk&amp;feature=channel"&gt;migration from Oracle to MySQL&lt;/a&gt; by Joanne Garlow, tech lead/architect for the development team at my client site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2771283564996788992?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2771283564996788992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2771283564996788992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2771283564996788992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2771283564996788992'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/04/moving-on.html' title='Moving on'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2894429541634833369</id><published>2010-04-18T17:50:00.003-04:00</published><updated>2010-04-18T17:55:21.041-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='olpc'/><title type='text'>One Mouse Per Child?</title><content type='html'>&lt;a href="http://www.nytimes.com/2010/04/18/business/18digi.html"&gt;Randall Stross checks in&lt;/a&gt; with Matt Keller of the OLPC Foundation, and discusses some technological alternatives offered by other players in the development-through-childhood-computing space.  Microsoft's MultiPoint, developed by a team in India, puts multiple cursors on the screen, each controlled by a particular student.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2894429541634833369?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2894429541634833369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2894429541634833369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2894429541634833369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2894429541634833369'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/04/one-mouse-per-child.html' title='One Mouse Per Child?'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-2392554089039404345</id><published>2010-04-15T23:15:00.006-04:00</published><updated>2010-04-16T20:22:51.707-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='processors and other hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>A little cheesecake</title><content type='html'>Greg Ferrara posts a &lt;a href="http://tsutpen.blogspot.com/2010/04/future-is-now-24.html"&gt;publicity photo&lt;/a&gt;, ca. 1958, of a Ramo-Wooldridge RW-300 process control computer (a product line completely unknown to me) at (the deliciously-named) If Charlie Parker Was a Gunslinger, There'd Be a Whole Lot of Dead Copycats. Ramo-Wooldridge was a predecessor company to TRW.  Computer History Museum materials indicate that the RW-300 was marketed in the early 1960s as a &lt;a href="http://www.computerhistory.org/brochures/companies.php?company=com-42bc23adaadb2"&gt;controller for nuclear reactors&lt;/a&gt;.  More marketing materials at bitsavers.org describe the assembly of &lt;a href="http://www.bitsavers.org/pdf/trw/rw-300/RW-300_Brochures.pdf"&gt;A-to-D modules in subframes&lt;/a&gt; to make up an RW-300.  Stout and Williams, in a 1995 paper, chronicle the &lt;a href="http://doi.ieeecomputersociety.org/10.1109/85.366507"&gt;pioneering work of Ramo-Wooldridge&lt;/a&gt; in computerized process control.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-2392554089039404345?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/2392554089039404345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=2392554089039404345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2392554089039404345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/2392554089039404345'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/04/little-cheesecake.html' title='A little cheesecake'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6278452269103964523.post-7519302881303053003</id><published>2010-04-07T22:43:00.002-04:00</published><updated>2010-04-07T22:48:19.293-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>And did you control for color?</title><content type='html'>This article turned up in a sidebar in the text of a statistics &lt;a href="http://www.rfbd.org/"&gt;textbook that I'm recording&lt;/a&gt;: Smith and Pell, &lt;a href="http://www.bmj.com/cgi/content/abstract/327/7429/1459"&gt;"Parachute use to prevent death and major trauma related to gravitational challenge: systematic review of randomised controlled trials."&lt;/a&gt;  I think the conclusion pretty much covers it:&lt;blockquote&gt;As with many interventions intended to prevent ill health, the effectiveness of parachutes has not been subjected to rigorous evaluation by using randomised controlled trials. Advocates of evidence based medicine have criticised the adoption of interventions evaluated by using only observational data. We think that everyone might benefit if the most radical protagonists of evidence based medicine organised and participated in a double blind, randomised, placebo controlled, crossover trial of the parachute.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6278452269103964523-7519302881303053003?l=iefbr14.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iefbr14.blogspot.com/feeds/7519302881303053003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6278452269103964523&amp;postID=7519302881303053003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7519302881303053003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6278452269103964523/posts/default/7519302881303053003'/><link rel='alternate' type='text/html' href='http://iefbr14.blogspot.com/2010/04/and-did-you-control-for-color.html' title='And did you control for color?'/><author><name>David Gorsline</name><uri>https://profiles.google.com/116437894282235621777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-r14R8Nqq2Tg/AAAAAAAAAAI/AAAAAAAAACI/U7Oc5P8z0GU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
