<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/1999/html" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Random notes from mg</title><link>http://mg.pov.lt/blog</link><description>a blog by Marius Gedminas</description><language>en</language><ttl>60</ttl><dc:creator>Marius Gedminas</dc:creator><admin:generatorAgent rdf:resource="http://pyblosxom.sourceforge.net/"/><admin:errorReportsTo rdf:resource="mailto:marius@gedmin.as"/><item><title>N9 Hackathon in Vienna</title><guid isPermaLink="false">n9-hackathon</guid><link>http://mg.pov.lt/blog/n9-hackathon</link><description>Last weekend I attended the N9 Hackathon in Vienna. Nokia kindly sponsored all food and accommodation costs and, at the ...</description><content:encoded><![CDATA[
<p>Last weekend I attended the <a
href="https://metalab.at/wiki/N9_Hackathon">N9 Hackathon</a> in Vienna.
Nokia kindly sponsored all food and accommodation costs and, at the very end,
surprised me with an entirely unexpected gift of a N9 phone.</p>

<p>Vienna: great transportation system, delicious food (either that, or I was
always extremely hungry when I ate), huge portions, restaurants open until
midnight.  Shame I didn't have time to see the city itself.</p>

<p>The <a href="http://swipe.nokia.com/">N9</a> is a gorgeous phone; much more
so in real life than in pictures.</p>

<p>After some hassle upgrading the <a href="http://qt.nokia.com/downloads/">Qt
SDK</a> (the provided upgrade tool managed to somehow remove the Qt Creator
IDE while purporting to upgrade it; I had to reinstall the entire SDK) and
flashing <a href="http://mg.pov.lt/blog/n950">my N950</a> with Beta 2 firmware
(Qt SDK 1.1.3 produces apps incompatible with the old Beta 1 firmware of the
N950) I started prototyping a time tracking application in <a
href="http://doc.trolltech.com/4.7-snapshot/qml-intro.html">QML</a>,
while learning QML and the <a
href="https://www.developer.nokia.com/swipe/ux/pages/building_blocks.html">N9
design guidelines</a> at the same time.</p>

<p>Converting the pretty pictures into QML was harder than I expected, but at
the end of the second day I had <a
href="http://github.com/mgedmin/qml-time-tracker">something</a> that looked
like a native N9 application.</p>

<div style="text-align: center; float: none; margin-left: 1em">
<a href="http://mg.pov.lt/qml-timetracker-prototype.png"
   title="click for full size image"
><img src="http://mg.pov.lt/qml-timetracker-prototype.png"
       alt="screenshot of the prototype" width="306" height="306" /></a>
</div>

<p>Most useful reference pages were:</p>
<ul>
  <li>The <a href="http://doc.trolltech.com/4.7-snapshot/qdeclarativeintroduction.html">QML
    syntax introduction</a> (which felt incomplete, but was almost adequate in the end).</li>
  <li>The <a href="http://harmattan-dev.nokia.com/docs/library/html/qt-components/qt-components-meego-componentlist.html?tab=1">list of Harmattan-specific QML components</a>.</li>
  <li>The <a href="http://harmattan-dev.nokia.com/docs/library/html/qt4/qdeclarativeelements.html?tab=1">list of standard QML components</a>.</li>
  <li>The <a
    href="https://www.developer.nokia.com/swipe/ux/pages/building_blocks.html">UI
    building blocks pages</a> mentioned above (pretty pictures! pretty colours! I <em>like</em> shiny things!).</li>
  <li><a href="http://harmattan-dev.nokia.com/docs/library/html/qt-components/qt-components-meego-interfaceguide.html">Harmattan
    Qt Components User Interface Guidelines</a>: pixel and font sizes of the
    standard UI elements.  (Ignore the "import UIConstants.js" red herrings;
    it's an internal thing <em>apparently</em>, and you can't use it
    directly from your 3rd-party apps.  Unless you find and copy UIConstants.js
    into your project, after figuring out if the licence allows it, which
    seemed too much of a hassle for me to even start.  So I hardcoded all
    the numbers directly, like a bad programmer who doesn't know about
    constants.)</li>
  <li>The <a
      href="http://harmattan-dev.nokia.com/docs/library/html/qt-components/qt-components-meego-simpletutorial.html?tab=1">TutorialApplication</a>
      sample, finding the sources of which was unexpectedly <em>difficult</em>
      -- a straight git clone of the <a
      href="http://qt.gitorious.org/qt-components/qt-components">qt-components
      repository</a> gives you something too recent to run with the older
      qt-components version on the N9.  I ended up using apt-get source
      qt-components in Scratchbox to download the <a
      href="http://harmattan-dev.nokia.com/pool/harmattan-beta/free/q/qt-components/qt-components_1.0~git20110525-1+0m6.tar.gz">source
      tarball</a> of version 1.0~git20110525-1+0m6.  Look in
      qt-components/examples/meego/.</li>
</ul>

<p>Finally, workflow.  QML is parsed at run time (application startup time,
unless you delay the loading), which means no recompilation ought to be
required to make changes, which means short development feedback cycles ought
to be possible.  So I was not happy about having to wait several seconds after
hitting Run in Qt Creator, while it built a .deb, copied it to the device over
wifi or USB networking, installed and ran it there.  Deploying to the Qt
Simulator is quicker, but not as much as I think it ought to be.  Plus, the
Qt Simulator apparently cannot simulate the landscape mode of the N9,
<em>and</em> it lies about the default font size of QML Text elements (if you
do not specify a pixelSize, text elements will look all right in the simulator,
but ridiculously tiny on the N9).</p>

<p>In the end I cobbled up a <a
href="https://github.com/mgedmin/qml-time-tracker/blob/master/quicktest">shell
script</a> that rsyncs my updated QML files to the device and runs a short
<a href="https://github.com/mgedmin/qml-time-tracker/blob/master/quicktest.py">Python
script</a> (over ssh) to launch them.  You need rsync and PySide installed on
the device for this, obviously, as well as having
SSH set up for passwordless logins.  As a bonus, I can now do QML development
during lunch, directly on the device, with <a
href="http://mg.pov.lt/770/dists/harmattan/user/binary-armel/vim_7.3.260-1_armel.deb">vim</a>,
enjoying proper <a
href="http://gitorious.org/qt-qml-demo-playground/qt-qml-demo-playground/blobs/raw/master/qml.vim">syntax
highlighting</a>.
:)</p>

