The future of GST

I was talking with garnacho about the future of GST. The problem of the unidirectional communication between backend and frontend is more and more annoying. Garnacho thinks that it’s the moment to modernize GST. I totally agree.

There are two main goals:

  • Use D-BUS for the communication backend – frontend
  • Make a GObject wrapper for a libgst library

Our first task will be to do the perl bindings for D-BUS, because it seems that there are no bindings yet. Then we’ll be able to start working on the backends for providing a D-BUS service.

We’ll be able to do many things that we can’t with the current architecture, like send notifications from the backend to the frontend (for example when a removable network card is detached).

More information: http://live.gnome.org/SystemToolsBackends

I’m desiring to begin! 🙂

I needed a free day

In the last weeks I’ve been very busy doing some uni exercises that we have to do before doing the exams. I already have work to do, but today I’ve decided to take me the day as a free (in fact, I took me only the afternoon, because in the morning I was in class). What better way to spend a free day than hacking? Hehe, here is the result of my small free day

CPUFreq Applet

The new icons proposed by zioma have been accepted!!. I’ve uploaded them to CVS.

GST: The disks Tool

Because of the little time that I have, the disks tool development is going slowly. But I haven’t abandoned it. I’ve fixed an important bug in the scsi bus scanning. The scsi devices in which lun was greater than 0, were not detected.

I’m very happy to see Davyd talks about the disks tool in his GNOME 2.10 article.

I will continue with the uni exercises tomorrow. 🙂

A new CPUFreq Applet

Yes, I’ve just rewritten the cpufreq applet. There were some things that I wanted for the applet and I hadn’t done yet because it was necessary to change the current code design.

Some of them are:

  • The applet should be independent of the data access method. The applet should behave as a simple viewer, and it shouldn’t know the data access details. My solution is a monitor that will do the data access work and will give these data to the applet
  • The current applet is updated every second, even when there aren’t changes. I think it’s an error because most of the time, the cpu keeps the same frequency. With the new monitor it’s not the applet who is running every second, but the monitor. The monitor will get the data every second and will emit a signal when there are changes. The applet only has to listen for the signal for doing the update

I think that the advantages are evident . . .

I thought that the best way to do these things, it was an object oriented design. The monitor is an abstract class (CPUFreqMonitor) that has a child class for every possible monitor (CPUFreqMonitorProcs, CPUFreqMonitorSysfs, . . .). The applet only knows the CPUFreqMonitor class, so the methods for getting the data are virtual methods, polymorphic entities. In this way, we can add new monitors in the future (based on libcpufreq, HAL or whatever) by only writing a new class and without changing any line of code in the applet. We can even decide which monitor will be used at run time.

CPUFreq Applet UML
CPUFreq Applet new code design in UML

We have now an applet more efficient and extensible.

While I rewrote the code I also migrated from gnome_about to gtk_about and I did some code cleanups.

I haven’t committed yet, because I want to test it a little more. I think I will commit with the new icons, since nobody has said anything bad of them.

DVD support in disks-admin

Since I have now a DVD player in my new laptop, I decided to add support for DVD in disks-admin. It’s integrated with totem, so when a DVD video is detected you will be able to play it and totem will be launched.

DVD support in disks-admin
DVD support in disks-admin

I hope I can start with the fdisk feature as soon as possible

University

I’m enjoyed a lot doing a networks exercise. It’s a reduced version of the TCP protocol: Simple TCP (STCP). For the moment I only have to do the Open and Close functions, for establishing and closing connections. The main problem is that I have to do it in ADA. I have to do a big effort for not thinking in C.

GNOME hackers meeting

The next week will be the second GNOME hackers meeting. I’m going to present the disks tool again

Basketball :: San Pancracio Team

We have tomorrow the thrid match of the league. We have lost the first two matches, so we need to win this third one. I hope that our new pet (steve-o evil) give us good luck.

San Pancracio's pet
San Pancracio’s pet (steve-o evil)

Change the CPU frequency with GNOME CPUFreq Applet

A new GNOME CPUFreq Applet release is available for download

The most important new feature is the frequency selector. Although it’s a feature requested by many people, I’ve not included it before now because of security reasons. By default the frequency selector is installed suid root. But you can avoid it by using –enable-suid=no as a configure script argument or even if you don’t want to install the frequency selector you can use –disable-frequency-selector

The frequency selector is not cpufreq-applet specific, but it’s a generic tool that it can be used by other applications.

GNOME CPUFreq Applet News

Hadess has proposed gnome-cpufreq-applet to be included in Fedora Core. I’m very happy. Ubuntu has already included it. There are many people who asked to me to add to the applet the possibility of allowing the user to change the cpu frequency. The main problem is that it’s needed to be root to do it. So, I’ve finally written a command line tool that will be called by the applet. If the user or his sysadmin wants can set the SUID bit and the applet will be able to change the cpu frequency. I’ve not still finished it, but I hope to have it soon. Here is a screenshot of what I’ve already done.

GNOME CPUFreq Applet Selector
GNOME CPUFreq Applet. Frequency selector

Dominik Brodowski, a kernel cpufreq hacker, emailed me to talk me about the cpufreq governors. Currently the applet only works with userspace, powersave and performance governors. He also sent me a patch. As soon as I finish with the frequency selector feature, I will work on the governors stuff.

I’ve also received a bug from Debian. I have a lot of work in the applet for the next days.

Funny and productive weekend in Pamplona

I’m a bit tired, we had not much time to sleep this weekend in Pamplona.

On Saturday morning we presented our projects. The first was acs who presented planner and the integration with evolution. Garnacho talked about gnome-system-tools and presented us the new module shares-admin, a nice tool that makes easy to share folders with NFS or samba. I was the next, I could present disks-admin, the other new gnome-system-tools module. I talked about the past, present and future of the tool. Chema showed us Fisterra, a generic ERP (Enterprise Resource Planner). The next it was talk about the Spanish GNOME Development book, and finally Rodrigo talked for a long time about the Evolution architecture.

In the afternoon we worked in working groups and acs presented GNOME 2.8 using ubuntu. The Sunday morning was no less productive, Rodrigo showed how to use jhbuild while some other people continued hacking in working groups.

Personally it has been a great weekend, I’ve learned how to integrate an application with Nautilus by adding a new Nautilus context menu entry. I’ve also added drag and drop support in shares-admin, you can now add a new shared folder by simply dragging it to shares-admin window. And finally I’ve fixed some bugs in disks-admin.

We are now planning the next GNOME meeting in my new university (URJC) in Madrid 🙂

There are more photos of this weekend in my gallery.