New year – new laws

2. January 2008

This is maybe a reply to Mathias Blog:

The new year brought a bunch of new regulations in Germany (or at least in some states of Germany as we have a quite annoying federal system which makes most things even worse):

  • Smoking is now prohibited in all public buildings and all bars/restaurants/disco in Bavaria (and some other states while it is still allowed elsewhere). I like that much personally and it is sad that Germany is more or less the last country in europe having installed such a strict anti-smoking law.
  • All internet traffic connection data in Germany is now stored for at least 6 months to fight terrorism civil rights. I always admire George Orwell for his vision as he died in 1950 not even knowing an “internet”. Anyway, there is a complaint of unconstitutionality and hopefully it will succeed. But for now, if you happen to use the internet in Germany – watch out.

Other than that the new year started quite good (on top of a church tower…). So, happy new year to everybody (excluding most politicians).

Dell Ubuntu Laptop

14. December 2007

Two weeks ago I bought my first real Linux notebook after my old HP nx6110 already was fully linux-compatible but still had Windows XP preinstalled.

So after booting up my new Dell Inspirion 6400 the Ubuntu installation wizard popped up asking me for username, password and timezone and I found a standard Ubuntu GNOME Desktop. As many others have already complained about, Dell did not install 915resolution and thus the display was 1024×768 instead of 1280×800 which was of course quite easy to fix. Until now, they still ship Ubuntu 7.04 but I hope they will update to the new version soon because it’s a bit like shipping Windows XP without SP2 while security updates are of course installed.

The next step was to update to Gutsy which is of course as “update-manager -d” and worked without any problems. I also enjoyed the new codec-loading featurs of totem a lot.

What works:

  • Suspend-to-Disk
  • Suspend-to-RAM
  • All multimedia key except the rather useless “Media Direct” key which should launch the laptop directly into (Windows) Media Player
  • WLAN

What not works:

  • After Suspend-to-Disk NetworkManager hangs
  • After Suspend-to-Ram sometimes the keyboard does not respond (sleep and wake-up again usually fixes it) and in rare cases the display is not switched on.

In general quality and battery capacity seem very good and speed is ok as well as the low price. I hope Dell will improve Linux-integration for the next models to get a good out-of-the-box Linux feeling.

Hardware applet

19. November 2007

When playing with my new bluetooth hardware I was very pleased that it was supported out of the box. Anyway, I also missed something that would give me some indication that the hardware is working. (e.g. the first I did was to check dmesg)

When you look a Windows, they have those tiny notifications telling you that the new hardware was detected (or that it is not working or whatever). I think we should also have something like that. We now have HAL und dbus and I shouldn’t be that difficult to implement though I have no idea how this works in details. So take this as a proposal or tell me that it already exists (I didn’t find it):

There should three modes of operation:

1. Hardware is plugged in and supported

  • Tell the user “Detected xy – new hardware is now working” (alexl pointed out that we should not do this as it is obvious. I would prefer to have this notification for the first time the hardware is attached).
  • Propose some common operations: Open files for an USB-Stick, F-Spot for a digital camera, gnome-scan for a scanner, etc. Of course with a notification and not with an ugly centered dialog like Windows.

2. Hardware is supported but needs configuration

  • Show enough information that the user can complete the configuration
  • If there is no wizard to do this in a user friendly way, at least point the user to a (distro-specific) tutorial or at a place where he/she probably could find help.

3. Hardware is unsupported

  • Point the user to a distro-specific update tool to search for a driver (=> PackageKit comes in mind…)
  • If there is really no driver, ask the user to report a feature request, based on the device id. This should be saved in a database to see which drivers are needed by many people.

The most obvious case are of course USB devices but maybe also stuff like pcmcia and bluetooth could be detected that way. I think this would make hardware support on linux a lot more user-friendly. Personally I neither have the knowledge nor the time to implement that but maybe someone likes the idea!

Blue your teeth

17. November 2007

Yesterday I finally decided to give Bluetooth a go and bought the cheapest available USB adapter at the local electronic store. I must say that I expected it just not to work at all on Linux or that I would have to spend the whole afternoon to get at least some things working.

Anyway, I just plugged in the adapter and checked dmesg to see what happens. To my surprise it just told me that the driver was loaded and the bluetooth stack was now ready. I fired up the gnome-bluetooth-applet and clicked on “Browse Device…” to just see my mobile phone being detected and connected to it. I could not browse the files at first because the gnome-vfs-obex module was not installed but installing it fixed it.

After being able to browse my files I wanted to check if there is a way to sync my phone. After I checked that the phone (Sony Ericsson K530i) does not support SyncML I did not really expect to get anything going.

