Category ArchiveINdT
C & Free Software & Hacking & INdT & Linux & Maemo & ProFUSION & Python Gustavo Sverzut Barbieri on 18 Nov 2009
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
Free Software & Hacking & INdT & Life & Linux & Maemo & ProFUSION & Python & ubuntu Gustavo Sverzut Barbieri on 28 Mar 2009
PyCON USA and Canola2
So here I am at Chicago attending at PyCON USA where I’ll present how Python enabled the development of mobile media center (Canola2) in record time. So far it’s being an amazing conference, lots of interesting talks but more MacOS-X than I’d like to see in a conference about a free software technology (at least we seem to have more Linux than Windows).
As for freedom, free software, mobile media centers and specially Canola2: as announced previously at Maemo community, Canola2 is now opensource (GPLv3)! That’s amazing news, specially to me as I have Canola2 as my baby and would like to have more people involved into its development. It’s not just a great end-user software, it’s an amazing Python platform where you can build all kind of rich user interface.
As you might know, ProFUSION is working with INdT to improve Canola2 and we plan to keep supporting it, starting with some instructions and scripts, see our post for more details. As we want to build a community around it, don’t miss the mailing list and our IRC channel #canola at irc.freenode.net.
C & Free Software & Hacking & INdT & Life & Linux & Maemo & ProFUSION & Python Gustavo Sverzut Barbieri on 22 Jan 2009
Presenting at PyCon US ‘09
Now that the list is published I can announce that my talk was approved and I’ll present at PyCon US 2009!
My talk Python enabling mobile media centers will tell you all how Python made it possible to finish Canola2 in record time and how it does not suck performance wise in mobile devices as the Nokia N800, N810 and it is even acceptable on 770! I’ll quickly cover how painful development of first version in C was, how we profiled, tools we used to write Python-EFL bindings and more.
For my beloved Brazilian friends, I plan to present it (or a similar talk) at Bossa Conference ‘09 and possible present it in Portuguese at PyCon-Brazil later this year.
C & Free Software & Hacking & INdT & Linux & Maemo & ProFUSION Gustavo Sverzut Barbieri on 22 Dec 2008
Webkit-EFL interface prototype
After INdT guys released Webkit-EFL port last week some E hackers started to work an user interface on top of it, with Raoul creating a prototype called “ewww”.
I joined the hacking by creating my git repository with patches on top of Raoul’s, refactored some bits and made two smart objects: one for the scrolled webview and another with controls. Graphics and layout should be read from EDC descriptions and it looks like this:
This screenshot shows no scrollbars, but they exist on the right and bottom sides, they’re indicators only and will fade away after 1 second they’re displayed (usually by movements). Movements can be done by keyboard, mouse wheel or panning (drag on an “blank” area). Progress bar is under location text, like Safari. You can notice some details like smooth shadow on the viewport.
It is still very preliminary, Webkit-EFL needs lots of interfaces exposed and some bugs fixed, but we hope this can serve as a testbed for development and gather requirements. After some more work we’ll move it into E’s SVN under PROTO, but the name should change to something else since not everybody likes ewww. The good thing is that many people have ideas with regard to browser UI for embedded systems, raster wants to implement it as a little dragable icon that expands into full contros. I want to have each browser tab as a separate process and reparent its X window to a master process window/tab manager, much like Google Chrome. Let’s see how it works out in real use.
For those which would like to test:
# if you don't have webkit-efl port, check it out: WARNING: this is HUGE!
git clone git://code.staikos.net/webkit
cd webkit
git checkout origin/kenneth/efl-port
./autogen.sh –with-port=efl --enable-web-workers=no
make all install
# checkout my ewww:
git clone git://git.profusion.mobi/users/gustavo/ewww.git
cd ewww
./autogen.sh && make all install
EDIT: ewww repository missed “.git” extension.
EDIT.2: to get ewww you need git clone instead of git checkout.
Free Software & Hacking & INdT & Life & Linux & Maemo & ProFUSION & Python Gustavo Sverzut Barbieri on 26 Sep 2008
Talking about Python and Maemo at Mobility Week
Next week Ulisses, Luis Felipe and I will be at “Semana da Mobilidade” (Mobility Week), to be held at USP São Carlos, Brazil.
This is a great thing because we’ll be able to talk about Maemo and Python to undergrad students and try to show there is life (and paid jobs/work) beyond Windows and Java, .Net and Delphi. We already did a talk similar to that for UNICAMP students (although it was an informal talk) and attendees liked it.
I’ll present both a talk and a training. I plan to show how GNU/Linux development happens on desktop, how it needs to be changed for manual cross-compiling and how Maemo (mostly scratchbox) helps with that, then cover other changes, like Hildon-ization and hints on how to change user interface to make it usable for high-dpi but small screens, then say how Python can cut to the chase and avoid most of these troubles. This is a talk, so nothing will be in-depth. As for the training, I plan to go step-by-step scratchbox on the first day, cross compiling and port on the second and Python development on the third (4hours/day). Any ideas or suggestions?
Ulisses will discuss more generally life outside Windows-Java environment, trying to get students willing to work with GNU/Linux and open source in general. I’m not sure about other countries, but here in Brazil lots of students completely reject learning these Free/Open Source technologies because they think there is no opportunity to get paid to do such thing, so they focus on proprietary world, mostly on Windows and Java or .Net.
Luis will run the “Python for s60″ training, a hands-on training, covering the basics, how to send and run scripts on the phone, then go through some API to demo capabilities, then some real development.
Last but not least, this mark the start of a great partnership between INdT and ProFUSION.
Free Software & Hacking & INdT & Maemo & ProFUSION Gustavo Sverzut Barbieri on 16 Sep 2008
Generating Edje files using Inkscape and Gimp
One of the most boring work while doing Edje is having to measure all the parts and write them on your EDC files. It’s also very error prone. So why not make it automatic?
This idea is not new and at INdT we did that, for Gimp, where designers handle developers PSD (Photoshop) files and they open these in Gimp, outputting as edc using this script by Renato Chencarek.
Now at ProFUSION we’re finishing the UI of Enjoy, a music player to demo the power of Guarana framework (to be released soon!). I did the design using Inkscape, so I was wondering that I could join Renato and write an Inkscape-to-EDC converter, and here it is! Both files are now in E SVN under edje/utils.
If you like screenshots, here they are. You can also have a glimpse of Enjoy look (hey, I’m a developer, not a designer, so don’t shoot me! however suggestions are appreciated):
I hope this can help other EFL developers out there. I know some Maemo, OpenMoko and even aMSN guys are using it now.
Update#1: You need both inkscape and/or gimp to use the scripts.
Update#2: Scripts are written in Python, so you need it too.
Free Software & Hacking & INdT & Maemo & Python Gustavo Sverzut Barbieri on 25 Mar 2008
Canola model plugin example
You might know that INdT released Youtube plugin as free software, it’s great feature-wise and touches almost every part, providing new models, views and controllers, those with complex use cases like threaded models so GUI will not block during HTTP requests and even options menu.
That’s cool because one can do lots of things (and some users are already showing us some nice plugins!), but we still need some base text introducing people to the concepts, with smaller code, so here it is: Canola URLBookmark source code and text.
This introduces you to some concepts, explains about “plugins.info” and how plugins are loaded and in the end you have a list of URL to play. Of course this hard coded list of URL is on purpose so you take some time to change it to something more useful. If you ask me, I’d like to see UPnP, MPD, Samba, Avahi, Shoutcast and lots more.. I did my part, everything you need to know is there, now it’s your turn.
C & Free Software & Hacking & INdT & Life & Linux & Maemo & Python Gustavo Sverzut Barbieri on 21 Mar 2008
BossaConference ‘08: excellent!
So BossaConference ‘08 is over, what a great conference! Lots of great people, some are still around, doing some hacking with us at INdT office, it’s really great to have some time to discuss new ideas, drink some beers and play jokes
Let’s hope next year we can keep it to the level! Congrats to all the organization members.
C & Free Software & Hacking & INdT & Life & Linux & Maemo & Python Gustavo Sverzut Barbieri on 01 Mar 2008
Old website is now dead
My old website http://www.gustavobarbieri.com.br/ is now dead and points to this blog. It was ugly and hard to keep updated, using wordpress blog is much easier than hand editing HTML and provide lots of useful features, like rss feeds.
If you need some of the files hosted there, please use http://www.gustavobarbieri.com.br/old-website, although I did keep the links to most useful folders, like http://www.gustavobarbieri.com.br/eagle, http://www.gustavobarbieri.com.br/jogos and http://www.gustavobarbieri.com.br/python
Free Software & Hacking & INdT & Maemo & Python Gustavo Sverzut Barbieri on 02 Feb 2008
Problem solving, python rocks
So I was helping one Canola2 user to uninstall the old version and for some strange reason apt-get remove libeet0 libevas0 libecore0 libembryo0 libdownloadmanager0 was breaking with “Abort” message. Ok, use dpkg instead, I said, but since we now have split packages for all the libs we use, you’ll end with a dependency nightmare.
Solution? Hack a quick script to get dpkg errors, parse them and generate a new command line with proper ordering:
#!/usr/bin/python
import sys
pkgs = {}
infile = open(sys.argv[1])
pkg = None
for line in infile:
line = line[:-1] # chomp n
tokens = line.split()
head = tokens[0]
if head == "dpkg:":
if tokens[1] != "dependency":
continue
pkg = tokens[-1][:-1]
pkgs.setdefault(pkg, set())
elif head in ("Package", "dpkg", "dependency"):
continue
elif head == "Errors":
break # follows a list of problematic packages
else:
if tokens[1:3] == ['depends', 'on']:
pkgs[pkg].add(head)
def unique_extend(lst, extent):
for e in extent:
if e not in lst:
lst.append(e)
def rm_pkg(p, pkgs):
rm_list = []
try:
ddeps = pkgs[p]
except KeyError:
return [] # no deps!
for d in ddeps:
unique_extend(rm_list, rm_pkg(d, pkgs) + [d])
return rm_list
rm_list = []
for p in pkgs:
unique_extend(rm_list, rm_pkg(p, pkgs) + [p])
print "dpkg --purge", " ".join(rm_list)
Not that efficient, but simple enough.


