Archive for the ‘Free Software’ Category

CarHire.ie discriminating against Spaniards … and Irishmen too

Thursday, June 25th, 2009

I was just having a look today at several car rental websites for a weekend trip out of Dublin when I came across this ‘interesting’ answer in the FAQ at CarHire.ie.

What are your age limits?
23 – 74 years. … snip … The minimum age for holders of Irish, Italian, Spanish, Portuguese and Israeli licences is 30 years.

and also:

Holder of Italian, Spanish, Portuguese and Israeli licences there is a non waiveable excess of €2,500.

Is this kind of discrimination legal? Why did they throw in Israeli people too? Why not Greeks? Don’t they trust even their own Irish people?!

The coolest IP on the net

Tuesday, November 25th, 2008

My workmate Josh just discovered this :P

٢ isaac@cooper:~
% host 69.69.69.69
69.69.69.69.in-addr.arpa domain name pointer the-coolest-ip-on-the-net.com.

The end of the brick era

Tuesday, September 23rd, 2008

Just read this Techcrunch post about the Android/Google/HTC/T-Mobile phone and loved the last paragraph:

But remember, in the end this is not really about Android versus the iPhone. It’s about Web phones versus the brick in your pocket. Simply matching the iPhone on many of these features—especially Web browsing and email—is going to be enough to help redefine the mobile market. The table stakes have just been raised. From now on, phones need to be nearly as capable as computers. All others need not apply.

I welcome our new cool future phones :P

Sketching words

Thursday, September 18th, 2008

Some months ago I came across Sketch Engine. Sketch Engine is a website that offers a collection of pre-loaded corpora in several languages and the ability to automatically extract collocation information from them among other things.

You can get a 30-day free trial account if you want to check it out, the point is that I thought it was really cool, but it was a bit pricy, 55 euros/year for an individual and 1080 euros/year for a site (up to 50 employees and students) and these were the academic licenses!!! And I don’t even have any real need for it :P

So I thought it would be an interesting project to do something similar, albeit just focusing in the ‘word sketching’ part, as described in this paper.

After a weekend I got it working although I didn’t devote any second to make it look good as you can appreciate: Collocations and other stuff.

For now only the corpus of the state of the union addresses is loaded, with almost 400000 words. You can select that corpus, click on sketch and get the sketch of any word, for example, the ‘word sketch’ for problem.

We can see that the adjective used more times with ‘problem’ is ’serious’, although if we look at the relative frequency it’s ‘complex’. The verb which has ‘problem’ as object more times is ’solve’ followed by ‘approach’, ‘address’ and ‘deal’. You can also click on the numbers to see the actual sentences in which these words appear, for example, ’serious problem’.

So how does it work? First of all it does part of speech tagging using Apertium. Once the text is POS-tagged we apply a set of ‘regular expression’-like rules to identify the relation between words, such as:

*DUAL
=a_modifier/modifies
2:[tag=adj] [tag=n]{0,2} 1:[tag=n] [tag!=n]

This rule expresses the relation between adjectives and the nouns they modify, matching sentences like ‘the red ball‘ and ‘the red football ball‘. Each relation is stored in the database with extra info about position in the text. Once the database is created accessing it to display the sketch and concordance information is really simple.

The site and auxiliary tools were written in around 1400 lines of Python/Django. I am still not sure about what to do with this, if there is anyone interested on adding some corpora to it, continue development or anything else, please let me know.

Untangle yourself from ethics

Tuesday, July 22nd, 2008

A workmate called my attention today upon the fact that when you search for ‘ebox’ or ‘ebox-platform’ in Google you get some sponsored links from our fierce competitor, Untangle.

Here is a screenshot of the ad:
Easier than eBox
You can see a full screenshot of the search too.

On one hand, I am kind of honored about the fact that a California-based company which has raised almost 20 million dollars in venture capital and has over 30 employees is targeting us (a self-funded company) in such an explicit way, it must mean we are definitely on the good track :)

On the other hand, this reminds me of the time when Ximian started to play with KDE keywords … yeah, we both are developing an open-source product, but one of us doesn’t care about ethics that much.

BTW, we have a new shiny website :P

A long time ago …

Friday, January 25th, 2008

