I love you Dev Mazumdar

April 28th, 2010

Nice post from Tobias regarding What ever happened to xmms.org. Seems the squatter is well on his way of rebuilding the site, he even dug up memory.xmms.org from the pits of the internet. Shame he didn’t resurrect shop.xmms.org and staff.xmms.org. Nice sale Dev! I love you, idiot.

Playing with the phone

June 11th, 2009

Takes some time getting used to a on screen keyboard. At least the predictive input and correction is almost perfect, the only problem I have with it is that Swedish input won’t correct words unless you actually input the umlauts at the right position. Overall an extremly pleasant experience.

And yes, this post only serves as a typing exercise and test of the postbot application.

Epic fail on my HTC Magic (Android)

June 11th, 2009

Oh the pain, after a day of moderate use and some installation of third party software from the market, this message appeared each time I tried to use the on screen keyboard.

The application Touch Input (process com.htc.android.htcime) has stopped unexpectedly. Please try again

Gah, again and again and again. Restarted, again, uninstalled the latest installed applications, again. Recalibrated, restarted. Same message, I was almost down to the same set of applications that the phone came with until I found Settings > Applications > Manage applications > Touch Input > Clear data. That resolved the issue for me. Totally pointless blog post, but since I only managed to find one forum post with the same error, I thought it might be of some use to someone running into the same problem I did.

Fixing tearing with Intel video

January 7th, 2009

The single most irritating thing that happened on the Aspire One since I switched over to Debian (mine came preinstalled with windows xp) is the tearing when watching video. Googling for solutions or hints as to why it happens led me to numerous sites that suggested using driconf. But these people all use compiz and whatnot but I enjoy my desktop in plain old stuck-in-the-90s mode.

Finally I struck gold at bugs.launchpad.net/ubuntu. Seems that the intel driver has changed to always have a textured video overlay, and this is the culprit of the tearing.

Having a look with xvinfo gave me the information needed.

knirch@aspireone:~$ xvinfo
X-Video Extension version 2.2
screen #0
  Adaptor #0: "Intel(R) Textured Video"
    number of ports: 16
    port base: 91
    operations supported: PutImage 
    supported visuals:
      depth 24, visualID 0x23
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
  Adaptor #1: "Intel(R) Video Overlay"
    number of ports: 1
    port base: 107
    operations supported: PutImage 
    supported visuals:
      depth 24, visualID 0x23

Choosing the port of the second adaptor Adaptor #1: “Intel(R) Video Overlay” made the tearing go away.

In mplayer just add vo=xv:port=107 to ~/.mplayer/config (or /etc/mplayer/mplayer.conf for system wide) fixes the tearing. The port number might be different on your system, so check with xvinfo first.

In VLC enable advanced options/expert mode and change Video>Output modules>XVideo>XVideo Adaptor number to 1

According to 2.5.1 and release notes of xf86-video-intel the order of the adaptors can be changed, so mplayer and VLC will use the untextured overlay by default.

Maxim Levitsky (1):
Add an option to make the overlay be the first XV adaptor.

There’s also been hinting that DRI2 will solve the tearing in the 2.5.0 release notes.

Item (4) was the main thing we missed this time (Nanhai has been working flat out to get MPEG2 offload working so we didn’t get a chance to try different approaches for vblank sync’ing). I think the real fix here will be DRI2, which should allow us to run compositing managers in DRI mode, with real vblank sync’ing for all their drawing.

Acer Aspire One <3

December 24th, 2008

Got myself an Aspire One two days ago, just something to keep me company on the train. Have to say I’m actually love the little bastard, I normally prefer Thinkpads (sure, the acer keyboard is louder and the keys feel a bit loose in comparison, but much nicer layout than the EEEs in the same size.).

A couple of links that made my first two days in wintendo jail (didn’t have time to switch to debian before I left) slightly more interesting.



