Fri, 20 Nov 2009
Fedora 12
I have been using Fedora 12 on my laptop for a week now, and on my primary workstation for three days. So far I have walked through Bugzilla and checked that most of my bugs are still present in F12. But apart from that, there has not been any unpleasant surprise so far. The new KMS code and X server for Radeon cards work as expected, so I am looking forward to install F12 also to my dual-seat workstation at home. So far it is OK. Well, except ...
... except this
bug (covered also in
fedora-devel
and also at Slashdot).
I wonder who could seriously have thought this feature would be an improvement?
Probably if the Anaconda can ask whether this is a single-user workstation,
and only then enable it, it would be bearable. But having it on by
default is simply insane. The fact that to disable it, the 6+ lines file
in an undocumented format in four-levels deep directory under
/var/lib should be created, just underlines the gross insanity
of the whole thing.
I have been a long-term supporter of using Fedora also for other purposes than a single-user workstation, but apparently it seems that some Fedora maintainers either do not care (see my post about GDM), or - what is worse - some are actively trying to undermine the other usages of Fedora.
We have been considering returning Fedora to some of our computer labs (to solve some problems with that African-Debian distro), but with this problem I am not sure whether this is a good thing to do anymore.
Update - Fri, 20 Nov 2009: Resolved after all
From fedora-devel:
[...] Executive summary
We'll make an update to the F12 PackageKit, so that the root password is required to install packages.
Glad to see this being resolved relatively fast. This was the most voted-for bug in the Fedora bugzilla (by a factor of almost 10).
Thu, 19 Nov 2009
Database Woes
Using the SQL database for keeping one's data gives an excellent environment, maintaining the data integrity, providing the transactional behaviour, providing the remote access to the data, and so on. Even the locking properties can be something which one can get used to. That is, in the ideal world.
However, our world is not ideal. The huge problem of SQL databases is their implementation. For example, after rewriting the IS MU mailserver back-end to do a parallel delivery, it started to generate big load spikes on the Oracle DB server. The problem turned out to be the cache of SQL queries: when several processes tried to do exactly the same query in parallel, the DB server locked up on the access to the SQL cache, and a simple "select row by its primary key" query took as long as three minutes to handle.
Another example is the Oracle problem with foreign key locking which I have
recently ran into: I have a long transactions running in parallel,
modifying various rows of a single table (but each session touches
a different set of rows, so the access should be deadlock-free).
After creating another table with foreign key to the original one,
I started to get "deadlock detected" errors in DELETE commands.
Apparently Oracle locks not only the appropriate
row in the foreign-key table, but the whole block in this table.
So I have been getting the deadlocks when trying to delete the row
with primary key N, where another session added a row to the table
with foreign key referencing the primary key N+1 or N-1.
Replacing DELETE with UPDATE ... SET status='deleted'
and deleting afterwards from the single session fixed the problem for me.
The SQL databases are pile of rubbish, which can always surprise you not only with their by-definition properties, but often also with their implementation-dependent behaviour. Oracle is an excellent example of this.
Wed, 18 Nov 2009
The GDM Fiasco
A short trip to the history: for GNOME 2.22 (two years ago, in the Fedora 9 timeframe) someone decided that it would be nice to completely rewrite the GNOME display manager. So far so good, but they have decided to include this partially rewritten piece of crap without many important features (a display manager without XDMCP, WTF?) to the official GNOME and thus Fedora releases.
Fast forward to the present time: basically, for two years, GDM has not been usable for anything beyond a single-user desktop (I use xdm on my home dual-seat desktop, and we have replaced Fedora altogether in some of our computer labs partly because of GDM).
- It did not handle XDMCP (at least this one got fixed).
- There is still no way of setting the X server command line, making GDM unusable in multiseat configurations.
- It cannot be configured as XDMCP-only daemon without starting the local X server.
- The login window cannot be configured, and the way it works it is usable on a personal desktop, but definitely not in a computer lab with ~2200 accounts and users logging in on random hosts.
Apparently, somebody has started to work on solving at least some of the problems after all. But guess what? Instead of backing off quickly (say, before the Fedora 10 has been released), Fedora maintainers has ignored the problem despite many polite and even some profane requests to provide an upgrade to the latest working version (i.e. the Fedora 8 one). And now the answer is "wait for Fedora 13 (another half a year), we are probably going to fix it there". Without any hint of being sorry for forcing an utterly broken package to the users for two years and counting.
Tue, 17 Nov 2009
Footwear Waterproofing
This year's Tmou with its almost start-to-finish rain has made me to think again about my approach to waterproofing my boots. I have about eight years old Hanwag Alaska Nubuk leather boots with Gore-Tex membrane (which is definitely not functional anymore after these years). So the leather is now the only barrier between the outer wet conditions and the inside of the boot.
In the last few years, I have used wax-based water proofing (e.g. Granger's G-WAX). It worked, and the boots remained water resistant for several times of usage. However, I often had my feet wet from the inside, as I tend to sweat a lot.
Recently I have bought Granger's G-MAX Leather conditioner, which is not as "thick" as a wax, but apparently the boot is still water-resistant. I have however had no chance to test it in rainy weather until this year's Tmou. Expecting heavy rain during the competition, I have applied several layers of the leather conditioner on my Alaskas.
I was rather surprised that this time not only the boots remained water resistant, but I also had not my feet wet from the inside. Probably the wax, unlike the leather conditioner, keeps the boot air-tight, causing the feet getting wet because of sweating. So far so good, but there was another rather unpleasant surprise after Tmou: when my boots dried, the most exposed parts of the leather (namely foreparts) were completely dry as if it were just to crack.
Is it expected? Do I need to waterproof my boots again only after a day in a rainy weather? How do you waterproof your outdoor boots, my dear lazyweb?
Tue, 20 Oct 2009
Framework?
When teaching, the questions from the audience provide an important feedback to me - a notion of whether I was successful in passing the information to the audience, and what to improve or explain in a different way. There are, however, rare occasions when the question just makes me think "WTF?".
Yesterday I tried to explain the
setjmp(3)/longjmp(3)
semantics. These two functions are not straightforward, and it probably
takes a while to wrap one's mind around them.
But after that, the usage is quite simple:
the target of the non-local jump is firstly initialized using
setjmp(3), and later the jump itself can be made using
longjmp(3). I have written the following code snipplet
to demonstrate it:
During the lecture when I asked whether there were any questions, the question
was: "But is there any framework for those functions?".
I was totally puzzled:
I probably don't know all the meanings of the English word "framework",
but I think it means something like a higher-level abstraction or environment
to wrap the lower-level things in order to make them simpler to use (often at
a cost of freedom of how to do things). But can this fancy goto
be made even simpler than it is? It would still be necessary to declare
the label somehow (setjmp(3)) and then jump to it
(longjmp(3)).
WTF? What framework?
Fri, 16 Oct 2009
Terminal Font
Today I have read an announcement of the Anonymous Pro font, which should be optimized for text terminals and for the programming environment. As this clearly matches my use case, I have decided to try it.
I was soooo disappointed. I may be too used to the font I use (Lucida Typewriter, the upper part of the image), but I think Anonymous Pro is clearly worse.
Which terminal font do you use? And how does it compare to Anonymous Pro or some other fonts?
Mon, 14 Sep 2009
Svíčky 2009
As in previous years, also this year I took part in an outdoor puzzle solving competition - Svíčky. This year the weather was better than the last year.
You can read the description of problems, their solutions, and other detailed data at the competition pages, and you can read the report from our team in Honza's blog.
At last, we have won the game, even with a time-machine-like step caused by a misplacement of the papers with the last problem. It is nice to be a winner after so many years :-)
Fri, 26 Jun 2009
XXXIV EurOpen.CZ
A month ago (wow, I am really slow to update this blog ...) I went to the 34th EurOpen.CZ conference. I did a presentation about Git (paper, slides).
The first day the weather was pretty good and we even went to Praděd summit to take a few snapshots of the setting sun. The next day was rainy so I set up my dance pads and we had a lot of fun playing DDR in the evening. One of the most interesting things there was Microsoft Surface, which is in fact an overweight PDA (weighs about 90 kg). It is pretty addictive, especially for children. Microsoft can really make a pretty cool hardware. However, it is in some way a bit, well, Microsoftish :-). For example, they apparently invented their own 2D barcodes, ignoring well established standards like QR code or Semacode. Also, apparently the external keyboard and mouse is required to boot the Surface.
There were many interesting presentations: Tomáš Košnar talked about logging the network traffic, Ondřej Surý had a brief intro to DNSSEC, Václav Pergl from Kerio Technologies talked about agile development, etc. Anyway, AbcLinuxu.cz did a report from the conference, and also (oh, horror!) an interview with me, mostly focused on Git.
Wed, 17 Jun 2009
How Do I Install ... ?
The funniest page of the day is the page with installation instructions for OpenAIS. But seriously, do you have experience with those clustering suites?
My task is pretty simple: use a clustered LVM from two hosts. I have been using Heartbeat for my HA clusters (and IPVS for load balancing) for ages, but apparently Heartbeat-based cluster cannot be easily used for CLVM.
Wed, 10 Jun 2009
Fedora 11
OK, after another half a year we now have a new Fedora. I have installed it on my laptop, and found no obvious bugs. It "just works". I haven't got time to read the Release Notes yet, but so far F11 looks good. The minor issues are:
gnome-terminalnow wants to confirm the window closing when something other than the original shell is running inside it. WTF? I guess users are getting more and more stupid and have to be protected from their own stupidity (or maybe Fedora/GNOME is becoming more and more widespread). The only usability problem with this "enhancement" is that it cannot be disabled from the Preferences menu - one has to resort to usinggconf-editor, which is not even installed by default.- Cpufreq on ASUS F3E still does not work (but then, I use my own kernel on F3E and in vanilla it works).
- A nice surprise is that with F11 and its new X.org + WINE, the "In the Groove" game finally renders correctly (in the previous version all the arrows were rendered orange, which made the gameplay more confusing).
- The new boot splash screen is not so minimalistic than the one from F10 (which I consider to be the best boot splash screen ever; its neat visual trick with colors in the progress bar made the boot process feel faster).
- GRUB still
does not support ext4, which means that even those who want a full ext4-based
system need to have a small ext3 partition for
/boot.
Of course, I now have tens of mails from the bugzilla bot forewarning about
closing bugs filled against F9, which I need to test on F11. I guess
many of the gdm >2.20 regressions are still not fixed,
and returning 2.20 to the Fedora (at least as an optional package)
is long overdue.
Thu, 21 May 2009
Weird Hardware
Probably the most weird piece of hardware I have seen in a while is this. I should probably get one in order to do a maintainance of my COSA Linux driver on a real hardware.
Tue, 21 Apr 2009
Statistics Problem
Is there any statistician reading this blog? Can you recommend any statistics community (web forum, mailing list, anything) where I can ask questions about one problem I am currently trying to solve? For those with login to IS MU, the description will for some time be also in the discussion forum of Faculty of Science. The problem is this:
I have a random variable with probability of exp(-a*t) for some constant a and the time t (think radioactive decay, but the real problem is something different). The problem is to calculate the constant a from the observed data.
The measurements I have are in the form of a set of pairs (ti, + or -), with the following meaning: At time 0, take a brand new "i-th atom", verify that it is not decayed, wait for the time ti, and look at it again. If the atom has not decayed yet, add a (ti, +) pair to the set of measurements. Otherwise, add (ti, -). Continue with the next new atom an the next time ti+1.
Note however, that the times t_i are given to me from the outside, I cannot choose them, and they do not have any particular distribution (e.g. being equally distributed between time of zero and some large number). Also, the number of measurements is quite small (several hundreds at most).
You can download a Perl script for generating the test data, the test data (100 rows), and the large test data (10,000 rows) generated by this script. Can you somehow compute which constants a have been used when generating these sets of data? If so, how could it be done? And how can I estimate how accurately the exp(-a*t) curve fits the real data?
Pragocentrism
I live in a country with population of about 10 milion, with the capital Prague with about 1 milion inhabitants. Today's rant will be about narrow-minded journalists living and working in Prague.
I frequently ran into a blatant cases of pragocentrism. For example in almost every traffic news in a country-wide and state-funded radio station Radiožurnál they use formulations like this: "there is an accident in the Brno motorway in a direction to Brno". WTF? Which of the three motorways heading to Brno do they mean? The D1 from Ostrava? The D2 from Bratislava? No, of course they report from the perspective of people living in Prague, so naturally with "the Brno motorway" they mean "the motorway from Prague to Brno".
Another one was a few days ago, also on Radiožurnál. They were doing an interview with a candidate for the minister of the interior (who currently works as the head of the anti-monopoly office, the institution located in a barren countryside far away from Prague, namely in Brno :-). The first question was "Have you already get used to living in Brno instead of Prague?". Mr. Pecina replied something like: "I don't understand the question - I am from Frýdek-Místek, I have been living there for almost all of my life, except only one short stay in Prague.". The journalist had naturally expected that every important person must have been from Prague. That said, the journalist was really stupid anyway and she manifested it several other times during that interview.
Another case of Pragocentrism is more general. In the main news of the Czech TV (also state-funded), they often report about Prague-local things (such as some affairs of mayor of some part of Prague or even of a mayor of Prague, building some tunnel or some stadium in Prague) during the main part of the news, even though they have a separate part "news from the regions". Also when doing a coverage of a country-wide event such as elections, they report about the situation in Prague, and then they say something like "and now we will look into the regions". WTF? Prague is not a region? Why should the Prague-local news be forced to us by state-funded media as something important?
I know I probably sound like some women-rights or some minority-rights activist with a well-developed inferiority complex, but hey, about 90 % of citizens of this country do not live in Prague! Journalists, keep that in mind, please. My dear lazyweb, is a ${your capital}-centrism also present in your country? Is there even a Brnocentrism from people living in Brno towards people living near Brno?
Fri, 03 Apr 2009
HTML <button> Tag
So I wanted to upgrade the form we use in IS MU in many places for selecting a printer, splitting the "print" and "download PDF" functionality to separate buttons. The problem is how to make it as backward-compatible as possible.
I basically wanted to have two buttons with the same name="..."
attribute, and distinguish between them by their value="..."
attribute. I have came across the cool new (for me anyway :-) HTML tag
<button>, which does exactly what I want. I am able
to use my own machine-readable value="...", and put the
button label (localized) inside the <button>...</button>.
Except that it does
not work in MSIE. That parody of a browser does not send back the
value="..." attribute contents, but rather inner text
of the <button> tag for all buttons in the
form, not just for the actually clicked one. Stupid MSIE, die already.
Tue, 31 Mar 2009
Is Ekiga Doomed?
I am more-or-less happy user of ekiga. However, with the latest GNOME release (or two), I am not sure about its future. The new GNOME contains a new instant messaging and voice-over-IP application, Empathy.
I have not tested Empathy yet, but the list of supported protocols look impressive. I wonder how complete this support is, however (like GPG in Jabber/XMPP, SIP call redirection, SIP from behind of NAT using STUN or proxy, etc). I am trying hard not to be a skeptic, but maybe ekiga will join the following list of doomed applications:
- GDM 2.1x
- The rewrite of GDM in Fedora 8 (not sure about version numbers now) took away most of the options (such as the X server command line, automatic login for single-user systems, XDMCP(!)), most of the features are not restored even now, year and half later.
- Sawmill/Sawfish
- It has been deprecated in favor of Metacity, which still cannot do such a simple thing like sending a window to the different workspace using
Ctrl+Alt+Rightand return back by releasing bothAltandRight, and pressing theLeftkey while still holding theCtrlkey. Metacity still requires theCtrlkey to be released first. - Galeon
- Has been deprecated in favor of Epiphany, which still plays catch up
with Galeon feature set (even with its
epiphany-extensionspackage, and despite of the fact the development of Galeon has been dormant for several years now).
I could probably name several other projects. May be this is a trend in GNOME: replace the existing full-featured apps with half-retarded new ones, just because you do not agree with architectural decisions of previous developers, or because (in the GDM case) you need one more feature (fast user switching) which is hard to do in the present code base. And then promise to implement all other features users are used to, and fail to fulfill the promise in several years. In the meantime, get your code merged to the GNOME code base, kicking the previous full-featured application out of it, making the life of its developers harder, and thus cause the development of it to slowly die off.

