Older blog entries for boto (starting at number 20)

Google is Smart

This surprised me:

'mandrake' highlighted when searching for 'mandriva' on Google search

How Google knows that “mandriva” was formerly called “mandrake”, to be smart enough to highlight “mandrake” on the results as if I had also searched for “mandrake”?

I don’t think they have added this to a “synonyms table” manually. I believe this was somehow detected automatically. My question is: how the Google software could have detected this automatically?

Syndicated 2007-02-01 15:05:23 from Eduardo Habkost / diary

Internet Censorship caused by a judge that doesn’t know how to write

The conclusion of the Internet censorship story is that the judge that ordered the blocking of YouTube cancelled the order. In the document that cancels the previous blocking (in portuguese), he alleges that he never asked the complete blocking of the YouTube site, but only the videos showing Daniela Cicarelli. But this is not what was written on the order he sent to ISPs (in portuguese). The order doesn’t mention any specific video, and asks explicitly that ISPs implement filters to block packets from reaching the YouTube servers, or block packets coming from YouTube servers.

So, now we can say that this country is in another list: the list of countries where judges don’t know how to write.

Syndicated 2007-01-09 16:44:12 from Eduardo Habkost / diary

Brazilian ISP block on YouTube is really due to a court decision

According to brazilian media, the brazilian ISP Brasil Telecom officially confirmed that YouTube IP addresses are blocked on its backbone due to a court decision.

On my last post I’ve said that I was just waiting to see the explanation for the block, from Brasil Telecom. Now we can confirm that it is not just a screw up on their part, as commented on Boing Boing.

So we can confirm it: Brazil is now in the list of countries where the State uses mechanisms for Internet Censorship.

Fortunately, I haven’t seen any report of other ISPs implementing the same block, yet. So I see two possible ways this story will continue:

  • Other ISPs don’t implement the block. Brasil Telecom will not like to have the competitive disadvantage of not providing access to a popular site while other ISPs still provide it. Brasil Telecom, users, and other ISPs fight against the court sentence. We win.
  • Other ISPs implement a similar block. We become China. Censorship wins. We lose.

To be continued…

Syndicated 2007-01-08 19:22:06 from Eduardo Habkost / diary

Brazil experimenting Internet censorship mechanisms

Brazil is making some experiments that may show the viability of implement Internet censorship mechanisms country-wide. As already noticed by others, YouTube was ordered to shut down by a brazilian judge, some days ago.

It is asked on the linked post: “I’m not sure what the Brazilian court intends to do to enforce this ruling, since YouTube (and its parent company, Google) are based in the US. Will they take steps to try and block access within Brazil?”. The answer seems to be: yes.

There are reports (some info in portuguese) that at least a major ISP in brazil is blocking access to YouTube. As a reader comments on the post, “it is still possible that this is just some sort of screw up on their part” (I hope so). Or, as a a user report says, it may be just that the ISP is “taking advantage of the hype on the case of the model having sex fun on the beach to lower their backbone utilization by blocking one of the main bandwidth-consumer sites.”. I am curious to know how this story will end.

I really hope this will demonstrate that this kind of Internet censorship in Brazil isn’t viable. But unfortunately this shows that the Brazilian Kleptocratic State has some disposition to become China, and that in our country a celebrity’s public image is more important than people’s freedom and ability to easily communicate (not that the court decision really help to change her public image).

By the way, the video that originated all of this is available on Google Video. Don’t expect to see interesting scenes on it.

Syndicated 2007-01-07 10:57:43 from Eduardo Habkost / diary

Playing with HDA Intel codecs

When debugging a problem with the snd-hda-intel module on a machine that has an unsupported codec model, I’ve spent some time studying the Intel HDA specification, and noticed that we can get very interesting information from the hardware. You can do many interesting things even if the driver never saw an specific model of the audio codec, because the HDA architecture allows you to ask lots of information and control many aspects of the codecs.

I’ve written small script that generate a graphviz graph from the information on /proc/asound/card*/codec#*. I’ve generated the graph for a bunch of different machines that have HDA Intel. They are interesting to see if you want to know what the hardware you have can do, and to find out the correct NID and commands supposed to be used by the alsa drivers. Here they are:

A Realtek ALC660 on an Asus W5F notebook

A Realtek ALC861 codec, found somewhere on the web

A SigmaTel STAC9200 on a Dell Latitude 120L notebook

