A little break and FOSDEM

I’ve been three years working at Emergya. I did the third year two weeks ago…. When I arrived we where 12 people (plus me) and I supposed to be there just for a month… :-P

Three years later I was still there… And now they are fifty people.

Emergya is a company about free software, full of young guys and girls (well, as at any IT company, much less girls and we would like, but…) with passion for the technology, good persons, good friends. They work on GNU/Linux distros (Guadalinex and much more), web applications (with zope/plone, Rails, java, Drupal and more), GIS applications (MapServis and more) and more interesting stuff.

So, nice people, working with and on free tools and projects in a very familiar and nice environment… in Seville (which is not Las Palmas, but still is nice place to live…)… I couldn’t say no to stay more than I’ve promised :-)

But three years is a very long time for me being in one place. Even if it’s so nice. So I decide to make some changes.

Actually, my work here didn’t let me so much time to update my knowledge, take care of personal stuff I’ve been leaving stopped for awhile and so.

But, I’m no leaving fullly the company. This is more a little (few weeks, maybe a month or so) break to take care of my own personal business.

One of the thing I like to do in this time is updating myself. I need to read and learn a lot stuff about the new (or not so new) GNOME and Freedesktop technologies (I feel so outdated….). I’d like to code again. I miss that a lot.

But this is personal time, so health is one of my goals as well. Better food (cooked by myself instead of with rush in a bar close to the office…), good rest, some exercises, some checking at doctor. Stuff like that.

And I feel I need improve my English. I learn a lot when I was living in Dublin, but was more pub conversations what I learn than an appropriated speak for business or so.

Also my written English is so poor and I don’t feel comfortable enough (and I write soooo slow…) to chat with people by jabber or irc, which some times is necessary to collaborate on some projects.

I guess this is just matter of practise. Read more, write more, try, fail and learn :-)

I repeat, if someone read my posts and see something wrong or something sounds weird on my English, I will appreciate (so much) to teach me my errors and mistakes.

By the way… Im going to FOSDEM, the Free and Open Source Software Developers European Meeting

I hope see good hacker and friends over there :-) And meet more interesting people.

See you there guys! :-)

Great GNOME weekend in Madrid

Although I’m from Las Palmas de Gran Canaria (the place where the Gran Canaria Desktop Summit is going to be), now I’m living in Seville (also in Spain). Actually the past 10th of January I made my third year here :-)

I was in Las Palmas for Xtmas and there I was with Alberto (good friend and GNOME hacker), who is living now in Dublin. He told me he was going to make a stop in Madrid, just before to come to Ireland to see some common friends and ask me to go as well.

I couldn’t resist. I was almost one year wanting to come back Madrid and see my friends there. I like so much visit Madrid. I think I couldn’t live there a long period, but I like to go there some times.

Well, this past weekend (the one when people gone crazy because snow in Madrid, which didn’t happen sine long time ago) I went to Madrid and I met there with a good group of good friends and historical Free Software people from of the Spanish community.

People as Alberto Ruíz (a.k.a. arc), Jesús Climent (a.k.a. data), Roberto Majadas (a.k.a. telemaco), Carlos Garnacho (a.k.a. garnacho), Zazu Vega and María Majadas.

Free Software / Open Source friends
Free Software / Open Source friends

That was a very good weekend. Lots of fun and even some geeks conversations about GNOME, GTK, Vala, the Gran Canaria Desktop Summit, DVCS and much more :-)

Thanks guys! :-)

Talking about touchscreens

I was talking yesterday with my good friend Carlos Garnacho about touchscreens and multi-touch and I discover a couple of interesting projects. The first was Garnacho who pointed me out. I didn’t know that project. It was MPX (Multi-pointer X Server).

I tought this was a project for creating drivers for those multi-pointer (or multi-touch) touchscreens which start to be on the streets, but actually is something more. It seems the Xorg X server itself doesn’t support more than one pointer at time, so those people had to make some changes on him.

I didn’t have time yet to read docs and code, or just testing, but I think I’ll try. It looks interesting project to me.

The other project I found was tbeta which is a project for providing a multi-pointer (or multi-touch) support via video input. Which means it emulating a multi-touch screen using video camera to see the pointers (e.g. the fingers).

That’s pretty interesting project as well… And it is not necessary expensive to use it. If you don’t believe me, watch this:


Multitouch Mini (MTmini) – My Cheap Multitouch Pad

More details about the video here

I hope you like those projects :-)

