Feed on Posts or Comments

Category ArchiveINdT



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.

Hacking & INdT & Life & Linux & Maemo & Python Gustavo Sverzut Barbieri on 01 Feb 2008

Canola2 beta2 is out!

After another heavy working week, we managed to deliver a new beta of Canola2, this time with lots of bug fixing (thanks for reporting!), features and optimizations. Also features 770* support, a new tool to merge albums (collections or albums with similar name) and lots of new media formats (wma/wmv and real media included!).

UPDATE: Since we replaced our download manager, previous packages conflicts! Please remove Canola2-beta1 before installing the new one. If you got it wrong, apt-get -f install from Xterm should fix it.

Hope installation will be smoother this time!

More information at: http://openbossa.indt.org/canola2/

* 770 support: gregale is regular install, but for Hacker Edition (bora ported to 770) you need a special proceeding (ain’t you hackers!?):

  1. disable all repositories
  2. add the repositories:
    1. deb http://repository.maemo.org gregale free non-free
    2. deb http://repository.maemo.org/extras gregale free non-free
  3. update list
  4. install canola2
  5. remove gregale repositories

These steps are required because Hacker Edition kernel doesn’t provide inotify and we compile bora EFL packages optimized for n8xx (omap 2420, arm1136jf-s).

C & Free Software & Hacking & INdT & Maemo & Python Gustavo Sverzut Barbieri on 23 Jan 2008

Ruby bindings and bugfixes for LightMediaScanner

Thanks to Levi Bard we now have ruby-lightmediascanner, with even API docs!

On the bug fixes front, after Canola2 was released and it was tested with multitude of media I could fix lots of bugs with parsers, mainly on jpeg and id3lib.

Last but not least, thanks to Renato Chencarek we now have ogg support, and I also added png and audio-dummy to register known media files we still have no specific parsers (real, wma, …)

It’s already stable, when I have time I’ll add a non-dual process version of process and check, so people with “correct” media files can use this and benefit from a much faster version (however this will rely on developers adding support to choose both implementations).

C & Free Software & Hacking & INdT & Life & Linux & Maemo & Python Gustavo Sverzut Barbieri on 21 Jan 2008

Bossa Conference 2008

And so the time has come, almost 1 year since the first Bossa Conference 2007. That was an amazing conference, with exuberant place near the beach, great speakers and lots of time to enjoy both. Since the scope is well defined: Linux and other Free Software in mobile devices, the speakers are really well selected, we could manage to have free time to talk to each other, without going from one side to another, running like crazy and if you have attended conferences before you know what I mean: these casual chats are the best way to know about new features and plans (maybe unofficial or secret ;-)), elaborate new ideas, etc.

That conference was so great that INdT is now promoting another, actually much improved:

Bossa Conference 2008

Come and enjoy a innovative conference on Open Source Software for Mobile Embedded Platforms. Located in Porto de Galinhas, one of the tropical paradises of Brazil, the Bossa Conference will happen during 16th to 19th of March at Summerville Beach Resort. The perfect combination of developers, pleasant environment and good ideas.

Let’s go! We’re waiting for you.

Information and registration: www.bossaconference.org.

C & Free Software & Hacking & INdT & Maemo & Python Gustavo Sverzut Barbieri on 13 Dec 2007

LightMediaScanner 0.1 released!

INdT released today under LGPL the public release of LightMediaScanner (LMS), a lightweight media scanner that will be used by Canola 2.0 and, we hope, many other multimedia software!

Lightweight media scanner meant to be used in not-so-powerful devices,
like embedded systems or old machines.

Provides an optimized way to recursively scan directories, handling
the parser in a child process, avoiding breaks of the main process
when parsers break (quite common with such bad libs and tags).

Parsers are plugins in the form of shared objects, so it’s easy to add
new without having to recompiling the scanner.

The scanner will use SQLite3 to store file-mtime association, avoiding
parsing files that are already up-to-date. This SQLite connection and
the file id within the master table ‘files’ are handled to plugins for
relationship with other tables.

Check out the code, it’s really simple to use and write new parser plugins:

Hacking & INdT & Life & Maemo Gustavo Sverzut Barbieri on 11 Dec 2007

Canola driving people crazy!

After many, many… did I say many? sleepless nights finishing the new Canola version, some guys at the office were like this:

The actor is Kenneth, our little danish fellow.

Hacking & INdT & Maemo & Python Gustavo Sverzut Barbieri on 02 Dec 2007

Canola 2 teaser website launched!

Eager to test new Canola? Check http://openbossa.indt.org.br/canola/index2.html!

Canola2 teaser site preview

Our designers did this wonderful piece of work in order to us developers check what/how to do things and now they made it available to everyone so you can start to wonder how it would be to use it :-)

As Marcelo said in his blog, this is a teaser, not the real product, so you might expect some different bits here and there, we’ll fix these issues as we find them.

Also, for those that looked at the website and thought “ah, not much compared to the previous version”, don’t understand this release as a feature release, but instead as the foundations that we’ll build upon and then release new feature releases. It was a huge amount of work to improve underlying system, rewrite everything in Pyhton, write bindings to new libraries, rethink how some things should be done.

For those Free and Open Source developers: unfortunately we’ll keep it closed for now (same talk as before), but at least much, much more of our work is open source that you can already use and benefit from our improvements: The whole graphical ui is based on EFL, media scanner is based on lightmediascanner, UPnP will be based on BRisa, video player is MPlayer

Next Page »