… I used to write in this blog about random things.

Let me check what I have done lately … well, first of all I spent 10 days in San Francisco in November, I had a really great time, we spent most of the time there but also paid a visit to the Googleplex, Stanford, Berkeley, … and went several days to the Yosemite National Park, a great trip overall :)

Besides that I gave up one of my jobs (the boring and not challenging one …) two months ago (although it seems like it was ages ago) and started working full-time in my company. In addition, I spent New Year’s Eve in London to begin the year in a different way :)

Right, that was all :P

Open aLANtejo 2007

Tuesday, October 23rd, 2007

Last weekend I had the chance to attend the Open aLANtejo conference, in beautiful

aKademy-es

Thursday, October 18th, 2007

I love traveling but I have to concede that having aKademy-es in my own city (and five minutes away from my home) is quite convenient :)

It will be great to meet again with the Spanish KDE crew. As Albert said, we’ll have talks, coding and party, and as a local I’ll try to make sure the latter is properly taken care of :P

See you here!

Continuous integration with ANSTE

Tuesday, August 14th, 2007

I have just visited the eBox team room and I have discovered a really nice project they are working on. José Antonio Calvo (aka Josh) is creating a really cool suite of programs called ANSTE that allows a developer to define network scenarios and run tests easily on them.

We are going to use it to perform continuous integration for eBox, running a test of suites nightly to ensure that every module works correctly, which includes stuff like setting up two separate networks, connect them with the OpenVPN eBox module and checking connectivity through the vpn interfaces or ensuring that the traffic shaping module really does its job.

Josh’s work is not this far yet, but ANSTE is already able to read XML scenario definition files like this one and generate the Xen virtual machines as specified, with the appropiate software, virtual interfaces, routes, … as defined by the scenario file. It’s also able to run suites of tests which right now are simple scripts.

The next steps are integrating Selenium to perform automatized eBox configuration through a browser (thus testing the GUI too), creating nice GUI tools to generate the scenario files and manage the test suites and writing powerful reporting tools.

Of course, ANSTE is free software under the GPL license and you can follow (or contribute to) the development in ANSTE’s Trac.

KTrace developers meeting :D

Tuesday, August 14th, 2007

Some weeks ago we started developing KTrace, a graphical KDE frontend for strace. We quickly managed to have something which worked, but development stalled after that.

Today we are holding the first KTrace developers meeting to make some decisions about the next features that will be coded. If you want to propose a feature that you would like to see in KTrace (or just a better name proposal), feel free to write a comment :)

eBox slated to be the official Ubuntu server management tool

Friday, July 20th, 2007

According to the latest news from the Ubuntu camp, Gutsy Gibbon will ship with our beloved eBox, and according to the last post in this thread in the Ubuntu forums, it’s going to be the official configuration tool for services.

I went to aKademy with eBox lead developer and workmate, Javier Uruen, and we had the chance to attend to Mark Shuttleworth’s keynote, where he argued about the benefits of having a six-months release cycle for the most popular open source projects (i.e., KDE, Gnome and OpenOffice).

I think this release cycle would suit eBox quite well too, and if synced with Ubuntu releases, would make life easier for both eBox developers and packagers, besides enlarging the free software “pulse”. In any case, we’ll continue to provide Debian-based installers where the base system won’t change that often, for those who are not willing to update their servers each six months.

Anyway, this is a big leap towards world domination for eBox :) We are quite happy that eBox made into Ubuntu and we’ll be eager to work with the maintainers to integrate their changes back into eBox.

disclaimer: I’m not an “official” eBox developer, so don’t take my opinions as authoritative, they come mostly from pub-talk with Javier

QtScript’ing In Your Face

Wednesday, June 20th, 2007

I’m currently developing In Your Face, a free software 3d basketball game. I have reached the moment to create an scripting interface to be able to script cool AI’s.

After having a look at LuaBind and Boost::Python I’ve decided to go with QtScript. I’m quite happy with it, but I’m facing an issue that I’m having problems to figure out. I’ll probably send it to Qt Interest, but I’ll try to explain it here too to see if I get an answer.

I have a whole hierarchy of classes that I want to export. The base class is Action::Base, and there are plenty of other actions, like Action::MoveTo or Action::Shoot.