But as I wanted to give it a try for a long time, I first migrated from Thunderbird to Evolution to have a PIM-Suite and to have syncing support at all. Migrating is actually a real pain because you have to import all your folders manually but in the end it worked out. I have used Thunderbird/Netscape my whole mail live (about since 1994) and I still think that it is a good mail client. But Evolution is really better integrated into the GNOME Desktop and it has improved a lot since I last checked in those old 1.4 days. It could be a bit faster though and I found a nasty bug for people using small screens like me.

So back to syncing: I installed multisync after googling a bit what I need and added a synchronisation pair with Evolution and an “IRMC Mobile Device” (guessed that because some other Sony Ericsson phones were in the list). After clicking on “Sync” I expected an error message but instead the phone just synced.

So thanks a lot to anyone being involved in those Bluetooth and sync stuff – it’s really great!

Anjuta’s way to 2.4

2. November 2007

With the first beta relaese 2.3.0 today, Anjuta moves one step forward towards the next stable release which will bring lots of cool and long awaited features. So here is the promised summary of the new and coming features:

Glade integration

Glade Designer intergrated into other documents

For integrated glade we used to have a very ugly “Glade” menu which consisted of the items usually used in an “Edit” menu but just for glade. This was very confusing because “Edit->Undo” would not undo the last change you did in glade but the last you did in the editor.

In trunk, the glade designer is integrated like any other editor in Anjuta and all items can be accessed with the “Edit” menu which always works on the current focused document.

Before, someone asks, if you want more Visual Basic fealing, take a look at this bounty.

Coding support

Autocompletion and calltips in action

Our autocompletion and calltip code has been vastly improved for both editors. It can now show several tips at the same time if appropriate and should work much more reliable. This is of course not yet the end of the road because we want to have this for more languages (Python comes in mind) and we want to detect some more use-cases, like members and object methods. This will depend on the new symbol-db plugin (see below).

Auto-indentation should also work much better now with both editors, is configurable and can also auto-detect the settings from a mode line.

Quick search bar

Quick search bar

Incremental search has sucked a lot in anjuta for long. To improve this we borrowed the idea of a search bar from firefox and I personally think that this rocks. Of course there is still a full featured search dialog and we are also planning to improve that one.

New symbol database

This feature is not yet available in the release but you can preview it in svn. The idea is to save all the code symbols which are parsed by ctags in a sqlite database (accessed with libgda) to allow much better code navigation and completion. Massimo already did a great job there and I hope that this will be ready for 2.4.0

New symbol database

The screenshot shows a file from the gimmie project with the class hierarchy. As you probably know, gimmie is written in python so the other advantage is that this will work for many languages and it might also be possible in the future to use other data sources apart from ctags (you know what I mean, Sven?).

What else?

Apart from those cool features a lot of bug-fixing work happend, especially in the debugger. We have a lot of great new icons and some still need to be integrated into trunk. HIG-stuff was also partly fixed though there is still room for improvement.

Other crazy ideas

Of course we have more plans for 2.4.0. This includes better version control management with integration into the file-manager, supporting more languages. We also want to migrate to GtkSourceView 2.0 but that will mean that someone (or myself) has to find time to add a new markers interface to GtkSourceView. And for all those Vala enthusiasts out there of p.g.o, yes we also plan to support Vala but it will at least depend on GtkSourceView 2.0 and either vala support for ctags or some other (reliable) way to get the symbol out of a vala file.

I am also glad to see more people willing to help out and ask for help with writing plugins!

Drag & Drop in Glom

24. October 2007

Glom drag & drop layout