The two main drawbacks with this netbook is the brightness levels, which doesn’t go down as much as I’d please, and the fan noise. a1ctl or AA1FanControl fixes the last issue though. Other than that, the system is quite snappy and I look forward to switching over to Debian once I get back home after the holiday. Wonder if the BIOS could be hacked to allow for the older brightness levels…

Insanest bug to date

January 14th, 2008

“OMG ALARM ALARM!” a coworker bust through the door claiming I or someone broke the code keeping track of one of the services that are running. That’s unpossible I proclaim. The code in question is this:

if ! pidof service;then
service | logger

but we have multiple instances of service running. Sure, we use busybox, an older version. Bet there’s a bug there, I have to see it though.

output=$(pidof service 2>&1)
if ! (($status == 0)); then
echo "$(date) pidof service failed: status: $status output: $output"

and what do I get?

Mon Jan 13 12:04:33 CET 2008 pidof service failed: error: 1 output: 30740

Fine, it’s busybox. Must be.. We patch it to exit with 47 if any malloc etc fail and 66 if the actual pidof code fails.

Mon Jan 13 14:46:13 CET 2008 pidof service failed: error: 1 output: 30740 10178

OK? FINE! We replace it with sysvinit-utils pidof..

Mon Jan 14 08:59:51 CET 2008 pidof service failed: error: 1 output: 30740 10178 2548

ARGH! .. …

You’ve been unaccepted!

November 10th, 2007

So, semi-tried to get into the N810 device program, guess I failed. The announcement at Quim Gils personal blog said the accepted parties had been contacted. And since I didn’t receive a notification, I’m not in.

The interesting part is now, how many of the 400 that didn’t get accepted are currently engaged in going over spam folders, reading one viagra mail after another, starting to consider various happy pills or wondering if their penis size has something to do with the missing mail. Not sending out a rejected mail is just adding insult to injury. Out of the 400 rejected applications there must be a whole lot of them that put their hearts and minds to them. A whole bunch of them probably tried hard as they might to gather as much karma as possible which was announced the day after the program closed.

Not only did they not get accepted, Nokia saw it fit to raise their middle finger and silently tell them their work or idea wasn’t good enough.

I’m personally not that surprised I didn’t get accepted, my application was not the greatest of them all, not by far. It was written with the current pet peeve in mind, usability and overall user experience. The things I’m referring to are those minor bugs, if you might even call them that. More like blemishes, it’s the zit of the application, the small things you don’t really bother with fixing unless you’re Rasterman and live for pixel perfection. It’s the oddities, the small inconsistency that raises an eyebrow but finally gets thrown on the pile of annoyances that makes up for the overall experience.

UPDATE Please realize that this post is ONLY about the flipside of being accepted. It’s NOT intended as a rant “oh my god, I SO deserve to be accepted and Nokia is a big bad evil company”.

Not at all.


I applaud the application program, the people running it and the effort. I just had to jot down my thoughts about what some 400 people (-1 (me)) were going through once the hoorays on blogs, irc and such started to pour in :)

Whine whine whine

August 23rd, 2007

So, any self respecting geek, linux idiot or whatever have probably stumbled upon openmoko and their first phone, the Neo 1973. So the little freak I am decided, heck, I must have one.

Easier said than done.

When the first day was over, me and two colleagues had finally decided what we wanted and placed our order. Sadly, we we’re a bit slow, so we weren’t sure we would get a phone from the first batch. 2 weeks after we placed the order, the phones started getting shipped to the lucky bastards who were quick enough to order when the store went live. Sure enough, this was the first time they had done this and problems were apparent, you can always read about the chaos over at Harald Weltes blog. When we finally received confirmation it came in the form of a mail stating they couldn’t bill my CC. One quick reply to make sure it wasn’t just my bank acting up I receive this reply.

Hi Thomas,

I just tried, the 3rd times, but still it can’t go through the system. I think you should call your bank to release this transaction. Don’t worry, I’ll reserve the phones for your order.