<p>Oh, and my code is <a href="http://github.com/mgedmin/qml-time-tracker/">up
on Github</a>.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2011-10-12T11:25:13Z</dc:date></item><item><title>Porting FBReader to Meego 1.2 Harmattan</title><guid isPermaLink="false">harmattan-fbreader</guid><link>http://mg.pov.lt/blog/harmattan-fbreader</link><description>Andrew Olmsted built the first FBReader packages for Harmattan, after tweaking the build system a bit. The desktop version of ...</description><content:encoded><![CDATA[
<p><a href="http://wiki.meego.com/User:Fiferboy">Andrew Olmsted</a> built
the first <a href="http://www.fbreader.org">FBReader</a> packages for Harmattan, after <a
href="http://mg.pov.lt/fiferboy-fbreader-harmattan.patch">tweaking the build
system</a> a bit.  The desktop version of FBReader already used Qt 4, and
ran almost unmodified, but with some bugs (<a
href="http://pastie.org/2238548">segfault</a> on task switch) and ugly
UI.</p>

<p>I started with the Ubuntu packages for FBReader, since they used a more
sane build system for .debs (compared to upstream's <a
href="https://github.com/geometer/FBReader/blob/master/build_packages.sh">funky
shell script</a>).  Some tweaks were needed to make it build in Scratchbox:
since GTK+ and Hildon libraries aren't available on Harmattan, I had to disable
the building of -gtk and -maemo versions of libzlui.  I also got to learn
a new tool &mdash; <a href="http://wiki.debian.org/UsingQuilt">quilt</a>.</p>

<p>Fixing the <a href="http://pastie.org/2281152">segfault</a> took a couple of days of <a
href="http://pastie.org/2281247">debugging</a>, studying the <a
href="https://github.com/geometer/FBReader/blob/master/zlibrary/ui/src/qt4/view/ZLQtViewWidget.cpp#L97">source</a>
<a href="https://github.com/geometer/FBReader/blob/master/zlibrary/ui/src/qt4/view/ZLQtPaintContext.cpp#L47">code</a>
of both FBReader and Qt itself, and asking for help on IRC.  Turns out
FBReader was holding an active QPainter instance for too long, and its backing
pixmap got destroyed (or, rather, converted from an OpenGL texture to a plain
X11 pixmap) during a task switch, causing the crash.  I'm probably describing
this wrong BTW, but, in any case, adding QPainter::begin() and QPainter::end()
calls in the paintEvent handler fixed the segfault.</p>

<p>Next, a small tweak in the .desktop file to make FBReader a single-instance
application: change <tt>Exec=FBReader</tt> to <tt>Exec=single-instance
  /usr/bin/FBReader</tt> (I'm paraphrasing slightly).</p>

<p>Then, a more ambitious goal: making FBReader intercept volume keys and
use them for scrolling.  Google gave me a <a
href="http://www.developer.nokia.com/Community/Discussion/showthread.php?226283-Grab-Volume-Keys-on-Harmattan">pointer</a>
to <a href="http://apidocs.meego.com/1.2/qmsystem/classMeeGo_1_1QmKeys.html">QmKeys</a>, which was the
wrong API to use here, but gave me a lead to qmkeyd2, which appears to be an
<a href="https://www.meego.gitorious.org/meego-middleware/qmsystem/blobs/5edeec3815de0a2cb81e305e504f072460efe30d/keyd/qmkeyd.cpp">open
source</a> daemon, which gave me a lead to sysuid, another <a
href="https://meego.gitorious.org/meegotouch/meegotouch-systemui/blobs/master/src/extensions/volume/volumebarlogic.cpp">open
source</a> daemon, which in turn gave me a lead to <a
href="http://harmattan-dev.nokia.com/unstable/beta/api_refs/showdoc.php?pkn=libresourceqt&wb=daily-docs&url=Li94bWwvZGFpbHktZG9jcy9saWJyZXNvdXJjZXF0">libresourceqt</a>,
and that was the right API at last.</p>

<p>Volume keys generate regular key events for XF86AudioRaiseVolume and
XF86AudioLowerVolume, but they're also intercepted by qmkeyd2, which tells
all subscribers (and sysuid is one) about them.  Which subscriber gets to
react is determined by the resource policy framework.  So what I needed to do
in FBReader was acquire the ScaleButtonResource when FBReader starts up or gets
focus, and release it when FBReader quits or goes into background.  That
also required some IRC help until I discovered <a
href="http://doc.qt.nokia.com/latest/qobject.html#installEventFilter">installEventFilter()</a>
and the <a
href="http://doc.qt.nokia.com/latest/qevent.html#Type-enum">ApplicationActivate/ApplicationDeactivate</a>
events. And <a
href="http://doc.qt.nokia.com/latest/qcoreapplication.html#instance">QApplication::instance()</a>.</p>

<p>The various tools available in the developer firmware were invaluable:
openssh, gdb, valgrind, strace, xev, xprop, lsof, netstat.  Also, I would not
have achieved my second goal without being able to look at the sources of Meego
system components (qmkeyd, sysuid).  Yay open source!</p>

<p>Here are <a
href="http://mg.pov.lt/fbreader-0.12.10dfsg-1ubuntu2mg9-harmattan.patch">my
changes to the source code</a>.  You can find my modified <a href="http://mg.pov.lt/770/dists/harmattan/experimental/source/fbreader_0.12.10dfsg-1ubuntu2mg9.diff.gz">Debian packaging
files</a>, as well as <strong>prebuilt binary packages</strong> (with full
debug info, for gdb goodness), in my <a
href="http://mg.pov.lt/770/">experimental harmattan apt repository</a>.
The UI is still ugly and non-native, but it doesn't matter much in fullscreen
mode <tt>:)</tt> .</p>

<p>Note to self: when next building fbreader, make sure the 2 megabyte
<tt>tags</tt> file doesn't end up in the <tt>.diff.gz</tt>.  And speaking of crud
in source packages, the <a
href="http://mg.pov.lt/770/dists/harmattan/user/binary-armel/vim_7.3.260-1_armel.deb">vim
package</a> I built for Harmattan the other day contains the entire 50 meg
<tt>.hg</tt> in the <tt>.orig.tar.gz</tt>.  I need to figure out how to
tell dh_make to omit it.</p>

]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2011-07-29T00:16:38Z</dc:date></item><item><title>Nokia N950</title><guid isPermaLink="false">n950</guid><link>http://mg.pov.lt/blog/n950</link><description>Last Thursday I received a package containing something called the Nokia N950 development kit. Sweet sweet hardware, shame it's not ...</description><content:encoded><![CDATA[
<p>Last Thursday I received a package containing something called the <a
href="http://wiki.maemo.org/N950">Nokia N950</a> development kit.  Sweet sweet
hardware, shame it's not going to be sold to end users.  The software is
visibly an unfinished pre-release version, but shows great potential.  There
are almost no 3rd-party apps, which is why Nokia is loaning these N950s to
random developers.</p>

