<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>danvk.org &#187; web</title>
	<atom:link href="http://www.danvk.org/wp/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danvk.org/wp</link>
	<description>Keepin' static like wool fabric since 2006</description>
	<lastBuildDate>Fri, 20 Jan 2012 23:05:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Crosscountry Crosswords</title>
		<link>http://www.danvk.org/wp/2011-03-27/crosscountry-crosswords/</link>
		<comments>http://www.danvk.org/wp/2011-03-27/crosscountry-crosswords/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 21:07:05 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=749</guid>
		<description><![CDATA[It&#8217;s been almost a year since I introduced lmnowave, the collaborative crossword puzzle gadget for Google Wave. A lot has happened in that past year, not least the cancelation of Wave. First, to clear up some confusion. It&#8217;s not &#8220;I&#8217;m no wave&#8221;, it&#8217;s &#8220;L-M-N-O-Wave&#8221;, which is a play on &#8220;L-M-N-O-Puz&#8221;, aka lmnopuz, the software on [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.danvk.org/wp/wp-content/uploads/2010/03/logo.png" alt="logo" title="logo" width="167" height="101" align="right" class="alignright size-full wp-image-688" />It&#8217;s been almost a year since I introduced <a href="/wp/2010-03-22/introducing-lmnowave/">lmnowave</a>, the collaborative crossword puzzle gadget for <a href="http://wave.google.com/">Google Wave</a>. A lot has happened in that past year, not least the cancelation of Wave.</p>
<p>First, to clear up some confusion. It&#8217;s not &#8220;I&#8217;m no wave&#8221;, it&#8217;s &#8220;L-M-N-O-Wave&#8221;, which is a play on &#8220;L-M-N-O-Puz&#8221;, aka <a href="http://neugierig.org/software/lmnopuz/">lmnopuz</a>, the software on which my collaborative crossword system is based. Only a few dozen people ever saw lmnopuz, so no one got the joke. And I realized after releasing it that, by changing &#8216;puz&#8217; -&gt; &#8216;wave&#8217;, I&#8217;d taken away any hint of what my wave gadget actually did. A bad name. Oh well.</p>
<p>In August, Google announced that <a href="http://googleblog.blogspot.com/2010/08/update-on-google-wave.html">Wave was canceled</a>. This seemed to be the end of lmnowave. Sure, Wave was still usable. But the life had been sucked out of the project. This was quite disappointing to me, since I&#8217;d spent a fair bit of my own time developing the crossword gadget.</p>
<p>Then, in mid-December, Douwe Osinga <a href="http://googlewave.blogspot.com/2010/12/announcing-google-shared-spaces.html">introduced</a> the oddly-named <a href="http://sharedspaces.googlelabs.com/">Google Shared Spaces</a>. It&#8217;s an attempt to salvage the Wave gadget code, to let it live outside of Wave.</p>
<p>For lmnopuz, it&#8217;s perfect. Here&#8217;s the <a href="http://sharedspaces.googlelabs.com/gallery/app?app_id=96001">lmnowave shared space</a>. You can use it to collaborate on crosswords with your friends, just like you could with lmnowave. In some ways, it&#8217;s even better, since the Wave UI is stripped away and you can focus on your puzzle. To do crosscountry crosswords, my <a href="http://ericaricardo.com/">friend</a> and I open up a shared space and call each other on Skype. The combination works really well.</p>
<p>What does the future hold for lmnowave? It&#8217;s a bit unclear. I may turn it into a Facebook game, or perhaps use it to learn how to write applications for the <a href="http://www.apple.com/mac/app-store/">Mac App store</a>.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2011-03-27/crosscountry-crosswords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commacopy</title>
		<link>http://www.danvk.org/wp/2011-03-09/commacopy/</link>
		<comments>http://www.danvk.org/wp/2011-03-09/commacopy/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 15:16:08 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=720</guid>
		<description><![CDATA[At work, I often see web pages that display large numbers like so: num-bytes 1,234,567,890 num-entries 123,456,789 Including the commas in the display makes the numbers easier to read. But it does have a downside. Say you want to calculate the average number of bytes per entry. If you copy/paste the numbers above, the commas [...]]]></description>
			<content:encoded><![CDATA[<p>At work, I often see web pages that display large numbers like so:</p>
<table>
<tr>
<td>num-bytes</td>
<td>1,234,567,890</td>
</tr>
<tr>
<td>num-entries</td>
<td>123,456,789</td>
</tr>
</table>
<p>Including the commas in the display makes the numbers easier to read. But it does have a downside. Say you want to calculate the average number of bytes per entry. If you copy/paste the numbers above, the commas will prevent most programming languages (e.g. <a href="http://en.wikipedia.org/wiki/Python_(programming_language)">python</a> or <a href="http://en.wikipedia.org/wiki/Bc_programming_language">bc</a>) from interpreting them correctly.</p>
<p>My coworker <a href="http://dsandler.org/wp/">Dan</a> came up with a great solution to this conundrum using CSS. Try copy/pasting these numbers over into the text box:</p>
<style type="text/css">.pre-comma:before { content:","; }</style>
<table>
<tr valign="top">
<td valign="top" width="50%">
<ul>
<li>1<span class='pre-comma'>234</span> <b> or </b> 2<span class='pre-comma'>345</span>
<li>-12<span class='pre-comma'>345</span>.67
<li>-123<span class='pre-comma'>456</span><span class='pre-comma'>789</span></ul>
</td>
<td valign="top"><textarea rows=4 cols=30></textarea></td>
</tr>
</table>
<p>The commas don&#8217;t copy! Best of both worlds!</p>
<p>You can view source to see how it works, but let&#8217;s jump straight to the goodies:</p>
<p><!-- hoisted from https://www.squarefree.com/bookmarklets/ --></p>
<style type="text/css">a.bml { border:1px outset #ddd; padding: 1px; vertical-align: 1px; background: #ddd; text-decoration: none;  font-family: sans-serif; color: darkgreen; }</style>
<p><b>Bookmarklet: </b><a class="bml" href="javascript:var%20s%20=%20document.getElementsByTagName(%27*%27);var%20re%20=%20/[-+]?(\d{1,3})(,\d\d\d)+(\.\d*)?/;var%20changed%20=%20false;for%20(var%20i%20=%200;%20i%20<%20s.length;%20i++)%20{var%20el%20=%20s[i];for%20(var%20j%20=%200;%20j%20<%20el.childNodes.length;%20j++)%20{if%20(el.childNodes[j].nodeType%20==%203)%20{var%20txtEl%20=%20el.childNodes[j];var%20txt%20=%20txtEl.nodeValue;if%20(txt.match(re))%20{changed%20=%20true;var%20new_span%20=%20document.createElement(%22span%22);new_span.innerHTML%20=%20txt.replace(/,(\d\d\d)/g,%22<span%20class=%27pre-comma%27>$1</span>%22);el.replaceChild(new_span,%20txtEl);}}}}if%20(changed)%20{var%20rule%20=%20%22content:%20%27,%27;%22;var%20styleSheetElement%20=%20document.createElement(%22style%22);styleSheetElement.type%20=%20%22text/css%22;document.getElementsByTagName(%22head%22)[0].appendChild(styleSheetElement);for%20(var%20i%20=%200;%20i%20<%20document.styleSheets.length;%20i++)%20{if%20(document.styleSheets[i].disabled)%20continue;var%20mysheet%20=%20document.styleSheets[i];try%20{if%20(mysheet.insertRule)%20{var%20idx%20=%20mysheet.cssRules%20?%20mysheet.cssRules.length%20:%200;mysheet.insertRule(%22.pre-comma:before%20{%20%22%20+%20rule%20+%20%22%20}%22,%20idx);}%20else%20if%20(mysheet.addRule)%20{mysheet.addRule(%22.pre-comma:before%22,%20rule);}return;}%20catch(err)%20{}}}">commacopy</a></span></p>
<p><b>Unobtrusive JavaScript: </b><a href="/commacopy/commacopy.js">commacopy.js</a></p>
<p>To use the bookmarklet, drag it to your browser&#8217;s bookmarks toolbar. If you click it, it will silently convert all numbers containing commas on the current page to the fancy copy/pasteable commas. This should really be a Chrome extension that runs on every page, but I&#8217;ll leave that as an exercise for the reader.</p>
<p>To use the unobtrusive JS, make a copy of <a href="/commacopy/commacopy.js">commacopy.js</a> and include it in your page via:<br />
<code><br />
&lt;script src="commacopy.js" language="text/javascript"&gt;&lt;script&gt;<br />
</code></p>
<p>commacopy works by converting a number like:<br />
<code><br />
123,456,789<br />
</code></p>
<p>into this HTML:<br />
<code><br />
&lt;style type="text/css"&gt;<br />
.pre-comma:before {<br />
&nbsp;&nbsp;content: ",";<br />
}<br />
&lt;/style&gt;<br />
123&lt;span class='pre-comma'&gt;456&lt;/span&gt;&lt;span class='pre-comma'&gt;789&lt;/span&gt;<br />
</code></p>
<p>The commas are only present in a CSS style, rather than in the text itself. For reasons which aren&#8217;t entirely clear to me, this means that they don&#8217;t make it into the clipboard when you copy/paste them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2011-03-09/commacopy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sunrise/Sunset Onebox</title>
		<link>http://www.danvk.org/wp/2010-06-28/sunrisesunset-onebox/</link>
		<comments>http://www.danvk.org/wp/2010-06-28/sunrisesunset-onebox/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 01:45:25 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[astronomy]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=708</guid>
		<description><![CDATA[If you try searching for [sunrise san francisco] on Google, you&#8217;ll see a special display in the results: This is known as a &#8220;onebox&#8221;. It&#8217;s designed to get you answers quickly. Other examples include the calculator (e.g. [2*2]), weather ([weather 94110]) and time ([time italy]) oneboxes. The sunrise/sunset onebox is a project that I worked [...]]]></description>
			<content:encoded><![CDATA[<p>If you try searching for [<a href="http://www.google.com/search?q=sunrise+san+francisco">sunrise san francisco</a>] on Google, you&#8217;ll see a special display in the results:</p>
<p><img src="http://www.danvk.org/wp/wp-content/uploads/2010/06/sunrise-sf1.png" alt="" title="sunrise-sf" width="478" height="130" class="aligncenter size-full wp-image-711" /></p>
<p>This is known as a &#8220;onebox&#8221;. It&#8217;s designed to get you answers quickly. Other examples include the calculator (e.g. [<a href="http://www.google.com/search?q=2*2">2*2</a>]), weather ([<a href="http://www.google.com/search?q=weather+94110">weather 94110</a>]) and time ([<a href="http://www.google.com/search?q=time+italy">time italy</a>]) oneboxes.</p>
<p>The sunrise/sunset onebox is a project that I worked on in my spare time and recently launched. You can read more about it on the <a href="http://googleblog.blogspot.com/2010/06/this-week-in-search-62710.html">Official Google Blog</a>. I first had the idea for this onebox about two years ago, so it&#8217;s very gratifying to see it finally launch!</p>
<p>A few features which are worth calling out:</p>
<ul>
<li>The sunrise and sunset times are calculated when you perform your query. They are a function of latitude, longitude and the current time. The algorithm is based on the one used by <a href="http://www.srrb.noaa.gov/highlights/sunrise/sunrise.html">NOAA</a>.</li>
<li>In most places, you can just search for [<a href="http://www.google.com/search?q=sunrise">sunrise</a>] or [<a href="http://www.google.com/search?q=sunset">sunset</a>] to get results for your current location. Google figures this out based on your IP.</li>
<li>This onebox works on mobile phones, too, so you can search for sunset times when you&#8217;re out on a hike.</li>
</ul>
<p>There&#8217;s a wrinkle to the sunrise/sunset calculation that non-astronomers don&#8217;t typically think about. The sun starts to behave strangely once you get north of the arctic circle or south of the antarctic circle. If you&#8217;re north of the arctic circle, then there will be at least one day during the summer when the site never sets. And there will be at least one day during the winter when it never rises. This is truly a special case for the onebox! Here&#8217;s what it looks like:</p>
<p><a href="http://www.google.com/search?q=sunset+barrow+ak"><img border=0 src="http://www.danvk.org/wp/wp-content/uploads/2010/06/sunset-barrow.png" alt="" title="sunset-barrow" width="392" height="136" class="aligncenter size-full wp-image-710" align="center" /></a></p>
<p>I feel bad for those Barrowans &mdash; hopefully they&#8217;ll be able to fall asleep sometime in the next 34 days!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2010-06-28/sunrisesunset-onebox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A new view on Minard&#8217;s Napoleon</title>
		<link>http://www.danvk.org/wp/2009-12-04/a-new-view-on-minards-napoleon/</link>
		<comments>http://www.danvk.org/wp/2009-12-04/a-new-view-on-minards-napoleon/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 00:29:04 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=625</guid>
		<description><![CDATA[Charles Minard&#8217;s chart of the demise of Napoleon&#8217;s Grand Armée is famous for its &#8220;brutal eloquence&#8221;. Edward Tufte says it &#8220;may well be the best statistical graphic ever drawn&#8221;. The width of the line represents the size of Napoleon&#8217;s army as it marched to Moscow and then retreated. I found a version of this visualization [...]]]></description>
			<content:encoded><![CDATA[<p>Charles Minard&#8217;s chart of the demise of Napoleon&#8217;s <a href="http://en.wikipedia.org/wiki/Grand_Armée">Grand Armée</a> is famous for its &#8220;brutal eloquence&#8221;. <a href="http://en.wikipedia.org/wiki/Edward_Tufte">Edward Tufte</a> says it &#8220;may well be the best statistical graphic ever drawn&#8221;.</p>
<p><a href="http://en.wikipedia.org/wiki/File:Minard.png"><img src="http://www.danvk.org/wp/wp-content/uploads/2009/12/Minard-small.png" alt="Minard-small" title="Minard-small" width="450" height="214" class="aligncenter size-full wp-image-629" border="0" /></a></p>
<p>The width of the line represents the size of Napoleon&#8217;s army as it marched to Moscow and then retreated.</p>
<p>I found a version of this visualization <a href="http://vis.stanford.edu/protovis/ex/napoleon.html">put on a Google Map</a> using <a href="http://vis.stanford.edu/protovis/ex/">protovis</a>. This visualization is great! It draws attention to one of the main problems with this famous visualization: it doesn&#8217;t give any geographical context. I had no idea where Napoleon&#8217;s army started and turned around until I saw this map:</p>
<p><a href="http://vis.stanford.edu/protovis/ex/napoleon.html "><img src="http://www.danvk.org/wp/wp-content/uploads/2009/12/grand-armee.png" alt="grand-armee" title="grand-armee" width="503" height="333" class="aligncenter size-full wp-image-626" border="0" /></a></p>
<p>Some things that stand out:</p>
<ul>
<li>The Grand Armée was <i>way</i> far away from France at the start of this.
<li>The march wasn&#8217;t as long as I&#8217;d imagined. When I think &#8220;march across Russia&#8221;, the image in my mind goes halfway across Siberia.
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2009-12-04/a-new-view-on-minards-napoleon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Character Palette Bookmarklet</title>
		<link>http://www.danvk.org/wp/2009-09-07/character-palette-bookmarklet/</link>
		<comments>http://www.danvk.org/wp/2009-09-07/character-palette-bookmarklet/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 22:20:08 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=582</guid>
		<description><![CDATA[The other day, I noticed that one of my friends had Wikipedia&#8217;s article on the em dash bookmarked in her toolbar. While that article is a gem of punctuation literature, it turned out that she would go to it, select an em dash, and copy/paste it into emails. A better way to do this is [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, I noticed that one of my <a href="http://www.ericaricardo.com">friends</a> had Wikipedia&#8217;s article on the <a href="http://en.wikipedia.org/wiki/Em_dash">em dash</a> bookmarked in her toolbar. While that article is a gem of punctuation literature, it turned out that she would go to it, select an em dash, and copy/paste it into emails.</p>
<p>A better way to do this is with a <a href="http://en.wikipedia.org/wiki/Bookmarklet">bookmarklet</a>. Drag this to your browser&#8217;s bookmark toolbar:</p>
<style type="text/css">
@media all { /* Hide from NS4, which makes it a block and not a link if I add these */
 a.bml { border:1px outset #ddd; padding: 1px; vertical-align: 1px; }
}
a.bml { background: #ddd; text-decoration: none;  color: darkgreen; }
</style>
<p><a class="bml" href="javascript:function%20characterPalette()%20{var%20testwidth%20=%20document.createElement(%22div%22);testwidth.style.position%20=%20%27fixed%27;testwidth.style.left%20=%20%270%27;testwidth.style.top%20=%20%270%27;testwidth.style.width%20=%20%27100%%27;testwidth.style.height%20=%20%27100%%27;document.body.appendChild(testwidth);var%20docWidth%20=%20testwidth.scrollWidth;document.body.removeChild(testwidth);var%20width%20=%20260;var%20div%20=%20document.createElement(%22div%22);var%20closeButton%20=%20document.createElement(%22div%22);closeButton.style.textAlign%20=%20%27right%27;closeButton.style.padding%20=%20%273px%27;closeButton.style.color%20=%20%27blue%27;closeButton.appendChild(document.createTextNode(%22close%22));div.style.border%20=%20%221px%20black%20solid%22;div.style.textAlign%20=%20%27left%27;div.style.position%20=%20%27fixed%27;div.style.color%20=%20%27black%27;div.style.backgroundColor%20=%20%27white%27;div.style.top%20=%20%275px%27;div.style.width%20=%20width%20+%20%27px%27;div.style.left%20=%20(docWidth%20-%20width%20-%2012)%20+%20%22px%22;div.style.padding%20=%20%273px%27;div.appendChild(closeButton);var%20signs%20=%20document.createElement(%22div%22);signs.id%20=%20%22characterPalette%22;var%20symbols%20=%20[%20[%20%22&amp;mdash;%20&amp;nbsp;%20(em)%22,%20%22&amp;ndash;%20&amp;nbsp;%20(en)%22%20],[%20%22&amp;lsquo;%22,%20%22&amp;rsquo;%22,%20%22&amp;ldquo%22,%20%22&amp;rdquo%22%20],[%20%22&amp;aacute;%22,%20%22&amp;eacute;%22,%20%22&amp;agrave;%22,%20%22&amp;egrave;%22,%20%22&amp;ouml;%22,%20%22&amp;uuml;%22,%20%27&amp;acirc%27,%20%27&amp;ecirc%27,%20%27&amp;ucirc%27,%20%27&amp;ccedil;%27%20],[%20%22&amp;alpha;%22,%20%22&amp;beta;%22,%20%22&amp;gamma;%22,%20%22&amp;delta;%22,%20%22&amp;epsilon;%22,%20%22&amp;zeta;%22,%20%22&amp;eta;%22,%20%22&amp;theta;%22,%20%22&amp;iota;%22,%20%22&amp;kappa;%22,%20%22&amp;lambda;%22,%20%22&amp;mu;%22,%20%22&amp;nu;%22,%20%22&amp;xi;%22,%20%22&amp;omicron;%22,%20%22&amp;pi;%22,%20%22&amp;rho;%22,%20%22&amp;sigma;%22,%20%22&amp;tau;%22,%20%22&amp;upsilon;%22,%20%22&amp;phi;%22,%20%22&amp;chi;%22,%20%22&amp;psi;%22,%20%22&amp;omega;%22%20],[%20%22&amp;plusmn;%22,%20%22&amp;ne;%22,%20%22&amp;le;%22,%20%22&amp;ge;%22,%20%22&amp;asymp;%22,%20%22&amp;forall;%22,%20%22&amp;exist;%22,%20%22&amp;empty;%22,%20%22&amp;isin;%22,%20%22&amp;notin;%22,%20%22&amp;sum;%22,%20%22&amp;infin;%22%20],[%20%22&amp;sup1;%22,%20%22&amp;sup2;%22,%20%22&amp;sup3;%22,%20%22&amp;deg;%22,%20%22&amp;ordf;%22%20],[%20%22&amp;frac14;%22,%20%22&amp;frac12;%22,%20%22&amp;frac34;%22,%20%22&amp;oelig;%22,%20%22&amp;aelig;%22%20],[%20%22&amp;cent;%22,%20%22&amp;pound;%22,%20%22&amp;euro;%22,%20%22&amp;sect;%22,%20%22&amp;para;%22,%20%22&amp;copy;%22,%20%22&amp;reg;%22,%20%22&amp;trade;%22%20]];var%20html%20=%20%22%22;for%20(var%20i%20=%200;%20i%20&lt;%20symbols.length;%20i++)%20{if%20(i)%20html%20+=%20%22&lt;br/&gt;%22;for%20(var%20j%20=%200;%20j%20&lt;%20symbols[i].length;%20j++)%20{if%20(j)%20html%20+=%20%22%20&amp;nbsp;%20%22;html%20+=%20symbols[i][j];}}signs.innerHTML%20=%20html;div.appendChild(signs);document.body.appendChild(div);closeButton.addEventListener(%27click%27,%20function()%20{document.body.removeChild(div);},%20true);};%20characterPalette();">character palette</a></p>
<p>Click the bookmarklet on any page. You&#8217;ll see a character palette like this:</p>
<p><img src="http://www.danvk.org/wp/wp-content/uploads/2009/09/Picture-2.png" alt="Screenshot" title="Screenshot" width="307" height="243" class="aligncenter size-full wp-image-583" /></p>
<p>Select the character you like and either copy/paste it or drag it where you like. Then click &#8220;Close&#8221; to make the palette go away until you need it again. Enjoy!</p>
<p><b>Note:</b> I&#8217;ve tested this in Firefox, Safari and Chrome. This probably doesn&#8217;t work in IE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2009-09-07/character-palette-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Great Twitter Experience</title>
		<link>http://www.danvk.org/wp/2009-03-03/a-great-twitter-experience/</link>
		<comments>http://www.danvk.org/wp/2009-03-03/a-great-twitter-experience/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 17:50:12 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=473</guid>
		<description><![CDATA[As danvk.org regulars know, I recently joined Twitter. I had a great experience with it last weekend and came away feeling as though I&#8217;d &#8220;seen the future&#8221;. I ran into Tyler Hinman last weekend at a friend&#8217;s Oscars party. Tyler&#8217;s claim to fame was that he&#8217;d won the American Crosssword Puzzle Tournament the previous four [...]]]></description>
			<content:encoded><![CDATA[<p>As danvk.org regulars know, I <a href="/wp/2009-02-16/all-a-twitter/">recently joined</a> Twitter. I had a great experience with it last weekend and came away feeling as though I&#8217;d &#8220;seen the future&#8221;.</p>
<p>I ran into <a href="http://www.tylerhinman.com/">Tyler Hinman</a> last weekend at a friend&#8217;s Oscars party. Tyler&#8217;s claim to fame was that he&#8217;d won the <a href="http://www.crosswordtournament.com/index.htm">American Crosssword Puzzle Tournament</a> the previous four years, starting in 2005 when the movie <a href="http://www.wordplaythemovie.com/">Wordplay</a> was filmed. Tyler played a major role in that movie.</p>
<p>Tyler told us that he&#8217;d be trying to make it five times in a row the next weekend. So, come the weekend, I was curious to see how he did.</p>
<p>After one day of competition, the <a href="http://www.crosswordtournament.com/2009/standings/rank.htm">official results page</a> showed Tyler in fourth with one puzzle left before the finals. If you&#8217;ve seen Wordplay, you know that fourth place is a bad spot to find yourself. Only the top three finishers qualify for the finals.</p>
<p>On Sunday, the standard news sources weren&#8217;t helpful. A crossword tournament is not exactly front-page material. The official tournament page hadn&#8217;t been updated. Even the bloggers <a href="http://www.tylerhinman.com/index.php?option=com_content&#038;task=view&#038;id=140">would</a> <a href="http://rexwordpuzzle.blogspot.com/2009/03/brooklyn-tournament-2009-recap.html">take</a> <a href="http://www.visualthesaurus.com/cm/wordroutes/1750/">another</a> few days to tell the story. So I tried Twitter.</p>
<p>I <a href="http://search.twitter.com/search?q=%23acpt">searched for #acpt</a> and saw these two results:</p>
<table>
<tr>
<td>
<a href="http://twitter.com/boonebgorges"><img alt="Tim-boone-tristin_normal" src="http://s3.amazonaws.com/twitter_production/profile_images/62520335/tim-boone-tristin_normal.jpg" /></a></td>
<td>
<a href="http://twitter.com/boonebgorges">boonebgorges</a>: <span id="msgtxt1266054759" class="msgtxt en">Congrats on the fivepeat to Tyler Hinman, and nice work to Francis and Trip for a valiant final round! <a href="http://search.twitter.com/search?q=%23acpt"><b>#acpt</b></a>
</td>
</tr>
<tr>
<td>
<a href="http://twitter.com/bgzimmer"><img alt="Bzbz2_normal" src="http://s3.amazonaws.com/twitter_production/profile_images/55394299/bzbz2_normal.jpg" /></a></td>
<td>
<a href="http://twitter.com/bgzimmer">bgzimmer</a>: <span id="msgtxt1267173699" class="msgtxt en"><a href="http://search.twitter.com/search?q=%23acpt"><b>#acpt</b></a> The thrilling conclusion of the crossword tourney, now on YouTube: <a href="http://tinyurl.com/dzx5uw">http://tinyurl.com/dzx5uw</a></td>
</tr>
</table>
<p>Not only did I immediately get the bit of news I wanted, <b>I also got to watch it on video!</b></p>
<p>I&#8217;m not saying this is a great way to get news in general. A crossword puzzle tournament is more likely draw the twitterers than most events. But just consider that this would not have been possible even one year ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2009-03-03/a-great-twitter-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All A-Twitter</title>
		<link>http://www.danvk.org/wp/2009-02-16/all-a-twitter/</link>
		<comments>http://www.danvk.org/wp/2009-02-16/all-a-twitter/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 00:23:07 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=407</guid>
		<description><![CDATA[Has anyone else noticed Twitter being mentioned in the news more and more the last few weeks? These have all happened in the last month: I chat with someone at SF Beta. Afterward, instead of exchanging phone numbers or emails, she asked for my Twitter ID. A co-worker of mine leaves to become the COO [...]]]></description>
			<content:encoded><![CDATA[<p>Has anyone else noticed <a href="http://twitter.com">Twitter</a> being mentioned in the news more and more the last few weeks?</p>
<p>These have all happened in the last month:</p>
<ul>
<li>I chat with someone at <a href="http://sfbeta.com">SF Beta</a>. Afterward, instead of exchanging phone numbers or emails, she asked for my Twitter ID.
<li>A co-worker of mine leaves to become the <a href="http://twitter.com/santojay">COO of Twitter</a>.
<li>I start listening to NPR&#8217;s <a href="http://www.sciencefriday.com/">Science Friday</a>, where they take questions on the air and from Twitter (and from Second Life).
<li>David Pogue <a href="http://www.nytimes.com/2009/02/12/technology/personaltech/12pogue.html?em">writes an article</a> in the New York Times about getting on Twitter.
<li>While reading about the <a href="http://en.wikipedia.org/wiki/Mars_Phoenix_Lander">Mars Phoenix Lander</a>, I discover that they have an <a href="http://twitter.com/MarsPhoenix">award-winning Twitter channel</a>.
<li>Another <a href="http://tiffography.com/">co-worker</a> of mine does a site review panel at SMX. Afterward, she finds out that someone listening in <a href="http://twitter.com/brendand/status/1197492513">was twittering</a> the event. She is slightly creeped out.
<li>My mom asks me and my roommate what Twitter is.
<li>My parents take me to <a href="http://www.citychurchsf.org/">City Church of San Francisco</a>, whose bulletin encourages members to <a href="http://twitter.com/citychurchsf">follow them</a> on Twitter.
</ul>
<p>All this makes me think I should hop on the bandwagon. I just created an account. I&#8217;m <a href="https://twitter.com/danvdk">danvdk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2009-02-16/all-a-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeCreditReport.com scam</title>
		<link>http://www.danvk.org/wp/2008-12-31/freecreditreportcom-scam/</link>
		<comments>http://www.danvk.org/wp/2008-12-31/freecreditreportcom-scam/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 02:16:00 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=374</guid>
		<description><![CDATA[I was looking over my checking account transactions for the past year and saw a mysterious $12.95 charge from &#8220;CIC*Triple Advantage 877-48168&#8243; appearing once a month. A search quickly showed that I&#8217;d been had by FreeCreditReport.com. Turns out I&#8217;d used this site to get a credit check when I moved in to my old apartment [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking over my checking account transactions for the past year and saw a mysterious $12.95 charge from &#8220;CIC*Triple Advantage 877-48168&#8243; appearing once a month. A <a href="http://www.google.com/search?q=CIC*Triple+Advantage+877-48168&#038;hl=en">search</a> quickly showed that <a href="https://www.wesabe.com/groups/3-make-wesabe-better/discussions/1619-cic-triple-advantage-877-48168-is-not-netflix">I&#8217;d been had</a> by FreeCreditReport.com.</p>
<p>Turns out I&#8217;d used this site to get a credit check when I moved in to my old apartment last August. Everyone is entitled to one free credit check per year, and I thought that this was what I was getting. I&#8217;d failed to notice the fine print on their main page (helpfully displayed in blue-on-blue text):</p>
<blockquote><p>When you order your free report here, you will begin your free trial membership in Triple AdvantageSM Credit Monitoring. If you don&#8217;t cancel your membership within the 7-day trial period†, you will be billed $14.95 for each month that you continue your membership.<br />
ConsumerInfo.com, Inc. and Freecreditreport.com are not affiliated with the annual free credit report program. Under a new Federal law, you have the right to receive a free copy of your credit report once every 12 months from each of the three nationwide consumer reporting companies. To request your free annual report under that law, you must go to www.annualcreditreport.com.
</p></blockquote>
<p>That&#8217;s right, they sign you up for a free trial of a monthly service which you must opt-<i>out</i> of after 30 days. They do their best not to tell you that they&#8217;ve signed you up.</p>
<p>Looking back in my checking account, I found 16 months * $12.95/month = $207.20 in charges. Thanks to help from <a href="http://www.knowzy.com/Personal_Finance/Credit/Credit_Monitoring_Is_A_Rip_Off-StepByStep-Canceling_CIC_TripleAdvantage.htm">this discussion</a>, I was eventually able to get this refunded in its entirety. Read more for details.</p>
<p><span id="more-374"></span></p>
<p>Apparently freecreditreport.com is a well-known scam. The page I linked to above on knowzy summarizes many users&#8217; experiences trying to get refunds from their custom support people. The main takeaways were:</p>
<ol>
<li>Don&#8217;t be angry at the representative.</li>
<li>Do everything on the phone. They will ignore all email and snail mail.</li>
<li>Don&#8217;t believe them if they say &#8220;no refunds&#8221;. Their supervisors can give refunds.</li>
<li>If nothing works, threaten to file a complaint with the Better Business Bureau or your bank.</li>
</ol>
<p>Here was my experience:<br />
I called their 800 number and was asked for my credit card number, so that they could look up my account. After being assured that they weren&#8217;t going to charge it, I gave it to them. The representative explained what TripleAdvantage was. He offered to cancel my account and refund me for one month&#8217;s charges ($12.95). I asked whether they could refund more than that. He said that he couldn&#8217;t, but I could send a letter to them asking for a full refund. I asked if his supervisor could give me a full refund, and he put me on hold.</p>
<p>I waited on hold for about ten minutes. The representative came back on the line once or twice to check that I still wanted to wait. After ten minutes or so, the call dropped. It&#8217;s possible this was just bad reception on my cell phone, but I doubt it.</p>
<p>I called back and got a different representative, who asked for my full SSN. I gave her my credit card number instead, since I&#8217;d already given them that. I explained the situation and she said that she&#8217;d &#8220;seen something the other representative should have noticed.&#8221; She&#8217;d go talk to her manager. Two minutes later, she came back and said that, because they had never sent me my security PIN, they would refund me the full $207.20 that they&#8217;d billed me over the last 16 months.</p>
<p>The credit hasn&#8217;t showed up in my account yet, so this isn&#8217;t over yet. But so far it&#8217;s turned out a lot better than I&#8217;d expected.</p>
<p>Personal takeaways for me:</p>
<ol>
<li>I should read over my bank statement more than once a year.</li>
<li>I shouldn&#8217;t have ignored the emails that freecreditreport.com sent me once a month. I&#8217;d assumed they were spam and ignored them.</li>
<li>Next time I need a credit report, I&#8217;ll go to <a href="https://www.annualcreditreport.com/cra/index.jsp">annualcreditreport.com</a>, which is <i>actually</i> free.</li>
</ol>
<p>I&#8217;m happy to see that annualcreditreport.com is the top result for the search <a href="http://www.google.com/search?q=free%20credit%20report">[free credit report]</a>. On the downside, freecreditreport.com has an ad that shows up above it.</p>
<p><b>Update</b> I just received three deposits from &#8220;CIC*Triple+Advantage&#8221;, one for 2007, one for 2008 and one for the last month. I&#8217;m in the clear!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2008-12-31/freecreditreportcom-scam/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Milk and Moscone Online</title>
		<link>http://www.danvk.org/wp/2008-11-27/milk-and-moscone-online/</link>
		<comments>http://www.danvk.org/wp/2008-11-27/milk-and-moscone-online/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 18:57:32 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/?p=349</guid>
		<description><![CDATA[Today is the 30th anniversary of the Moscone-Milk assassinations and, fueled by the upcoming release of the movie Milk, they&#8217;ve been all over the local airways. For those not familiar with the basic story (I wasn&#8217;t before I moved to SF), City Supervisor Dan White quit his job, then asked to be reinstated. When Mayor [...]]]></description>
			<content:encoded><![CDATA[<p>Today is the 30th anniversary of the <a href="http://en.wikipedia.org/wiki/Moscone%E2%80%93Milk_assassinations">Moscone-Milk assassinations</a> and, fueled by the upcoming release of the movie <i><a href="http://www.imdb.com/title/tt1013753/">Milk</a></i>, they&#8217;ve been all over the local airways.</p>
<p>For those not familiar with the basic story (I wasn&#8217;t before I moved to SF), City Supervisor <a href="http://en.wikipedia.org/wiki/Dan_White">Dan White</a> quit his job, then asked to be reinstated. When Mayor <a href="http://en.wikipedia.org/wiki/George_Moscone">George Moscone</a> refused, White returned to city hall with a gun and murdered Moscone and Supervisor <a href="http://en.wikipedia.org/wiki/Harvey_Milk">Harvey Milk</a>, who happened also be the first openly-gay elected official in the country. Another Supervisor, now-Senator <a href="http://en.wikipedia.org/wiki/Dianne_Feinstein">Dianne Feinstein</a> became mayor as a result of these killings.</p>
<p><a href="http://video.aol.com/video-detail/harvey-milk-mayor-moscone-killed-in-city-hall/2456431092"><img src="http://www.danvk.org/wp/wp-content/uploads/2008/11/feinstein.png" alt="Dianne Feinstein announcing the deaths of Moscone and Milk" title="Dianne Feinstein announcing the deaths of Moscone and Milk" width="436" height="323" class="size-full wp-image-352" /></a></p>
<p>An NPR show yesterday included a clip of Feinstein giving a dramatic press conference announcing the deaths. Much to my surprise, an original copy of <a href="http://video.aol.com/video-detail/harvey-milk-mayor-moscone-killed-in-city-hall/2456431092">that night&#8217;s newcast</a> has found its way online.</p>
<p>The Feinstein press conference is at 2:10. Listen to the gasps. The 70&#8242;s production is jarring to look at now though, except for the cars, the shots of San Francisco could have been taken yesterday.</p>
<p>I couldn&#8217;t figure out whether this is an isolated clip or part of a larger collection. How cool would it be if all of NBC&#8217;s old newscasts were online?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2008-11-27/milk-and-moscone-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Draggable Table Columns</title>
		<link>http://www.danvk.org/wp/2008-06-12/draggable-table-columns/</link>
		<comments>http://www.danvk.org/wp/2008-06-12/draggable-table-columns/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 07:41:44 +0000</pubDate>
		<dc:creator>danvk</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.danvk.org/wp/2008-06-12/draggable-table-columns/</guid>
		<description><![CDATA[Inspired by the sorttable library, I&#8217;ve done some Javascript hacking over the last day and created dragtable, a complementary library which lets you drag column headers around to rearrange HTML tables. A demo will make everything clear: Name Date Favorite Color Dan 1984-07-12 Blue Alice 1980-07-22 Green Ryan 1990-09-23 Orange Bob 1966-04-21 Red Drag the [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by the <a href="http://www.kryogenix.org/code/browser/sorttable/">sorttable</a> library, I&#8217;ve done some Javascript hacking over the last day and created <a href="/wp/dragtable/">dragtable</a>, a complementary library which lets you drag column headers around to rearrange HTML tables. A demo will make everything clear:</p>
<table width=100%>
<tr>
<td align=center>
<table id=table class="thin draggable" cellpadding=2>
<tr>
<th>Name</th>
<th>Date</th>
<th>Favorite Color</th>
</tr>
<tr>
<td>Dan</td>
<td>1984-07-12</td>
<td>Blue</td>
</tr>
<tr>
<td>Alice</td>
<td>1980-07-22</td>
<td>Green</td>
</tr>
<tr>
<td>Ryan</td>
<td>1990-09-23</td>
<td>Orange</td>
</tr>
<tr>
<td>Bob</td>
<td>1966-04-21</td>
<td>Red</td>
</tr>
</table>
</td>
</tr>
</table>
<p>Drag the column headers to rearrange the table. dragtable is incredibly easy to use. To make a table rearrangeable, just add <code>class=draggable</code> to the <code>table</code> tag. And, if you set <code>class="draggable sortable"</code>, you can have a table that&#8217;s simultaneously sortable and rearrangable! For more details and a download link, check out the <a href="/wp/dragtable/">dragtable</a> page.</p>
<p>I&#8217;m calling this v0.9 since I&#8217;m sure there are plenty of bugs and tweaks left to make. I&#8217;d love to get some feedback, so take it for a spin and tell me what you think!</p>
<p><b>Update:</b> I&#8217;ve added full-column dragging and bumped the version to 1.0. Head on over to the <a href="/dragtable/">dragtable</a>, grab a copy, and let me know what you think!</p>
<p><script type=text/javascript src="/dragtable/sorttable.js"></script><br />
<script type=text/javascript src="/dragtable/dragtable.js"></script></p>
<style type=text/css>
  /* Sortable tables */
  table.sortable thead {
    background-color:#eee;
    color:#666666;
    font-weight: bold;
    cursor: default;
  }
  table.thin, table.thin td, table.thin tr, table.thin th {
    border: thin solid black;
    border-collapse: collapse;
  }
</style>
]]></content:encoded>
			<wfw:commentRss>http://www.danvk.org/wp/2008-06-12/draggable-table-columns/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

