Older blog entries for boto (starting at number 23)

4a7d3d609129a9296bf7ac0608c2097

Can somebody explain to me where this hex string comes from?

It has lots of matches on Google. Most of them are on blog comments. But they appear on valid comments, so I don’t think it is some marker string being used by spam bots.

Syndicated 2008-03-27 17:33:14 from Eduardo Habkost / diary

Getting a mailing-list archive URL from a Message-ID

It happens often to me: I am reading a mailing list on mutt and I want to send a pointer to the message to somebody.

I always wanted to be able to press a key on mutt, and a script would query mailing list archives and find a URL for the message on a mailing list archive. Today I have found this to be possible. Gmane has a “Message-Id” URL format tha allows you to do it. Just point to http://mid.gmane.org/<message-id> and it will redirect to the message on the archives, if it is present.

Now, getting a URL for a mailing list message is as simple as piping the message from mutt to this small script:

#!/bin/bash
mid="$(grep -m 1 -i ^Message-ID: | cut -d: -f2 | sed -e 's/^ *//')"
kfmclient openURL 'http://mid.gmane.org/'"$mid"

And this can be bound this to a keystroke under mutt by simply using something like this on .muttrc:

macro pager U "msg2url\n”

There are other mailing list archives with similar features. But they are more specific to some mailing lists, so they are not as comprehensive as Gmane. Some examples:

  • http://kerneltrap.org/mailarchive/message-id/<message-id> (for KernelTrap mailing list archives)
  • http://www.red-bean.com/threadfind (mostly Subversion-related mailing lists)

Syndicated 2007-10-09 15:50:55 from Eduardo Habkost / diary

Brazil insisting on Internet Censorship

After the first fiasco, the brazilian judiciary insists that Internet Censorship is a good thing.

I haven’t found any news articles about it in english yet, but you can read the news in portuguese (or an automated translation). A court ordered the major brazilian ISPs to block another site. Now the target is not a big site, but a tourism agency that got some attention from the brazilian media recently, in news related to sexual tourism in Brazil.

It seems that at least the ISP I am using right now (BrasilTelecom) haven’t implemented the block yet. But considering that on the YouTube blocking case they have done this immediately after receiving the court notification, I think it is just a matter of time until ISPs receive a notification and implement the new block.

This blocking was also ordered because of a “public image protection” lawsuit. Not by a celebrity in this case, but somebody whose picture was taken and published on the site. The sad part is that probably most brazilians will not care this time because it is a small site not targetted to brazilians, and then we have a legal precedent for further Internet blocks caused by stupid reasons.

Syndicated 2007-02-07 16:00:48 from Eduardo Habkost / diary

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.

Thanks

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
debootstrap_0.2.45-0.2_i386.deb
$ 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

14 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!