Showing posts with label Openismus. Show all posts
Showing posts with label Openismus. Show all posts

30 November, 2011

Autotools Project Manager, part 5: [current status MERGED]

After all the work, I can already announce and celebrate, that the plugin for giving Qt Creator support for autotools projects, has been merged today into Qt Creator! I could not have finished my time at Openismus GmbH and series of posts related to the plugin in a better way. I am very happy of the result and hope it will be helpful for those who love autotools. Enjoy and see you soon!


18 November, 2011

Cheese Architecture

During the process of trying to understand the internals of Cheese and together with Dave, we created a diagram that I rewrote in dot language and which I think will be very useful for all of those who want to start contributing to the project or are simply curious about it. It took us some time to put the pieces together, but here is the result!

Created using Graphviz.

Did I mention before that I love Graphviz? It is so, but on this occasion it took me a while to get the layout and the legend the way that I wanted. In order to reorder the subgraphs (each of the external boxes: UI, libcheese, libcheese_gtk, System and Legend), I needed to create some transparent nodes and connections to lie to the rank system that dot uses. You can check out the code on my GitHub repository for more details.

The diagram will be available as part of the Cheese documentation for the next 3.3.2 release, coming out next Monday the 21st of November. 

Enjoy!

17 November, 2011

Embracing the changes

Right now I am writing from what is still my bedroom, and my bed. If you had a look around, you could see 7 boxes full of books, clothes, gadgets, things that I need, things that I do not need at all but I feel stupidly attached to. All of them sum up my almost 4 years abroad, not that I can put all the great people that I got to know along the way into my boxes. Those, I keep in my memories and my heart. I just ask myself, how much stuff is a person able to collect in such a short period of time??

These last years have been full of good, and also bad, moments and cherished people. I can say that I learnt something new every day, lived in 7 different places, learned a new language, worked in different companies… It was a great and long adventure, a precious piece of my life, also with big emotional costs, but still, just a part of the adventure. And like every good story, and as Freddie Mercury said, "the show must go on", and my show is just starting!

The destination of these 7 boxes is Gran Canaria; it is also mine. I am moving back home for now and I am really excited about all the new things that are awaiting me in the future. My time at Openismus has come to an end, and therefore, I will have time now to finish my studies—something I really wanted to do a long time ago. I also have the honour to say and re-announce, that I have been selected as one of the interns for the GNOME Outreach Program for Women! This means, that you will still keep on hearing from me! I have been very lucky, I must say, and will be mentored by David King to work on the Cheese project. I cannot wait to start!

01 September, 2011

Autotools Project Manager, part 3: The Merge Request

During the Desktop Summit 2011, I had the chance to meet some of the guys working on the Qt Creator (QTC) team. I took advantage of this opportunity and talked to them about the AutotoolsProjectManager plugin. After some discussion, among other things about the lack of available documentation and the intention of making a merge request (MR), I was invited to visit the Nokia office in Berlin. So, last week, I had a very interesting and productive evening there and got to talk to some of the developers, Tobias Hunger, Daniel Molkentin and Oswald Buddenhagen, as well as to Leena Miettinen (in charge of the Qt tools documentation), all of who I have to thank for their patience and the time they took to help me. After the visit and their great advice, I had some homework to do (fix some code style issues, add the documentation and code completion…) to get the plugin prepared for the MR. Now, it is finally available in gitorious, waiting to be reviewed by the QTC team! Let's keep fingers crossed!

05 August, 2011

Autotools Project Manager, part 2: The Plugin.

During the last past weeks, as I already announced and as part of my trainee program at Openismus GmbH, I have been working on a plugin for autotools support to be used with Qt Creator. The project is still in an early state of development, but already offers some nice features and is ready for its first release.



What can the plugin do?
  • Load an autotools project and work with it in QTC.
  • Syntax highlighting for Makefile.am files.
  • Automatic project tree update if the Makefile.am or configure.ac file is changed.
  • Configuration of build steps (autogen, autoreconf, make and configure).
  • Build and run an autotools project from within QTC.
  • Automatic code completion.