<p>I intend to port <a href="http://mg.pov.lt/gtimelog/">GTimeLog</a> to it.
Although my more immediate need is to have <a
href="http://www.fbreader.org/">FBReader</a>, so that I can stop carrying both
this one and my N900 with me everywhere.  Also, <a
href="http://www.vim.org/">vim</a> would be nice.</p>

<p>I've already <a href="http://pastie.org/2218247">hacked up</a> Lithuanian
support to the virtual and hardware keyboards, thanks to the very nice design
of <a href="http://wiki.meego.com/Maliit">Maliit</a>.  As a comparison, I've
had my N900 for a year and a half, and I still can't type Lithuanian on it.
XKB is not fun.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2011-07-19T12:44:52Z</dc:date></item><item><title>N900 connection sharing the hard way</title><guid isPermaLink="false">n900-connection-sharing</guid><link>http://mg.pov.lt/blog/n900-connection-sharing</link><description>My N900 has a SIM card with a flat-rate 3G data plan. My laptop hasn't. What do I do when ...</description><content:encoded><![CDATA[
<p>My N900 has a SIM card with a flat-rate 3G data plan.  My laptop hasn't.
What do I do when I want to use the Internet on my laptop somewhere that
doesn't have WiFi?  Well, there are many options:</p>

<p><strong>Option 1: N900 as a USB modem</strong></p>

<p>Use the provided USB cable to connect the N900 to the laptop.  Choose "PC
Suite" mode on the N900 when you get the USB connection menu.  The laptop
now sees your N900 as a bog-standard USB 3G modem.  Use Network Manager to
connect to the internet.</p>

<blockquote>
  <p>Pros: no extra setup required.  The N900 and the laptop can both access
  the Internet at the same time.</p>

  <p>Cons: you have to use a USB cable (I hate cables).  You cannot ssh into your
  N900 (and ssh is my primary file transfer protocol between the laptop and the
  M900).</p>
</blockquote>

<p><strong>Option 2: N900 as a Bluetooth DUN modem</strong></p>

<p>Install <a
  href="http://maemo.org/downloads/product/Maemo5/bluetooth-dun/">Bluetooth DUN
  support</a> from Maemo Extras.  Then use it like you would any other phone
that has Bluetooth DUN.</p>

<blockquote>
  <p>Pros: no cables.</p>

  <p>Cons: Bluetooth is the worst technology <em>ever</em>.  I never had it
  work reliably.  Plus, Network Manager in Ubuntu 10.04 doesn't support
  Bluetooth DUN (it supports only Bluetooth PAN, as far as I know).</p>
</blockquote>

<p><strong>Option 3: N900 as a WiFi access point with Joikuspot</strong></p>

<p>I haven't tried this.</p>

<blockquote>
  <p>Pros: simple (hopefully), no cables required.</p>

  <p>Cons: Joikuspot is non-free.  I'm not an absolute zealot, but I will
  avoid closed-source stuff when open-source alternatives are available.</p>
</blockquote>

<p><strong>Option 4: N900 as a WiFi access point with <a href="http://mobilehotspot.garage.maemo.org/">Mobilehotspot</a></strong></p>

<p>I haven't tried this either.</p>