A Realtek ALC880 on a LG LW20 Express notebook

A SigmaTel STAC9200 on a Dell Latitude D-something notebook

A Realtek ALC86x on a HP DX2200 machine

The script is on a GIT repository. You can clone it with:
git clone http://git.raisama.net/hda-tools.git.

What I would really like to see in the end is the ability to change the way the nodes are associated to alsa streams and mixers from user-space. Then this could be configurable using a GUI where the user would change the input connection settings and associate nodes with mixers and streams, while seeing the graph. Then instead of waiting somebody to change the Alsa driver to do what you want regarding the mixer and streams, you could simply change the codec settings on a GUI and everybody would be happy. :)

Syndicated 2006-11-28 17:47:44 from Eduardo Habkost / diary

Summer of Code Summary

Almost two weeks ago was the deadline for the projects of the Summer of Code program, but I haven’t wrote a single line on this blog about this. It is time to give a summary of what was done, and what may be done in the future.

My project for Summer of Code 2006 was KDEPIM Google Calendar synchronization using OpenSync. The scope of the project included both writing a Google Calendar plugin for OpenSync and improving the OpenSync and KDE integration.

Work Done

The work accomplished during the program includes:

  • OpenSync ipc-branch merge to trunk. The ipc-branch work was needed to allow the kdepim plugin for OpenSync work while inside a KDE application (such as Kitchensync).
  • OpenSync ipc-branch fixes and improvements (before and after the ipc-branch merge to trunk).
  • General bug report handling and bug fixing on OpenSync.
  • Kitchensync testing with the kdepim plugin.
  • Google Calendar plugin for OpenSync. The plugin allows synchronization of calendar data with other OpenSync plugins.
  • A single bugfix commit to KDE 3.5, due to a bug in the kabc locking code
  • Help on packaging of OpenSync and its plugins on the OpenSUSE Build Service (thanks to Daniel Gollub, Christopher Stender and Matthias Jahn, who were working on this, also).
OpenSync 0.19

OpenSync 0.19 is planned to be released soon, including the ipc-branch code.

The Future

There is much that can be done regarding OpenSync and KDE integration, yet. Things worth mentioning:

  • Some plugins need additional code to work with ipc-branch code. Some plugins that use their own data formats need serialization and deserialization functions to be implemented. This is needed because the data need to be sent between the plugin processes and the sync engine process.
  • Recurrence support in the Google Calendar plugin. Translation of recurrence rules from the Google Calendar XML data to the OpenSync internal format (and to vCalendar) isn’t implemented yet.
  • Support for more fields from Google Calendar entries.
  • Kontact integration. Support for running Kitchensync inside Kontact is not supported yet.
  • Demonstration of Kitchensync and Google Calendar plugin. I need to write a text with some screenshots of Kitchensync and using the Google Calendar plugin. :)
The Code

Below are the pointers to the code written during the program, for the final evaluation for the Summer of Code program.


Many thanks to:

  • Kátia, my wife, for her patience while I was working in the project
  • Google, for running the Summer of Code program
  • Chris DiBona and Leslie Hawthorn, from Google
  • Cornelius Schumacher, Tobias Koenig, my mentors during the program, from the KDE project
  • Armin Bauer, for bringing OpenSync to life
  • Daniel Gollub, Christopher Stender and Matthias Jahn, for their work on OpenSync
  • Many others that aren’t mentioned here, but contributed to this. The contributors to OpenSync and KDE projects

Syndicated 2006-09-03 02:56:39 from Eduardo Habkost / diary

Running debootstrap in a non-Debian distro

Last week I wanted to install Debian on a chroot on my machine. Maybe there is an easier way to do this, but I will document what I did, just in case someone wants to do something similar.

Debootstrap is the recommended tool to install another system, as long as you have a Debian system available. I don’t have a Debian system available right now. However I’ve noticed that the debootstrap package has only a few dependencies. So I will try to extract the package manually and run debootstrap on my Mandriva Cooker system.

I’ve download the deboostrap package and extracted it using ‘ar’:

$ ls
$ mkdir debootstrap
$ cd debootstrap
$ ar x ../debootstrap_0.2.45-0.2_i386.deb
$ ls
control.tar.gz  data.tar.gz  debian-binary

I’ve extracted the data contents from the package:

$ tar -zxvf data.tar.gz