Some ideas for the future:
  • Add syntax highlighting for the configure.ac file.
  • Detect whether autogen.sh runs configure, and allow the user to configure that, to avoid a second configure run.
  • Improve the parser. Autotools can generate several/different types of binares, libraries or other kind of targets. The current parser, checks for bin_PROGRAM binaries. If the output produces one of them, the parsing will be successful, if there are more, the parsing will not be successful. This should be changed to a more *Anjuta like* Makefile.am parsing style, which takes into account the existence of multiple outputs among other complex things. In the meantime, and as a suggestion of the Qt Creator's developers, I am using a ProjectExplorer::CustomExecutableRunConfiguration, which allows the user to choose which executable he/she wants to run, in case there is any.
How to use the plugin:
  • Download the project from gitorious.
  • Follow the README file for installation instructions.
  • See that the plugin is recognized and loaded by Qt-Creator, by selecting Help -> About Plugins in QTC. The AutotoolsProjectManager plugin should be listed as part of the Build System plugins.
  • Open an autotools project in Qt-Creator, using File -> Open File or Project... In the prompted dialog-box, select the Makefile.am from your project. This is the only way a user can use the autotools plugin. Thus, a Makefile.am must always exist before hand. 
  • The first time an autotools project is opened with Qt-Creator, a dialog-box pops up and the user will be able to select the build directory. Qt-Creator then puts a .user file in the directory so it doesn't need to ask again. Only in-source building is working right now.
  • After clicking on the Finish button of the Autotools Wizard, Qt-Creator should show the project's tree structure at the left side hand. The root node should show the project name and all project files should be listed and editable from there. 
  • At this point, building and running the application should work. This will execute autogen.sh or autoreconf, configure and make. The first time, when running the application, a dialog will ask you to choose the executable's location, then, QTC will remember it for the following times. Ideally, this will be changed in the future, to be done in a more automated way.
  • When selecting Projects->Build Settings from Qt-Creator on the left side bar, notice the typical autotools build steps (autogen.sh/autoreconf, configure, make). You may configure some parameters such as adding new configure parameters or changing the build directory (though, as I mentiond before, only in-source building is working at the moment).
As always, all comments and feedback is very welcome. Have fun!

28 July, 2011

Autotools Project Manager, part 1: Understanding QtCreator's Project Explorer

It has already been more than one year since Peter Penz created a plugin for autotools support to be used with Qt Creator. In the meantime, Qt Creator developers have been busy, and having fun, rewriting several parts of the code, which, on the one hand, leads to nicer, improved interfaces, but on the other hand, to API breaks. So, it was time to "update" (redo) his work, and this is what I am currently working on.

For a trainee with a year’s experience, this is a more than challenging task: no experience developing for Qt Creator or with plugins, nor much experience with autotools, no documentation at all... In the beginning, I did not know how to start, nor if I could actually get something done at all, but then, with the help of the wisdom and patience of Peter Penz, David King and some of the Qt Creator guys, Tobias Hunger and Daniel Molkentin, things started to develop.

There is no documentation on how to develop a plugin for Qt Creator, so I had to spend a lot of time reading Qt Creator's code, in order to understand which bits I would need and how they were related. As I already said, this was very time consuming, so I have decided to write a series of posts, of which this is the first, to share what I learnt with you, and maybe save you some time in the future. As always, this is not meant to be a guide or tutorial; this is just what I did and how I understood it. I would be happy if this helps you deal with the huge monster that is Qt Creator, or even if I get some feedback on things which might be wrong :)).

Understanding some basics:
Qt Creator is a plugin loader and all its functionality is implemented in plugins. A very basic Qt Creator plugin has three different parts:
  1. .pro file, which is the project file.
  2. .pluginspec.in file, that provides some information about the plugin.
  3. projectplugin files, with the implementation of the ExtensionSystem::IPlugin interface in a class.