<blockquote>
  <p>Pros: it's an open-source app available from Maemo Extras.  No cables
  required.</p>

  <p>Cons: requires a non-standard kernel (or so I've heard).  Way outside my
  comfort level.</p>
</blockquote>

<p><strong>Option 5: N900 as a WiFi access point with shell scripts</strong></p>

<p>Here's the shell script I run on my N900: <a
href="http://mg.pov.lt/share-wifi">share-wifi</a>.  It sets up an ad-hoc WiFi
network, and starts a DHCP and DNS server (dnsmasq).  Sadly, it cannot set up
connection sharing (NAT), so I rely on OpenSSH as a SOCKS5 proxy.  The whole
setup is like this:</p>

<ol>
  <li>You want the latest firmware (PR 1.2) to avoid <a
      href="https://bugs.maemo.org/show_bug.cgi?id=5712">this bug</a>.</li>
  <li>You need to have <a
      href="http://maemo.org/downloads/product/Maemo5/openssh/">OpenSSH</a> installed on
      the N900.  Also, setting up key-based authentication makes it more
      convenient.</li>
  <li>The script assumes that you've set up sudo on the N900 so that you
      can run any command as root.</li>
  <li>You need to have <a
      href="http://maemo.org/packages/view/wireless-tools/">wireless-tools</a>
      installed.  It's in the main SSU repository so you should be able to sudo
      apt-get install it (if it's not preinstalled; I don't remember).</li>
  <li>On the N900 run <tt>share-wifi</tt> in a terminal (optionally passing a
      WiFi channel number from 1 to 11, in case you need to avoid interference with
      nearby networks).</li>
  <li>On the laptop connect to the new n900 WLAN and run
      <tt>ssh -D 1080 user@n900</tt>.  You will get a shell session; the SOCKS proxy
      will be active while it is open.</li>
  <li>Reconfigure your laptop to use a SOCKS5 proxy on localhost:1080.
      For GNOME systems I've a couple of shell scripts: <a
      href="http://mg.pov.lt/proxy-on">proxy-on</a> and <a
      href="http://mg.pov.lt/proxy-off">proxy-off</a>.  For applications
      that do not use the GNOME proxy settings (such as Subversion access
      over SSH), use <a href="http://mg.pov.lt/blog/escaping-hotel-firewall.html#tsocks">tsocks</a>.</li>
  <li>When done, hit Ctrl-C on the N900 to terminate the sharing script.</li>
</ol>

<blockquote>
  <p>Pros: no non-free software or custom kernel required.  No cables.</p>

  <p>Cons: complicated to set up.  No WLAN power savings available for ad-hoc
     networks, so battery life is extremely poor (~2 hours).  But, hey, <i>no
     cables!</i></p>
</blockquote>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2010-07-20T22:41:13Z</dc:date></item><item><title>Oopsie</title><guid isPermaLink="false">maemo-flood</guid><link>http://mg.pov.lt/blog/maemo-flood</link><description>Sorry for flooding Planet Maemo -- it was a side effect of changing this feed's URL to only include posts ...</description><content:encoded><![CDATA[
<p>Sorry for flooding Planet Maemo -- it was a side effect of changing this
feed's URL to only include posts tagged "maemo".  I'm not sure if the fault
is PyBlosxom's or the aggregator's</p>

<p>As a penance, here's a Terminal trick for you:</p>

<pre>
LABELS='[Tab,Esc,Enter,PgUp,PgDn,F2,VKB]'
KEYS='[Tab,Escape,KP_Enter,Page_Up,Page_Down,F2,Return]'
gconftool -s /apps/osso/xterm/key_labels --type list --list-type string "$LABELS"
gconftool -s /apps/osso/xterm/keys --type list --list-type string "$KEYS"
</pre>

<p>This changes the toolbar to have three extra keys (Enter, F2, and a key that
acts like Enter when the hardware keyboard is open, and opens the virtual
keyboard if the hardware keyboard is closed).</p>

<p><strong>Update:</strong> added screenshot:</p>

<p style="text-align: center">
<a href="http://mg.pov.lt/n900-xterm-toolbar.png">
<img style="border: 1px solid #ccc; padding: 6px"
     src="http://mg.pov.lt/n900-xterm-toolbar.png"
     alt="N900 Terminal with new toolbar buttons" width="400" height="240" />
</a>
<br/>
Nokia N900 Terminal app with new toolbar buttons
</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2010-03-03T17:45:34Z</dc:date></item><item><title>Maemo Summit 2009</title><guid isPermaLink="false">maemo-summit-2009</guid><link>http://mg.pov.lt/blog/maemo-summit-2009</link><description>The second Maemo Summit is over. Nokia surprised everyone on the first day by handing out 300 pre-release N900 s ...</description><content:encoded><![CDATA[
<p>The second <a
  href="http://wiki.maemo.org/Maemo_Summit_2009">Maemo Summit</a> is over.</p>

<p>Nokia surprised everyone on the first day by handing out 300 pre-release <a
  href="http://maemo.nokia.com/n900/">N900</a>s to the participants.  I'm so
happy now that after a long period of wavering I finally decided to come to the
summit!  The device is much better than I expected/feared (and I haven't even
put a SIM card in yet).  We're supposed to provide feedback and will have to
send the devices back to Nokia in 6 months.
(Nokia insisted on loan contracts <span
  style="text-decoration: line-through">signed in blood</span>, kidding, but
there are contracts.)</p>

<p>The tiny pixels are beautiful.  It's what, 266 pixels per inch?  Even older
225 dpi devices spoiled me: both the first generation iPhone and the first
generation Kindle displays seemed very coarse and pixellated.</p>

<p>The user interface is very smooth.  Having a composition manager improves
apparent responsiveness: even if the app is swapped out and not ready to
redraw, switching between windows appears to be instant since the picture is
cached.  And there's no flicker while the apps are redrawing.  (Flickering
during redraw is one of the main reasons I did not buy a S60 phone and stayed
with good old S40.)  Speaking of swapping, it's barely noticeable.  You can run
more apps than fit in RAM without having to suffer.  The flash memory is
noticeably faster than in a N810.  And there's more of it (32 gigs: 28 gig
partition for user data, the rest for the system: swap, applications, config
files, etc.)</p>

<p>The design and usability of the user interface have improved a lot since the
N810.  The UI is pretty.  Many of the apps are now convenient to use.
Pervasive kinetic scrolling is sweet (except when you have really long lists or
web pages, then it takes <em>forever</em> to reach the end).</p>

<p>Finally there are PIM-y things people missed in older Maemo releases:
calendaring, contacts that can record all kinds of information (such as phone
numbers).</p>

<p>All right, enough gushing.  There were some irritating things too.  For
example, Bluetooth support is buggy/incomplete in the pre-release firmware, so
it's hard to transfer files.  Calendar/contacts sync with S40 phones does not
work either.  GPS is utterly useless when you're offline (no maps, or at least
I haven't found a way to pre-download and cache them; also very long fix times
without network assistance).  Since I have no desire to pay extortionist
roaming charges of my provider (2.5 EUR per megabyte), and haven't had a chance
to go look for a prepaid SIM card, I usually have either WiFi or GPS coverage,
but not both.</p>

<p>As you can guess, playing the device diverted a part of my attention from
the presentations somewhat.  I tried to compensate for that by reporting
on the talks on IRC (using xchat on the device).  I think the strategy
backfired; IRC is rather disruptive and the channel is quite busy lately.</p>

<!-- bonus reading material that doesn't fit with the rest of the post:

On the second day I mostly followed talks about the Maemo 5 UI
(design principles, widgets etc.) and mostly ignored talks about the upcoming
Maemo 6 UI (multitouch, OpenGL acceleration plus animations at widget rather
than window level, flowable layouts supporting both portrait and landscape,
built on top of Qt instead of Gtk+/Clutter, inventing new UI paradigms instead
of copying what came before).  I think my interest in Maemo 6/UI will spike
when I get my hands on a Maemo 6 device, which definitely won't happen any time
soon.

-->
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2009-10-11T22:22:28Z</dc:date></item><item><title>Tying out Fennec Beta 1</title><guid isPermaLink="false">fennec-beta-1</guid><link>http://mg.pov.lt/blog/fennec-beta-1</link><description>Fennec, the mobile version of Firefox, released a new version (beta 1) for the Nokia N8x0 Internet Tablets recently. Here ...</description><content:encoded><![CDATA[
<p>Fennec, the mobile version of Firefox, released a <a
href="http://tonikitoo.blogspot.com/2009/03/fennec-mozilla-mobile-beta-1-released.html">new
version</a> (beta 1) for the Nokia N8x0 Internet Tablets recently.  Here are my
first impressions after about 15 minutes of use:</p>

