<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>VXLabs</title>
	
	<link>http://vxlabs.com</link>
	<description>Visual Nerd Labs</description>
	<lastBuildDate>Thu, 01 Dec 2011 08:33:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/vxlabs" /><feedburner:info uri="vxlabs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>vxlabs</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>How to get Zotero IEEE style NOT to abbreviate with et al. in the bibliography</title>
		<link>http://vxlabs.com/2011/12/01/how-to-get-zotero-ieee-style-not-to-abbreviate-with-et-al-in-the-bibliography/</link>
		<comments>http://vxlabs.com/2011/12/01/how-to-get-zotero-ieee-style-not-to-abbreviate-with-et-al-in-the-bibliography/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 08:33:03 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[abbreviation]]></category>
		<category><![CDATA[bibliography]]></category>
		<category><![CDATA[et al]]></category>
		<category><![CDATA[fixed]]></category>
		<category><![CDATA[ieee]]></category>
		<category><![CDATA[zotero]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=142</guid>
		<description><![CDATA[In my view, Zotero is currently the best reference manager available, and it&#8217;s also completely open source! I had one niggling problem though with version 2.1.10 (latest stable at the time of this writing): When I would export (or Quick &#8230; <a href="http://vxlabs.com/2011/12/01/how-to-get-zotero-ieee-style-not-to-abbreviate-with-et-al-in-the-bibliography/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In my view, Zotero is currently the best reference manager available, and it&#8217;s also completely open source!</p>
<p>I had one niggling problem though with version 2.1.10 (latest stable at the time of this writing): When I would export (or Quick Copy) references in IEEE style, it would abbreviate the author list with &#8220;First Author, et al.&#8221; if there were seven (7) or more authors. When I&#8217;m building a bibliography list, this is of course never the right thing to do.</p>
<p>Here&#8217;s the simple workaround for this problem:</p>
<ul>
<li>Go to Preferences | Advanced and click on the &#8220;Show Data Directory&#8221; button.</li>
<li>Edit styles/ieee.csl with your favourite text editor.</li>
<li>Look for the line starting with &lt;bibliography et-al-min=&#8221;7&#8243; &#8230; and change the 7 to a higher number, 100 for example.</li>
</ul>
<div>Let me know in the comments if this helped!</div>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/12/01/how-to-get-zotero-ieee-style-not-to-abbreviate-with-et-al-in-the-bibliography/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Windows console that does not suck</title>
		<link>http://vxlabs.com/2011/08/28/a-windows-console-that-does-not-suck/</link>
		<comments>http://vxlabs.com/2011/08/28/a-windows-console-that-does-not-suck/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 08:37:10 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[cmd.exe]]></category>
		<category><![CDATA[command interpreter]]></category>
		<category><![CDATA[command-line]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[console2]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[git bash]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=132</guid>
		<description><![CDATA[We&#8217;ve all been there: You&#8217;re used to the terminal on Linux or OSX, and then for some or other reason you need to work on Windows and you&#8217;re confronted with the half-baked monstrosity that is cmd.exe: To summarise: You can &#8230; <a href="http://vxlabs.com/2011/08/28/a-windows-console-that-does-not-suck/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve all been there: You&#8217;re used to the terminal on Linux or OSX, and then for some or other reason you need to work on Windows and you&#8217;re confronted with the <a title="enlightening Wikipedia page on the Win32 console" href="http://en.wikipedia.org/wiki/Win32_console">half-baked monstrosity that is cmd.exe</a>:</p>
<div id="attachment_133" class="wp-caption alignnone" style="width: 310px"><a href="http://vxlabs.com/wp-content/uploads/2011/08/cmd_screenie.jpg"><img class="size-medium wp-image-133" title="cmd_screenie" src="http://vxlabs.com/wp-content/uploads/2011/08/cmd_screenie-300x151.jpg" alt="" width="300" height="151" /></a><p class="wp-caption-text">It&#39;s 2011 and this is Windows 7: Why does the console still make me want to gnaw off my fingers?</p></div>
<p>To summarise: You can only resize the window vertically (so you&#8217;re always restricted to 80 characters width which is just idiotic on modern widescreen displays), copy and paste is so painful that you&#8217;ll wish that they&#8217;d rather just not bothered with it in the first place and the cmd.exe interpreter itself is primitive when compared with any modern unix shell.</p>
<p>Enter the two-pronged solution of <a title="Console2 website" href="http://sourceforge.net/projects/console/">Console2</a> and Git bash! Console2 is a console that solves the UI problems (resizing! copy and paste! terminal transparency! tabs!) and you can use it together with any combination of command line interpreters, such as for example the existing cmd.exe, bash or anything else.</p>
<p>Here&#8217;s my setup, configured with Git bash (you get this for free with the <a title="Windows git installer" href="http://code.google.com/p/msysgit/">Windows git installer</a>, for this purpose it&#8217;s better than Cygwin as it&#8217;s a touch closer to Windows) as well as plain old cmd.exe. To configure a Git bash tab, set Shell to &#8220;C:\Windows\SysWOW64\cmd.exe /c &#8220;&#8221;C:\Program Files (x86)\Git\bin\sh.exe&#8221; &#8211;login -i&#8221; (including all quotes) and Startup dir to %HOMEDRIVE%%HOMEPATH%. I&#8217;ve also configured Ctrl-Alt-T to invoke Console2. With shift-mouse-drag I can select text (nice editor select, not cmd.exe block select, ptooey!), and I&#8217;ve set Ctrl-Shift-C and Ctrl-Shift-V to copy and paste so it&#8217;s like the Gnome terminal on Linux. Behold:</p>
<div id="attachment_134" class="wp-caption alignnone" style="width: 310px"><a href="http://vxlabs.com/wp-content/uploads/2011/08/console2_screenie.jpg"><img class="size-medium wp-image-134" title="console2_screenie" src="http://vxlabs.com/wp-content/uploads/2011/08/console2_screenie-300x227.jpg" alt="" width="300" height="227" /></a><p class="wp-caption-text">Console2 makes the pain go away.</p></div>
<p>My Windows experience is a lot more bearable now, perhaps even slightly pleasant! Did I just say that?!</p>
<h3>Alternatives</h3>
<ul>
<li>PowerShell replaces cmd.exe, but by default still runs inside the Windows console. Still much suckage in other words, plus that I don&#8217;t feel compelled to learn PS yes.</li>
<li>Cygwin mintty is also often cited as a console replacement, but seems to cause problems (<a title="mintty git issues" href="https://github.com/spraints/git-tfs/issues/53">for example with git</a>) as it&#8217;s not a full Windows console.</li>
<li>Cygwin itself is really fantastic, but due to that POSIX compatibility layer which is otherwise a useful thing, differs too much from the native Windows goodies so that sometimes <a title="stackoverflow question that mentions windows issues with cygwin" href="http://stackoverflow.com/questions/440269/whats-a-good-alternative-windows-console">native Windows behaviour is interfered with</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/08/28/a-windows-console-that-does-not-suck/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to stop accidentally answering or declining calls when trying to fish your HTC Sense Android phone from your pocket</title>
		<link>http://vxlabs.com/2011/07/20/how-to-stop-accidentally-answering-or-declining-calls-when-trying-to-fish-your-htc-sense-android-phone-from-your-pocket/</link>
		<comments>http://vxlabs.com/2011/07/20/how-to-stop-accidentally-answering-or-declining-calls-when-trying-to-fish-your-htc-sense-android-phone-from-your-pocket/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 21:43:30 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[accidental answering]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[htc desire z]]></category>
		<category><![CDATA[htc sense]]></category>
		<category><![CDATA[swipe to answer]]></category>
		<category><![CDATA[widgetlocker]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=119</guid>
		<description><![CDATA[As you know by now, I really do love my HTC Desire Z phone. However, besides the miserable battery life which one tries to live with because it&#8217;s otherwise such a kickass phone, a major gripe was HTC Sense&#8217;s vertical &#8230; <a href="http://vxlabs.com/2011/07/20/how-to-stop-accidentally-answering-or-declining-calls-when-trying-to-fish-your-htc-sense-android-phone-from-your-pocket/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="my in-depth and nerdy review of the HTC Desire Z" href="/2011/01/22/htc-desire-z-an-in-depth-and-nerdy-review/">As you know by now</a>, I really do love my HTC Desire Z phone. However, besides the miserable battery life which one tries to live with because it&#8217;s otherwise such a kickass phone, a major gripe was HTC Sense&#8217;s vertical swipe to answer or decline an incoming phone call. This has resulted in me accidentally answering or declining numerous incoming calls as I was trying to fish the phone out of my jeans pocket, as this fishing generally causes one&#8217;s fingers to slide vertically over the screen. The advice of turning the phone around so the screen faces one&#8217;s leg also doesn&#8217;t cut it, because the screen could get scratched on the various small studs one often finds in that area, but more importantly because I don&#8217;t like following semi-working rules like that.</p>
<p>I finally found <a title="deetsvl forum posting" href="http://community.htc.com/na/htc-forums/android/f/94/p/4472/53577.aspx#53577">a forum posting by a user named deetsvl</a> with a solution to this problem that I&#8217;ve confirmed works perfectly on this HTC Desire Z. Behold:</p>
<div id="attachment_124" class="wp-caption alignnone" style="width: 310px"><a href="http://vxlabs.com/wp-content/uploads/2011/07/widgetlocker.jpg"><img class="size-medium wp-image-124" title="widgetlocker" src="http://vxlabs.com/wp-content/uploads/2011/07/widgetlocker-300x146.jpg" alt="" width="300" height="146" /></a><p class="wp-caption-text">All hail WidgetLocker, solution to the HTC Sense accidental answering problem!</p></div>
<p><a title="Widget Locker app in the market" href="https://market.android.com/details?id=com.teslacoilsw.widgetlocker">WidgetLocker</a> going to cost you a whole € 1.41, but it does the trick just perfectly, <strong>if</strong> you remember to change the following setting: <em>In &#8220;Settings | Popups&#8221;, check &#8220;Hide Incoming Call&#8221;</em>. When you receive a call, you&#8217;ll have to slide horizontally first to unlock WidgetLocker, then the normal vertical business for answering / declining a call. If you manage to do <em>that</em> accidentally, I know a good side-show agent, so give me a call. On my Desire Z, I also checked &#8220;Settings | Buttons &amp; Inputs | Slide Keyboard Unlock&#8221; so that I don&#8217;t have to unlock Widget Locker when suavely flick-sliding open the keyboard on this baby.</p>
<p>I hope that you enjoy your new-found only-answering-and-declining-calls-that-you-really-want-to freedom!</p>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/07/20/how-to-stop-accidentally-answering-or-declining-calls-when-trying-to-fish-your-htc-sense-android-phone-from-your-pocket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 11.04 Natty Narwhal Annoyances (Dell E6410 with NVS 3100m GPU)</title>
		<link>http://vxlabs.com/2011/05/15/ubuntu-11-04-natty-narwhal-annoyances-dell-e6410-with-nvs-3100m-gpu/</link>
		<comments>http://vxlabs.com/2011/05/15/ubuntu-11-04-natty-narwhal-annoyances-dell-e6410-with-nvs-3100m-gpu/#comments</comments>
		<pubDate>Sun, 15 May 2011 13:24:04 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[11.04]]></category>
		<category><![CDATA[6200]]></category>
		<category><![CDATA[annoyances]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[dell e6410]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[natty]]></category>
		<category><![CDATA[resume]]></category>
		<category><![CDATA[slow scroll]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=106</guid>
		<description><![CDATA[I recently upgraded my Dell E6410 with NVS 3100m GPU laptop from Ubuntu 10.10 (Maverick Meerkat) to 11.04 (Natty Narwhal), and I can&#8217;t shake this feeling that the distribution has taken a few steps back. I&#8217;m not even referring to &#8230; <a href="http://vxlabs.com/2011/05/15/ubuntu-11-04-natty-narwhal-annoyances-dell-e6410-with-nvs-3100m-gpu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently upgraded my Dell E6410 with NVS 3100m GPU laptop from Ubuntu 10.10 (Maverick Meerkat) to 11.04 (Natty Narwhal), and I can&#8217;t shake this feeling that the distribution has taken a few steps back. I&#8217;m not even referring to the new Unity desktop, but to some super-irritating annoyances I had to fix or work around before being able to use the system. These annoyances were not present in 10.10, it had a whole different collection. <img src='http://vxlabs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Wireless N connects, but no packets get through</h3>
<p>The first annoyance was when I successfully connected to my wireless N access point, but couldn&#8217;t get a single packet through. After much searching, it turns out there&#8217;s a bug in the firmware for the Centrino Advanced-N 6200 wireless adapter that keeps it from getting <em>any</em> data through.</p>
<p>The <strong>solution</strong> is to disable wireless N on your laptop by creating a file ﻿etc/modprobe.d/inteldisablen.conf with the following contents:</p>
<pre class="brush: bash; title: ; notranslate">options iwlagn 11n_disable50=1 11n_disable=1</pre>
<p>and then to reboot. If you don&#8217;t want to reboot, just rmmod and modprobe the iwlagn kernel module. I&#8217;ve confirmed that this fix works.</p>
<h3>Google Chrome scrolls excruciatingly slowly</h3>
<p>After resuming and suspending, certain 2D and GPU-assisted graphics operations slow down. Scrolling in Chrome, even on a simple Google results page, is excruciatingly slow with head-explosion-levels of lag.</p>
<p>The <strong>solution</strong> is to disable hyperthreading, or at least to disable a number of CPU cores, at suspend and re-enable at resume. My laptop i5 CPU has 2 real cores, and thus 4 virtual cores due to hyperthreading. I&#8217;m using the following script, taken from <a title="nvnews forum thread with slow resume work-around" href="http://www.nvnews.net/vbulletin/showthread.php?t=158091">this forum thread</a> to do the necessary core disabling / enabling automatically:</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/sh

# Disable hyper-threading processor cores on suspend and hibernate, re-enable them
# on resume. Presumably helps for buggy nvidia behaviour.
# save this file as /etc/pm/sleep.d/20_core_i5_disable_cores and make excutable
# with chmod +x /etc/pm/sleep.d/20_core_i5_disable_cores

# from: http://www.nvnews.net/vbulletin/showthread.php?t=158091

case $1 in
        hibernate|suspend)
                echo 0 &gt; /sys/devices/system/cpu/cpu1/online
                echo 0 &gt; /sys/devices/system/cpu/cpu3/online
                ;;

        thaw|resume)
                echo 1 &gt; /sys/devices/system/cpu/cpu1/online
                echo 1 &gt; /sys/devices/system/cpu/cpu3/online
                ;;
esac
</pre>
<p>I&#8217;ve confirmed both the slow-down behaviour and the working of the fix.</p>
<h3>Eclipse scrollbars don&#8217;t work</h3>
<p>Natty&#8217;s new overlay scrollbars screw with Eclipse&#8217;s scrollbars, leaving you with 100% non-working scrollbars! You can either <a title="how to disable ubuntu 11.04 overlay scrollbars" href="http://www.webupd8.org/2011/04/how-to-disable-overlay-scrollbars-in.html">disable the overlay scrollbars completely</a>, or comment out the GDK_NATIVE_WINDOWS line close to the start of the /usr/bin/eclipse shell script:</p>
<pre class="brush: bash; title: ; notranslate">
#export GDK_NATIVE_WINDOWS=true
</pre>
<p>On my setup, this fix works most of the time.</p>
<h3>Conclusion</h3>
<p>It&#8217;s a shame that these things don&#8217;t work out of the box, as some of them had been reported long before the Natty release. Before I forget, if you install 11.04 on this specific laptop, you might also have to follow <a title="Ubuntu 10.10 x86_64 on your Dell E6410 with NVS 3100m GPU" href="/2010/11/30/ubuntu-10-10-x86_64-on-your-dell-e6410-with-nvs-3100m-gpu/">my Ubuntu 10.10 howto</a> if you see a black screen at bootup or resume.</p>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/05/15/ubuntu-11-04-natty-narwhal-annoyances-dell-e6410-with-nvs-3100m-gpu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Django Book 2.0 in MobiPocket / Kindle format</title>
		<link>http://vxlabs.com/2011/04/25/the-django-book-2-0-in-mobipocket-kindle-format/</link>
		<comments>http://vxlabs.com/2011/04/25/the-django-book-2-0-in-mobipocket-kindle-format/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 14:18:45 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[calibre]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[djangobook]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[mobipocket]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=97</guid>
		<description><![CDATA[I wanted to read the web preview of the Django Book&#8217;s second edition on my Kindle. Besides the fact that all image links are broken on that website and have apparently been so for some time, I prefer to have &#8230; <a href="http://vxlabs.com/2011/04/25/the-django-book-2-0-in-mobipocket-kindle-format/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I wanted to read the <a title="djangobook 2.0 web preview" href="http://djangobook.com/en/2.0/">web preview of the Django Book&#8217;s second edition</a> on my Kindle. Besides the fact that all image links are broken on that website and have apparently been so for some time, I prefer to have these things in the DRM-free MobiPocket / Kindle format. Of course I couldn&#8217;t find this anywhere, so I rolled my own based on the book&#8217;s SVN repository.</p>
<p>On this page you can download the <a title="MobiPocket version of The Django Book 2.0" href="http://vxlabs.com/wp-content/uploads/2011/04/The-Django-Book-2.0-Adrian-Holovaty.mobi_.zip">MobiPocket version of the book</a> and the <a title="HTML source files used for making the MobiPocket" href="http://vxlabs.com/wp-content/uploads/2011/04/The-Django-Book-2.0-Adrian-Holovaty.zip">HTML source files</a> I generated to make it. You can also read on for the skinny on how you can do this yourself.</p>
<p>This procedure works best on a unix-like machine, as we&#8217;re going to use grep and sed along with some Python.</p>
<p>1. We start by doing a checkout of the reStructuredText sources of the book, moving the linked graphics into the same directory as the reStructuredText txt files and then creating a grepindex.txt file that will serve as the basis for our table of contents index.txt:</p>
<pre class="brush: bash; title: ; notranslate">
svn co http://djangobook.com/svn/branches/2.0/ 20svn
cd 20svn
find graphics/ -name *.png -exec mv {} . \;
grep -h &quot;^Chapter [0-9]*:&quot; *.txt &gt; grepindex.txt
</pre>
<p>2. The grepindex.txt will now be converted to something more reStructuredText-like using this script, called grepindex2index.py:</p>
<pre class="brush: python; title: ; notranslate">
# first do:
# grep -h &quot;^Chapter [0-9]*:\|^Appendix [A-Z]:&quot; *.txt &gt; grepindex.txt
# then:
# python grepindex2index.py grepindex.txt &gt; index.txt

import re
import sys

rst_header = &quot;&quot;&quot;
===================
The Django Book 2.0
===================

Copyright 2006, 2007, 2008, 2009 Adrian Holovaty and Jacob Kaplan-Moss.
This work is licensed under the GNU Free Document License.

This ebook version was prepared by Charl Botha &lt;http://charlbotha.com/&gt; from
the SVN at http://djangobook.com/svn/branches/2.0/ on 2011-04-25, and is
hosted by &lt;http://vxlabs.com/&gt;.

&quot;&quot;&quot;

def main():
    f1 = open(sys.argv[1])
    print rst_header

    # this will match on &quot;Chapter 10: the title&quot; or &quot;Appendix B: another title&quot;
    # groups 0: chapter 10 or appendix A; 1: 10 (or None), 2: A (or None), 3: title
    pat = re.compile('(^Chapter\s*([0-9]*)|^Appendix\s*([A-Z])):\s*(.*)$')
    chapters = []
    appendices = []
    for l in f1:
        # Chapter 10: Advanced Models -&gt; `Chapter 10: Advanced Models &lt;chapter10.html&gt;`_
        mo = pat.match(l)

        if mo.groups()[1] is not None:
            chapters.append(&quot;* `Chapter %s: %s &lt;chapter%02d.html&gt;`_&quot; % (mo.groups()[1],mo.groups()[3],int(mo.groups()[1])))

        else:
            appendices.append(&quot;* `Appendix %s: %s &lt;appendix%s.html&gt;`_&quot; % (mo.groups()[2],mo.groups()[3],mo.groups()[2]))

    print &quot;\n&quot;.join(chapters)
    print &quot;\n&quot;.join(appendices)

if __name__ == &quot;__main__&quot;:
    main()
</pre>
<p>Save this to a script called grepindex2index.py, then invoke it with:</p>
<pre class="brush: bash; title: ; notranslate">
python grepindex2index.py grepindex.txt &gt; index.txt
</pre>
<p>3. We&#8217;ll then proceed to fix all chapter references with the following bit of sed:</p>
<pre class="brush: bash; title: ; notranslate">
sed -i &quot;s/\.\.\/\(chapter[0-9]*\)\//\1.html/g&quot; chapter*txt
</pre>
<p>(this will change all &#8220;../chapter??/&#8221; links to just &#8220;chapter??.html&#8221;)</p>
<p>4. Everything is now ready to be converted to HTML:</p>
<pre class="brush: bash; title: ; notranslate">
for i in *.txt; do rst2html $i `echo $i | cut -f 1 -d .`.html; done
</pre>
<p>5. After downloading this <a title="django desktop background image" href="http://media.djangoproject.com/img/desktops/djangodesktop-1024x768.jpg">django desktop background</a> as cover image, I dragged and dropped the top-level index.html file onto the free <a href="http://calibre-ebook.com/">Calibre software</a> to import it, and then used the edit metadata function to set the cover image. After this, I converted the imported files to MobiPocket remembering to add the word &#8220;appendix&#8221; to the chapter detection xpath expression in the &#8220;structured detection&#8221; section of the conversion dialogue.</p>
<p>That&#8217;s all there&#8217;s to it! Have a good read.</p>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/04/25/the-django-book-2-0-in-mobipocket-kindle-format/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Don’t buy HomePlug / Powerline ethernet adapters</title>
		<link>http://vxlabs.com/2011/03/02/dont-buy-homeplug-adapters/</link>
		<comments>http://vxlabs.com/2011/03/02/dont-buy-homeplug-adapters/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 23:14:16 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[200AV]]></category>
		<category><![CDATA[homeplug]]></category>
		<category><![CDATA[msi epower]]></category>
		<category><![CDATA[plc]]></category>
		<category><![CDATA[powerline]]></category>
		<category><![CDATA[sucks]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=78</guid>
		<description><![CDATA[(Post summary: The real-world throughput of current generation Homeplug AV 200 Mbit/s powerline ethernet adapters in a modern house is woefully inadequate. Even wireless is much to be preferred, and can be had for cheaper. Read below for why.) Based &#8230; <a href="http://vxlabs.com/2011/03/02/dont-buy-homeplug-adapters/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>(Post summary: The real-world throughput of current generation Homeplug AV 200 Mbit/s powerline ethernet adapters in a modern house is woefully inadequate. Even wireless is much to be preferred, and can be had for cheaper. Read below for why.)</em></p>
<p>Based on the superb price / performance ratio of the MSI ePower 200AV II kit as extolled by <a title="nl.hardware.info review of 32 powerline adapters" href="http://nl.hardware.info/reviews/1677/test-32-powerline-adapters">this comparative review</a> (32 powerline adapters were tested), and especially the fact that in the test setup these adapters managed to attain 32 Mbit/s even in the <a title="nl.hardware.info powerline test bad case scenario" href="http://nl.hardware.info/reviews/1677/6/test-32-powerline-adapters-testresultaten-twee-stroomgroepen---bad-case">bad case scenario</a> (two different circuits, 100 metres of cable separating the two adapters), I purchased the MSI ePower 200AV+ II kit to replace a wireless link I currently have in my house between the second and third floors. Based on <a title="iperf on windows page" href="http://linhost.info/2010/02/iperf-on-windows/">iperf</a> measurements, the wireless link currently manages around 22Mbit/s of throughput. Because the two power sockets I was planning to use are on the same circuit, I thought that I could improve on this existing connection with the two powerline adapters. Little did I know&#8230;</p>
<div id="attachment_79" class="wp-caption alignnone" style="width: 310px"><a href="http://vxlabs.com/wp-content/uploads/2011/03/msi_epower200avp_box.jpg"><img class="size-medium wp-image-79" title="msi_epower200avp_box" src="http://vxlabs.com/wp-content/uploads/2011/03/msi_epower200avp_box-300x254.jpg" alt="" width="300" height="254" /></a><p class="wp-caption-text">The MSI ePower 200AV+ kit still nicely in its box.</p></div>
<p>After taking delivery of the new kit, I started testing with both adapters in the same room. One thing that can be said for this hardware, is that it&#8217;s really plug and play. One adapter in wall-socket and connected to first floor ethernet hub, second adapter in wall-socket and connected to my laptop, and my laptop was online. No mess no fuss.</p>
<p>The first nasty surprise appeared as I installed and started up up the software that came in the box (version 5.0). It claimed not to find any homeplug adapters on the network, although the laptop I was running it on was directly connected to one of the PLCs. So I downloaded version 6.0 of the software, only available in German, from MSI&#8217;s website and that did manage to see both adapters. At least now I was able to configure both the PLCs (in German&#8230;) and set the network name to something private for security&#8217;s sake.</p>
<p>After moving one of the adapters to my study on the third floor and connecting it to a Linux server there, I could start running iperf on the server and my laptop on the second floor for testing. The two PLC adapters were now in the same-circuit sockets I was intending to use. Below is the output of three runs of iperf:</p>
<pre class="brush: plain; title: ; notranslate">
C:\Users\cpbotha\Downloads&gt;iperf -c 192.168.1.126
------------------------------------------------------------
Client connecting to 192.168.1.126, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[148] local 192.168.1.38 port 49921 connected with 192.168.1.126 port 5001
[ ID] Interval       Transfer     Bandwidth
[148]  0.0-10.0 sec  10.7 MBytes  8.95 Mbits/sec

C:\Users\cpbotha\Downloads&gt;iperf -c 192.168.1.126
------------------------------------------------------------
Client connecting to 192.168.1.126, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[148] local 192.168.1.38 port 49987 connected with 192.168.1.126 port 5001
[ ID] Interval       Transfer     Bandwidth
[148]  0.0-10.0 sec  11.2 MBytes  9.41 Mbits/sec

C:\Users\cpbotha\Downloads&gt;iperf -c 192.168.1.126
------------------------------------------------------------
Client connecting to 192.168.1.126, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[148] local 192.168.1.38 port 49988 connected with 192.168.1.126 port 5001
[ ID] Interval       Transfer     Bandwidth
[148]  0.0-10.0 sec  10.4 MBytes  8.70 Mbits/sec
</pre>
<p>Yes ladies and  gentlemen, that&#8217;s an absolutely miserable 9 Mbit/s (think 1 Mbyte/s&#8230;) between two MSI ePower 200AV+ II adapters on the same circuit, on different floors in a house that was built 5 years ago. For your reference, my wireless link (two Sitecom 300N X2 access points in Wireless Distribution Mode) easily manages 22 Mbit/s <em>effective throughput</em> right through a reinforced concrete floor.</p>
<p>MSI&#8217;s own utility claimed the following (I&#8217;ve cut out things that you don&#8217;t need to see):</p>
<pre class="brush: plain; title: ; notranslate">
Rate 18/39
Vendor Atheros
Firmware INT6400-MAC-4-0-4011-00-3430-20090501-FINAL-C
Übertragungsrate hoch 174.00
Übertragungsrate niedrig 15.00
</pre>
<p>&#8230; with its reported link speed varying between 17 and 35 Mbit/s.</p>
<p>I tried the third floor PLC adapter on various different sockets, the results were similarly depressing.</p>
<p>As if the miserable throughput was not reason enough to avoid powerline adapters, note the following mechanical issue:</p>
<div id="attachment_80" class="wp-caption alignnone" style="width: 194px"><a href="http://vxlabs.com/wp-content/uploads/2011/03/msi_epower200avp_in_socket.jpg"><img class="size-medium wp-image-80" title="msi_epower200avp_in_socket" src="http://vxlabs.com/wp-content/uploads/2011/03/msi_epower200avp_in_socket-184x300.jpg" alt="" width="184" height="300" /></a><p class="wp-caption-text">When the adapter sits in a double socket, the only thing that&#39;ll fit in the free socket is a really thin plug as the upper part of the adapter is flush with the socket and covers a fair part of the other hole.</p></div>
<p>As you can see in the caption, although the PLC has a socket of its own, it covers the neighbouring socket in a double-socket setup to such an extent that you can only fit a really thin plug in the neighbouring socket.</p>
<p>To conclude: Homeplugs perform really well in a test environment, even when different circuits are introduced and metres of extra cable are inserted. However, what the tests often fail to take into account, is the fact that people actually make use of other electrical devices besides homeplugs (!!) and that these all introduce noise into the home grid that apparently severely affect powerline ethernet performance. Perhaps in your house things work out differently, but my advice would be to steer clear of powerline adapters (unless you can borrow a pair to test with), opting of course for ethernet cables whenever this is possible and for wireless otherwise.</p>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/03/02/dont-buy-homeplug-adapters/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sipura / Linksys / Cisco SPA3102 Voice Gateway in The Netherlands</title>
		<link>http://vxlabs.com/2011/02/05/sipura-linksys-cisco-spa3102-voice-gateway-in-the-netherlands/</link>
		<comments>http://vxlabs.com/2011/02/05/sipura-linksys-cisco-spa3102-voice-gateway-in-the-netherlands/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 21:13:23 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[betamax]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[dialplan]]></category>
		<category><![CDATA[dutch]]></category>
		<category><![CDATA[europe]]></category>
		<category><![CDATA[kpn]]></category>
		<category><![CDATA[linksys]]></category>
		<category><![CDATA[netherlands]]></category>
		<category><![CDATA[sip]]></category>
		<category><![CDATA[sipura]]></category>
		<category><![CDATA[spa3102]]></category>
		<category><![CDATA[voip]]></category>
		<category><![CDATA[ziggo]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=65</guid>
		<description><![CDATA[After recently spending some hours configuring my new Cisco SPA3102 Voice Gateway with a Betamax SIP provider (voipbuster / voipstunt / voipcheap / and so forth, see http://www.backsla.sh/betamax for a full list of all Betamax providers) and the Dutch PSTN &#8230; <a href="http://vxlabs.com/2011/02/05/sipura-linksys-cisco-spa3102-voice-gateway-in-the-netherlands/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After recently spending some hours configuring my new <a title="cisco spa3102 product page" href="http://www.cisco.com/en/US/products/ps10027/index.html">Cisco SPA3102 Voice Gateway</a> with a Betamax SIP provider (voipbuster / voipstunt / voipcheap / and so forth, see <a href="http://www.backsla.sh/betamax">http://www.backsla.sh/betamax</a> for a full list of all Betamax providers) and the Dutch PSTN system, I thought I&#8217;d try and make your life easier by documenting the most important of the settings.</p>
<div id="attachment_70" class="wp-caption alignnone" style="width: 231px"><a href="http://vxlabs.com/wp-content/uploads/2011/02/spa3102.jpg"><img class="size-full wp-image-70" title="spa3102" src="http://vxlabs.com/wp-content/uploads/2011/02/spa3102.jpg" alt="" width="221" height="290" /></a><p class="wp-caption-text">With this box you can stick it to the man!</p></div>
<p>The SPA3102 is connected to an existing router, so I have the <em>Lan Setup</em> set to <em>Bridge</em>, and have configured the <em>Internet</em> port (on the <em>Router | Wan</em> tab) with a suitable static IP. To be clear, in this configuration, one only connects up the <em>Internet</em> port and NOT the <em>Ethernet</em> port.</p>
<h3>Voice | Regional</h3>
<p>For the <em>Voice | Regional tab</em> I found the following <em>Call Progress Tone</em> settings on a <a title="voxilla page with tone and ring cadences for NL" href="http://forum.voxilla.com/cisco-linksys-sipura-voip-support-forum/spa-localization-wizard-dutch-14045.html">voxilla forum page</a> by users PJH and edokter:<br />
<code><br />
Dial Tone: 425@-10;20(*/0/1)<br />
Second Dial Tone: 425@-10;20(*/0/1)<br />
Outside Dial Tone: 350@-19;440@-19;20(*/0/1+2)<br />
Busy Tone: 425@-10;10(.5/.5/1)<br />
Reorder Tone: 425@-10;10(.25/.25/1)<br />
Off Hook Warning Tone: 1000@0;*(0/9.5/0,.1/.1/1,.1/.1/1,.1/0/1)<br />
Ring Back Tone: 440@-19,480@-19;*(2/4/1+2)<br />
Confirm Tone: 425@-10;1(.1/.1/1)<br />
SIT1 Tone: 950@-19,1400@-19,1800@-19;30(.333/0/1,.333/0/2,.333/1/3)<br />
MWI Dial Tone: 425@-10;1(.1/.1/1);20(*/0/1)<br />
Cfwd Dial Tone: 425@-10;20(.5/.05/1)<br />
</code></p>
<p>On the same tab and from the same forum page, the following <em>Distinctive Ring Patterns</em> and <em>Distinctive Call Waiting Tone Patterns:</em><br />
<code><br />
Ring1 Cadence: 90(1/4)<br />
Ring2 Cadence: 90(.3/.4,.3/4)<br />
CWT1 Cadence: 60(.5/9.5)<br />
CWT Frequency: 425@-16</code></p>
<p>To get caller ID working, I made the following changes (still on the <em>Voice | Regional</em> tab):<br />
<code><br />
Caller ID Method: ETSI FSK<br />
Caller ID FSK Standard: bell 202<br />
</code></p>
<p>Finally on this tab, set:<br />
<code><br />
FXS Port Impedance: 270+750||150nF<br />
</code><br />
(according to the Cisco admin manual, this is the standard for The Netherlands)</p>
<h3>Voice | Line 1</h3>
<p>This is the tab where you get to do most of the SIP configuration.</p>
<p>I have my primary betamax provider (12voip.com) setup under Proxy and Registration and Subscriber Information:<br />
<code><br />
Proxy: name of your sip server e.g. sip.voipbuster.com<br />
Display name: 0031xxxxxxxxx (number that you have verified and configured as callerid with the voipbuster software)<br />
User ID: 0031xxxxxxxxx (same as above)<br />
Password: hard to figure this one out <img src='http://vxlabs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Use Auth ID: yes<br />
Auth ID: your betamax (voipbuster etc.) username<br />
</code></p>
<p>My dialplan looks as follows:<br />
<code><br />
(112S0&lt;:@gw0&gt;|0800x.&lt;:@gw0&gt;|090x.&lt;:@gw0&gt;|&lt;#9:&gt;xx.&lt;:@gw0&gt;|&lt;1601:&gt;xx.|&lt;0:0031&gt;[1-7]xxxxxxxxS0|xxxxxxxxxxxxxS0|xx.|*xx)<br />
</code></p>
<p>Here is the commented version for your edification:<br />
<code><br />
(112S0&lt;:@gw0&gt;| # emergency number goes through PSTN<br />
0800x.&lt;:@gw0&gt;| # 0800 numbers go through PSTN<br />
090x.&lt;:@gw0&gt;| # 090x numbers go through PSTN<br />
&lt;#9:&gt;xx.&lt;:@gw0&gt;| # prefix number with #9 to force dialing through PSTN<br />
&lt;1601:&gt;xx.| # throw away 1601 preselect still in some handset phonebooks. you won't need this.<br />
&lt;0:0031&gt;[1-7]xxxxxxxxS0| # numbers without 0031 country code will get it added<br />
xxxxxxxxxxxxxS0| # stock standard 00CCRRxxx 13 digit international telephone number<br />
xx.| # all other numbers<br />
*xx) # linksys codes</code></p>
<p><a title="dialplan howto" href="http://www.dartsplayer.com/wi-fi/voip/linksys_dialplan.html">This</a> is a concise howto (in Dutch) on writing dialplans. You can use other betamax providers in the <em>Gateway Accounts</em> and integrate them in your dialplan. The betamax providers don&#8217;t require registration.</p>
<h3>Voice | PSTN Line</h3>
<p>In order for your SPA3102 to realise that the call has been ended, you need to setup PSTN Disconnect Detection correctly:<br />
<code><br />
Detect CPC: yes<br />
Detect Polarity Reversal: <strong>no</strong><br />
Detect Disconnect Tone: yes<br />
Disconnect Tone: 425@-30,425@-30; 2(0.5/0.5/1+2)<br />
</code></p>
<p>When I had &#8220;Detect Polarity Reversal&#8221; set to yes, I&#8217;d get immediate disconnects on incoming calls with my new Ziggo cable PSTN connection.</p>
<p>On the same tab, make sure your FXO Port Impedance is also set to 270+750||150nF (the Dutch standard).</p>
<p>Later I discovered that if we took longer than 10 seconds to answer the phone, the call would be lost. To fix this, set the &#8220;PSTN Answer Delay&#8221; to 60 seconds or something reasonable.</p>
<h3>Conclusion</h3>
<p>Please let me know in the comments if this worked for you, or if you have any questions on the instructions above!</p>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/02/05/sipura-linksys-cisco-spa3102-voice-gateway-in-the-netherlands/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>International characters on the HTC Desire Z keyboard</title>
		<link>http://vxlabs.com/2011/01/24/international-characters-on-the-htc-desire-z-keyboard/</link>
		<comments>http://vxlabs.com/2011/01/24/international-characters-on-the-htc-desire-z-keyboard/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 22:31:25 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[diacritics]]></category>
		<category><![CDATA[hardware keyboard]]></category>
		<category><![CDATA[htc desire z]]></category>
		<category><![CDATA[international characters]]></category>
		<category><![CDATA[t-mobile g2]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=59</guid>
		<description><![CDATA[I&#8217;m typing this up because it took me far too long to find, probably because I wasn&#8217;t using the right search terms, or because I was trying stupid key combinations&#8230; In any case, if you want to make international characters &#8230; <a href="http://vxlabs.com/2011/01/24/international-characters-on-the-htc-desire-z-keyboard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m typing this up because it took me far too long to find, probably because I wasn&#8217;t using the right search terms, or because I was trying stupid key combinations&#8230;</p>
<p><a title="Frustration (was: threesixtyfive | day 244) by Sybren A. Stüvel, on Flickr" href="http://www.flickr.com/photos/sybrenstuvel/2468506922/"><img src="http://farm3.static.flickr.com/2410/2468506922_c1ed495959_m.jpg" alt="Frustration (was: threesixtyfive | day 244)" width="240" height="196" /></a></p>
<p>In any case, if you want to make international characters (that is, characters with accent marks, diacritics, <a title="wikipedia page on the trema" href="http://en.wiktionary.org/wiki/trema">trema</a> (plural tremata), umlauts, eat that google!) such as ë, é, ê or even ö or ï and so forth on the HTC Desire Z hardware keyboard, you simply long press the base character. A menu pops up and you get to choose the accented character that you would prefer to insert at that moment.</p>
<p>I sincerely apologise for interrupting your usual high IQ programming with this. If however you stumble upon this post and it helps you, why don&#8217;t you leave a comment just for laughs?</p>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/01/24/international-characters-on-the-htc-desire-z-keyboard/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>HTC Desire Z: An in-depth and nerdy review.</title>
		<link>http://vxlabs.com/2011/01/22/htc-desire-z-an-in-depth-and-nerdy-review/</link>
		<comments>http://vxlabs.com/2011/01/22/htc-desire-z-an-in-depth-and-nerdy-review/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 21:43:53 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[cellphones]]></category>
		<category><![CDATA[desire z]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[htc desire z]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=28</guid>
		<description><![CDATA[This review differs from other HTC Desire Z reviews because I&#8217;ve actually been using this phone as my only smartphone quite intensively, and because I&#8217;m writing up, in great depth, my iopinion as a gadget-toting ex-Linux-zealot computer science nerd. Take &#8230; <a href="http://vxlabs.com/2011/01/22/htc-desire-z-an-in-depth-and-nerdy-review/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>This review differs from other HTC Desire Z reviews because I&#8217;ve actually been using this phone as my only smartphone quite intensively, and because I&#8217;m writing up, in great depth, my iopinion as a gadget-toting ex-Linux-zealot computer science nerd. Take that engadget!</em></p>
<p>As many of you know, I was completely in love with my previous smartphone. Not surprising, seeing as the <a title="Nokia E71 review" href="http://www.techradar.com/reviews/phones/mobile-phones/nokia-e71-437065/review">Nokia e71</a> is perfect, at least hardware-wise. However, partly due to Symbian (Nokia&#8217;s operating system) really dragging its heels (Nokia, does your mobile OS really have to feel like it teleported in from 1970?) and partly due to Android (Google&#8217;s mobile operating system) doing the exact opposite, I&#8217;d been not-so-patiently waiting for the right Android-running telephone to come along so I could start drinking the Google Kool-Aid.</p>
<p>Enter the <a title="HTC Desire Z website" href="http://www.htc.com/www/product/desirez/overview.html">HTC Desire Z</a>, known in the US as the T-Mobile G2, a micro-laptop with built-in mobile phone, or a flashlight with built-in laptop and phoning function, whichever you prefer:</p>
<div id="attachment_29" class="wp-caption alignnone" style="width: 310px"><a href="http://vxlabs.com/wp-content/uploads/2011/01/htc_desirez_examples.jpg"><img class="size-medium wp-image-29" title="htc_desirez_examples" src="http://vxlabs.com/wp-content/uploads/2011/01/htc_desirez_examples-300x168.jpg" alt="" width="300" height="168" /></a><p class="wp-caption-text">Pretty pretty Desire Zs! (image courtesy of HTC)</p></div>
<h3>Acquisition</h3>
<p>After having read a gazillion mobile phone reviews and months of intensive pondering on what physical keyboard-toting smartphone I would get after two years with my E71, I had narrowed it down to a Blackberry Bold 9780 or the HTC Desire Z. Blackberry lock-in (if you don&#8217;t pay RIM their monthly protection money, half of your telephone stops working) together with my penchant for all things Google led to the purchase of the HTC Desire Z from the <a title="smartphoneshop website" href="http://www.smartphoneshop.nl/">smartphoneshop</a> in Rotterdam (highly recommended: It&#8217;s a web shop, but I just popped in there on a Sunday to get the phone and sort my contract issues) along with a 1 year T-Mobile iPlan 150 contract (150 minutes, 150 texts and unlimited 2 Mbit/s internet).</p>
<p>The thing has now actually survived three weeks in my hands being super-intensively futzed around with, so it&#8217;s finally time to talk honestly about our experiences together.</p>
<h3>The Good</h3>
<p>Coming from the Blackberry-style Nokia E71 keyboard, a finely tuned mechanism for high-power text entry, it took a while to get used to the <strong>Desire Z&#8217;s slide-out keyboard</strong>. However, I&#8217;m now completely convinced that the keyboard is absolutely worth the extra 40 or 50 grams. Many have complained, but the mechanism is beautiful: It slides in and out with a satisfying PLOK. There are no springs or spring-loading in sight, as this business all elegantly gravity-powered. Yes, if you&#8217;d try to lie on your back holding it in front of your face, gravity starts working differently and the thing will fall open. My advice: Pick some other activity for performing whilst lying on your back. The keys themselves are nicely separated. Perhaps they could have been a tad less stiff. Importantly, I find that clipped nails greatly enhance my typing experience. To be quite honest, it&#8217;s a fine keyboard, but the still wins in this regard.</p>
<p>The phone has a <strong>great feel</strong>: With its 180 grams and subtle brushed metal finishing, it exudes quality when picked up. However, if you&#8217;re a smaller person, you might want to try it first before making the jump. I find the weight and form factor just perfect, but that&#8217;s of course all relative. I carry the thing, without a cover of any kind, in my trouser pocket. (Oh who am I kidding, I never wear trousers. They&#8217;re jeans. By the way, did you know that someone has a <a title="patent on reinforced trouser pocket" href="http://www.freepatentsonline.com/3723994.html">patent on reinforced trouser pockets</a>?)</p>
<p>Finally, the <strong>software integration</strong> on this telephone is beautiful. So with Android 2.2.1 at the time of writing, and the HTC Sense layer, you receive a mail or check your Friend Stream (twitter, facebook and whatnot), tap on an attachment or link and the relevant application opens. New apps can register as handlers, so after you&#8217;ve for example installed Dropbox, long tapping on some files will give you the choice of syncing them with your Dropbox account, and so on. Because this is more a micro-laptop than a telephone, I definitely feel far less constrained when having to work on it than was the case on my E71: I can edit documents, SSH to places, review presentations use all forms of webapps, without anyone having to know that I was trapped on a train or some other odd place for a few hours. Also compared to the Apple 3GS with iOS 4.x, the Desire Z blows it out of the water in this respect, due to both Android and the keyboard of course.</p>
<p>Finally, and this is a good point of any Android device, <strong>the apps and the Android Market</strong> integration. Further down I will briefly discuss my favourite apps at the moment. For now it suffices to say that there are a gazillion apps, all installable (and the non-free ones purchasable) with a single tap. With a certain amount of searching, you invariably find that one app that you believe will help you be more effective / productive / happy / successful in life, at the very least for the subsequent five minutes. In other words, your toy is able to acquire completely new functions, not always equally useful, at the tap of a button.</p>
<h3>The Bad</h3>
<p>The <strong>1300 mAh hour battery is a definitely weak point of this telephone</strong>. After the initial conditioning discharge-charge cycles, the battery did indeed go from utterly crappy to merely disappointing. It now lasts from about 8:30 in the morning till about midnight and on days when I spend more time than usual futzing with the thing, the hungry beast starts complaining at about 20:00 that I should really consider giving it something to eat. This is in spite of the fact that I mostly explicitly switch off the wireless (I know it times out by itself), keep the GPS switched off, switch off automatic syncing quite often and keep the screen brightness on automatic. If the Battery Usage app can be believed, the screen is the biggest culprit. Usually it consumes 60% or more of the power budget. According to <a title="AppBrain page on CurrentWidget" href="http://www.appbrain.com/app/currentwidget/com.manor.currentwidget">CurrentWidget</a>, the phone eats about 30mA in standby, about 140 mA when I&#8217;ve just switched on the screen and about 300 mA when I&#8217;m just browsing the interwebs.</p>
<p>I also do have some small gripes with the software:</p>
<ul>
<li>Why in Android GMail 2.3.2, when I want to reply inline to an email (that&#8217;s new functionality), does it put my signature ABOVE the email that I&#8217;m replying to? The standard is that the signature should go BELOW, as is the case with web GMail. There also doesn&#8217;t seem to be any way that I can configure this. I&#8217;ve started <a title="thread on google mobile help: why does gmail android put my signature ABOVE an inline reply?" href="http://www.google.com/support/forum/p/Google+Mobile/thread?tid=4a073d8c56cc63e0&amp;hl=en">a thread on the Google Mobile help forums</a>, but apparently no-one finds it interesting enough.</li>
<li>Why do I have to root my phone or install the whole SDK and connect the phone to my PC  if I simply want to take a screenshot?</li>
<li>Ok sorry that last one was REALLY a minor niggle.</li>
<li>Why can&#8217;t I change the number of home screens in HTC Sense?</li>
<li>This one&#8217;s quite serious: Why is can&#8217;t I voice chat with Google Talk users from my Android phone? Google Talk is beautifully integrated, but no voice chat to be found, which is verging on the ridiculous.</li>
<li>Every so often, the Gallery app just forgets a bunch of photos on the SD card. Either it doesn&#8217;t list them, or it shows them as broken images (can&#8217;t be loaded). Unmounting and mounting the SD card fixes this, but what an annoyance&#8230; (android 2.2.1 update)</li>
</ul>
<p><strong>The UGLY</strong></p>
<p>Even worse than the battery is the <strong>dismally performing optical trackpad</strong>. If you&#8217;ve ever played with one of the new Blackberrys, you know that an optical trackpad can work just perfectly, almost seeming to read your intentions rather than your finger motion. The trackpad on the Desire Z either reacts very slowly, i.e. vigorous finger motion results in very little cursor motion, or not at all, sometimes requiring 2 or even 3 swipes before the cursor does anything at all. What&#8217;s really frustrating, is that if I swipe with a piece of cloth (read &#8220;t-shirt&#8221;) over my finger, the thing works exactly like it should. Furthermore, swipes over the trackpad often end up on the &#8220;menu&#8221; or &#8220;back&#8221; touch keys, resulting in completely unintended consequences.</p>
<p>Now on a touch screen phone, and the Desire Z has a really great touch screen, the trackpad is less relevant, but why did HTC go to the trouble of integrating it there?! Also, why did they pick the crappiest trackpad they could find when the rest of the phone (ok, forget the battery for a moment) is constructed from top notch components? The trackpad could have been a really useful input device, allowing for fine cursor positioning for example.</p>
<p>Let me calm down for a while, and conclude this section with the following disclaimer: In the meantime, I&#8217;ve played with the trackpads on two different HTC Desire Zs. One of them was more or less the same as mine, the other <em>seemed</em> to be much better. I&#8217;ve also experimented with fingers belonging to different users than myself, that doesn&#8217;t seem to be a factor. Whatever the case may be, the trackpad on MY telephone is almost useless, but I&#8217;m going to test on more Desire Zs to establish whether mine is a dud, or it was a design error on HTC&#8217;s part. smartphoneshop has offered to take my phone back, but I have great difficulties parting with it for more than a few minutes, and it&#8217;s not sure whether a repair will even agree that something is wrong with the phone.</p>
<h3>My favourite apps</h3>
<p>You can see all of the apps I currently have on my telephone by going to my <a title="My AppBrain user page" href="http://www.appbrain.com/user/cpbotha">AppBrain user page</a>. I&#8217;m only going to mention my favourite ones in the  following list:</p>
<ul>
<li><a title="AppBrain page on AppBrain App Market" href="http://www.appbrain.com/app/appbrain-app-market/com.appspot.swisscodemonkeys.apps">AppBrain</a>: You create an account on AppBrain with your Google credentials and then install the app on your phone and BAM, you have a much nicer interface for app installation, including personalised recommendations.</li>
<li><a title="AppBrain page on TweetDeck" href="http://www.appbrain.com/app/tweetdeck-(twitter-facebook)/com.thedeck.android.app">TweetDeck</a>: Get and give your Twitter, Facebook and Buzz fix in a beautiful and functional column-based interface, plus that you can run variants of the software on your Windows, Mac or Linux running PC.</li>
<li><a title="AppBrain page on Note Everything" href="http://www.appbrain.com/app/note-everything/de.softxperience.android.noteeverything">Note Everything</a>: The HTC Desire Z doesn&#8217;t come with a default note-taking app, but the free version of Note Everything performs this function perfectly. It&#8217;s small and fast, can save to and load from Google Docs, and does search as you type! I bought the Pro version, as it has more types of notes, can backup the your whole archive to SD, and I wanted to support the authors.</li>
<li><a title="AppBrain page on SipDroid" href="http://www.appbrain.com/app/sipdroid-voip-video-calling/org.sipdroid.sipua">SipDroid</a>: I tried 3CXPhone and LinPhone, but SipDroid&#8217;s perfect integration with the calling function of the telephone won me over. In spite of the integration, it&#8217;s easy to exit when you don&#8217;t want to do SIP calling anymore.</li>
<li><a title="AppBrain page on Widgetsoid" href="http://www.appbrain.com/app/widgetsoid2-x/com.jim2">Widgetsoid</a>: Use this to setup pretty buttons on your homescreen for toggling and configuring bluetooth, wifi, syncing, screen brightness, and much much more.</li>
<li><a title="AppBrain page on QuickOffice Connect" href="http://www.appbrain.com/app/quickoffice-connectmobilesuite/com.qo.android.am3">QuickOffice Connect</a>: I bought this office suite for its great integration with multiple Google Docs and Dropbox accounts, of course the idea that I can edit MS office format docs on my phone and the really fantastic PDF viewer that&#8217;s included. Nice tidbit: When you do a full text search, it searches through all local documents, as well as everything on all linked Google Docs and DropBox accounts. That&#8217;s pretty neat!</li>
<li><a title="appbrain jorte page" href="http://www.appbrain.com/app/jorte/jp.co.johospace.jorte">Jorte</a>: The built-in calendar app sucks, wasting valuable screen real-estate on overly large on-screen buttons and huge fonts. In the week view, it&#8217;s not even able even to show the appointment label! Jorte solves all these problems, and even syncs with your google tasks. It even shows appointment names in the month view! In the near future, I will also be trying out <a title="pimlico software website" href="http://www.pimlicosoftware.com/">Pimlical for Android</a>, as I used to be a DateBk6 addict in my Palm days.</li>
</ul>
<h3>Conclusion</h3>
<p>In spite of its flaws, namely the disappointing battery life and the hardly functional trackpad, the HTC Desire Z is the information age equivalent of a Swiss Army knife. It has everything you need to function, no, to excel as a data-wrangling nerd. You can go on the road, confident that you can wrestle to the ground anything thrown at you via the internet.  If your battery survives long enough, the built-in flashlight app (the camera flash is <strong>very</strong> bright) could even help you solve some real-world problems after dark. Accentuating the nature of this power-phone, a number of my more nerdily-inclined but socially adept friends and colleagues have acquired the Desire Z or are at this very moment lusting after it. If you in fact need a micro-laptop with phoning function and you can live with the charge-me-every-day battery and you don&#8217;t mind the trackpad, this is just the device for you.</p>
<p><em>If you have questions or suggestions, please leave me a comment below. I&#8217;d like to update and refine this review as new information comes in.</em></p>
<h3>Addendum</h3>
<ul>
<li>HTC tech support is good! I mailed concerning <a title="diacritics on the HTC Desire Z hardware keyboard" href="/2011/01/24/international-characters-on-the-htc-desire-z-keyboard/">my diacritics question</a>, and was answered (in Dutch) within a day.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2011/01/22/htc-desire-z-an-in-depth-and-nerdy-review/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.10 x86_64 on your Dell E6410 with NVS 3100m GPU</title>
		<link>http://vxlabs.com/2010/11/30/ubuntu-10-10-x86_64-on-your-dell-e6410-with-nvs-3100m-gpu/</link>
		<comments>http://vxlabs.com/2010/11/30/ubuntu-10-10-x86_64-on-your-dell-e6410-with-nvs-3100m-gpu/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 22:00:04 +0000</pubDate>
		<dc:creator>cpbotha</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[e6410]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[nvs3100m]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://vxlabs.com/?p=12</guid>
		<description><![CDATA[Well howdy hoo! This is the fastest and most painless guide to installing Ubuntu 10.10 (Maverick Meerkat) x86_64 on your Dell E6410 laptop with NVS 3100m GPU. More specifically, installing Ubuntu 10.10 on this specific hardware configuration poses two problems: &#8230; <a href="http://vxlabs.com/2010/11/30/ubuntu-10-10-x86_64-on-your-dell-e6410-with-nvs-3100m-gpu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well howdy hoo! This is the fastest and most painless guide to installing Ubuntu 10.10 (Maverick Meerkat) x86_64 on your Dell E6410 laptop with NVS 3100m GPU.</p>
<p>More specifically, installing Ubuntu 10.10 on this specific hardware configuration poses two problems:</p>
<ol>
<li>Blank (black, no backlight) display when booting with the install media, or, if you manage to get Linux on the machine, with the installation itself.</li>
<li>Blank (black, no backlight) display when resuming from suspend to ram after having installed Ubuntu.</li>
</ol>
<h3>Solving problem 1</h3>
<ul>
<li>Boot with the normal Ubuntu 10.10 x86_64 Desktop live disc. I usually do this from USB memory.</li>
<li>When you get to the first boot menu (&#8220;Try Ubuntu without installing&#8221;, &#8220;Install Ubuntu&#8221;, etc.), press F6 for other options, then ESC to kill the menu that appears. Move the menubar to &#8220;Try Ubuntu without installing&#8221;.</li>
<li>You can now edit the boot command-line. Replace &#8220;quiet splash&#8221; with &#8220;nouveau.modeset=0&#8243;</li>
<li>Press enter to boot into the live desktop, then install the whole business as per usual.</li>
<li>At the first boot after installation, press &#8216;e&#8217; at the grub boot screen to edit the command line and again replace &#8220;splash quiet&#8221; with &#8220;nouveau.modeset=0&#8243;.</li>
<li>You should get all the way to the Ubuntu desktop.</li>
<li>Activate the NVidia drivers via System | Administration | Additional Drivers</li>
<li>Now edit /etc/default/grub, and replace &#8220;splash quiet&#8221; in the GRUB_CMDLINE_LINUX_DEFAULT with, you guessed it, &#8220;nouveau.modeset=0&#8243;.</li>
<li>Run &#8220;sudo update-grub&#8221; at the command-line.</li>
<li>Problem solved.</li>
</ul>
<h3>Solving problem 2</h3>
<ul>
<li>Edit the GRUB_CMDLINE_LINUX_DEFAULT variable /etc/default/grub again. When you&#8217;re done, it should read (we&#8217;ve added the acpi_sleep bit at the end):
<pre class="brush: bash; title: ; notranslate">GRUB_CMDLINE_LINUX_DEFAULT=&quot;nouveau.modeset=0 acpi_sleep=nonvs&quot;</pre>
</li>
<li>Run &#8220;sudo update-grub&#8221; at the command-line.</li>
<li>Problem solved.</li>
<li>(if you really want to know more about this, including several other more painful work-arounds, read this <a title="bug report with black screen on resume bug" href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/578673">bug report</a>)</li>
</ul>
<p>Generally, I&#8217;m really impressed with the general slickness of 10.10 on this machine. What impressed me particularly, was that powertop reported about 14W of power consumption at idle on this out-of-the-box setup (disregarding the two tweaks above). It used to take much more effort to get that low.</p>
]]></content:encoded>
			<wfw:commentRss>http://vxlabs.com/2010/11/30/ubuntu-10-10-x86_64-on-your-dell-e6410-with-nvs-3100m-gpu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.427 seconds. --><!-- Cached page generated by WP-Super-Cache on 2011-12-07 12:27:11 --><!-- Compression = gzip -->

