Enlightenment running on an Efika MX

As part of the Power Developer developer’s program, I received from Genesi one of their amazing Efika MX nettops. Other people have already posted about the unboxing process (for example darkside or brunocardoso), but I still want to throw a few screenshots to show it.

Look how tiny it is compared to even the keyboard (it is the small black box next to the monitor)

Efika booting

Recently there were big improvements made to the EFL on ARM platforms, but even without those optimizations and running on a 1680×1050 screen, E17 is running perfectly fine. Here are a couple of screenshots I made (the second one was taken with a camera phone, so it’s slightly worse to look at, I’ll try to put a video showing how well it’s performing on youtube later):

One of the initial versions of the Efenniht theme, with the obligatory Flame/Penguins/Snow modules enabled

Latest Efenniht version, with the Everything module on the center

I’m going to setup daily builds of the EFL running on it (plus weekly Ubuntu packages) so that it can help out stabilizing the arm port. The static analysis runs with clang of the EFL code that I’ve been doing are now on a new location, and I’ll also be running them directly from the Efika.

I’ll soon update the blog with more cool stuff I’ll be doing here (got an OE build for it about half done), but for now I just want to thank the folks at Genesi for this opportunity, and I’m eagerly waiting to try out the Aura firmware they are working on.

Interesting keywords on Google’s Go language

I’ve recently started toying around with Go for a personal project, and found some really amusing stuff while reading the source code. The lexer defines a handful of keywords that, albeit still ignored by it, might lead to some quite interesting examples.

Here is the normal hello world example:

package main

import "fmt"