UPDATED: Another friend (Luis) is working on this stuff and give me some nice links:

Touchscreens on Linux

As I posted before, I’ve been working with a EPIA Mini-ITX with a Touchscreen. But, actually, it wasn’t just one touchscreen. We did configure a few for the same machine and the same system. I’ll tell you how we did just for one (which is kind of tricky) and later what surprise me about those touchscreens…
I though this was a matter of repeat the same steps as I did for the first touchscreen and hook each configuration with each touchscreen depending of their hardware info (vendor and product id, or so), but I got one big surprise with that… I’ll tell you later :-P

Well, the main problem of touchscreens is the calibration. You need to tell to the Xorg the limit of the touchscreen so it can be mapped with the screen. This could be automatic task done by hal, but there isn’t still a automatic tool for that. At least for evtouch driver based touchscreens.

I was playing with the fdi file which came with the evtouch driver to fix the screen, but obviously isn’t a easy task, so I kept googling and I found there was a utility to get the X and Y points and limits. And I felt as a fool when realized that utility was already installed (by the evtouch driver) in my own system… :-(
Anyways, I ran the tool (/usr/bin/calibrate_touchscreen) and I got the max and min X and Y points. Which means the four corners of the touchscreen.
I couldn’t have the utility working properly… It didn’t show me any message or dialog and it didn’t give me a out.txt file with the result, as the doc told me. But I got the X and Y points, so I put them in my fdi own file for “eGalax” touchscreens.
The evtouch driver have one fdi for eGalax, but the properties doesn’t fit at all with my touchscreens, so I copied the file into /etc/hal/fdi/policy/ and I did the changes there.
The fdi files Hal find in that directory overwrites the ones who were installed by the package on /usr/share/hal/fdi/ (or similar if your distribution is nos Debian alike).

You need to restart the Hal service to get the changes and to let the Xorg realize that.

$ sudo /etc/init.d/hal restart

(or similar)

You can test if the changes were made by running the following commands:

$ UDI=$(hal-find-by-capability --capability input.mouse)
$ lshal -u $UDI

Then you’ll probably get something like:

udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0_logicaldev_input'
info.capabilities = {'input', 'input.mouse'} (string list)
info.category = 'input'  (string)
info.parent =
'/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0'  (string)
info.product = 'eGalax Inc. Touch'  (string)
info.subsystem = 'input'  (string)
info.udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0_logicaldev_input'
(string)
input.device = '/dev/input/event1'  (string)
input.originating_device =
'/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0'  (string)
input.product = 'eGalax Inc. Touch'  (string)
input.x11_driver = 'evtouch'  (string)
input.x11_options.longtouched_action = 'click'  (string)
input.x11_options.longtouched_button = '3'  (string)
input.x11_options.longtouchtimer = '750'  (string)
input.x11_options.maxx = '1912'  (string)
input.x11_options.maxy = '1989'  (string)
input.x11_options.maybetapped_action = 'click'  (string)
input.x11_options.maybetapped_button = '1'  (string)
input.x11_options.minx = '112'  (string)
input.x11_options.miny = '76'  (string)
input.x11_options.movelimit = '10'  (string)
input.x11_options.oneandhalftap_button = '2'  (string)
input.x11_options.rotate = 'ccw'  (string)
input.x11_options.swapy = true  (bool)
input.x11_options.taptimer = '30'  (string)
input.x11_options.touched_drag = '1'  (string)
linux.device_file = '/dev/input/event1'  (string)
linux.hotplug_type = 2  (0x2)  (int)
linux.subsystem = 'input'  (string)
linux.sysfs_path = '/sys/class/input/input1/event1'  (string)

Now Hal know your touchscreen preferences and limits, so Xorg will set up the right values for the cursor and so. If you try to start the X server you’ll see.
It’s possible you have to do the process a few times. The perfect calibration could need it.

But, at this point, I found a new problem: when I rebooted the machine, the cursor gone crazy again… :-(
Well, the thing is the package ‘xserver-xorg-input-evtouch‘ install you a init script for setting the hal parameters from his own conffile (/etc/evtouch/config). This file was generated for the calibration tool (I didn’t know and I haven’t seen still in the doc of the tool…).
The file has something like:

MINX="140"
MINY="55"
MAXX="1888"
MAXY="1975"
X0="-9"
Y0="-588"
X1="391"
Y1="-588"
X2="795"
Y2="3"
X3="-398"
Y3="-298"
X4="-3"
Y4="4"
X5="390"
Y5="300"
X6="-788"
Y6="-2"
X7="-393"
Y7="299"
X8="-4"
Y8="593"

The init script got this values and set up the hal ‘input.x11_options‘ and the script is launched after the hal’s, so it will overwrite any fdi I put in there. But the problem for me is the only values were working for me were the MIN and MAX X and Y. The rest just makes the X server getting lost.

What I did to fix the situation was deleting from the /etc/evtouch/config file everything but the MAX and MIN values and also deleting the input.x11_options for those MAX and MIN values from the fdi file I wrote. The file (the fdi one) was still useful to set up the rotate and more X11 options.

So now I got all the values I need set up and I’m sure no other scripts or services will mess with my configuration.

Ok, now I have the configuration for ONE of the touchscreens, but there are more… What now? well, doing the same process (knowing the issues and taking the sorter way) and figure the way to put the right configuration depending of what touchscreen is plugged.

Ummmmm… I show directives on fdi files to match strings and search for hal properties. I just need to looking for the usb.vendor_id and usb.product_id hal properties to choose which configuration set up. But here was my surprise….
All the touchscreens I have (and more some friends checked out) have the same vendor and product id. All are different and have different calibration values, but all have the same vendor and product id, which let me with no way to know which touchscreen is plugged. At least, by now, I don’t know how to be sure about which one is plugged.
Please, if anyone know how, tell me.

You can make the test if you have one or more touchscreen which work with evtouch driver. Run a ‘lsusb‘ and I almost sure you’ll get this line:

Bus 002 Device 002: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen

Well, that’s all for today folks. Soon more ;-)

Happy hols for those of you who have Xtmas hols and happy hacking! :-)

