<?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>MaisonBisson.com &#187; hacking</title>
	<atom:link href="http://maisonbisson.com/blog/post/tag/hacking/feed/" rel="self" type="application/rss+xml" />
	<link>http://maisonbisson.com</link>
	<description>A bunch of stuff I would have emailed you about.</description>
	<lastBuildDate>Sat, 14 Nov 2009 20:14:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Many Eyes, Bugs Being Shallow, All That</title>
		<link>http://maisonbisson.com/blog/post/12134/many-eyes-bugs-being-shallow-all-that/</link>
		<comments>http://maisonbisson.com/blog/post/12134/many-eyes-bugs-being-shallow-all-that/#comments</comments>
		<pubDate>Tue, 20 May 2008 08:45:34 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[register_taxonomy()]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=12134</guid>
		<description><![CDATA[
WordPress 2.5.1 added a really powerful feature to register_taxonomy(): automatic registration of permalinks and query vars to match the taxonomy. Well, theoretically it added that feature. It wasn&#8217;t working in practice. After some searching yesterday and today, I finally found the bug and worked up a fix. I made a diff and set off to [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12134"><!-- &nbsp; --></abbr>
<p>WordPress 2.5.1 added a really powerful feature to <code>register_taxonomy()</code>: automatic registration of permalinks and query vars to match the taxonomy. Well, theoretically it added that feature. It wasn&#8217;t working in practice. After some searching yesterday and today, I finally found the bug and worked up a fix. I made a diff and set off to open a ticket in Trac.</p>
<p>On the one hand I&#8217;m glad I searched first, because it turns out that a ticket on the very same issue was <a href="http://trac.wordpress.org/ticket/6981">opened on May 16th</a> and it already <a href="http://trac.wordpress.org/changeset/7940">has a fix</a>. On the other hand, it&#8217;s kind of a kicker to have lost my chance at reporting the bug and submitting a fix by only a few days.</p>
<p>The fix is committed for WordPress 2.6, but I&#8217;ve done a workaround for 2.5.1 (workarounds are easier to manage than core code changes). I&#8217;d say I wish I searched Trac first, but I wouldn&#8217;t have known what to search for if I didn&#8217;t figure out how to fix the bug first. And I guess I really can&#8217;t complain about <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html">a community that quickly finds and fixes bugs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12134/many-eyes-bugs-being-shallow-all-that/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Balloon Organ, Yes, A Balloon Organ</title>
		<link>http://maisonbisson.com/blog/post/12026/balloon-organ-yes-a-balloon-organ/</link>
		<comments>http://maisonbisson.com/blog/post/12026/balloon-organ-yes-a-balloon-organ/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 17:35:52 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Questionable...funny. Pointless.]]></category>
		<category><![CDATA[balloon]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[Homemade]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[organ]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/12026/balloon-organ-yes-a-balloon-organ</guid>
		<description><![CDATA[

In a piece that will have some people eagerly looking for some Afro Celt Sound System, others singing Where Do They Make Balloons, and some people just shaking their heads, this fellow, apparently standing in his bathroom, introduces us to another guy and his balloon organ. Really. Check this for more homemade organ fun.
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12026"><!-- &nbsp; --></abbr>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/MDTygFNhA5A&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/MDTygFNhA5A&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>In a piece that will have some people eagerly looking for some <a href="http://click.linksynergy.com/fs-bin/stat?id=XfFSogqWv7s&amp;offerid=78941&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fphobos.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewAlbum%253Fi%253D59679401%2526id%253D59679584%2526s%253D143441%2526partnerId%253D30">Afro Celt Sound System</a>, others singing <a href="http://click.linksynergy.com/fs-bin/stat?id=XfFSogqWv7s&amp;offerid=78941&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fphobos.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewAlbum%253Fi%253D19130177%2526id%253D19130203%2526s%253D143441%2526partnerId%253D30">Where Do They Make Balloons</a>, and some people just shaking their heads, <a href="http://www.youtube.com/profile?user=inflatableminute">this fellow</a>, apparently standing in his bathroom, introduces us to another guy and his <a href="http://www.youtube.com/watch?v=MDTygFNhA5A">balloon organ</a>. Really. <a href="http://www.youtube.com/watch?v=QDNseYxE6pQ">Check this for more homemade organ fun</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12026/balloon-organ-yes-a-balloon-organ/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress + Invalid URLs = Extra Database Queries</title>
		<link>http://maisonbisson.com/blog/post/12035/wordpress-invalid-urls-extra-database-queries/</link>
		<comments>http://maisonbisson.com/blog/post/12035/wordpress-invalid-urls-extra-database-queries/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 13:38:13 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[behavior]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/12035/wordpress-invalid-urls-extra-database-queries</guid>
		<description><![CDATA[
After reporting weirdness last week I finally sat down with a completely clean and virgin install of WordPress 2.3.2 and traced what happens when you make a permalink request for a non-existent URL.
Here are two sets of URLs to use as examples and context:

These are valid URLs:

http://site.org/archives/101
http://site.org/page-name


These are _not_ valid URLs:

http://site.org/archivezorz/101
http://site.org/favicon.ico



Valid URLs get parsed, the [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12035"><!-- &nbsp; --></abbr>
<p>After <a href="http://comox.textdrive.com/pipermail/wp-hackers/2008-January/017144.html">reporting weirdness last week</a> I finally sat down with a completely clean and virgin install of WordPress 2.3.2 and traced what happens when you make a permalink request for a non-existent URL.</p>
<p>Here are two sets of URLs to use as examples and context:</p>
<ul>
<li>These are valid URLs:
<ul>
<li>http://site.org/archives/101</li>
<li>http://site.org/page-name</li>
</ul>
</li>
<li>These are _not_ valid URLs:
<ul>
<li>http://site.org/archivezorz/101</li>
<li>http://site.org/favicon.ico</li>
</ul>
</li>
</ul>
<p>Valid URLs get parsed, the expected MySQL queries get executed, and the results are processed and returned to the browser. Normal. The problem is that invalid URLs that get sent through WordPress still result in a query like the following being executed on the database. What?</p>

<div class="wp_syntax"><div class="code"><pre class="mysql mysql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">SQL_CALC_FOUND_ROWS</span>  test_posts.<span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> test_posts  <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span>  <span style="color: #993333; font-weight: bold;">AND</span> post_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'post'</span> <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>post_status <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'pub
lish'</span> <span style="color: #993333; font-weight: bold;">OR</span> post_status <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'private'</span><span style="color: #66cc66;">&#41;</span>  <span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> post_date DESC <span style="color: #993333; font-weight: bold;">LIMIT</span> 0, <span style="color: #cc66cc;">10</span></pre></div></div>

<p>That is, even after a URL is sent through <code>WP->parse_request()</code> and found to be invalid/404, WordPress marches on to <code>WP->query_posts()</code> and hits the database with a generic request for the X most recent posts. And because this is executed for every 404, it actually results in a lot of database activity.</p>
<p>In most cases MySQL has cached the result, and so it poses a minimal load on the server. And even if the cache is stale, for most sites it&#8217;s not a particularly resource intensive query.</p>
<p>But, if you&#8217;ve got <a href="http://library.plymouth.edu/browse/?subj=20th+century">350,000 rows in the posts table</a>, it&#8217;s incredibly resource intensive to order all those posts on the <code>post_date</code> (<code>datetime</code>) column. I&#8217;ve seen hundreds of them pile up and take <em>forever</em> to complete after writes to the table. It&#8217;s sufferable if write activity on the posts table is very low, but that&#8217;s not something I want to hope for.</p>
<p>So <a href="http://comox.textdrive.com/pipermail/wp-hackers/2008-January/017264.html">my question to the wp-hackers community</a> is: Do we actually want to execute that query for every 404 under normal circumstances? If not, is the following (or something like it) the stupidest solution?</p>
<p>In <a href="http://svn.automattic.com/wordpress/tags/2.3.2/wp-includes/classes.php">wp-includes/classes.php</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">function</span> query_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #990000;">global</span> <span style="color: #000088;">$wp_the_query</span>;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">build_query_string</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
		<span style="color: #666666; font-style: italic;">// return if the request URI is a 404</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">did_permalink</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query_vars</span><span style="color: #009900;">&#91;</span><span style="">'error'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="">'404'</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">return</span>;
&nbsp;
		<span style="color: #000088;">$wp_the_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query_vars</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The above works, but there&#8217;s probably a better way to write it.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12035/wordpress-invalid-urls-extra-database-queries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is The Answers.com API Public?</title>
		<link>http://maisonbisson.com/blog/post/11966/is-the-answerscom-api-public/</link>
		<comments>http://maisonbisson.com/blog/post/11966/is-the-answerscom-api-public/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 17:50:00 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Libraries & Networked Information]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[AnswerLinks]]></category>
		<category><![CDATA[Answers.com]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[mashable]]></category>
		<category><![CDATA[remixable]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11966/is-the-answerscom-api-public</guid>
		<description><![CDATA[
Answers.com is throwing a bone to WordPress users with their new AnswerLinks plugin written by Alex King.
But wait, there&#8217;s an Answers.com API? A few pokes at the Google machine reveal nothing relevant, and Asnwers.com&#8217;s site is mum too. Taking apart the code, I get the following (modded enough to make it run-able if you drop [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11966"><!-- &nbsp; --></abbr>
<p><a href="http://www.answers.com/main/wordpress_howto.jsp" title="Answers.com - WordPress AnswerLinks">Answers.com</a> is throwing a bone to WordPress users with their new <a href="http://wordpress.org/extend/plugins/answerlinks/" title="WordPress › AnswerLinks « WordPress Plugins">AnswerLinks plugin</a> written by <a href="http://alexking.org/" title="Alex King | Denver Web Developer">Alex King</a>.</p>
<p>But wait, there&#8217;s an Answers.com API? A few pokes at the Google machine reveal nothing relevant, and Asnwers.com&#8217;s site is mum too. <a href="http://svn.wp-plugins.org/answerlinks/tags/1.0b/answerlink.php">Taking apart the code</a>, I get the following (modded enough to make it run-able if you drop it in the base of your WordPress install):</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="">'wp-config.php'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span>ABSPATH<span style="color: #339933;">.</span>WPINC<span style="color: #339933;">.</span><span style="">'/class-snoopy.php'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000088;">$snoop</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Snoopy;
<span style="color: #000088;">$snoop</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">read_timeout</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span>;
<span style="color: #000088;">$snoop</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">submit</span><span style="color: #009900;">&#40;</span>
	<span style="">'http://alink.answers.com/link/xml'</span>
	<span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="">'text'</span> <span style="color: #339933;">=&gt;</span> “Put a long<span style="color: #339933;">-</span>ish string of meaningful text here<span style="color: #339933;">,</span> then look <span style="color: #b1b100;">for</span> interesting stuff in the <span style="color: #990000;">print_r</span><span style="">'d output.”
	)
);
print_r($snoop-&gt;results);</span></pre></div></div>

<p>If the input string isn&#8217;t sufficiently long, the output will be empty (eliminating one of my potential uses for it), but it&#8217;s interesting to twiddle.</p>
<p><tags>Answers.com, API, AnswerLinks, hacking, remixable, mashable</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11966/is-the-answerscom-api-public/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Editing WordPress “Pages” Via XML-RPC</title>
		<link>http://maisonbisson.com/blog/post/10834/editing-wordpress-pages-via-xml-rpc/</link>
		<comments>http://maisonbisson.com/blog/post/10834/editing-wordpress-pages-via-xml-rpc/#comments</comments>
		<pubDate>Thu, 22 Sep 2005 15:51:44 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[blogg as cms]]></category>
		<category><![CDATA[blogg as content management system]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[content management system]]></category>
		<category><![CDATA[ecto]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hacking wordpress]]></category>
		<category><![CDATA[php code]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress hack]]></category>
		<category><![CDATA[wordpress hacks]]></category>
		<category><![CDATA[wordpress pages]]></category>
		<category><![CDATA[xml-rpc]]></category>
		<category><![CDATA[xmlrpc]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=10834</guid>
		<description><![CDATA[
WordPress&#8217;s Pages open the door to using WP as a content management system. Unfortunately, Pages can&#8217;t be edited via XML-RPC blogging apps like Ecto. This might be a good thing, but I&#8217;m foolhardy enough to try working around it.
Here&#8217;s how:
Find a text editor you like and open up the wp-includes/functions-post.php file.
in the wp_get_recent_posts() function, change [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10834"><!-- &nbsp; --></abbr>
<p><a href="http://wordpress.org/">WordPress</a>&#8217;s <a href="http://codex.wordpress.org/Pages">Pages</a> open the door to using WP as a content management system. Unfortunately, Pages can&#8217;t be edited via XML-RPC blogging apps like <a href="http://ecto.kung-foo.tv/">Ecto</a>. This might be a good thing, but I&#8217;m foolhardy enough to try working around it.</p>
<p>Here&#8217;s how:</p>
<p>Find a text editor you like and open up the <code>wp-includes/functions-post.php</code> file.</p>
<p>in the <code>wp_get_recent_posts()</code> function, change this:</p>
<p><code>$sql = “SELECT * FROM $wpdb-&gt;posts WHERE post_status IN ('publish', 'draft', 'private') ORDER BY post_date DESC $limit”;</code></p>
<p>to this:</p>
<p><code>$sql = “SELECT * FROM $wpdb-&gt;posts WHERE post_status IN ('publish', 'draft', 'private', 'static') ORDER BY post_date DESC $limit”;</code></p>
<p>Now, in the <code>wp_update_post()</code> function, look for this block of code:</p>
<p><code>// Escape data pulled from DB.<br />
$post = add_magic_quotes($post);<br />
extract($post);</code></p>
<p>and insert this block underneath it:</p>
<p><code>// XML-RPCs apps can't return “static” post status,<br />
// so we have to work around it<br />
$page_status = NULL;<br />
if($post_status == “static”)<br />
$page_status = “static”;</code></p>
<p>And follow that up by looking for this block:</p>
<p><code>// Now overwrite any changed values being passed in. These are<br />
// already escaped.<br />
extract($postarr);</code></p>
<p>and insert this block underneath it:</p>
<p><code>// set post_status static if this is a page<br />
if($page_status)<br />
$post_status = $page_status;</code></p>
<p><strong>Fair warning:</strong> this works in my <em>limited</em> testing, but don&#8217;t blame me if you try it and it breaks something. You&#8217;d be a fool to mess with this on a live install, so don&#8217;t.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://www.technorati.com/tag/blog" rel="tag">blog</a>, <a href="http://www.technorati.com/tag/blogg as cms" rel="tag">blogg as cms</a>, <a href="http://www.technorati.com/tag/blogg as content management system" rel="tag">blogg as content management system</a>, <a href="http://www.technorati.com/tag/blogging" rel="tag">blogging</a>, <a href="http://www.technorati.com/tag/cms" rel="tag">cms</a>, <a href="http://www.technorati.com/tag/content management system" rel="tag">content management system</a>, <a href="http://www.technorati.com/tag/ecto" rel="tag">ecto</a>, <a href="http://www.technorati.com/tag/hack" rel="tag">hack</a>, <a href="http://www.technorati.com/tag/hacking" rel="tag">hacking</a>, <a href="http://www.technorati.com/tag/hacking wordpress" rel="tag">hacking wordpress</a>, <a href="http://www.technorati.com/tag/php code" rel="tag">php code</a>, <a href="http://www.technorati.com/tag/wordpress" rel="tag">wordpress</a>, <a href="http://www.technorati.com/tag/wordpress hack" rel="tag">wordpress hack</a>, <a href="http://www.technorati.com/tag/wordpress hacks" rel="tag">wordpress hacks</a>, <a href="http://www.technorati.com/tag/wordpress pages" rel="tag">wordpress pages</a>, <a href="http://www.technorati.com/tag/xml rpc" rel="tag">xml rpc</a>, <a href="http://www.technorati.com/tag/xmlrpc" rel="tag">xmlrpc</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10834/editing-wordpress-pages-via-xml-rpc/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Wikipedia API?</title>
		<link>http://maisonbisson.com/blog/post/10751/wikipedia-api/</link>
		<comments>http://maisonbisson.com/blog/post/10751/wikipedia-api/#comments</comments>
		<pubDate>Mon, 22 Aug 2005 03:39:35 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Libraries & Networked Information]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[application programming interface]]></category>
		<category><![CDATA[article titles]]></category>
		<category><![CDATA[database download]]></category>
		<category><![CDATA[free encyclopedia]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[webservices]]></category>
		<category><![CDATA[wikipedia]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=10751</guid>
		<description><![CDATA[
I want Wikipedia to have an API, but it doesn&#8217;t. Some web searching turned up Gina Trapani&#8217;s WikipedizeText, but that still wasn&#8217;t exactly what I wanted. A note in the source code, however, put me back on the trail to the Wikipedia database downloads, and while that&#8217;s not what I want, I did learn that [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10751"><!-- &nbsp; --></abbr>
<p><a href="http://en.wikipedia.org/"><img src="http://upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png" width="135" height="155" alt="Wikipedia." style="float: right; border: solid 0px #000000; margin: 0px 0px 8px 8px;"/></a>I want <a href="http://en.wikipedia.org/">Wikipedia</a> to have an <a href="http://en.wikipedia.org/wiki/Application_programming_interface">API</a>, but it doesn&#8217;t. Some <a href="http://www.7nights.com/asterisk/archive/2005/03/hacking-wikipedia" title="Hacking Wikipedia?">web searching</a> turned up <a href="http://scribbling.net/wikipedizetext" title="WikipedizeText [Scribbling.net]">Gina Trapani&#8217;s WikipedizeText</a>, but that still wasn&#8217;t exactly what I wanted. A note in <a href="http://scribbling.net/projects/wikipedizetext/wikipedizetext.php.txt" title="http://scribbling.net/projects/wikipedizetext/wikipedizetext.php.txt">the source code</a>, however, put me back on the trail to the <a href="http://en.wikipedia.org/wiki/Wikipedia_talk:Database_download#Titles_only_download" title="Wikipedia talk:Database download - Wikipedia, the free encyclopedia">Wikipedia database downloads</a>, and while that&#8217;s not what I want, I did learn that they&#8217;ve got a table of just the article titles (over 1.2 million of them) in their <a href="http://download.wikimedia.org/wikipedia/en/" title="Index of /wikipedia/en/">downloads</a>.</p>
<p>Some of this is related to my interest in making Wikipedia work better in an academic <a href="http://www.wallandbinkley.com/quaedam/?p=25">library context</a>, but I&#8217;ve got other plans too. With luck, we&#8217;ll see a beta release this week.<br />
<!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://technorati.com/tag/api" rel="tag">api</a>, <a href="http://technorati.com/tag/application programming interface" rel="tag">application programming interface</a>, <a href="http://technorati.com/tag/article titles" rel="tag">article titles</a>, <a href="http://technorati.com/tag/database download" rel="tag">database download</a>, <a href="http://technorati.com/tag/free encyclopedia" rel="tag">free encyclopedia</a>, <a href="http://technorati.com/tag/hacking" rel="tag">hacking</a>, <a href="http://technorati.com/tag/rss" rel="tag">rss</a>, <a href="http://technorati.com/tag/web services" rel="tag">web services</a>, <a href="http://technorati.com/tag/webservices" rel="tag">webservices</a>, <a href="http://technorati.com/tag/wikipedia" rel="tag">wikipedia</a>, <a href="http://technorati.com/tag/xml" rel="tag">xml</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10751/wikipedia-api/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Hackable Snackable Gumstix</title>
		<link>http://maisonbisson.com/blog/post/10675/hackable-snackable-gumstix/</link>
		<comments>http://maisonbisson.com/blog/post/10675/hackable-snackable-gumstix/#comments</comments>
		<pubDate>Sun, 17 Jul 2005 16:47:57 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[gumstix]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hardware hacking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux computer]]></category>
		<category><![CDATA[make magazine]]></category>
		<category><![CDATA[make podcast]]></category>
		<category><![CDATA[tiny]]></category>
		<category><![CDATA[tiny computer]]></category>
		<category><![CDATA[tiny linux]]></category>

		<guid isPermaLink="false">http://www.maisonbisson.com/blog/?p=10675</guid>
		<description><![CDATA[
The MAKE: podcast pointed me to gumstix &#8212; really small computers built for hacking. Cool.

tags: gumstix, hacking, hardware hacking, linux, linux computer, make magazine, make podcast, tiny, tiny computer, tiny linux

]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10675"><!-- &nbsp; --></abbr>
<p>The <a href="http://www.makezine.com/blog/archive/2005/07/make_audio_show_10.html" title="MAKE: Blog: MAKE AUDIO SHOW: Tiny Linux computers!">MAKE: podcast</a> pointed me to <a href="http://www.gumstix.com/" title="gumstix - tiny linux computers">gumstix</a> &#8212; really small computers built for hacking. Cool.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://technorati.com/tag/gumstix" rel="tag">gumstix</a>, <a href="http://technorati.com/tag/hacking" rel="tag">hacking</a>, <a href="http://technorati.com/tag/hardware hacking" rel="tag">hardware hacking</a>, <a href="http://technorati.com/tag/linux" rel="tag">linux</a>, <a href="http://technorati.com/tag/linux computer" rel="tag">linux computer</a>, <a href="http://technorati.com/tag/make magazine" rel="tag">make magazine</a>, <a href="http://technorati.com/tag/make podcast" rel="tag">make podcast</a>, <a href="http://technorati.com/tag/tiny" rel="tag">tiny</a>, <a href="http://technorati.com/tag/tiny computer" rel="tag">tiny computer</a>, <a href="http://technorati.com/tag/tiny linux" rel="tag">tiny linux</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10675/hackable-snackable-gumstix/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Hacks</title>
		<link>http://maisonbisson.com/blog/post/10674/google-hacks/</link>
		<comments>http://maisonbisson.com/blog/post/10674/google-hacks/#comments</comments>
		<pubDate>Sun, 17 Jul 2005 13:23:15 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google hack]]></category>
		<category><![CDATA[google hacks]]></category>
		<category><![CDATA[google image search]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[ip cameras]]></category>
		<category><![CDATA[powerpage]]></category>

		<guid isPermaLink="false">http://www.maisonbisson.com/blog/?p=10674</guid>
		<description><![CDATA[
From O&#8217;Grady&#8217;s PowerPage:
I have no interest in true hacking (i.e. rummaging through people&#8217;s private junk) although viewing random unprotected IP cameras around the world in public places and controlling their panning and zoom functions is kind of mind-blowing. There are a ton of fun GHacks out there &#8211; like spelling out words in pictures using [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10674"><!-- &nbsp; --></abbr>
<p>From <a href="http://www.powerpage.org/cgi-bin/WebObjects/powerpage.woa/wa/story?newsID=14723" title="O'Grady's PowerPage - Your Mobile Technology Destination" id="14723">O&#8217;Grady&#8217;s PowerPage</a>:</p>
<blockquote><p>I have no interest in true hacking (i.e. rummaging through people&#8217;s private junk) although viewing random unprotected IP cameras around the world in public places and controlling their panning and zoom functions is kind of mind-blowing. There are a ton of fun GHacks out there &#8211; like spelling out words in pictures using Google image search, and the Google poetry generator, or the news map generator etc. Check out more than a dozen Google Hacks <a href="http://douweosinga.com/projects/googlehacks" target="_blank">here.</a></p></blockquote>
<p>Sort of related: put an “&#38;btnI=I%27m+Feeling+Lucky” at the end of your query URL to invoke Google&#8217;s “I&#8217;m feeling lucky” option. This is incredibly useful when using Google to search <a href="http://www.oclc.org/worldcat/open/">WorldCat</a>, <a href="http://www.google.com/search?q=081182974X+worldcat&#038;btnI=I%27m+Feeling+Lucky">like this</a>.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://technorati.com/tag/google" rel="tag">google</a>, <a href="http://technorati.com/tag/google hack" rel="tag">google hack</a>, <a href="http://technorati.com/tag/google hacks" rel="tag">google hacks</a>, <a href="http://technorati.com/tag/google image search" rel="tag">google image search</a>, <a href="http://technorati.com/tag/hacking" rel="tag">hacking</a>, <a href="http://technorati.com/tag/ip cameras" rel="tag">ip cameras</a>, <a href="http://technorati.com/tag/powerpage" rel="tag">powerpage</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10674/google-hacks/feed/</wfw:commentRss>
		<slash:comments>670</slash:comments>
		</item>
	</channel>
</rss>