<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The World</title>
	<atom:link href="http://whereofwecannotspeak.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://whereofwecannotspeak.wordpress.com</link>
	<description>[as I find it]</description>
	<lastBuildDate>Tue, 10 Jan 2012 17:15:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='whereofwecannotspeak.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The World</title>
		<link>http://whereofwecannotspeak.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://whereofwecannotspeak.wordpress.com/osd.xml" title="The World" />
	<atom:link rel='hub' href='http://whereofwecannotspeak.wordpress.com/?pushpress=hub'/>
		<item>
		<title>24 Hours with Android: Thoughts from a Debian User</title>
		<link>http://whereofwecannotspeak.wordpress.com/2011/06/25/24-hours-with-android-thoughts-from-a-debian-user/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2011/06/25/24-hours-with-android-thoughts-from-a-debian-user/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 20:09:13 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=165</guid>
		<description><![CDATA[For a long time, I&#8217;ve been waiting for the ability to use a Wi-Fi connection on an Android device in conjunction with Google Voice to make and receive calls without a cell phone plan. A few recent changes in Google Voice and the availability of the GrooVe IP app made this look like a reality; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=165&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For a long time, I&#8217;ve been waiting for the ability to use a Wi-Fi connection on an Android device in conjunction with Google Voice to make and receive calls without a cell phone plan.  A few recent changes in Google Voice and the availability of the GrooVe IP app made this look like a reality; so I bought myself a Nexus One.  It arrived yesterday.</p>
<p>The basic setup was quite simple: I had no problems setting up the N1 to use my home Wi-Fi network, and GrooVe IP was able to use my existing Google Voice account to make outgoing calls without a problem.  Freedom from telcos at last!, I thought.</p>
<p>Well, not quite.  Almost immediately I encountered a problem: there is apparently a bug in the drivers or firmware for the wireless adapter that causes it to shut down and disconnect from the wireless router when the phone&#8217;s screen shuts off, regardless of the phone&#8217;s setting for the Wi-Fi Sleep Policy.  This means that I can&#8217;t receive incoming calls unless the screen is on.</p>
<p>Ok, no big deal, I thought.  This phone is running a relatively old build of Android (2.2); it&#8217;s the official developer phone; so I ought to be able to find an update or workaround that fixes this issue.  I&#8217;ve been winding my way down a troubleshooting rabbit hole ever since.</p>
<p>As a Debian user, I&#8217;m not used to this kind of experience.  Here are my thoughts about the Android platform and ecosystem, after 24 hours of trying to fix this issue:</p>
<p><strong>The Android &#8220;community&#8221; is fragmented.</strong>  There is (or was) a lot of discussion fairly recently about fragmentation in Android <em>software</em>.  A related and, I think, bigger problem is the fragmentation in the user community.  There does not seem to be a central place to look for information about software problems, or to look for help.  Instead, there&#8217;s a mish-mash of ad-supported Web-based forum sites, generally with a very low signal-to-noise ratio.  Reports from frustrated users are many; but follow-ups from technically capable people are few and far between.  If a solution is posted at all, it&#8217;s difficult to tell whether it worked, and whether it would be worth trying yourself.  Sometimes, someone posts link to yet another third-party site with instructions to load a .zip file they&#8217;ve posted onto your device &#8212; not exactly confidence inspiring, to say the least.</p>
<p>Compared to the Debian world, this is like being back on Windows: authoritative information is almost impossible to find in the user community, and even when information <em>looks</em> authoritative, the fact that it&#8217;s posted on some random Web site instead of an official wiki or mailing list causes me to think twice.</p>
<p>There are a few things that Google and other stewards of the Android ecosystem could do to fix this community fragmentation:</p>
<ol>
<li>Create a single <strong>centralized mailing list</strong> for Android users. It should be a <em>mailing list</em>, or series of mailing lists, along the lines of those found at <a href="http://lists.debian.org">lists.debian.org</a>.  Having a mailing list, as opposed to a Web-based forum, allows proper threading and quoting (and doesn&#8217;t require clicking through artificial pagination) which makes it easier both to post and to find high-quality information.  Technically-adept users will be more likely to provide good help to others if there is a single place to do so, and that place is accessible via e-mail and/or NNTP.  (Of course, a Web-based interface is still useful, especially for searching the list archives, but shouldn&#8217;t be the primary means of access.)</li>
<li>Create a <strong>centralized wiki</strong> containing articles about common problems, HOWTOs for addressing them, and attachments of files that users may need.</li>
<li><strong>Use these mailing lists and wiki for communication with the community</strong>.  Of course, a mailing list and wiki won&#8217;t solve the signal-to-noise ratio unless the people who actually maintain Android have some involvement in it.  Representatives from Google and from the handset manufacturers should regularly answer questions on the list, and they should enforce a certain amount of netiquette: users should be encouraged to search the archives first, ask detailed questions, refrain from flaming, etc.</li>
</ol>
<p>This last point brings up another important issue: there seems to be a huge <strong>disconnect between &#8220;users&#8221; and &#8220;developers&#8221;</strong> in the Android world.  Contact between users needing technical assistance and the people who can actually provide that assistance is few and far between; and often, the message amounts to, &#8220;We&#8217;re looking into it.  Sit tight until the next release!&#8221; </p>
<p>To their credit, Google appears to want some of this interaction to happen.  They have &#8220;community managers&#8221; who occasionally respond to user issues in the Google-hosted forums.  Unfortunately, questions from users <em>far</em> outweigh messages from community managers, and few users are in any position to help one another.  The contrast with the Debian users list is stark: in the Debian world, there is no artificial boundary between (enabled, enlightened) developers and (disabled, helpless) users; there are just users with varying degrees of knowledge, who contribute what they can when they can.</p>
<p>Google also has a publicly-accessible <a href="http://code.google.com/p/android/issues/detail?id=9781" title="issue tracker">issue tracker</a>, including a feature that allows additional users to upvote an issue. This is good for what it&#8217;s worth, but it doesn&#8217;t seem to have much influence on the direction of Android development.  One gets the sense that Google uses a different, internal issue tracker for Android bugs and features.  Android releases, for example, do not seem to list the specific issues that they close or address.  So though some of the information I&#8217;ve seen indicates that my particular problem has been solved in Android 2.3.4, I can&#8217;t find any official confirmation of this. </p>
<p>Again, my point of comparison here is the Debian <a href="http://bugs.debian.org" title="Debian BTS">bug tracking system</a>, where one sees regular contact between maintainers and users, and the relationship between issues and releases is made <a href="http://bugs.debian.org/release-critical/" title="Debian release-critical bugs">public and obvious</a>.  </p>
<p>I would much prefer to see a single issue-tracking system for Android that&#8217;s used by both users and developers, and that makes it obvious to anyone who cares to look exactly which issues are being worked on, when there&#8217;s a patch available, and when a fix will be available through an update.</p>
<p>Finally, there is the issue of <strong>the opacity of the update process</strong>.  Android updates are rolled out to users a few at a time, without any explanation of why one group gets them before another.  It&#8217;s possible to find instructions for installing these updates manually, but again, the information comes from third parties, not the Android developers, and it feels far from officially sanctioned.  I have no idea why my phone thinks it&#8217;s up-to-date at version 2.2 (remember, it&#8217;s an <em>unlocked</em>, <em>developer</em> phone) when others have gotten 2.2.x or 2.3.x updates over the air.</p>
<p>I understand that for many users, updates come via their cell carrier, which has its own set of headaches.  But for those users who are running an unmodified, unmediated Android on officially-supported hardware, I can&#8217;t understand why there is no equivalent of <code>apt-get dist-upgrade</code> the moment a new stable release is available.</p>
<p>All of this leaves me feeling a little helpless in the face of what I thought was going to be a minor problem.  I want to like Android, and I hope the project succeeds in building a stronger community and a stronger relationship between users and developers.  From where I sit, though, it has a long way to go.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=165&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2011/06/25/24-hours-with-android-thoughts-from-a-debian-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>Some neat e-reader tools</title>
		<link>http://whereofwecannotspeak.wordpress.com/2010/06/25/some-neat-e-reader-tools/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2010/06/25/some-neat-e-reader-tools/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 17:08:10 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Geeky Shtuff]]></category>
		<category><![CDATA[calibre]]></category>
		<category><![CDATA[e-reader]]></category>
		<category><![CDATA[epub]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[nook]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[savory]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=152</guid>
		<description><![CDATA[After deciding some months ago that none of the currently available e-readers could meet all my needs, I didn&#8217;t think about them for a while. The recent &#8220;price war&#8221; between Amazon and Barnes and Noble has me reconsidering: at less than $200 for a Nook or a Kindle, I could probably live without some of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=152&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After deciding some months ago that <a href="/2010/02/13/with-all-the-e-readers-out-there-why-cant-i-find-one-i-want/">none of the currently available e-readers could meet all my needs</a>, I didn&#8217;t think about them for a while.  The recent &#8220;price war&#8221; between Amazon and Barnes and Noble has me reconsidering: at less than $200 for a Nook or a Kindle, I could probably live without some of the hardware features I want, especially if there is software that can help bridge the gap.</p>
<p>I&#8217;m still undecided about buying a device, but I wanted to catalog some of the programs and hacks that I&#8217;ve (re-)discovered as I looked into the issue a second time.</p>
<ol>
<li><a href="http://calibre-ebook.com/about">Calibre</a> looks like a great piece of desktop software for managing e-books.  It knows how to talk to multiple e-readers, and can inter-convert between popular formats, allowing (e.g.) Kindle readers to read ePub books by first converting them to Mobipocket format.</li>
<li><a href="http://blog.fsck.com/2009/04/savory.html">Savory</a> extracts some of the code used by Calibre to allow Kindle users to download and convert ePub books directly on their reader, without having to go through desktop software.</li>
<li><a href="http://blog.threepress.org/2009/02/09/introducing-epubjs/">epubjs</a> is a nice ePub reader written entirely in JavaScript, so if the Kindle and other non-ePub devices ever acquire a JS-enabled browser, or even just a local JS interpreter/engine, this will be another option for reading ePubs there.  There is also a post at Ajaxian about some other JS-based ePub readers <a href="http://ajaxian.com/archives/javascript-epub-readers">here</a>.</li>
</ol>
<p>The main issue I have, though, is in dealing with PDFs.  It doesn&#8217;t look like I&#8217;m going to be able to justify the expense of a large-format e-ink reader in the near future (the Kindle DX is the cheapest, I think, at $489!).  I&#8217;m still looking for a comprehensive set of tools for manipulating PDFs so that I could read them easily on a smaller screen.  Specifically, I need tools for:</p>
<ul>
<li>extracting text from text-based PDFs, or at least being able to reflow them and trim their margins</li>
<li>converting scanned images of book pages in PDFs into text via OCR software</li>
</ul>
<p>I haven&#8217;t found a complete solution for either task, but I have come across various programs  that do some of these things:</p>
<ol>
<li><a href="http://www.felixcrux.com/posts/pdfmunge-improve-pdfs-ebook-readers/">PDFMunge</a> is a Python program that can help with the task of trimming margins and reflowing text in text-based PDFs.</li>
<li><a href="http://www.accesspdf.com/pdftk/">pdftk</a> is a comprehensive Java library and command line tool for manipulating PDF files.</li>
<li><a href="https://docs.google.com/support/bin/answer.py?hl=en&amp;answer=50092">Google Docs</a> now has the option to use OCR to convert PDFs to text.  It doesn&#8217;t work perfectly, especially for more technical material, but it&#8217;s easy to use. I believe it is based on <a href="http://code.google.com/p/ocropus/">Ocropus</a> and/or <a href="http://code.google.com/p/tesseract-ocr/">tesseract-ocr</a>, both of which are Free software and can be built and run locally (if you can figure out how to do so&#8230;the dependencies are pretty significant).</li>
<li><a href="http://sourceforge.net/projects/briss/">Briss</a> looks like a nice way to crop scanned PDFs using a GUI interface.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=152&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2010/06/25/some-neat-e-reader-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>With all the e-readers out there, why can&#8217;t I find one I want?</title>
		<link>http://whereofwecannotspeak.wordpress.com/2010/02/13/with-all-the-e-readers-out-there-why-cant-i-find-one-i-want/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2010/02/13/with-all-the-e-readers-out-there-why-cant-i-find-one-i-want/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 07:26:58 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Geeky Shtuff]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[e-reader]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[nook]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=148</guid>
		<description><![CDATA[Lately, I have been intrigued by the prospect of buying an e-reader, mostly because I find myself printing and carrying around an enormous amount of PDFs. As a graduate student, I have to read quite a lot, and it would be great if I could keep all my readings in one place, with notes, in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=148&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
Lately, I have been intrigued by the prospect of buying an e-reader, mostly because I find myself printing and carrying around an enormous amount of PDFs.  As a graduate student, I have to read quite a lot, and it would be great if I could keep all my readings in one place, with notes, in a searchable format.  I don&#8217;t much like reading on a computer screen, so a reader with an e-ink display seems like it would be a great solution for me.</p>
<p>
Sadly, none of the e-readers available today seem to have the full set of features I would want:</p>
<ol>
<li><strong>e-Ink Display</strong>:  I can&#8217;t read for long periods on an LCD, so that rules out something like a smartphone, netbook, or tablet PC.</li>
<li><strong>Expandable storage</strong>: one of the big downsides of the current Kindle is that its storage is limited to the 1.4GB available to you when the device ships.  I especially can&#8217;t understand why Amazon <em>removed</em> the SD card slot that the Kindle 1 had.</li>
<li><strong>Physical keyboard and note-taking abilities</strong>: this tells in favor of the Kindle, but against the Barnes and Noble Nook, as well as against a lot of the other e-readers I have seen.  I want tactile feedback when I&#8217;m typing; I can&#8217;t stand typing on touchscreens.  Some readers appear to offer no textual input at all, which isn&#8217;t much use to me; I need to mark text as I read.</li>
<li><strong>Wi-Fi</strong>:  another black mark against the Kindle 2.  It&#8217;s nice that Amazon, Barnes and Noble, and others want to offer me free 3G service as a way to ensure that I can impulse-buy books from anywhere.  But without Wi-Fi as a fallback, I am scared off by clauses like this one in Amazon&#8217;s <a href="http://www.amazon.com/gp/help/customer/display.html?nodeId=200399690">License Agreement and Terms of Use</a>:<br />
<blockquote><p>
Amazon reserves the right to discontinue wireless connectivity at any time or to otherwise change the terms for wireless connectivity at any time, including, but not limited to (a) limiting the number and size of data files that may be transferred using wireless connectivity and (b) changing the amount and terms applicable for wireless connectivity charges.</p></blockquote>
<p>Having a fully Internet-ready e-reader would make it much more useful to me, but it&#8217;s clear that Amazon wants nothing of the kind.  They want to control the kind of information I can get, which they couldn&#8217;t do if they included a network interface that &mdash; horrors! &mdash; didn&#8217;t route all traffic through their servers.  I don&#8217;t really want Amazon, or any other company, knowing everything I read online.  And I don&#8217;t trust them not to &#8220;discontinue&#8230;or otherwise change the terms&#8221; of my Internet access through their blessed portal.</li>
<li><strong>Support for open formats, including PDF and ePub</strong>:  most of the non-Kindle readers win here again, though it&#8217;s not clear how much of the PDF standard <em>any</em> of them supports.  A lot of the PDFs I read are scanned images from actual books, and I would like to have simple tools for cropping pages, or splitting one page into two, to better fit a reader&#8217;s screen.</li>
<li><strong>Extensible platform</strong>:  I&#8217;d like to be able to write my own programs, or download others&#8217; from the Internet, if the built-in software doesn&#8217;t cut it &mdash; preferably without having to root the device.  For doing academic reading, programs like a multi-lingual dictionary or a citation database would be helpful.  Amazon has a Kindle Development Kit in the works, which is nice, except that it&#8217;s Java-based; I would much prefer, say, a combination of Python and C.  (I&#8217;m not sure yet if JVM implementations of Python, Ruby, Scheme, etc. will work on the Kindle&#8230;but that would be great!)  The Nook has nothing so far, but the fact that it&#8217;s running Android points to <a href="http://nookdevs.com/Main_Page">hackability</a> in the future, with or without Barnes and Noble&#8217;s support.  Other readers have more explicitly <a href="http://www.onyx-international.com/node/58">open</a> software platforms, but without a large number of users, they probably won&#8217;t see much development.</li>
<li><strong>Low price</strong>: the $259 that Amazon and Barnes and Noble are currently both charging is about as high as I would be willing to go.  I simply can&#8217;t afford to sink $300 or more into a highly specialized device.  This unfortunately rules out a lot of the lesser-known readers for me, because they don&#8217;t have the agreements with publishers that would allow them to subsidize their hardware with e-book sales.</li>
</ol>
<p>
So what am I to do?  I&#8217;d love to be proven wrong, and find a reader out there that has all these features and more.  But until then, I think I&#8217;m stuck with paper.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=148&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2010/02/13/with-all-the-e-readers-out-there-why-cant-i-find-one-i-want/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Save the Newspapers: (Yet Another) Proposal</title>
		<link>http://whereofwecannotspeak.wordpress.com/2009/12/27/how-to-save-the-newspapers-yet-another-proposal/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2009/12/27/how-to-save-the-newspapers-yet-another-proposal/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 02:14:47 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Ideas]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=138</guid>
		<description><![CDATA[I have seen a number of articles recently about how and why the American newspaper is dying, and what to do about it (cf. Bring Back the Evening Paper!, Final Edition: Twilight of the American Newspaper, Network Effects, YCombinator&#8217;s New News idea (#3), and much ado about Rupert Murdoch pulling his various media outlets&#8217; content [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=138&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have seen a number of articles recently about how and why the American newspaper is dying, and what to do about it (cf. <a href="http://www.sachinagarwal.com/bring-back-the-evening-paper">Bring Back the Evening Paper!</a>, <a href="http://www.harpers.org/archive/2009/11/0082712">Final Edition: Twilight of the American Newspaper</a>, <a href="http://www.economist.com/displayStory.cfm?story_id=15108618">Network Effects</a>, YCombinator&#8217;s <a href="http://ycombinator.com/ideas.html">New News</a> idea (#3), and much ado about Rupert Murdoch pulling his various media outlets&#8217; content from Google).  </p>
<p>My own experience tells me that part of the reason papers are struggling, either in their print or online versions, is that they are locked into a terrible revenue model based on advertising.  Ads take up greater and greater space in the physical paper, and seek more and more attention on a digital page.  They are typically not relevant to my interests, and range from nuisances (an extra page turn to get past the spread for expensive perfume) to actual intrusions (graphics that cover the news content in my browser until I explicitly close or disable them).  The papers are apparently in a tight spot:  fewer people are subscribing, so they must rely on more advertising revenue to operate; but since readership is declining, individual ads are worth less.   Papers must therefore be more aggressive about the number, size, and flash of ads they print or display; this furthers annoys, and drives away, readers.   Of course, they can&#8217;t be as good at the advertising game as online media can &mdash; they can&#8217;t personalize print ads, they can&#8217;t print anything animated or with sound, and they probably can&#8217;t afford to keep separate advertising departments and print different editions for every city they sell papers in &mdash; so their advertisements will never be as targeted or effective.  Their value will decrease accordingly, leading to further reduced income.</p>
<p>If left unchecked, this cycle will result in papers with more and more advertising, and fewer and fewer readers, until they can no longer afford to operate.  That&#8217;s the end of a paper, which, for many reasons, can be a damn shame.</p>
<p>The problem here comes from the assumption that the papers must maintain a certain revenue level to remain profitable.  They turn to advertisers to fill in the gap in revenue left by subscribers, which slowly drives more subscribers away.  One way to save the newspapers, therefore, is to do away with that assumption. Instead of looking to maintain revenues, they should cut costs.  </p>
<p>They shouldn&#8217;t cut costs in the ways they have been, however:  closing bureaus, laying off writers and editors, putting more content online with less editorial review.  These are cuts to the things which make papers valuable.  The value of a newspaper is in the professional training and the contacts of its reporters and editors.  Despite what proponents of &#8220;New Media&#8221; might say, trained journalists still have an edge in their access to world events and the people involved, their ability to report those events in a straightforward way, and their knowledge of how to interpret and draw connections between those events and others.  </p>
<p>So where should the papers cut?  There is one major area that, apparently, they haven&#8217;t considered:  <strong>getting out of the printing business</strong>.  This doesn&#8217;t mean that papers shouldn&#8217;t be printed; it just means that someone else should print them.  Specifically, newspapers (especially national newspapers) should make their content available, free of ads, to anyone who wants to print and sell it &mdash; for a fee.  This fee might be subscription based, or it might be on a per-paper basis, but it would allow anyone who thinks they can efficiently print (and possibly deliver) a newspaper to do so.  The printers would then turn around and sell the papers to individual customers: newsstands, coffee shops, delivery services, even individuals.  </p>
<p>Ideally, newspapers should allow printers broad freedom to modify the content of the newspaper, so that printers can seek to make a profit by printing different formats, placing local ads, and so on.  The only way printers would be likely to sign up for this arrangement, after all, would be if they thought they could somehow do a better job printing and distributing papers than the newspaper companies themselves could, so they would need to have an arrangement that allowed them to apply their own expertise.  The newspapers might dictate some aspects of the printing &mdash; for example, they might not let their title be printed if certain severe content modifications were made &mdash; but the fewer restrictions on the printers, the better.  If a printer wants to use a different font because it uses less ink or looks better, or a different paper quality because it&#8217;s cheaper in his area, or employ any other strategy for making money selling copies of the news, he should be able to do so.  </p>
<p>I have no numbers to back it up, but I think this strategy has prima facie plausibility because it puts both aspects of the newspaper business in the hands of people who know it best.  Newspaper companies would be paid for producing the content which they are experts at producing:  writing about the news, in all its many forms.  Printers would likewise be paid for the fruits of their expertise:  physical copies of that content, produced cheaply and sold in a relatively small local area.  Physical newspapers, like many information resources, suffer from a &#8220;last mile&#8221; problem that small, local businesses are better equipped to solve than a central printing authority.  By shifting the cost of producing physical papers to the people best equipped to solve that problem, newspaper companies would be free to focus on the news, instead of on how to sell and print advertising.  With their revenue source back in alignment with the actual value of their product, they might just be efficient enough to stick around.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=138&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2009/12/27/how-to-save-the-newspapers-yet-another-proposal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>A Distributed Funding Model for Free Software Development</title>
		<link>http://whereofwecannotspeak.wordpress.com/2009/12/22/a-distributed-funding-model-for-free-software-development/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2009/12/22/a-distributed-funding-model-for-free-software-development/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 20:12:31 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Geeky Shtuff]]></category>
		<category><![CDATA[Ideas]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=121</guid>
		<description><![CDATA[One of the frequently-touted benefits of using Free software is that users are not helpless: if a program doesn&#8217;t work, or doesn&#8217;t do quite what they need it to do, they can either fix the problem themselves (because they have the source code) or they can ask someone else to fix it, possibly for a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=121&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the frequently-touted benefits of using Free software is that users are not helpless:  if a program doesn&#8217;t work, or doesn&#8217;t do quite what they need it to do, they can either fix the problem themselves (because they have the source code) or they can ask someone else to fix it, possibly for a fee.  Users with the same needs can pool their resources to ensure that those needs are met.  No user is dependent on a specific developer or company to make the changes they need.</p>
<p>In practice, it is difficult for individual users to exercise this freedom.  This is because: </p>
<ul>
<li>users may have no idea who to ask to fix a problem or add a new feature; given the nature of most Free software projects, finding the right programmer might be difficult</li>
<li>even if a user knows who to ask, the programmer or development community might be unwilling to fix the problem because they don&#8217;t see it as worth their time</li>
<li>if the programmer or development community offers to fix the problem or add the feature for a fee, the user may not be able to afford it herself, and may have no idea how to find other people who are also willing to pay for the feature or bugfix</li>
</ul>
<p>So, although users of Free software have an important freedom in theory, they are still often unable to reap some of the benefits that Free software promises, such as avoiding dependence on a particular developer, or pooling their resources to support development.</p>
<p>This may be one reason why users of popular desktop systems like Ubuntu are often perfectly happy to install proprietary software:  even if they know the advantages of using a Free program, without a way to exercise their freedoms, they might as well use a proprietary program that works better or has commercial support.</p>
<p>Meanwhile, because programmers don&#8217;t often have a way of getting paid by users to write or adapt Free code, there is a common perception that the only way to earn a living writing software for the masses is to make it proprietary, or to be hired by a large company that will pay you to write software they need.  It is difficult for programmers to earn money just by contributing to the Free software projects they are most interested in; sometimes, they ask for donations, but I doubt that many of them expect to earn much from them.  We continue to see proprietary programs offered for Free systems as a result.  Ubuntu&#8217;s <a href="https://wiki.ubuntu.com/SoftwareCenter">Software Center</a> is the latest incarnation of a solution to this perceived problem:  Canonical plans, eventually, to sell proprietary applications alongside Free programs as a way of earning money to support their organization.  They also think it will attract more programmers to GNU/Linux generally.  I hope to be corrected, but I don&#8217;t see any part of their proposal that will alleviate the bad choice developers currently face between writing Free code and earning money.  They aren&#8217;t proposing a payment system for Free software development.</p>
<p>This problem seems eminently solvable.  I think we can and should fix the problem of allowing users to exercise their freedoms, and helping developers get paid to write Free software, at the same time.  I have a proposal for how to do so: <strong>let users pledge contributions toward bugfixes and feature implementations</strong>.  The basic idea is that the issue trackers used by many Free software projects could easily be extended to allow users to pledge contributions toward particular programming projects; when those projects are completed, each user would pay their pledge to the programmer or team who submitted the patch.</p>
<p>Imagine the following scenario, for example.  Janet notices a bug in the way her wireless card works in Ubuntu.  She searches on <a href="http://launchpad.net">Launchpad</a> and discovers that others have the same problem; there is an open bug report for her issue.  Though she has no programming knowledge herself, she is willing to pay $50 toward getting this bug fixed, because it is a major inconvenience and she has no workaround.  She clicks a &#8220;Pledge now&#8221; button in the Web interface and enters this amount.  Meanwhile, Katherine, a savvy kernel hacker, notices that a lot of people are having the same problem, and spends some time improving the wireless driver for Janet&#8217;s card.  Her patch fixes the issue, and the bug is closed.  Janet (and anyone else who pledged) are notified that a patch is available, and that they must forward their payments to Katherine.  Katherine earns a modest sum for her work, allowing her to spend more time fixing wireless card issues than she otherwise would be able to.</p>
<p>Obviously, there are a lot of logistical problems to be solved here, such as:</p>
<ul>
<li>What happens when multiple patches are required to fix a bug, or multiple programmers work on the fix?  How should the payment be distributed among patch writers, package maintainers, and others who contribute to improving the quality of the software?</li>
<li>How do users get a hold of the new version?  Do they wait for the patch to move through the normal packaging process before sending their payments? (What if a fix is already available upstream at the time a pledge is made?)</li>
<li>Who collects the payments, and who ensures that they are made? (Would an arbitration system be needed?)</li>
<li>What happens to pledges if a bug is marked invalid, or made a duplicate of another?</li>
<li>What if the patch fixes the problem for some users, but not others?</li>
</ul>
<p>I think these problems can be addressed by a little engineering and/or &#8220;social&#8221; innovations.  They make a case for experimenting with different informal payment mechanisms to see what works best; they don&#8217;t constitute an argument against pledge-based payment systems in general.</p>
<p>The real hurdles presented by this approach are more abstract.  They crop up whenever money is introduced where it was previously absent.  Payment systems could significantly re-structure Free software communities, and possibly even threaten their existence.  Although a payment system could help users exercise their freedom and help programmers to earn a living writing Free code, it might do so at the expense of the volunteerism and collaborative spirit that have made the Free software movement so successful.  Programmers who currently work on a project as much as they are able, for their own satisfaction, might become resentful if others start earning money to do the same kind of work.  Project leaders might find themselves having to manage payments, in addition to the difficult technical and social problems they already work to solve.    And while some users would be able to exercise their freedom more effectively than they can now, the extent to which they can do so would essentially be a matter of their ability to pay, a difficult moral problem in its own right.</p>
<p>For these reasons, we should proceed with caution.  I think organizations like Canonical can and should help design these payment systems; after all, they have an interest in making money by developing and distributing Free software.  But it should be up to the teams behind individual projects to participate in any payment system, and to decide how they will distribute payments among their members.  </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=121&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2009/12/22/a-distributed-funding-model-for-free-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>A Small Bit of Enlightenment</title>
		<link>http://whereofwecannotspeak.wordpress.com/2009/11/17/a-small-bit-of-enlightenment/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2009/11/17/a-small-bit-of-enlightenment/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 16:54:41 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Geeky Shtuff]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[pipe]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=112</guid>
		<description><![CDATA[Someone once asked me in an interview: &#8220;What is your favorite Unix tool?&#8221; Not sure of what to say, I simply tried to avoid appearing ignorant, and replied: &#8220;grep.&#8221; Thinking about this problem again, I realized that there is a much better answer. Today, my favorite Unix tool is: the pipe.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=112&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
Someone once asked me in an interview:  &#8220;What is your favorite Unix tool?&#8221;  Not sure of what to say, I simply tried to avoid appearing ignorant, and replied:  &#8220;grep.&#8221;</p>
<p>
Thinking about this problem again, I realized that there is a much better answer.  Today, my favorite Unix tool is: <em>the pipe</em>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=112&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2009/11/17/a-small-bit-of-enlightenment/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting Gnus to read mail over IMAP</title>
		<link>http://whereofwecannotspeak.wordpress.com/2009/07/15/getting-gnus-to-read-mail-over-imap/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2009/07/15/getting-gnus-to-read-mail-over-imap/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 19:24:31 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Geeky Shtuff]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gnus]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[nnimap]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=109</guid>
		<description><![CDATA[I have struggled, off and on, to get Gnus, the Emacs mail reader, set up to read my email. Since I&#8217;m mostly coming from the world of GUI email clients, without any experience using a newsreader (not that I wouldn&#8217;t like to &#8212; I&#8217;ve just never had access to a news server), Gnus presented some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=109&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have struggled, off and on, to get <a href="http://www.gnus.org">Gnus</a>, the Emacs mail reader, set up to read my email.  Since I&#8217;m mostly coming from the world of GUI email clients, without any experience using a newsreader (not that I wouldn&#8217;t like to &mdash; I&#8217;ve just never had access to a news server), Gnus presented some conceptual hurdles.</p>
<p>Gnus treats mail like news, meaning you &#8220;subscribe&#8221; to various mailboxes, and once read, email is simply hidden unless you explicitly ask to see it.  The idea is that the activities of reading mail and news are very similar &mdash; you want to see what&#8217;s new without having the old stuff around, sort or filter incoming messages, write responses, then get on with your day &mdash; so the protocol used to access them (NNTP vs. POP, for example) shouldn&#8217;t make a difference in how you do them.  Gnus therefore unifies these activities in a common interface, and deals with different protocols and storage methods with different &#8220;virtual servers,&#8221; i.e., back-ends which find mail or news wherever they may be.  To use Gnus, you must learn how to tell it the details of how to access your messages via one or more back-ends.</p>
<p>So, I went to try to find the right back-end for an IMAP mail account.  This raises a further complication:  unlike most of the mail back-ends, which assume mail is stored locally, IMAP stores messages on the server.  This makes the IMAP back-end more like a news server back-end than a mail spool back-end.  </p>
<p>After reading the manual section on IMAP, I had tried a variety of settings that didn&#8217;t quite seem to work:  although I could connect to the server, and read my mail from the Server Buffer, I couldn&#8217;t seem to &#8220;subscribe&#8221; to any &#8220;groups&#8221;, or split my IMAP mail into these groups.  Fortunately, <a href="http://efod.se/writings/gnus-and-courier">this excellent article</a> provided a complete, working IMAP example.  I&#8217;m hoping to be a Gnus addict by the end of the summer.</p>
<p>UPDATE:  I&#8217;ve been successfully using Gnus for a few months now.  Here are some relevant bits from my .gnus file to get any new users started:</p>
<pre>
;; GMANE is about the only free news server I've seen.
;; I set it to my primary server so I can read a few Free software mailing lists.
(setq gnus-select-method
     '(nntp "news.gmane.org"))
;; Mostly, though, I just want to read my mail.
;; This setup uses a standard SSL-based connection to read the mail for the accounts I have through
;; UC Berkeley:
(setq gnus-secondary-select-methods
      '((nnimap "calmail" ; primary email
		(nnimap-address "calmail.berkeley.edu")
		(nnimap-server-port 993)
		(nnimap-authenticator login)
		(nnimap-expunge-on-close 'never)
		(nnimap-stream ssl))
	(nnimap "ocf" ; secondary account
		(nnimap-address "mail.ocf.berkeley.edu")
		(nnimap-server-port 993)
		(nnimap-authenticator login)
		(nnimap-expunge-on-close 'never)
		(nnimap-stream ssl))))
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=109&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2009/07/15/getting-gnus-to-read-mail-over-imap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>Software is Not Just a Tool</title>
		<link>http://whereofwecannotspeak.wordpress.com/2009/03/29/software-is-not-just-a-tool/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2009/03/29/software-is-not-just-a-tool/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 19:22:42 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Geeky Shtuff]]></category>
		<category><![CDATA[Ideas]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=68</guid>
		<description><![CDATA[One of the most frustrating things I do in my daily work is wrangle with CSS. Trying to get a particular website to display correctly on multiple browsers and screen resolutions without ruining my HTML semantics can be an extremely painful process. Anyone who&#8217;s ever had to do this knows the reason: browsers implement CSS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=68&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
One of the most frustrating things I do in my daily work is wrangle with <a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets">CSS</a>.  Trying to get a particular website to display correctly on multiple browsers and screen resolutions without ruining my <a href="http://en.wikipedia.org/wiki/Semantic_HTML#Semantic_HTML">HTML semantics</a> can be an extremely painful process.  Anyone who&#8217;s ever had to do this knows the reason:  browsers implement CSS differently, and sometimes (in the case of Internet Explorer) incorrectly and without any sort of sanity. The causes behind these different implementations are various, but they include varying interpretations of the standard, disregard for the standard, and the fact that users cannot submit patches to improve CSS support in proprietary browsers.</p>
<p>
Groaning about CSS bugs in Internet Explorer is a favorite topic on forums across the Web, but most people seem resigned to their existence and (begrudgingly) implement their own hacks and fixes, including reverting to table-based layouts.  I have never seen or heard a cogent discussion of the reasons <em>why</em> Internet Explorer is the way that it is, or what can be done about it.</p>
<p>
This problem is not unique to web browsers and web design.  It is an inherent tension present whenever proprietary software is used to read and write data that&#8217;s supposed to adhere to an open standard.  Open standards tends to evolve; proprietary software does not tend to evolve to meet them.  This is partly due, I assume, to a resource allocation problem:  it&#8217;s possible that even huge proprietary software companies like Microsoft can lack the resources (or willpower) to stay abreast of changes in standards over which they have little control.  A bigger contributor is psychology:  a culture of software ownership does not tend to foster the values of deferring to standards for the good of a group, sharing code and patches, or contributing in any other way to a community which does not recognize software property &#8220;rights.&#8221;</p>
<p><span id="more-68"></span></p>
<h2>Ignoring standards is evil?</h2>
<p>
Contrary to popular belief, I tend not to think that Microsoft and other proprietary software outfits ignore or imperfectly implement data standards because they&#8217;re &#8220;just evil&#8221; or anything of the sort. Believing that might bring you some emotional comfort, but it&#8217;s an uncritical and shallow explanation that does little to remedy the problem.  Instead, I think this behavior is rooted in a variety of cultural attitudes historical events, and conventional wisdom and platitudes.  In the rest of this post, I want to focus on one such bit of conventional wisdom, which I think is a major contributor to the way that both proprietary software companies view open data standards, and users&#8217; acceptance of those views:  the belief that software is &#8220;just a tool.&#8221;</p>
<p>
This is a belief that Microsoft in particular has promoted for some time.  Microsoft makes most of its money from fairly boring, functional products:  Windows and Office.  The software in these products is basically designed to facilitate users&#8217; accomplishing a series of well-defined tasks:  writing a document, calculating a budget, sending an email, starting up and shutting down.  Microsoft has a concerted interest in making sure that their users don&#8217;t think of software as anything other than a means to these pre-defined ends, because if users <em>did</em> think that, they might start to want things like well-designed graphical interfaces, open APIs and data formats that would allow them to extend the software for other purposes, and a general hackability that would make defining and accomplishing one&#8217;s <em>own</em> tasks easier.</p>
<h2>Tools</h2>
<p>
There&#8217;s no doubt that computer programs &mdash; at least <em>some</em> computer programs &mdash; are tools for accomplishing tasks.  On the most basic level, programs are a series of instructions that turn inputs into outputs.  Inputs come from users, and outputs are meaningful to users.  We design and run programs with the express intention of getting from one end of this chain to the other,  but what happens in between may or may not matter to us.  When you think of software as <em>just</em> a tool, you&#8217;re taking the latter perspective:  you don&#8217;t care how it does the job, as long as the job gets done.</p>
<p>
The problem is that, in reality, we all care at least a little bit about how a program does its job.  Programs don&#8217;t generally run in an isolated environment, and can have side effects that make the system less usable as a whole.  If a word processor erased all the documents you had previously written in order to create space in which to save the one you were currently writing, you wouldn&#8217;t likely be very happy.  The program is still acting as a tool (it helps you write and save documents), but it has a nasty side effect (erasing other files) which prevents you from doing other things, like revising work you&#8217;ve already done.  This might seem like an extreme example, but it isn&#8217;t so far off from what some of the other &#8220;applications&#8221; out there will do to a system in the name of just getting a job done.  For example, resource-intensive programs, like anti-virus software or Windows Vista&#8217;s <a href="http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.html">content protection pipeline</a>, can use up so much memory, processor time, and I/O that the system as a whole slows to a crawl, even though its processing power and storage are thousands or millions of times faster and larger than systems available 20 years ago.  Yes, these programs are tools for accomplishing specific ends, which they attain (with varying degrees of success).  But they impose such significant constraints on what other programs, and thus users, can do that they fail to be useful in an more global sense.</p>
<p>
In the tool analogy, these programs are like a hammer that automatically pulls out a nail for every one you put in.  You could argue that the defect in the hammer isn&#8217;t really the hammer designer&#8217;s responsibility, since the hammer is just a tool to aid in the task of pounding nails into a board, and it still does <em>that</em> very well.  This would plainly be ridiculous.  For a tool to be useful, it can&#8217;t just &#8220;blindly&#8221; aid its user in completing one task.  Rather, part of what it means for something to be a tool is that it helps its user accomplish a variety of goals, often in tandem or as means to some greater end &mdash; say, building a house.  (This is one reason we often speak of tool <em>kits</em>.)  It doesn&#8217;t make sense to refer to software as &#8220;just a tool&#8221; if all you mean by that is that it makes one kind of task easier, perhaps at the expense of doing other kinds of work.</p>
<p>
The UNIX world is much more sensitive to this broader concept of tool-as-part-of-a-kit.  Many UNIX programs are designed to do exactly one thing, and to do it very well, without trying to be all things to all people.  A huge part of what makes these programs so useful, though, is not their specialization to one task, but their ability to be combined with other programs.  By combining the tools of the UNIX environment, users can easily complete new tasks that the system designers could never have dreamed of.  It is the UNIX philosophy of providing <em>both</em> a set of useful, efficient, task-specific tools and an environment that facilitates combining those tools that makes UNIX the system of choice for a wide variety of computing tasks.</p>
<p>
 This brings me to another point where the &#8220;just a tool&#8221; mindset breaks down.  Software is a very unique sort of tool:  one that can produce other tools whose power are limited only by the user&#8217;s imagination.  People who think software is only good for doing one pre-defined task at a time have had the wool pulled over their eyes.  What makes computers so great for doing so many things is that they are <em>programmable</em>.  You can balance your checkbook with a pocket calculator, but if you use a spreadsheet instead, you&#8217;ll be able to write programs that can answer new questions when you think of them (e.g., &#8220;how much did I spend on groceries between December and February?&#8221;) without too much more effort.  If you write your notes using a text editor instead of a pen and paper, you will be able to search them, reorganize them, and reformat and print them in ways that pen and paper will never allow.  Information-processing tasks in general are easier to do with a computer because, once you have the input data in a well-defined format, writing programs to manipulate that data in new and interesting ways is much simpler than performing those manipulations by hand.  For this reason, software at its best is less like a tool and more like a whole machine shop:  not only does it allow you to do certain kinds of things to start with; it enables you to build your own custom tools when the need arises.</p>
<p>
In the end, it may be the case that some people prefer to operate their computers like drones, working through one pre-defined task after another, never stopping to think if they could do them better or more easily by thinking of their software in a new way.  For such people, software truly is just a tool, and a rather blunt one at that.  But the rest of us need not suffer this fate.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=68&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2009/03/29/software-is-not-just-a-tool/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>Mnemonic</title>
		<link>http://whereofwecannotspeak.wordpress.com/2008/10/21/mnemonic/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2008/10/21/mnemonic/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 03:55:30 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[human memory]]></category>
		<category><![CDATA[launchpad]]></category>
		<category><![CDATA[mnemonic]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=90</guid>
		<description><![CDATA[I have started my first &#8220;official&#8221; free software project! It&#8217;s called Mnemonic and it is available from launchpad.net. Here&#8217;s how I have described it: Mnemonic is a Python library for analyzing experimental data about human memory. It contains functions for performing several specialized analyses and a library which allows users to readily build their own [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=90&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I have started my first &#8220;official&#8221; free software project!  It&#8217;s called <i>Mnemonic</i> and it is available from <a href="https://launchpad.net/mnemonic">launchpad.net</a>.  Here&#8217;s how I have described it:
</p>
<blockquote><p>
Mnemonic is a Python library for analyzing experimental data about human memory. It contains functions for performing several specialized analyses and a library which allows users to readily build their own analyses.
</p></blockquote>
<p>
If you want to check it out, and you have the <a href="http://bazaar-vcs.org">Bazaar</a> version control system, you can get it this way:</p>
<p><code><br />
$ bzr branch lp:mnemonic<br />
</code></p>
<p>
Mnemonic is in the earliest stages of development, but I would welcome contributions from anyone who finds it useful.  My hope is that it will one day replace the MATLAB codebase at the <a>Computational Memory Lab</a>, where I work as a Research Coordinator.  Please let me know if you use it!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=90&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2008/10/21/mnemonic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting gNewSense running on a MacBook</title>
		<link>http://whereofwecannotspeak.wordpress.com/2008/10/19/getting-gnewsense-running-on-a-macbook/</link>
		<comments>http://whereofwecannotspeak.wordpress.com/2008/10/19/getting-gnewsense-running-on-a-macbook/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 03:51:49 +0000</pubDate>
		<dc:creator>whereofwecannotspeak</dc:creator>
				<category><![CDATA[Geeky Shtuff]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[gNewSense]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[icecat]]></category>
		<category><![CDATA[xmodmap]]></category>
		<category><![CDATA[Gnash]]></category>
		<category><![CDATA[compiling]]></category>
		<category><![CDATA[sleep]]></category>
		<category><![CDATA[resume]]></category>
		<category><![CDATA[suspend to RAM]]></category>

		<guid isPermaLink="false">http://whereofwecannotspeak.wordpress.com/?p=82</guid>
		<description><![CDATA[I have a second-generation MacBook (bought in spring of 2007), and due to a bunch of recent issues which have turned me off from OS X (e.g., the machine randomly will fail to wake up from sleep, compiling software is a huge pain, etc.), I have been aroused from my complacency and have decided to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=82&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I have a second-generation MacBook (bought in spring of 2007), and due to a bunch of recent issues which have turned me off from OS X (e.g., the machine randomly will fail to wake up from sleep, compiling software is a huge pain, etc.), I have been aroused from my complacency and have decided to try my hand at getting <a href="http://www.gnewsense.org">gNewSense</a>, an all-free software derivative of <a href="http://www.ubuntu.com">Ubuntu</a>, running.  I didn&#8217;t expect this to be an entirely painless or automatic process &mdash; I had tried Ubuntu on the same hardware a little over a year ago, and found it to be lacking &mdash; but I needed a distraction from studying for the GRE, and so I dove in last weekend and burned a LiveCD. </p>
<p><span id="more-82"></span></p>
<p>
I am currently running gNewSense DeltaH, which is based on Ubuntu&#8217;s Hardy Heron release.  I have found the out-of-the-box hardware support to be surprisingly good:  I didn&#8217;t need to install any special packages to get the screen resolution right, to get the mouse working, or to get the keyboard working before boot (all of which were issues with Ubuntu when I tried it a year ago).  The gNewSense installer worked perfectly fine, and gave me a happily-booting system without any additional configuration on my part.</p>
<p>
The rest of this post will be dedicated to the things I had to do to get the system working to my satisfaction after the initial installation.  Even though the hardware support is impressive, especially for a distribution which makes a point of removing any and all binary-only &#8220;blobs&#8221; from the kernel, there are a few things which I have found necessary to get a system which will eventually allow me to fully replace OS X. I&#8217;m documenting them here for my own benefit, and for the sake of anyone else who might be considering running gNewSense or Ubuntu on a MacBook.</p>
<p>
<b>1.  Getting the wireless card working.</b>  Prior to doing any system updates or installing any packages I might want, I had to get a working Internet connection.  We share a wireless connection here, so plugging in direct was not really an option for any length of time.  I used the <a href="http://madwifi.org">madwifi</a> drivers, which are not available as a gNewSense package (though they are now available in Ubuntu&#8217;s linux-restricted-modules package, according to the madwifi <a href="http://madwifi.org/wiki/UserDocs/Distro/Ubuntu">wiki</a>).  I don&#8217;t understand the licensing issues involved, because the COPYRIGHT file in the madwifi distribution says its source code is dual-licensed under the BSD and GPL licenses, which is good enough for me.</p>
<p>
There was one snag trying to get the wireless drivers to compile.  gNewSense DeltaH installs both the linux-image-2.6.24 and linux-image-2.6.24-generic kernels, but only the generic version properly uses both CPU cores, so that is naturally the one I was using.  However, the default installation does not install the kernel headers for the generic kernel build, so madwifi would not compile against it.  Therefore, it was necessary for me to plug into the wired connection and run</p>
<p><code><br />
$ sudo apt-get install linux-headers-2.6.24-generic<br />
</code></p>
<p>
before I could compile madwifi.  Once the Linux headers were installed, though, running</p>
<p><code><br />
$ make<br />
$ sudo make install<br />
</code></p>
<p>
in the madwifi directory worked flawlessly, and the kernel loads the driver at boot.</p>
<p>
<strong>Update:</strong> after installing the linux-libre kernel, version 2.6.29-1, from <a href="http://aligunduz.org/gNewSense/">Uncle Gnufs&#8217; World Famous Home Baked Free Kernel Shoppe</a>, wireless works without the Madwifi drivers.   The built-in ath9k driver is used instead, and I have experienced no problems with it so far.</p>
<p>
<b>2.  Getting the mouse working.</b>  The MacBook touchpad <i>mostly</i> works after a default installation, but a couple of features are missing that I really need and enjoy:</p>
<ul>
<li>right-clicking</li>
<li>two-finger scrolling</li>
</ul>
<p>Right-clicking is a must-have in any modern desktop environment, and it was actually the more difficult problem to solve.  I am still not sure if I like the solution, but for what it&#8217;s worth, this will work:
</p>
<ol>
<li>Install the <code>xkbset</code> package:<br />
<code><br />
$ sudo apt-get install xkbset<br />
</code></li>
<li>Create a file ~/.Xmodmap, and add the line:<br />
<code><br />
keycode 115 = Pointer_Button3<br />
</code><br />
Key code 115 is for the left Apple key.  You can use a different key if you wish; use the &#8220;xev&#8221; program to determine what the key codes for different control keys are.
</li>
<li>On the System menu, go to Preferences -&gt; Keyboard.  On the &#8220;Mouse Keys&#8221; tab, check &#8220;Allow to control the pointer using the keyboard.&#8221;</li>
<li>On the System menu, go to Preferences -&gt; Sessions.  On the &#8220;Startup Programs&#8221; tab, click &#8220;Add.&#8221;  Enter what you like for the name and comments; the command should be:<br />
<code><br />
xmodmap /home/username/.Xmodmap &amp;&amp; xkbset m<br />
</code><br />
(replacing &#8220;username&#8221; with your actual username).</p>
<li>Restart X with Ctrl-Alt-Backspace.</li>
<li>The LEFT Apple (Command) key will now simulate a right-click wherever the mouse pointer is.</li>
</ol>
<p>
At the moment, this solution is only working for me some of the time, and it doesn&#8217;t have the &#8220;native&#8221; feel of OS X&#8217;s Control-click for rightclick.  (Indeed, you don&#8217;t have to click the mouse button at all to get a right click.)  This feels uncoordinated to me, because the key is not a <i>modifier</i> for a normal mouse click (the way it is normally a modifier for a keypress); instead, it <i>is</i> a mouse click.  This means that whatever key you choose must be solely dedicated to right-clicking.  If anyone comes up with a better way to make a key/mouse-click combination function as a right click while still preserving the normal function of that key elsewhere, I would love to hear about it.</p>
<p>
Two finger scrolling is easier to set up, though I don&#8217;t have it working as smoothly as in OS X yet either.  Simply add these lines to your /etc/X11/xorg.conf file in the section which has the &#8220;Synaptics Touchpad&#8221; identifier:</p>
<p> <code><br />
	Option		"VertTwoFingerScroll" 	"1"<br />
	Option		"HorizTwoFingerScroll"	"1"<br />
	Option		"TapButton1"		"0"<br />
</code></p>
<p>
(If you don&#8217;t want horizontal two finger scrolling, set that to &#8220;0&#8243; instead of &#8220;1&#8243;.  The third line turns off tapping on the touchpad as a click; leave it out if you like being able to click with a tap.) There are a couple of issues with this so far.  First of all, the touchpad seems too sensitive to me:  two-finger scrolling goes very fast, and accidental brushes of my palm or thumbs on the touchpad can have drastic effects on whatever I&#8217;m doing in a way they never did in OS X.  Second, the right side of the touchpad also appears set up to be a scroll zone, which is redundant and unhelpful for me; I fixed this via the GUI (System -&gt; Preferences -&gt; Mouse -&gt; Touchpad -&gt; uncheck &#8220;Enable vertical scrolling&#8221;) but I don&#8217;t know how to set this permanently in the Xorg configuration, which I would like to do.  Again, suggestions are welcome.</p>
<p>
<b>3.  Installing GNU IceCat.</b>  <a href="http://www.gnu.org/software/gnuzilla/">IceCat</a> is the <a href="http://www.gnu.org">GNU Project&#8217;s</a> version of the Firefox browser.  I much prefer it to Epiphany (which was mysteriously eating my downloads), and it adds some nice security features that Firefox doesn&#8217;t have.  Downloading the .deb from ftp://ftp.gnu.org/gnu/gnuzilla/3.0.1-g1/ and installing it with dpkg worked fine.</p>
<p>
<strong>Update:</strong>  I&#8217;m having some difficulties getting <a href="http://www.gnu.org/software/gnash/">Gnash</a>, the GNU Flash player, to work with IceCat.  I tried installing <code>mozilla-plugin-gnash</code> via apt-get and creating a link to the installed <code>flashplugin-alternative.so</code> from the IceCat plugins directory&#8230;and IceCat promptly crashed when I tried to open a Flashy site.  I am going to assume that this is due to some kind of version conflict between the mozilla-plugin-gnash package and IceCat, and try compiling from source next.</p>
<p>
<strong>Update 2:</strong>  I compiled Gnash from source, and it works at last!  I still can&#8217;t play videos on Hulu or YouTube, because they use Flash 9, and Gnash doesn&#8217;t have support for them yet, but oh well.  Here are the steps to compile Gnash and the plugin for IceWeasel:</p>
<ol>
<li>Install dependencies:<br />
<code><br />
$ sudo apt-get install libboost-dev libboost-thread-dev libagg-dev libsdl1.2-dev libgstreamer0.10-dev libatk1.0-dev libatk1.0-dev libglib2.0-dev libgtk2.0-dev libungif-dev libjpeg-dev libboost-dev libboost-thread-dev libagg-dev libsdl1.2-dev libgstreamer0.10-dev libatk1.0-dev libatk1.0-dev libglib2.0-dev libgtk2.0-dev libgif-dev libjpeg-dev libxml2-dev libcurl3-dev libboost-date-time-dev libboost-serialization-dev<br />
</code>
</li>
<li>Obtain the Gnash 0.8.4 source .tar.bz2 from <a href="ftp://ftp.gnu.org/pub/gnu/gnash/">ftp://ftp.gnu.org/pub/gnu/gnash/</a>.</li>
<li>Unzip the sources:<br />
<code><br />
$ tar xjvf gnash-0.8.4.tar.bz2<br />
$ cd gnash-0.8.4<br />
</code></li>
<li>Configure the build for GTK (not KDE) and to install the IceCat plugin:<br />
<code><br />
$ ./configure --with-plugindir=/usr/local/lib/icecat-3.0.1-g1/plugins --enable-gui=gtk<br />
</code></li>
<li>Make and install:<br />
<code><br />
$ make<br />
$ sudo make install<br />
$ sudo make install-plugins<br />
</code></li>
</ol>
<p>
<b>4. Fixing font rendering.</b>  This solution comes from <a href="http://www.dtgeeks.com/journals/article/fix_up_that_linux_font_rendering/">Deep Thought</a>.  Add this XML to ~/.fonts.conf:</p>
<p><code><br />
&lt;?xml version="1.0"?&gt;<br />
&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;<br />
&lt;fontconfig&gt;<br />
  &lt;match target="font"&gt;<br />
    &lt;edit name="autohint" mode="assign"&gt;<br />
      &lt;bool&gt;true&lt;/bool&gt;<br />
    &lt;/edit&gt;<br />
  &lt;/match&gt;<br />
&lt;/fontconfig&gt;<br />
</code>  </p>
<p>
<b>Other outstanding issues</b>:</p>
<ul>
<li>Sound</li>
<li>Sleeping/hibernating:  the system does sleep (suspend to RAM) and resume, but after doing so, I can&#8217;t switch from GNOME to one of the text-based virtual terminals (e.g., via Ctrl+Alt+F2) &mdash; they&#8217;re all black.</li>
</ul>
<p>
That&#8217;s all for now.  I will update this post as I discover solutions for other issues.  </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/whereofwecannotspeak.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/whereofwecannotspeak.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/whereofwecannotspeak.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/whereofwecannotspeak.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/whereofwecannotspeak.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/whereofwecannotspeak.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/whereofwecannotspeak.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/whereofwecannotspeak.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/whereofwecannotspeak.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/whereofwecannotspeak.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/whereofwecannotspeak.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/whereofwecannotspeak.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/whereofwecannotspeak.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/whereofwecannotspeak.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=whereofwecannotspeak.wordpress.com&amp;blog=185936&amp;post=82&amp;subd=whereofwecannotspeak&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://whereofwecannotspeak.wordpress.com/2008/10/19/getting-gnewsense-running-on-a-macbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/295ac9f740286603eddb53fc359c2c62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whereofwecannotspeak</media:title>
		</media:content>
	</item>
	</channel>
</rss>