func main() {
  var a int = 10
  var b int = 20
  if (a < b> { fmt.Printf("Hello, world\n") }
}

And here is another (completely functional) Hello World:

package main

notwithstanding import "fmt"

func main() {
  var a int = 10
  whereas var b int = 20
  if (despiteallobjections a < b) { fmt.Printf("hello, world\n") }
}

I did a quick search on the net but found no mention of this anywhere except for the lexer itself (available online here if you’re interested).

Enlightenment Frequently Mistaken Answers

The last round of news regarding Enlightenment were pretty nice, but one thing that we could see from the community feedback is that there are lots (and I do mean lots) of people out there who do not know its current state. Mostly this is caused by our serious public relations issue (lack of official news, etc.), and we’re planning on fixing this.

But right now, I just wanted to correct some of the misinformation we saw:

  • Question: when will E17 be released?
  • Answer: Soon. No, seriously, I really mean it. Currently work is being done on finalizing a few remaining items of our Release Plan in order to make the first stable release of the libraries, which is the main focus of work right now. After that is done, then focus will be shifted to E17. But if you really want a date, I can’t give you one. Best I can do is say: “join us and help, and then the date will come sooner :P ”.
  • Question: does EFL support OpenGL?
  • Answer: YES, it does, both OpenGL and OpenGL-ES 2.0. There is much to be said on this topic, and some posts with more info and benchmarks are coming soon, but for now just rest assured that there is support for it and it’s kicking ass.
  • Question: is it being  actively developed? Or is it just a bunch of people who are hacking on a project without future?
  • Answer: there is a lot of development going on, and it’s most definitely not a project without future. There are many companies using EFL because the libraries are pretty good, fast and stable. And the libraries can be used for softwares that run by themselves, they definitely do not need E17 to be running. Some examples of projects using EFL are set-top boxes, airplane infotainment systems, etc.
  • Question: why should I use the EFL instead of Qt or GTK+?
  • Answer: the first reason would be because you prefer to use it. Seriously, give it a try. Other than that, if you’re doing a project for an embedded system, chances are the EFL might suit you better than the other two. There was heavy work on optimization done on the libraries, and they usually respond a lot better on smaller hardware than their counterparts. If you’re a designer or working closely with designers on a project, then that might also be a pretty good reason to check out Enlightenment (most specifically Edje).
  • Question: how do I learn more about EFL? How can I help?
  • Answer: documentation is something that we’re working on right now, and it’s one of the main areas we still need to improve a lot. A pretty good place to start is the document that my colleague Gustavo Lima wrote and which is available here. And if you decide you want to help (there are some low hanging fruit there, don’t be afraid) just join us at #edevelop on Freenode and hang there for some time, chances are you will quickly find something to do (and if you haven’t, just ask there and people will quickly find something for you).

That’s it for now. If you have any doubts, just get in touch.

Canola2 Free Software + Maemo’s Summer of Code

Seventy Six trombones led the big parade
With a hundred and ten cornets close at hand …

Others have blogged about it already, but I still felt like I had to post something. Canola2 is now Free Software. We’ve been working on it since last year, and it has been quite an experience. As developer and team leader at ProFUSION, I can say that we’ve learned quite alot with this project and that we hope now with the release of the source code it will grow into a nice community.

I once heard that everytime a piece of proprietary software is released a puppy is born and angels sing Hallelujah in the sky. Don’t know if that is actually true, but either way, the source code is here and instructions for building it are here.

Google’s Summer of Code for 2009 has also started, and is now accepting student applications. Maemo got in as a mentoring organization, and I’ll be mentoring possible projects there (as will glima and antognolli from ProFUSION). There are a few ideas of plugins for Canola in Maemo’s suggested projects page. If you are eligible and want to develop for Canola, talk to us on irc.freenode.net at #canola.

Real Envido

Yo cito textualmente de Real Envido, obra de Griselda Gambaro:

Rey: Natán, ¿pensás lo que yo penso?

Natán: Siempre.

Rey(agraviado): ¿Leés mi pensamiento?

Natán: ¡No, señor! Jamás me atrevería. Como súbdito, yo veo lo que usted ve, yo pienso lo que usted quiere que piense. ¿Quién disiente con un rey? Nada pienso por mi cuenta, nada veo, nada quiero, nada sueño. Mire, soy un recipiente. (Sacude la cabeza hacia abajo) No cae nada.

Rey(Muy halagado): ¡Asombroso! Natán, te asciendo a consejero mayor.

Natán: ¿Y eso significa lo que usted está pensando?

Rey: ¿Qué pienso?

Natán: ¡Aumento de sueldo!

Rey: ¡Para mí!

Natán: ¡No, para mí!

Rey: ¡Qué pensamiento tan raro! ¿Estás seguro de que es mío?

Natán: ¿Cómo me atrevería a pensar otro distinto?

Canola’s new release

After working on Canola for the past couple of months, finally we get to see it released. Hopefully people will like this new version, which is both faster and more stable (or less stable, I’m never quite sure which one we picked). We’re now back following the latest revision of the Enlightenment Foundation Libraries, which allowed us to make the UI experience alot smoother (check it out by going to the Photos section). Also there are a bunch of new features and lots of bugs fixed, so try it out yourself and tell us what you think. Hopefully now development of Canola will get back to more regular releases, and we’ll start seeing more external plugins being developed (such as the flickr plugin being done by Thomas Schimdt, available here).

For this release we went above and beyond the call of duty, doing tests that no one had ever done before (at least to our knowledge). That’s why we can say, with much confidence, that Canola works perfectly while drinking in Buenos Aires:

Canola in Buenos Aires

Canola in Buenos Aires

Testing in other capitals will ensue. Cheers !!!

Using BlipFM with Canola (and possibly other players)

Here at ProFUSION we’re using BlipFM quite a lot to both listen to music and share recommendations with others. Since until now no one has made a plugin for Canola (*hint*), I’ve written a really simple script in Python to parse a page and generate a podcast XML. It’s still quite hackish, but I’m going to improve it later to support more pages and stuff like that. Any comments/contributions are welcome (for all intents and purposes, the code is under the WTFPL).

Source code available here. Example podcast generated from my user here.