I’m (almost) already able to do stuff like this from JavaScript:

function enter() {
  var teamPlay = new TeamPlay();
  var al = new ActionList();
  var mta = new MoveToAction(0,10);
  al.append(mta);
  teamPlay.insert(0,al);
  state.setTeamPlay(teamPlay);
  state.setChanged();
}

Everything works fine except the “append” call. “append” takes a pointer to the abstract class Action::Base. If I invoke it with a MoveToAction object, I get an “incompatible types” error. I have tried adding a toAction() method to MoveToAction which returned a QScriptValue-wrapped Action::Base *, but I’m still getting the same error.

Anyone has a QtScript example where something like this is done?

Foocast, podcast for (Spanish speaking) dudes

Sunday, June 17th, 2007

Several of my workmates and I are regular listeners of technology-related podcasts like Diggnation, TWiT or FLOSS Weekly (which BTW is as “weekly” as the Halley comet).

Some days ago we realized that there weren’t similar podcasts in Spanish (or at least we didn’t know about them), so we thought that creating one would be cool.

During this week we recorded our pilot, we had some problems with sound and I spoke a bit too fast, but I think it’s nice overall, at least I would enjoy listening to it :)

Trying to emulate people like Kevin Rose or Leo Laporte (in the media business since 1991), who create podcasts professionally, is quite hard for amateurs like us, but we’ll do our best.

Be sure to check it at Foocast (sorry, Spanish only, that’s the whole point :P )

First complete user-contributed module for eBox

Wednesday, June 13th, 2007

eBox has reached an important milestone recently, it has just got its first complete user-contributed module.

I guess that’s quite important for a company-backed free software product, meaning that there is really a community out there, and it’s ready to contribute stuff :)

In addition it’s always great to know that you are doing a good work (snippet from Nacho’s mini-interview to the module author):

Quite honestly it

Is Google the biggest threat to our privacy? I don’t think so.

Monday, June 11th, 2007

Privacy International has just issued a report slamming Google on privacy.

Google may indeed be the biggest pool of user data out there, but IMHO they do a decent job at protecting its users privacy in most areas.
Google’s Matt Cutts shares his opinions about PI’s article and talks about Google’s goodness in his blog.

Bluetooth remote

Sunday, January 21st, 2007

A few days ago Applemania took over Warp HQ and several workmates purchased MacBooks. The MacBooks came with this nice remote thing and I grew jealous.

In my way back home I thought that it shouldn’t be very hard to get a kind of remote control working using bluetooth and my Nokia mobile. I had never coded for my mobile so I wasn’t sure about how difficult would it be. In the end it was quite easy to write a simple program that just sent every key press to my laptop via bluetooth, and it only took 113 lines of Java code.

Then I spent several hours coding the “receiver” part, in the end I created a little Python app which could load different plugins and created several of these modules:

  • System: it basically provides “lock” and “halt”
  • amarok: play, stop, next song, raise/lower volume
  • mouse control: it allows you to move the pointer with the mobile and do clicks, it’s quite handy for presentations
  • video: I’ve a dir with videos and the module shows you a list of the available videos, shows previews of them and allows you to select one to play in fullscreen

There are loooots of things to improve but it works for me :) , I’ve uploaded the source code (tarball) in case you find it useful.

Xen + DCOP: automatic screenshots

Monday, December 25th, 2006

eBox is growing a lot lately, and updating screenshots is always a cumbersome task, so, prompted by a workmate, I decided to do something to get automatic screenshots.

The first step was to get an automatic way to install eBox from scratch to have something to get screenshots from. That was quite easy using the Xen facilities available in Debian. I only had to write a role for xen-create-image and now I can get an eBox up and running in a couple of minutes executing a simple “xen-create-image –role ebox –hostname ebox-screenshots”.

Using eBox introspection capabilities and some Perl magic, it was quite easy to autogenerate a list of the URLs that we should take screenshots from. Once we had the URL list and a running eBox all we have to do was to have a browser logging in the eBox web interface and loop through the URLs taking screenshots.

To achieve that I resorted to Ruby, Konqueror, KSnapshot and DCOP, and it took less than 40 lines of code to do it. The first problem was spawning Konqueror and KSnapshot instances and getting a DCOP reference for them, but that was easily done using Ruby’s fork, which is quiet convenient:

