Category Archives: Tips

Vala Notes Plugin

Or better, there is Vala in the Notes plugin. It's been a long time I thought about a hypertext view widget for the notes plugin, so it can highlight links and open them on click, and doing this in pure C/GObject is quite a PITA because there is a lot to take care about (more lines of code), and then you didn't start thinking about the whole functions of the object. Now this is retro with the presence of Vala. I played with Vala some time ago, doing some very rudimentary hello worlds, and I never had a chance to really write something in Vala, untill two days ago. I started to write a very dummy object on top of GtkTextView that implements the simple undo/redo feature I wrote inside notes.c and it was very fast and easy to backport from the C code to Vala, and this gave me a very good start with Vala (now that was one Vala too much, wasn't it? anyway...). Yesterday I added skel functions to support hyperlinks which I finished today. Finally I integrated the Vala object inside the notes plugin in a way that it compiles to C code when you are in MAINTAINER_MODE, which means for end-users they won't need Vala but only gcc.

Now for those interested into Vala, here is the file I played with: hypertext.vala. This source contains at the end of the HypertextView class, another class that contains a main function so it can be compiled to a binary. This proves how easy it is to test a class, and all you need to do is to run the following command: valac --pkg=gtk+-2.0 hypertextview.vala && ./hypertextview.
There are many samples available with the source of Vala and on Gnome Live. The tutorial covers important points, the FAQ too, but the documentation is a little less interesting if you already know GObject IMHO.
One important thing I learned about Vala was the difference between the out and ref arguments.

If you have a hard time at finding the right method definitions, look into /usr/share/vala/vapi/gtk+-2.0.vapi for instance for GTK+. There you can quickly find any function name you now from the C API, for instance if you want to have a look at gtk_text_view_get_iter_at_location search for get_iter_at_location. By scrolling up you will see that you are in the class Gtk.TextView. Vapis are very easy to read.

I am very interested into porting the objects of the Xfmpc project to Vala, and then start trying out the plugin sample (loading modules during runtime)... I hope my fellow will like that idea :-)

Now for the people interested to develop Vala classes with VIM I have some tips. First follow these instructions in order to get Vala syntax. Then I suggest you install the Tag List plugin, and to get it working with Vala you will need to add the following lines to your vimrc configuration:
" Work-around Tag List
let tlist_vala_settings='c#;d:macro;t:typedef;n:namespace;c:class;'.
\ 'E:event;g:enum;s:struct;i:interface;'.
\ 'p:properties;m:method'
If you don't know about folding then you miss a lot of VIM culture, in fact you can fold/unfold brackets by going over a bracket and typing zf% in command mode. And that's all folk, thanks for reading til here.

Ubuntu from your flash drive – easier than ever before

As you have probably noticed, new versions have arrived of Ubuntu, Xubuntu and other derivatives. One of the most exciting new features has received far less publicity than it deserves – the ability to “install” it onto your USB flash drive with just a few clicks.

The advantages are obvious: just plug your flash drive into a computer and run your favourite operating system. What’s more, everything you do — installing applications, saving documents, editing preferences — will be saved to your flash drive and will be available to you every time you run it!

The best news is that it’s astoundingly easy: all it takes is a few clicks.

Of course, there are a few requirements. First, you can only run it on computers that support booting from a USB flash drive – this is the case for most computers nowadays. Secondly, you must have a CD or a CD image. The latter can be downloaded free of charge – I, obviously, downloaded Xubuntu. Third, you’ll need to install usb-creator, the new application that is readily available in version 8.10 but which you can also download and install on version 8.04 (with Windows and Qt versions planned). And, last but not least, you’ll obviously need to have a USB flash drive.

Once installed, you can find it in your menu as Create a USB startup disk (on Xubuntu it is located under Applications->System, in Ubuntu this would be System->Administration, IIRC).



The first thing you’ll need to do is to insert the flash drive you’re planning to use. Usb-creator will then detect the drive – if multiple flash drives are inserted, you can pick from a list which one you want to use, and if the drive isn’t formatted yet usb-creator will give you the option to do so (note that this will destroy all files on it!).

The next step is inserting the appropriate CD into your CD drive, or loading the CD image you downloaded before by clicking Other….



Finally, you’ll need to configure whether you want all your documents, settings and applications to be discarded on shutdown (i.e. act as a regular LiveCD) or if you want to save them to your flash drive (this is called persistency, or persistent mode). If you pick the latter, you’ll also be able to select how much space you want to reserve for this.

Do note that usb-creator will not overwrite existing files on the drive – thus, if you want to use your entire drive, you’ll first have to delete all existing files.

Now, with everything configured, click Make Startup Disk, and sit back and relax while usb-creator prepares your flash drive.



