Skip navigation.
KDE Developer's Journals

oever's blog

oever's picture

Re: Strigi Loaded

Sebastian is apologizing to me for writing code. This is a bit strange and I need to reply to his post. The discussion below is really more suited for a mailing list, but since I did not start it I have no choice in the matter.

First of all, why do you apologize for writing code? That is no reason for apology.
What you could apologize for is not what you present, but how you present it.
You have written some code and talk about it like it is the solution for a big problem. You fail, however, to clearly analyze these problems. The title of the blog is "Strigi Reloaded - The Answer to all our Problems?". This is a title which is worthy of the Bild newspaper. Any title with a question mark behind a sentence which is not a question is a sign that the title is meaningless agitation. It is a method to gather support of fanboys in the absense of real arguments and to sow confusion. I'm not saying that this was your intent, but I am saying that using question marks in titles is a sign of bad writing.

But let's talk content and not form. What are these Problems that deserve a capital P? The first two problems you observe are untrue. You say that strigidaemon has no method to suspend and resume indexing. However, it does. The DBus API of strigidaemon allows you to start and stop indexing. Second, you say that strigidaemon does not report what it is doing. This is also not true; it does report this. In fact, this is even part of the Xesam interface. The reporting is not very elaborate. It says 'Idle' or 'Indexing', but this can be extended.

Not such a good start for a blog in which you are announcing a fork of a desktop search daemon. The list continues with things you have done to integrate indexing more tightly with the desktop. This is a good and noble cause. But the way you approach it is wrong. You mention that you use KDirWatch, Solid, KFreeDiskSpace, KPassivePopup to blend into the KDE user experience. That's very nice but no reason to fork a perfectly fine program. There is an elegant solution which I mention below.

The most serious problem you observe is watching files for changes. This is a major problem for all desktop search programs, but KDirWatch is not the solution.

KDirWatch is not suited for watching large amounts of files. It is a wrapper around inotify (default), FAM and QFileSystemWatcher (used on Windows. QFileSystemWatches is a small version of KDirWatch written by Trolltech. It only emits two signals: directoryChanged(const QString& path) and fileChanged(const QString& path ).) To use this wrapper class you must link libkio which depends on libQtSvg and libQtGui (and all of X).

What we need is a small crossplatform library for monitoring files. A dedicated library that wraps the native implementations for each of these functions in a clean API. A library that would work on any operating system and that would not link to anything that is not strictly necessary. A library that falls back cleanly to configurable polling when the native implementations are not suitable and that is modest in its use of memory and CPU.

It is unfortunate that you use classes that are part of the desktop environment for such low level functionality. This functionality should be in POSIX. Since it is not, it should be in a small helper library.

In conclusion, I like that you are putting effort in improving the desktop search experience. You're beying paid for it after all. But forking a perfectly fine daemon because you want some improvements is not the way to go. I am happy that you managed to build something so quickly: it proves that libstreamanalyzer is awesome.

Now this is the right solution: write a KDE service that uses Solid, KFreeDiskSpace and KPassivePopup to control strigidaemon over DBus. In that way, you do not need to fork it. I am happy to add the required DBus calls to strigidaemon. In this way we can keep strigidaemon desktop independent, small and fast and we avoid a fork and months of flames. And as an added bonus, you should end up with a nice API for Xesam.

oever's picture

Strange UDF DVD

My sister-in-law got married and the wedding photographer made a DVD with 412 pictures. Unfortunately, my parents-in-law could not read the DVD, either with Linux (which is their main OS) nor with Windows XP. So they gave the DVD to me and I had a look.

The DVD is a DVD-R and my Linux version (Hardy Heron) tried to open it: it showed the dialog asking if it should mount the DVD. A failure message opened asking me to have a look at dmesg. Hmm.

So I did and it said:

[ 2981.006899] UDF-fs: No partition found (1)
[ 2981.125072] ISOFS: Unable to identify CD-ROM format.

So I tried to install some kernel patches for udf.ko, but this did not help. The disc was still not recognized. In the end I decided to call upon the trusted program hexdump. Hexdump should be compulsory at kindergarten!

Browsing through the data with hexdump, I quickly recognized JPEG headers, so I wrote a small program (70 lines) to extract all JPEGs from a binary blob. You can download it.

The first megabyte of the DVD is here.

