Older blog entries for fxn (starting at number 411)

3 Nov 2005 (updated 3 Nov 2005 at 16:25 UTC) »

Algorithm::Combinatorics

I completed the implementation of the initial interface, wrote a test suite, and documented the module. The result was the first release of Algorithm::Combinatorics yesterday, with a followup today.

1 Nov 2005 (updated 1 Nov 2005 at 23:47 UTC) »

Algorithm::Combinatorics

I have been playing around with the Perl API via Inline::C. This is for my new pet module Algorithm::Combinatorics (work in progress).

Algorithm::Combinatorics is a generator of (lazy) combinatorial sequences written in XS. Having all the looping implemented in C speeds the iterators up by several orders of magnitude compared to the pure Perl Math::Combinatorics.

As of today I have chosen the interface, implemented combinations, combinations with repetition, and variations with repetition, as well as a handful of tests.

24 Oct 2005 (updated 24 Oct 2005 at 17:17 UTC) »

Semantic Web Demystified

I like this quotation from Tim Berners-Lee (read here):

Is this rocket science? Well, not really. The Semantic Web, like the World Wide Web, is just taking well established ideas, and making them work interoperability over the Internet. This is done with standards, which is what the World Wide Web Consortium is all about. We are not inventing relational models for data, or query systems or rule-based systems. We are just webizing them. We are just allowing them to work together in a decentralized system - without a human having to custom handcraft every connection.
22 Oct 2005 (updated 22 Oct 2005 at 11:19 UTC) »

There has been a heated debate in p5p around the problem in perlsub I reported. There are 57 messages in two parallel threads so far. The discussion is not over yet, but I have written today a summary.

Perl documentation patch

I have been exchanging impressions in several places about a corner in the documentation of perlsub which is not totally accurate. The part that explains what does a subroutine return when no return statement is found. I submitted a documentation patch with one of the possible fixes.

19 Oct 2005 (updated 19 Oct 2005 at 06:56 UTC) »

mathrick, hahaha.

Akira, that kind of questions can't be answered on the abstract. There's no universal less than operator that applies to dynamic languages, and I know a lot of Perl fellows that know Python and Ruby, no contradiction, if you restrict yourself to language X then it is a matter of time you become blind and biased.

I am more or less active in the Perl communtity, but my last pet project is being written in Python. Why? Because among other technical requirements I need something like subprocess. Fine, go with Python then.

Oh, and remember the differences are by design not by age. Perl and Python have both about 18 years. Ruby has about 12 years.

If you follow the evolution of Perl 6 you'll see the fundamentals of Perl's design are there because they are a choice. Of course there's nothing on earth that pleases everyone, that's why we have different languages. I know people who can't stand Python whitespace conventions, I know people who think Ruby ends up being too dense.

In the end you have preferences based on a mixture of technical needs, personal taste (which weights a lot and is subjective), and then practical stuff such as the languages your team actually know, etc.

16 Oct 2005 (updated 16 Oct 2005 at 10:49 UTC) »

Perl documentation patch

I sent a patch to clarify the documentation of the variables $, and $\ in perlvar.pod. The current documentation of $, reads:

The output field separator for the print operator. Ordinarily the print operator simply prints out its arguments without further adornment. To get behavior more like awk, set this variable as you would set awk's OFS variable to specify what is printed between fields. (Mnemonic: what is printed when there is a "," in your print statement.)

After some feedback from Michael G Schwern the rewording seems much more concise and clear:

The output field separator for the print operator. If defined, this value is printed between each of print's arguments. Default is undef. (Mnemonic: what is printed when there is a "," in your print statement.)

The documentation of $\ has been reworded in a similar way.

Picture of my daughter

Isn't she lovely?

Semantic Searches

I find a pattern in most introductions to the so-called semantic searching that I don't quite understand: They present a query in natural language to the reader, for instance the OWL Guide opens with:

Tell me what wines I should buy to serve with each course of the following menu. And, by the way, I don't like Sauternes.
and says that keyword-based approaches can't handle that, whereas semantic web technologies can. Looks like that's a standard opening. Oh really! That's impressive, I am eager to learn how.

But then the documents only introduce formal stuff, for instance OWL. I find that misleading, if not disappointing. You are shown a partial solution to the problem, that is, some technologies have been developed with the necessary expressiveness and inference engines to handle the formal translation of the query. That's interesting. And what about the unrestricted natural language query interface the openings suggest?

I think those documents should differentiate both aspects of the problem at the end to close the circle, and be clear about what's solved and what not, and to what extent.

Teaching Perl Again

I have a full-time job in a software company, and additionally I teach Perl at the University of Barcelona 6 hours a week. That's vocational, a humble way to contribute to Perl, and to stay in contact with students, which is really refreshing.

The academic year is back, and it's going to be the third one I teach this subject there. There are a couple of changes this year: The number of students has doubled, 42. And due to this I'll finally be able to teach only Perl, which is what I want (in previous years I had to work a few hours in another subject to fulfil the contract). The bad news are that cerquide is no longer giving this subject with me. The good news are that he'll be able to focus on research during this semester.

Classes started last week. The classroom is larger than before and I like to walk a bit around, so I bought a remote control with laser and added a bit of JavaScript to the HTML slides to get it working with Safari. That's easy since that remote control emulates a mouse. It wasn't easy to find a remote control that worked with the Mac, but that one from Keyspan looks fine so far (except it does not support Media mode, something I don't care).

The site is back! Hurra!

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