Hal-info and Xorg

Lately I’m working on a project at work about installing and setting up a custom Linux distro in a small box (VIA EPIA Mini-ITX) with different touchscreens. Differences because there are going to be several of those box and some will be with one touchscreen and some with other.

The real goal is to run on those little boxes just a X with a java application other group have made. I can’t tell so much about the project because the contract say so… Anyway, that’s interesting stuff to do :-)

My first thought was to use Moblin, a project I’ve already posted about. This project is designed for those kind of products, have a few sets of funcionalities over small distro base and it has a GUI application for building the distro in different formats and even try out via kvm.

All this sounds really cool to me. I knew the project from time ago, but I didn’t pay enough attention to the project (I wanted, but I didn’t find the moment before), so this was good excuse to have a closer look to the project.

The project is nice, with a lot of cool features and a lot of potential, but, actually, it didn’t fit well with my needs. I got to much troubles to get working a very basic Ubuntu based distro where to run the Xorg and the Java application. But now I’m working on fixing some bug and improve the system a bit…

But I needed to finish my tasks, so I took a different approach. Ubuntu Mobile, which was before with Moblin, now they go by their own (or kind of). They got some images already built so I download one and I started to clean things and installing what I needed.

Now we got the distro and the application running, but we’ve still some issues. The worst thing was to set up the Xorg with the Chrome C9 graphic card. We installed first a Ubuntu 8.04 (lpia) based distro and the graphic card didn’t work out the box. But on the Intrepid (Ubunu 8.10) version we got the last openchrome driver, so it did work :-)

If some one is interesting on make it works on Hardy or another distro which has not the last version, we followed a easy good recipe from Ubuntu docs.

But on Intrepid we found some probles with this driver. The first one wasn’t actually this driver’s issue, it was Xorg’s. I mean, I realized on Intrepid Xorg use Hal and hal-info to for setting up itself.

I tried as a fool to configure the Xorg config file on the old fashion way (dpkg-reconfigure xserver-xorg), but the file was still empty…

After googling for a while and read some hal specs, docs and examples I learn a lot a bout hal-info. This is actually a really good stuff.Richard Hughes with his post about it open my eyes about Hal, which I’ve already known but I didn’t know its potential. Which is huge, I think.

If you are interesting on, here you have the git repository:

[via web]

http://cgit.freedesktop.org/hal-info

[cloning the branch]

git clone git://anongit.freedesktop.org/git/hal-info

I have to use this hal-info thing to let hal setting up the touchscreens properly, because, by default the cursor goes crazy. Don’t worry, I’ll post the quirks and the things I’ll learn when I finish the work :-)

BTW, more interesting stuff here, on quirks docs:

http://people.freedesktop.org/~hughsient/quirk/index.html

