Another mlmmj weirdness

22.06.2010 19:47

Here's another mlmmj weirdness. If you're running this mailing list manager on Debian Lenny (package version 1.2.15-1.1), be advised that this package is missing an English template file maxmailsize, which is used when sending an automated warning to a user if the mail he sent was too large.

This causes messages to get stuck in the mail spool and produces syslog messages like below (love the assertion failed: Success part):

/usr/bin/mlmmj-process[17335]: prepstdreply.c:173: Could not open std mail maxmailsize: No such file or directory
/usr/bin/mlmmj-process[17335]: mlmmj-process.c:656: assertion failed: Success

The simplest fix is to grab an official source distribution tarball and drop mlmmj-1.2.15/listtexts/en/maxmailsize into the text/ subdirectory of each list's spool directory.

Also, it appears this is fixed in Squeeze, so I didn't even bother to open a bug report.

Posted by Tomaž | Categories: Code | Comments »

Computer museum is no more

20.06.2010 18:10

Yesterday the annual Museums on a Summer Night took place. It's a day when most museums in Slovenia remain open until late night hours and host special exhibitions and events all day long. It also marks the beginning of the week when Cyberpipe's Computer Museum is closing down most of its activities until some undetermined future date. There will be one last party this Thursday.

Cyberpipe's computer museum is no more. Press left mouse button to continue.

The museum rose up from a pile of old hardware that was donated to hacker space Kiberpipa. The original idea of hardware donations was that old PCs could be recycled as X terminals, light-weight Linux boxes or material for some arts project. However often truly archaic pieces would find their place among dusty 486s and first generation Pentiums. In one instance I recall finding a Sinclair QL in the inbox labeled as a broken PC keyboard. It turned out there was substantial historic treasure in people's attics and cellars and most of it was going into the dump. This was most appalling with rare, locally designed hardware for which few other traces existed.

Over the years as the news of the computer museum spread the donations became more intentional as well. Enthusiasts offered contributions from their private collections and companies replacing aging hardware began calling in. The first improvised exhibits on borrowed tables were replaced by proper museum displays and glass cases. The permanent collection was joined by temporary exhibitions, special events like the No-LAN parties. The museum gained international recognition on events like the Vintage Computer Festival Europe.

I worked with the museum right from the start, as a volunteer, like everyone else on the staff. Albeit without much recognition - you can't find me for instance on any of the official contributors photos displayed prominently in front of the exhibition. A lot of the posts about historic computer hardware on this blog were born out of broken exhibits I repaired. And of course the idea for the CMOS Galaksija replica came out of the work at the computer museum.

I believe preserving our computer history is as important as preserving other technical heritage. For one it's fragile and it appears to be quickly disappearing which makes repeating old mistakes that much more probable. And also because only through our work at the museum we came to realize that our little corner of the world used to be at the forefront of computer technology. For a brief moment before the harsh international trade regulations that gave rise to it also caused its decline computers from our industry were on par with everything coming out of silicon valley. And I think that is a discovery worth sharing.

While intent on sharing knowledge, Hacker organizations like Kiberpipa work on an ad-hoc and spur-of-the-moment mentality and this clashes with sometimes meticulous care for the fragile exhibits. Plus they can probably house 10 intermedia artists in the space occupied by a single S/390 CPU unit. So I can understand the friction between the museum and its mother organization that finally caused the closure of its activities.

What I can't understand is how it seems that apart from a few enthusiasts there seems to be no serious interest from the professional community to preserve this piece national history. And it's not just the Cyberpipe's museum. The largest computer magazine in Slovenia used to gather old computers with the intent of opening a museum of their own. To my knowledge the whole collection newer say the light of day. They ended up donating everything to Kiberpipa last year. The national Technical Museum has problems of its own and doesn't even dare think about taking over a new collection like this.

Is it really impossible to have a sustainable source of funding for a project like this, even when it seems there are people willing to donate equipment and their time for the cause? If so, how come there's a thriving grass-roots computer museum in Reka, just across the southern border?

Posted by Tomaž | Categories: Life | Comments »

Did F-Spot eat your photos?

11.06.2010 10:32

F-Spot has this weird feature. Sometimes when you import a photograph it doesn't copy the actual file to its library but only makes a reference to the file's current location in its database. And yes, I know about the "Copy files" checkbox in the Import dialog.

I don't know about you, but the library is the most important reason I use F-Spot instead of my old unwieldy sort-files-into-directories-manually system.

I have yet to discover when this happens, but when it does, it is easy to miss it. The thumbnail for the image appears normally and there is no indication in the GUI of where the image is actually stored. It's only when you open the image in full view and the original files have been moved (or worse, deleted) that the first sign of trouble appears.

On two occasions now I have stumbled upon old images missing from the library. On one of them I was able to recover some of the lost images from a wiped SD card using some tool which name I can't remember now (possibly either recoverjpeg or PhotoRec).

Here's how to check if any photo in F-Spot's database is located outside of the library:

$ sqlite3 $HOME/.config/f-spot/photos.db
sqlite> select * from photos where base_uri not like "file:///home/avian/images/Library%";
502|1213290088|file:///home/avian/Desktop/|dsc00669.jpg||2|1|0|
503|1213116525|file:///home/avian/Desktop/|dsc00668.jpg||2|1|0|
504|1213360534|file:///home/avian/Desktop/|dsc00670.jpg||2|1|0|

Of course, replace the path in the query with the path where your photo library lives.

If the SQL query returns any rows (like in the real-life example above) all you can do is curse the F-Spot developers and hope those images are still in Recycle bin or non-reused portion of some memory card.

Posted by Tomaž | Categories: Code | Comments »

Wireframing

10.06.2010 20:12

