Alexandre Trilla, PhD - Research Engineer | home publications
 

Blog

-- Thoughts on data analysis, software development and innovation management. Comments are welcome


Post 14

Ideas, values and attitudes

16-May-2009

With this title, the Most Honorable President of the Government of Catalonia (Generalitat de Catalunya) Dr. Jordi Pujol presented his speech at the VIII Student Conference at Blanquerna with the main topic of "Citizenship and Communication". Communication is a feature that we bloggers, and especially researchers, should develop proficiently, because regardless of how good a work can be it can unfortunately be ignored or even invalidated if the ideas that conveys don't get through.

But what I wanted to point out here is the citizenship aspect that Dr. Pujol remarked defining the difference between a citizen and a mere inhabitant. Let's say, for example, that if someone accepts the bargains in a grocery store without a worry of its commercial failure, since there are other markets to go, then this individual becomes a mere inhabitant. But if someone feels that he/she is indebted with the effort of the small business and accepts to pay a little more in order to contribute to the success of the store, then this person becomes a citizen. It is the conscience of the rights and responsibilities that makes a population prosper. JFK had put it this way: "Don't ask what America can do for you but what can you do for America". Bear in mind that this example should not argue against the free market ideal defended by Xavier Sala-i-Martin, it only reflects an ordinary activity that we all citizens and inhabitants are familiar with.

And since this belief served Dr. Pujol very well during his 23-year service for our nation, I think we researchers ought to consider it for our universities and research centers, in the end they are our link to the scientific community.



Post 13

Working on the sentiment of text

01-May-2009

It's been quite a long time (almost 3 months) since I last blogged. I have been working with Dr. Alias on an article for this year's SEPLN conference San Sebastian 2009. Our work deals with positive/negative text classification from sentence-level annotations of emotions regarding models of affect.

This paper presents a text classifier to automatically tag the sentiment of a text according to the emotion that is being conveyed. This system has a sequential framework composed of Natural Language Processing modules for feature extraction and a binary classifier for decision making between positive and negative categories. In order to train the classification system the Semeval 2007 dataset is of use, which is composed of sentences emotionally annotated, after being mapped into a model of affect. The resulting scheme stands a first level of classification in order to achieve a complete emotional text classifier.

The system we have obtained is indeed an evolution of the EmoLib library. As soon as we get feedback from the referees of the conference I will post the future work for the project.



Post 12

Advances in parallel frameworks

05-Feb-2009

Some days ago Xavier Llora published a technical report about a pilot study (available here) of a data-intensive framework running genetic algorithms using Meandre. What's most impressive is the capacity of Meandre to parallelize the computation bottlenecks dividing the load among the cores of the processor that runs the framework.

I am quite concerned with frameworks as I believe that a good one is a key of success in such complex fields of study. Since I discovered the framework that Sphinx-4 uses, which I mentioned in a previous post, I realized of the importance of this concept, and Meandre seems to be an excellent improvement. Taking profit from the parallelization aspect (linearly scalable), the GUI-based design, the script-based design and the requisite that the modules must be implemented either in Java, Python or Lisp, Meandre raises the flexibility of semi-interpreted programming languages to an extent worth mentioning. I am looking forward to using it as part of my present learning stage in my pursuit for the Ph.D. degree.

And I wonder, what would happen if the dream of a Java Real Machine (JRM) came true someday? How would Meandre perform on a Java bytecode-based processor? By now, as far as I'm concerned the Java Optimized Processor (JOP), a Java processor architecture for embedded real-time systems implemented on a FPGA, is leading the open source development of this dream. So wake up (don't dream anymore)...



Post 11

Back to the genuine Debian flavor

28-Jan-2009

After some time "playing" with Puppeee, some application-level features (no SSL support for Subversion, no LaTeX) didn't satisfy my needs. I suspect it is my business to mind for such specific software. Thus, back to the genuine Debian flavor, I took eeeXubuntu, a 7.10 live CD release of Xubuntu hacked to run on the EeePC.

Since I didn't want to substitute the original Xandros in the SSD, I chose to use again the SDHC. Then, the resulting card should be able to launch the available eeeXubuntu ISO image. The original instructions proposed to use UNetbootin, but the distributed binary threw a floating point exception on my machine. In order to overcome this nuisance, the FUSBi project served me well. Mainly it's a bootable USB images creator, like UNetbootin, but this one worked perfectly. Finally I managed to run the EeePC with eeeXubuntu, a live distribution, and thus with no persistence, but since this distro is already very well prepared, this aspect is just insignificant to me.

Note: for some reason I still ignore the automatic Ubuntu Intrepid Ibex USB creator (with persistence) just crashed soon after being launched.



Post 10

Don't be evil, Google

08-Jan-2009

Reading Gottiplati's opinion on ONJava, available here, I realize of the critical situation that Java developers are facing presently since the birth of Dalvik, Google's (Java) Virtual Machine (VM) for the Android mobile phone platform.