00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00008000 00 42 45 41 30 31 01 00 00 00 00 00 00 00 00 00 |.BEA01..........|
00008010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00008800 00 4e 53 52 30 33 01 00 00 00 00 00 00 00 00 00 |.NSR03..........|
00008810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00009000 00 54 45 41 30 31 01 00 00 00 00 00 00 00 00 00 |.TEA01..........|
00009010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
0000a000 01 00 03 00 48 00 00 97 21 87 f0 01 14 00 00 00 |....H...!.......|
0000a010 01 00 00 00 00 00 00 00 08 55 44 46 20 56 6f 6c |.........UDF Vol|
0000a020 75 6d 65 00 00 00 00 00 00 00 00 00 00 00 00 00 |ume.............|
0000a030 00 00 00 00 00 00 00 0b 01 00 01 00 02 00 02 00 |................|
0000a040 01 00 00 00 01 00 00 00 08 31 33 33 41 33 31 32 |.........133A312|
0000a050 43 20 55 44 46 20 56 6f 6c 75 6d 65 20 53 65 74 |C UDF Volume Set|
0000a060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|

oever's picture

Strigi 0.5.11

A new version of Strigi, the desktop search, is available.
This is a bugfix release. It fixes some annoying issues seen in KDE 4.1. Check out the ChangeLog for the details.

Strigi has currently good basid Xesam support, but no good dedicated search interface for KDE 4.1 yet. This is ongoing work.

If you are interested in helping out with Strigi, just drop by on #strigi. We are currently focussing on bug fixes, Xesam support and KDE integration.

oever's picture

W3C: Standardizing the widget landscape

The World Wide Web Consortium is looking into the feasibility of standardizing desktop widgets. They have done a survey on the widget frameworks available in the market. The frameworks they have surveyed are Konfabulator, Windows Sidebar, Google Desktop Gadgets, Opera Widgets, Mac OSX Dashboard, Web-Runtime by Nokia, and Joost Widgets.

The survey was performed in the first quarter of 2008 and frameworks were chosen because of their perceived prevalence in the market place. Since KDE 4 was only just released and not available as a stable option for any distribution, W3C cannot be blamed for leaving out Plasma.

"The purpose of this document is to provide a holistic overview of the widget space" is what the survey says. It compares the different offerings and tries to unify the nomenclature for the different gadgets/widgets/plasmoids.

In addition to this document, W3C has published a document that "lists the design goals and requirements that a specification would need to address in order to standardize various aspects of widgets." So W3C is trying to see if they can pen down a standard that captures the features of the current products. If they can achieve this goal, it will be easier for developers to write widgets.

This document is a nice documentation and comparison of the frameworks that are out there now. There is a table that lists the media capabilities of the different frameworks. It would be interesting to see how Plasma stacks up.

The W3C might consider including Plasma properties in their documentation if the Plasma developers contacted them. Even without adding Plasma explicitly, such an emerging standard would help Plasma developers in supporting all the different widget formats out there.

The document also describes the differences from Java Applets. The authors claim that programming in Java is daunting and that using HTML, CSS and JavaScript is much easier. That is a controversial statement considering that all programs implement HTML, CSS and JavaScript differently whilst all Java implementations (with the same version number) are the same.

oever's picture

UEFA is being cheated by NOS

The Dutch like it cheap. We do not like rules. That's just the way we are. The people at NOS are no different. They have a contract with UEFA (or so they say) which requires them to broadcast the games of the European Championship only in DRM format.
NOS is using this as an excuse to pendel Microsoft malware.

Well, guess what? They also broadcast it without DRM. The stream is a proprietary protocol, but it is not encrypted. You can even play it under Linux.
We call this 'van twee walletjes eten' (eating from two dykes) or 'pappen en nathouden'.

Finding this out is not easy. You have to look in the code of the broadcasting webpage. But it's possible. UEFA, you have been cheated. Red card for the Dutch, I guess.

For everybody else: happy viewing!

Some of these streams work from Dutch soil when games are being broadcast:
Stream 1
Stream 2
Stream 3

I wonder if Plasterk knows he has been propagating the lies of NOS to the Dutch parliament.

You can congratulate the NOS here.
Or tell the minister here.

oever's picture

Oranje scores for Microsoft, Dutch goverment says: 'Use Silverlight'

Today, the Dutch minister for Education and Culture, Plasterk, has defended the Dutch broadcaster NOS. NOS is broadcasting the games of the European Championship football using Microsoft malware Silverlight. This means that in order to view this broadcast you need to install this software on your computer. You can only install the software on computers with Microsoft Windows or on Apple computers.

Another goal for Bill.

This practice is in disagreement with the plan Nederland Open in Verbinding for Free Software in the dutch government. 'Nederland Open in Verbinding' means 'The Netherlands Openly Connected'.This plan was accepted unanimously in parliament. It says that any new to be developed software in the Netherlands must be produced under an open source license and must use open standards. Now Plasterk says we should be connected via encrypted proprietary data streams.

