Older blog entries for arauzo (starting at number 13)

Late at night, waiting for my script to finish... Well, I did not have a more stupid thing to do, so I found that my weird quotient was 86 .

Long time without writing here... I hope I can avoid this in future. Now just a short note to break the ice.

I have found that blogs can be really useful. My today's personal discovery is a simple and fast implementation of the argmax function in python from Daniel Lemire's blog.

1 May 2004 (updated 1 May 2004 at 19:02 UTC) »

What I called host spam blocking lists are better known as Realtime Blackhole Lists (RBLs). Here there is a deeply studied text against RBL from someone that also had problems with RBLs.

There is also a public statement against RBL's from the Electronic Frontier Foundation (EFF), an organization that I trust. To know that they also agree on this with me makes me happy. ;-)

Do not use host spam blocking lists

Have you ever felt that you may be loosing incoming email? It is a bad feeling. Furthermore, if you think the nasty you may be, not answering those emails you never received, but they think you did.

Please, please, please, if you are a sys admin, please, do NOT use host blocking list. While their intention is good, their results may be awful.

There are much better ways to fight spam:

  1. Do not publish your email address in a web page. (Use the "user at provider.com" form)
  2. If you have a domain name, use something like spam shield, to avoid them taking your email from the registers.
  3. Mask email addresses in mailing list archives, if you are the admin. If you are not, avoid writing to a list which does not mask email addresses.
  4. If you are a web admin and email addresses should appear in a web page use SugarPlum
  5. Use safe operating systems like GNU/Linux, as in other unsafe systems there are virus collecting email addresses to spam.

I was looking for a python function to get the mean of a list. I thought there would be some simple statistical functions in the main distribution, but there are not. There are not YET. :-) There is an stat module already in the sandbox.

I wanted to learn CSS since long time ago, so I decided to have a look to it and change the look of my web page. It is not very good, as I'm not a designer, but I'm quite happy with what I learned. ;-)

I'm surprised how easyly a CD reader can get broken. I forgot I had leave a CD being ripped on my computer and when I came back 2 hours later I saw grip was still trying to correct some scraches on the second track of the disk... Guess what! It does not read a CD anymore :-(

10 Feb 2004 (updated 10 Feb 2004 at 09:42 UTC) »

Well, I came back yesterday from a weekend at my girlfriend's city and the GIMP bug was already solved! There are great people in the free software community.

Today I've detected and reported a bug in GIMP.

Also I have been preparing a simple form for people to reserve a seat in a free bus from Granada to the Open Source World Conference. And trying to cope with the many intermediates we have between the trip organizer and our LUG.

4 Feb 2004 (updated 4 Feb 2004 at 20:09 UTC) »
Efficiency of Python vs. C++

Obviously I am not going to give the final answer to such a question like which one is faster. It depends on what you are programming and their requisites, and if you need maximun speed you may need to use C++, C or even assembler. But I want to share with you my little experiment.

I wrote a small C++ library for handling tables of data of diverse types. I did it aiming to clarity and usability, and so I used many inheritance and virtual methods. I recognize efficiency was not my priority.

Then I needed to convert ascii files of tabbed data with different formats to mine. I needed to write too much code in C++ (and I wanted to learn python I must confess) so I wrote a python script to do that (with a Gtk interface thanks to lgs).

Fascinated by the simplicity of Python code (as I told you on 29th) I decided to wrote in Python a feature selection algorithm I had previously wrote in C++. Today I have decided to test their speed and these are the results:

  1. Python: 29 minutes
  2. C++: 33 minutes

Well, it is not a very scientific experiment, and I cheated C++ because it is loading the table 32 times (it takes just a few seconds). But, hey! I expected C++ to win by large.

Good (coding is simpler now) and bad news (it took long time to wrote C++ lib) for me. But definitely a BIG surprise!

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