Currently I am working on drag & drop layout support for glom (see #35809). After fighting a lot with GtkContainer internals I finally got the preview working more or less. On the screenshot you can see how the preview currently looks like. Of course this could be improved in many ways and it would be nice to get some feedback from UI designers how to improve the visual appearance of the preview. (Unfortunately you cannot see the mouse pointer in the screenshot…)

Glom drag & drop screenshot

The next steps are to create a nice toolbar-like window you can drag the new layout items from. Murray proposed a vertical bar which could fit good IMHO.

Anjuta progress

As you probably noticed already, we released a new bug-fix version (2.2.2) which should fix most critical bugs and some little usability problems. Anyway, the more interesting things happen in trunk, where Massimo is working on a new symbol browser that will support more languages and gives us much better informations about the available symbols. Sébastien is doing an awesome work on the debugger and many other parts of the code. tpgww (AT) onepost.net created great artwork for all kind of things and is continuing to add a lot of patches to bugzilla. I will show you more of the new features, once we have our first beta release (hopefully together with GNOME 2.21.1).

Blog migration

BTW, if you can read this I successfully migrated my blog from my own (outdated and probably insecure) wordpress installation to blogs.gnome.org. Thanks to Jeff for updating p.g.o and to the sysadmins for creating and maintaing this service!

Fingerprint

16. October 2007

My new gpg fingerprint (the old expired yesterday):

pub 1024D/65C9F9B3 2007-10-16 [expires: 2008-10-15]
Key fingerprint = 0B62 1B33 85B8 086B B000 BB3F 02F6 599F 65C9 F9B3
sub 2048g/DEB909FC 2007-10-16 [expires: 2008-10-15]

Big brother in real?

24. September 2007

Feel free to skip this if you are not interested in political blogs…

The German government is planing to release new ID-Cards in 2009 for all citizens. To add some additional values to that cards they will contain some electronic signature to be able to prove your identity on the internet. That of course is really a good idea and they even try to protect your privacy by introducing a PIN code if someone wants to read from your card and the possibility to allow to read a subset of the data (e.g. your birth date).

The problem is that the good things end here. Because together with the chip that should be readable in any chipcard reader it is physical attached to the card should contain an RFID chip. Other than reading from the chip which nobody can do unless you give him the card, the RFID chip can be read without noticing. Big brother will now everywhere you go and even more dangerous everywhere you have been.

To make it even worse, in addition to the photo which is rather public on the card anyway, the RFID will contain two fingerprints. They do not only know where you have been, the also know what you touched (and they can easily break your cool new biometric authentication…). And it’s getting even better because they also create a central register of the photos and the also want (but there is even some resistance inside the government) a central register of the fingerprints.

You may say now, that you have nothing to hide. Do you? What if you have been at the wrong place at the wrong time? Demonstrated against the government and they put an RFID reader along the street?

Remember big brother is watching YOU!

This post is for all people that need debian packages for their software but are far too lazy to really learn all this packaging from the beginning. But be aware that it is really easy to build broken packages. I will not explain how to build packages for simple applications since this is explained quite good in the Debian packaging guide. Anyway, it does not explain library-packaging at all.

Packaging a library is not really difficult most of the time. Given that most GNOME libraries share a very common build system layout it would be a waste of time to start from scratch. So we search for a library the seems to be a good starting point for our own package. In my case, packaging libnotifymm, this was obviously glibmm. So first step, get the sources of that package:


apt-get source libglibmm-2.4-dev

Next step, copy the debian directory over to your project, not very tricky either, and delete the useless changelog:

cp -r glibmm-2.4-2.13.3/debian libnotifymm
cd libnotifymm/debian
rm changelog

Now, you end up with some files in the debian directory:

  • copyright: Check the license, put your name in, etc
  • control: The most important file. Replace the name of the library you took as sample with the name of your actual library, take care of the versions and update the dependencies. With an appropriate sample file the format is quite obvious.
  • *.dirs, *.install: These file show where the library gets installed on the system. Normally you should not have to change much here apart from renaming the files from oldlib.dirs to newlib.dirs. But always take a look a the files as there is probably mentioning the old package somewhere and you want to change that.
  • rules: Do not touch for now. Hopefully it will just work, otherwise you will notice that later

In the end, create a changelog using this command which will ensure you have the correct format:

dch --create

Now, let’s give it a go:

dpkg-buildpackage -rfakeroot

If you are (too) lucky, you will have fresh debian packages now. If not, it’s time to check the rules file for stupid shell scripting. The error messages normally give you some indication what could have been wrong. You may need some tries before everything works smoothly.

When you have finished, check if the packages install cleanly on your system and explore them with file-roller to see if they really install all the files needed.

As said before, this is really not the greatest way to create packages and you will do better if you read all the documentation about building packages. But often you get the idea from looking at other packages.

Anjuta 2.2.1 released

9. September 2007

So I am happy to annouce anjuta 2.2.1 (stable) release which is a rather unspectacular bug-fix release. Anyway, it fixes most critical bugs reported since our first stable realease in 2.2 series.

But we are not there yet. A lot of development is happening in trunk currently. But a screenshot is worth more than thousand words:
A function tooltip in gtksourceview editor
This shows a function tooltip in gtksourceview editor which now finally works and provides equal, but better-looking functionality as the scintilla editor.

And as we will soon merge the new sqlite-gda-based symbol-db, we will be able to have much better support for different languages and for more complicated cases. Think of “myclass.return_something()->do_something(” for example.

But I would also like to ask for help. Is there any GTK+ wizard who has an idea about this gdl related crash (or with a similar trace). It seems to crash deep inside GTK+ and I have no idea what could be the cause. Thanks!