Milan Zamazal's Weblog RSS feed

Entries tagged "computers".

Vega Strike
24th November 2005

A few days ago I dreamed about flying a space ship. Now I've found it's actually possible thanks to the Vega Strike game. Although Vega Strike doesn't run on my computer very well and I don't have time to actually play it, it's nice to see another high quality Free Software project.

Tags: computers, software.
Web server software
26th November 2005

It's amazing how difficult it is to find a good web server other than Apache. I tried to find any web server which is regularly maintained, provides basic functionality (serving static pages, CGI scripts with arguments in the form of path, providing index files and virtual servers), actually works, is sufficiently documented, performs reasonable logging and is not too complex. thttpd, bozohttpd, Boa, Cherokee, Yaws, Twisted, Roxen, AOL, Portable AllegroServe all failed this criteria.

Finding working weblogging software which doesn't use an SQL engine for storing its data and is well configurable may not be easy too. If you use Debian and try Pyblosxom, don't use its sarge version suffering from a bug preventing it to run with some web servers, use the version from unstable.

Tags: computers, software.
Portable AllegroServe in action
28th November 2005

So this site runs on Portable AllegroServe now. The main problem with AllegroServe was it couldn't run CGI scripts on SBCL, but I succeeded in porting the corresponding code. It's not ready for submitting a patch, but if you're interested in it, tell me.

I've chosen Portable AllegroServe because it's highly and easily configurable and written in Common Lisp (with no UFFI involved) so it's easy to hack it when needed.

Tags: computers, software.
Debian or Ubuntu?
1st December 2005

Ubuntu fixes the most important problem of Debian: its slow release process. Now, about half a year after the latest Debian release, I already move slowly from stable to testing and unstable. Not without reason, most often because new software versions fix bugs of their older versions in stable. More frequent operating system distribution releases can help to deal with that problem. I don't know whether Ubuntu is more stable or less stable than Debian, I don't use it regularly. But I know I've already installed Ubuntu instead of Debian more than once, because the more than two years old software distribution didn't run on new hardware or didn't provide software satisfying contemporary requirements. Ubuntu is natural choice then – it is very similar to Debian and it retains one of its big advantages providing completely Free Software distribution.

But I personally can't move to Ubuntu. The major problem of Ubuntu I can see immediately is its limited scope. Some Debian packages are unavailable for Ubuntu and most Debian packages are not present in the officially maintained part of Ubuntu. This is very different from Debian, offering a huge amount of officially maintained packages. I install new pieces of software frequently and with Ubuntu it might be very time consuming and tedious.

Tags: computers, os.
Trouble with printing
5th December 2005

Today I had to print something. My aging DeskJet refused to print it in sufficient quality again. I had to use another printer connected to a Windows machine. That meant an interesting challenge to print a Czech OpenOffice.org document on Windows. OpenOffice.org 1.1.3 PDF export produced a document with Czech characters missing. This can be fixed by printing the document into PostScript and converting it to PDF. Such a PDF looks well in xpdf but not so in Acrobat on Windows, which can't display Czech characters in it correctly. Fortunately, PDF export in OpenOffice.org 2 beta seems to be fixed so after two hours of hardware and software experiments I was finally able to print the document.

That story encouraged me to buy a new printer. About a year ago I considered buying Epson R200, but I got discouraged because of very expensive ink and paper. Today, there is Epson R220 available, it's a bit cheaper than R200 was last year and the ink and paper seem to get cheaper as well. I need new printer anyway, so I'll give it a try. HP is out of question, all HP devices I tried to use have suffered from some troubles so far. Low-end Canon printers may be more economic, with less clogging troubles and with a better text printing quality when compared to Epson. But unlike Epson, Canon seems to be careless about Linux drivers thus their devices are completely useless to me. Epson printers are well supported on Linux and I've already got good experiences with two Epson scanners on Linux, so Epson is where I'm going to spend my inkjet money.

Tags: computers, hardware.
Epson devices on Linux
10th December 2005

I've added information on running the Epson Perfection 2480 Photo scanner and Epson Stylus Photo R220 printer on Linux to my small Linux hardware page.

If you find those small pages useful, please consider sharing pieces of your knowledge on Internet as well, it can help to many people. My Linux hardware pages are almost the only pages visited on my site, they are visited mostly by people looking at Google for information on running something on Linux, so people need this kind of information. I'm going to write more on the topic of sharing knowledge on Internet sometimes.

Tags: computers, hardware.
Lisp Blosxom
13th December 2005