konqpid = Kernel.fork { exec("konqueror --geometry 1024x768+0+0") }
ksnappid = Kernel.fork { exec("ksnapshot") }
konqwin = KDE::DCOPRef.new("konqueror-#{konqpid}","konqueror-mainwindow\#1")
ksnapshot = KDE::DCOPRef.new("ksnapshot-#{ksnappid}","interface")

The second problem I faced was logging in the eBox interface, I had to enter the password and submit the form. Fortunately Konqueror’s DCOP interface offers a really nice “evalJS” function:

konqwin.openURL("https://#{ip}/ebox/")
konqhtml = KDE::DCOPRef.new("konqueror-#{konqpid}","html-widget1")
konqhtml.evalJS("document.getElementById('credential_0').value = 'ebox'")
konqhtml.evalJS("document.login.submit()")

and we’re in! :D

Now we only have to loop through the urls taking the screenshots. I had a little problem because ksnapshot expects you to click the left mouse button before taking the screenshot. Fortunately that could be easily fixed using xte from the xautomation package to simulate the click.

urls.each { |url|
 konqwin.openURL("https://#{ip}/ebox/#{url}")
 name = "#{konqwin.caption.split(/-/)[1].strip.gsub(/ /,'_')}"
 ksnapshot.slotGrab
 system("xte 'mousemove 100 100' 'mouseclick 1'")
 ksnapshot.save("#{outpath}/#{name}.png")
}

The code I pasted lacks a bit of initialization and some sleeps I put there to synchronize the stuff, but basically that’s all. I just love Ruby, KDE and DCOP :)

Hacking on eBox again

Saturday, December 16th, 2006

Last months I’ve been busy with some projects at work, involving some Qt programming, dealing with Cisco JTAPI and other nuisances, which have prevented me from working in eBox. My work desktop is about a meter away from the now three full-time developer eBox team, so I’ve been closely following the development process and participating in some design meetings and at last, I’ve found some time to write nice stuff for it again.

eBox lacked administration logging, that is, a log with every change made through the eBox administrative interface (quite useful to know when something was changed or who changed it), so I’ve added support for that in the eBox framework and have implemented the necessary stuff in two modules as an example. There is still a lot of work until every module reports every action to the module, but the core is already working:

As a nice side effect, now we can also show the changes that you are about to save or rollback:

FYI, a new eBox version (0.7.99, aka 0.8rc1) was released some days ago, you can give it a try. Check our downloads section. Obviously these changes won’t be included in 0.8, but in 0.9, which will also add a openvpn module, traffic shaping and other improvements.

Less than 24h to hit the (rail)road again

Thursday, September 21st, 2006

Tomorrow at 6:00 AM I’ll be already sitting in a train in my way to Reus, from where I’ll fly to Dublin to attend aKademy 2006 … and I still haven’t managed to write about my trip to London :P (Well, in fact, I wrote about my two first days at London some time ago, but I haven’t found time to complete it).

I’ve been trying to get some spare time for KDE hacking for a long time but I have only managed to do a dozen commits in the last months. I expect I can get some KOffice work done in aKademy and have a chance to enjoy beer with some KDE fellows.

Wanna work in Spain?

Monday, September 11th, 2006

Hi there!

My company is looking for people with Perl and Unix (preferably Debian) administration skills to continue working on eBox, a free software thingie we’re developing (check out the web to learn about it). Fluency in English is also required. Being an EU citizen would be great to avoid immigration hassles, although I guess we would be able to make it work otherwise.

The job offer would be for one year, with high chances of extending it for more time if you’re willing to do so. You would have to come and live in Zaragoza, Spain. Zaragoza is a 600000 inhabitants city in northern Spain, between Madrid and Barcelona.

We can help you find housing, or you can even share my flat with me if you dare (five minutes walk to our office), for a reasonable rent (below 15% of your wage for sure). You would be working with 12 young people (around 26 years old), all of us free software enthusiasts. We play in snow (yeah, we also have sunny summers), have nice decorations in our office, hang out together, …

If you’re interested send me a CV to isaac@warp.es and feel free to ask for more information via e-mail.

Best regards