<ul>
  <li>It supports the virtual on-screen keyboard now, so would be actually
      usable on the N800.</li>
  <li>Panning the page is very fast!  Unfortunately, opening pages is very
      slow.</li>
  <li>It eats a lot of memory rather quickly and bogs down when the system
      starts swapping.</li>
  <li>The user interface is going to be awesome, once the speed and memory
      problems are fixed.</li>
  <li>Going back in history is cumbersome when you have to pan to the side of
      the page.  The hardware back button doesn't seem to work.</li>
  <li>It has a nice large icon, but there's no small version, and this makes
      the application organizer in the control panel look weird.</li>
</ul>

<p>JFFS2, which is the file system used for internal flash memory on <abbr
title="Nokia Internet Tablets">NITs</abbr>, compresses all data, which makes
free space comparisons weird.  I had 5 megs free, freed up 20 more, then
installed Fennec (which, the Aplication Manager assured me, required 10 megs)
and ended up with 5 megs free.</p>

<p>I'd include a screenshot, but ad-hoc wifi doesn't work between my Thinkpad
and my N810 for some reason.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2009-03-20T20:47:36Z</dc:date></item><item><title>E-books are the future</title><guid isPermaLink="false">ebooks-are-the-future</guid><link>http://mg.pov.lt/blog/ebooks-are-the-future</link><description>John Siracusa talks sense about e-books ( via Charlie Stross ): Did you ride a horse to work today? I ...</description><content:encoded><![CDATA[
<p><a href="http://arstechnica.com/authors/john-siracusa/">John Siracusa</a> <a
href="http://arstechnica.com/gadgets/news/2009/02/the-once-and-future-e-book.ars">talks
sense about e-books</a> (<a
href="http://www.antipope.org/charlie/blog-static/2009/02/miscellaneous_links.html">via
Charlie Stross</a>):</p>

<blockquote> <q>Did you ride a horse to work today? I didn't. I'm sure plenty
of people swore they would never ride in or operate a "horseless carriage"—and
they never did! And then they died.</q></blockquote>

<p>I like the bit about dedicated e-book reader devices missing the point.  I'm
a huge e-book fan (reading them almost exclusively since about 2002 on various
handheld devices), but even I cannot justify to myself buying a bulky
one-purpose piece of electronics for $lots for the sole purpose of reading
books.  Get something universal, like a <a
href="http://www.amazon.com/Nokia-N810-Portable-Internet-Tablet/dp/B000Y4AH3C">Nokia
N810</a> or (if you hate freedom) an iPhone.  And stay away from <abbr
title="Digital Restrictions Management">DRM</abbr>-ed stuff.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2009-02-05T21:15:47Z</dc:date></item><item><title>N810: death and rebirth</title><guid isPermaLink="false">n810-death-and-rebirth</guid><link>http://mg.pov.lt/blog/n810-death-and-rebirth</link><description>My beloved N810 died last Tuesday. Well, not died died, but the screen stopped working. The topmost plastic layer is ...</description><content:encoded><![CDATA[
<p>My beloved N810 died last Tuesday.  Well, not <em>died</em> died, but the
screen stopped working.  The topmost plastic layer is fine, but the LCD is
probably cracked underneath.  This probably happened while I was in an Apple
store watching a friend of mine buy an iPhone.  Coincidence?</p>

<p>I ordered a new one from Amazon that evening, and it arrived on Thursday.
It had the oldest possible OS2008 version (and an <a
href="https://bugs.maemo.org/show_bug.cgi?id=2940">incorrectly-formatted
internal flash card</a>), so I had to reflash it, and then install the OS
feature updates one at a time, with forced a reboot in between.  Untimely <a
href="https://bugs.maemo.org/show_bug.cgi?id=3796">breakage of extras-devel</a>
didn't help either, and neither did the <a
href="https://garage.maemo.org/tracker/index.php?func=detail&aid=2736&group_id=29&atid=185">broken
maemo-mapper package</a> in extras.  (Both are fixed now.)</p>

<p>Almost all of my data was on the miniSD card (including a week-old backup).
To get the rest I had to blindly get the old N810 online and open a browser
page (measuring distances from the corner of the screen) to get past the hotel
wireless nag screen, and then guess its IP address, so that I could ssh in.</p>

<p>It thought maybe I could use arping on its MAC address to get the IP, but
had no luck there.  It didn't respond to broadcast pings either.  Finally I
had to ping every IP in my subnet individually and then grep for the MAC
address in my kernel's ARP cache.  Oh, how I wish Maemo came with avahi-daemon
preinstalled!  ssh mg-n810.local would have been so much simpler!</p>

<p>I'll try to get the old one repaired.</p>

<p><strong>Update:</strong> thp describes <a
href="http://thpmaemo.blogspot.com/2008/11/get-avahi-working-on-maemo.html">how
to get avahi-daemon on the tablet</a>.

<p><strong>Update 2:</strong> the old N810 is repaired (screen replacement
cost me 510 LTL, which is ~200 USD, at the local Nokia service center).
It now serves as an Internet Radio station at home.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-10-13T00:19:19Z</dc:date></item><item><title>Users and Developers</title><guid isPermaLink="false">users-and-developers</guid><link>http://mg.pov.lt/blog/users-and-developers</link><description>One recurring theme that I noticed during the Maemo Summit was people apologising for not being developers. A running joke ...</description><content:encoded><![CDATA[
<p>One recurring theme that I noticed during the Maemo Summit was people
<em>apologising</em> for not being developers.  A running joke during some of
the talks on the first day was people describing themselves as disabled because
they were not, themselves, developers.</p>

<p>That's just wrong.  Users should not be ashamed for being users!</p>

<p>I'm a developer, but <strong>I often want to be just a user.</strong>  I
want software to just work.  I wish there was no need for bug trackers.  I wish
users did not need to know about source packages or patches.  I want to hack
because I want to, not because I need to.</p>

<p>Until that becomes reality (if ever), I prefer the ability to make use of my
developer experience to make things better.  Hence my enthusiasm for open
source, bug trackers, source packages and patches.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-09-20T10:23:10Z</dc:date></item><item><title>Maemo Summit 2008</title><guid isPermaLink="false">maemo-summit</guid><link>http://mg.pov.lt/blog/maemo-summit</link><description>Nokia kindly sponsored my trip to Maemo Summit in Berlin. Unexpectedly was asked to give my LinuxTag presentation during the ...</description><content:encoded><![CDATA[
<p>Nokia kindly sponsored my trip to <a
href="https://wiki.maemo.org/Maemo_Summit_2008">Maemo Summit</a> in Berlin.</p>