Dalvik is a VM that is used to run software coded in the Java programming language, with some special libraries provided by Google, but which doesn't output Java bytecode, but Dalvik bytecode. This fact creates a new "Java specification" not compliant with the standards for the JVM proposed by Sun Microsystems ages ago and widely used by all Java developers. Now, a brand new way of doing the same with the excuse of a more optimized VM which produces services (software) that can only be provided (run) by Google (Android). Is Google a Microsoft wannabe in the end? Where is the Don't be evil ethic?

In Dalvik: how Google routed around Sun's IP-based licensing restrictions on Java ME Stefano delves into the licensing aspects around this matter, showing that Google has played a smart game with Sun. Things are not looking very nice with the additional entropy that Android introduces into Java ME. Google offers sweet services, undoubtedly, and makes tons of money, but as it seems it rather uses it to bribe programmers with a juicy prized competition that frigthtens the ethic (see the Android Developer Challenge for further details). But that's life, Google has definitely come to stay. The Plan for World Domination is nigh, as pessimistics would say. It's funny how this rhymes!



Post 9

Puppy Linux flavored SDHC for the EeePC

03-Jan-2009

Not being much content with the little hacking that the EeePC Xandros distro offers I've decided to bring a new software set to my new device, the ASUS EeePC 900. Since the DebianEeePC wouldn't read the 8GB SDHC card I bought for lodging the new OS, I thought I'd give a try with a different GNU/Linux flavor.

After some unsuccessful tries to get Damn Small Linux (a Debian-based light distro) running on the computer, I eventually believed that the EeePC BIOS doesn't accept bootable partitions (with the exception of the internal SSD), the way DSL was instructed to run on an USB drive. The only image I managed to boot so far was the Debian superfloppy installer.

Still wanting to set a new flavor to the EeePC I read about Puppy Linux, an independent light distro that seemed to be a nice choice. In the eeeuser.com wiki, this post shows how to put Puppy Linux into a SD card. The problem, though, is that whoever wrote it fed the SD card into the system through a USB adapter. Puppy Linux already has the appropriate modules to deal with USB drives, but if the distro is put into a real SD card slot, things are not nice since the OS as it is can't read this device, and thus the boot process gets stuck.

In order to make things easy, I first avoided the compilation processes to get a SD drive supported kernel for the EeePC. Then, reading Puppeee: Puppy for your Eee PC on Linux.com I found Puppeee, a Puppy Linux flavored distro with the appropriate fixes and hacks to run on the EeePC. Hands at work, I extended the "apt" sources with the Adding Additional Software Repositories for the EeePC because "mtools" and "syslinux" would be needed afterwards.

