<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Aigarius Blog (Posts about linux)</title><link>http://aigarius.com/</link><description></description><atom:link href="http://aigarius.com/categories/linux.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:aigarius@gmail.com"&gt;Aigars Mahinovs&lt;/a&gt; </copyright><lastBuildDate>Mon, 23 Mar 2026 10:25:30 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Moved to Mezzanine</title><link>http://aigarius.com/blog/2013/10/21/moved-to-mezzanine/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      After my server that has hosted my blog for some years had given out its
      last breath (second motherboard failure), I decited it was time for a
      change. And not just server change, but also change in the blog engine
      itself. As I now focus on Python and Django almost exclusively at work, it
      felt logical to use some kind of Django-based blog or CMS. I tried
      django-cms and mezzanine and ...
      &lt;a href="http://mezzanine.jupo.org/"&gt;Mezzanine&lt;/a&gt; is so fast and simple,
      that I simply stopped looking.
    &lt;/p&gt;
    &lt;p&gt;
      After simply following the tutorial and creating a
      &lt;a href="https://github.com/aigarius/aigblog"&gt;skeleton project&lt;/a&gt;, I had
      a ready-to go site with all the CMS features, incuding a blog. I just had
      to change a few settings to have the blog module be the home page of the
      site, change site settings for the title and Google Analytics settings and
      such and tweak the theme a bit to my liking.
    &lt;/p&gt;
    &lt;p&gt;
      This was my first real exposure to a
      &lt;a href="http://getbootstrap.com/2.3.2/"&gt;Bootstrap&lt;/a&gt; design. I must say
      - it is very simple to understand and modify if your needs fit within its
      limits. For example, I wanted to remove the left sidebar and expand the
      main content block to fill that. All I had to do was to remove the div
      element with class "left-sidebar span-2" and change the class of the main
      content part from "span-7" to "span-9". To do that I simply copied the
      templates/base.html file from mezzanine default templates and modified it.
      The information from django-debug-toolbar showed me what files were used
      in rendering the page.
    &lt;/p&gt;
    &lt;p&gt;
      But the feature that really got me hooked was the Wordpress import. Using
      a simple management command I was able to feed into Mezzanine instance the
      XML export file from Wordpress. It created blog posts, categories,
      comments, static pages and even redirects from Wordpress permalinks to
      Mezzanine permalinks. It was not flawless - there were a few issues:
    &lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;
        I had to set the COMMENT_MAX_LENGTH setting to something higher than the
        default 3000 chars to accomodate some longer comments
      &lt;/li&gt;
      &lt;li&gt;
        As I failed to clean up the comments before exporting, comments marked
        as spam in Wordpress still got into the XML and showed up in the new
        blog without being marked as spam there
      &lt;/li&gt;
      &lt;li&gt;
        Some comments (mostly spam) had a much longer user name than 50 char
        maximum. Even with a --noinput setting that should have truncated the
        names, the import errored-out as Django passed the long strings to the
        Postgress database which promptly refused to store too much data or to
        truncate it. I chose to work around that by increasing the column size
        in Postgress.
      &lt;/li&gt;
      &lt;li&gt;
        One of the posts did not have a set title, so the import took the whole
        first paragraph as the title and then failed to create a good slug from
        it. This caused the redirect creation to fail. I fixed this by editing
        the XML file and setting a title.
      &lt;/li&gt;
      &lt;li&gt;
        It looks like the slug creation for the redirect and the actual slug are
        slightly different. Some permalink redirects for posts with non-ascii
        symbols in the title failed to link up correctly
      &lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      After that was done it was a relatively straightforward process of picking
      up the code and data and deploying it to a Django-friendly hosting
      service. There is a plenty of good competition out there, most now offer a
      simple one-click Django installation, so I just created a simple Django
      skeleton via their web interface and then replace what they generated with
      my app while keeping their settings as local_settings.py . I should
      probably write a bit more details about the process. After I create a
      custom fabric file for this.
    &lt;/p&gt;
    &lt;p&gt;
      It is quite a strange feeling to have a Mezzanine blog that responds
      faster from a shared server half a continent away, compared to a Wordpress
      on dedicated server in the same room
    &lt;/p&gt;
    &lt;p&gt;
      There are a few features that I am still missing - most notably draft post
      autosave. That has bitten me hard while writing this post :P Also a
      Twitter digest post feature. But on the bright side - that is a great
      motivation to write such features, preferably in a portable way that other
      people can use too :)
    &lt;/p&gt;</description><category>Debian-planet</category><category>django</category><category>floss</category><category>linux</category><category>programming</category><category>python</category><category>Ubuntu.lv-planet</category><guid>http://aigarius.com/blog/2013/10/21/moved-to-mezzanine/</guid><pubDate>Mon, 21 Oct 2013 09:10:43 GMT</pubDate></item><item><title>Cloning or pre-configuring a batch of Android phones</title><link>http://aigarius.com/blog/2012/09/23/cloning-or-pre-configuring-a-batch-of-android-phones/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      An interesting question popped up in my Twitter stream today - is there an
      Android alternative to
      &lt;a href="http://itunes.apple.com/lv/app/apple-configurator/id434433123?mt=12"&gt;Apple configurator&lt;/a&gt;
      (for iPhone, iPad and iPod Touch) that allows to create a bunch of
      identical Apple devices with some added configurations and applications.
      The best I could come up with is not as polished, but on the other hand
      much more powerful option - Nandroid backup and restore (also known as
      ClockworkMod Recovery backup).
    &lt;/p&gt;
    &lt;p&gt;
      To do this, you need a source phone and a bunch of destination phones. On
      the source phone a
      &lt;a href="http://www.clockworkmod.com/rommanager"&gt;ClockworkMod Recovery&lt;/a&gt;
      (CWR) must be installed (either via a root or via a bootloader unlock). On
      the destination phones you will either need to also install ClockworkMod
      Recovery or unlock the bootloader to allow the
      &lt;a href="http://wiki.cyanogenmod.com/wiki/Fastboot"&gt;Fastboot&lt;/a&gt; tool to
      work.
    &lt;/p&gt;
    &lt;p&gt;
      So the procedure then goes as follows:&lt;br&gt;1. Unlock the bootloader on
      the source phone (search for device specific info on how to do that)&lt;br&gt;2.
      Use &lt;code&gt;fastboot flash recovery filename.img&lt;/code&gt; to write a
      device-specific version of CWR to the recovery partition of the device
      (the phone must be in fastboot mode at that point)&lt;br&gt;3. Do whatever
      customisations you want to the source phone at this point. You can use
      custorm ROMs, install whatever applications, do whatever configuration,
      but I would suggest keeping everything in phone memory so you don't have
      to flash the SD card as well.&lt;br&gt;4. Reboot the source phone into CWR
      mode, use the backup option to create a full backup.&lt;br&gt;5. The backup
      will now be in the SD card of the source device. Copy that to the computer
      that you will use for creating copies.
    &lt;/p&gt;
    &lt;p&gt;
      For each destination phone:&lt;br&gt;6. Unlock the bootloader of the
      destination phone&lt;br&gt;7. Reboot the phone in the fastboot mode, connect
      it via USB to the copying computer&lt;br&gt;8. Flash all partitions from the
      backup using &lt;code&gt;fastboot flash ...&lt;/code&gt; commands, skip flashing the
      recovery partition if you don't want CMR on the destination device&lt;br&gt;9.
      Re-lock the bootloader (with &lt;code&gt;fastboot oem lock&lt;/code&gt;)
    &lt;/p&gt;
    &lt;p&gt;And you are done!&lt;/p&gt;
    &lt;p&gt;
      All the phones must be of the same model. And that model must support
      unlocking bootloader for this to work.
    &lt;/p&gt;
    &lt;p&gt;
      I prefer this method, because this way it is possible to create an end
      device without root, with a locked bootloader and without CWR thus
      providing some security as unlocking the bootloader wipes the device, so
      without specific hacking an attacker can not easily get access to system
      data on such device. It is also possible to do this with devices that do
      not have an boot unlock if there is a way to root the original firmware
      which allows to install CWR and go on from there, but that is
      significantly more complicated and time-consuming, so using devices with
      an ability to unlock the bootloader is much preferable.
    &lt;/p&gt;
    &lt;p&gt;
      However, before you go to all that trouble, it might be worth to consider
      if maybe for your particular use case it would be enough with the two
      commands from Android SDK - &lt;code&gt;adb install ...&lt;/code&gt; and
      &lt;code&gt;adb push ...&lt;/code&gt; to install applications or individual files on
      devices or &lt;code&gt;adb backup AppName&lt;/code&gt; and
      &lt;code&gt;adb restore ...&lt;/code&gt; to backup and restore one or more individual
      applications with all their settings. These options have the benefit of
      that they will work across different device models and that they do not
      wipe other data or applications from the devices.
    &lt;/p&gt;
    &lt;p&gt;
      As I could not immediately find a better way or even a detailed guide how
      to do this, I decided to write this post, so it would be easier for other
      people to find this information. If you know a better way, please do
      mention it in the comments section!
    &lt;/p&gt;</description><category>android</category><category>Debian-planet</category><category>google</category><category>hack</category><category>hardware</category><category>linux</category><category>nexus-s</category><category>Ubuntu.lv-planet</category><guid>http://aigarius.com/blog/2012/09/23/cloning-or-pre-configuring-a-batch-of-android-phones/</guid><pubDate>Sun, 23 Sep 2012 14:09:43 GMT</pubDate></item><item><title>You though NVidia was bad, don&amp;#39;t try AMD</title><link>http://aigarius.com/blog/2012/09/10/you-though-nvidia-was-bad-dont-try-amd/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      Remember when Linus Torvalds lambasted NVidia for not supporting their
      Optimus technology in their Linux drivers for half a decade and counting?
      Well, I went out and bought an AMD/ATi video card as mu upgrade. And you
      know what? Its Linux drivers are far, far worse than NVidia.&lt;br&gt;1. Most
      of the games I had working fine on NVidia, do not work on AMD. And those
      that do suffer far more visual corruption, synchronization bugs (like
      bottom 40% of the screen rendering half a second after the top 60%),
      strange visual artifacts (weird triangles popping out of everywhere) and
      crashes, lots of crashes.&lt;br&gt;2. There were crashes with NVidia too, but
      NVidia never managed to crash Compiz along with it or crash the whole X
      server or lock up the system so far that only SysRq works or even lock up
      the system so far that only powering it off manually works.&lt;br&gt;3. And
      then there is the configuration atrocity. Apparently AMD is too good to
      store its configuration in /etc/X11/xorg.conf. Or even to document the
      supported options there. Instead they have their own (also undocumented)
      configuration file in /etc/ati folder. And it is undocumented because it
      is a cryptic mess and the only supported way to change it is to use their
      tools - aticonfig and amdccccle. The command line tool is almost
      reasonable, except it is also barely documented. For example, one of my
      screens somehow was always stared at 1920x1080@30Hz. There were 3
      different ways to specify default resolution, but none of them used or
      saved the refresh rate. And when I changed it in the GUI tool - the
      refresh rate did change, but it was never saved. Oh there nowhere is a
      save button. It 'just works', except when it doesn't. Like: both of my
      screens for some reason started with huge black borders around the screen,
      I finally narrowed it down to the GUI setting "overscan" which defaulted
      to 10%. Ok, so I change it, it works, but next time I reboot, the overscan
      is back! I had to find an undocumented invocation of the aticonfig that
      would change the default value to 0%. Why did this one setting not save?
      Oh and fun note - the refresh rate of that second screen was correct on
      the login screen, but it then swiched back as I logged in. Fun, huh?&lt;br&gt;4.
      Even at basic desktop tasks fglrx if inferior to not only the free driver,
      but also to the nvidia driver - even simple scrolling of a large folder in
      nautilus seems to tax the 200$ card to its limits - the bottom row blinks
      into place almost half a second after I stop scrolling. Another example -
      with NVidia when I switch my TV to the HDMI input from the card, the sound
      starts at the same moment as the picture, however with AMD the sound only
      decides to show up 10-15 seconds later. And sometime it does not show up
      at all, unless I start the AMD Control GUI tool and only then the sound
      shows up 15 seconds later (without doing anything in the GUI).
    &lt;/p&gt;
    &lt;p&gt;
      It may be that one part of AMD is better than NVidia at talking to free
      driver developers, but another part is so much worse at actual technical
      work of writing a driver, it is not even funny. They are busy reinventing
      the bycicle of configuration and display management, while their core
      driver is just ... not good enough.
    &lt;/p&gt;
    &lt;p&gt;TL/DR: Anyone wanna buy a HD 6850 cheaply off my hands?&lt;/p&gt;
    &lt;p&gt;
      Crossposted to Google+ -
      &lt;a href="https://plus.google.com/u/0/107099528362923100900/posts/6PC7RFQpm8K"&gt;https://plus.google.com/u/0/107099528362923100900/posts/6PC7RFQpm8K&lt;/a&gt;
    &lt;/p&gt;
    &lt;p&gt;
      P.S. I also noticed the color difference - with NVidia there was no
      difference between colors on my LCD TV and my IPS monitor, but with AMD
      there is a huge difference, the TV color just got washed out. I guess
      there is no proper color calibration support in the AMD driver?
    &lt;/p&gt;
    &lt;p&gt;
      &lt;strong&gt;Update:&lt;/strong&gt; I have managed to return the HD 6850 to the shop
      where I got it from (thanks to a nice law requiring web shops to take
      stuff back within 14 days no questions asked) and got the new NVidia
      GeForce GTX 660 instead. I had to build an updated NVidia driver (304.48
      from
      &lt;a href="https://plus.google.com/u/0/118125769023950376556/posts/bHW91CsG4bP"&gt;this post&lt;/a&gt;, just like
      &lt;a href="https://launchpad.net/~upubuntu-com/+archive/nvidia-unstable/+build/3790709"&gt;here&lt;/a&gt;
      or &lt;a href="http://packages.debian.org/sid/nvidia-glx"&gt;here&lt;/a&gt;) but other
      than that it was smooth and painless and everything is working great
      again. Only even faster :)
    &lt;/p&gt;</description><category>debian</category><category>Debian-planet</category><category>hardware</category><category>linux</category><category>ubuntu</category><guid>http://aigarius.com/blog/2012/09/10/you-though-nvidia-was-bad-dont-try-amd/</guid><pubDate>Mon, 10 Sep 2012 20:09:34 GMT</pubDate></item><item><title>NVidia Optimus fail</title><link>http://aigarius.com/blog/2011/05/24/nvidia-optimus-fail/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      Guys, we have a problem. The name of that problem is
      &lt;a href="http://www.nvidia.com"&gt;NVidia&lt;/a&gt; and their
      &lt;a href="http://www.nvidia.com/object/optimus_technology.html"&gt;Optimus technology&lt;/a&gt;. The idea of that tech is quite neat - take a laptop, put two video
      cards in it, use the powerful card when you need 3D power, use the weak
      card when you need to conserve battery. The problem is that any laptop
      with this technology is currently an expensive paperweight on Linux (or
      rather it was so until a couple weeks ago, see below). And NVidia has
      &lt;a href="http://www.nvnews.net/vbulletin/showthread.php?t=144750"&gt;no plans for fixing that&lt;/a&gt;.
    &lt;/p&gt;
    &lt;p&gt;Let me explain the technicalities.&lt;/p&gt;
    &lt;p&gt;
      In all modern laptops (such as the new and sexy
      &lt;a href="http://www.engadget.com/2011/05/23/dell-xps-15z-review/"&gt;Dell XPS 15z&lt;/a&gt;
      and many, many others) NVidia Optimus is implemented as follows - there is
      an NVidia card and an Intel card, all display outputs are connected to the
      Intel card, when the user wants more 3D power, the NVidia card is powered
      on and it renders an image into a framebuffer in the video memory of the
      Intel card which is the responsible for actually outputing that
      framebuffer to a display.
    &lt;/p&gt;
    &lt;p&gt;
      Currently in Linux if you are using NVidia drivers the Intel card is left
      uninitialised, your session starts up fine on the NVidia card, it outputs
      the resulting picture onto the video memory of the Intel card, but ... the
      Intel card is not configured in any way and so it does not do anything
      further with this picture and the display stays black.
    &lt;/p&gt;
    &lt;p&gt;
      The alternative is to use Intel video card driver and then the NVidia card
      stays there in your laptop as dead weight. It does not even power down
      (out of the box) so you have all the power consumption and none of the
      functionality. There is some support from NVidia to using that card for
      CUDA computing purposes in such situation, but nothing else.
    &lt;/p&gt;
    &lt;p&gt;
      After years of neglect and statements from NVidia that Optimus support in
      Linux is impossible and thus not even planned, one individual stepped up
      and
      &lt;a href="http://www.martin-juhl.dk/2011/05/optimus-on-linux-problem-solved/"&gt;made it work&lt;/a&gt;. Yes, the solution is hacky, yes it is a hassle to set up and make it
      work, but this is the first glimmer of hope for actually working Optimus
      on Linux. Over the last couple years the share of laptops with Optimus has
      greatly increased - almost all laptops that have NVidia video cards have
      Optimus now. This
      &lt;a href="https://github.com/MrMEEE/bumblebee"&gt;Bumblebee project&lt;/a&gt; is
      currently our only real hope on making Linux work on these laptops.
    &lt;/p&gt;
    &lt;p&gt;
      This project needs our support in a multitude of ways:&lt;br&gt;1) help test
      the actual project on different hardware;&lt;br&gt;2) look at the code and
      help improve on it, both the core code and system integration, simplify it
      so that everyone can install and use this;&lt;br&gt;3) figure out how we can
      integrate that support into distributions, so that it becomes possible to
      have working Linux out-of-the-box on Optimus hardware;&lt;br&gt;4) pressure
      NVidia more to provide official Optimus support on Linux (at least in
      always-on-NVidia mode, without breaking Bumblebee along the way).
    &lt;/p&gt;
    &lt;p&gt;
      Martin has already showed the superiority of open source by implementing
      something that NVidia considered to be too hard to do, let's show the
      power of our community to push such solutions to production quality.
    &lt;/p&gt;</description><category>debian</category><category>Debian-planet</category><category>floss</category><category>hardware</category><category>linux</category><guid>http://aigarius.com/blog/2011/05/24/nvidia-optimus-fail/</guid><pubDate>Tue, 24 May 2011 09:05:02 GMT</pubDate></item><item><title>Nexus S review incoming</title><link>http://aigarius.com/blog/2011/01/17/nexus-s-review-incoming/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      This is just a quick note that I broke down and replaced my ageing iPhone
      3G with a brand new unlocked Google Nexus S. I got it in my hands last
      Saturday and by the end of the first day it did 90% of what I used my
      iPhone for and by the end of day two it did 100% of what I used my phone
      for before this and did it better than the iPhone. I will give it a week
      and then write up a bigger thing on all the good and bad things I notices
      from my migration from iPhone to Nexus S.
    &lt;/p&gt;
    &lt;p&gt;
      If you want to know something specific about Nexus S, Android 2.3, its
      interaction with Debian/Ubuntu, ... this is the time to ask.
    &lt;/p&gt;</description><category>android</category><category>Debian-planet</category><category>google</category><category>hardware</category><category>iphone</category><category>linux</category><category>nexus-s</category><category>shopping</category><category>Ubuntu.lv-planet</category><guid>http://aigarius.com/blog/2011/01/17/nexus-s-review-incoming/</guid><pubDate>Mon, 17 Jan 2011 19:01:26 GMT</pubDate></item><item><title>Phoning it in</title><link>http://aigarius.com/blog/2010/06/25/phoning-it-in/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      Currently I own and use an iPhone 3G. I bought it almost two years ago,
      when the local phone provider LMT started offering the iPhone legally. I
      had a pretty good experience with it most of the time, but now it is
      showing its age:&lt;br&gt;
    &lt;/p&gt;
    &lt;ul&gt;
      &lt;br&gt;
      &lt;li&gt;The two year warranty will run out in September&lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        The iOS 4 update left out most of the new features - my model cann't
        have multitasking or backgrounds or any of that new cool stuff that is
        exclusive to the new iPhone 4
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        The hardware itself is starting to wear - the speaker stopped working a
        few weeks ago (so I have to use the loudspeaker function or headphones)
        and also approximately around that time the phone stated to randomly
        lock up approximately one a week or two - it freezes and after a few
        minutes reboots and demads to be connected to iTunes and restored from
        backup
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;Also the battery does not last as long as it used to&lt;/li&gt;
      &lt;br&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      I will try to send my iPhone in for repair hoping to extend its
      usefulness, but frankly it looks that I might have to get a new phone at
      or before Debconf.
    &lt;/p&gt;
    &lt;p&gt;
      So I am considering my options for a new phone and so far I have 3 main
      options each with some sub-options. The main options are: iPhone 4, MeeGo
      and Android. Each choice has its benefits and drawbacks and each also has
      several sub-options related either to specific phone models or to purchase
      methods.
    &lt;/p&gt;
    &lt;p&gt;
      What I need is a phone with: calling function, contact information
      synchronised to Google, support for Google Mail/Contacts/Calendar
      simultaneously with one Exchange account also providing
      mail/contacts/calendars, music, audiobooks - saving my place in the audio
      book and in the list of books, fully featured Twitter client with Twitpic
      and location support, encrypted password storage application (preferably
      open source), GPS with maps, ability to download maps for offline use,
      Geocaching support with offline cache info and logging, Skype client,
      ability to write in Latvian, English and Russian in all applications,
      reliable backup and restore of phones data including settings and data of
      installed apps. &lt;em&gt;Optional features:&lt;/em&gt; last.fm streaming and
      reporting support, ebook applications with purchasable ebooks, high
      quality video and photo recording (for a phone), ability for me to write
      applications on the phone, ssh client, wireless data upload to the phone,
      ability to change the phones battery without loosing data in the phone (on
      the go), compass, physical keyboard, confidence in getting software
      upgrades and developer interest for the next 2 years.
    &lt;/p&gt;
    &lt;p&gt;
      I'll try to describe all of the options here to organise my thoughts and
      maybe also help someone else make the choice.
    &lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Option 1: iPhone 4&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;To get the iPhone 4 I have two options: LMT and unlocked.&lt;/p&gt;
    &lt;p&gt;
      The official arrival of iPhone 4 to Latvia is expected in September and it
      will likely be sold by LMT for the same prices as iPhone 3GS is now. If I
      choose this scenario, I will need to survive with my semi-broken iPhone
      for 2-3 more months. Total price over 2 years (LVL): 131 (purchase price)
      + 24 * 8 (surcharge) = 323 LVL.
    &lt;/p&gt;
    &lt;p&gt;
      Note: the surcharge is the extra cost of the iPhone call plan compared to
      a comparable regular plan (Vienādais 7 + Internets telefonā 5).
    &lt;/p&gt;
    &lt;p&gt;
      If I go and purchase an unlocked iPhone 4 in a country where such units
      are sold (UK is the most easily accessible choice, because a few of my
      workmates travel weekly to and from UK) then the total price over 2 years
      would be the purchase price: 499 GBP + 65 GBP (2 year warranty extension)
      = 505 LVL
    &lt;/p&gt;
    &lt;p&gt;
      Now lets go over the general benefits and downsides of the iPhone 4, first
      the positives:&lt;br&gt;
    &lt;/p&gt;
    &lt;ul&gt;
      &lt;br&gt;
      &lt;li&gt;It is a simple to use device that I am used to over the two years&lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;The screen resolution is higher than any other option&lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        It is smaller and lighter than Nokia N900 and the bigger Android devices
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        There is a huge number of free and paid apps as well as accessories for
        the iPhone - docks, headphones, chargers, ...
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        I know that it can do every thing that I need it to do (with apps) and
        most of the optional features too, except ... (see drawbacks)
      &lt;/li&gt;
      &lt;br&gt;
    &lt;/ul&gt;
    &lt;br&gt;Drawbacks:&lt;br&gt;
    &lt;ul&gt;
      &lt;br&gt;
      &lt;li&gt;
        The first thing that I hate about the iPhone is its umbilical cord like
        link to iTunes. iTunes is the sole purpose I still have a real Windows
        installation on my main computer (in a Sun VirtualBox, thankfully).
        iTunes is slow, clumsy and generally unusable piece of dog excrements.
        It can only do one thing at a time, mostly: if you are adding a folder
        to your library, you can't switch to another tab and see how the backup
        of your iPhone is going. The actions do happen in the background, but
        more often than not you cann't switch away from some actions. If you try
        to do multiple things in parallel, instead of resolving any process
        conflicts and queueing the actions iTunes will simply silently fails to
        do something, often leaving remains of the half-finished actions. It
        also does not bother to check if the backup or restore of the phone is
        complete before using it - in this way I have many time gotten into a
        situation where I connect the iPhone to the iTunes, it starts backing it
        up, then crashes and next time happily offers this half-done backup copy
        as a valid restore point. Or it crashes during restore and only writes
        some files and settings to the phone - other settings stay at their
        default values. It is also very cryptic, for example if you have a lot
        of music it can take hours to import it into iTunes (it spent 2 hours
        'Analysing gapless playback information' of 5000 songs) and then you
        will be puzzled about how to put some of that on the iPhone. If you just
        tick the checkbox to sync your music you'll get an error stating that
        there is not enough free space, which is not very helpful. The magic
        combination was to check 'Manually manage music' and then go to music
        tab and choose 'Autofill' option. At that point iTunes will spend half
        an hour choosing which songs to put on the phone, before it even starts
        copying. And god forbid that you would use that AppStore application on
        the iPhone to actually install apps - sooner or later you will run into
        a 'backup bug' where creating or restoring a backup of your iPhone might
        take 2-3 hours instead of more normal 5-15 minutes. Only a factory reset
        of the phone followed by selective reinstallation of applications
        (loosing all their settings in the process) can work around this bug
        currently.
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        The closed nature of the iPhone means that I cann't install 'unapproved'
        software unless I jailbreak the phone and even then it is rather
        problematic to develop for the phone unless you have a Mac and shell out
        99$ a year for participation in the developers program
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        The iPhone is a consumption device and not a productivity device. I
        would like to have a device on which I could be creative as a software
        developer as well
      &lt;/li&gt;
      &lt;br&gt;
    &lt;/ul&gt;
    &lt;p&gt;&lt;strong&gt;Option 2: Maemo/MeeGo&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;
      Some of my colleagues at work (in the Riga office of Accenture) have N900
      phones and I have been exposed to people with raw enthusiasm towards the
      Maemo platform ever since the Debconf in Helsinki, where we saw the first
      N700 devices in the hands of some lucky Debian/Nokia people using it as an
      Internet tablet. N900 has been a strong leap forward for the platform,
      before its head was teleported sideways by the whole MeeGo
      merger/debackle.
    &lt;/p&gt;
    &lt;p&gt;Again I have two options here:&lt;/p&gt;
    &lt;p&gt;
      Get a N900 either here in Latvia for 325 LVL (that would be the total cost
      over 2 years) or get it from USA during Debconf for 399 USD (+129 USD for
      2 year warranty) = 317 LVL. And additional option would be to wait until
      October/November and then buy the new Nokia MeeGo device, rumoured to be
      N9-00 and likely to be around the same price as N900 was when it was
      introduced (around 500 LVL).
    &lt;/p&gt;
    &lt;p&gt;Benefits:&lt;br&gt;&lt;/p&gt;
    &lt;ul&gt;
      &lt;br&gt;
      &lt;li&gt;
        A fully open and rooted Debian Linux based device with apt-get, X,
        pusleaudio, d-bus and Qt as core technologies
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        I can install software from anyone and can also write my own software
        either in Qt/C++ or even in Python
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        There is (or was) a significant hacker community that develops
        applications for N900
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        As far as I know most of the features that I need do work on N900, but I
        am unsure about:&lt;br&gt;
        &lt;ol&gt;
          &lt;br&gt;
          &lt;li&gt;
            audiobook support - how easy it is to put a MP3 on the device and
            tell it is an audiobbok so that the device would remember position
            when playing the file and save it even if the player is stopped and
            the device is rebooted or backed up and restored from backup?
          &lt;/li&gt;
          &lt;br&gt;
          &lt;li&gt;
            can I have Google Mail, Contacts and Calendar and at the same time
            also have an Exchange account with mail and contacts and calendar
            active?
          &lt;/li&gt;
          &lt;br&gt;
          &lt;li&gt;
            how is the Geocaching.com support - is there an app already that
            makes it easy to geocache while offline?
          &lt;/li&gt;
          &lt;br&gt;
          &lt;li&gt;
            Multilingual keyboards - I've seen people having to reimplement the
            on-screen keyboard in their programs, and naturally they do not
            bother to add support for all language. So support for multilingual
            keyboard input is an open one.
          &lt;/li&gt;
          &lt;br&gt;
        &lt;/ol&gt;
        &lt;br&gt;
      &lt;/li&gt;
      &lt;br&gt;
    &lt;/ul&gt;
    &lt;p&gt;Drawbacks:&lt;br&gt;&lt;/p&gt;
    &lt;ul&gt;
      &lt;br&gt;
      &lt;li&gt;
        All the uncertainties above - while I could write all the above
        software, it would be better if I would not have to, so that I could
        focus on something more productive
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        Also the whole position of Nokia on the MeeGo support on the N900 is
        kinda ... backwards. I am now used to the Apple way that if I get a
        device, then it will get software updates for at least next two years
        and will get the new software features developed in the next two years
        at least. If Nokia would have said - "All phone-oriented MeeGo releases
        will have a version for N900 until at least the end of 2012." Then this
        drawback would not have been there, but currently it is a mayor sticking
        stone for me. I don't want to buy a device that will be on a dead-end
        software platform that will die before the end of this year.
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;N900 is the largest and heaviest of all the options&lt;/li&gt;
      &lt;br&gt;
    &lt;/ul&gt;
    &lt;p&gt;&lt;strong&gt;Option 3 - Android&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;
      After looking trough the options for Android phones, I've narrowed the
      selection to the ones that are either available from local carriers or can
      be easily gotten unlocked also the phones need to have announced plans to
      have at least Android 2.2 version. Currently the choice is limited to HTC
      Desire (from carrier or unlocked) and Samsung Galaxy S (unlocked). The
      prices over 2 years break down as follows:
    &lt;/p&gt;
    &lt;p&gt;
      HTC Desire (locked to LMT): 69 + 9*24 = 285 LVL&lt;br&gt;HTC Desire (locked to
      Bite): 199 + 2*24 = 247 LVL (Note: only 500Mb of data per month
      available)&lt;br&gt;HTC Desire (locked to Tele2): 179 + 6*24 = 323 LVL&lt;br&gt;Note:
      all the above options would also require me to pay a 45 LVL early
      termination fee on my current iPhone contract if I choose to do this
      before September.&lt;br&gt;HTC Desire (unlocked): &lt;strong&gt;311 LVL&lt;/strong&gt;&lt;br&gt;Samsung Galaxy S (unlocked): 350 LVL (import from Germany)
    &lt;/p&gt;
    &lt;p&gt;Benefits:&lt;br&gt;&lt;/p&gt;
    &lt;ul&gt;
      &lt;br&gt;
      &lt;li&gt;
        As far as I could find, the features I need are out there in one way or
        another - there usually is an app for that!
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;Google looks poised to continue development at a rapid pace&lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        There is an active hacker community and also an active commercial
        software community that offers cool applications for a few bucks
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        As far as I understand the phone backups onto itself - a backup of the
        phone is created onto a SD card in the phone and you can then copy that
        off the phone for permanent backup, it is a nice concept
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        There are literally thousands of sources for Android applications: from
        the official Market to Google Code to individual web pages and forums
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        The hardware looks solid, powerful and generic enough to last for a
        couple of years
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        It is likely that knowing how to program Android app will be useful for
        me at work
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;It is cheap and simple to start writing Android apps on Linux&lt;/li&gt;
      &lt;br&gt;
    &lt;/ul&gt;
    &lt;p&gt;Drawbacks:&lt;br&gt;&lt;/p&gt;
    &lt;ul&gt;
      &lt;br&gt;
      &lt;li&gt;
        Typical usability of Android apps is pretty low compared to iPhone
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        The Android environment is very unique and is not like anything else -
        it's not really much of a Linux system from an apps perspective
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        I would be relying on HTC to provide OS updates in a timely manner - it
        is quite likely that after a year or so the updates to new version will
        come slowly or even stop altogether and I will have to use hacked ROMs
      &lt;/li&gt;
      &lt;br&gt;
      &lt;li&gt;
        I have a dislike for Java. I wish one could write fully featured Android
        apps in Python :(
      &lt;/li&gt;
      &lt;br&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      &lt;strong&gt;Please correct me if I am wrong with something!!!&lt;/strong&gt; And
      also it would be cool if you expressed your own opinions in the comments.
    &lt;/p&gt;
    &lt;p&gt;
      Currently I am very undecided about what I am going to do, but after
      completing this entry I am leaning towards an unlocked HTC Desire.
    &lt;/p&gt;
    &lt;p&gt;
      Update:&lt;br&gt;&lt;a href="http://www.tester.ca/2010/06/26/n900-vs-nexus-one-a-comparison/"&gt;Olivier Crête shares a N900 vs. Nexus One experience&lt;/a&gt;
    &lt;/p&gt;
    &lt;p&gt;Edit 01-07-2010:&lt;/p&gt;
    &lt;p&gt;
      Handed my iPhone in for a warranty repair, got a dumbphone Nokia as a
      loaner during repairs. Very surprised about how long a battery can last on
      a low powered and cheap phone.
    &lt;/p&gt;
    &lt;p&gt;
      In the mean time from all the comments here and elsewhere I am starting to
      see that I am too annoyed with the iPhone platform (mostly iTunes) to stay
      there and that I am also not convinced in the direction MeeGo is going (a
      lot of community developers are annoyed and are jumping ship), so N900 is
      also out. I will need to see 2-3 MeeGo smartphones and also see how Nokia
      will treat their smartphone users and developers on this platform, in the
      long term, before I'll be ready to trust them with my money. Therefore, my
      choice is becoming pretty clear - look for the best Android phone (after
      my iPhone dies). We have this thing at Accenture, where we can get company
      phones at a discount and HTC Desire is on that list. If I can get that, it
      would slash 100 LVL (almost a third of the price!) off it, but to get
      there I either need to get a promotion (rather rare after just one year
      with the company) or prove the necessity of the phone for the needs of my
      project (kinda hard currently). Well, the situation will be a bit clearer
      next week when I get my iPhone back. (Apparently the Latvia's largest
      holiday - Midsummer Festivities or Jāņi/Līgo - with tons of traditional
      outdoor activities, caused a lot of phones to become broken and there is a
      backlog of warranty service :))
    &lt;/p&gt;
    &lt;p&gt;
      So at this point my plan is: get my iPhone repaired and get a promotion or
      a project where I can justify a company-paid HTC Desire and then hope that
      Nokia/Intel really get their stuff together and make MeeGo a great
      smartphone platform over the next year or two.
    &lt;/p&gt;
    &lt;p&gt;
      Update: Got my iPhone 3G back from the 'warranty'. It is in quotes because
      they just gave me a new iPhone 3G. The battery lasts for 3 days of minimal
      use and it has not crashed yet. The recovery process was a pain - again
      caused by iTunes: iTunes refused to restore my backup onto the new phone,
      because my backup was made on a iOS 4.0, while the new phone I got from
      the warranty has 3.1.3 on it. So I had to set this phone as a new phone,
      initialise it, make a backup, upgrade to 4.0, restore from the (empty)
      backup, then reset the phone to factory settings again and only then I
      could start restoring data from my original (pre-warranty) backup and
      start copying my data on to the device. All in all it took nearly 3 hours
      if iTunes doing something and almost a dozen reboots of the phone. Almost
      half of that time was spent doing completely unnecessary steps to work
      around the fact that iTunes is braindead.
    &lt;/p&gt;
    &lt;p&gt;
      I'll continue using my iPhone for now, keeping my eyes on the newest
      Android phones and also waiting for the long-promised first MeeGo phone
      from Nokia.
    &lt;/p&gt;</description><category>apple</category><category>audio</category><category>Debian-planet</category><category>floss</category><category>hardware</category><category>iphone</category><category>linux</category><category>Ubuntu.lv-planet</category><guid>http://aigarius.com/blog/2010/06/25/phoning-it-in/</guid><pubDate>Fri, 25 Jun 2010 23:06:15 GMT</pubDate></item><item><title>Going to Debconf10!</title><link>http://aigarius.com/blog/2010/05/06/going-to-debconf10/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      After a few months, today I finally got the approval and
      &lt;img alt="" class="alignnone size-full wp-image-1505" height="101" src="http://www.aigarius.com/blog/wp-content/uploads/2010/05/im_going_to_debconf10.png" title="im_going_to_debconf10" width="200"&gt;
    &lt;/p&gt;
    &lt;p&gt;
      As I work for Accenture now, I got them to pay for the plane tickets and
      also spring for the 'Professional' registration, so more people can
      attend. I am very happy, and very grateful to the company and to the
      managers here in Riga office for being so very supportive. It is
      refreshing to see that even a large corporation can be quite nimble.
    &lt;/p&gt;
    &lt;p&gt;
      I hope I can get on a direct Riga - New York flight (there actually is
      one, once a week, by Uzbekistan Airways) which would be a wicked cool way
      to save travel time and worries. This might even be faster end-to-end than
      last year going to Spain (via Frankfurt). Now I only need to replace my
      passport with the new biometric one, to qualify for USA Visa Waiver and
      I'll be good to go :)
    &lt;/p&gt;</description><category>debconf10</category><category>debian</category><category>Debian-planet</category><category>linux</category><category>programming</category><category>travel</category><category>Ubuntu.lv-planet</category><category>usa</category><guid>http://aigarius.com/blog/2010/05/06/going-to-debconf10/</guid><pubDate>Thu, 06 May 2010 20:05:15 GMT</pubDate></item><item><title>Latvijas pavasara Ubuntu Bug Jam un Installest - 27.03.2010</title><link>http://aigarius.com/blog/2010/03/17/latvijas-pavasara-ubuntu-bug-jam-un-installest-27032010/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      The following is an invitation to the Latvian Ubuntu Bug Jam (in Latvian)
      sent for a bit of a wider circulation to catch people that monitor
      &lt;a href="http://planet.debian.org"&gt;Planet Debian&lt;/a&gt;, but not
      &lt;a href="http://planet.ubuntu.lv"&gt;Planet Ubuntu.lv&lt;/a&gt;.
    &lt;/p&gt;
    &lt;p&gt;
      &lt;a href="http://www.aigarius.com/blog/wp-content/uploads/2010/03/poga-tumsi-roza-maza.png"&gt;&lt;img alt="" class="alignnone size-full wp-image-1492" height="230" src="http://www.aigarius.com/blog/wp-content/uploads/2010/03/poga-tumsi-roza-maza.png" title="I am going to Bugfest" width="400"&gt;&lt;/a&gt;
    &lt;/p&gt;
    &lt;p&gt;
      27. martā LU Linux centrā notiks divi pasākumi vienā -
      &lt;a href="https://wiki.ubuntu.com/UbuntuGlobalJam"&gt;Ubuntu Global Bug Jam&lt;/a&gt;
      Latvijas daļa un installfests. Global Bug Jam ir pasākums, kurā
      piedalīties ir aicināti interesenti, speciālisti, studenti, lai meklētu
      kļūdas Ubuntu Lucid Lynx testēšanas versijā. Cilvēki, kas grib uzzināt par
      Ubuntu Linux, vai kuri grib atrisināt kādu konkrētu problēmu ar Ubuntu
      Linux tiek aicināti nākt uz šī pasākuma otro daļu no pulksten 14:00 līdz
      16:00. Pasākuma būs kafija un bulciņas ar
      &lt;a href="http://www.accenture.com"&gt;Accenture&lt;/a&gt; atbalstu.
    &lt;/p&gt;
    &lt;p&gt;
      Ubuntu Global Bug Jam ir globāls pasākums, kura mērķis ir iepazīstināt
      programmētājus un tulkotājus ar rīkiem, kas tiek lietoti, lai labotu
      problēmas Ubuntu operētājsistēmā un arī izlabot pēc iespējas lielāku
      skaitu problēmu īsā laikā. Izstrādātāji, kas grib labot Ubuntu problēmas
      vai iemācīties kā labot Ubuntu problēmas, tiek aicināti ierasties 12:00 un
      palikt līdz 16:00.
    &lt;/p&gt;
    &lt;p&gt;
      Installfest pasākuma sadaļā tiek aicināti visi esošie Ubuntu lietotaji,
      kuriem ir kādas konkrētas problēmas un arī cilvēki, kas tikai vēl
      interesējas par Ubuntu Linux. Ja jums ir konkrēta problēma ar Ubuntu Linux
      ir ieteicams atnest uz pasākumu savu datoru, kurā šo problēmu var
      atkārtot, lai pasākumā esošie programmētāji varētu noteikt šīs problēmas
      iemeslu un palīdzētu no novērst. Installfests sāksies 14:00 un turpināsies
      līdz 16:00.
    &lt;/p&gt;
    &lt;p&gt;
      &lt;a href="http://www.ubuntu.com"&gt;Ubuntu&lt;/a&gt; ir bezmaksas, uz Linux balstīta
      pilna apjoma operētājsistēma jebkuram personālajam datoram, serverim un
      portatīvajai iekārtai. Tās standarta komplektā iekļautas visas
      nepieciešamās programmas, lai strādātu ar tekstiem, attēliem, elektronisko
      pastu un Internetu, kā arī jūs varat instalēt papildus programmatūru
      dažādiem nolūkiem. Pasaulē to šobrīd jau lieto vairāk kā 8 miljoni
      cilvēku, un to legāli bez maksas var lietot gan mājās, gan komerciālās un
      nekomerciālās organizācijās.
    &lt;/p&gt;
    &lt;p&gt;
      &lt;a href="http://linux.edu.lv"&gt;LU Linux Centrs&lt;/a&gt; ir izveidots Latvijas
      Universitātes Datorikas fakultātē. Linux Centra darbības mērķi ir:
      popularizēt atvērtā pirmkoda (Open Source) programmatūras, tai skaitā,
      Linux operētājsistēmas un citu atvērto tehnoloģiju iespējas un
      priekšrocības; piedalīties LU studiju procesā un īstenot lietišķo IKT
      pētījumu projektus, tajos izmantojot un attīstot atvērtās tehnoloģijas;
      sekmēt APP pieejamību Latvijā un pasaulē.
    &lt;/p&gt;</description><category>debian</category><category>Debian-planet</category><category>event</category><category>floss</category><category>linux</category><category>ubuntu</category><category>Ubuntu.lv-planet</category><guid>http://aigarius.com/blog/2010/03/17/latvijas-pavasara-ubuntu-bug-jam-un-installest-27032010/</guid><pubDate>Wed, 17 Mar 2010 10:03:34 GMT</pubDate></item><item><title>Linuksys WRT54GL</title><link>http://aigarius.com/blog/2010/03/07/linuksys-wrt54gl/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      &lt;a href="http://algebraicthunk.net/~dburrows/blog/entry/setting-up-openwrt-on-the-wrt54gl/"&gt;Daniel&lt;/a&gt;, I also recently installed a WRT on the Linksys WRT54GL. But I used
      DD-WRT instructions - went to
      http://www.dd-wrt.com/site/support/router-database, entered my model
      number and got direct download links to the firmware along with a README.
    &lt;/p&gt;
    &lt;p&gt;
      One very important points in flashing these routers is to clear the NVRAM
      by doing a hard reset BEFORE and AFTER an upgrade to a different type of
      software on the device. Also, starting with a micro build is strongly
      recommended.
    &lt;/p&gt;
    &lt;p&gt;
      In any case the hardware looks to be very solid, especially if you don't
      need gigabit ethernet and n wireless, but might need some advanced
      networking features.
    &lt;/p&gt;</description><category>debian</category><category>Debian-planet</category><category>hardware</category><category>linux</category><guid>http://aigarius.com/blog/2010/03/07/linuksys-wrt54gl/</guid><pubDate>Sun, 07 Mar 2010 06:03:19 GMT</pubDate></item><item><title>USB 3D Sound</title><link>http://aigarius.com/blog/2010/02/10/usb-3d-sound/</link><dc:creator>Aigars Mahinovs</dc:creator><description>&lt;p&gt;
      Want a sound card? Want a cleared sound that is not contaminated by
      electromagnetic interference in you computer's case? Want that all to work
      in Linux?
    &lt;/p&gt;
    &lt;p&gt;
      I did. So I got me one of
      &lt;a href="http://cgi.ebay.com/USB-5-1-Audio-3D-Sound-Card-adaptor-For-Dell-Laptope-PC_W0QQitemZ280398062873QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item414906e519#ht_3423wt_952"&gt;theseUSB sound cards&lt;/a&gt;. It arrived today in a tiny padded envelope.
    &lt;/p&gt;
    &lt;p&gt;
      &lt;img alt="USB sound card" src="http://imgs.inkfrog.com/pix/webweb/80042-2.jpg"&gt;
    &lt;/p&gt;
    &lt;p&gt;
      And it works with Linux. Just plug and play. PulseAudio makes it all
      trivial. The device ID as reported by lsusb is 0c76:1607 JMTek, LLC. The
      text on the back of the device says 'Model HY544 USB 3D Sound Pnp FC CE
      Made in China'.
    &lt;/p&gt;</description><category>debian</category><category>Debian-planet</category><category>hardware</category><category>linux</category><category>ubuntu</category><category>Ubuntu.lv-planet</category><guid>http://aigarius.com/blog/2010/02/10/usb-3d-sound/</guid><pubDate>Wed, 10 Feb 2010 09:02:51 GMT</pubDate></item></channel></rss>