You can do something entirely different now, like reading the rest of this blog, viewing all my screenshots of usb-creator, whatever you like. Once usb-creator is finished, it will notify you that it’s done. All that’s left now is to boot your computer from your flash drive and have fun :)



Troubleshooting

If persistency does not work, you might need to edit the file text.cfg in the syslinux folder on your flash drive. Just replace the line default livewith the following lines, adding a new Start Xubuntu option to the boot screen the next time you boot. Note that you might want to replace occurences of “Xubuntu” with the name of the distro you’re using. This has been tested with Xubuntu 8.10;

default persistent
label persistent
menu label ^Start Xubuntu
kernel /casper/vmlinuz
append file=/cdrom/preseed/xubuntu.seed boot=casper initrd=/casper/initrd.gz quiet splash persistent
--


Getting help with Xubuntu

Even though I’d very much like to say the opposite, most people will probably need help with Xubuntu at some point. Luckily, it is quite easy to find help – you just need to know where to look.

First of all, you need to determine what kind of problem you are having.

Getting started

If you are new to Xubuntu, you will want to read the excellent Xubuntu documentation, that is also shipped with Xubuntu (in version 8.04 it is located under /usr/share/xubuntu-docs/index.html). It should be your first stop when trying to figure out how to connect to the internet, how to install applications, and similar basic tasks. All this thanks to the huge, voluntary efforts of the Xubuntu Documentation Team (you can also help out with the Xubuntu documentation yourself!).

Of course, if you want to perform slightly more advanced tasks, such as setting up periodical backups on Xubuntu, the internet is your friend. There are a lot of great resources on the internet that can help you with anything from installing Xubuntu on the Eee PC to browsing Windows network shares with Thunar. However, be sure to double-check which version of Xubuntu the guide is written for. For example, the post on browsing Windows network shares I just linked to is, at the time of writing, a little outdated and contains unnecessary steps.

It is also safest to look for articles written specifically targeting Xubuntu – tutorials aiming at Ubuntu users will often work as well, articles targeting just “Linux” are less likely to result in success.

When you can’t find the answer

If you’ve spent time roaming the dark alleys of the internet, spit through every last bit of Xubuntu’s official documentation, but still don’t have an answer, there are a number of support options.

One requirement for all these options is that you specify as much information as possible. This includes, but needn’t be limited to, the fact that you’re running/wanting to run Xubuntu, which version of Xubuntu you’re running, what you’re problem is, what the expected result is, and perhaps how proficient you are with Xubuntu. This allows other people to help you in the best possible way.

The xubuntu-users mailinglist is, well, a mailinglist for Xubuntu users. All messages sent to a certain email address (xubuntu-users@lists.ubuntu.com in the case of xubuntu-users) will be delivered to everybody who has subscribed to that mailinglist. Thus, if you need help with Xubuntu, you can subscribe to that mailinglist, send an email to that address explaining your problem, and perhaps the next time you check your email, the answer is waiting for you.

You might not have the patience to wait for people to respond, however. If that is the case, fear no more, as IRC comes to the rescue! IRC is a way of being able to communicate in real time with other people – in other words, a chatbox. First you need an application to talk IRC – Xchat, DarkIRC, whatever, it shouldn’t really matter. Using your IRC client, you need to connect to a network – FreeNode (on irc.freenode.net) in this case. Once you’re connected to the network, you need to join the appropriate chatroom (how old-school is that?) – the Xubuntu support room (or channel in IRC lingo) is #xubuntu. You can join by typing /join #xubuntu.



Once you’re in – ask away! Be sure to be polite, not to spam the channel, and realize that, if nobody answers, probably nobody knows. Don’t ask the same question over and over again.

It is no secret, however, that the Xubuntu community is not quite the size of the Ubuntu community. Luckily, many people in the Ubuntu community can also help you with your Xubuntu problems if nobody in the Xubuntu community can. The place to get help from the Ubuntu community is the Ubuntu forums. With a very large amount of active members, your question is very likely to find an answer here.

Another place to get help is at Launchpad answers, which is part of Launchpad, a project management website where Ubuntu is managed. Here, you’ll be more likely to find developers, who are most likely to be able to help you.

When there is no answer

Even with this vast range of support options, some problems are just errors in the software – so called bugs. These can be reported at bugs.ubuntu.com, where a developer can look at it and, if you’re lucky, provide a fix for you and other users to enjoy.

Conclusion

Of course, there will still be times when no answer can be found. However, after having read this article, you’ll hopefully be able to better find help yourself. And of course, if you cannot find help, feel free to ask me – I may not be able to provide an answer, but I might be able to give you some pointers.