Having prepared the EeePC Xandros with the extra repos:

  1. Insert the SDHC card into the SD card slot and determine the system device ("Cntl + Alt + T" to open a virtual console):
    fdisk -l
    In my case it was "/dev/sdb", but from now on I will refer it to as "/dev/sdX".
  2. Create a superfloppy:
    mkdosfs -F 32 -I /dev/sdX
    For a SDHC of 8GB, "-F 16" complained to be a filesystem too large. Now since the MBR has been removed all the files will be written starting at sector 0.
  3. Mount the SDHC device:
    mount /dev/sdX sdcard/
    Note that the "sdcard/" folder refers to the local folder where the device is wanted to be mounted, it can be placed anywhere.
  4. Download a Puppeee ISO image from here and mount it as a loop device in order to make it accessible as a block device:
    mount -o loop puppy-eee.iso loop/
    Here the "loop/" folder works as the previous "sdcard/" folder.
  5. Copy the contents of the image into the SDHC card:
    cd sdcard/
    cp -rf ../loop/* .
  6. Hack the image in order to use the SYSLINUX bootloader, used for booting FAT filesystems such as the one created in the SDHC:
    mv isolinux.bin syslinux.bin
    mv isolinux.cfg syslinux.cfg
    cd ..
    umount sdcard/
    syslinux /dev/sdX
    Now the SDHC card has the Pupeee OS inside and is ready to boot the EeePC.

Puppeee Linux is a very nice, light and configurable OS, aimed at delivering a high usability interface. It runs swiftly because (by default) it loads the whole OS into RAM (about 500MB, half the capacity of the EeePC), and can save the user's preferences, files and programs in an encrypted independent filesystem so as to keep a secure multiuser environment. It is highly recommended to prevent the EeePC from dying by the deterioration of the unreplacebale SSD soldered to the motherboard.



Post 8

ASR in the Asus EeePC

26-Dec-2008

Having fun with the present that Santa Claus brought for me, the UMPC Asus EeePC 900, I am now enoying the device bringing it to one of my fields of study, Automatic Speech Recognition (ASR). The computer has an embedded speech recognition engine that is used to recognize the user's voice commands to launch some applications. It has a modus operandi similar to Magnus, my Master's Thesis: the input speech is analysed continuously in order to determine the spoken commands.

As a difference, the EeePC speech recognizer requires a first keyword to start the recognition process. No previous training is required by the user. The application loads fast, which impedes heavy acoustic models to be loaded on the fly. Then, could it be a Dynamic Time Warping (DTW) ASR engine? This would explain its somewhat poor performance (the system gets confused from time to time) since the system is not adapted to the user's voice. This was one of Dr. Iriondo's suggestions at my Master's Thesis defense in order to improve the performance of Magnus, which uses the acoustic models produced by the LDC speech samples, thus not adapted to the Catalan phonetic set. Since the command set is not big, DTW could yield nice results.

The only useful information I've found about this application is its process name, SPAVoiceCommand, and Google has been useless since no result has been returned for its query.



Post 7

Prof. David E. Goldberg at La Salle #2

11-Dec-2008

Today, Prof. Goldberg has pronounced his second speech, this time, about the matter he gave birth to 28 years ago: Genetic Algorithms (GAs). And there's not much to say about it, it has been simply brilliant. The man that yesterday argued in favor of the approach to monopolies for the sake of technology, a mind I could never share due to my compromise with the free software world, has today proven to be a master in the field of GAs, whatever the tools of use. I expect to be getting my hands dirty with GAs shortly. I'll be feeding this blog with the attempt as soon as I do.



Post 6

Prof. David E. Goldberg at La Salle #1

10-Dec-2008

Today, professor David E. Goldberg, a worldwide renowned American computer scientist, father of genetic algorithms, has given the first of the two speeches arranged for this week at La Salle, titled "The Creativity Imperative and the Technology Professional of the Future", a business-centered perspective of engineering.

A man in his mid-fifties, experienced professor in the United States and author of such an innovative machine learning tool, the genetic algorithms, a scientist to admire. His time reference is set to WW2, enough time for the country that eventually has been acknowledged as the first superpower in the world. How on earth have the States been so successful? He attributes it to the Government funds that the the american universities received after the war. Nowadays, some of these universities lead the research threads in the scientific community.

He has seen how the Cold War engineering paradigm has been tumbled by the economic changes that worldwide networks have provided, to live today in an era described by creativity. A topic that has been the conductive thread of his speech. Having a slideshow support on a MacBook, he has referred to Jobs and Woz as tech visionaries, people able to spot problems in customers, to then make a huge profit from providing solutions to them. This is a kind of intelligence that nowadays isn't instructed at the university. But what about those people that instead of finding problems create necessities? Should I ask. Is change prone to happen? Not so fast unfortunately. A funny term: NIMBY. This stands for "Not In My BackYard", meaning that if the new stuff is not already in one's possession... "scratch my back and then I'll scratch yours". And the world remains the same.

If an effort has to be made in order to solve a problem, let it be a good profit-making problem, according to Prof. Goldberg. I won't be playing the devil's advocate here putting his comment out of context, it was none of his intention I suspect, but a lot of non-profit research has yet to be done in the world, an effort that the countries that need it the most can't afford it, or even worse, by awful political or tyrannic situations won't permit it. Then what? Not always the Big Bucks Theory should precede the Big Bang Theory!

Scientific papers are the railroad to a good academic career. Definitely true. Philosophy leads to qualitative reasoning. Certainly. Must we all be creative engineers who produce unarguable successful products with the talent of an artist? Well, probably we'd all be delighted to. But that's not the job of an engineer, to my mind. We would rather be doing the job of a businessman or businesswoman. One should profit from the best one can do, which in engineering it should be something like the solution to real world problems, and specialize. Anyway, Woz did the electronics part while Jobs selled all the stuff. Wasn't it like this? Teamwork? Isn't it the fashion that they proved to be successful?



Post 5

Getting my VPN to work, at length

05-Dec-2008

Getting a Virtual Private Network (VPN) to work under GNU/Linux can be a pain. I have had, like many other people, a lot of trouble to set it right. Some time ago I did have my attempts, I eventually got to establish the connection but the traffic wouldn't route with success.

A day ago Dr. Vilella told me he already had a VPN working with the Ubuntu network-manager-pptp. He had even set it in Fedora with pptpconfig . With the evidence that a GNU/Linux VPN was indeed possible, I put my hands to work until I got to understand it and succeed in establishing the tunnel.

The protocol, PPTP, a piece of Emmental cheese. The OS, Debian, the anvil of stable GNU/Linux distros. The manual, an article from nixCraft called Linux configure point to point tunneling PPTP VPN client for Microsoft PPTP vpn server. After following the instructions of the article, my VPN did set, the P-t-P private address did appear in the kernel routing table, but the default gateway didn't change, so I was unable to send traffic trough the VPN. Trying to set it manually was useless because once the original default gateway was removed, the connection was lost.

In order to avoid that problem, the following steps led me to success:

  1. Add a static host-route to the VPN server with the original default GW:
    route add -host vpn_server_address gw original_default_GW dev eth#
  2. Launch the pppd client:
    pppd call vpn_tunnel_connection_name
  3. Delete the original default GW:
    route del default
  4. Add the P-t-P private address assigned by the VPN server as the new default GW:
    route add default gw ptp_address

By following these instructions, when the original default gateway is removed, the connection with the VPN server is not lost because of the static host-route.

Now, with a functional GNU/Linux VPN to the university I can keep on my development and research tasks as if I was materially in my everyday workplace. VNC and rdesktop clients to a MSWindows box for a VPN tunnel is history.



newer | older - RSS - Search


All contents © Alexandre Trilla 2008-2025