<p>Unexpectedly was asked to give <a
href="http://mg.pov.lt/blog/linuxtag-day-2">my LinuxTag presentation</a> during
the lightning talks.  It did not go very well.  Note to self: advance
preparation helps, at least if you know you're going to present something.</p>

<p>Met PyPy folks (Maciej and Holger).  Had a mutual "what on Earth are you
doing here?" reaction.  Learned a new quirk in the Python language (try: ...
finally: does not set sys.exc_info()).</p>

<p>Impressed by one guy (sorry, but I'm <strong>really</strong> bad with names)
giving a presentation from the N810, with OpenOffice.org Impress in a Debian
chroot, over a SIS USB2VGA dongle.  Apparently he created the whole setup in
half an hour before the actual talk.</p>

<p>No free wireless at the hotel.  Paid wifi options include 25 EUR for 24
hours or 30 EUR for 30 days.  Can I have just the 29 days for the 5 EUR?
<strong>No.</strong></p>

<p>The WiFi at <a href="http://en.wikipedia.org/wiki/C-base">c-base</a> was
fast and almost flawless.  Missed half of the talks while checking my email and
blogs.  I'm addicted to the Internet. :(</p>

<p>Still able to get up before 6 AM.  The US trip has done wonders with my
daily schedule.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-09-20T07:33:11Z</dc:date></item><item><title>Asus EeePC 900</title><guid isPermaLink="false">asus-eeepc-900</guid><link>http://mg.pov.lt/blog/asus-eeepc-900</link><description>I unexpectedly acquired an Asus EeePC 900 last weekend. Lovely piece of hardware. The Xandros distro was okay at first ...</description><content:encoded><![CDATA[
<p>I unexpectedly acquired an <a
href="http://eeepc.asus.com/global/900.htm">Asus EeePC 900</a> last weekend.
Lovely piece of hardware.</p>

<p>The Xandros distro was okay at first (<a
href="http://www.icewm.org/">IceWM</a> brought me fond memories of the year
2000, <a href="http://gedmin.as/icewm/index-en.html">when I used it</a>).  Then
I started longing for Firefox 3 and the aesthetics of GNOME applications.
Finally, when <tt>apt-cache search</tt> told me there was no SSH server package
available, I gave up and installed <a href="http://www.ubuntu-eee.com/">Ubuntu
Eee</a> from a SD card.  The software selection is incomparable (Asus/Xandros:
870 packages available, according to <tt>apt-cache stats</tt>.  Ubuntu: over
30,000 packages.)  Also, yay rotating cube desktop!</p>

<p>Things I like about the Eee:</p>

<ul>
<li>Small! Lightweight! Beautiful white colour!</li>
<li>Small pixels are pretty! 1024x600 at 8.9" is 133 dpi.  Not quite the 225
dpi of a Nokia N810, but nicer than the 100 dpi of my T61W or the 85 dpi of my
19" external LCD.</li>
<li>The keyboard is much better than I expected.  I hate those laptops that
squeeze Home/End/PgUp/PgDn in an extra column on the right.  Asus didn't.</li>
<li>Web browsing is much more pleasant than on a N810.  It's faster for AJAXy
sites such as Google Reader.  Also, Firefox 3.</li>
<li>Video watching is much more pleasant than on a N810: no need to convert
anything.</li>
</ul>

<p>Things that are bad:</p>

<ul>
<li>It gets hot.  Either the hardware is not power-efficient, or the software
isn't doing a good job.</li>
<li>Only 2 hours of battery life (plus an extra 40 minute safety warning with
the blinking red battery low light).  This is during normal usage (WiFi on,
Compiz, Firefox, no CPU-intensive Flash plugins).</li>
<li>No integrated Bluetooth.  Therefore you have to lug a dongle around if
you want to use GPRS/EDGE/3G when there are no WiFi access points around.
I hate dongles.</li>
<li>Doesn't come with Ubuntu preinstalled.</li>
<li>Not all hardware works in Ubuntu:
  <ul>
    <li> Even after using the Eee version of Ubuntu I had to manually tweak
         config files and compile kernel modules to get volume hot keys working.
         </li>
    <li> No webcam or mic for me, though others report those working. </li>
    <li> Touchpad is not configurable and doesn't do wheel emulation on the
         right edge, although most other gestures work. </li>
    <li> Sound needs a module reload after suspend/resume, which causes an
         irritating error dialog from the volume control applet).</li>
    <li> Video playback sometimes shows a blank black screen until you move a
         window to overlap part of the picture. </li>
    <li> Firefox scrolling/redrawing under Compiz is noticeably slow sometimes
         (I don't know if it's because I enabled CPU frequency scaling, or if
         this is a <a
         href="https://bugs.launchpad.net/xserver-xorg-video-intel/+bug/177492">problem
         with the Intel graphics driver problem</a>.).</li>
    <li> When I unplug a Bluetooth USB dongle, a btdelconn process starts
         eating 100% CPU time in the kernel and cannot be killed. Did I mention
         my hate for dongles? </li>
  </ul>
</li>
</ul>

<p>My workhorse, a 14" Lenovo T61W, now seems <em>huge</em> by comparison:</p>

<center>
<img src="http://mg.pov.lt/n810-eeepc-t61.jpg" width="649" height="471"
     alt="Nokia N810 on top of Asus EeePC 900 on top of Lenovo ThinkPad T61W"
     />
</center>

<p>I'm not going to stop using my N810 (which fits in a pocket, has a much longer
battery life, and is more convenient for e-books or <a
href="http://numptyphysics.garage.maemo.org/">NumptyPhysics</a>).  I'll stop
lugging my T61W around instead and start leaving it at work.  The EeePC is an
almost-perfect travelling laptop.</p>

<p>The upcoming <a
href="http://www.reghardware.co.uk/2008/06/17/review_eee_pc_901/">Asus EeePC
901</a> is going to fix the lack of internal Bluetooth and the battery life.  I
wonder when it will become available in Lithuania.  (The 900 is displayed in
almost every electronics shop here.  Yay Asus.  Boo Nokia for not doing this
with its Internet Tablets.)</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-06-21T19:56:27Z</dc:date></item><item><title>Out of touch with reality</title><guid isPermaLink="false">out-of-touch</guid><link>http://mg.pov.lt/blog/out-of-touch</link><description>I used Windows at work until January 2002, when I changed jobs and went to Linux full-time. I barely remember ...</description><content:encoded><![CDATA[
<p>I used Windows at work until January 2002, when I changed jobs and went to
Linux full-time.  I barely remember what life was back then.  Driver CDs you
had to install before plugging in new hardware, shareware apps that you had
to pay for and couldn't see how they worked, web pages full of blinking
advertisements.  Magic voodoo rituals you had to do to fix your IS when it
broke down, that you had to do by rote without full understanding of how it
all fit together.</p>

