GNU FisicaLab 0.3.5

I’m glad to announce the release of version 0.3.5 of GNU FisicaLab, this is a feature release. FisicaLab (can be pronounced as PhysicsLab) is an educational application to solve physics problems. Its main objective is let the user to focus in physics concepts, leaving aside the mathematical details

In this version I added a module to handle tables of properties, for the moment this only handle properties for water, but is the base for future modules of thermodynamics and fluids. This took more time that I thought, but now is ready. So now there is a new entry at menu that launch a window where you can calculate the properties of water (saturated, compressed and superheated). I also fix some bugs:

  • Correction of a bug in the module dynamics of points, due to a bad set of equations. This causes that some problems can be solved with some parameters, but not with others.
  • Fixed two problems with the contextual menu of conversions.
  • Minor changes for compatibility with Windows platform. So now FisicaLab have the same behavior on this platform.

This new version is also available as a binary package for GNU/Linux i686 and for GNU/Linux x86_64. There is also a self contained installer for Windows and a source tarball for Mac OS X. I didn’t tested this package since I don’t have a Mac. But in theory should work.

Remember that the documentation is now on line. And in addition I added some videos here. For the moment these are available only in English. And, beforehand, apologies if you don’t understand my English :)

I also want to thank the people who have donated to the project. In this version the first time you launch FisicaLab it will display a window with a brief description of FisicaLab where we encourage you to donate to the project.

So enjoy FisicaLab and if you have feedback or find bugs, use the corresponding mailing lists.

FisicaLab update

Well, I just want to share the progress in the development of FisicaLab. As you know I want a module for thermodynamics in version 0.4.0. This means that FisicaLab needs the ability to handle data from steam tables. However, find the data in an easy format (an spreadsheet for example) was not possible. I found PDF format, which is not easy to translate to a spreadsheet, or Excel programs only for Windows and payed. Anyway after some hard work, I have the steam tables for water into FisicaLab. The new class “TablesManager” is the responsible to get the data from these tables. To test this class I added a “Properties” window that lets calculate the properties after enter some data. For the moment only the saturation data are available. But I will add the ability to get “compressed/superheated” data at next days. Of course, not only water will be available. Here an screenshot of this new window, that will be available under the new item menu “Tools”:


Remember FisicaLab is free software and that you can support its development with a donation in PayPal, Flattr or Gratipay.

FisicaLab’s new icon


I started the development of version 0.4.0 of FisicaLab. And what better to start with a new icon. I’m not a graphical designer, so I wanted keep this simple. To start I used one of the icons at module of dynamics of circular motion, the icon of final system. The three particles and the lines (I think these are called “kinetic lines” in comics, but I’m not sure) represent a system in movement. The “f” is not only for FisicaLab but also for “final state of the system”.

I will keep you informed about the progress in this new version. Remember you can support FisicaLab trough: Paypal, Flattr or Gittip.

First steps with Liberty-Eiffel


Well, after the release of Liberty-Eiffel as part of GNU I’m giving my first steps with Eiffel language. Some years ago I tried this language, but unfortunately I don’t found documentation in spanish. Now that I can read english, I will give me a try with this language. And, of course, I will also write spanish tutorials for upcoming users :)

The first thing I notice is a different terminology. An executable is called system and a set of classes is refereed as universe. The classes can be grouped in clusters into the universe. And the routines (operations) of a class, and its attributes, are called features. The routines are divided in functions or queries (which return a value) and procedures (which do not return a value). As opposed to C language, where we need a function named main, on Eiffel we can designate any procedure to start the execution.

But let start looking the example “Hello World!” that comes in the source tarball. First install Liberty-Eiffel, in my case I have the deb packages from Snapshots, because the stable packages for i386 are broken. The example is this, from — to the end of the lines are comments (I removed the original comments, but add others for explanation):


{ANY} mean that any other class can call this routine. In Eiffel we can limit the calls from certain classes. io is a class for input/output and the routine put_string write a message at default output. The source tarball, at work/eiffel.el, provide a major mode for Emacs. Save this program in a file with the name hello_world.e and compile this with:

se compile hello_world.e -o hello

In Eiffel is recommended have one class per file. The name of class capitalized and the name of the corresponding file in lowercase. Now run the executable:

Hello World.

Clap clap, our first program with Eiffel.

OK, here happened something magic. We don’t set any routine as the initial to start the execution. Liberty-Eiffel don’t implement 100% the ECMA standard in which, if the initial routine isn’t specified, is assumed it has the name make. So, I suppose in Liberty-Eiffel it is assumed to have the name main. But go ahead, Liberty use ACE files with the same purpose of makefiles in other languages. This is our ACE file for this example:


Again, from — to the end of the lines are comments. In cluster section there are two lines. The current directory, where is our file hello_world.e, and the paths of Liberty libraries, defined in Save this file in the same directory of our source file, and with the extension ace, for example hello.ace: Now you can compile the program with:

se compile hello.ace

To clean the compile products, except the executable, use:

se clean *.e

And that is all for now. In next posts I will share other examples while I learn this interesting language. Regards :)

Configuring GNUstep

I made a small video to show how configure GNUstep in desktops other than WindowMaker. However the official website of GNUstep changed the same day I uploaded this video. So, the instructions are slightly different. You can found the themes at GNUstep Wiki, but the link to the wiki is now at External option in top menu, not at right side as show the video. In this I use the application SystemPreferences, but all these changes can be done in a terminal using the tool defaults. For example, I use this tool to change the configuration automatically when I switch from WindowMaker to Gnome, or vice versa. With this you will see how easy is configure GNUstep in other desktops. Click the image to see the video:

Configuring GNUstep