Enjoy Hal and hal-info :-)

bad weather, but still parkour

As I told you on a previous post, I’m starting to practice parkour, thanks to one friend who really pratices this from time ago.

But now the weather is quiet bad. Ar east for me, at least for practicing parkour. It’s kind of dangerous to jump and run over wet floors, steps, walls, and so.

We were about to go out to run on weekend, but was rainning, so we didn’t. I was with some friends in a funky concert, which was also fun, so wasn’t bad weekend after all ;-)

Funk gruop called La Mula
Funk group called La Mula

Anyways, I was reading info about parkour. Techniques, trainings, moves and so. And also watching lots of videos and movies to learn the flow.

I watch movies like District 13, a not very remarkable action movie, but for the moves and runs of David Belle, known for being one of the father of parkour. The guy is really amazing…

And I found stuff to read on Parkourpedia, from where I got some pdfs with good stuff about techniques and how to start. Nice :-)

The good thing of parkour is that you can practice anywhere and when you start to feel the philosophy behind the discipline, you see all the places and things as part of your playground. So you beginning to see the obstacles, not as so, but as things you can overcome and ways to pass through :-)

Ok, I just start, but it’s not very different of the free and urban climb I used to do time ago. I still remember that time where I wasn’t seeing walls, but ways to climb up, neither buildings, but things and place where climb around… I use to feel free on those moments… Really zen moments :-)

The next week I go to Gran Canaria (my real place :-) ) and I guess there will be a better weather and I will practice more.

Anyways, even today, when I was frozen waiting fro the train to come home from work, I was playing some moves to work out my balance and precision (and, actually, to keep me a bit more warm…).

Well, I’ll tell you my progress and things I learn. I hope you enjoy as much I do :)

Why just one DVCS?

There are a lots of flame wars out there about the best DVCS (Distributed version control system), like others (IMHO) ego wars (KDE vs GNOME, VIM vs EMACS, etc). There are very good options like git, mercurial, bazaar or darcs and many people (as GNOME is doing right now with all the survey thing).

Even in my company, we were (actually, we’re already) discussing about the right one for our day by day at work. We’re almost sure to adopt a good dvcs is better than our well known Subversion, but we don’t know the best option.

We could follow the typical technical reasons people usually does, but we must also pay attention to other (more practical) reason. For example, we develop linux distributions (mostly) based on Ubuntu, so that tell us we should use bazaar to make easy clones, branches, merges and any kind of tasks in order to collaborate.

But, in other hand, we work with rails. Rails and projects around use git intensively, so makes sense to use git as well.

And we also work with other projects which still use subversion or even others systems.

After think about the best possibility it’s clear for me that choose just one makes no sense at all. We can choose one for working internally, but we’ll still have to deal with with other system we work or collaborate with.

Our major project is the technical level and background of the people here is very heterogeneous. We got very geek guys and people who just got out from the university and don’t know to much about real life tools…

So, we need something with learning curve small enough to normal people could just use the dvcs and good enough to use in professional projects.

But I really think the best way, at last, is to learn the basics of each one (of the most common ones), use internally just a good one, but bring to the people the way to use whatever they want or need for each project. I think John is right about that… why to choose for the people? Let’s people decide by themselves.

I was talking with Alberto about this and we agree (didn’t we? :-P) that to have a kind of interface which makes abstraction about which dvcs is below and gives us compatibility between them, probably is better than try to push people to one or another system just because we think is the best.

There ar to much big (and little ones) projects which have already chosen git, bazaar, mercurial or other and are very happy with their decision to just change because someone say so…

I don’t think to expect that is very realistic…

I know this is possible and we as open source and free software people doing all the time: make open standards, communication APIs, and abstractions layers. I don’t see more complex than a lot of projects (GNOME itself) does al the time.

I think I will sum myself to the John’s count he is meaning to do something similar :-)

Hello Planet Gnome

Hi GNOME lovers! :-)

Finally I arrived on this planet. The one I follow and enjoy every day.

I’ve just came by to say hello and thanks you all the time you share with us, the people who are no so hacker and no so good writer, but who enjoy and learn every day thanks to you.

I’m planning to post about distros (Debian or Ubuntu based mostly), GNOME, moblin, DVCS and any sort of free software stuff which cross my mind. Well, I like to share a new activity I’m trying: parkour, with you. So, if you are interested on those subjects, you’ll be welcome to be around.