<p>These days I run Ubuntu.  Hardware just works (or doesn't).  Apps are
an apt-get install away.  Web pages I read mostly end in .org and rarely
have obnoxious ads.  The system breaks rather more often than I'd like, but at
least there are no artificial obstacles in the way of debugging.  Download
the sources, recompile with debug symbols, go.</p>

<p>I am a programmer, and I've been one for many years now.  I found something
that works for me, and I'm mostly happy.  I do not want to tell you how you
should live your life, or what OS you should use on your laptop.</p>

<p>Recently I was <a
href="http://maemo.org/news/planet-maemo/view/with_some_power-comes_slight_responsibility.html">hit
on the head with the understanding</a> that my point of view is somewhat
atypical.  As a programmer and a long-time Linux power user I have the skills
and knowledge to download sources of applications, apply patches, and build
packages.  I don't view these tasks as <em>development</em>, because I'm not
creating anything new.  I'm just using the fruits of others' labour a bit
earlier than I would have if I'd just waited for the next Ubuntu version to
bring me the updated package in 6 months.</p>

<p>I want to apologize to <a
href="http://viper.haque.net/~timeless/">timeless</a> for expressing myself
badly.  I did not mean to complain or demand anything.  I wanted to
<em>encourage</em> transparency by disagreeing with a previous claim (which
was that marking bugs as fixed was useless unless the developers provided
updated packages for the current distro or released the next distro ASAP).
But then I couldn't resist adding a poorly-written postscript and got
the opposite reaction: timeless quoted my words as an example of <em>How can
  people discourage transparency</em>:</p>

<blockquote>
  Personally, I'm disappointed that when a bug is closed as "fixed in diablo",
  as a user I've no idea how to get the updated package on my N810.  I've got
  scratchbox handy, just point me at the new source package and I'll backport
  it -- but repository.maemo.org has no 'diablo' in dists/.
</blockquote>

<p>This is what I'm used to, with Ubuntu, and open-source software in
general.  When a bug is fixed, I get a choice: wait for the updated package, or
dig out the fix from the publicly available version control system.</p>

<p>It's what I'd like to have, but not something that I demand of Nokia (or its
employees).  I do not think I have the right to demand it from anyone.</p>

<p>I should finally learn to think more and write less.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-06-13T20:01:36Z</dc:date></item><item><title>LinuxTag 2008, day 4</title><guid isPermaLink="false">linuxtag-day-4</guid><link>http://mg.pov.lt/blog/linuxtag-day-4</link><description>The last day. Saw a bunch of interesting talks about freedesktop.org, Ekiga, GNOME and Ubuntu. Jono Bacon's talk was very ...</description><content:encoded><![CDATA[
<p>The last day.  Saw a bunch of interesting talks about freedesktop.org,
Ekiga, GNOME and Ubuntu.  Jono Bacon's talk was very interesting.  I think if
Nokia is interested in building a healthy developer community, they would do
well to talk to Jono about it.</p>

<p>Got a USB gender-bender from Kees Jongenburger -- now I can plug in 
USB devices to my N810, provided that they don't require too much power (extra
software required: usbcontrol from Maemo Extras). I owe you one Kees!</p>

<p>Discovered that the GNOME booth does in fact have T-shirts for sale, they're
just not out on display like in other booths.  Sadly, since I discovered that
during the last hour of the last day of the conference, only extra large
T-shirts were left.  Spent my last 10 EUR in cash on the T-shirt anyway.
;-)</p>

<p>Met MaryBeth Panagos from OpenMediaNow, learned about interesting happenings
with Gnash, open media codecs and Ubuntu Mobile.  Raised my hopes for a
brighter future.  Showed off my N810 and expressed my hopes for Gnash replacing
the closed Adobe Flash player on it.  It won't happen any time soon -- everyone
wants it now!, but there are few developers actually working on it.</p>

<p>Went to a very geeky cafe/computer club c-base for the Ubuntu BBQ.  Almost
didn't find the place, but one of the LinuxTag guys happened to be going back
at just the right moment to show me the path hidden behind the bushes.</p>

<p>Feeling content now.  Well, missing free (or at least paid, but working --
boo, Swisscom, boo!) WiFi at the hotel, but other than that I've had a
wonderful time.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-06-01T13:23:14Z</dc:date></item><item><title>LinuxTag 2008, day 3</title><guid isPermaLink="false">linuxtag-day-3</guid><link>http://mg.pov.lt/blog/linuxtag-day-3</link><description>After getting my presentation out of the way, I was finally able to relax and really enjoy LinuxTag. I hadn't ...</description><content:encoded><![CDATA[
<p>After getting my presentation out of the way, I was finally able to relax
and really enjoy LinuxTag.  I hadn't realised quite how stressed I was about
the talk.  I'm really happy now that I agreed to come.</p>

<p>Watched an amazing demo in the <a
href="http://www.linuxmce.org/">LinuxMCE</a> booth.  I always though it was
some kind of a media center app for watching movies, but it turns out to be a
complete home automation system where you can control the lights, security
cameras and, of course, multimedia, with a large variety of devices (remote
controls, mobile phones, VoIP hardware phones, Nokia Internet tablets).
Still, I'd have to get a house first.</p>

<p>After the conference I went out for a beer (or, rather, a cup of Earl
Grey) in the city with Gary "lcuk" Birkett and Malgorzata Ciesielska, who is
doing her PhD on Nokia/Maemo community organisation/collaboration.  Had a
really nice evening.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-05-31T16:17:40Z</dc:date></item><item><title>LinuxTag 2008, day 2</title><guid isPermaLink="false">linuxtag-day-2</guid><link>http://mg.pov.lt/blog/linuxtag-day-2</link><description>The day just flew by. We had all the Maemo community talks. Some people have asked me to put my ...</description><content:encoded><![CDATA[
<p>The day just flew by.  We had all the Maemo community talks. Some people
have asked me to put my LinuxTag presentation online, so here it is: <a
href="http://mg.pov.lt/maemo-thoughts-linuxtag.pdf">What do I want from
Maemo?</a>.</p>