Two more emails sent back and forth, and two calls to my bank. The only reply I get from my bank is “there is information missing.” OK, cute. A couple of more emails sent back and forth and finally a second call to my bank where some suit finally called me back to explain to me that it’s for my protection they require the full security protocol to be implemented.

It’s my money, I WANT TO GIVE THEM AWAY.

Had to argue with the suit for 15 minutes until he finally caved in and told me what mysterious field were missing. Fine, I send this off to FIC who were handling the openmoko orders (and also produce the phones in question). I get ignored and instead they tell me to send them another CC. I ask for instructions and receive them. Send off the CC and then, silence.

More silence, only silence. I read on planet.openmoko.org that they’re finally done with all the orders. So I end up having to email one of the people handling the orders personal email to get them to attend to my ticket, and I get this:

Dear Thomas,

We still have Neo Advance Black in stock. But we are temporarily short of stock for Neo Base Black, we soon will have more Neo Base coming. ETA is two weeks.

Please advise how we should do now.

ARGH. Seriously, what does “reserve” mean to you guys? This is not funny. I ask them what they mean, what they meant when they said reserve, tell them “We can take the orange ones”, and I this is the response…

Hi Thomas,

Yes, we will arrange your order on our next batch in September. As of today, we are just running out of both Base- and Advanced- phones.

Appreciate your undestanding and supporting.



August 7th, 2007

Found myself bored one day on my vacation and thought, hey, I can switch the orientation of my screen, why the heck don’t my software behave the way I want? My screen is a Samsung SyncMaster 215TW and it’s very nice. Actually, this automatic switching of orientation did work when I was toying with it in windows, all I had to to was to install a 36MB package plus a 78MB package for it to switch the orientation in windows. EXCELLENT. (Samsung, you guys suck)

So, how hard can it be for someone who hasn’t gotten the slightest clue about this crap to fix this in linux?

Fairly trivial for this extremely ugly solution, first of all I had to enable randr support for my nvidida card by inserting option "randrrotation" "true" in /etc/X11/xorg.conf for my graphics card. Second, I wanted to know what information was available to me about my monitor. I grabbed ddccontrol and probed for my little monitor.

$ ddccontrol -p
thumper:~# ddccontrol -p
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

Probing for available monitors..........
Detected monitors :
 - Device: pci:04:00.0-1
   DDC/CI supported: Yes
   Monitor Name: Samsung SyncMaster 215TW (DVI)
   Input type: Digital
  (Automatically selected)
Reading EDID and initializing DDC/CI at bus pci:04:00.0-1...

EDID readings:
        Plug and Play ID: SAM0214 [Samsung SyncMaster 215TW (DVI)]
        Input type: Digital

= Samsung SyncMaster 215TW (DVI)
> Color settings
        > Brightness and Contrast
                > id=magicbright, name=Magic Bright Mode, address=0xdc, delay=-1ms, type=2
                  Possible values:
                        > id=text - name=Text, value=1
                        > id=internet - name=Internet, value=2
                        > id=game - name=Game, value=3
                        > id=sport - name=Sport, value=4
                        > id=entertain - name=Entertain, value=5
                        > id=custom - name=Custom, value=6
                  supported, value=1, maximum=6
                > id=brightness, name=Brightness, address=0x10, delay=-1ms, type=0
                  supported, value=11, maximum=100
                > id=contrast, name=Contrast, address=0x12, delay=-1ms, type=0
                  supported, value=63, maximum=100
        > Color maximum level
                > id=red, name=Red maximum level, address=0x16, delay=-1ms, type=0
                  supported, value=50, maximum=100
                > id=green, name=Green maximum level, address=0x18, delay=-1ms, type=0
                  supported, value=50, maximum=100
                > id=blue, name=Blue maximum level, address=0x1a, delay=-1ms, type=0
                  supported, value=50, maximum=100
        > Various color settings
                > id=colorpreset, name=Color Preset, address=0xe0, delay=-1ms, type=2
                  Possible values:
                        > id=normal - name=Normal, value=3
                        > id=custom - name=Custom, value=0
                        > id=warm - name=Warm, value=1
                        > id=cool - name=Cool, value=2
                  supported, value=3, maximum=3
