Feed aggregator
Editje: Edje GUI creation for the masses
As some people might already know, Profusion has been working on a new Edje editor, intended to replace the one there was on Enlightenment’s subversion repository. I’m now participating more actively in its development and, besides that, I did help with an early version of its user manual.
It will be fixed/revamped incrementally, so that even at development stage we can have users able to do their GUI creation jobs done with it.
Stay tuned for more news on EFL applications development infrastructure soon.
The Enlightenment Foundation Libraries: A Big Picture
As part of my job activities back in August 2009, I wrote an introductory document on the Enlightenment Foundation Libraries as a client request. It is now being publicly released, hosted at Enlightenment Project’s subversion repository.
You can find a rendered version here, too, but I can’t promise how often it is going to be updated. The idea is have this document accessible by Enlightenment project’s website both in PDF and HTML formats. Ideally, both forms would be updated by a cron job or something. We’ll work on that soon.
Feel free to contribute to it, if you wish (license is Creative Commons Attribution-Share Alike 3.0) and, of course, to read it. This is one more step into making the EFL more accessible and recognized worldwide by GUI application developers.
Handsfree Profile into BlueZ and oFono
I’m proud to announce that BlueZ and oFono now support the Handsfree role of the Bluetooth Handsfree profile. This means that your Desktop now can now act like a headset bluetooth and handle calls from your cell phone. The work was done during the last 2 months here at ProFUSION.
On the BlueZ side a new API was designed using the fd-passing feature of DBus 1.3. This new API uses the concept of Agents where oFono plays the Agent role. In the HFP case the Agent role is to handle the AT engine stuff while BlueZ will only take care of the RFCOMM and SCO connections.
The RFCOMM socket is passed to the Agent in oFono via DBus, then oFono uses it to send and receive the AT commands to establish a Service Level Connection, i. e., make the handshake procedure. If it succeeds oFono will be ready to make and answers calls. Your HFP enabled phone will show up as a modem in oFono, like any other oFono modem.
The work was initially based on patches from Zhenhua Zhang(from Intel) and the audio interaction to handle the SCO data inside Pulseaudio was done by João Paulo Rechi Vita(from ProFUSION too). He also did the demo video below.
After pairing the devices using some BlueZ agent like kbluetooth or gnome-bluetooth, you’ll be able to see the modem in oFono and you can enable it ( i. e., make the handshake procedure to establish an HFP Service Level Connection) using the enable-modem script from the test directory on oFono source.
In order to test this you need the Audio Gateway interface enabled in BlueZ. For that, edit your /etc/bluetooth/audio.conf and add “Enable=Gateway” to it.
HFP code is already merged upstream on the BlueZ and oFono trees. The API is described in doc/hfp-api.txt in BlueZ source.
BlueZ 4.60 on Gentoo Portage
After a while with a BlueZ 4.39 ebuid Gentoo has updated today to the version 4.60 (the lastest one). It took a lot of work from me and others gentoo guys, especially Pacho Ramos. Thanks to all.
By adding this ebuild we were able to close other 4 bugs into the Gentoo bugzilla, but we still have bugs. Just search for bluez or bluetooth on the Gentoo Bugzilla and help us to fix Bluetooth on Gentoo.
Update your portage tree and try the new BlueZ ebuild. And if you find any issue, please file a bug into Gentoo Bugzilla. :-)
Handsfree HS role
Here at ProFUSION we’ve been helping people at BlueZ, oFono, and PulseAudio to add support for the Headset role of the bluetooth Handsfree Profile to Linux. We had some nice progress this week that lead us to make a video showing what we have so far. It’s still not merged upstream, and definitely not user friendly. But hey, it works!
Kudos to Gustavo Padovan for implementing most of this support into BlueZ and oFono.
D-Bus 1.3.0 deb packages for ubuntu
In the need to update D-Bus to a version with fd-passing support, I’ve updated the ubuntu packages for D-Bus 1.3.0, since I couldn’t find any. If you also need to update your D-Bus, you can get the packages here. Use them at your own risk, since it has been tested only on my machine.
Enlightenment meets ConnMan
I’m proud to present you with my last Enlightenment module: ConnMan!
For those unfamiliar with ConnMan, it is a solution to configure and manager your network connections. Unlike NetworkManager, it is very simple and fast, specially for users of it’s DBus API. It will manage everything, including DNS proxy to avoid messing with your /etc/resolv.conf. It also handles WiFi, Ethernet, WiMax, Bluetooth and even Cellular connections easily. For developers using it, it is very simple to use and you just need to use the high level “Service” interface.
In order to make it more useful, I created econnman inside e_dbus that abstracts the DBus API as a nice C interface that matches it perfectly and optimally, keeping objects in sync with server and emitting Ecore_Event whenever things change.
The module is quite simple, yet useful. As seen in the above screenshots, it will list the current status and service name (if module is bigger than 32px), when you mouse over it will show a fancy popup with more details, including error messages and IPv4 addresses. If you click it, you get a simple popup with the current connected service selected and clicking it will disconnect, while clicking a new one will connect to that one. Services requiring password will automatically ask for it, while those that failed to connect will also re-ask your password.
The module nicely exposes the offline mode feature to turn off radios. It integrates well with E17 mode: whenever you change E17 or ConnMan, they will sync with the other.
There is still work to do, mainly focus on the cellular specific needs and also create static services. And I also plan to have an application to allow managing your services, reorder them (that defines the priority) and even switch technologies that are available.
Ark Junior Jobs
So let's talk about what's going on in the Ark land.
Some time ago, Lydia blogged about raising the number of bug reports marked as junior jobs on Bugzilla. I've done my part, and currently there are 12 Ark bug reports listed as junior jobs.
If you have some (little) experience with C++ and Qt, fixing a junior job is a very good way to become part of the KDE community: junior jobs are usually easy to fix, you delve into the art of reading and understanding other people's code and, of course, you make KDE better with your contributions! What's more, you get the feeling that you're also part of our community.
Despite being about 12 years old, Ark, KDE's file archiver, does not have a huge code base, and it's fairly easy to understand its source. Most of the bugs marked as junior jobs involve writing support for more file formats (such as RPM), improving the error messages displayed to the user or implementing some easy wishlist items. But that's not all: as I write this blog post, there are 67 open Ark bug reports: only one of them is a more serious crash, and I'm sure there are many other report there which are not marked as junior jobs but are fairly easy to fix or implement.
Take a look at our bug reports, choose one or more you'd like to fix. You can then attach the patches to the reports themselves, mail them to the kde-utils-devel mailing list or send them directly to me. And remember that if you ever get in trouble, there's plenty of places you can look for help: TechBase, the API reference, LXR, the kde-devel mailing list or the #kde-devel IRC channel on Freenode.
Happy hacking! 
And more EFL news out there!
Wow! Just after my last week post about companies supporting EFL, we were pleased with two more announcements:
- Ardy, a tool that brings together EFL and Arduino using Python
- Free.fr, the second biggest ISP in France opened up the development of their Freebox HD set-top box using Enlightenment Foundation Libraries and Mozilla JavaScript library. This is pretty amazing as it’s the biggest deployment of EFL out there, an uncertain number that ranges from 2 to 3 million devices.
EFL things becoming public…
Hey all,
Yesterday we started to see some announcements of companies backing Enlightenment Foundation Libraries development. Of course, INdT was pioneer in that since it was decided to use it for Canola2. Later on I created my own company and we officially support EFL as GUI alternative (together with Clutter, GTK and Qt), being the first company to do that.
While there are speculations about which company is it, what I can assure you is that this company is serious and is not alone. ProFUSION itself worked on EFL on behalf of various clients and you may expect another press release about a big French internet and telecom company deploying a massive number of units with EFL pre-installed. Not accounting various community driven projects that choose it and E17 as its base platform, such as OpenMoko and OpenInkpot.
Bottom line? While EFL does not get the same amount of marketing and visibility as Qt and GTK counterparts, it is playing fine enough to be considered to ship in dozen million devices in the next year. Why don’t you consider it for your project? Be open minded and try it out
In which the author introduces himself
Hi there. In order to keep the tradition, an introduction in this first post. I'm Raphael Kubo da Costa, a 20-year-old Computer Science student at State University of Campinas, Brazil, and also part-time employee at ProFUSION Embedded Systems (a very nice place for any free software developer, I'd say).
My first contact with KDE as a developer was in 2006 when I sent two small patches for Konversation. Curiously and frustratingly enough, when I started university in 2007 I found myself with much less time to dedicate to my own free software interests than before -- even though I did to go to the International Free Software Forum that year and happened to be one of those "new and interested developers" to whom aseigo showed off the soon-to-be KDE4.0 desktop on the exhibition floor. 
Since the beginning of this year I've been contributing to KDE in a few different fronts: I do some occasional bug triaging and commits to kdelibs, but most of my KDE time is spent maintaining Ark, our old and beloved file archiver, with Harald and helping the KDE-FreeBSD team (I'm not a full-time FreeBSD user, although I'm writing this post directly from FreeBSD 8.0-RC3). So expect me to write more about these activities in the future.
Now let's try to make this post a little less "hello planet-ish" and talk about Ark, KDE's file archiver which lives in kdeutils. I believe it's one of the longest-living programs in KDE (the first commit shown by svn log is revision 12097, which was actually a CVS commit and dates back to the end of 1998). It has survived our four major releases and has had quite a few different maintainers (curiously enough again, most of them were Brazilian).
So what's the state of Ark today? As I write this post, Ark's bug count in Bugzilla is at 72, which I consider a small number to be honest. However, we have been mostly in bug fixing mode for at least a few months, and some bugs need pretty big changes in code to be properly fixed. Being a university student, working (even when it involves using Qt) and also having a life means I don't have that much time for big changes at the moment, and neither does Harald, who's also losing his hair to graduate from university.
I don't want to end this post in a negative mood, though. So my dear reader, you have been watching the KDE "scene" for some time, you would like to contribute and you don't know where to start. Well, Ark needs you! Despite its age, Ark has a small code base, and both Harald and I are (presumably) nice guys and we are more than willing to help you. And you, my dear reader who already contributes to KDE, how about doing something completely different? 
Evas UV Mapping and WebKit-EFL
One of the most requested feature for Evas was rotation and other transformations. These are no more, Rasterman just did generic UV Mapping support, enabling rotation, perspective, 3d-simulation and more.
As usual he wrote a fast software engine to make this available on non-3d accelerated, next should come OpenGL and OpenGL-ES as some big players in the industry are now funding his work in both software and GL-ES support, as well as ARM NEON optimizations.
As ProFUSION is also being funded to work on WebKit-EFL, I thought I could demo our work using new rotation support, and the result is quite good:
As you can see, there are still bugs… actually this video was first meant to report a bug with mapping code, but raster is already fixing it.
As soon as I have time I’ll try to update EFL for N900 and try out the new expedite tests, they include 3d cubes, coverflow and more. Hopefully by the time OpenGL-ES will be ready and then we can compare software and hardware performance on this amazing hardware.
All in all, this semester is being quite busy for EFL hackers. Fast OpenGL-ES, UV Mapping, WebKit and soon-to-be-release Edje Editor were all done, with much more to come. Stay tuned!
Ecore-GLib main loop integration
It’s done: http://trac.enlightenment.org/e/changeset/42825
This was a often requested feature by friends, ProFUSION clients and people that want to use the large amount of GLib-based libraries with EFL applications.
To avoid impacting each other, the suggested way is to have each main loop in its own thread, communicating these using pipes. This is used by Emotion’s GStreamer plugin, lots of projects inside ProFUSION or for our clients. But sometimes this is not easy to do (Adobe Flash plugin for WebKit-EFL) or maybe we just want to do an experiment until native efl version is available (for example, EUPnP is still in early stages, while GUPnP is rock solid).
This enables (or makes it easier) using nice projects from EFL applications, to name a couple of personal interest:
- Rygel: Rygel is a collection of DLNA (UPnP AV) services (devices in UPnP speak).
- GUPnP: object-oriented (GObject) open source framework for creating UPnP devices and control points.
- PulseAudio: sound server. Although it is possible to write your own main loop support for pulse, it’s much easier to use glib’s until someone writes ecore_pulseaudio.
- Moblin Mojito: ocial data server which will fetch data from the “social web”, such as your friend’s blog posts and photos, upcoming events, recently played tracks, and pending eBay auctions. It also provides a service to update your status on web services which support it, such as MySpace and Twitter.
- Google Gadgets: similar to E17 gadman, provides sandboxed widgets. It allows storing basic data and network I/O, so there are forecasts, stock options and rss feeds. It would be nice to have a native port (we’re working on it), but meanwhile using GTK’s infrastructure would help.