Arda Gerkens has asked Plasterk why he is letting NOS disregard open standards.
He has answered that NOS needs DRM. DRM stands for 'Digital Rights Managements' and is a way of controlling you. It is designed to make sure you do cannot do everything that you like with certain data. DRM requires that there is a small policeman in every computer. If there is no policemen there, then you cannot access the data.

This is fine with Microsoft. They love to be the policeman (just like the government). They love to tell you what is allowed and what is not allowed on your computer (just like the government). For example, it is fine for you to use Microsoft software. It is not ok for you to use other software. That is why they make it difficult to use other software. The dutch government is helping them. Making Silverlight available via a website of the Dutch government is a big blow to any good intentions they have made.

Plasterk says that 99% of computers are already capable of using Silverlight. They should download it a fast as possible. Who cares about open standards and interoperability? Let's give Microsoft a large installed base for their Flash competitor so they can own the internet. Way to go, Plasterk!

oever's picture

Using the European championship to spread malware

Microsoft is pushing their evil SilverLight platform very hard. They want to make sure that providers of cross-platform software for delivering rich applications via the web browser are thwarted. This is normal behavior for a monopolistic company and certainly for Microsoft. To accomplish this goal they are throwing around bucketloads of money and FUD to get content providers to use the Microsoft malware Silverlight exclusively.

Their latest feat is the way they exploit the European soccer championship 2008. They have made a deal with a government funded Dutch broadcaster to deliver a live stream of all soccer games. The snag is: all visitors to the broadcast website must download and install the Microsoft malware called SilverLight.

malware for your computer

Most of the internet using Adobe Flash to serve up movies. This is evil too, but at least it is cross-platform evil.

Actually, you do not really need to use Silverlight. There is an alternative. You can use a Microsoft mediastream. This stream has been DRM-ed. This means it can only be played on Windows and you cannot play it more then once unless Microsoft allows you to.

So this is the choice Microsoft is offering: lock-down A or lock-down B. And the Dutch broadcaster NOS is helping them control you.

If, like me, you do not like this, please mail NOS.

oever's picture

Spot the heron

Please mail me if you see him.

Video by motion on a Logitech Sphere.

oever's picture

Chilling in Prague

Today is day one of FOSSCamp. FOSSCamp is an unconference, which means there is no set program. The program consists of writing entries into the empty program grid. This is refreshing approach which seems to work rather well for one particular use case: recognizing and fixing problems.

I've attended two particularly useful sessions. The first was about Xesam and the second was about KDE/GNOME interaction. Now these sessions mainly consist of sitting around a table talking about a particular subject. Since there are many knowledgeable people around, you hear many interesting facts and suggestions. Here are a few that are relevant to Strigi in an unordered list.

    common index file format
    Distributions want to install preindexed files such as documentation. All programs that implement Xesam would ideally implement support for one common format. Such a format may be heavily optimized for reading only and there should be a mechanism to tell the indexer about the presence of the index.
    standardizing uris
    Xesam specifies that hits are identified by their uri. This allows flexibility. It allows an indexer to have many different types of information. It can have mails behind imap:// or files on another computer with fish://. These custom uris are, however, not standardized at all and it is unclear how a Xesam client should deal with a hit containing such a file.
    ultra lightweight
    Gustavo Babieri wrote a lightweight indexer for indexing music files on the Nokia Internet Tablet. I should have a look at that code. He claims we need a c interface to Xesam to remove DBus overhead on embedded systems.
    management interface
    To make Xesam attractive for program authors, we need an API that the allows applications to ensure that particular files are indexed.

    The simple Xesam API held up well under discussion which is a good sign.

By the way, my current employer, PANalytical, allows me to book one day of FOSSCamp as work even though I'm here for personal interest in Free Software.

oever's picture

Hardy Heron Alert!

So long and thanks for all the fish

Near where I live there's a pond. Actually it is right outside of my living room. In this pond there used to be many a goldfish. Until this week.

Last Monday a sneaky thief landed in the middle of our lawn and proceeded to carefully tiptoe in the direction of the pond. This thief was a great blue heron. It took about six steps before it noticed that there were two people with big astonished eyes sitting in the house. With every step in our direction, the long black feathers on the back of its head flayed to and fro. But once it had seen us, the heron decided we might interfere with his fishing trip and flew away.

Yesterday, a big white circle of heron excrement showed us that he had been back during the day to metabolize some goldfish. Also, we saw him flying low over our house at about seven in the evening.

And today, the day where many a geek was sitting behind his computer screen in anticipation of a hardy heron, we were again surprised at breakfast by a sneaky heron (hardy is hardly the right word). This time he landed, looked around for five seconds, spotted us and flew off again.

We put a net over our pond, but I think we're out of fish already.

Syndicate content