BlueDevil 1.0 Review

First, a little bit of historyFirst, a little bit of history

It Seems that was yesterday when a year ago in the Gran Canaria Desktop Summit, Victor sent a file to me through Bluetooth and kdebluetooth saved it in a hidden folder, the file is still there “~/.kbluetooth4/Vídeo003.3gp”. That fact is what made me decide to use my spare time working on kdebluetooth.

After months of work in kbluetooth (the kdebluetooth fork I did), it started to work, but that spent hours made me realize that the kbluetooth never would be stable, it is a clear example of spaghetti code. Because of that, we started a new project called BlueDevil. If you’re wondering about the name, Edulix came with it while working on the daemon, and it is based on PowerDevil (the name).

After a few fridays working on it, suddenly a Spanish company sent an email to me, asking for help to develop a Qt library to deal with BlueZ. A couple of emails (and beers) later, they hired us (ufocoders) to write the library, the first big step towards a real BlueDevil was done.

It’s known that the best way to fully test a library is by using it a lot, so we started a negotiation to finance the development of BlueDevil, finally we got an agreement, we’ll pay it 50% / 50%.

So, this is the boring history, that in my most humble opinion had to be written, now let’s start with the review.

KDE Config Module (system preferences)
The Bluetooth KCM allows you to configure all the options from a single place, it is divided in 3 pages:

  1. Devices, allows you to switch on/off global KDE Platform Bluetooth integration, and manage your remote devices (add, rename, remove…)
  2. File Transfer, allows you to switch on/off the reception of files, and configure where (by default) they will be saved once received.
  3. Adapters, allows you to configure your adapters, changing the name, the visibility…


Download file

BlueDevil Wizard:
The wizard allows you to pair with other bluetooth devices, and if they have compatible services connect to them. the highlights are:

  • Pair with any device
  • Connect to input service (mouse, keyboard, Wiimote)
  • Connect to audio service (headset, phones)
  • Powerfull “auto” PIN Mode, which has a database containing exceptions.

In the following video, you can see the pair+input connection done with a cellphone, which is used at the final to disconnect itself :p


Download file

In this one, you can see the connection of a Nokia Headset, and the integration with the system (kmix/phonon)


Download file

Systray:
The systray is executed only if Bluetooth adapters are found, it allows you to do everything you want to:

  • Send files
  • Browse devices
  • Configure remote devices
  • Configure adapters
  • Configure file transfer
  • Add new remove devices
  • Connect to known devices services.


Download file

KDE Input/Output integration (KIO):
The KIO integration allows you to discover and browse your devices from your favorite file browser, the highlights are:

  • Discover device
  • Show and configure (after clicking on them) the supported services.
  • If supported by the device, browse the files (copy, remove, create dir…)


Download file

File reception:
Receive files from other devices is supported and totally integrated with the system (using notifications instead of blocking popups etc).


Download file

Finally, we’ll be releasing one RC each week until we consider BlueDevil stable enough, so the next release will be Friday 4


if you wish to help in the development of BlueDevil, you can contact us in irc.freenode.net #solid and in the kde-hardware-devel mailist.

BlueDevil, the new KDE bluetooth stack is here

We’re proud to announce the first release of BlueDevil, the new bluetooth stack for KDE SC.

Description:

BlueDevil is a set of components, which integrates bluetooth within the KDE SC, for example adding a system preference module (KCM), or allowing to browse the files in a cell phone from you favorite file browser.

The list of already implemented components is:

  • System preference module (KCM) to configure all the options regarding Bluetooth (also fully activate/deactivate it)
  • Integration with the KDE input/output system (KIO), which allows to discover and explore all bluetooth devices around from your favorite file browser
  • A wizard to pair your devices, and connect directly to the compatible services, such input (mouse, keybaord, Wiimote) and audio (headsets, phones)
  • Systray application integrated with the last KDE SC 4.5, from where all BlueDevil actions can be done (disconnect devices, send files, configure…)
  • Daemon to listen incoming petitions, for example to receive files, or to introduce a requested PIN.

Dependencies:

  • bluez (to get it working)
  • obex-data-server (for receiving files, and KIO’s)
  • obexd-client (for sending files)
  • KDE SC 4.4 or greater
  • PulseAudio, or a proper configured Alsa (with the bluetooth hook)

Errata:

  • When using kio_obexftp in dolphin on a KDE SC 4.4, some times it won’t load the content because more than one kio is launched at the same time and it is not supported by the backend (Tip: Disable the previews or use konqueror)
  • In KDE 4.5 SC, some times when a device is removed, the systray is not correctly updated (Seems to be a bug in QDBusMenu)
  • When trying to open a file from a bluetooth device, the progress gets stucked at 99%

Target Audience:

This release should be stable enough to be used by everybody, but we’re looking specially for advanced users with “compiling skills” so we can get quick feedback and fix as many bugs as possible. if you are Interested send an email to alex (at) ufocoders dot com.

Internationalization:

Currently BlueDevil is not ready to be translated (the strings are not final), and we’re looking for native English speakers who can help us with the strings, interested people send an email to alex {at) ufocoders.com

Special thanks to (in no particular order):

  • BlueZ developers and community for their help during the development (and patience)
  • David Faure for his help during the development and infinite patience talking about KIO’s
  • To ufocoders for sponsor half of the development

Obtaining the code:

To get the tag:

git clone git://gitorious.org/bluedevil/bluedevil.git; git checkout v1.0-rc1

In the next release we’ll provide the proper tarball.

I’m not dead, just working

Hi there

I have been quite busy these days, between Akademy and everything. So thought about writing a small blog entry with the status of the projects where I’m involved:

KBluetooth:

I’m sorry guys to announce it in that way, but KBluetooth is almost dead. I’ll release a new version (0.5) trying to fix all the crashes we’re having, and it will be everything from my part. I hope to release that version withing this week.

Kamoso:

We have ported kamoso to vlc1.1 (you can get the code from the proper branch), and it is working quite well. I’d like to release a new (last) stable version which won’t crash when the application is closed. After it we’ll concentrate our efforts in stabilizing the new code, getting it too work perfect with vlc 1.1.1.

KTuberling:

I did almost nothing for 4.5, but I’m planning to do some maintainer work for 4.6, closing bugs (yees! the pepperoni bug too), and I’ll try to remove the "blinking", but I don’t know how (yet) :p

BlueDevil:

Well, tonight (in 8/10 hours) you’ll have news about this one :)

NetworkManager:

Yay! I’m planning to join the group of crazy developers that works on NetworkManager+KDE, the first task I’ll try to accomplish is the removal of Solid::Control, for now, I’m reading code code and more code, and I’ll do that until I’m able to paint a "virtual map" of what is currently implemented. I don’t have a date for that.

See you in 8/10 hours with a surprise (a known one :p)

Cyap!

New KDevelop key feature plugin

We’re a lot of developers in KDE, and each of us like to use one or other tool to write code, for example, is known that I love KDevelop, others like vim, emacs, kate, qtcreator, eclipse… But you know what we all do? ask for help :p

So we’ve develop a new Plugin for KDevelop which will give us direct access to where all the KDE knowlege is stored

David Faure Plugin