There's an interesting project for us running their weblogs on Lisp servers. Too bad I've got absolutely no time to contribute now. :-(

Tags: computers, software.
Tramping in Emacs
3rd January 2006

Why to use separate terminal applications for remote connections when one can use Emacs? Why to run remote Emacs of different version, in different configuration, with echo delays, without your customizations, etc.? Why to pollute your desktop with another window and why to switch between it and Emacs all the time? Why to run multiple editors?

The only reason I didn't simply use Tramp for remote connections was lack of command line completion. But that can be done with Tramp too, one just must configure it. rlogin.el doesn't seem to be directly useful for that purpose, but it's useful for getting a clue. So I wrote a little hack:

(defun my-shell-directory-tracker (command)
  (when (string-match "^ssh " command)
    (make-local-variable 'comint-file-name-prefix)
    (let ((host (comint-substitute-in-file-name
                 (comint-arguments command nil nil))))
      (set (make-local-variable 'comint-file-name-prefix) (format "/%s:" host))
      (set (make-local-variable 'comint-process-echoes) t)
      (cd-absolute (format "%s~" comint-file-name-prefix))
      (rename-buffer (format "*shell:%s*" host)))))
(add-hook 'comint-input-filter-functions 'my-shell-directory-tracker)

Now I can enjoy remote editing (both editing files and editing command lines) quite comfortably and without echo delays.

This hack is not perfect, but it has good usefulness/effort ratio. If you can improve it or know about a better solution, please tell me.

Tags: computers, emacs.
Stepping down with GUI toolkits
16th January 2006

I write a small application which works with Festival speech synthesis system. As Festival modules I use are written in Scheme, I started to write the application in Common Lisp and McCLIM. But I had to step back from this decision soon. McCLIM is an excellent GUI toolkit, but it lacks support for Czech, which is absolutely required by my application. As there is no real maintainer of McCLIM and the team of occasional contributors is generally not responsive even when you try to make patches, I didn't want to risk blockers in the later stages of my project.

I moved to Guile and guile-gnome. That seemed to be a natural choice, GTK+ is a proven and stable platform and despite I missed McCLIM high-level functions I hoped to benefit from the implementation of the whole project in Scheme. But it occurred again that using foreign bindings is painful. guile-gnome platform is basically undocumented and based on a foreign bindings generator which is hard to understand and without proper documentation too. After several battles with guile-gnome I had to give up and rewrite the UI part to C (the rest remains written in Guile).

The plain C GTK+ UI works now. Well, the basic UI concepts of GTK+ look like ten years behind CLIM 2.0 (i.e. somewhere around 1980), programming in GTK+ is no way comfortable and the thousands of low-level functions are far from elegance. But what is more important is that GTK+ works and is properly documented. You spend predictable amount of time on low-level coding instead of completely unpredictable amount of time on reading and fixing toolkit source code.

Tags: computers, software.
From Konqueror to Firefox
17th January 2006

Several latest versions of Konqueror use to crash, usually about once or twice a week. This is not something I'm able to fix easily and as I got sufficiently annoyed (including some missing features such as inability to block popups or to show page source in a sane way) I decided to move to another browser.

There is hardly any real alternative other than Firefox. So I switched to Firefox 1.5. The result? Firefox has crashed three times during the first day of its use…

Tags: computers, software.
Software Patent Game
22nd February 2006

Not having millions of dollars/euros on your account? Not backed up by dozens of lawyers? Not having guts to kill inovation and to blackmail your competitors? Never mind, you can still play the Software Patent Game!

Tags: computers, freesoft.
Linux printing sucks
24th February 2006

There were old good times when one could install magicfilter on his GNU/Linux system and send a file to a printer and the printer printed the file as expected. Since I started to use CUPS a few years ago it's no longer true. Whenever I send some PostScript or PDF file to my printer, I'm full of tension about what the printer will produce. Sometimes I receive output looking like printed at 50 dpi, sometimes the page content is scaled by factor 2 horizontally and/or vertically, sometimes characters kernings are broken. Whether it is an e-mail, a Web page or a PostScript document, I'm never sure that I can print it usably. I often start printing by printing a test page, because what I can see in gv may not be what I receive on the paper.

I can understand that new drivers need debugging, which is the case of printing images with Guttenprint for example. I appreciate the hard work of people who try to provide their best, equipped just with incomplete specifications (if any specifications are available at all) and with testing and reverse engineering reports from voluntary testers. But I really don't understand why people invent new great things which simply can't work as before, which produce the same broken result on any printer and won't get fixed for several years.

If you laugh now and point to other operating systems, calm down. I've recently tried to install Epson Stylus Photo R220 drivers on a Windows system and tried to perform nozzle check from it. When I perform nozzle check using the printer's buttons or with Guttenprint on Linux, the printer just prints the testing pattern. Not so with the Epson Windows drivers, which add (without warning) an extra action before printing the pattern: an excessive head cleaning which wastes about 6% (!!) of the complete ink amount of full cartridges. Now I can understand why so many people complain that Epson printers waste a lot of ink.

Tags: computers, os.
From Ekiga to Twinkle
25th February 2006

I've been using Ekiga (formerly Gnomemeeting) for several years. Among free software phones it was exceptionally stable and well usable since about its 1.0 version. But it supported only the H.323 protocol which became a big problem during the time. H.323 is usually not supported by VoIP providers, it is poorly supported by the Asterisk PBX and generally it has no future. That forced me to use the development branch of Ekiga which contains SIP support.

A development version is naturally not a stable version. Ekiga snapshots suffered from occasional freezes, automatic deregistrations and other problems. I'm tired from all the problems related to Internet telephony, so I looked for a well working free software phone with SIP or IAX support. That was not easy, most of the phones are not well usable.

I've recently switched to Twinkle. It is stable and provides additional nice features not present in Ekiga, such as two phone lines, better user interface, user script invocation on incoming calls or logging SIP messages. A very important advantage of Twinkle over Ekiga is that calls are much less jitter-prone when something runs on the computer. The only Twinkle drawback I've met so far is that it is a Qt application which means it doesn't work very well with a systray when using Sawfish.

Tags: computers, software.
The Community Patent Consultation
16th March 2006

I've noticed that European Commission starts a new round of the Community Patent project that can lead to legalization of software patents in the European Union. E.U. citizens and companies have opportunity to fill-in a Commission questionnaire on the issue till the end of March.

If you are concerned about the European patent system and/or the danger of legalization of software patents in the European Union, please look at the FFII pages about the questionnaire.

Tags: computers, freesoft.
OS reinstallation after 10 years
10th April 2006

IIRC, I've been running Debian GNU/Linux on my primary workstation since summer 1995. All that time (almost 11 years!) the operating system ran without any single reinstallation, starting with the Debian 0.93R5 version and ending with mixed sarge-etch (post-3.1). I only performed upgrades, I've never reinstalled the system from scratch. None of the upgrades required immediate reboot as used to be (or even still is) required by some other operating systems. The system survived all the upgrades (including numerous development versions), kernel failures, user failures, experiments, hardware changes, etc. running daily or even 24 hours/day. Such a stability is exceptional and it proves that stability is indeed one of the primary Debian features and that Free Software is a very stable and future-proof platform.

The operating system is being reinstalled now. It's not because of its instability, the system still runs and can continue to run well, but my primary workstation gets upgraded to an incompatible hardware architecture (64-bit system). So I can't simply copy my operating system from the old hard drive to the new one as I used to do on all the former hardware (disk) upgrades.

Tags: computers, os.
AMD64 performance
15th April 2006

Having finally an AMD64 system in my hands, I'm positively surprised by its performance. When I switched from a Duron 650 MHz to a Celeron 2.6 GHz a few years ago, the performance increased much less than I expected. This applied to Sempron 2400+ (~1.6 GHz?, Socket A) as well, it ran only slightly faster than the Celeron. The increase in performance was significantly lower than increase of the (AMD) CPU frequency. After that experience and having read some articles about current processors and 64-bit systems, I didn't expect too much from an upgrade to Athlon64 X2 3800+ (2.0 GHz), despite AMD64 users around me reported great performance with their AMD64 systems.

Surprisingly, according to my first tests GNU/Linux runs about 2-3 times faster on the Athlon64 than on the Celeron (measuring single processes). The overall user experience confirms the timings, e.g. Firefox doesn't feel like a terrible CPU hog now. I can think about the following reasons for the great performance:

Overall Athlon64 at 2.0 GHz seems to be very roughly about 5 times faster than the 6 year old Duron at 650 MHz, which means that the performance increased more than the CPU frequency. Cool.

As for the dual core performance, it seems to serve its purpose. Of course, don't expect it to speed up your single tasks. At best you can try to run 'make -j3' on 'make' based build systems. If you're lucky, your compilation time can decrease to almost half the standard compilation time, but you may face two problems: 1. Not everything can be built in parallel (e.g. speed improvement of Emacs compilation is only about 10%, since the Lisp part compilation is not parallelized); 2. Conflicts can occur in parallel compilation (as happened to me at least twice – in Emacs and in Festival), forcing you to manually restart the compilation. Well, I don't use Gentoo nor run a Debian builder machine so compilation time tuning is not that important to me.

The real benefit of the dual core architecture on a mixed desktop/server system is that background tasks run without disturbing your interactive work. You no longer need fear to run big rsync tasks (such as backup) or multimedia processing on background while doing unrelated interactive work. (This is something to be appreciated with the current state of software when one should buy a strong machine just to use a modern web browser comfortably.) So far it works well, but I must wait until the machine gets into its full service before making my final statement about saving time, patience and coffee.

Tags: computers, hardware.
udev troubles finally solved
17th April 2006

After spending total amount of several dozens hours of fighting with the infamous udev arbitrary device name assignment, I've finally won. Device name assignment is absolutely underdocumented and I was able to get it work only thanks to the kind people sharing their experience and knowledge on the net. For the record, after a lot of googling and experiments I ended up with the following setup of the multiple network and sound cards on my Debian system:

options snd-... index=0
options snd-... index=1
options snd-... index=2

This ensures ALSA devices are assigned to the defined positions.

KERNEL=="eth*", SYSFS{address}=="00:11:22:33:44:55", NAME="wan"
KERNEL=="eth*", SYSFS{address}=="ff:ee:dd:cc:bb:aa", NAME="lan"

Note:

Then the network devices are accessible under the names 'lan' and 'wan' and you should use them in '/etc/network/interfaces' instead of 'eth0' etc.

Tags: computers, os.
Linux becoming a mature operating system
21st April 2006

Linux has always been a nice free and stable operating system. But from the user's point of view it was somewhat primitive and lacking some basic features. Perhaps that was one of the primary reasons why GNU continued to develop another operating system, the Hurd.

But things have recently improved a lot. By integrating FUSE into the official Linux distribution and Linux-VServer into Debian Linux kernels, two important Linux limitations are mostly gone.

FUSE allows users to create their own virtual user-space file systems. That means the elegant facility provided by Hurd translators is available in Linux now too. It's finally possible to mount remote directories transparently, to create usable automounters, to implement new file system features in high-level programming languages, etc. and that all without root privileges.

There is still a missing feature though. FUSE currently provides only active translators that require explicit startup and do not survive the next reboot. Passive translators, i.e. permanent translators started automatically when their mount point is accessed are still not available. Hopefully they will be added to Linux too.

Linux-VServer allows you to use several virtual machines on a single hardware. It's something like running new Hurd instance inside another already running Hurd instance. Linux-VServer, unlike hardware emulators, allows separating independent tasks without any significant burden on the hardware – the CPU, RAM and disk usage overhead is negligible. With your processes running on different virtual machines, you are more protected against both accidental and intentional failures. For instance your web server can always run on a dedicated computer (as it should) without the need to dedicate it actual separate hardware. Then you can safely upgrade each service separately without the danger to damage other services and with the possibility to roll back to the original version immediately.

With Linux-VServer (or similar projects) hardware can be used more efficiently. Instead of having a lot of physical computers being most of the time idle you can build a few bigger physical machines running a lot of virtual computers for many users and uses. I didn't like the single big machine approach before because it required interaction with sysadmins. User: "Would you upgrade Emacs installation there, please?", Sysadmin: "What is it Emacs?", U: "It's a text editor.", S: "I don't use it.", U: "Would you still upgrade its five years old installation, I need new Emacs features.", S: "No, it could break.", U: "Hm, hopefully I won't reach my $HOME quota this time…". With Linux-VServer, the user can safely receive his own virtual computer and run his own operating system of his choice on it without messing with other users (and sysadmins, most of the time).

Linux-VServer is still immature, especially it lacks proper documentation, but nevertheless it's already very useful. Both FUSE and Linux-VServer are promising and give us a hope that a free and usable modern operating system will be available sometimes.

Tags: computers, os.
Proprietary drivers and Linux
3rd July 2006

ATI graphics cards suck and I can't recommend buying them. I've spent significant amount of time trying to get run their proprietary drivers on Linux and the conclusion is that the X.Org free drivers are dozen times better than those from ATI, despite 3D acceleration and TV-out don't work with my ATI card. Effectively, my new ATI card is a 3D incapable device without TV output.

I don't believe NVidia is much better – I've once had particularly bad experience with an NVidia graphics card. Intel cards are well supported, but does Intel make anything else than onboard cards? We clearly miss real competition on the hardware market.

I really can't understand the ignorance of hardware vendors. They are incapable to produce stable and well working drivers for Linux. Well, why don't they provide specifications to their devices then and let people make good drivers for free? What's so secret on accessing 3D graphics acceleration or making a printer to print a borderless photo?!

Will Linux and other non-proprietary operating systems still be usable without essential modern hardware features? I doubt. But what's the solution? Current market turns into unbreakable oligopoly in many areas, so the natural market mechanism doesn't work. Open hardware would be the best solution, but it seems this is not something that could become widely accessible in the foreseeable future. Apparently there is not much else to do now than continuing the reverse engineering battle. :-(

Tags: computers, hardware.
digiKam
5th July 2006

My long term observation about GNOME and KDE is that GNOME is stronger in desktop, while KDE is stronger in applications. One of the excellent KDE applications is digiKam.

The most popular free image processing tool, GIMP, hasn't succeeded to become a tool for serious work. Its lack of important features (such as 16-bit color support) and poor user interface make it suitable just for occasional use and perhaps for web designers. Lack of free usable photo processing and management tools has motivated me to develop my own photo processing program as a part of my Springtail Lisp tools. But due to lack of time and zero support from McCLIM developers Springtail didn't provide completely satisfying results.

About a year ago I discovered digiKam. After trying it I've abandoned the Springtail photo application development immediately. Not that digiKam offered all the features present in Springtail and everything I needed, but it provided interesting features, good user interface and was well maintained. It was clear to me that this may be the right tool and it made no sense to invest my effort into development of my own tool instead of helping a promising project.

I can say that digiKam fulfills my expectations and I recommend it to photo enthusiasts who look for a good photo editing and management tool. It can't do everything and there are many features that could be improved, but this is up to us – we can file bug reports, vote for bugs and make patches. I believe this project is well maintained and it's worth to help it.

Tags: computers, photo, software.
CUPS problems again
6th July 2006

Well, not only proprietary drivers are crappy, they are just more crappy than anything else. Free software sometimes suffers from serious problems too.

I use a dedicated virtual machine to manage my printing services. One of the reasons I've put it on a separate machine is stability: While software on my other machines is updated, the printing server can remain untouched.

Now I know I can't expect that kind of stability from CUPS. I often upgrade my workstation. Suddenly printing from GIMP and PhotoPrint stopped working with the error message saying something like "Bad IPP request". After some attempts to find out what's wrong I've found that my CUPS client is of newer version than the CUPS server. Great – unless you use the same client and server software version on your network, CUPS may not work. So I had to upgrade the CUPS server, just because a workstation happened to use newer client version.

The CUPS server upgrade wasn't without trouble. Together with the 1.1 -> 1.2 transition the main configuration file was changed. Well, that's OK (only if I wasn't forced to fiddle with new configuration right now because of the client software update!). But I couldn't access the printing server because of some permission problem. After significant amount of time spent on discovering what's wrong I've finally got it: The 'Allow' directive doesn't work with host name, it requires an IP address. Sigh.

So CUPS started to work with my parallel port printer. Not so with the printer connected through USB. It reported to be unable to open the corresponding USB device. Even setting the device permissions to 666 didn't help. I ended up with downgrading CUPS to 1.1 on both the server and client machines.

I've never liked CUPS. CUPS is not a bad idea and it's fine when it happens to work well, but it has been making troubles all the time I use it. From what I've seen for several years of CUPS usage I have to say that Linux printer management is apparently in incompetent hands (not sure whether upstream or in Debian).

Tags: computers, os.
Multiseat finally working
27th July 2006

When I upgraded my computer, I wanted to make it available to my family even when I'm sitting in front of it (this happens most of the time). Natural way to allow this is to connect additional terminals to the computer. The simplest, cheapest and power saving kind of terminal consists just of a set of I/O devices, such as a monitor, a keyboard and a mouse or a TV with a remote control.

So I equipped the new computer with two graphics cards, assuming that connecting multiple input and output devices to the computer should be just a matter of having corresponding number of graphics cards and free USB ports available. Big mistake! Never, never underestimate software problems. It took me several months to make the multiseat setup actually working and still not without problems.

The very first problem was that X.Org 7.0 refused to run on the second graphics card at all. This is some mismatch between X.Org 7.0/6.9 and recent Linux kernels. After a lot of experiments and googling I finally found a patch that works for me.

Now I was able to run two different X servers, but only on different Linux consoles, i.e. not accessible in parallel. I followed the very nice Multiseat HOWTO, but it still didn't work – my X session has always frozen when I started the second instance of the X server sharing the console. After additional experiments and googling I've found it might be worth to try running different video drivers on each of the graphics cards. The two graphics cards I've got in my computer are the same, so I tried to run one of them with the X.Org ATI driver and the other with the ATI proprietary driver. Indeed, I can run two X servers in parallel now. Not without limitiatons: While the free X.Org driver runs fine, the ATI proprietary driver runs only on the first graphics card (it refuses to start on the second card), without 3D acceleration (compilation of the fglrx kernel module failed) and it freezes the computer when one logs out (this is a real problem that I don't understand since the X server is not restarted on logout). Another problem is that X.Org doesn't allow switching to a Linux text console when running multiseat.

An additional interesting observation is that one can't rely even on such basic things like that a keyboard works. My USB keyboard stops working very soon after boot and needs to be unplugged and plugged in again. Then it works fine, but if I do it when X has already been started, the mouse connected to the USB hub built in the keyboard stops working completely. AFAIK there is a lot of problems with USB keyboards on Linux, often without solution. Well, this is so called computer age…

Tags: computers, os.
Ratpoison, Conkeror
13th September 2006

With the increasing complexity of modern user interfaces the number of annoying bugs grows. What is worse, number of long standing unfixed annoying bugs grows. The overall number of bugs grows and I'm able to do something only with a small part of them. Complex user interfaces have been being released without coming through a serious testing process (a typical example is GNOME).

One way how to handle this situation is to move from the complex user interfaces that don't work to simpler ones that do. I've recently switched from Sawfish and GNOME panel to Ratpoison and XFCE panel and I've been happy with the change so far. Ratpoison is, together with Stumpwm and Ion, a very simple window manager – no window buttons, no borders, no workspaces, no systray, no customization dialogs, no mouse support. Instead you receive a window manager that works, can be easily and completely operated from a keyboard, utilizes maximum of your screen space and is well customizable. I was surprised how little of the complex functionality of other window managers I actually need. Ratpoison seems to offer all I need and to be more comfortable for me than classic window managers.

At the same time I switched from Firefox to Conkeror. The primary reason was that I got annoyed by being unable to reasonably operate Firefox from keyboard. Conkeror is similar to the window managers mentioned above (no wonder – Ratpoison, Stumpwm and Conkeror were written by the same author). There are no toolbars, menus and other decorations, it can be operated from keyboard and it uses Emacs concepts (interactive commands invoked by M-x, buffers, mode line, minibuffer, echo area). Unlike Ratpoison, Conkeror has not been feature complete yet but it's possible to invoke the standard Firefox interface from it in case you need it. Additionally Conkeror is just another user interface to the web browser and as such it can't fix Firefox fatal bugs (such as crashes or freezes on certain pages). Anyway, I like it and I don't miss the standard Firefox interface often.

Well, here is a screenshot of my current desktop, do you like it? :-)

http://weblog.zamazal.org/images/ratpoison-conkeror.jpg

Tags: computers, software.
CUPS 1.2 finally working
11th December 2006

About a week ago, I've upgraded CUPS from 1.1 to 1.2 on my print server. I know one should never touch a working CUPS installation, but as Debian 4.0 is based on CUPS 1.2 I'd have to make the upgrade sooner or later anyway.

Of course, after the upgrade my printing stopped working as usually. As this was my second CUPS 1.1 to 1.2 upgrade attempt I already knew about some problems of the upgrade process and could get run at least the CUPS HTTP and IPP interfaces. But the printers worked in weird ways such as printing a single page in several pieces put on separate sheets or stopping to work after finishing a printing job.

To keep the story short, after a week of various efforts I ended up with complete removal of printing software on the server and its reinstallation. Then the CUPS HTTP configuration interfaces started to offer right configuration items and after a few attempts I could get my printing run properly.

I can only hope that after the upcoming Debian 4.0 release Debian slows down its release cycle again, so that I won't have to suffer all the software upgrade headaches each one or two years… In the meantime, let we software developers think more about impact of the changes we make to our great software.

Tags: computers, os.
Booting Debian from a USB drive
14th December 2006

I've recently installed Debian etch distribution on an external USB hard drive. I was positively surprised how smooth the installation process was and how well the resulting system worked. Especially Czech environment was complete and well set up for the Czech speaking user without any need of further adjustments. The release managers and the debian-installer team do clearly good work and Debian 4.0 freeze may be short.

The only problem was how to boot from the USB drive. Initially it appeared to be easy as the computer offered USB booting in BIOS. But that didn't work, perhaps the BIOS was buggy. So I decided to make a bootable CD for the system.

For the record, here is the process of making a bootable CD for an etch system on an external USB drive. Some steps may be redundant, I don't know, but the final CD worked and this is what matters.

Tags: computers, os.
Scanning software
20th December 2006

Scanning software should deliver maximum information in the best possible form. It's not necessary to avoid further processing, but it's important to keep it possible and to perform processing steps that can be made automatically without losing important information. Choosing right scanning tools is important as mistakes in this process may result in the necessity of repeated scanning and processing. How is it with scanning negative films on Epson Perfection 2480 Photo?

The original Epson scanning software on Windows usually produces good results, but one must be careful to actually receive them. Obvious selections are setting colors to 48-bit (or 16-bit in case of bw negatives) and resolution to

  1. "Improvement" options should be all disabled, especially dust removal

that in my experience actually doesn't remove any dust but removes many details instead (this is a pure software algorithm, the hardware doesn't support any dust removal features). Note that unsharp masking has to be disabled for each scanned film field individually. When you forget it, you receive bad results when you try to apply unsharp masking later yourself. Usually the software produces good colors (better than I'm able to get from the negative by other means now) although manual corrections are often necessary during post-processing, as is common with color negatives. It happened to me once with a few strongly overexposed film fields that the software has chosen very aggressive color clipping and I had to adjust histogram settings and rescan the given fields again. The Epson software requires a lot of mouse clicks (on average more than 2 for each scanned field) and suffers from memory leaks, requiring occasional restarts.

On Linux the scanning process is more challenging. The SANE driver supports all the crucial hardware features and scanning half a film strip requires just a single scanner button press (when you use scanbuttond) and no mouse clicks. But here is a small 1:1 sample of what you receive (contrast is much increased in all the examples to demonstrate the problems more clearly):

http://weblog.zamazal.org/images/epson-sane-quality.png

Note two things:

  1. The very ugly stripe about one quarter from the left in the image. This is not a scratch on the film, this is a systematic defect.
  2. The regular pattern of vertical one pixel wide darker and brighter stripes around edges of dark areas.

As for the special ugly stripe, it helps turning quality settings off (i.e. removing the '–high-quality=yes –quality-cal=yes' scanimage command line options). I guess their meaning is reversed in the driver by mistake. So here is new result:

http://weblog.zamazal.org/images/epson-sane.png

The extra stripe is gone, but the regular stripe pattern is still there. I've no idea why it's there but I've seen something similar in the samples from other scanners on the net so it's likely to be some common hardware feature. FWIW, scanning direction is vertical here. No such apparent stripes are present when the same image is scanned with the Epson software on Windows:

http://weblog.zamazal.org/images/epson-epson.png

So I tried to get rid of the stripes by averaging each two neighboring stripes into a new "neutral" stripe. This operation shouldn't lower resolution of the image, it may just soften it (and the actual scanner resolution doesn't correspond to the scanned image size anyway). So it should be safe. Here is what I received after applying the following imagemagick commands:

convert -crop 199x158+0+0 image.png crop1.png
convert -crop 199x158+1+0 image.png crop2.png
composite -blend 50% crop1.png crop2.png result.png

http://weblog.zamazal.org/images/epson-fixed.png

I think the result is pretty close (except for contrast adjustments) to what Epson software produces, so it's probably the way to go.

All the things presented here may look clear and simple. But it took me long time coming from the first naive scanning attempts to discovering why the scanned images don't look well and finally finding out all what's described above. Now I know supporting a piece of hardware doesn't mean just providing raw low-level drivers to the hardware. The hardware specific post-processing part is also very important and the user may receive poor results if this part is missing.

Tags: computers, software.
So they crippled another webshop
12th February 2007

I don't understand why webshops put so much effort into making buying goods in them more difficult. My favorite hardware shop used to be ALFA COMPUTER, one of the reasons I liked them being their simple and well arranged web pages. That's gone now. They've recently introduced new web pages. The worst thing in them is heavy use of tables and pixel based dimensions. This results in a garbled screen unless a user uses particular screen resolution or is willing to destroy his eyes by reading 7-10 pixel characters on a 1280x1024 monitor.

I complained to the webmaster and he kindly explained me that using pixel based sizes is necessary to get the look "right" and that I can use a magnifier web browser function if I can't read the small font. As most users like the new pages, I gave up. Although I usually buy hardware in real shops, I actually choose it in the corresponding webshops first. As this is no longer easily possible for me with ALFA COMPUTER, they've lost a customer.

Looking over other hardware web shops here I can see such a stupid approach to making web pages is no way unique. And this is not the first time I switched to another hardware seller because of broken web pages. It must be some crowd effect that motivates webshops to make slow, unreadable and confused web pages that take customers away. BTW, any good hardware seller recommended?

Tags: computers.
Memory hogs on my computer
8th March 2007

My first X Window workstation ran pretty will with just 8 MB RAM. Nowadays even 2 GB RAM (i.e. 256 times as much) is not enough for personal use. My workstation runs 24/7, so I sometimes check what consumes all the memory capacity. I can usually identify the following processes being the cause:

Tags: computers.
Installing pdaXrom
3rd April 2007

Sharp Zaurus SL-C1000 is shipped with its own Linux operating system based on Qtopia. The system is not bad, it is stable and although it requires some updates to become really usable, it provides nice PDA environment covering many areas of use. But it suffers of some problems: it's incompatible (as it uses Qtopia instead of X), contains a lot of proprietary applications and the available development environment is obsolete. Simply said it's difficult and annoying to port applications to the system.

So I decided to replace the Sharp operating system with pdaXrom, which is a free X-based operating system for (Sharp) PDAs. They say the operating system replacement should be safe as the Zaurus low-level system service menu is placed in ROM and can't be erased. First I tried to install the latest pdaXrom release, i.e. 1.1.0r121. This was a mistake as the device ended up seemingly completely dead after reboot. It took me a lot of googling and experiments to get it recovered and to install pdaXrom 1.1.0beta3 which seems to work fine so far.

The first advice: Don't install the latest 1.1.0r121 release, install 1.1.0beta3 instead (until some new stable version is released) which has reputation of being relatively stable.

The second advice: If you end up with a "dead" C1000, you can recover it as described on the TRIsoft site. But there is an important missing detail there: You need to press Fn+D+M to start the service menu, not only D+M.

Tags: computers, os.
Moving to git
17th May 2007

Well, I switch the revision control system I use for the third time during last years.

When I decided to try something else than CVS, I started with GNU arch. This was a good choice as GNU arch made a good basis of modern free software revision control systems. Unfortunately problems in GNU arch development and its split into unconvincing forks and replacements forced me to look elsewhere.

There were several reasonable choices among distributed revision control systems: darcs, Mercurial and git. I switched to darcs as it looked simple, user friendly and was popular among Lisp programmers. Indeed, as long as darcs is used for a single line development (as is typical with Lisp projects because they usually don't require much development power) it works very well. I was very satisfied with it until I have been hit by the infamous darcs performance problem. This is a fatal drawback preventing use of the revision control system at all in certain situations. So I had to switch to another system once again.

The remaining choices were Mercurial and git. I decided to go git as it looked more reliable to me (something used for Linux kernel development is unlikely to be seriously buggy or suffering from performance problems, isn't it) and provided "native" tools for cooperation with CVS (this is important to me as I usually work on projects with upstream CVS repositories).

I've been using git for several months now and I'm satisfied with it. From the user's point of view it's somewhat ugly and unfriendly, but one can live with it using a few external tools such as Emacs and qgit. More important is that the underlying concepts look right. Also the git CVS cooperation tools work better than tailor that the other systems use. I think git future is promising, git seems to be well founded, with stable development and growing user base (I know I'm not the only one migrating through the systems as described above and being now a git user). Perhaps git is the future leading free revision control system and I won't have to migrate again in the next years.

Tags: computers, software.
From qmail to Exim
25th January 2008

We have moved from qmail to Exim recently on our company mail server. It is a big relief. The mail server can handle the high amount of incoming junk mail now, it is reasonably manageable and provides readable logs.

It was late transfer. It is not easy to move a mail server to a completely different software and it happened only after more significant qmail problems than just a weird licensing conditions arose. But the important question is: What are the lessons?

Many years ago I was enthusiastic about qmail myself. In comparison to its common alternatives of the time, Sendmail and Smail, qmail was innovative and elegant. I only became a bit reserved about it when Debian Free Software Guidelines explicitly excluded qmail from Debian (there is a special item in the document inspired directly by qmail licensing problems) and djb (the qmail author) became well known for his poor communication style. The time has proved these issues were important and I stopped using qmail on my machines. Now, many years later when qmail is semi-dead and we can look backwards, I can identify three major lessons from the qmail rise and fall.

The first lesson: Beware of non-free software of any kind. Although qmail original license didn't prevent modifications and their distribution, it was restrictive enough to prevent unlimited spread of the software and it put obstacles to contributors and users. In the final result qmail was unable to adapt to new conditions appropriately, namely it is incapable to handle junk mail. Although djb put qmail to public domain recently, it was too late, as with many other pieces of dying non-free software (but it may be still better than to let the software die completely).

The second lesson: Software can't be completely separated from its author. If he is blinded by his pride, numerous problems can appear. For instance the semi-restrictive qmail licensing conditions served no good, they were designed just to satisfy author's ego. Completely ignoring compatibility with other similar software makes adoption of new ideas more difficult. Telling other people they are idiots (either explicitly or implicitly) discourages contributors, doesn't educate the users and builds a wall around the author preventing him from considering other opinions and correcting his wrong decisions. In the final result the software can't utilize its full possibilities and it degrades.

The third lesson: Security is a more complex concept than just avoiding privilege escalation and buffer overflows. Empty security advisory track may look nice but what is it good for when the mail server gets permanently irresponsive under junk mail floods, distributes junk mail itself through bounces and one has to apply third party patches not covered by the security warranty? In such a case the security statement is mostly just a blurb without connection to reality.

Why did I select Exim as the new MTA on our company server? Two mainstream good MTAs today are Exim and Postfix, they are mostly comparable and both the Exim and Postfix communities talk with respect about each other. So as a matter of personal preference I selected Exim which was already known to me.

Tags: computers, software.
Printer calibration
9th April 2008

Some time ago I've finally managed to get my Epson R220 printer somewhat calibrated. Standard Gutenprint drivers suffer from strong green cast on this printer and I wasn't successful to get it corrected directly in Gutenprint. Trying to play with the driver color settings has led me only to other problems, replacing one kind of color cast with a different one. Much better than standard settings but still not always usable. So the only way to print photos on my printer was performing printer color calibration. How did I do it?

First I installed Argyll color management system. It's not included in Debian (I guess not many people perform color calibration regularly and they are scared of irregularly maintained software with lots of possible problems) but it can be compiled and run easily. It's just not easy to use it. But it contains complete documentation, so with enough time, patience, ink, and paper it's possible to get the desired results. I didn't have enough time during last year so it took me more than one year, but it seems to work now.

The first step was to calibrate my desktop scanner. This was necessary to scan the printed samples for calibration processing. I ordered a scanner color calibration target from Wolf Faust and followed instructions from Argyll documentation. This step was relatively easy and I got my scanner calibrated soon.

The next step was significantly harder. When I tried to generate color patches for my 6-color ink printer Argyll created just greyscale patches. I didn't understand it, although the Gutenprint driver apparently uses inks other than black even on greyscale images (as long as color printing is enabled), I decided not to go this way. So I generated and used patches for an RGB printer. Yes, it's probably completely wrong from the point of serious calibration, but it basically works. First I tried to generate the patches for the target 10x15 media but the number of the patches on this area was too small and the calibration results were bad. I didn't have a larger piece of paper of this kind so I used a different kind of paper in A4 size. Professionals would probably fall faint reading this but I wasn't willing to spend another €15 for paper in order to print our family photos perfectly. Then I had to scan the printed results and to process them with Argyll. The process was smooth once I had managed to use proper commands with proper arguments and proper use of the srgb.icm file (taken from digiKam).

The final step was setting the color profile in PhotoPrint. This was easy and worked very well.

Of course my calibration process had several serious flaws: I used a desktop scanner instead of a proper measurement tool, I generated color patches for another kind of printer and I used different kinds of paper for calibration and printing. But the results are still better than any of my previous attempts of manual adjustments. They are not perfect, but my old digital camera is not either, not mentioning my uncalibrated monitor. And I'm glad that faces on the printed photos are no longer green nor violet. This makes my family satisfied enough :-), so this poor man color calibration fulfilled its purpose.

Tags: computers.
Microsoft user
14th May 2008

I've been a user of Microsoft products for some time now. No, I didn't install their operating system on my workstation of course. But I started to use their Natural Ergonomic Desktop 7000 wireless keyboard + mouse set.

When looking for an ergonomic wireless keyboard several months ago I've found that the Natural 7000 set is the only choice. Except for Microsoft, only Logitech offered split wireless keyboards, but they didn't manage to understand where the backslash key belongs to so it was no option for me.

Surprisingly this new Microsoft keyboard is based on the standard keyboard layout, with addition of some more or less useful keys. It fits into my hands very well and typing on it is more comfortable than on my old Chicony ergonomic keyboard. Its adjustable tilt looks like a good idea to me, I like it. It was just necessary to get use to the keyboard as it's somewhat different to my previous keyboard in its shape. I also had to get rid of my bad typing habits to use the keyboard well. I can't judge on real usefulness of the extra keys because they don't work with the latest Linux VServer kernel and I have to wait until VServer gets updated for the last Linux changes. My only complaint about the keys so far is that the multimedia keys look very cheaply built and feel like they could fall apart any time. But Microsoft offers three year warranty for the set so we'll see.

The mouse feels very well too. I think the side holding approach is a very good idea, it became relief for my hand after some time of its use. The mouse is nice to handle, it's just too sensitive for my taste (any way to get it change in X?). Some people complain the mouse is too heavy but for me it's completely fine. The side buttons are easy to reach for me (unlike for most people who reviewed the mouse on internet). There is one problem with the mouse: The left and right scroll wheel movement and especially clicking the scroll wheel (the middle button) are very though. I often have to press the middle button more than once before it actually clicks. I don't know whether this is a feature or a problem of my particular mouse.

It's necessary to note that my hands and fingers are longer than average and that people with smaller hands may feel both the keyboard and mouse uncomfortable.

I can't say much about the operating range of the keyboard and mouse as I use them very near to the receiver. I tried to type something and handle the mouse at several places about 5 meters away from the receiver including one thick wall in between and it seemed to work well as long as there was no special obstacles in the way, as a computer case or my body.

As for the power source I put some old NiMH accumulators to both the keyboard and mouse. They last for about 1-2 months in the keyboard and for about twice as long in the mouse (note I use a keyboard much more than a mouse). Although both the devices are equipped with low battery warning lights, they appeared to be useless. For the first time when the accumulaters got exhausted the keyboard suddenly stopped work in the middle of typing, the same happened later to the mouse. The next time the keyboard light just blinked shortly three times and the keyboard stopped work immediately after that. Perhaps it would work better with alkaline batteries, I don't know.

Overall I'm pretty satisfied with the set despite its minor annoyances. It's really ergonomic and well usable and this is what matters for me.

Tags: computers, hardware.
Using three monitors
15th May 2008

I've been using two monitors with two graphics cards on my computer for long time. I've got another spare old CRT monitor so why not to utilize it? I connected it to a free VGA port on one of the cards and started experiments.

Compared to the two independent graphics cards setup, using two monitors connected to a single card handling a single desktop was relatively easy. By default the monitors show the same screen. I tried to setup Xinerama but these attempts have always finished with X server segmentation faults. After some more searching I've found that the proper tool to use, other than Xinerama, is XRandR. I just had to upgrade the xrandr utility to a newer version. Then it was easy, using xrandr one can play with dual monitor setups on the fly, without needing to restart the X server (which is equal to reboot on my dual card machine). And StumpWM works great with XRandR, I had just to figure out that the second monitor screen is nothing else than another frame.

The only problem is that the whole XRandR setup is limited to the total possible graphics card resolution, 1920x1200 in my case. So the second monitor is limited to 640x480 resolution in my setup. But it's still well usable for tasks like watching TV while doing something else.

Tags: computers, os.
Are AMD processors of any worth?
6th August 2008

I looked at a price list of PC CPUs after some time and wondered what AMD Phenom is. So I looked at the AMD website. To keep the story short I'll limit my experience to a single FAQ entry labeled What is the AMD Phenom(TM) processor?, well representing overall information provided there.

The first part of the answer says:

AMD Phenom(TM) processors represent the next generation of AMD's award winning multi-core Direct Connect Architecture with AMD64 technology enabling greater memory throughput, lower latency and ultra-fast connections to system resources including graphics processors and accelerators.

Well, so they say the new family of processors provides better performance than its predecessors. I wouldn't expect the opposite, so nothing new to me.

The next paragraph:

Featuring true quad-core technology, AMD Phenom(TM) processors are designed to deliver unprecedented megatasking performance and highly tuneable performance platforms to meet the demanding needs of technologically savvy enthusiasts.

This paragraph is interesting because it contains the only single bit of information of the whole FAQ entry answer, i.e. that these processor are quad-core processors. But I could read this already in the price list. As for "unprecedented megatasking performance" and "highly tuneable performance platforms" I couldn't find anything indicating that it describes any real features so I suspect they are just marketing idle talks.

And finally:

AMD Phenom(TM) processors are designed for phenomenal performance and optimum energy efficiency for a growing list of demanding applications, including digital content creation, high-definition video editing, multi-threaded gaming and creative design. AMD Phenom(TM) processors are targeted toward mainstream users who crave more performance and productivity.

I see, these processors are designed so that one can work with a computer. What a surprise!

So I still don't know what the Phenom thing is about. But I know now that either AMD are idiots or they have nothing great to say about this family of processors and they try to hide this fact in meaningless blurbs. In both cases I'd hesitate to buy AMD processors.

Tags: computers, hardware.
Small victory against spammers
19th September 2008

Two years ago I filed a complaint against one of the worst Czech spammers, "Hotel u Lípy". Then nothing happened and I didn't expect too much, reading stories that those spammers exploit a loophole in Czech antispam law.

To my surprise I've received an answer from The Office for Personal Data Protection today. They notify me that they made inspection at the spammer's company and found breakage of the law by sending a business e-mail message without previous agreement of the recipient. As the result they punished the spammer with a financial penalty.

Well, I don't know whether the spammer's business has been punished significantly or not. But dealing with legal offices is definitely no pleasant thing and they would risk worse problems if they continued their spamming activities. And I'm glad enforcement of the antispam law actually works. Good news!

Tags: computers, other.
Another udev discovery
29th October 2008

After very long time I've finally found how to make my two USB keyboards and mice accessible under constant file system names. Here is the trick:

ACTION!="add|change", GOTO="keymouse_end"
SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd"
KERNEL=="mouse*", SYSFS{idProduct}=="0067", SYSFS{idVendor}=="0458", SYMLINK+="input/mouse-genius"
KERNEL=="event*", SYSFS{idProduct}=="0067", SYSFS{idVendor}=="0458", ENV{ID_CLASS}=="kbd", SYMLINK+="input/keyboard-genius"
KERNEL=="mouse*", SYSFS{idProduct}=="071d", SYSFS{idVendor}=="045e", SYMLINK+="input/mouse-ms"
KERNEL=="event*", SYSFS{idProduct}=="071d", SYSFS{idVendor}=="045e", ENV{ID_CLASS}=="kbd", SYMLINK+="input/keyboard-ms"
LABEL="keymouse_end"

I can boot without manual assistance now!

Tags: computers, os.
Two anniversaries
1st December 2008

There are two nice anniversaries in the end of this year. The first one was 50 years of Lisp and the second one is going to be 15 years of Linux on my desktop computers.

Lisp was the second (after FORTRAN) real higher level programming language. During the years Lisp has brought many important pioneering concepts to programming languages, some of them remain quite unique even today (e.g. the concept of little distinction between code and data). Lisp is a demonstration of competent (although not always perfect) approach to various problems in the area of programming and programming languages. And interesting things staying out of mainstream popularity gather interesting people. Lisp community is still full of smart and creative ideas. I hope I'll have opportunity to learn a lot there during the start of the next half of century.

Linux is the most popular free operating system kernel today. But 15 years ago it wasn't very easy to install and use free operating systems on desktop computers (thanks to Yenya for guiding me!). It required significant effort but it was completely worth of it. The experience of competent and working software under your control was great and unique, this is not something you can easily meet today. Such things combined with pioneering work leave permanent traces in a man. Unlike Lisp, Linux based operating systems achieved wide popularity and that have brought to them a lot of good and a lot of damage. Linux will never be again what it was in its early days. But it's still an interesting and powerful platform and I believe it survives the next 15 years in healthy state.

Tags: computers.
File system crash
26th February 2009

I've recently experienced root file system loss. This happened after my keyboard had stopped functioning due to a hardware problem and I had turned off the computer by the power button. Apparently some random process had happened on the disk and while most data survived the file system as a whole was seriously damaged and the system was unusable after fsck fixes. Well, I should probably use the reset button next time and turn the power off only in the bootloader menu.

I had to reinstall the whole computer. As Debian 5.0 was released recently, it was a good opportunity to test its installation.

The most interesting experience was discovering how software is unstable today. I often use development versions of the operating system so I use to be tolerant to various small problems. But when I install a released system from scratch, I expect a completely smooth process. It wasn't so and Debian 5.0 is disappointing to me. I don't think other distributions work better but Debian used to have higher standards (and I would expect them after 7 months of freeze). While the installation process itself was completely fine, not all of the installed systems were ready to work well without fixes.

There are two kinds of problems: Debian problems and upstream problems. I experienced one Debian problem. It was that apt-proxy didn't work in the default setup. This seems to be a known bug (!), making a small change in one of the source files was needed. Apparently there was some lack of coordination between archive maintainers, installer maintainers, and apt-proxy maintainers. Considering the complexity of the current distributions one can understand it's difficult to make them completely flawless. But there seem to be problems in testing and paying appropriate attention to reported bugs.

Upstream problems are more frequent and more difficult to deal with. The current trend seems to be to fix bugs by releasing new upstream versions without proper attention to regressions. Similarly, it's much easier for a distribution package maintainer to package a new upstream version than to backport the bug fixes. The result is that old bugs get fixed, but new ones are introduced. Combined with the facts that it's often uneasy to reproduce and diagnose the reported bugs and that we are all busy, busy, busy today, there is no obvious way to handle the general software instability problem. Even when some bugs are known, there's not enough power to fix them and they tend to get ignored.

So should we simply learn to live with the fact that software features get more and more complex while their stability gets more and more reduced? Or is there a feasible way to get the growing software complexity managed?

I think there are things worth to try. More and better interaction between software developers and users is needed. We need to build better ways to prevent regressions, to reduce amount of hidden bugs, and to offer easy means to users to determine causes of problems. Instead of hurrying for new features we should focus more on making existing functionality actually work. This is what I demand from the software as a user.

Unfortunately the real world doesn't allow me to step into this area anytime soon. But if I ever have opportunity to work more on Debian, I'll probably start with joining the Debian QA efforts.

Tags: computers, software.
Smart phones
15th April 2009

My old mobile phone becomes a bit unreliable, so I look for a new one. Perhaps a smart phone would be useful, but I'm not interested in proprietary and virus prone OSes without available source code and lacking good development tools and community support. Given these constraints there are at most two options: Google Android and Openmoko (Neo FreeRunner).

If I understand it right, Google Android is actually not an option. It's built on top of a Java platform and can be programmed only by using a proprietary SDK. So it's not completely free, I'm forced to work in Java and I can't port my favorite applications to it. No, thank you.

Openmoko is an interesting free software platform, but there are problems. Neo FreeRunner phone is relatively expensive while lacking some basic features commonly available in cheap phones (EDGE, camera). But the real problem is that it doesn't seem to provide robust telephony services instantly. I'm looking for a device which I can use exclusively, not for a supplementary and rather expensive toy. If the basic phone functionality worked without any problems then I might participate on development of other features. Hopefully Openmoko (or other nice platform) reaches that state before my next mobile phone will die.

So my next mobile phone will be a simple phone, smart phones haven't grown up enough yet to satisfy my needs.

Tags: computers, os.
Erik Naggum dead
17th July 2009

Erik Naggum has died a month ago. This last action of him initiated another (hopefully the last one) naggumic flamewar on comp.lang.lisp. No surprise. His contributions, their value and his human behavior were discussed. For me, his major contribution remains his arguments about Common Lisp that enlightened me about that programming language. I discovered that Common Lisp is a powerful tool and not an unimportant obscurity as many mistakenly believe. Thanks, Erik!

Tags: computers.
Future of the Web: Total ignorance?
25th January 2010

Several years ago I complained to a web shop web master about invalid character coding information in their web pages. I was told the invalid information was there intentionally so that the pages displayed correctly in a broken web browser which was used by 97% of their customers.

At another occasion I took seriously call for comments about the design of new web pages of another web shop. I complained that assuming particular screen size and resolution is not a good idea. I was told that most customers like these sizes and if it doesn't fit my environment well then I can use a web browser loupe.

Last years I've been wondering why most web sites use small font sizes, thus making the text poorly readable by default. I was told it is because common web browsers used to use large fonts by default and web masters started to compensate this by reducing font sizes on their sites. This approach became so common that not using it today might make the given site look bad. Hmm. I can set a minimum font size in my web browser configuration but then many web pages get broken because of their layout dependent on a particular font size.

Well, maybe the idiots are not present everywhere. How about sites of institutions full of computer scientists and presumably educated IT professionals? Do they know anything about solving problems at the right places?

Looking at the front page of my alma mater I can see they assume particular screen/window size and they reduce font size significantly. They provide a style for low vision users which stops assuming particular screen/window size but which still sets its own font size (perhaps low vision users can't set their own preferred font size because of all the web ignorance?). ACM pages don't presume screen size but they still set very small fonts. So no success here.

My last hope are highly skilled free projects. I'm looking at Linux, Debian, GNU and Wikipedia sites. With the exception of GNU (using fixed layout) all the sites look basically civilized. Such a relief! There is still a few competent web masters. But will they survive?

As many applications move to the Web, we are going to face another disaster. After the disaster caused by the dominance of the inferior desktop operating systems pushed by a single company we can expect flood of incompetence coming from all directions. It was difficult but still possible to resist a monopoly of a single company. But how to resist the global viral effect of "fixing" problems by introducing new ones?

Tags: computers.
Lessons from Sharp Zaurus
13th February 2010

There are areas where free software community fails. Not for technical reasons or lack of resources, but because of management and strategic planning incompetence.

Once I got an idea to get a Linux handheld. There were two models available at the time: Sharp Zaurus and Nokia tablet. The Nokia tablet didn't have any keyboard so I choose Sharp Zaurus, despite its worse operating system.

The preinstalled operating system on the Zaurus was some old version of Qtopia combined with proprietary applications. It had some nice features but many problems, such as missing Czech environment, limited set of applications, no X support and obsolete development environment. Some improved versions of the system were available but the basic limitations were still present.

After some time I replaced the original system with pdaXrom, a free Linux based operating system for PDAs. It offered X Window System and more modern development environment so it was possible to port common applications to it. Nevertheless pdaXrom was no way complete and its development has deceased during the time.

Developers of several free Linux PDA operating systems decided to join their efforts in the Ångström project. So I replaced abandoned pdaXrom with Ångström. But Ångström offered only very limited set of applications and I've never managed to get its development environment working.

There were only two options remaining: Either to put my Zaurus to a recycling center or to install Debian on it. Fortunately I could find a Debian installation for Zaurus so after several years I got chance to run a full featured operating system on the device. Finally I could install Emacs and other basic applications easily. But there were some minor problems and I've later upgraded to an up-to-date Debian version. By replacing the old preconfigured kdrive X server with standard xfbdev X server I've lost touch screen capability. So my Zaurus remains mostly unusable until I have time to look at the problem and can get it fixed.

I really don't understand why free software developers waste their limited resources by developing new operating systems that are unmaintained, very incomplete, missing good development environment and generally not perfectly working, when a good and complete operating system such as Debian already exists. All what was need was to customize Debian a bit for use on the particular kind of device. I could see the same mistake was repeated by Neo Freerunner developers. Instead of focusing only on important things like handling calls and SMS, they tried to maintain a complete operating system. In the final result Neo Freerunner didn't provide reliable calls nor a complete operating system.

Community developers have painfully failed in finding a feasible way of making a good free operating system for PDAs. Nokia managers made a better decision by deciding to base Maemo on Debian, thus avoiding a lot of useless work. I don't know whether Maemo allows easy porting Debian applications to it using a completely free SDK. If it does then it may be (the only) promising platform unless Nokia decides to stop its further development. Other platforms are either not well maintained, or are not actually free (Android with its proprietary SDK), or are based on a platform that can't run common free applications (Android, perhaps Symbian as well).

Tags: computers, os.
Playing bridge
16th February 2010

Thanks to GNUBridge I could play a few games of contract bridge last weekend, for the first time since my student years!

Tags: computers, software.
How to prevent collaboration
18th February 2010

I tried to make OpenVPN working in a Linux-VServer environment about a year ago. I couldn't find a straightforward HOWTO nor answers to all my questions. So I described what I had done and sent my questions to the VServer mailing list. I expected that I get answers to my questions and then other users trying to run OpenVPN with VServer can find fine instructions at least in the mailing list archives.

My mail has bounced because non-subscribers (I read most mailing list via Gmane NNTP gateway) were not allowed to post to the VServer mailing list. Considering my effort of writing the mail and the possible benefits of sending it I tried to temporarily subscribe so that I could send the mail. The subscription address didn't work. So I wrote to the postmaster about the problem but haven't received any answer. I got discouraged and gave up.

All the result was my wasted work of writing the mail and trying to send it. I made OpenVPN working some way and I haven't managed to return to my original problems to describe them on the wiki or so.

I really don't like closed mailing lists. Closing a mailing list is a cheap solution. You don't have to set up spam filtering. You won't get rants from readers about spam coming from the mailing list. And you annoy legitimate users and miss contributions.

Tags: computers, freesoft.
New hard drive
11th August 2010

In the last years adding new hard drives to desktop computers running GNU/Linux used to be very easy. The drive was just connected to the computer, partitioned, formatted and it worked well. It seems it may not be that easy now again.

I've bought a new Western Digital Caviar Green hard drive some time ago. I did some googling for using green hard drives on GNU/Linux and have found two surprising facts.

For first, new Western Digital hard drives use larger sectors and when partitioning the drive it's important to align partitions properly otherwise performance of the drive will be poor. None of the tools I tried (fdisk, cfdisk, parted) was able to do the right thing. Maybe it's because I've got older kernel on the computer and connecting the drive through a USB box to a laptop with recent Linux kernel didn't help either. Should I synchronize installing new hard drives with operating system upgrades next time? Fortunately I could find a tip how to fix partitioning manually using fdisk.

For second, the Caviar Green drives park their heads just after several seconds of inactivity. It's not much problem except for the drive lifetime. Indeed, according to my S.M.A.R.T. reports the expected lifetime of my new hard drive isn't going to exceed the warranty period because of the frequent heads parking. Well, it's only a counter after all and it mostly motivates one to perform backups regularly. The strange thing is that nobody seems to get the reason for such an aggressive parking policy in this kind of drive.

Tags: computers, hardware.
Smart phones one year later
21st August 2010

When I was looking for a new mobile phone and looked at smart phones more than a year ago, I've found there has been no working smart phone equipped with a truly free operating system providing rich set of applications and nice development environment. It seems there happened at least two important changes in this area during last year.

I've found Neo FreeRunner is still not dead. And looking at their latest news I can see a great change: Debian is taken seriously now as the primary operating system for the device. This means the phone can be equipped with a reliable operating system, I should be able to install my favorite applications on the phone, there should be a working development environment and it would make sense to contribute to the development of the phone software environment (nothing of that applied to the former OpenMoko operating system). For this fact, if I was buying a smart phone today, I would buy the FreeRunner without much doubts. So after fixing the wrong operating system strategy now the question is what will happen with the hardware. We'll see.

As for big vendors, Nokia is still interested in providing operating systems based on GNU/Linux platform in their phones and possibly future tablets. They've abandoned Maemo which is no pity. When I looked at Maemo web pages last time, I've got the impression that Maemo is a semi-free operating system providing only a very limited set of supported packages and not being worth to contribute to. Why simply not to use Android under such conditions? The only real advantage of Maemo might be that with a significant effort and patience one could in theory port his favorite applications and all their dependencies to the system, there is no such option with Android. It's better to avoid such systems.

Now Nokia joined its efforts with Intel on development of MeeGo operating system. Will MeeGo fix the problems of Maemo? They promise MeeGo itself will be completely open source, this is good. But will it provide all the important applications such as Emacs, KStars, Scid with Stockfish, etc.? I doubt, it's no easy thing to develop a complete operating system distribution and it's even harder under corporation umbrella where it's likely the distribution will be rather closed and driven mostly by marketing requirements. And if all the marketing wants is to provide just another Android and iPhone competitor then the question is again: Why not to use Android straight out? If Nokia would like to be different (would it?) then they could work on making Debian easily installable and runnable on their phones and tablets. Then those devices could be real killers in a certain market segment. We'll see.

Tags: computers, os.
Fonts in Emacs 23.2
11th September 2010

When my Emacs was upgraded from 23.1 to 23.2, I got negatively surprised: It changed font rendering, making fonts significantly less readable. I quickly identified the corresponding NEWS entry:

*** On X11, Emacs reacts to Xft changes made by configuration tools,
via the XSETTINGS mechanism.  This includes antialias, hinting,
hintstyle, RGBA, DPI and lcdfilter changes.

But I didn't know anything about Xft and XSETTINGS. I started to look for a quick solution and tried to install and use common desktop configuration tools such as gnome-control-center, systemsettings and xfce4-settings. I've found that font adjustments apply in Emacs only when using the GNOME tools. So running gnome-settings-daemon was necessary and it was very annoying: It changes keyboard layout on startup and after switching back to X from console, breaks multimedia keys, pops up annoying dialogs on various occasions, etc. and I couldn't find a way to prevent all the odd behavior.

Now I've finally got rid of it. I discovered Xft font properties can be set simply via X resources. After some testing and elaboration I ended up with the following new lines in my ~/.Xresources:

Xft.antialias: 1
Xft.hinting:   1
Xft.hintstyle: hintslight
Xft.lcdfilter: lcdnone
Xft.rgba:      none

Now fonts in Emacs look fine again and gnome-settings-daemon is no longer present on my computer.

Tags: computers, emacs.
Moving to Org-mode and Chronicle
14th October 2010

I've started using Org-mode some time ago (more on this sometimes later). Consolidation of my personal information management and complete move to Org-mode applies also to my weblog articles. They are now part of my Org and all I additionally needed was to publish the resulting HTML texts.

I looked for something simple and available in Debian and decided to use Chronicle. The only real problem was that Chronicle doesn't retain file names and makes new file names based on the article titles. I didn't like this – if nothing else it breaks contingent links to my weblog site. But Chronicle is free software and it wasn't hard to change it to my needs.

I hope that you, dear readers, won't have any problems with my weblog after this change.

Tags: computers.
Stockfish
23rd October 2010

Do you know which PC chess playing engine became the second strongest one in the world after Rybka this year? It's Stockfish, a free chess engine distributed under the GNU General Public License.

It may look surprising that a hobby program with publicly available source code can beat all the proprietary engines with their secrets and hard working full-time developers. But it just proves that cooperation, open development, sharing (Stockfish developers make just the playing engine and don't have to care about user interfaces already provided by other programs) and making things for fun may lead to excellent results.

Tags: computers, freesoft, software.
Proprietary, proprietary, proprietary
31st October 2011

A famous businessman has died some time ago and the whole world has praised him as a hero who changed the computing. Well, there were some more realistic views (e.g. rms), but those exceptions were hardly noticeable. We like celebrities and we prefer listening to heroic myths rather than to unpleasant truths about less or more successful attempts to enslave users or to make an artificial monopoly. And the true heroes remain unnoticed. How many of the upstream media have mentioned recent deaths of the highly respectable men, Dennis Ritchie and John McCarthy, who have (really) contributed much to the computing and moved it forward?

We should pray for our enemies but we shouldn't accept their apples. Thanks to visionaries like Richard Stallman or Linus Torvalds we can enjoy software freedom on desktop computers. Not everything is perfect and there are still many white areas but we can use, share and modify a complete operating system including numerous applications on our PCs and we can use computers for real work, education and entertainment without artificial restrictions. We have been fighting for it for many years and we have won the battle. But there are areas where we are in danger to be thrown back to the beginning and becoming relevant only as blunt business units.

Tablet computers and smartphones are very popular nowadays. In theory they are capable of being general purpose personal computing devices but they miss something. I can't call something that can't run my everyday tool, Emacs, nor most of the other applications I use, a personal computing device. It may serve relatively well as a toy or a single purpose platform, but not much more.

What's the problem? Most contemporary tablets are devices of two sorts: Either the popular apparatus on which you can't install without vendor's permission even software you write yourself, or the Google Android devices. I can't take the first category seriously at all (I don't use shareware). And Google Android is a semi to fully proprietary system incompatible with GNU/Linux and X Window System, i.e. excluding most PC applications (unless one is willing to experiment and at best to go through the limitations of chrooted VNC environments). Sure, it's Google's business and they can produce any operating system they like. The strange thing is that hardware vendors prevent us from installing other operating systems on their devices. Either they try to prevent installing them at all or they demonstrate a strange split behavior, e.g. when a certain vendor suggests installing GNU/Linux on their devices with a clear warning that this action will void your warranty. What does the installed software have to do with hardware warranty? Well, at least HTC has promised to officially permit booting other operating systems, we'll see what happens.

Other strange area are e-ink readers. I've been watching them a bit for a few years and I wonder why they remain basically single purpose closed devices. Sure, e-ink displays aren't well suitable for running applications in traditional ways. But what the e-ink devices offer in their "firmware" (an euphemism for a proprietary operating system) is far below my expectations and imagination (and prevents me from buying any of those devices). At best you receive some semi-supported SDK to create your own applications while not being able even to fix what you already receive. I can understand delivering a few pieces of primitive and buggy software is initially simpler and cheaper than cooperating with community of users and third party developers. But it's sad the crowd effect or whatever else discourages everyone from becoming a niche leader by producing a reasonably open device.

There are other categories of devices such as routers, phones, media players, etc. which suffer from the same problem. You can look around and to see how proprietary software extends, regardless of the fact that many of the systems are based on the free Linux kernel. We should do something (more) about it otherwise we return back to where we were some twenty years ago.

Tags: computers, freesoft.
Driver info update
15th November 2011

Updates on my driver info pages:

Tags: computers, hardware, os.
Linux drivers
30th December 2011

I bought a new input device, Wacom Bamboo Pen & Touch tablet. I was careful enough to buy an older model and to check the device is supported on Linux. Based on my previous experiences I also tested the tablet on a Windows computer to be sure it actually works and I can handle it, so that I'm sure contingent faults on Linux are caused solely by the drivers and are not hardware or user defects. Installation of the Windows driver was quick and easy and the device worked well immediately.

Then I tried to get the device running on Linux. I installed a newer 2.6 Linux version, reported to support the device, and the newest released version of X.Org Wacom drivers. I added appropriate sections to my /etc/X11/xorg.conf. So after some hours of googling and updating the system I got an environment which should be ready for testing the tablet.

I restarted the X server and ended up with a frozen black screen, having to use a reset button on my computer. This situation had repeated for several times until I discovered the Wacom driver conflicts in some way with a Wizardpen driver, causing crash of the X server without recovering the keyboard and console. So I commented out the Wizardpen input device in xorg.conf and then could start X without having to reset my computer anymore.

The pen function worked well but the touch function didn't work well and the tablet buttons didn't work at all. I found out that although the given model number of the tablet should be supported in newer 2.6 kernels, there are actually several variants of the model and the newer ones are not supported in those kernels. So I installed the newest version of the tablet kernel drivers for Linux 2.6.

The touch function started to work in a different but still unusable way. After some exploration I found out that while the tablet kernel drivers support several versions of 2.6 kernels, not all fixes are backported to all the supported versions. My Linux was too old so I had two options (not counting giving up on using the touch function): either to backport the changes myself or to upgrade my system to a development version. I decided to upgrade and the touch function finally started to work with a recent 3.1 kernel, after I was forced to abandon my stable OS installation (I couldn't upgrade just the kernel because it was necessary to recompile OpenAFS modules for it, which is possible only with new gcc, which depends on new libc, etc.).

Nevertheless gesture recognition still didn't work as expected. I had to install the latest development version of X.Org Wacom drivers to fix that.

Tablet buttons still didn't work. After some guesswork I could get them working by changing my X.Org configuration, a wrong device was used in the sample configuration copied from wiki. After another round of googling I finished the device installation by tweaking the unsuitable acceleration settings, by adding tablet rotation support to my screen rotation script and by remapping the buttons. After many hours of googling, reading, editing, compiling, reseting and experimenting the tablet still doesn't work as well as on Windows after five minute installation, because of the limited set of supported gestures, but at least it can now do everything my mouse can.

Lessons learned:

In summary, device drivers demonstrate big problems. Hardware vendors are generally uncooperative, there are insufficient resources for reverse engineering and development and documentation of free drivers, software development practices are generally poor. If a device ever becomes reasonably supported, its remaining driver problems are unlikely to get ever fixed once the device vanishes from the market.

I consider device drivers being big blockers of development and adoption of new advanced operating systems. I could tolerate various problems of experimental operating systems, but it's hard to get any serious interest of new users and developers when the hardware doesn't work or suffers from big performance problems.

Is there a solution? I can't see any. Perhaps the only hope may be making coordinated campaigns targeted on hardware vendors and coming of new clever and enthusiastic Linux kernel developers.

Tags: computers, os.

Entries tagged "computers": RSS Feed

Created by Chronicle v4.6