After seeing the beautiful x0xb0x front panel on Keith's blog I spent some time thinking about the design of the exterior of my new lab power supply.

Power supply front panel wireframe

Compared to your average (computer) graphical user interface there is really not much to it. I want to keep it simple, with knobs and old-fashioned analogue panel meters.

I chose this wide, low case so the power supply will fit under my oscilloscope on the table.

I would love to have that brushed-metal finish. I've seen front panel adhesive films on which you can print with a laser printer. However the case is wider than A4 paper format, which makes it tricky to print on in one piece.

All my previous projects that used the "double-sided-tape + laser print on paper + transparent protective adhesive foil" approach got wrinkly with time. So I'm more than willing to try something new this time.

Posted by Tomaž | Categories: Ideas | Comments »

Generation loss

05.06.2010 13:56

There's an interesting series of videos up at YouTube that nicely demonstrates generation loss in digital video.

Contrary to popular belief digital video and audio do suffer from quality loss when being transcoded from one form into another. These videos give a concrete example of the magnitude of this effect in practice.

The exact details on the codecs used are missing unfortunately. I was surprised how audio seemed to suffer much more than video - even after 1000 copies the basic shapes can still be recognized on the video, while the sound bears no resemblance to the original. It looks like the video codec was simply better at extracting and preserving important information in the stream.

Compare this with generation loss on VHS. Especially note the order of magnitude involved - VHS breaks down after "just" 20 copies. However here audio track is more resilient than video. Not surprising, considering how the data is written on the tape. The audio track also nicely demonstrates the falling signal to noise ratio.

Also, judging by this, most instructional videos we watched in high school were at least 8th generation copies.

Posted by Tomaž | Categories: Life | Comments »

The curious case of ViewSonic's EDID

03.06.2010 21:37

A couple of hours ago I was sitting in front of my desktop computer when I had to step away for a couple of minutes. When I returned, the screensaver had kicked-in and my ViewSonic VG2230wm LCD monitor was in sleep mode. Deep sleep mode it turned out, because I could not wake it up.

After some digging around and fruitless reboots, power cycles and cable reseatings I came to realize that xrandr was simply seeing the DVI-0 connector on my Radeon 4350 as disconnected.

Further, I stumbled upon this report in dmesg:

*ERROR* EDID checksum is invalid, remainder is 111
*ERROR* Raw EDID:
<3>00 ff ff ff ff ff ff 00 5a 63 1e a2 01 01 01 01  ........Zc......
<3>91 11 01 03 80 2f 1e 78 2e d0 05 a3 55 49 9a 27  ...../.x....UI.'
<3>13 50 54 bf ef 80 b3 00 a9 40 95 00 90 40 81 80  .PT......@...@..
<3>81 40 71 4f 31 0a 21 39 90 30 62 1a 27 40 68 b0  .@qO1.!9.0b.'@h.
<3>36 00 da 28 11 00 00 1c 00 00 00 ff 00 XX XX XX  6..(.........XXX
<3>XX XX XX XX XX XX XX XX XX 0a 00 00 00 fd 00 32  XXXXXXXXX......2
<3>4b 1e 52 11 00 0a 20 20 20 20 20 20 00 00 00 fc  K.R...      ....
<3>00 56 47 32 32 33 30 77 6d 2d 45 55 0a 20 00 39  .VG2230wm-EU. .9

radeon 0000:01:00.0: DVI-I-1: EDID invalid.
*ERROR* DVI-I-1: probed a monitor but no|invalid EDID

Did the EDID serial EEPROM just died on me? This story about reprogramming the EDID chip in a TV suggests that at least in some devices these EEPROMs aren't actually write protected. So it might also just been corrupted by a bug in the video driver or something in its vicinity.

OK, doing something like the procedure described in linked article above shouldn't be too hard. But where to find the original, uncorrupted EDID image? ViewSonic helpfully provides software for inspecting EDID, but doesn't include the original data.

Then, while searching for the original EDID image, I stumbled upon this thread about a similar problem. It suggested an amazingly simple solution:

  • Plug in both DVI and VGA cable into video card and monitor,
  • turn on computer and let it boot,
  • shut down computer,
  • unplug VGA cable but leave DVI alone,
  • unplug monitor for 10 seconds,
  • turn on the computer.

I found it hard to believe this voodoo would help, but considering the number of people there that said this helped, I tried it anyway. And it worked!

Interestingly, this is how EDID looks now (changed bytes in bold):

(II) RADEON(0):   00 ff ff ff ff ff ff 00 5a 63 1e a2 01 01 01 01
(II) RADEON(0):   22 11 01 03 80 2f 1e 78 2e d0 05 a3 55 49 9a 27
(II) RADEON(0):   13 50 54 bf ef 80 b3 00 a9 40 95 00 90 40 81 80
(II) RADEON(0):   81 40 71 4f 31 0a 21 39 90 30 62 1a 27 40 68 b0
(II) RADEON(0):   36 00 da 28 11 00 00 1c 00 00 00 ff 00 XX XX XX
(II) RADEON(0):   XX XX XX XX XX XX XX XX XX 0a 00 00 00 fd 00 32
(II) RADEON(0):   4b 1e 52 11 00 0a 20 20 20 20 20 20 00 00 00 fc
(II) RADEON(0):   00 56 47 32 32 33 30 77 6d 2d 45 55 0a 20 00 39

The changed byte represents the week of manufacture according to the EDID standard. 91h is invalid as a week number (at most 36h weeks in a year) and doesn't share any common bits with 22h. This makes it improbable that either some intentional mechanism or a random bit-flip in the hardware would cause this error, so it remains a mystery to me.

Is it just me or you just can't get any work done lately without some random piece of software or hardware going belly up on you?

Posted by Tomaž | Categories: Digital | Comments »