<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-7335600</atom:id><lastBuildDate>Wed, 10 Feb 2010 01:32:34 +0000</lastBuildDate><title>dickdiamond.com</title><description></description><link>http://www.dickdiamond.com/index2.htm</link><managingEditor>noreply@blogger.com (Rich)</managingEditor><generator>Blogger</generator><openSearch:totalResults>321</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-4779734706355251609</guid><pubDate>Wed, 10 Feb 2010 01:32:00 +0000</pubDate><atom:updated>2010-02-09T19:32:34.875-06:00</atom:updated><title>Volcanos: Nature's Nukes</title><description>An oldy but a goody. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.dickdiamond.com/uploaded_images/Sarychev-via-ISS-755724.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://www.dickdiamond.com/uploaded_images/Sarychev-via-ISS-755721.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.nasa.gov/multimedia/imagegallery/image_feature_1397.html"&gt;Courtesy of NASA&lt;/a&gt;, who else?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-4779734706355251609?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2010/02/volcanos-natures-nukes.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-8030404957262606535</guid><pubDate>Wed, 10 Feb 2010 01:26:00 +0000</pubDate><atom:updated>2010-02-09T19:27:25.783-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>rant</category><category domain='http://www.blogger.com/atom/ns#'>wordpress</category><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>web-x.0</category><category domain='http://www.blogger.com/atom/ns#'>google</category><title>Blogger Pulling the Plug on FTP</title><description>So, blogger is &lt;a href="http://blogger-ftp.blogspot.com/"&gt;discontinuing support for FTP&lt;/a&gt;-updated blogs, which essentially means they will no longer support self-hosted blogs.  You can either point your domain (or a sub-domain) over to them, or you're SoL.  &lt;br /&gt;&lt;br /&gt;And by "SoL" I mean "switching to &lt;a href="http://wordpress.org/"&gt;Wordpress&lt;/a&gt;."&lt;br /&gt;&lt;br /&gt;I guess I should say "thank you" for finally making me do it... maybe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-8030404957262606535?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2010/02/blogger-pulling-plug-on-ftp.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-8848956776994298018</guid><pubDate>Fri, 23 May 2008 20:30:00 +0000</pubDate><atom:updated>2008-05-23T16:14:54.215-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>64-bit</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>What's Magical About 1272 Bytes?</title><description>So here's a bit of Windows Vista Ultimate 64-bit arcana for you...  I was doing some research on the performance and efficiency of relative cluster sizes, and because of this I wanted to know how many files of certain sizes were on my disk.  So I started running some searches, with various cluster sizes that I was considering, hoping to get some data points against which to run some statistical analysis.  Here's what I ended up with, running Vista's file search in "non-indexed" mode, and choosing to include hidden and system files:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;File Size&lt;/td&gt;&lt;td&gt;File Count&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;64KB&lt;/td&gt;&lt;td&gt;72,781&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;16KB&lt;/td&gt;&lt;td&gt;53,480&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;8KB&lt;/td&gt;&lt;td&gt;42,696&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;4KB&lt;/td&gt;&lt;td&gt;31,542&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;2KB&lt;/td&gt;&lt;td&gt;15,822&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;1KB&lt;/td&gt;&lt;td&gt;19,528&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;0.5KB&lt;/td&gt;&lt;td&gt;10,058&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Did you notice something odd?  That's right, the number of files &amp;lt;1KB in size is &lt;em&gt;greater than the number of files &amp;lt;2KB in size!&lt;/em&gt;  This is mathematically impossible, of course.   &lt;br /&gt;&lt;br /&gt;Using a manual binary search algorithm, I finally arrived at the magic point: something weird happens between the 1272 and 1273 byte count, as the following two screen shots illustrate (click for larger versions, look at the upper right and lower left of each).  &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dickdiamond.com/uploaded_images/1273-bytes-719386.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.dickdiamond.com/uploaded_images/1273-bytes-719375.PNG" border="0" alt="search for files &lt;1273 bytes in size" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dickdiamond.com/uploaded_images/1272-bytes-782127.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.dickdiamond.com/uploaded_images/1272-bytes-782112.PNG" border="0" alt="search for files &lt;1272 bytes in size" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Logically, the second search should yield slightly fewer results, assuming there are a couple of files on the drive that are exactly 1273 bytes (in reality, there are exactly 15 1273-byte files--this should be the delta between the two searches).  In fact, the second search yields more than twice as many!  &lt;br /&gt;&lt;br /&gt;I was hoping I could narrow down what was going on by searching for specific file types instead of the *.* pattern, but as soon as I did that, everything seemed to work.  Interestinly, if I then went back to the *.* pattern, the 1272B search produces a correct (lower) number!  However, if I then run a 1KB search I get the higher number again, and if I repeat the 1272B search I again get a higher number.  &lt;br /&gt;&lt;br /&gt;Pretty strange, huh?&lt;br /&gt;&lt;br /&gt;In case you're wondering:&lt;br /&gt;&lt;br /&gt;Intel E8400&lt;br /&gt;8GB DDR800&lt;br /&gt;Windows Vista Ultimate, 64-bit, SP1 and all "important" updates applied&lt;br /&gt;Seagate 1TB SATA at default cluster size&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-8848956776994298018?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/05/whats-magical-about-1272-bytes.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-1138651783395344367</guid><pubDate>Tue, 08 Apr 2008 06:34:00 +0000</pubDate><atom:updated>2008-04-30T17:37:58.566-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>short</category><category domain='http://www.blogger.com/atom/ns#'>code</category><category domain='http://www.blogger.com/atom/ns#'>web-x.0</category><category domain='http://www.blogger.com/atom/ns#'>google</category><title>Be the Google</title><description>Would you like 500mb of web hosting, plus Python, plus Django, plus a lot of Google database and application goodies?  Would you like it for free?  Then, my friend, what you need is &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;.  No mention yet of what the pricing is like after you hit your &lt;a href="http://googleappengine.blogspot.com/2008/04/introducing-google-app-engine-our-new.html"&gt;5 million hits per month&lt;/a&gt;.   But trust me, if you're at 5 million hits per month, you don't care.  &lt;br /&gt;&lt;br /&gt;Sorry Amazon S3, but you can basically suck it.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update:  um, yeah, it's wait-listed.  Though if you have Google Apps, you're probably in.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-1138651783395344367?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/04/be-google.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-2953122064337878026</guid><pubDate>Fri, 04 Apr 2008 07:08:00 +0000</pubDate><atom:updated>2008-04-04T02:09:50.148-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>sql</category><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>code</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>Return a Record for Each Date Between Two Dates in SQL Server &gt;= 2005</title><description>Blogging this so I don't forget it...&lt;br /&gt;&lt;br /&gt;It used to require some fairly ugly, resource intensive hacks (cursors, temp tables, etc.) to emit an inclusive list between two data points when the source data might not include an entry for every point (for example, a calendar, where not every day contains an event).  In SQL Server 2005 and above, this is trivially easy, with a Common Table Expression (CTE) and a Recursive Query.  To emit one record for every date between 1/1/2008 and 1/31/2008, you do this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;WITH datecte(anydate) AS (SELECT     CAST('1/1/2008' AS datetime) AS anydate&lt;br /&gt;  UNION ALL&lt;br /&gt;  SELECT     anydate + 1 AS anydate&lt;br /&gt;  FROM         datecte AS datecte_1&lt;br /&gt;  WHERE     (anydate &lt; CAST('2/1/2008' AS datetime) - 1))&lt;br /&gt;    SELECT     anydate&lt;br /&gt;     FROM         datecte AS datecte_2&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you need more than 100 days (the recursion limit is 100), add this to the end:&lt;br /&gt;&lt;br /&gt;OPTION (MAXRECURSION 1000)&lt;br /&gt;&lt;br /&gt;The fact that they stop recursion short at 100 by default would seem to indicate that this is an expensive procedure, but even if you're just using this to produce a dummy table with all the dates for several years, it's a nice shortcut.  &lt;br /&gt;&lt;br /&gt;I just tried the following query, which emits a record for every day between 1/1/2000 and 12/31/2020:&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&lt;br /&gt;WITH datecte(anydate) AS (SELECT CAST('1/1/2000' AS datetime) AS anydate&lt;br /&gt;  UNION ALL&lt;br /&gt;  SELECT anydate + 1 AS anydate&lt;br /&gt;  FROM datecte AS datecte_1&lt;br /&gt;  WHERE (anydate &lt; CAST('1/1/2021' AS datetime) - 1))&lt;br /&gt;    SELECT anydate&lt;br /&gt;    FROM datecte AS datecte_2&lt;br /&gt;    OPTION (MAXRECURSION 10000)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;On my P4-641+ the script emits 7671 records in 0 (that's zero) seconds and "spikes" the processor to all of 3%.  Granted this is not a complex query, but at least we know the recursion (if it really is recursion internally, which I doubt) isn't expensive by itself.  &lt;br /&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/7335600-2953122064337878026?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/04/return-record-for-each-date-between-two.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-3024900914789742926</guid><pubDate>Mon, 31 Mar 2008 15:24:00 +0000</pubDate><atom:updated>2008-03-31T11:03:47.587-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>64-bit</category><category domain='http://www.blogger.com/atom/ns#'>hardware</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>Vista... 64-bit... Where's My Headroom?</title><description>Other than a couple of virtual machine beta builds, I had managed to stay out of Vista entirely until the last month or so.  Since then I've tried to install on three machines--a client's Dell &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Optiplex&lt;/span&gt;, which never was able to boot after install, and two home-built systems.  This weekend I built a brand new system out of all Vista-logo components.  It booted; Vista reported the hardware compatible; it even got a 5.8 experience index score.  But I had continuous crashing of both IE and Windows Explorer.   Also, on what should have been basically the fastest hardware available, the Vista with SP1 install took over 90 minutes.&lt;br /&gt;&lt;br /&gt;I'm walking away.  My current approach for my development machine is going to be Windows Server 2008 Standard 64-bit.  Again I have certified components, but 64-bit in itself represents a struggle in terms of driver and application compatibility.  We've had &lt;a href="http://en.wikipedia.org/wiki/X86#64-bit"&gt;64-bit &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CPUs&lt;/span&gt;&lt;/a&gt; in our machines for going on 5 years, and &lt;a href="http://en.wikipedia.org/wiki/64-bit_windows#Versions"&gt;64-bit Windows&lt;/a&gt; options for almost as long, and yet you still cannot run common programs and drivers in the environment--Flash, TWAIN, most &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;VPN&lt;/span&gt; software, the list of things you can't do (or do well) is astoundingly comprehensive.&lt;br /&gt;&lt;br /&gt;We're heading toward a very real wall here: 32-bit versions of Vista (as with other flavors of Windows) are limited to 4GB of RAM.  Yet that is simply not enough for Vista plus any serious suite of applications.  At the same time, 64-bit Windows still isn't a truly viable desktop for most users.  Out of necessity, I'll compromise on many fronts--multimedia capability, peripheral compatibility, native software availability--but some of this stuff isn't easily &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;virtualizable&lt;/span&gt;, so I'm looking at the possibility of having to keep 32-bit systems around (for example for scanning, connecting to client &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;VPNs&lt;/span&gt;, etc.).  I'm really starting to feel hemmed in.&lt;br /&gt;&lt;br /&gt;I guess I could take a step back here and look at it from the Mac perspective.  It works &lt;span style="font-style: italic;"&gt;because&lt;/span&gt; it's broken; it's broken because it works.  That is, by forcing a switch to 64-bit Server I'm pruning the 16- and 32-bit dead wood that's keeping me in the 4-gigabyte sandbox.  Apple users long ago embraced obsolescence as a feature.  Vista and 64-bit computing may (finally) force the Windows side of the PC world to wake up to this.  Or maybe not.  There's a downside to the Mac example: "performance" in an absolute sense is to some extent irrelevant, and scaling up doesn't necessarily have to be as smooth or cheap as we're used to, as long as the chrome is shiny and doesn't peel off too obviously. &lt;br /&gt;&lt;br /&gt;This issue bears similarities to the current Internet Explorer 8 web standards argument--do we break the web (force IE8 standards mode, cripple billions of web pages) to move toward the Platonic ideal of standards?  Do we break the PC ecosystem (Vista, 64-bit) for the hope of increased functionality and capacity in the next generation of platforms (available today, but considered unusable by the consumer)?  You know it's a tough question when even &lt;a href="http://www.joelonsoftware.com/items/2008/03/17.html"&gt;Joel &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Spolsky&lt;/span&gt; can't tell you the answer&lt;/a&gt;.  But generally, culturally, we're not long-term investors, certainly not when the benefits are nebulous and far off and the pain points are obvious and immediate.  As Joel argues, for web standards under IE this is a late-bound issue--they can throw the switch any time to go back to a more relaxed mode.   But the issue of Vista running out of memory and 64-bit versions not being ready for prime time is a lot harder to resolve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-3024900914789742926?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/03/vista-64-bit-wheres-my-headroom.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-5421503339643319673</guid><pubDate>Tue, 11 Mar 2008 01:15:00 +0000</pubDate><atom:updated>2008-03-10T20:22:07.706-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>short</category><category domain='http://www.blogger.com/atom/ns#'>code</category><category domain='http://www.blogger.com/atom/ns#'>psa</category><title>G-Archiver and the Risks of Random Downloading</title><description>&lt;a href="http://www.codinghorror.com/blog/archives/001072.html"&gt;This is a pretty amazing story&lt;/a&gt; about a free utility with a malicious back-end twist.&lt;br /&gt;&lt;br /&gt;This is so bad that I assumed it was a hoax.  However, I downloaded the program, installed it (on a virtual machine), decompiled it, and verified that it is, in fact, "phoning home" with your gmail user name and password.  Yikes. &lt;br /&gt;&lt;br /&gt;The manufacturer's page has been updated to indicate that this "&lt;a href="http://www.garchiver.com/what-happened.htm"&gt;was in no way intentional&lt;/a&gt;," but does it really matter?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-5421503339643319673?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/03/g-archiver-and-risks-of-random.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-1351852735382804234</guid><pubDate>Thu, 06 Mar 2008 16:25:00 +0000</pubDate><atom:updated>2008-03-06T12:47:58.030-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>code</category><category domain='http://www.blogger.com/atom/ns#'>web-x.0</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>Dynamically Adding Option Elements to Select Objects... The Real Story</title><description>I don't normally blog about pure code subjects, so this is going to be way too technical/boring for the general readership of this blog.  However, I wasn't able to find the definitive answer to this question after searching around with Google, so I figured I'd contribute a little.  This is also a wiki-style reminder to myself the next time I need to do this. &lt;br /&gt;&lt;br /&gt;Mostly you'll be interested in this post if you're trying to programmatically add options to a select list using JavaScript.  Of all the ways to do this, there are a few that work and many that don't.  The catch seems to be that IE is picky about how and when the data "inside" the option tag (the visible text in the option list) is set.  According to the documentation there should be any number of ways to set this--.text, .innerHTML, .innerText.  Of those, the only one that seems to be broadly compatible is .text.  .innerText is IE-only, so it's right out.  .innerHTML is valid across platforms, but it messes with the object model in IE6 and IE7 (and IE8 beta 1, now that I look) in such a way that if you use it, you have to add the option element to the select element &lt;em&gt;before&lt;/em&gt; setting the .innerHTML property.  See below for a breakdown of the methods, plus test code.  Blogger might break this, so be sure to look at the &lt;a href="http://www.dickdiamond.com/blogimages/js_option_test.htm"&gt;plain test page&lt;/a&gt; ("view source" is going to be a lot friendlier on that page as well).&lt;br /&gt;&lt;br /&gt;In any case, here's the take-away when adding options to select elements:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Always use the .text property of the newly-created option object to set the visible text for the option.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;As a precaution, add the new option object to the select object's options collection &lt;em&gt;before&lt;/em&gt; setting other properties of the option. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;script language="javascript" src="http://www.dickdiamond.com/blogimages/js_option_test_blogger.js"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;style&gt;.section { border: 4px solid #AAAADD; margin:4px; padding:4px }.IEerr { border: 4px solid red; } blockquote { background-color: #EEEEEE; padding:10px;} &lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;div class="section"&gt;&lt;br /&gt;   &lt;h3&gt;create option, set .value, set .text, add to options list (generally compatible)&lt;/h3&gt;&lt;br /&gt;   &lt;pre&gt;&lt;br /&gt;function createSetTextAddOption(selectEl,val,displayText) {&lt;br /&gt; var o = document.createElement("OPTION");&lt;br /&gt; o.value = val;&lt;br /&gt; o.text = displayText;&lt;br /&gt; selectEl.options.add(o);&lt;br /&gt; return false;&lt;br /&gt;}&lt;br /&gt;   &lt;/pre&gt;&lt;br /&gt;   &lt;select id="sel1" name="sel1"&gt;    &lt;option value=""&gt;default&lt;/option&gt;   &lt;/select&gt;&lt;br /&gt;   &lt;input onclick="return createSetTextAddOption(document.getElementById('sel1'),'1','added value');" value="add" type="button"&gt;&lt;br /&gt;   &lt;div&gt;&lt;br /&gt;    &lt;input onclick="return addNewSelect(this,'1','added value',createSetTextAddOption);" value="new select" type="button"&gt;&lt;br /&gt;   &lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;div class="section IEerr"&gt;&lt;br /&gt;   &lt;h3&gt;create option, set .value, set .innerHTML, add to options list (fails IE6, IE7, IE8-'invalid argument')&lt;/h3&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function createSetInnerHTMLAddOption(selectEl,val,displayText) {&lt;br /&gt; var o = document.createElement("OPTION");&lt;br /&gt; o.value = val;&lt;br /&gt; o.innerHTML = displayText;&lt;br /&gt; selectEl.options.add(o);&lt;br /&gt; return false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;    &lt;select id="sel2" name="sel2"&gt;    &lt;option value=""&gt;default&lt;/option&gt;   &lt;/select&gt;&lt;br /&gt;   &lt;input onclick="return createSetInnerHTMLAddOption(document.getElementById('sel2'),'1','added value');" value="add" type="button"&gt;&lt;br /&gt;   &lt;div&gt;&lt;br /&gt;    &lt;input onclick="return addNewSelect(this,'1','added value',createSetInnerHTMLAddOption);" value="new select" type="button"&gt;&lt;br /&gt;   &lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;div class="section"&gt;&lt;br /&gt;   &lt;h3&gt;create option, add option to list, set .value, set .innerHTML (generally compatible)&lt;/h3&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function createAddOptionSetInnerHTML(selectEl,val,displayText) {&lt;br /&gt; var o = document.createElement("OPTION");&lt;br /&gt; o.value = val;&lt;br /&gt; selectEl.options.add(o);&lt;br /&gt; o.innerHTML = displayText;&lt;br /&gt; return false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;   &lt;select id="sel3" name="sel3"&gt;    &lt;option value=""&gt;default&lt;/option&gt;   &lt;/select&gt;&lt;br /&gt;   &lt;input onclick="return createAddOptionSetInnerHTML(document.getElementById('sel3'),'1','added value');" value="add" type="button"&gt;&lt;br /&gt;   &lt;div&gt;&lt;br /&gt;    &lt;input onclick="return addNewSelect(this,'1','added value',createAddOptionSetInnerHTML);" value="new select" type="button"&gt;&lt;br /&gt;   &lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;div class="section"&gt;&lt;br /&gt;   &lt;h3&gt;create option, add option to list, set .value, set .text (generally compatible)&lt;/h3&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function createAddOptionSetText(selectEl,val,displayText) {&lt;br /&gt; var o = document.createElement("OPTION");&lt;br /&gt; o.value = val;&lt;br /&gt; selectEl.options.add(o);&lt;br /&gt; o.text = displayText;&lt;br /&gt; return false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;   &lt;select id="sel4" name="sel4"&gt;    &lt;option value=""&gt;default&lt;/option&gt;   &lt;/select&gt;&lt;br /&gt;   &lt;input onclick="return createAddOptionSetText(document.getElementById('sel4'),'1','added value');" value="add" type="button"&gt;&lt;br /&gt;   &lt;div&gt;&lt;br /&gt;    &lt;input onclick="return addNewSelect(this,'1','added value',createAddOptionSetText);" value="new select" type="button"&gt;&lt;br /&gt;   &lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;div class="section IEerr"&gt;&lt;br /&gt;   &lt;h3&gt;Attempt to add new options/selects inline (option 2 and select 2 fail in IE, either silently or with the "invalid argument" error)&lt;/h3&gt;&lt;br /&gt;   According to the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms535921%28VS.85%29.aspx"&gt;Microsoft documentation&lt;/a&gt;, this shouldn't work at all.  Here's what they say about the option.add() method:&lt;br /&gt;   &lt;blockquote&gt;&lt;br /&gt;    &lt;p&gt;This method can be used to add elements only after the page loads.&lt;br /&gt;    &lt;/p&gt;&lt;br /&gt;    &lt;p&gt;If the method is applied inline, a run-time error occurs.&lt;br /&gt;    &lt;/p&gt;&lt;br /&gt;   &lt;/blockquote&gt;&lt;br /&gt;And yet, it mostly does work, aside from the innerHTML limitation...&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// generally compatible inline adds&lt;br /&gt;createSetTextAddOption(document.getElementById('sel5'),'1','added value 1');&lt;br /&gt;createAddOptionSetInnerHTML(document.getElementById('sel5'),'3','added value 3');&lt;br /&gt;createAddOptionSetText(document.getElementById('sel5'),'4','added value 4');&lt;br /&gt;   &lt;br /&gt;addNewSelect(document.getElementById('sel5'),'1','added value 1',createSetTextAddOption);&lt;br /&gt;addNewSelect(document.getElementById('sel5'),'1','added value 3',createAddOptionSetInnerHTML);&lt;br /&gt;addNewSelect(document.getElementById('sel5'),'1','added value 4',createAddOptionSetText);&lt;br /&gt;&lt;br /&gt;// these two fail in IE6, IE7, IE8&lt;br /&gt;createSetInnerHTMLAddOption(document.getElementById('sel5'),'2','added value 2');&lt;br /&gt;addNewSelect(document.getElementById('sel5'),'1','added value 2',createSetInnerHTMLAddOption);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;    &lt;select id="sel5" name="sel5"&gt;    &lt;option value=""&gt;default&lt;/option&gt;   &lt;/select&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;script language="javascript"&gt;inlineItems()&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Again, I encourage you to view the &lt;a href="http://www.dickdiamond.com/blogimages/js_option_test.htm"&gt;plain test page&lt;/a&gt; to avoid any Blogger-induced weirdness.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-1351852735382804234?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/03/dynamically-adding-option-elements-to.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-1753925718365674909</guid><pubDate>Sun, 17 Feb 2008 08:26:00 +0000</pubDate><atom:updated>2008-03-06T10:37:50.021-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>short</category><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>web-x.0</category><title>This Meme Needs a Name</title><description>All of a sudden (though probably not--I'm just catching on) there's a rash of services that crunch plain text or data keys and return parsed, formatted, drilled-down usable data.   For example...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tripit.com/"&gt;Tripit&lt;/a&gt; will digest all your travel confirmations and produce a rich itinerary.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/intl/en_us/mobile/sms/"&gt;Google SMS&lt;/a&gt; will take a zip code, flight number, etc., from your cell phone, and return a rich data node.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.opencalais.com/"&gt;Opencalais&lt;/a&gt; is a &lt;span style="font-style: italic;"&gt;platform&lt;/span&gt; for doing stuff like this.&lt;br /&gt;&lt;br /&gt;So what do we call it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-1753925718365674909?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/02/this-meme-needs-name.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-6196165743590495890</guid><pubDate>Sat, 26 Jan 2008 18:45:00 +0000</pubDate><atom:updated>2008-01-26T12:50:59.104-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>short</category><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>privacy</category><title>Mailinator: Free, Instant, Completely Unsecure Email</title><description>What if you're downloading a product demo, need a unique address to get the key, and never want to hear from that company again?  Good luck!  Actually, you don't need good luck, just &lt;a href="http://www.mailinator.com"&gt;mailinator&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Send to any address at &lt;a href="http://www.mailinator.com"&gt;mailinator.com&lt;/a&gt; (or one of several other domains) and then go to the site and check your email.  But make it a long, complex address, because there's no password.  In fact, anyone can check "your" email if they know the email address (including the person/company who sends email to you). &lt;br /&gt;&lt;br /&gt;If you &lt;a href="http://www.mailinator.com/faq.jsp"&gt;completely understand&lt;/a&gt; the limitations, this is a wonderful service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-6196165743590495890?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/01/mailinator-free-instant-completely.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-3815130553696143874</guid><pubDate>Tue, 22 Jan 2008 18:51:00 +0000</pubDate><atom:updated>2008-01-30T10:05:18.239-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>rant</category><category domain='http://www.blogger.com/atom/ns#'>1and1</category><title>Exclusively for 1&amp;1 Customers (Who Obviously Like Getting Screwed)</title><description>I usually chalk the non-sequitur nature of &lt;a href="http://www.1and1.com/?k_id=%206542006"&gt;1&amp;amp;1&lt;/a&gt;&lt;a href="http://www.1and1.com/?k_id=%206542006"&gt;.com&lt;/a&gt;'s marketing  materials up to some combination of baseline corporate incompetence and English as a second language.  But lately they're crossing right over into false advertising territory.&lt;br /&gt;&lt;br /&gt;Today, for example, I received an email with the subject "Exclusively for 1&amp;amp;1 Customers."  Here it is:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dickdiamond.com/uploaded_images/exclusively_for_1_and_1_customers_email-752595.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.dickdiamond.com/uploaded_images/exclusively_for_1_and_1_customers_email-752590.gif" alt="1and1 offer email--click for larger version" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Right off the bat there are a couple of lies here.  The first one is that only customers can take advantage of this "offer."  In fact, it represents the current default pricing on their web site.  Secondly, as a current customer, the only way I can take advantage of this is by buying a new package--they're definitely not offering me a discount on my current services.&lt;br /&gt;&lt;br /&gt;The real fun, however, is in the pricing.  For example, notice how the current "50% off sale" gets you a $6.99 domain registration for $6.12.  The fine print, of course, is that it's &lt;span style="font-style: italic;"&gt;50% off for three months on a one-year contract&lt;/span&gt;.  I guess we should just be glad they're not advertising domains at $0.29/month (every other product is advertised by the month, yet also requires a one-year commitment).  But it's not like the print is &lt;i&gt;that&lt;/i&gt; fine, right? Yet for every product listed and the minimum contract available, this "50% off sale" is, in fact, a 12.5% off sale.  Actually, there is one exception: for dedicated servers it's a 6.25% off sale (24-month contract required).&lt;br /&gt;&lt;br /&gt;But what are you going to do?  To paraphrase Winston Churchill... &lt;a href="http://www.1and1.com/?k_id=%206542006"&gt;1&amp;amp;1&lt;/a&gt; is the worst web hosting company, except for all the others I've tried.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-3815130553696143874?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/01/exclusively-for-1-customers-who.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-5258638148574560333</guid><pubDate>Fri, 18 Jan 2008 20:00:00 +0000</pubDate><atom:updated>2008-01-18T14:15:40.351-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>code</category><category domain='http://www.blogger.com/atom/ns#'>comp-sci</category><title>When You're an End Node, It Doesn't Pay to Ask Why</title><description>I think &lt;a href="http://ayende.com/Blog/archive/2008/01/12/Academia-in-Real-World-Development.aspx"&gt;what he's saying here&lt;/a&gt; is that where you look for answers as a developer is heavily influenced by the domain in which you're operating.  Yes, you need to consider "best practices" (groan), and sometimes it's a good idea to "think outside the box" (wretch), but most of the time you really need to concentrate on what  is possible and efficient and makes sense in the current context.  This is why when you want to learn &lt;span style="font-style: italic;"&gt;about&lt;/span&gt; a technology you can read a book, but when you actually have to &lt;span style="font-style: italic;"&gt;implement&lt;/span&gt; it you end up sorting through a lot of discussion groups and blog posts, and especially blog &lt;span style="font-style: italic;"&gt;comments&lt;/span&gt;--the ultimate end nodes of the infocloud.   &lt;br /&gt;&lt;br /&gt;Just a &lt;a href="http://ayende.com/Blog/Default.aspx"&gt;neat blog&lt;/a&gt; I stumbled on in an otherwise anxious, code-heavy week of integrating things that were never meant to work together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-5258638148574560333?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/01/when-youre-end-node-it-doesnt-pay-to.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-139256191043409490</guid><pubDate>Wed, 02 Jan 2008 14:27:00 +0000</pubDate><atom:updated>2008-01-02T09:11:14.198-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>code</category><category domain='http://www.blogger.com/atom/ns#'>hardware</category><category domain='http://www.blogger.com/atom/ns#'>wifi</category><title>Cheap Router as Wireless Bridge</title><description>I recently had a desperate need for a wireless bridge device.  The need has passed, but I finally figured out a way to do it without spending $60+ for a dedicated (one port) bridge.  The main goal here is to provide a  physical Ethernet jack somewhere out on your wireless network for a device or devices that can't connect to wireless directly.  I was able to get this working just now using a $25 refurbished Netgear WGT624v3 from Fry's.  I followed (and interpreted, because it's not as step-by-step as it could be) &lt;a href="http://www.beatjunkie.de/Router_eng.htm"&gt;these instructions&lt;/a&gt;.  &lt;a href="http://www.beatjunkie.de/Router_eng.htm" target="_blank"&gt;&lt;/a&gt;Supplemented with information from &lt;a href="http://forum1.netgear.com/showthread.php?t=2880"&gt;this thread&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What's really amazing about this is that you end up using a shell session on the router, without having to hack the firmware (though you are exploiting a disabled interface and a NetGear diagnostic tool that turns it back on).  It's pretty strange.&lt;br /&gt;&lt;br /&gt;In any case, I can now put four physical Ethernet ports anywhere within range of my wireless network.  The bridge is effectively dumb and invisible--DHCP, DNS, etc. all come from the access point.&lt;br /&gt;&lt;br /&gt;Not directly needed, but here's &lt;a href="http://www.seattlewireless.net/NetgearWGR614#head-131eb28bf7f9172ef900eab0399a671d43656978"&gt;some interesting background on hacking NetGear equipment&lt;/a&gt;.&lt;a href="http://www.seattlewireless.net/NetgearWGR614#head-131eb28bf7f9172ef900eab0399a671d43656978" target="_blank"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The best part about this?  I found the original thread, and the fact that this was all possible, using my Sprint phone while standing in Fry's staring at the blank brown box of the refurbished WGT624 wondering "WTF is this?" (iPhone?  We don't need no stinking iPhone.)&lt;br /&gt;&lt;br /&gt;Potential limitations that may reduce the usefulness of this.  I don't know if these are actual limitations, but I haven't tested beyond my own setup.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Tested only bridging to NetGear access point (potential issues with other brands?)&lt;/li&gt;&lt;li&gt; Tested only 64-bit WEP encryption (some of the comments mentioned problems with WPA)&lt;/li&gt;&lt;li&gt;Tested only with published SSID at the AP&lt;/li&gt;&lt;li&gt;Possible wireless saturation/interference--when I tried this with the bridge a few inches from my  Thinkpad, the internal Centrino wireless could no longer connect, and I've read that some BIOS versions of this router produce illegally-strong radio signals&lt;br /&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/7335600-139256191043409490?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2008/01/cheap-router-as-wireless-bridge.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-1443083870458901720</guid><pubDate>Thu, 06 Dec 2007 15:41:00 +0000</pubDate><atom:updated>2007-12-06T09:52:21.839-06:00</atom:updated><title>Let the Da Vinci-Coding Begin</title><description>You're going to need a bigger &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PhotoShop&lt;/span&gt;: &lt;a href="http://www.haltadefinizione.com/en/"&gt;the Last Supper at 16 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;gigapixels&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm sure it's a coincidence that the highest resolution digital capture ever is of a piece of artwork so symbolically (and now, cryptographically) over-analyzed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-1443083870458901720?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/12/let-da-vinci-coding-begin.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-3182619258463897096</guid><pubDate>Sat, 24 Nov 2007 18:49:00 +0000</pubDate><atom:updated>2007-11-24T12:56:41.147-06:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>short</category><category domain='http://www.blogger.com/atom/ns#'>geek-out</category><category domain='http://www.blogger.com/atom/ns#'>humor</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>Windows Cracks Me Up</title><description>&lt;a href="http://www.dickdiamond.com/uploaded_images/no_defrag-730247.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.dickdiamond.com/uploaded_images/no_defrag-730244.png" border="0" alt="this volume does not need defragmenting" /&gt;&lt;/a&gt;&lt;br /&gt;One wonders how bad things have to get before you "need" to defragment.&lt;br /&gt;&lt;br /&gt;Also, has anyone noticed that the Windows 2000 defragmenter is more aggressive than that supplied with Windows XP in terms of defragmenting free space?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-3182619258463897096?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/11/windows-cracks-me-up.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-6718354933666841463</guid><pubDate>Mon, 29 Oct 2007 00:01:00 +0000</pubDate><atom:updated>2007-10-28T21:04:34.112-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>short</category><category domain='http://www.blogger.com/atom/ns#'>green</category><title>Scientists to The World: Two Billion Must Die</title><description>Like a bunch of real-life Rip Van Winkles, the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;scientific&lt;/span&gt; community has awoken from a 20-year slumber and come to the conclusion that &lt;a href="http://www.sciam.com/article.cfm?chanID=sa007&amp;amp;articleID=DEAF205F-E7F2-99DF-35C3B60FE3CC788B&amp;amp;pageNumber=1&amp;amp;catID=1"&gt;the world has two billion more humans than it can possibly support&lt;/a&gt;. And while a phrase like "the scientific community" is often a euphemism for "some guy at a liberal arts college in Oregon" in this case we're actually talking about "388 scientists reviewed by roughly 1,000 of their peers." As far as scientists go, I think that's pretty much all of them.&lt;br /&gt;&lt;br /&gt;Speaking of which, have you seen Al Gore's new business card?&lt;br /&gt;&lt;br /&gt;&lt;table width="400" height="220" style="border: 1px solid black; width: 400px; height: 220px;"&gt;&lt;tbody&gt;&lt;tr valign="middle" align="center"&gt;&lt;td&gt;&lt;/td&gt;&lt;td align="center" height="100%" valign="middle" width="100%"&gt;&lt;div valign="middle" style="font-family: times new roman; font-size: 130%; text-align: center; " align="center"&gt;&lt;strong align="center" valign="middle"&gt;I told you so&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-6718354933666841463?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/10/scientists-to-world-two-billion-must.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-7096277554891444359</guid><pubDate>Mon, 23 Jul 2007 14:05:00 +0000</pubDate><atom:updated>2007-07-23T09:23:32.138-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>psa</category><title>Are We Not Spam?</title><description>No, we're not.  &lt;br /&gt;&lt;br /&gt;You may be reading this because you got a spam email from a random address at this domain.  Looking at the bounce messages in my spam folder, it appears someone chose my domain and started generating random messages right around midnight last night for about an hour.  This was not from me, nor any system on my network, which I have confirmed by analyzing the bounced message headers.  The emails seem to originate from many different IP addresses, which would indicate that a network of compromised PCs is being used.  &lt;br /&gt;&lt;br /&gt;You should report the orginating IP address in the message header (or better yet, forward the whole, detailed email header) to your ISP's abuse address.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-7096277554891444359?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/are-we-not-spam.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-3069160211054289888</guid><pubDate>Sun, 22 Jul 2007 17:02:00 +0000</pubDate><atom:updated>2007-07-22T12:37:49.662-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>blogs</category><category domain='http://www.blogger.com/atom/ns#'>web-x.0</category><category domain='http://www.blogger.com/atom/ns#'>media</category><title>On SNS Backlash and Opting Out</title><description>Following up on &lt;a href="http://www.dickdiamond.com/2007/07/it-strikes-me-that-most-people-dont-do.html"&gt;my post from yesterday&lt;/a&gt;, I was thinking about social networks in term of personal return on investment: for some of us there really isn't any.  It seems &lt;a href="http://www.evilgeniuschronicles.org/wordpress/2007/07/17/why-i-dropped-scoble-and-seceded-from-the-hunt-for-newer-shinier-things/"&gt;Dave Slusher has some of the same concerns&lt;/a&gt;, and cites &lt;a href="http://scobleizer.com/2007/07/08/hmmm-facebook-a-new-kind-of-press-release/"&gt;a Scoble post&lt;/a&gt; for contributing to his opting out of the whole SNS thing.  There's wonderful symmetry here because it's largely Scoble that got me even considering joining a SNS.  &lt;br /&gt;&lt;br /&gt;What I've decided is that SNS is a bad idea for me for the same reason it's a good idea for Scoble.  Scoble's a pundit.  His job is to connect to a lot of people, keep his eyes and ears open for the next new hotness, and then distribute that information via his various output channels.  Nice work if you can get it.  But it's not &lt;em&gt;my&lt;/em&gt; work.  Trying to maintain even a single presence online for me is definitely more trouble than it's "worth."  My ROI on this blog is certainly negative, both in the short term (hosting costs, opportunity costs for time spent on each post and tweak) and the long term (expressing my honest opinions will almost certainly cost me friends and business down the road, versus the relative safety of staying politely quiet or concentrating on a more traditional, less sincere "marketing strategy").&lt;br /&gt;&lt;br /&gt;From this perspective, if I join, I become basically a social network wage slave.  I sacrifice my time, energy, privacy, etc. and contribute content to this "thing" that ultimately doesn't benefit me, certainly not as much as it benefits the network itself, or power users in a certain niche, like Scoble.  To be one of the mooing masses on a social network has exactly the same cost-benefit ratio of being a cow in any other sphere.  The obvious argument against what I'm saying would be to contend that SNS is not a zero-sum game, that everyone gains and no one loses.  I'm not buying it.    Like Slusher, I don't feel like there's been one tangible benefit to me from SNS involvement, or for that matter from maintaining any kind of content-based online presence (most especially including this blog).  And, like Slusher, I know there are a million better, more fulfilling things I could be doing with my time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-3069160211054289888?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/on-sns-backlash-and-opting-out.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-5294625823554336810</guid><pubDate>Sat, 21 Jul 2007 05:15:00 +0000</pubDate><atom:updated>2007-07-21T00:56:12.909-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>rant</category><category domain='http://www.blogger.com/atom/ns#'>code</category><title>It Strikes Me that Most People Don't Do Anything</title><description>I've been reading a lot lately about &lt;a href="http://www.neatorama.com/2007/07/10/rule-the-web-and-rule-your-email-inbox/"&gt;how to manage email&lt;/a&gt; and how &lt;a href="http://scobleizer.com/2007/06/20/jaikutwitterfacebookkyteplaxo-something-happening-you-should-pay-attention-to/"&gt;between facebook and twitter you can do 90% of your job&lt;/a&gt;.  And I've come to believe that most people, as the central function of their job, do nothing other than chat rather trivially with other people.  Because I simply cannot do my job in &lt;a href="http://www.deepjiveinterests.com/2007/07/09/pownce-is-not-twitter-nor-is-it-as-important-as-twitter/"&gt;140 characters or less&lt;/a&gt;.  I can't do &lt;a href="http://www.43folders.com/2007/07/12/five-sentence-email/"&gt;five sentence emails&lt;/a&gt;.  Most of the work emails I get reveal to me that the people I work with haven't the slightest clue what's going on at any given moment on any given project.    The occasional brain dump is required.  I still document my code, if you can believe that.  &lt;br /&gt;&lt;br /&gt;In fact, the main service I provide, in a very detailed usually concise fashion, is the interpretation of vague and incorrect assumptions into working, usable processes and applications.  Tell me how that's going to get done over twitter?&lt;br /&gt;&lt;br /&gt;I'm sorry to say it, but in the real world we write the specification as we go.  We morph the process on a daily basis.  And unfortunately that requires a little more documentation and accountability than you get from MySpace and YouTube.  In the real world we work with SVN and SQL Server and FTP and Terminal Services and FogBugz and wikis and virtualization and yes, oddly enough, email.  Occasionally we pass around a Word document.  Shocking, huh?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-5294625823554336810?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/it-strikes-me-that-most-people-dont-do.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-9113005640246715034</guid><pubDate>Sat, 21 Jul 2007 04:55:00 +0000</pubDate><atom:updated>2007-07-20T23:58:46.351-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>rant</category><category domain='http://www.blogger.com/atom/ns#'>short</category><title>Platitudes</title><description>Life is less fun, but more interesting, when you know you're being persistently and expertly manipulated.  (No links, because you're soaking in it.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-9113005640246715034?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/platitudes.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-4868896072797954164</guid><pubDate>Sat, 21 Jul 2007 04:41:00 +0000</pubDate><atom:updated>2007-07-20T23:47:37.247-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>rant</category><category domain='http://www.blogger.com/atom/ns#'>short</category><title>Directed Attention Fatigue?</title><description>There's no way &lt;a href="http://en.wikipedia.org/wiki/Directed_attention_fatigue"&gt;this is a "disease" or even a "condition."&lt;/a&gt;  This is called having a job and a cable modem.  Stand-up comics have exploited this for years.  In high school we called this  &lt;a href="http://en.wikipedia.org/wiki/Acetylcholine"&gt;acetylcholine deficiency&lt;/a&gt;.  So you &lt;em&gt;know&lt;/em&gt; it's not new.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-4868896072797954164?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/directed-attention-fatigue.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-3675029223549016947</guid><pubDate>Fri, 20 Jul 2007 21:39:00 +0000</pubDate><atom:updated>2007-07-20T18:21:28.268-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>blogs</category><category domain='http://www.blogger.com/atom/ns#'>movies</category><title>Desperation Blogging 101: Pick the Wrong Side and Dig In</title><description>After &lt;a href="http://www.ectomo.com/?p=348"&gt;a post yesterday over at ectoplasmosis trying to drum up business for his SciFi Scanner blog&lt;/a&gt;, John Brownlee today goes directly to the &lt;a href="http://www.copyblogger.com/go-big-or-go-home/"&gt;copyblogger playbook&lt;/a&gt; and boldy digs in on the wrong side of a hot-button SF issue in order to boost traffic.  The issue: &lt;a href="http://blogs.amctv.com/scifiscanner/2007/07/the-fifth-eleme.html"&gt;is &lt;em&gt;The Fifth Element&lt;/em&gt; any good&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;Seriously?  You want to debate &lt;span style="font-style:italic;"&gt;The Fifth Element&lt;/span&gt; on its merits?  Isn't that sort of like debating ice cream on its merits?  &lt;br /&gt;&lt;br /&gt;To even have this gig Brownlee must know that &lt;span style="font-style:italic;"&gt;The Fifth Element&lt;/span&gt; is on many a fan's desert island disks list (including mine).  It's fun and it's gorgeous (the whole thing, not just &lt;a href="http://images.google.com/images?svnum=10&amp;hl=en&amp;gbv=2&amp;safe=off&amp;q=mila+jovovich&amp;btnG=Search+Images"&gt;Mila&lt;/a&gt;), and the mythos-/technobabble is the best since Ghostbusters (in fact don't both films refer to "slightly greasy" atomic particles?).  And to borrow from &lt;a href="http://robotwisdom2.blogspot.com/2007/06/barger-canon.html"&gt;Jorn Barger's canon&lt;/a&gt; rating system, it's got a high "escape" quotient (high payoff for effort).    It's not deep, but &lt;span style="font-style:italic;"&gt;The Fifth Element&lt;/span&gt; is both highly watchable and easy to re-watch.  &lt;br /&gt;&lt;br /&gt;Basically, it's broad-spectrum porn.  Sit back, relax and enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-3675029223549016947?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/desperation-blogging-101-pick-wrong.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-1397518318949080933</guid><pubDate>Fri, 20 Jul 2007 18:36:00 +0000</pubDate><atom:updated>2007-07-20T13:44:03.970-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>media</category><category domain='http://www.blogger.com/atom/ns#'>politics</category><title>Early Hef with Bonus RAW in The Realist</title><description>&lt;a href="http://www.ep.tc/realist/26/09.html"&gt;This 1961 "interview" with Hugh Hefner&lt;/a&gt; is amusingly dated but surprisingly prescient on (just) a couple of points, including the always-looming puritan menace (or the perception thereof) and Hef's own future-present (projecting himself in later life: 'I'll have all those "Playmates of the Month" around to keep my interest.').&lt;br /&gt;&lt;br /&gt;Yet there's no escaping that Hef's pseudo-intellectual, self-styled "masculism" always left him sounding like an inflated dick.  A few issues later we have none other than &lt;a href="http://www.ep.tc/realist/41/25.html"&gt;Robert Anton Wilson pointing out Hef's politico-economic naivete&lt;/a&gt;, while of course espousing his own socialist-anarchist worldview.    &lt;br /&gt;&lt;br /&gt;In both cases, these short, fringe-published works are remarkably true to the later-life character of these men.  There's a lot of other good stuff in &lt;a href="http://www.ep.tc/realist/"&gt;&lt;em&gt;The Realist&lt;/em&gt; archive&lt;/a&gt; if you poke around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-1397518318949080933?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/early-hef-with-bonus-raw-in-realist.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-2836570841796103969</guid><pubDate>Thu, 19 Jul 2007 04:34:00 +0000</pubDate><atom:updated>2007-07-21T13:13:27.850-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>rant</category><category domain='http://www.blogger.com/atom/ns#'>blogs</category><category domain='http://www.blogger.com/atom/ns#'>short</category><category domain='http://www.blogger.com/atom/ns#'>writing</category><title>Winzip for Wordsmiths</title><description>I'm a little shocked this still needs to be said, because it's just about the only lesson I remember from every writing class I ever took.  And I'm really shocked that &lt;a href="http://www.copyblogger.com/embrace-brevity/"&gt;a blog post about omitting needless words and writing clearly&lt;/a&gt; is so repetitive and fractured.  But just so we're clear: &lt;strong&gt;be concise&lt;/strong&gt;.  &lt;br /&gt;&lt;br /&gt;Holy crap.  Did we forget that great writers sweat over sentence structure and word choice?  Read some Hemingway or Steinbeck whydontcha!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update:&lt;/em&gt; I have a modern, blogging example of this: &lt;a href="http://robotwisdom2.blogspot.com/"&gt;Jorn Barger's blogging&lt;/a&gt; and &lt;a href="http://robotwisdom2.blogspot.com/2007/07/jesus-b.html"&gt;writing&lt;/a&gt; are so concise as to be nearly uncompressible.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update 2:&lt;/em&gt; It further occurs to me that there's a term for uncompressible, unskimable text that distills only the essence of meaning: poetry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-2836570841796103969?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/winzip-for-wordsmiths.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7335600.post-6560943211164708365</guid><pubDate>Sun, 15 Jul 2007 17:11:00 +0000</pubDate><atom:updated>2007-07-15T12:36:52.400-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>media</category><category domain='http://www.blogger.com/atom/ns#'>writing</category><title>The End of Harry Potter... Just in Time?</title><description>Here's an interesting argument that &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2007/07/13/AR2007071301730.html?hpid=opinionsbox1"&gt;reading Harry Potter isn't "real" reading&lt;/a&gt;--for adults, and it also debunks the "gateway" metaphor for kids--but simply participation in one more carefully-choreographed, highly-mediated event.  I guess the good news is that culturally we appear to have some tolerance ceiling for carefully-choreographed, highly-mediated experiences.  Maybe.  &lt;br /&gt;&lt;br /&gt;Getting past the idea of Harry Potter and his rabid fans being the philistines at the hedgerow of serious literature, this article also touches on the idea of the death of criticism and the ascendancy of the review.  The difference is that a review is essentially a piece of marketing material, most often in favor of the piece, only occasionally against (in the context of defusing an over-hyped "project").  Criticism by contrast is comparative, attempting to get at the meaning of a work's broad relation to other works and cultural memes.  &lt;br /&gt;&lt;br /&gt;The broader issue here is whether reading is purely escapist entertainment (book reviews perform the function of &lt;span style="font-style:italic;"&gt;TV Guide&lt;/span&gt;), or whether it has deeper personal importance and meaning (the critical approach).  This is an important distinction because in the former case reading is essentially trivial: like most mass media today, a base, simplistic reflection of populism and mediocrity (and what is Harry Potter, a book or movie consumed by millions of people over the same weekend, if not a mass medium?).  In the latter case,  if reading has personal meaning and importance, then the prevalence and condition of critical, thoughtful readers becomes a culturally vital issue.  &lt;a href="http://www.harpers.org/archive/2007/04/0081479"&gt;Harper's has an extended article on this topic&lt;/a&gt; that I highly recommend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7335600-6560943211164708365?l=www.dickdiamond.com%2Findex2.htm' alt='' /&gt;&lt;/div&gt;</description><link>http://www.dickdiamond.com/2007/07/end-of-harry-potter-just-in-time.html</link><author>noreply@blogger.com (Rich)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>