<?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>(b)logophile &#187; geek</title>
	<atom:link href="http://www.logophile.org/blog/tags/geek/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.logophile.org/blog</link>
	<description>blog of a logophile (not "logos", but "λόγος")</description>
	<lastBuildDate>Fri, 20 Aug 2010 10:21:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3128</generator>
		<item>
		<title>Python datetime conversions</title>
		<link>http://www.logophile.org/blog/2010/08/15/python-datetime-conversions/</link>
		<comments>http://www.logophile.org/blog/2010/08/15/python-datetime-conversions/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 15:21:59 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[(La)TeX]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tikz]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=964</guid>
		<description><![CDATA[Recently for my work I had to do some date/time-wrangling in Python. We have a database containing unix timestamp values, and the front-end application needs to talk local time. The necessary conversions aren&#8217;t so complicated, but Python makes life a bit harder by having three relevant modules, three relevant data types (not matching the modules), [...]]]></description>
			<content:encoded><![CDATA[<p>Recently for my work I had to do some date/time-wrangling in Python. We have a database containing unix timestamp values, and the front-end application needs to talk local time. The necessary conversions aren&#8217;t so complicated, but Python makes life a bit harder by having three relevant modules, three relevant data types (not matching the modules), and a complicated web of conversion possibilities between them.</p>

<p>For instance:</p>

<ul>
<li>the <code>datetime</code> class lives in the <code>datetime</code> module; careful with your imports, you will want both!</li>
<li>the <code>datetime</code> module has a <code>time</code> class, but there&#8217;s also a <code>time</code> module</li>
<li>the documentation talks at different places about &#8220;time tuples&#8221; and also about &#8220;<code>time.struct_time</code>&#8221; objects; they&#8217;re the same thing</li>
<li>to convert a unix timestamp to a time tuple representing UTC time, you use <code>time.gmtime()</code>; for the reverse conversion, you use <code>calendar.timegm()</code> (this is the only place you&#8217;ll use the <code>calendar</code> module)</li>
<li>to get <em>now</em> you use:

<ul>
<li><code>time.localtime()</code> if you want a timetuple</li>
<li><code>time.time()</code> if you want a unix timestamp</li>
<li><code>datetime.now()</code> if you want a datetime object</li>
<li><code>time.gmtime()</code> if you want a timetuple representing UTC time</li>
<li><code>datetime.utcnow()</code> if you want a datetime object representing UTC time</li>
<li>a crowbar if necessary</li>
</ul></li>
<li>to build a <code>datetime</code> object from a time-tuple, you can set the fields one-by-one&#8230; or you can slice the time-tuple and unpack the list: <code>datetime(*a_time_tuple[:6])</code></li>
</ul>

<p>In other words, there&#8217;s a lot of fiddly detail to remember. So I made a chart.</p>

<div id="attachment_969" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.logophile.org/blog/wp-content/uploads/2010/08/python-date.pdf"><img src="http://www.logophile.org/blog/wp-content/uploads/2010/08/python-date.jpg" alt="Blurry overview of python date/time wrangling" title="python-date-img" width="600" height="424" class="size-full wp-image-969" /></a><p class="wp-caption-text">Click through for (non-blurry) PDF.</p></div>

<p>It&#8217;s formatted for a4 paper and prints nicely. I used the incredible LaTeX drawing system <a href="http://www.texample.net/tikz/examples/">TikZ</a>. (On my screen the arrows have a little glitch at start and finish, but it doesn&#8217;t appear in my printout. Possibly a TikZ bug? Not sure.)</p>

<p>Note that it doesn&#8217;t show <em>everything</em> you can do; apart from the more egregious omissions (like timezone handling on <code>datetime</code> objects, which actually seems quite straight-forward but didn&#8217;t fit nicely into the design), I didn&#8217;t include arrows for nonsensical operations. For example you could feed a UTC time-tuple into <code>time.mktime()</code> (which takes a <em>localtime</em> time-tuple to a unix timestamp), but the result would be nonsense: the number of seconds since a date similar to, but probably not quite the same as, the unix epoch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2010/08/15/python-datetime-conversions/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ubuntu on Dell Precision: driver problems with easy fixes</title>
		<link>http://www.logophile.org/blog/2010/06/05/ubuntu-on-dell-precision-driver-problems-with-easy-fixes/</link>
		<comments>http://www.logophile.org/blog/2010/06/05/ubuntu-on-dell-precision-driver-problems-with-easy-fixes/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 11:57:07 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=916</guid>
		<description><![CDATA[Yesterday I installed Ubuntu 10.04 (&#8220;Lucid Lynx&#8221;) on my brand-new Dell Precision M4500. Not everything went smoothly: I had driver problems that left me with a blank screen and no wireless. There are simple fixes for these problems but Google was only giving me more complicated technical ones. Maybe this post will help someone in [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I installed Ubuntu 10.04 (&#8220;Lucid Lynx&#8221;) on my brand-new Dell Precision M4500. Not everything went smoothly: I had driver problems that left me with a blank screen and no wireless. There are <em>simple</em> fixes for these problems but Google was only giving me more complicated technical ones. Maybe this post will help someone in a similar situation.</p>

<p><span id="more-916"></span></p>

<p>First the blank screen. From <a href="http://ubuntu-tutorials.com/2010/05/06/ubuntu-10-04-lucid-blank-screen-at-startup-workaround/">these instructions</a> I added the option <code>nomodeset</code> for the install, and that went swimmingly. But of course on normal startup I had the same problem; I don&#8217;t even know what <code>nomodeset</code> means, but should I be setting it as a grub option or something? No, the answer is simpler than that: plug in a second (DVI) monitor.<sup>1</sup> Assuming <em>that</em> doesn&#8217;t have any driver problems, you&#8217;ll be able to see what you&#8217;re doing and can move on to the next hitch&#8230;</p>

<p>Wireless. Without a driver, wireless is completely disabled; the network manager applet doesn&#8217;t even see it as turned off, it&#8217;s simply absent. Solution: plug in a network cable instead. Duh. (It took quite some time for this blindingly obvious insight to hit.)</p>

<p>So at that point I had internet access and could see the screen. But these aren&#8217;t &#8220;solutions&#8221;, they&#8217;re temporary workarounds; from a bit of googling, the next step <em>looks</em> like it&#8217;s going to be tracking down drivers, uninstalling and reinstalling packages, and tweaking configuration settings ad nauseum.</p>

<p>Nope. <code>System -&gt; Administration -&gt; Hardward Drivers</code>, it found the missing two correctly, they activated without a hitch, and now I&#8217;m good to go (the extra monitor and network cable can go back into storage).</p>
<p>Notes:</p><ol class="footnotes"><li id="footnote_0_916" class="footnote">I happen to have one lying around because my previous laptop is a netbook.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2010/06/05/ubuntu-on-dell-precision-driver-problems-with-easy-fixes/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Emacs 23 magic</title>
		<link>http://www.logophile.org/blog/2009/12/03/emacs-23-magic/</link>
		<comments>http://www.logophile.org/blog/2009/12/03/emacs-23-magic/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 13:12:53 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[accidental]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=788</guid>
		<description><![CDATA[Anyone else using emacs 23 yet? Here&#8217;s something awesome I stumbled on by accident: try to open a pdf from inside emacs. Go on, go and try, I&#8217;ll wait. Neato, huh?]]></description>
			<content:encoded><![CDATA[<p>Anyone else using emacs 23 yet? Here&#8217;s something <em>awesome</em> I stumbled on by accident: try to open a pdf from inside emacs. Go on, go and try, I&#8217;ll wait.</p>

<p>Neato, huh?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/12/03/emacs-23-magic/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Another typogeek tee</title>
		<link>http://www.logophile.org/blog/2009/10/28/another-typogeek-tee/</link>
		<comments>http://www.logophile.org/blog/2009/10/28/another-typogeek-tee/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:24:29 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[tshirt]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=771</guid>
		<description><![CDATA[Mule design studio have a design I like: Pretty funny if the association is familiar. Otherwise, probably pretty incomprehensible. [via]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.muledesign.com/">Mule design studio</a> have a <a href="http://store.muledesign.com/featured/el-vetica.php">design I like</a>:</p>

<p><a href="http://store.muledesign.com/featured/el-vetica.php"><img src="http://store.muledesign.com/product_images/elvetica_lg.jpg" alt="El Vetica tshirt by Mule design studio" /></a></p>

<p>Pretty funny if the <a href="http://en.wikipedia.org/wiki/Luchador">association</a> is familiar. Otherwise, probably pretty incomprehensible. [<a href="http://laughingsquid.com/el-vetica-mexicos-only-typographerluchador/">via</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/10/28/another-typogeek-tee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discoveries: stumpwm and screen-profiles</title>
		<link>http://www.logophile.org/blog/2009/05/16/discoveries-stumpwm-and-screen-profiles/</link>
		<comments>http://www.logophile.org/blog/2009/05/16/discoveries-stumpwm-and-screen-profiles/#comments</comments>
		<pubDate>Fri, 15 May 2009 22:14:09 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[non-transient]]></category>
		<category><![CDATA[beautiful]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=682</guid>
		<description><![CDATA[Apparently my family don&#8217;t understand anything I write on this blog any more. This post isn&#8217;t going to help. The good news is, I&#8217;ve got a bundle of photos from Stockholm which I hope to put up sometime over the weekend. Travels in Scandinavia, that&#8217;s not geeky at all, right? This, on the other hand, [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently my family don&#8217;t understand anything I write on this blog any more. This post isn&#8217;t going to help. The good news is, I&#8217;ve got a bundle of photos from Stockholm which I hope to put up sometime over the weekend. Travels in Scandinavia, that&#8217;s not geeky at all, right?</p>

<p>This, on the other hand, is.</p>

<p><span id="more-682"></span></p>

<p>I&#8217;ve used <a href="http://www.gnu.org/software/screen/">GNU <code>screen</code></a> for ages to keep my working environment set up the way I like it, wherever I am. I have a screen session permanently running on my office linux box, which I ssh to from wherever I happen to be.</p>

<p>That all changed this week, when my branch of our research institute moved to a new building. My linux box was taken offline and loaded into a truck; when it arrived at its new home, due to various cock-ups among the administration, it had no network access. (Word is they&#8217;re not going to let us ssh in anyway, sigh.)</p>

<p>So I&#8217;ve been playing around trying to set up my eee pc as a useful working environment. Step 1 was just copying all my configs from the desktop over to the netbook, and running everything from there instead. Imagine my surprise when some applications <em>did not work the same way as they used to!</em></p>

<p>Specifically, screen has gained a purely awesome addition: <a href="https://launchpad.net/byobu"><code>screen-profiles</code></a> provides something like the mode bar in emacs, configurable to add all sorts of goodies (battery monitor, wifi strength, lots of bits and pieces).</p>

<p>My other new discovery, which rather overshadows the first, is <a href="http://www.nongnu.org/stumpwm/index.html">StumpWM</a>. If screen and emacs had a baby, and brought it up to be a window manager, that would be stumpwm.</p>

<p>It&#8217;s a window manager written in lisp, like emacs,<sup>1</sup> and like emacs it&#8217;s configurable on-the-fly by lisp hacking.<sup>2</sup> Also like emacs it&#8217;s highly keyboard-driven, but more along the lines of screen: there&#8217;s a prefix key that diverts input to the stumpwm keymaps. (Actually I never realised before how similar the emacs and screen models are here; the only real difference is that screen gets away with only one keymap, hence only one prefix command. Stumpwm lets you define more if you need to, naturally.) Like screen, and unlike most window managers, you only see whatever you&#8217;re using at the moment (although you can tile windows the same way you can split emacs frames).<sup>3</sup></p>

<p>I started messing around with stumpwm because the display of the eee is so tiny, and I was frustrated with the amount of space being wasted on menu bars and panels and whatever.<sup>4</sup> I didn&#8217;t get very far at first, because I was trying to do everything by hand: shut down the Gnome display manager and restart X, pointing it at stumpwm. Of course all sorts of things stopped working, most importantly audio. But then I followed <a href="http://www.xsteve.at/prg/stumpwm/">XSteve&#8217;s instructions</a> for adding stumpwm as a session type under ubuntu, and magically <em>everything worked</em>.<sup>5</sup></p>

<p>By &#8220;everything&#8221;, I mean <em>everything</em>. Audio works (I&#8217;m listening to Bettye Lavette in Amarok right now). Two-finger touch-pad scrolling works. I can split a stumpwm screen into two panes, pull firefox into one pane and emacs into the other, mouse-select text in firefox and <em>drag and drop</em> it into emacs. It not only works, it shows the text being dragged (otherwise I never would have tried the experiment). Global shortcut keys defined in Gnome work (so I can control the volume Amarok plays at).</p>

<p>I am a complete convert: stumpwm is fantastic.</p>

<p>I have two complaints.</p>

<p>The first is that I want better ways to switch windows: a list across all groups, that works like <a href="http://www.emacswiki.org/emacs/InteractivelyDoThings"><code>ido</code> in emacs</a>: filter the list of possible targets by any sort of match, rather than just prefix-matching and tab-completion.<sup>6</sup></p>

<p>My second complaint is that both stumpwm and ido are written in (dialects of) lisp. Meaning that it&#8217;s conceivable that someone could hack bits of one into the other. Meaning that I&#8217;m <em>awfully</em> tempted to give it a try, instead of working on my dissertation. Shame on you, developers, for not protecting me from my instincts.</p>
<p>Notes:</p><ol class="footnotes"><li id="footnote_0_682" class="footnote">Well, stumpwm is written in what emacs would call an <em>inferior</em> brand of lisp&#8230;</li><li id="footnote_1_682" class="footnote">Yes, you can change the source code of your window manager while it&#8217;s running. And yes, once you can do this you&#8217;ll discover <em>all sorts</em> of reasons why you might want to.</li><li id="footnote_2_682" class="footnote">And just like screen, now that screen-profiles exists, there&#8217;s a configurable mode line.</li><li id="footnote_3_682" class="footnote">Emacs with no scrollbars and the font set to 8pt fits 80 characters twice, in a two-column split, which is <em>magical</em> for LaTeX. Viewing the pdf in Okular is less pleasant.</li><li id="footnote_4_682" class="footnote">XSteve is the author of the <a href="http://www.xsteve.at/prg/emacs/index.html"><code>psvn</code> package</a> (which adds excellent subversion support to emacs), among many other software projects. His config tips are worth checking out too.</li><li id="footnote_5_682" class="footnote">Ido (&#8216;interactively do things&#8217;) is another recent discovery; I&#8217;m <em>completely</em> sold on buffer-switching, and the fact that it lets me prefer <code>.tex</code> over <code>.aux</code> when opening files might be enough of a draw card to force me to get used to the way it treats backspace and tab.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/05/16/discoveries-stumpwm-and-screen-profiles/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>In which I learn things about TeX</title>
		<link>http://www.logophile.org/blog/2009/04/27/in-which-i-learn-things-about-tex/</link>
		<comments>http://www.logophile.org/blog/2009/04/27/in-which-i-learn-things-about-tex/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 13:26:55 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[(La)TeX]]></category>
		<category><![CDATA[epiphany]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=652</guid>
		<description><![CDATA[Apparently a local texmf tree no longer requires the ls-R file. Since how long, I know not, nor care I particularly. Nor expect I you to care, particularly, but I was tickled by it. Yet another piece of obscurity and complication getting slightly simpler in the LaTeX world. (Thanks to Micha &#8212; I discovered this [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently a local texmf tree no longer requires the <code>ls-R</code> file. Since how long, I know not, nor care I particularly. Nor expect I you to care, particularly, but I was tickled by it. Yet another piece of obscurity and complication getting slightly simpler in the LaTeX world.</p>

<p>(Thanks to Micha &#8212; I discovered this while helping him tidy up his texmf tree. And yes, I guess this is less down to (La)TeX and more down to my distribution, details jargon technicalities disclaimer.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/04/27/in-which-i-learn-things-about-tex/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Pdf shuffling in LaTeX</title>
		<link>http://www.logophile.org/blog/2009/04/08/pdf-shuffling-in-latex/</link>
		<comments>http://www.logophile.org/blog/2009/04/08/pdf-shuffling-in-latex/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 13:08:40 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[(La)TeX]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=626</guid>
		<description><![CDATA[Pdfpages is a LaTeX package that lets you drop individual pages of other pdfs into your LaTeX documents. Put it together with the \foreach command provided by pgf/TikZ, and you can get quite a bit done very simply. For instance, you can scan in somebody&#8217;s photocopy of a paper from 1978 using the office printer, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=pdfpages">Pdfpages</a> is a LaTeX package that lets you drop individual pages of other pdfs into your LaTeX documents. Put it together with the <code>\foreach</code> command provided by <a href="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=pgf">pgf</a>/<a href="http://pgf.sourceforge.net/">TikZ</a>, and you can get quite a bit done very simply.</p>

<p>For instance, you can scan in somebody&#8217;s photocopy of a paper from 1978 using the office printer, which emails you a pdf of the scan, and run it through this file to get a single page of the original on each page of the pdf:</p>


<div class="wp_syntax"><div class="code"><pre class="latex" style="font-family:monospace;"><span style="color: #800000; font-weight: normal;">\<span style="color: #800000; font-weight: bold;">documentclass</span></span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">article</span><span style="color: #E02020; ">}</span>
<span style="color: #800000; font-weight: normal;">\usepackage</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">pgffor</span><span style="color: #E02020; ">}</span>
<span style="color: #800000; font-weight: normal;">\usepackage</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">pdfpages</span><span style="color: #E02020; ">}</span>
&nbsp;
<span style="color: #C00000; font-weight: normal;">\begin</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;"><span style="color: #0000D0; font-weight: normal;">document</span></span><span style="color: #E02020; ">}</span>
&nbsp;
<span style="color: #2C922C; font-style: italic;">% Paper starts on a right-hand page of the original book,</span>
<span style="color: #2C922C; font-style: italic;">% we don't need the final page of the paper before it.</span>
<span style="color: #800000; font-weight: normal;">\includepdf</span><span style="color: #E02020; ">[</span><span style="color: #C08020; font-weight: normal;">pages=1,
            angle=90,
            trim=<span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">0 0 0 135mm</span><span style="color: #E02020; ">}</span>
            </span><span style="color: #E02020; ">]{</span><span style="color: #2020C0; font-weight: normal;">Kamp78SemanticsVersusPragmatics.pdf</span><span style="color: #E02020; ">}</span>
&nbsp;
<span style="color: #2C922C; font-style: italic;">% For each double-page spread, rip out the left hand then</span>
<span style="color: #2C922C; font-style: italic;">% the right hand side. The trim was set by eye.</span>
<span style="color: #800000; font-weight: normal;">\foreach</span> <span style="color: #800000; font-weight: normal;">\page</span> in <span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">2,...,17</span><span style="color: #E02020; ">}</span> <span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">
  <span style="color: #800000; font-weight: normal;">\includepdf</span><span style="color: #E02020; ">[</span><span style="color: #C08020; font-weight: normal;">pages=<span style="color: #800000; font-weight: normal;">\page</span>,
              angle=90,
              trim=<span style="color: #E02020; ">{</span>0 135mm 0 0</span><span style="color: #E02020; ">}</span>
              </span><span style="color: #E02020; ">]{</span><span style="color: #2020C0; font-weight: normal;">Kamp78SemanticsVersusPragmatics.pdf</span><span style="color: #E02020; ">}</span>
  <span style="color: #800000; font-weight: normal;">\includepdf</span><span style="color: #E02020; ">[</span><span style="color: #C08020; font-weight: normal;">pages=<span style="color: #800000; font-weight: normal;">\page</span>,
              angle=90,
              trim=<span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">0 0 0 135mm</span><span style="color: #E02020; ">}</span>
              </span><span style="color: #E02020; ">]{</span><span style="color: #2020C0; font-weight: normal;">Kamp78SemanticsVersusPragmatics.pdf</span><span style="color: #E02020; ">}</span>
<span style="color: #E02020; ">}</span>
&nbsp;
<span style="color: #C00000; font-weight: normal;">\end</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;"><span style="color: #0000D0; font-weight: normal;">document</span></span><span style="color: #E02020; ">}</span></pre></div></div>


<p>(This also gives me a chance to <del datetime="2009-04-08T13:06:29+00:00">show off</del> try out my new <a href="http://wordpress.org/extend/plugins/wp-syntax/">code-formatting</a> plugin. Pretty!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/04/08/pdf-shuffling-in-latex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two kinds of ebooks</title>
		<link>http://www.logophile.org/blog/2009/03/21/two-kinds-of-ebooks/</link>
		<comments>http://www.logophile.org/blog/2009/03/21/two-kinds-of-ebooks/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 15:05:12 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ebooks]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=601</guid>
		<description><![CDATA[Suvudu.com recently gave away a bunch of ebooks1 in pdf format. I was pretty surprised by the reaction: people were angry because the free stuff wasn&#8217;t the right free stuff. They didn&#8217;t want pdf, that was pretty clear. Now suvudu are offering a bunch of other formats, but it got me thinking about why I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://suvudu.com/">Suvudu.com</a> recently <a href="http://www.suvudu.com/freelibrary/">gave away</a> a bunch of ebooks<sup>1</sup> in pdf format. I was pretty surprised by the <a href="http://www.suvudu.com/2009/03/visit-the-suvudu-free-library.html#comments">reaction</a>: people were <em>angry</em> because the free stuff wasn&#8217;t the right free stuff. They didn&#8217;t want pdf, that was pretty clear. Now suvudu are offering <a href="http://www.suvudu.com/2009/03/free-library-we-heard-you.html">a bunch of other formats</a>, but it got me thinking about why I like pdf ebooks, and why so many people seem not to.</p>

<p>Just like there&#8217;s a contrast between <em>compiled</em> and <em>interpreted</em> programming languages, there&#8217;s a contrast between compiled and interpreted ebook formats.<sup>2</sup> Pdf is at the compiled end, html is at the interpreted end. The two extremes are good at different things (just like compiled and interpreted languages); I&#8217;ll give some examples below, which point to why the reactions to the suvudu release were so extreme. The analogy with compiler technology suggests a third alternative: a level of <em>intermediate code</em> which is cheap to interpret but contains more compiled-in information than html and its relatives. As a concrete application, I&#8217;ll argue that <em>language-specific discretionary hyphenation</em> belongs in this layer.</p>

<p><span id="more-601"></span></p>

<p>The first complaint about pdf as an ebook format is always that it doesn&#8217;t support reflow: the page dimensions are fixed, and if they don&#8217;t match the size of the screen you&#8217;re reading on, that&#8217;s too bad.<sup>3</sup> Html, on the other hand, is delivered to your computer as an unbroken stream of text and it&#8217;s up to your web browser to decide how to split that text into lines that fit on your screen. (I&#8217;m ignoring css; it&#8217;s a separate technology from html proper and badly-written css tends to make html pages that behave more like pdf anyway.)</p>

<p>I could go on talking about &#8216;pdf-style&#8217; and &#8216;html-style&#8217; ebook formats, but there&#8217;s a more principled distinction available: pdf is a <em>compiled format</em> and html is an <em>interpreted format</em>. By that I mean that the bulk of the layout work for displaying a pdf document is done when the document is <em>created</em> (&#8216;compiled in&#8217; to the file you download), while the bulk of the layout work for html is done when the document is <em>viewed</em> (&#8216;interpreted online&#8217;).</p>

<p>Where the work gets done is also where the decisions get made &#8212; that is, where the control is. Here&#8217;s a reason a publisher might prefer to produce compiled rather than interpreted texts: they get to make all the decisions about how those texts appear. If a textbook is produced in both paper and ebook versions, it might be helpful if the page numbering is the same for both.<sup>4</sup> Comics, too, are unlikely to benefit much from interpreted delivery: in drawng a strip or a page spread the author will probably want to control all the decisions that might be left up to the interpreter in a more text-heavy document.</p>

<p>So far our analogy hasn&#8217;t done much for us. Now I want to put it to work, by introducing another reason to prefer compiled over interpreted documents: <em>typographic quality</em>.</p>

<p>Go have a look at Dario Taraborelli&#8217;s page <a href="http://nitens.org/taraborelli/latex"><em>The Beauty of LaTeX</em></a>; in particular, the section on <a href="http://nitens.org/taraborelli/latex#justification">line breaks, justification and hyphenation</a> (I&#8217;ll use &#8216;justification&#8217; as shorthand for all three of these processes). Taraborelli&#8217;s point is different to mine: he&#8217;s comparing different kinds of document compilers. And in fact some wysiwyg systems <em>do</em> do the clever and complicated things TeX does to get justification right; Adobe InDesign apparently has this feature, and for all I know the latest Microsoft Word might include it also. It&#8217;s unlikely, though, that we&#8217;ll get this kind of quality in an interpreted document.<sup>5</sup></p>

<p>Justification as TeX does it is a complex process of simultaneously adjusting all the lines in a paragraph, to get the best possible overall quality. This is expensive, among other reasons because it can involve backtracking: an early tentative decision about the first line of the paragraph might have to be reversed if it would force things to turn out badly on later lines. The more globally sensitive the algorithm is, the more expensive it gets (should it notice page breaks and avoid widows and orphans?) but the higher the typographic quality of the result.<sup>6</sup> Another thing making TeX&#8217;s justification expensive is that it invokes automatic hyphenation. Doing this right involves knowing which language the document is written in: different languages allow hyphenation at different points. It involves a complex system of (language-dependent) hyphenation rules, and some mechanism for marking by hand cases where these do not apply. All this is expensive not in processor time (as a backtracking line-break algorithm is) but in the complexity of the system itself. TeX, as a document compiler, can include hyphenation rules for many different languages and call on the particular one that is needed for the particular document being compiled. The same flexibility and scope is hard to imagine in a document interpreter that might have to run under severe hardware restrictions; it is no surprise that your web browser doesn&#8217;t even attempt hyphenation.</p>

<p>So here&#8217;s a reason why both publishers and readers might prefer compiled over interpreted documents. Publishers, because it lets them produce documents of high typographic quality &#8212; or more exactly, because it gives them <em>control</em> over the typographic quality of the documents they produce. A lot of design effort may go into a textbook, with clever placement of different elements on the page (main text, side notes, boxed &#8216;expert information&#8217; sections, pointers to related material and so on), careful choice of fonts and colour schemes and what-have-you. A publisher might easily refuse to put that work to waste in the electronic version of the book, by giving control over to the interpreter doing the display. There is rather less evidence, I&#8217;m afraid, for readers who appreciate typographic quality. The suvudu reaction shows that quite clearly: these folk wanted the <em>content</em>, and forget about whether the form is pretty or not.<sup>7</sup> That&#8217;s the interpreted-ebook market; high-quality typesetting is for the compiled-ebook market. I hope I&#8217;m not the only person in that market&#8230; (<a href="http://feedbooks.com/">Feedbooks</a> seem to be using LaTeX to generate pdfs with custom page dimensions, from free sources such as Project Gutenberg. Unfortunately the typographic quality is still low; there&#8217;s no way their offerings are a replacement for a LaTeX production that has had some human design attention. Still it&#8217;s a definite cut above html or plain text. If only they offered the LaTeX sources as well&#8230;)</p>

<p>I promised some concrete payoff from the compiled/interpreted analogy, and here it is. There&#8217;s a way to get some of the benefits of <em>both</em> approaches, in language design: you compile your handwritten programs to <em>intermediate code</em>, which gets interpreted on the platform the program runs on. The idea is the the <em>compiler</em> part of the process can do expensive things like type-checking and optimisation, while the <em>interpreter</em> can be tightly matched to the runtime environment. We shouldn&#8217;t stretch the analogy too far, but here&#8217;s a suggestion for something that belongs in the intermediate code level: discretionary hyphens.</p>

<p>Suppose we had a compiler that did TeX-style hyphenation analysis: it knew what language the document was written in, and it used hyphenation patterns for that language to find all the valid hyphenation points in the document. The intermediate-code level would be something like html, but with those hyphenation points marked with &#8216;discretionary hyphens&#8217;. And the interpreter level could use that hyphenation information to improve the quality of on-the-fly justification (reflow) based on changing the display area or font size; I imagine that just adding reliable hyphenation would already improve the line-by-line justification enormously.</p>

<h4>What was the point again?</h4>

<p>I&#8217;ve wandered, it&#8217;s true. Here are the main points. Compiled and interpreted formats (static design like pdf and reflowable like html) are good at different things, just like compiled and interpreted languages. Compiled formats put the control in the hands of the document designer, and give high typographic quality &#8212; at least when the designer puts the effort into making this happen! Interpreted formats respond to the details of the environment in which they&#8217;re viewed (display area, the user&#8217;s preferred fonts and font sizes, etc.). On the downside, compiled formats are inflexible (in particular, viewing them on devices with different display areas is usually unpleasant) while interpreted formats tend to produce low typographic quality and enforce boring design. The analogy suggests that &#8216;intermediate code&#8217; might be a way to increase the typographic quality of interpreted formats, and descretionary hyphenation is a specific example where this could work.</p>
<p>Notes:</p><ol class="footnotes"><li id="footnote_0_601" class="footnote">This was a great marketing move: they took several sf/f series that have proven popularity, and gave away the first book in each. Way to get new readers hooked: &#8220;First time&#8217;s free&#8230;&#8221;</li><li id="footnote_1_601" class="footnote">Sure, this is more general than ebooks. Let&#8217;s keep this concrete and specific though, otherwise I&#8217;ll end up  drowning in abstraction and generality.</li><li id="footnote_2_601" class="footnote">Actually pdf <em>can</em> do some sort of reflow, these days. Nobody understands or uses it yet though.</li><li id="footnote_3_601" class="footnote">My argument for pages instead of an unbroken column of text&#8230; will have to wait for another day.</li><li id="footnote_4_601" class="footnote">A Word file is a compiled document, but it&#8217;s one you can edit. The analogy only goes so far.</li><li id="footnote_5_601" class="footnote">Only to a point, presumably: we are automating the process of aesthetic judgement, which &#8212;I hope!&#8212; can only be approximated.</li><li id="footnote_6_601" class="footnote">As an aside, interpreted formats tend to be easier to convert losslessly than compiled ones, as anyone who has tried to copy-paste from pdf will attest. That&#8217;s another reason those folk may have preferred an interpreted format: it&#8217;s easier to share across different devices, by making the conversions as needed.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/03/21/two-kinds-of-ebooks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dumb DRM arguments: ebooks are not music</title>
		<link>http://www.logophile.org/blog/2009/03/13/dumb-drm-arguments-ebooks-are-not-music/</link>
		<comments>http://www.logophile.org/blog/2009/03/13/dumb-drm-arguments-ebooks-are-not-music/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 23:07:35 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drm]]></category>
		<category><![CDATA[ebooks]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=585</guid>
		<description><![CDATA[I&#8217;d like to celebrate read-an-ebook week with something positive, but I don&#8217;t have anything even half-prepared except some thoughts about DRM. That&#8217;s bad enough, but I won&#8217;t even be arguing against DRM for ebooks. I certainly won&#8217;t argue for it &#8212; I&#8217;m against the idea on principle, so if I thought it through and concluded [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to celebrate <a href="http://www.ebookweek.com/">read-an-ebook week</a> with
something positive, but I don&#8217;t have anything even half-prepared except
some thoughts about DRM. That&#8217;s bad enough, but I won&#8217;t even be arguing
against DRM for ebooks. I certainly won&#8217;t argue <em>for</em> it &#8212; I&#8217;m against
the idea on principle, so if I thought it through and concluded that it was
actually a smart move for publishers I would have to just keep my mouth
shut. There&#8217;s a facile comparison, though, between digital books and
digital music which suggests that DRM for ebooks is as dumb an idea as it
is for music (I did it myself a few days ago, which got me thinking about
the whole issue). I think that comparison is wrong, and that we need to
look more closely at the properties special to ebooks if we&#8217;re going to
make a reasoned and convincing argument against crippling them with
DRM. The first step is seeing clearly what makes DRM so spectacularly
unsuccessful for music, and checking whether those conditions carry over to
ebooks. That&#8217;s what this post is about.</p>

<p><span id="more-585"></span></p>

<h3>DRM for digital music cannot succeed.</h3>

<p>This idea is slowly getting taken seriously, partly due to overwhelming
evidence and partly due to the efforts of activists like Cory
Doctorow. Doctorow has a nice analogy, which you can read
<a href="http://craphound.com/msftdrm.txt">here</a>, showing why DRM is a basically
broken idea. Stripped of its rhetorics (which are the point, by the way; if you&#8217;re
unconvinced by my exposition I definitely recommend his) the idea is this:
DRM provider Alice tries to hide a piece of content from Carol (who isn&#8217;t
supposed to get access to it) while revealing it to Bob (who is). Only no
DRM system can prevent Bob and Carol being <em>the same person</em> (a criminal
intending to sell copies of Your Band&#8217;s Latest Album buys it legitimately;
now the DRM has to let him get it on his Bob days but not let him get it on
his Carol days).</p>

<p>There&#8217;s more subtlety to this idea than Doctorow admits, though. There are
a bunch of factors that make digital music particularly un-DRM-able (to
coin a barbarism). Here&#8217;s a list of factors ranging from highly
technological to highly social (the middle entries are sort of a mixture of
both):</p>

<ul>
<li>audio output makes pipelining easy</li>
<li>cds and the mp3 format are de-facto standards</li>
<li>digital music gets played on general-purpose computers</li>
<li>enormous numbers of people listen to music digitally</li>
<li>there are social assumptions that swapping music is ok</li>
<li>there&#8217;s a general perception of record labels as exploitative</li>
</ul>

<p>Let&#8217;s take them in order.</p>

<h3>Pipelining</h3>

<p>Doctorow&#8217;s analogy assumes that Bob and Carol both want the same thing from
their file. For music that&#8217;s a pretty safe bet, because there&#8217;s basically a
single bottom line: Bob (the legit listener) needs to be able to get the
music out; for reasons we&#8217;ll come back to in a moment, he almost certainly
needs to be able to get it out <em>digitally</em> (not just as audio output). But
that means Carol can take that output and <em>pipeline</em> it straight back in as
the input to something else: a cd burner, her mail client, a file-sharing
program, or whatever. (Actually even just having audio output would let her
do this to some extent, but she would lose some of the information in the
original, even with the best-quality gear.)</p>

<h3>De-facto standards</h3>

<p>Cds and the mp3 format are de-facto standards for digital music. That means
attempts to crack DRM can be pretty tightly focussed: get the music off a
protected cd, convert it to mp3, release it. And cds are pretty much
impossible to DRM effectively, because the same physical technology (a cd
drive) gets used both for data and for music cds, when they get played on
&#8230;</p>

<h3>General-purpose computers</h3>

<p>A cd can&#8217;t really tell when it spins up in your computer&#8217;s drive whether
it&#8217;s being pipelined into an <a href="http://amarok.kde.org/">excellent music
program</a> or into an mp3 ripper. I said above that
Carol would lose quality in re-recording from audio output, but if she can
put the cd into her laptop she doesn&#8217;t even have to do this. She just has
to trick whatever DRM system is on the CD into believing that she&#8217;s only
accessing the data for the purposes of playing the music; once she has the
data, she can do whatever she likes with it. And on a computer that lets
you install your own software (your laptop or pc, that is, but not your
iPod &#8212; at least not without some serious extra hassle) that&#8217;s going to be
very easy indeed.</p>

<h3>Enormous numbers of users</h3>

<p>I said &#8220;not without some serious hassle&#8221;; in the case of music, that
doesn&#8217;t actually matter so much. So many people listen to digital music
that there&#8217;s bound to be someone out there willing to put in the time and
effort to rip Your Band&#8217;s Latest Album, even if you make it
difficult. Having cds and playing-on-your-pc as a de-facto standard makes
this a lot easier, of course.</p>

<h3>Social attitudes</h3>

<p>The last two points are pretty fuzzy. It seems to me, based on the people I
know and the stuff I read online, that these are prevalent attitudes; there
might be quite some self-selection involved here though. That said, I see
two attitudes: the assumption that swapping music among friends is
basically ethically ok, and the assumption that little if any of the money
we pay for music gets back to the artists. These attitudes are pretty
clearly going to make folk more comfortable with sharing music without
paying for it, whether that&#8217;s &#8216;technically&#8217; illegal or not. It doesn&#8217;t even
matter if the perception of record labels as exploitative is <em>true</em>: the
assumption that this is the case makes people more comfortable with ripping
them off, since it&#8217;s only fair turnabout.</p>

<p>I don&#8217;t think I&#8217;ve said anything surprising so far. But let&#8217;s see how these
observations carry over to ebooks.</p>

<h3>No pipelining</h3>

<p>This is the most important point where the analogy between music and ebooks
breaks down. There is no equivalent to &#8216;audio output&#8217; for ebooks. You can
<em>always</em>, without anything more complicated than a piece of cable and the
right plugs, pipeline your music if you can play it. The equivalent
low-tech solution for an ebook would be photographing a screen displaying
each page in turn.</p>

<p>There&#8217;s another post hidden in that observation, about typographical
standards and the differences between pdf and on-the-fly adjustable
technologies like html, mobipocket and so on. But the basic point is: what
the reader needs to see is not necessarily what the reproducer needs to get
at.</p>

<p>That&#8217;s partly because there are as yet&#8230;</p>

<h3>No de-facto standards</h3>

<p>That&#8217;s not really true: there are <em>too many</em> de-facto standards, which is
as good as having none at all. There are a plethora of physical reading
devices out there, all with different screen dimensions and technical
qualities (e-ink, backlit screens, link-based navigation and
what-have-you). Content that is right for one won&#8217;t necessarily be right
for another &#8212; both in the trivial sense that a file for the Amazon Kindle
won&#8217;t be readable on a Sony Reader, and in the less trivial sense that a
pdf carefully formatted for the dimensions of the iLiad won&#8217;t be pleasant
to read on your netbook or laptop.</p>

<p>The lack of standards also means there isn&#8217;t a central clearing-house for
DRM-cracking efforts the way there is with music: rip the cd to mp3 and
you&#8217;re done, but get ahold of a pdf and you have to convert it to
half-a-dozen other formats before you&#8217;ve satisfied everyone. Tools like
<a href="http://calibre.kovidgoyal.net/">calibre</a> are going to change that,
eventually, but they haven&#8217;t gotten there yet.</p>

<h3>Special-purpose devices</h3>

<p>Part of that lack of standardisation comes from the variety of physical devices being used to read ebooks. The most important of those devices are dedicated ebook-reading systems like the Kindle or the iLiad. Amazon&#8217;s Kindle is a closed device: you&#8217;re not supposed to be able to run your own programs on it.<sup>1</sup> And, contra Doctorow, a DRM scheme based on such a device
<em>can</em> work. Again, it won&#8217;t work for music, because even plain audio output
can be pipelined; if you make the output quality too bad to use for
re-recording then the device is no good for listening to music any
more. But that&#8217;s not the case with an ebook reader: the output is an image
on the screen, and there&#8217;s no way to turn that into something as versatile
as the original file was if the device doesn&#8217;t let you get access to that
file.</p>

<h3>Limited numbers of users</h3>

<p>If enough people were using ebooks, even this wouldn&#8217;t matter. We would
have pirated editions consisting entirely of photographs of authorised
editions. It happened to Harry Potter, it could happen to everyone!</p>

<p>Well yeah, except that it won&#8217;t. There are too many books and too few
people who could be bothered to perform this incredibly tedious
work. (Unfortunately for DRM, incredibly popular titles like the Harry
Potter series <em>will</em> continue to attract this kind of insane effort, and
those are exactly the ones that ought otherwise to give the largest returns
for the publishers. But it&#8217;s not something for them to be worried about in
the general case.)</p>

<h3>Different attitudes?</h3>

<p>Finally, many attitudes to books are rather different at this point to
attitudes to music. This is again pretty fuzzy and probably extremly
personally biased. It&#8217;s also very much based on attitudes to <em>paper</em> books,
which might not carry over to ebooks at all. For instance, paper books are
for lending; you lend cds too, but the cd you lend can be copied while the
paper book can&#8217;t.<sup>2</sup> I doubt this attitude will carry over to ebooks, because by now we&#8217;re
completely used to the idea that data can be copied: I won&#8217;t want to &#8216;lend&#8217;
you my ebook because there&#8217;s no non-DRM reason why I should be deprived of
it while you&#8217;re reading it. Again my personal feeling (which is probably
not representative of any significant market) is that publishers don&#8217;t get
the same assumptions of evildoing that record labels do. Here I don&#8217;t see
any reason why electronic publishing should change matters; on the other
hand if major publishers get DRM-crazy and end up associated with the likes
of the RIAA, their credibility is going to take a hit (at least, and to
belabour point one final time, among the people who are already
writing and reading blog posts about DRM).</p>

<h3>What does it all mean?</h3>

<p>So I hope you&#8217;re convinced that ebooks are not like digital music, and that
DRM being completely braindead for the one does not automatically mean it
will be braindead for the other. In particular, the fact that you order
your Kindle ebook through the Kindle, download it using the Kindle&#8217;s own
network connection, and view it on the Kindle screen without ever having
access to the file itself, means that DRM is technologically feasible on
that platform. (Bob gets to read; Carol doesn&#8217;t get to copy.)</p>

<p>Yet there is hope! There are so many hardware options, and so many
competing standards, that restricting to Kindle-only (or Sony-only, or&#8230;)
for the sake of DRM will be a bad business move for publishers unless
Amazon manages to strangle all the competing alternatives before they get
serious market share. So long as you can get the original DRM-locked files
onto a general-purpose computer, the DRM is eventually going to collapse:
Bob needs access, but Carol can dress up as Bob. So we need to lobby for
the ability to share ebooks across multiple devices, to make our own
backups, whatever else gives us an excuse to get the file out of that
device and onto our own computers. If ebooks are sold under the <em>assumption</em>
that this is possible (and if enough people are reading them to make
cracking the DRM a fun hobby for someone), these DRM schemes will
eventually crumble.</p>

<p>What still has me seriously worried, I have to admit, is that I don&#8217;t yet
see a sensible alternative to DRM-based restrictions that still gives me
high-quality ebooks to read and that will be attractive to publishers. A
music junkie who will fill 150G with mp3s is going to carry on beyond
150G. I&#8217;m not sure that&#8217;s the case with books: one can only read so much in
a lifetime, and 150G might be pushing that limit. A swapping session with a
new friend might give me a couple of days worth of new music, including a
couple of albums that send me looking for more stuff by the same
people. The same session with someone with a nice library might mean that I
never have to buy anything by Gene Wolfe: not many people have complete
album collections for any but their favourite bands; I bet though that
everyone who reads beyond the first book of a series will accumulate all
the others if they&#8217;re easily available. It could keep me reading for the
next two or three months. That has to be a scary thought for publishers.</p>

<p>The most obvious alternative to DRM is simply to keep some titles
non-digital, or to provide them but in deliberately low-quality versions to
give an incentive to buy &#8216;the real thing&#8217;. I don&#8217;t like that alternative
any more than I like DRM: I want my ebooks to be of high typographic
quality. Next ebook post (which almost certainly will be after
read-an-ebook week is over, perhaps long over) will be about this issue,
and (again rather depressingly) about how often this is not the case:
demonstrably so at present, and I think likely also for quite a while to
come.</p>
<p>Notes:</p><ol class="footnotes"><li id="footnote_0_585" class="footnote">The iLiad, on the other hand, is largely open-source. I own one and it&#8217;s a fun thing to play with, as well as good for reading books on. Go the iLiad! Apart from the name, which is quite frankly embarrassing.</li><li id="footnote_1_585" class="footnote">Yes, it can, but not easily and the result is not nearly as pleasant an object as the original. It still happens among students for textbooks, though, that&#8217;s for sure.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/03/13/dumb-drm-arguments-ebooks-are-not-music/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Downtime, fixed (wp-cache and dreamhost)</title>
		<link>http://www.logophile.org/blog/2009/01/15/downtime-fixed-wp-cache-and-dreamhost/</link>
		<comments>http://www.logophile.org/blog/2009/01/15/downtime-fixed-wp-cache-and-dreamhost/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 10:28:15 +0000</pubDate>
		<dc:creator>tikitu</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[schadenfreude]]></category>

		<guid isPermaLink="false">http://www.logophile.org/blog/?p=550</guid>
		<description><![CDATA[Apologies for the downtime, if anyone noticed. Short explanation (i.e., geekery) follows. My hosting service Dreamhost puts several users on a single machine. That means if someone uses up lots of cpu resources with a hungry process, the others suffer. So Dreamhost monitors processes and kills the ones that seem to be making trouble. I&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>Apologies for the downtime, if anyone noticed. Short explanation (i.e., geekery) follows.</p>

<p><span id="more-550"></span></p>

<p>My hosting service <a href="http://www.dreamhost.com/">Dreamhost</a> puts several users on a single machine. That means if someone uses up lots of cpu resources with a hungry process, the others suffer. So Dreamhost monitors processes and kills the ones that seem to be making trouble.</p>

<p>I&#8217;d read lots of folk saying that a WordPress blog can be resource-hungry, and that it&#8217;s smart to install a caching plugin to slim things down a bit. <a href="http://mnm.uib.es/gallir/wp-cache-2/">Wp-cache</a> gets a lot of good press, so I installed it.</p>

<p><a href="http://www.quickonlinetips.com/archives/2007/10/wp-cache-bug-strikes-back-site-down-17-hours/">Unfortunately it has a bug</a>. So the caching module that I set up to ensure that Dreamhost wouldn&#8217;t need to clobber my processes&#8230; made Dreamhost clobber my processes. Sigh.</p>

<p>Probably I don&#8217;t need caching anyway. Please don&#8217;t slashdot this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logophile.org/blog/2009/01/15/downtime-fixed-wp-cache-and-dreamhost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