Also, to give support for a new project type — in our case, the autotools project — we need to implement some interfaces in the ProjectExplorer plugin, which is what I am going to focus on in this post.

The ProjectExplorer plugin
The ProjectExplorer plugin is a set of classes and interfaces that make up the project management system in Qt Creator. Its architecture is detailed in the chart, and explained in the following lines:


The Project (ProjectExplorer::Project) is the whole project itself, and it is always associated with a MIME type (specified in an .mimetypes.xml file), which defines the kind of file the project will be indentifed by, when the project is opened in Qt Creator.

The ProjectExplorer::Project class loads the project and embeds it into the QtCreator project tree. Every project supports one or more Targets (ProjectExplorer::Target), which are the target environments for which the developer wants to build the project (desktop, Symbian devices and
MeeGo, among others).

A Target can have several BuildConfigurations (ProjectExplorer::BuildConfiguration), DeployConfigurations (ProjectExplorer::DeployConfiguration) and RunConfigurations (ProjectExplorer::RunConfigurations).

A BuildConfiguration (for example, release or debug) represents all that is needed to build the project for the target. Each BuildConfiguration currently has two BuildStepLists (ProjectExplorer::BuildStepList), which are a set of instructions to run. The first list is used to build, and the second one to clean up. The BuildStepLists contain BuildSteps (ProjectExplorer::BuildStep), which are the steps that need to be executed ("make", "make clean", etc.).

A DeployConfiguration contains a BuildStepList, and is used to deploy the aforementioned BuildConfiguration output into the right place for later execution by the RunConfiguration.

A RunConfiguration defines what needs to be run: usually the program that was built before. It could also be some set of unit tests, a script, some existing application which is used to test a library that was just built, etc.

You can also get an overview of what a generic plugin should implement by looking at the genericprojectmanager plugin example in the qt-creator/src/plugins/genericprojectmanager directory.