> Others
        > Restore defaults
                > id=defaults, name=Restore Factory Defaults, address=0x4, delay=2000ms, type=1
                  Possible values:
                        > id=default - name=Restore Factory Defaults, value=1
                  supported, value=3, maximum=3
                > id=defaultluma, name=Restore Brightness and Contrast, address=0x5, delay=2000ms, type=1
                  Possible values:
                        > id=default - name=Restore Brightness and Contrast, value=1
                  supported, value=3, maximum=3
                > id=defaultcolor, name=Restore Factory Default Color, address=0x8, delay=2000ms, type=1
                  Possible values:
                        > id=default - name=Restore Factory Default Color, value=1
                  supported, value=3, maximum=3
                > id=settings, name=Settings, address=0xb0, delay=1000ms, type=1
                  Possible values:
                        > id=default - name=Settings, value=1
                  supported, value=0, maximum=2
        > OSD
                > id=osd2, name=On Screen Display (Samsung), address=0xf5, delay=-1ms, type=2
                  Possible values:
                        > id=disable - name=Disable, value=1
                        > id=enable - name=Enable, value=0
                  supported, value=0, maximum=2
        > Input settings
                > id=autosource, name=Autoselect Input Source, address=0xe2, delay=-1ms, type=2
                  Possible values:
                        > id=auto - name=Automatic, value=0
                        > id=manual - name=Manual, value=1
                  supported, value=0, maximum=2
                > id=inputsource, name=Input Source Select, address=0x60, delay=-1ms, type=2
                  Possible values:
                        > id=analog - name=Analog, value=1
                        > id=digital - name=Digital, value=3
                  supported, value=3, maximum=3
        > Power control
                > id=dpms, name=DPMS Control, address=0xd6, delay=-1ms, type=2
                  Possible values:
                        > id=on - name=On, value=1
                        > id=standby - name=Standby, value=4
                  supported, value=1, maximum=4
                > id=power, name=Power control, address=0xe1, delay=-1ms, type=2
                  Possible values:
                        > id=off - name=Off, value=0
                        > id=on - name=On, value=1
                  supported, value=1, maximum=1

Ok, so apparently there’s a lot of knobs and gauges available in the database, but not what I needed. Fine, I dump all values in landscape mode and compare them to the values I get when in portrait mode with ddccontrol -d pci:04:00.0-1 and after switching around a couple of times finally decided that Control 0xf8: +/1/1 C [???] was the orientation value.

So a quick and rather ugly script was born

while sleep 1s; do
        val=$(ddccontrol -r $ctr -f $dev 2>/dev/null | awk '/^Control/{FS="/";split($3,m);print m[2]}')
        if (( val == 0 )); then
                echo "normal" >/tmp/orientation
        elif (( val == 1 )); then
                echo "left" >/tmp/orientation

I start this as root and quickly forget about it. I run this script as my user

while sleep 1s; do
        [[ -f /tmp/orientation ]] && xrandr -o $(cat /tmp/orientation)

Now, whenever I turn my screen, X follows. Sadly ion3 doesn’t know, and frankly, I don’t know if it should care, about my current orientation.

patch this mf!

January 25th, 2007
knirch@bygg-ivar:~/pcapy$ patch < ../pcapy-allow-interfaces-without-address.patch
(Stripping trailing CRs from patch.)
patching file pcapy.cc
Hunk #1 FAILED at 88.
1 out of 1 hunk FAILED -- saving rejects to file pcapy.cc.rej

But.. but.. the source file actually has all those pesky CRs. The patch needs them! Seriously! If I want your help to clear out cruft, I'LL LET YOU KNOW or do it MYSELF.

Patch: Shave your back you semen slurping penis petter!