First try to run the binary:

$ ./usr/sbin/debootstrap
./usr/sbin/debootstrap: line 15: /usr/lib/debootstrap/functions: No such file or directory

Oops, it needs to be installed on /.

I don’t want the files to be lost inside the filesystem, so I just added a symlink to the files I’ve extracted:

$ sudo ln -s /home/ehabkost/system/soft/justdownloaded/debootstrap/usr/lib/debootstrap /usr/lib/debootstrap

Let’s test again:

$ ./usr/sbin/debootstrap
I: usage: [OPTION]...  [ [
Great! :D Now, let’s run it:
$ ./usr/sbin/debootstrap sarge /tmp/sarge

And it worked. :)

Quick and simple.

Syndicated 2006-06-06 05:46:24 from Eduardo Habkost / diary


My application for Google Summer of Code — “KDEPIM Google Calendar synchronization using OpenSync” — was accepted. :D

I will use the “Summer Of Code” category on this blog for updates on the project.

Syndicated 2006-05-24 22:28:09 from Eduardo Habkost / diary

Another rant about a development tool: guess who?

Actually it is not a single tool, but a set of tools. I am talking about autotools again.

I wanted to build konversation from svn. I did the following:

  • First, checkout extragear/network/konversation from KDE svn: svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/network/konversation
  • Enter the konversation directory: cd konversation
  • Get the kde-common/admin directory for the buildsystem: svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kde-common/admin
  • Run the cvs.sh script for the KDE buildsystem: sh admin/cvs.sh cvs

What I get is:

$ sh admin/cvs.sh cvs
*** Creating acinclude.m4
*** Creating list of subdirectories
*** Creating configure.files
*** Creating configure.in
*** Creating aclocal.m4
configure.in:8: error: m4_defn: undefined macro: _m4_divert_diversion
acinclude.m4:4532: KDE_CHECK_HEADER is expanded from...
configure.in:8: the top level
autom4te-2.5x: /usr/bin/m4 failed with exit status: 1
aclocal: /usr/bin/autom4te failed with exit status: 1

undefined macro: _m4divertdiversion“. What kind of error message is that?

This is why I don’t like autotools: how is someone supposed to know where the real problem is, from this message? It is impossible to tell what is wrong from this message, unless you have written autoconf yourself.

Yes, I did something very wrong above, regarding the KDE buildsystem. I will see if someone is able to tell where the real problem was. But the rant is about the non-intuitive error message I was getting. I took days to find out what I was doing wrong.

Syndicated 2006-03-05 03:12:29 from Eduardo Habkost / diary

Too much noise

Sorry for people that want to see more interesting content on this page, but I had to comment about this.

Now that lilo has commented on it, I think I should explain some things about my my last post.

First of all: lilo talked to me, and we friendly discussed the issue, and exchanged opinions about the event.

And, yes, I think my text had too much repercussion and I was thinking about removing the post from my blog. But I don’t like the idea of removing stuff that I already made online. I think it wouldn’t be fair with people that read this and wanted to argue with me. I would feel like a coward if I removed a text I’ve already written and published.

But just to conclude:

  • I agree that the guy deserved the ban
  • I am not against punishing people for “anti-social” behaviour on a IRC network
  • I am not the kind of people that thinks IRC should have “total free speech”, and people allowed to say anything they want in a channel

The only reason for my post were:

  • Yes, I think that the person in question wouldn’t be punished if he had offended any other non-staffer people
  • Yes, I think that the punishment was too much because: a total network ban wasn’t necessary IMHO; and it wouldn’t happen if the problem happened with other people (you can say “yes, that it would happen”, but I don’t believe so)
  • Finally the main reason for the post was: I was really disappointed with the network staffer saying many times that “this is not open to discussion”. This was even why I have posted my complaints publicly instead of discussing it with the network staffers: if he really didn’t want to discuss, I had the desire to make my complaints public.

Probably the reason I think the punishment was “too much” is related to the lack of portuguese-speaking staffers in the network. This may be one of the reasons I think that an offense wouldn’t have the same consequences if a staffer wasn’t involved: there aren’t enough portuguese-speaking staffers to guarantee this.

Okay, I will not say any word about it, anymore. It is over and I still think the freenode services are good.

Syndicated 2006-03-05 02:48:10 from Eduardo Habkost / diary

11 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!