<?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>chip the glasses &#187; code</title>
	<atom:link href="http://chiptheglasses.com/tag/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://chiptheglasses.com</link>
	<description>a garden of forking libraries of babel</description>
	<lastBuildDate>Wed, 11 Aug 2010 14:58:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>tabtweet &#8212; a Twitter tab-completion extension for Google Chrome (or Chromium)</title>
		<link>http://chiptheglasses.com/2010/02/announcing-tabtweet-for-chromiume/</link>
		<comments>http://chiptheglasses.com/2010/02/announcing-tabtweet-for-chromiume/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 04:37:15 +0000</pubDate>
		<dc:creator>nathanielksmith</dc:creator>
				<category><![CDATA[open source technology]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[complete]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[tab]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://chiptheglasses.com/?p=151</guid>
		<description><![CDATA[I just uploaded a chrom{e,ium} extension to google&#8217;s extension repository. It adds tab-completion to twitter; when you type an @ symbol into your status box an autocomplete menu pops up with all of your friends&#8217; screen names in it. The project is open source. Here is the code (as well as an issue tracker, if [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded a chrom{e,ium} extension to google&#8217;s <a href="https://chrome.google.com/extensions/detail/bfjiajakknijcdpgifedaheifnpbgokn">extension repository</a>. It adds tab-completion to twitter; when you type an @ symbol into your status box an autocomplete menu pops up with all of your friends&#8217; screen names in it.</p>
<div id="attachment_152" class="wp-caption aligncenter" style="width: 799px"><a href="http://chiptheglasses.com/wp-content/uploads/2010/02/screenshot.png"><img src="http://chiptheglasses.com/wp-content/uploads/2010/02/screenshot.png" alt="tabtweet screenshot" title="tabtweet screenshot" width="789" height="221" class="size-full wp-image-152" /></a><p class="wp-caption-text">tabtweet screenshot</p></div>
<p>The project is open source. <a href="http://github.com/nathanielksmith/tabtweet">Here is the code</a> (as well as an issue tracker, if you need to submit a bug report).</p>
<p>Technically speaking it&#8217;s an interesting project. It is a combination of:</p>
<ul>
<li>the Chrom{e,ium} extensions framework / API</li>
<li>the Twitter API</li>
<li>the OAuth specification</li>
<li>HTML5 (local storage)</li>
<li>The jQuery library (with a patched autocomplete plugin)</li>
</ul>
<p>and is the first open source javascript OAuth application I&#8217;ve come across. It uses code from <a href="http://oauth.googlecode.com/svn/code/javascript/">this project</a> (albiet with a small patch) to successfully implement the 7-step OAuth flow using AJAX. This was a pretty tremendous struggle as the internet doesn&#8217;t think you should do that.</p>
<p>The extension is <a href="https://chrome.google.com/extensions/detail/bfjiajakknijcdpgifedaheifnpbgokn">in the Google chrome extensions directory.</a> Try it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://chiptheglasses.com/2010/02/announcing-tabtweet-for-chromiume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sd.pl</title>
		<link>http://chiptheglasses.com/2009/10/sd-pl/</link>
		<comments>http://chiptheglasses.com/2009/10/sd-pl/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 18:16:58 +0000</pubDate>
		<dc:creator>nathanielksmith</dc:creator>
				<category><![CDATA[noise]]></category>
		<category><![CDATA[open source technology]]></category>
		<category><![CDATA[bitrot]]></category>
		<category><![CDATA[borges]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[codegolf]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[string decay]]></category>

		<guid isPermaLink="false">http://chiptheglasses.com/?p=29</guid>
		<description><![CDATA[<div style="font-family:courier, monospace;font-size:70%">@i = split //,(pop @ARGV);print @i,"\n" and $i[rand int $#i]=chr ((int rand 94) + 32) while ($ARGV[0]--);
@i = split //,(pop @ARGV);print @i,"%n" and $i[rand int $#i]=chr ((int rand 94) + 32) while ($ARGV[0]--);
@i = split //,(pop @ARGV);print @i,"%n" and $i[rand int $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]--);
@i = }plit //,(pop @ARGV);print @i,"%n" and $i[rand int $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]--);
@i = }plit //,(pop @ARGV);print @i,"%n" and $i[rand @nt $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]--);
@i = }plit //,(aop @ARGV);print @i,"%n" and $i[rand @nt $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]--);
@i = }plit //,(aop @ARGV);print @i,"%n" and $i[rand @nt $#i]=chr (()nt raOd 94) + 32) while ($ARGV[0]--);</div>]]></description>
			<content:encoded><![CDATA[<div style="font-family:courier, monospace;font-size:70%">@i = split //,(pop @ARGV);print @i,&#8221;\n&#8221; and $i[rand int $#i]=chr ((int rand 94) + 32) while ($ARGV[0]&#8211;);<br />
@i = split //,(pop @ARGV);print @i,&#8221;%n&#8221; and $i[rand int $#i]=chr ((int rand 94) + 32) while ($ARGV[0]&#8211;);<br />
@i = split //,(pop @ARGV);print @i,&#8221;%n&#8221; and $i[rand int $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]&#8211;);<br />
@i = }plit //,(pop @ARGV);print @i,&#8221;%n&#8221; and $i[rand int $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]&#8211;);<br />
@i = }plit //,(pop @ARGV);print @i,&#8221;%n&#8221; and $i[rand @nt $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]&#8211;);<br />
@i = }plit //,(aop @ARGV);print @i,&#8221;%n&#8221; and $i[rand @nt $#i]=chr ((int raOd 94) + 32) while ($ARGV[0]&#8211;);<br />
@i = }plit //,(aop @ARGV);print @i,&#8221;%n&#8221; and $i[rand @nt $#i]=chr (()nt raOd 94) + 32) while ($ARGV[0]&#8211;);<br />
@z = }plit //,(aop @ARGV);print @i,&#8221;%n&#8221; and $i[rand @nt $#i]=chr (()nt raOd 94) + 32) while ($ARGV[0]&#8211;);<br />
@z = }plit //,(aop @ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]=chr (()nt raOd 94) + 32) while ($ARGV[0]&#8211;);<br />
@z = }plit //,(aop @ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]=chr (()nt raOi 94) + 32) while ($ARGV[0]&#8211;);<br />
@z = }plit //,(aop @ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]echr (()nt raOi 94) + 32) while ($ARGV[0]&#8211;);<br />
@z = }plit //,(aop @ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]echr (()nt raOi 94) + 32) -hile ($ARGV[0]&#8211;);<br />
@z = }plit //,(aopu@ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]echr (()nt raOi 94) + 32) -hile ($ARGV[0]&#8211;);<br />
@z = }plit F/,(aopu@ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]echr (()nt raOi 94) + 32) -hile ($ARGV[0]&#8211;);<br />
@z = }plit F/,(aopu@ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]echr (()>t raOi 94) + 32) -hile ($ARGV[0]&#8211;);<br />
@z = }plit F/,(aohu@ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]echr (()>t raOi 94) + 32) -hile ($ARGV[0]&#8211;);<br />
@z = }plit F/,(aohu@ARGV);print @i,&#8221;%n&#8221; avd $i[rand @nt $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]&#8211;);<br />
@z = }plit F/,(aohu@ARGV);print @i,&#8221;%n&#8221; avd $i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]&#8211;);<br />
@z = }plit F/,(aohu@ARGV);print Si,&#8221;%n&#8221; avd $i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]&#8211;);<br />
@z = }plit F/,(aohu@ARGV);print Si,&#8221;%n&#8221; axd $i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]&#8211;);<br />
@z = }plit F/,(aohu@ARGV);print Ei,&#8221;%n&#8221; axd $i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]&#8211;);<br />
@z = }plit F/,(aohu@ARGV);print Ei,&#8221;%n&#8221; axd $i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);print Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);prinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARGI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>t raOi 94) + 32) -hile ($ARrI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! raOi 94) + 32) -hile ($ARrI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! raOi 940 + 32) -hile ($ARrI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! raOi ]40 + 32) -hile ($ARrI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! raOi ]40 + 32) -vile ($ARrI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! raOi ]40 + 32) &#038;vile ($ARrI[0]G-);<br />
@z = }plit F/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! MaOi ]40 + 32) &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(aohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! MaOi ]40 + 32) &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! MaOi ]40 + 32) &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdH$i[rand @n[ $#i]echr (()>! MaOi ]40 + 32^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ Ei,&#8221;%n&#8221; axdHfi[rand @n[ $#i]echr (()>! MaOi ]40 + 32^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ Ei,&#8221;%n&#8221; ax9Hfi[rand @n[ $#i]echr (()>! MaOi ]40 + 32^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ Ei,&#8221;%n&#8221; ax9Hfi[rand @n[ $#i]echr (()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ EiW"%n" ax9Hfi[rand @n[ $#i]echr (()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ EiW"%!" ax9Hfi[rand @n[ $#i]echr (()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ohu@ARGV);rrinJ EiW"%!" ax9Hfi[rand @n[ $#i]ecJr (()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ogu@ARGV);rrinJ EiW"%!" ax9Hfi[rand @n[ $#i]ecJr (()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ogu@ARGV);rrinJ EiW"%!" ax9Hfi%rand @n[ $#i]ecJr (()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ogu@ARGV);rrinJ EiW"%!" ax9Hfi%rand @n[ $#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plit z/,(2ogu@ARGq);rrinJ EiW"%!" ax9Hfi%rand @n[ $#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plzt z/,(2ogu@ARGq);rrinJ EiW"%!" ax9Hfi%rand @n[ $#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }plzt z/,(2ogu$ARGq);rrinJ EiW"%!" ax9Hfi%rand @n[ $#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%zt z/,(2ogu$ARGq);rrinJ EiW"%!" ax9Hfi%rand @n[ $#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%zt z/,(2ogu$ARGq);rrinJ EiW"%!" ax9Hfi%rand @n[ K#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%zt z/,(2ogu$ARGq);rrinJ EiW"_!" ax9Hfi%rand @n[ K#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%!t z/,(2ogu$ARGq);rrinJ EiW"_!" ax9Hfi%rand @n[ K#i]ecJr i()>! MaOi ]40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%!t z/,(2ogu$ARGq);rrinJ EiW"_!" ax9Hfi%rand @n[ K#i]ecJr i()>! MaOi \40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%!t z/,(2[gu$ARGq);rrinJ EiW"_!" ax9Hfi%rand @n[ K#i]ecJr i()>! MaOi \40 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%!t z/,(2[gu$ARGq);rrinJ EiW"_!" ax9Hfi%rand @n[ K#i]ecJr i()>! MaOi \Y0 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%!t z/,(2[gu$ARGq);rrinJ EiW"_!" ax9HPi%rand @n[ K#i]ecJr i()>! MaOi \Y0 + 3<^ &#038;vile ($ARrI[0]G-);<br />
@z = }p%!t z/,(2[gu$ARGq);rrinJ EiW"_!" ax9HPi%rand @n[ K#i]ecJr i()>! MaOi \B0 + 3<^ &#038;vile ($ARrI[0]G-);
</div>
]]></content:encoded>
			<wfw:commentRss>http://chiptheglasses.com/2009/10/sd-pl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