Have fun!

    07 December, 2010

    GNOME Development Documentation and Tools Hackfest 2010.

    I spent the last 4 days attending the Gnome Development Documentation and Tools Hackfest, which was held at Openismus offices in Berlin. The venue was just the most convenient for the event, since with such weather (-15ºC one of the days), the days turned to be very productive... no one wanted to spend much time outside!.

    Almost all the attendees arrived during Wednesday evening and to compensate their (most of them) long journeys, we had a great dinner at the Massai's African restaurant (courtesy of Openismus). Hard work started the day after.

    We spent almost one day trying to make an agenda with the topics we would like to cover during the hackfest and finally focused on two main themes, the "GNOME developer platform" and the "developer stories" or put another way, "who is going to use GNOME and what for?". After this, we did some brainstorming on the way we wanted to make this possible and some ideas came out.

    First, we realized after some discussion, that most of the people find it difficult to know how to get started working on GNOME, so one of the agreement points from the very beginning, was that a platform overview needs to be done. Here, questions such as 'where is 'x'?' and 'what is 'x' for?', among others, would be answered. We also want to do this in a way that is attractive for getting developers involved and convince managers that GNOME makes the difference. After some more discussion and work, the idea took form and now you can already see the results in the form of a screenshot.

    An other idea that we decided to put into practice, was the initiative of writing  ten-minute introduction tutorials for various GNOME technologies (first in five target languages: C, C++, Python, Vala and Javascript) in order to show what kind of easy and amazing things one is able to do in a lunch break time period. I was involved in this team and my task was to create a very small simple image viewer GTK+ application in the C language (the tutorial is coming soon). For writing the documentation, we decided to use Mallard, so Schaun gave us a small and very useful introduction on it. You can see all the mini applications and some of the tutorials in the GNOME git repository. Please note that they haven’t been fully reviewed yet.

    The hackfest went very nicely and the desire of being collaborative and helpful was present during the whole event. I am happy I was there and had the chance to meet all these people and be useful in a way. Thanks to everybody for comming, as well as to those who read in the planet GNOME that we were meeting, and just appeared by own iniciative in the office and joined us, like Konstantine or Clemens, which might join us at the Desktop Summit 2011 with some cool design thinking workshop again!!

    01 December, 2010

    MeeGo and The MeeGo Conference 2010.

    I was at the MeeGo Conference in Dublin. We were very busy from the first minute we arrived there until the last day we came back, and it was pretty productive.


    But, what is MeeGo?
    For those of you who do not know about MeeGo (taken from the Meego project Website):
    "MeeGo is an open source, Linux project which brings together the Moblin project, headed up by Intel, and Maemo, by Nokia, into a single open source activity. MeeGo integrates the experience and skills of two significant development ecosystems, versed in communications and computing technologies. The MeeGo project believes these two pillars form the technical foundations for next generation platforms and usages in the mobile and device platforms space."

    What was the conference about? 
    Sunday:
    We arrived at the airport and went straight to the hotel, where we left all our stuff. Then, we decided to go for a walk to the center and try some Irish specialities. The center of Dublin is quite lovely!

    Back to the hotel, we decided to go to the Aviva Stadium, where the conference was taking place (yes, in such an unusual and great location). There was a lot of work to be done before everything was prepared for the next day, so we helped a bit on this before we all went to bed.

    Monday:
    We started the day having a great Irish breakfast all together at the hotel and then went straight to the Stadium.

    The whole morning was busy with Keynotes where AMD announced that it was joining the The Linux Foundation’s MeeGo project, and Intel announced that all Meego Conference's attendees would get a Lenovo s10-3t tablet netbook.

    In the early evening I attended some different talks. I started with "Meego Infrastructure", where OBS (openSUSE build service) was introduced and followed with "Meego on BeagleBoard", which was interesting but I missed some practical or "in use" example. Afterwards, I went to some other talks about learning from past mistakes and designing Meego apps (which were not really focused on Meego).

    In the evening, after a nice reception organized by Novell and doing some networking, the whole Openismus' crew went out together for dinner.

    Tuesday:
    We woke up very early to avoid the crowd and got tickets for the football match (Ireland vs. Norway) on Wednesday evening (courtesy of the organisation as well). We got those very easily but for the netbooks we had to stay in the queue a little bit longer. Once we got them , the organization gave us a pendrive with Meego OS on it, for a "do it yourself" installation·. I must admit, that I was kind of surprised when I turned the netbook on and saw that Windows 7 was installed on it... I would have expected some Open Source OS at least.

    Some hours later, I got to know a Nokia representative who I talked with, about the new Qt mini project I am currently working on. Showing interest on it, he gave me an N900 in order to test on the device. What a day of presents!

    I spent the rest of the day attending different talks. The ones I especially enjoyed were those based on designing apps for Meego devices and the ones focused on OBS, for instance, "Rolling your first package in the openSUSE Build Service (OBS)".

    To finish  the day, a party at the Guinness Storehouse was organized for the evening.

    Wednesday:
    This was an unconferenced day, so anybody who wanted to give a talk, could book his/her slot on a public board and just present it. The most interesting talk of the day was definitely LibreOffice's talk.

    We spent the rest of the evening in the football match, well, I spent just the first part of the game watching it. Since I am not a football fan, I decided to spend the rest of the time inside chatting with some people. Norway won!

    What did I learn and what are my impressions?
    Although this is a very young project and there is still much work to be done, I had a good impression about the way it is developing and the whole infrastructure and organization behind it.

    From the conference, I can say that there is a positive feeling and collaboratively-working community surrounding this new born and helping to make it grow strong. It fed more than enough attendees's curiosity concerning Qt Quick and OBS as well, the two star technologies in this project. Since MeeGo targets a wide variety of devices, they need very flexible developing technologies supporting them, and therefore,  a large number of talks were focused on this two subjects.

    I am very optimistic about this. Let's stay with our eyes wide open observing and contributing to make this baby grow up healthy!

    Interesting links:
    MeeGo Conference session videos.
    MeeGo Conference 2011.

    08 November, 2010

    GHangtuxmm.


    As I wrote in one of my previous posts, I have been working on the  conversion of GHangtux to GHangtuxmm, or in other words, on the conversion from C/GTK+ to C++/gtkmm.

    For those of you who do not know about gtkmm (taken from the gtkmm project website): 
    "gtkmm is the official C++ interface for the popular GUI library GTK+. Highlights include typesafe callbacks, and a comprehensive set of widgets that are easily extensible via inheritance. You can create user interfaces either in code or with the Glade User Interface designer, using Gtk::Builder. There's extensive documentation, including API reference and a tutorial. 

    gtkmm is free software distributed under the GNU Library General Public License (LGPL).

    gtkmm follows the official GNOME Platform Bindings release schedule. This guarantees API/ABI-stability and new releases on a predictable schedule, delivering C++ API for the underlying GTK+ and GNOME APIs as soon as possible." (from gtkmm project's website).

    This has been fun again. Working on the project made me realize how laborious it can be to:
        - learn C++. What a monster!. This is all about experience, so my hope is that one day I will be the monster here, the C++ monster ;-).
        - convert an app that you have already developed into another language. The appropriate word here would actually be "rewrite" and not "convert", since you have to consider it as an entirely new project. Forget about what you did and focus on the new structure and libraries. This is a new project!
        - have a nice history in your repository... This takes practice, practice and more practice.

    I am happy with the results so far although improvements are still being made. You can find and follow the project on GitHub where all comments and merge requests are welcome. Do not hesitate to do this.

    Thanks for reading!

    18 October, 2010

    Back from "Qt Developer Days 2010".

    As I said in my previous post, I spent last week in Munich attending the "Qt Developer Days" and it was pretty interesting. 

    Monday:
    Was focused on training, so as newbie in the Qt world that I am, I attended the Essential's track which gave me an overview on the topic and woke up my interest in the language even more. I just found Qt Creator a fascinating tool together with the integration of Qt Designer. Qt Assistant and its brilliant examples is not less in this family. 

    Tuesday and Wednesday:
    I was able to attend the technical track. From all the talks, the ones that definitely captivated my attention, were those based on Qt Quick. Qt Quick (Qt User Interface Creation Kit) is a technology for creating UI's in a very fast way, using the declarative language QML, which allows the developer the usage of Javascript too. It is very useful for creating prototypes specially, although Mobile apps, and small desktop ones are a goal of this technology too. I am not sure if complex desktop applications are, but let's keep our eyes wide open...

    Not all was learning and working. We managed to enjoy some food, beer and music from the area at Donisl's and on Wednesday evening, we managed to meet Murray for dinner and have a look to the Munich offices. Very nice!!

    This week I will start my new mini-project on Qt and post about it very soon.

    Thanks for reading!

    06 October, 2010

    Qt Developer Days 2010.



    Next week I will be in Munich for the "Qt Developer Days". I will be attending the "Qt Essentials"  track and I presume it is going to be quite interesting and one of the best ways for doing my first steps in the Qt world. I am very happy that Murray asked us to go.

    I will post again when I am back!.

    01 September, 2010

    Moving on to gtkmm

    I have spent the last weeks trying to improve some parts of GHangtux. One of the improvements (the more obvious and complicated one), came with the code restructuring.

    BEFORE, all the code was divided in three different files:
    - main.c: all code for the program except for the keyboard widget.
    - keyboard.c/.h: keyboard widget code.

    This structure made the code easy to read at the very beginning, but was obviously a bad idea for the long term. Actually, you should always divide your program in small modules although you think is going to be a very tiny one. It might be now, but who knows what is going to happen in the future. Also, you help to make this code reusable for other programs or programmers. So, mental note: always use modular code from the beginning!.

    NOW, the code is divided in ten different files:
    - ghangtux.c/.h: main program and definition of main structures.
    - ghangtux_ui.c/.h: user interface.
    - ghangtux_management.c/.h: functions for game management.
    - ghangtux_utils.c/.h: auxiliary functions.
    - ghangtux_keyboard.c/.h: keyboard widget.

    After all the new code structure was ready, I decided to set up GTK-Doc to document GHangtux in a proper way (still need to finish commenting the functions), which brought me to the eternal discussion "recursive or non recursive Makefiles?". GTK-Doc documentation gave me the impression that I HAD to use recursive make with no explanation and no other chance. After some research and discussing about it with Dave, we found the way to do it "my way", that means: non recursive. You can read Peter Miller's excellent paper to learn why recursive make invocations are both slow and error-prone.

    Happy with the results so far, I moved on to "convert GHangtux" to gtkmm, so now I am busy reading "Accelerated C++" and "Effective C++". Let's wait for the magic to happen soon ;).

    Take care!

    18 August, 2010

    I was at GUADEC 2010

    This year was my first time at GUADEC, and it was just great. I have got to chat to people involved in the GNOME shell, usability and accessibility programs and got in touch with the members of the "Gnome Women"  group as well. But not everything was chatting and socializing. I attended several interesting talks as well: clutter, state of union, GNOME shell... and joined a very handy workshop about "Design thinking" by the hand of the Invented Here guys. Pheeww, I am still trying to process all the new information!.

    Back to chatting and socializing, more fun came at the evenings with the Canonical Party (first GUADEC where people danced I have heard), Collabora barbecue and the hackfest at Revelation Space.

    Big news during GUADEC?
    -  The release of GNOME 3.0 have been pushed back to March 2011, but at the same time, The GNOME Project will ship GNOME 2.32 in September, along with a preview release of GNOME 3.0. Several distributions will ship GNOME 3.0 components that can be used for user previews or developer testing. 
    - An announcement was also made about the location for GUADEC 2011. Applause for Berlin this time!.

    This year the Openismus crewed surprised all attendants with our new "Sommer/Autumn 2010 T-shirts collection". All thanks Kat.

    I know..., envy is the word you are looking for ;). Hopefully I get the chance to go to GUADEC again next year.

    23 July, 2010

    GHangtux 1.0

    Wondering, what I have been doing the last few weeks?. GTK+ is the answer, GHangtux 1.0 the result, and since we all know that a picture is worth a thousand words I go just straight to the introductions: "World, this is GHangtux, GHangtux this is the world".


    What is GHangtux?
    GHangtux is a free program variation of the popular Hangman game. It has been designed for people of all ages and has a simple, easy-to-use interface.

    It provides a keyboard and a sentence/word to guess, whose theme, the player is able to select. Current themes are: films, objects and persons.

    During the game, a graphic sequence of tux images will be displayed, indicating the player how many attempts he/she has left. 

    How to "create life" from some code lines?
    1. Getting familiar with GTK+. As I wrote in the last post, I spent my first weeks at Openismus learning GTK+ and to put this into practice, I worked in a very small but helpful project. "Foundations of GTK+ Development" was very useful in this learning process and gave me a good base.

    2. Making and correcting mistakes. The next step was to learn about all those mistakes I made, to repeat them and to relearn from them again. This is part of every single step actually.

    3. Testing the new knowledge. After the first two steps, it seemed that I was prepare to start my first simple GTK+ application which is the very early version of the game.

    4. Creating a custom widget. After playing with GTK+ a few more weeks, I decided to create my own custom widget: the game's keyboard. For this step, I found Davyd Madeley's clock widget tutorial quite handy.

    5. Integration of the custom widget in the early version of GHangtux. This is the last version of the game. 

    What is coming next?
    - Internationalization with i18n.
    - More themes.
    - More image themes.
    - Shortcuts for the menus. 
    - Others: clutter, desktop files...

    "Side effects" of having developed GHangtux?
    - Learning Git and discovering how powerful this tool is.
    - Learning Autotools helped by Alexandre Duret-Lutz's tutorial, and some    Openismus manuals.
    - Practicing C.
    - Practicing Glade.
    - Programming style.
    - Improving my communication skills.

    You can follow the project under the repository in GitHub or download it in .tgz or .zip.  All comments are welcome, as are merge requests.

    Enjoy!

    14 June, 2010

    First weeks at Openismus

    Yay! Almost one month since the last time I wrote. I need to improve this :). There is a convincing excuse though. Since I started my job at Openismus, another evening full-time job came out: the search of my new apartment!. It seemed to be an easy task at the beginning, but now it just turned into a complicated competition. I have just realized that writing in your presentation e-mail that you have something to do with informatics may probably be not that popular. Being non-smoker seems to be another problem too.

    At last, things at work could not be better. During the first week we dedicated our time to install Fedora 13 in our computers. Apart from some issues with our keyboards concerning to the language layouts, everything went fine. We learnt to know as well, how the "internal communication system" here works and joined some lists to be up to date with all project's news. Then we started with jhbuild!. That was definitive lots of fun: is there anybody that run it without having to fix at last 2000 errors? ;). Thanks God or whoever, Chris, David and Saint Google were there for support. We actually learnt a lot.

    The second week started really good since we finished fixing the jhbuild's errors, and moved on to GTK+. I was busy with this till Thursday. On Friday and Saturday we went to the Linux Tag here in Berlin and attended a series of interesting talks about MeeGo, systemd, Google, Ubuntu and Gnome 3.0. The talks were interesting, but more business-orientated in general from my point of view. However, the best part of this kind of events are the "after-talk-times", where you get to know some people involved on different open source projects or people that work / worked in the same company you do and still did not know. Better chances of socialization came in the evenings with the barbecues at C-Base!.

    Well, now it is time I stop writing here and go on learning some GTK+, since I have to present some legible code today.

    See you soon!

    19 May, 2010

    CERN openlab summer students programme 2010

    I wake up and look through the window, the weather is OK, not that bad, not that good. I still do not have curtains because I moved for three months and did not have time to put them or had just better things to do (there are actually always better things to do than this). Next stop: the bathroom. There I wash my face. I go to the kitchen and start the kettle in order to make some tea for having breakfast. I turn on the radio to hear the news. I can not really hear the news with the noise of the kettle boiling the water. Water is ready and I prepare a cup of tea, for one, and to take away. I "take it away" back to my bedroom and turn my computer on in order to check my e-mails and read the news (I did not really pay attention to the ones on the radio, but I like to hear the sound on the background when I am at home, I love to listen to the radio). No remarkable news, no remarkable e-mails... wait.... what is this?. E-Mail topic: CERN openlab summer student programme 2010. I make click on the topic and a new screen shows the content of the e-mail: 

    "Dear Patricia,

    We are pleased to inform you that you have been selected as an openlab summer student 2010 [...]" 

    More good news for this year, however, at this point I was looking in another direction. I am just looking forward to start my trainee at Openismus on the first June.

    28 April, 2010

    Connecting dots till Openismus

    "[...] If I had never dropped out, I would have never dropped in on this calligraphy class, and personal computers might not have the wonderful typography that they do. Of course it was impossible to connect the dots looking forward when I was in college. But it was very, very clear looking backwards ten years later.

    Again, you can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in somethingyour gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life. [...]"
    Steve Jobs. 'You've got to find what you love'. Stanford Report, June 14, 2005.

    One day you wake up and something important that makes a great difference in your life happens. You do not know, but if you look backwards connecting dots in your life, you will realize that in the last years, the whole universe was conspiring to make it happen: learning a new language, deciding to stay in a foreign country, skills...This happens just a few times in life (if you are lucky) and are moments marked with a mental big red cross reminding you where your past ends and the new beginning starts. Moments that have the ability to make you redo your life: new city, new flat, new life... For me, this moment has the name Openismus and here is where I am going to be doing a trainee program for the next year. [Here's Murray's announcement]

    Joining the FSO in 2006, at the university where I did my studies , gave me the oportunity to introduce my self in a deepest way in the free software world. Since then, I had gotten interested in the dynamics of open source projects and now I am sure that I am in the rigth place for feeding this interest.

    Welcome on board to the beginning of your new life Patri!