<p>In the evening we went to a nice outdoors cafe in a large and beautiful park
(Tiergaten) and talked about various things until 1 AM.</p>

<p>My email is piling up, and Google Reader is overflowing.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-05-30T10:55:40Z</dc:date></item><item><title>LinuxTag 2008</title><guid isPermaLink="false">linuxtag-day-1</guid><link>http://mg.pov.lt/blog/linuxtag-day-1</link><description>Nokia kindly invited me to speak about Maemo at LinuxTag 2008. WiFi is a bit problematic here. At the hotel ...</description><content:encoded><![CDATA[
<p>Nokia kindly invited me to speak about Maemo at LinuxTag 2008.</p>

<p>WiFi is a bit problematic here.  At the hotel there's no free wifi, you
can buy some kind of access from Swisscom at silly prices (8 EUR for 1 hour,
with a 100 MB download limit) with silly limitations, and besides my laptop
refuses to associate with the AP and doesn't even get to the login page.</p>

<p>WiFi works at LinuxTag itself (at least in the conference rooms; the expo
hall was spotty), but you have to visit a pointless and slow web page and press
a button labeled 'Go' before they let you ssh around.  I fail to see the point,
but at least I can get my email now.</p>

<p>Everyone is very nice here.  I only attended one talk by now (Cristoph
Hellwig's interesting talk about xfs), but I hardly saw any open laptops in
the audience.</p>

<p>The Berlin public transport system is not difficult to figure out.  The
N810's built-in GPS is not useful in practice.  I got a fix exactly once after
standing for about 10 minutes outside of the hotel.  Maemo Mapper is useful for
figuring out your actual location on the map, as you're listening to station
names on the bus.</p>

<p>Met some people (hi, Dave!).  My memory for names is still atrocious.  My
bad eyesight doesn't let me read badges easily, either.  By the way, if you're
designing badges that will hang from a lanyard, please print them with the same
text on <em>both sides</em>.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-05-28T11:18:13Z</dc:date></item><item><title>Happiness is...</title><guid isPermaLink="false">n810</guid><link>http://mg.pov.lt/blog/n810</link><description>... not having a headache. In other news, my Nokia N810 Internet Tablet finally arrived. It looks better in real ...</description><content:encoded><![CDATA[
<p>... not having a headache.</p>

<p>In other news, my <a href="http://en.wikipedia.org/wiki/Nokia_N810">Nokia
N810 Internet Tablet</a> finally arrived.  It looks better in real life than in
pictures.</p>

<p>Strange quirk: the 2 gigs of extra internal flash memory (formatted as
FAT32) are mostly unused (according to df) while at the same time being
three quarters full (according to du):</p>

<pre>
<span class="prompt">/media/mmc2 $</span> <span class="typing">df -h .</span>
Filesystem                Size      Used Available Use% Mounted on
/dev/mmcblk0p1            1.9G      8.0k      1.9G   0% /media/mmc2
<span class="prompt">/media/mmc2 $</span> <span class="typing">du -sh .</span>
1.5G    .
</pre>

<p>Ouch. Time to run fsck.vfat on it.  Or perhaps just reformat, to avoid the
other famous bug (<a href="https://bugs.maemo.org/show_bug.cgi?id=2802">attempt
to access beyond end of device</a>), which, let me check, yes, I also see:</p>

<pre>
[584959.868000] usb-storage: device scan complete
[584959.868000] scsi 3:0:0:0: Direct-Access     Nokia    N810              031 PQ: 0 ANSI: 2
[584959.868000] scsi 3:0:0:1: Direct-Access     Nokia    N810              031 PQ: 0 ANSI: 2
[584959.872000] sd 3:0:0:0: [sdb] 3932160 512-byte hardware sectors (2013 MB)
[584959.872000] sd 3:0:0:0: [sdb] Write Protect is off
[584959.872000] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[584959.872000] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[584959.872000] sd 3:0:0:0: [sdb] 3932160 512-byte hardware sectors (2013 MB)
[584959.876000] sd 3:0:0:0: [sdb] Write Protect is off
[584959.876000] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[584959.876000] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[584959.876000]  sdb: sdb1
[584959.880000]  sdb: <span class="important">p1 exceeds device capacity</span>
[584959.884000] sd 3:0:0:0: [sdb] Attached SCSI removable disk
[584959.884000] sd 3:0:0:0: Attached scsi generic sg2 type 0
[584959.884000] sd 3:0:0:1: [sdc] Attached SCSI removable disk
[584959.884000] sd 3:0:0:1: Attached scsi generic sg3 type 0
[584960.240000] attempt to access beyond end of device
[584960.240000] sdb: rw=0, want=4013848, limit=3932160
[584960.240000] Buffer I/O error on device sdb1, logical block 501728
</pre>

<p>It would be interesting to know how this came to be.  Do some N810s have
more internal memory than others?  Or was the filesystem image made too big
for all of them by accident?</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-03-21T21:54:09Z</dc:date></item><item><title>Discovery of the day</title><guid isPermaLink="false">python-zipfile</guid><link>http://mg.pov.lt/blog/python-zipfile</link><description>If you have python but not unzip (consider, e.g. a Nokia Internet Tablet ), you can extract zip files with ...</description><content:encoded><![CDATA[
<p>If you have python but not unzip (consider, e.g. a <a
href="http://en.wikipedia.org/wiki/Nokia_N800">Nokia Internet Tablet</a>), you
can extract zip files with</p>

<blockquote><pre>
python -m zipfile -e <em>filename</em>.zip .
</pre></blockquote>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2008-01-22T12:08:28Z</dc:date></item><item><title>Nokia can has web server pls?</title><guid isPermaLink="false">nokia-complaint</guid><link>http://mg.pov.lt/blog/nokia-complaint</link><description>The inability of Nokia to provide reliable web servers for repository.maemo.org and tablets-dev.nokia.com is annoying. I am unable to build ...</description><content:encoded><![CDATA[
<p>The inability of Nokia to provide reliable web servers for
repository.maemo.org and tablets-dev.nokia.com is annoying.  I am unable to
build packages for N810 because the apt repository that contains build
dependencies is down, and apparently has been down for a couple of days
already.</p>
]]></content:encoded><category domain="http://mg.pov.lt">/home/mg/blog/data</category><dc:date>2007-12-20T23:33:09Z</dc:date></item></channel></rss>