Also I like to say I’m not good English writer, so I apologize if your eyes cry blood because of my mistakes. Feel free to tell me when I’m wrong.

Thanks guys. See you soon :-)

Mercurial 1.1 is out

2 day ago was released the last version of Mercurial (HG). The changes look great :-)

Some changes:

General:

  • Added ‘resolve’ command for better tracking of in-progress merges
  • Several speedups for status and diff commands (especially on Windows)
  • Some modules have been rewritten in C for greater speed
  • Compatibility with Python 2.6 2
  • Add some buffering to the templater
  • Better documentation on git diffs

    Web interface:

    • Add a canvas-based repository graph
    • New and improved hgweb themes: paper, coal and monoblue
    • paper is now the new default style; the old default is now called ‘spartan’
    • Better WSGI compliance
    • Collections now show nested repos (best used without a checkout)
    • diffs are more sensible, follow diff.git settings
    • Better alternative for repository collections

      Commands:

      • resolve: new command to help keep track of merges
      • merge: only implicitly select same-branch heads
      • export: append instead of overwrite when exporting multiple changesets
      • bundle: added support for different compression types
      • rollback: clean up empty files
      • tag: without a checkout, use tip as the tagging revision’s parent
      • log: allow searching by user (with -u)

        Extensions:

        • rebase: new extension to support rebasing changesets
        • bookmarks: new extension to provide (local-only) git-like branches
        • zeroconf: new extension to support publishing repositories through Zeroconf/Bonjour
        • convert: added support for conversion from bzr repositories
        • color:
          • add colorization of diffs
          • add –color options to many commands
        • bugzilla: added support for Bugzilla 3.0

        See the full Release Notes for more info.

        BTW, we’ve just created a public personal (and for groups and free software projects) mercurial repositories at Emergya (at last!) :-)

        Here mine with some silly repos:

        http://hg.emergya.info/~jojeda

        Enjoy! ;-)

        Moblin – Linux on mobile devices

        I found this project (I did remember to have read about it before, but I didn’t pay so much attention) browser into the o-hands‘ website. I use to check each some time their projects, I like them :-)

        Well, moblin is an interesting project from Intel, defined by them as:

        “Moblin’s architecture is designed to support multiple platforms, such as Netbooks and Mobile Internet Devices (MIDs), and various embedded usage models, such as In-Vehicle Infotainment (IVI) systems. Most of the software stack is a platform and usage model-independent layer we call “Moblin Foundations,” that provides one uniform way to develop applications for such usage models. Below the Moblin Foundations layer are the Linux Kernel and device drivers specific to the platform. On top of the Moblin Foundations layer are the specific applications, user interfaces, and user interaction models for the target device.”

        Actually they have a lot of work done about different parts of a Linux distribution for mobile devices. No just for the intel processors ones, but other small devices.

        They have tools for building the distro (with pyGtk UI), user interfaces based on clutter, support for fedora and ubuntu based distros and some stuff more.

        I more interesting on the user interface thing (I use to think and chat a lot with my good friend Alberto about better user experience) and the building system. The building system is called moblin-image-creator (a.k.a. MIC).

        I’m very interesting on this MIC because I know well the building systems (I wrote myself some before. For Metadistros, Guadalinex, etc) and I was working with the ones from Debian, Ubuntu, Knoppix, Morphix, Linux-Live and more. I like that stuff.

        And it pretty interesting this one and his approach, so I like to help as much I can. By now I just send some patches which fixed some minor (but some times blocker) bugs and I’m doing the Spanish translation for the GUI. But I think the system need some improvement and some help the go smooth.

        I’m trying to use it for a project at work, that’s why now I become more interested on it. I need to set up a very small distro for a small VIA processor device. I just meet to run a Java (with GUI) application there, so I tried to fit into the distro the less software is possible to run over the X the java application.

        I got some problems with the MIC building that distro, because there was some issues with Ubuntu based distros, with virtualisation (I haven’t before the machine, so I had to run on kvm the images for testing) and some more. But I fix some of them and I’ll trying to fix the other as soon as posible (I need it for my project).

        But, actually, I’m using MIC and working on it, no just for my work’s project, but because I like the project :-) I see it interesting and with a lot of posibilities and I like to bring the experience I’ve adquired during all these years to help the project.

        I hope I can find time enough for that… :-/

        Well, I got my bugzilla account, I join in the project, in the mail list, I create my git clone of the their repo to work in the project easily, so I’m ready to fight :-)

        Anyone else? ;-)