Planet Littlechina

brunodillyNew ProFUSION’s site built with nanoc

Hi there. New ProFUSION’s site is live at profusion.mobi! OK, kind of old news, but the new news is that it was made with nanoc.

nanoc is a nice tool to build small static websites. <joke> Sure, it’s written on Ruby, it won’t scale </joke>. It helps to convert articles written in Markdown language (making it easier to add posts), lay out pages, and has some helpers to common tasks like sorting posts and filtering stuff. Also, writing extra helpers is easy, even for non Rubyists.

But why moving from Drupal to a static website?

Ok, it’s faster to serve static HTML pages. But it wasn’t the main reason.

Actually, using Content Management Systems is time consuming, since you have to setup lots of things and update it all the time. And unless you already know the CMS you are using, you will spend a fair amount of time trying to figure out how to do what you want. In the other side, almost everybody here in the company already knows HTML and CSS, so anybody can change things quickly.

Another good reason is it is safer to host static websites. We had some security issues with Drupal recently.

If you are interested in knowing more about it, check the project’s page and wiki. Also, take a look at some sites made with nanoc, as Myst Online and Antognolli’s blog.

padovanTalk at Automotive Linux Summit

About a month ago I’ve been to the Automotive Linux Summit in Yokohama, Japan to present about the BlueZ stack and how it would fit in a CarKit system. You can find the slides here. The conference was very nice, about 200 attendees and many interesting talks.

Also on Dec, 1st I  attended the GENIVI Members Summit, where they created the Japanese working group of GENIVI.

Finally, I would like to thank Linux Foundation for sponsoring my travel to Yokohama.

anselmolsma

a

brunodillyOficina sobre Arduino no SESC Campinas

Dentre as várias atividades do Laboratório Hacker de Campinas (LHC), devido ao seu caráter prático, e normalmente de formato mais acessível para iniciantes em um tema, creio que as oficinas sejam a melhor forma de atrair mais pessoas para nosso espaço. E nos dias 19, 20, 26 e 27 de Novembro, realizamos a oficina gratuita “O que é o Arduíno?” na sala de Internet Livre do SESC Campinas.

Durante os quatro dias, eu e o Rafael Antognolli estivemos compartilhando informações com cerca de 20 pessoas que participaram da oficina. Os participantes eram bem heterogêneos,  variando de 7 a “muitos” anos, alguns sendo programadores ou alunos de mecatrônica  enquanto outros não tinham nenhum conhecimento técnico. Também contamos com a  colaboração do Alejandro, Celso, Leandro (acidx) e Thadeu Cascardo, membros do LHC, que apareceram em alguns destes dias, dando uma dinamicidade muito legal para a oficina.

Foto da Oficina no Sesc

Foto da Oficina no Sesc

O evento não exigia matrícula, e a maioria das pessoas que participaram simplesmente  estavam passando pelo local e decidiam aprender um pouco. Desta forma, a oficina tinha uma função muito introdutória, demonstrativa, com foco em pequenos projetos que  pudessem ser concluídos em pouco tempo ao invés de um grande projeto a ser desenvolvido por horas. Assim, foram feitos exemplos de uso de leds, sensores de luminosidade e de distância, botões, potenciômetros, servo motores e emissão de som com piezoelétricos.

Após algumas  montagens esses elementos eram unidos para gerar projetos um pouco mais elaborados. No fim iniciamos a montagem de um carrinho que se esquivaria de obstáculos, porém este não foi concluído. Possivelmente seguiremos com ele nas atividades da Introdução ao Arduino, às terças.

Para quem não conhece o Arduino, é uma plataforma de hardware livre, projetado com um microcontrolador de placa única, possui ambiente de desenvolvimento e linguagem de programação própria, que é semelhante ao C++. Possui várias bibliotecas que fazem com que a interação com os mais variamos componentes se torne muito simples. Por isso tem sido usado por artistas e hobbystas.

Um bom ponto de partida para os interessados, é a página do projeto.

brunodillyPalestra de Apresentação do LHC na Unicamp

Segunda-feira, dia 21 de Novembro, eu e meu camarada Antognolli apresentamos o Laboratório Hacker de Campinas na Unicamp, através da disciplina “Seminários sobre Software Livre”, ministrada pela professora Islene Garcia. Esta disciplina é uma iniciativa muito interessante por dar aos alunos da universidade a oportunidade de conhecer mais  sobre software livre e assuntos relacionados. A cada semana, há uma palestra sobre um tema diferente.

Inicialmente, fizemos uma apresentação do LHC, falando um pouco sobre o conceito de hackerspace, do histórico dos hackerspaces no mundo e no Brasil, dentro do que nossa pequena pesquisa permitiu. Citamos o Garoa e algumas atividades que ocorrem por lá, e depois falamos sobre o nosso grupo e espaço, como ele surgiu, o que tem sido feito no momento, e projetos futuros.

Após esta apresentação inicial, que durou por volta de uma hora, fizemos uma discussão com os presentes. Algumas pessoas demonstraram interesse em participar do grupo. Também  foram feitas algumas sugestões de atividades e formas de divulgação. Foi uma apresentação bem bacana.

Os slides apresentados podem ser vistos abaixo:

Versão pdf e odp também estão disponíveis.

brunodillyEFL at LinuxCon Brazil

Past week, I’ve attended LinuxCon Brazil as speaker. It took place in São Paulo, 17 and 18 November 2011. Despite not having a huge number of attendees, it was definitelly great in presentations quality.

Keynotes were interesting, relating the 20 years of Linux under many point of views, and previewing Linux’s future for the next 10 months ;) . Linus Torvalds confidence about Secure Boot failure drawn my attention. He defends his point considering users need, and want freedom, even in a unconscious way.

The event was plenty of good talks, as the given by Lennart Poettering, about systemd, a system and service manager, which I only had heard about previoulsy, so it was nice as an opportunity to learn a lot about it, and GNOME 3 presentation, given by Tobias Muller. It always worth to see what competitors are doing =D.

I’ve presented “Application Development using Enlightenment Foundation (EFL)” together with my co-worker Rafael Antognolli. We’ve made an overview of the libraries, webkit, gave some development tips, and talked about some products done at ProFUSION using EFL, as Electrolux’s I-Kitchen softwares, and Endeavour, a browser under development, sponsored by FINEP. Below you can see slides of our presentation, also available as PDF:

Other 3 talks were given by ProFUSION guys. Demarchi explained how to become a Free Software developer, focused on students and other newcomers. Gustavo Barbieri presented “Tips and Tricks to Develop Software for CE product on Low-End Hardware”, and “Demystifying HTML5″ with Sulamita Garcia (Intel). By the way, when the event started, was announced that ProFUSION became a member of Linux Foundation. Congrats!

Another nice point about attending this conference was the opportunity of knowing some guys from IBM, INDT, Samsung, and talking to some University colleagues I didn’t meet by the last 4 years or so.

padovanThe week at Prague

At the end of October I’ve been to Prague, Czech Republic to take part in this year Bluetooth Summit to discuss the issues and the future developments of the BlueZ Project. It was the biggest BlueZ meeting we ever had, in total there was 21 people attending our summit.

The discussions were dominated by the next steps in the Low Energy, Bluetooth 3.0 + High Speed and BlueZ 5.0 (our next major release). On the LE energy side the discussion were in all parts of its stacks, there are pending patches for the interleaved discovery, Management commands for LE, RSSI and Tx power handling. and the development on GATT was one of the most discussed things.

On the BlueZ 5.0 side we are going to drop a lot of old stuff like pand and dund daemons, IPC mechanism for audio as well some of our DBus API we already marked as deprecated. In the management API side the idea is to finish it as soon as possible and enable it by default in the kernel, then some day in the future we can get rid of hciops and raw access to HCI sockets in bluetoothd.

My summit tasks are finish the L2CAP separation in sock and core parts and move the Bluetooth subsystem to use workqueues instead of tasklets. ;-)

After the Bluetooth Summit I attended the open day of the kernel summit, you can find nice reports of it in LWN here and here.

On Wednesday both LinuxCon Europe and Embedded Linux Conference Europe started. It was certainly a good idea to put both conferences together in the same place at the same time, I had the opportunity to meet people and see talks from both conferences. Some of the talks I took part were “Demystifying HTML5″ by Sulamita Garcia & Gustavo Barbieri, “The Linux NFC Subsystem” by Lauro Ramos Venancio & Samuel Ortiz. “systemd Administration in the Enterprise” by Lennart Poettering & Kay Sievers. “Linux for In-Car Infotainment” by Matt Jones.

Finally, I would like to thank ProFUSION to sponsor my travel to Prague.

brunodillyInauguração do Laboratório Hacker de Campinas

Neste feriado, dia 12 de Outubro, ocorreu a inauguração do LHC, Laboratório Hacker de Campinas, primeiro hackerspace da cidade.

A festa contou com a presença de 30 a 40 pessoas, não apenas da cidade, mas também de Limeira, Americana e São Paulo. Fomos prestigiados pela visita do pessoal do Garoa Hacker Clube, que doou material e fez uma arte em nossas paredes. Algumas fotos já foram publicadas.

O LHC está situado, desde 15 de Setembro, em uma sala do espaço Árvore Coworking, na Avenida Orozimbo Maia, 1264 (mapa). Temos um wiki para o hackerspace em http://lhc.net.br/, e um canal na Freenode, #hackerspace-cps.

Como estamos nos primeiros passos, ainda temos poucas atividades:

  • Introdução ao Arduino às terças;
  • Grupo de estudos de IA;
  • Hacking Nights, esporadicamente.

Se tiver intesse, venha conhecer o lugar, participar de alguma atividade, se torne um membro.

padovanBluetooth Changes for Linux 3.1

The 3.1 release is coming and it’s time to see what have changed in the Bluetooth subsystem. The biggest part of the changes are related to Bluetooth Low Energy, Andre Guedes worked in adding LE Adversiment cache support, all the remote devices found are cached in a list and after a defined timeout this list is flushed. Vinicius Gomes and Anderson Briglia added a initial implementation of the LE Security Manager Protocol. At the moment only JustWorks pairing is implemented.

Gustavo Padovan worked in another L2CAP refactoring patchset towards a clear  separation between l2cap_core.c and l2cap_sock.c. Peter Hurley fixed a lot of potential deadlock over all the Bluetooth subsystem. Mat Martineau reworked the local busy handling inside the L2CAP Enhanced Retransmission Mode.

There is also many minor changes, fixes and clean ups, like HCI auth path fixes by Waldemar Rymarkiewicz, remote device blacklisting in the MGMT interface  among many others.

A full changelog can be viewed issuing the following command in linus’ tree:

git shortlog -n v3.0..origin/master –no-merges  net/bluetooth/ include/net/bluetooth/ drivers/bluetooth/

padovanBluetooth SAP Client into oFono and BlueZ

During the last weeks I’ve worked in adding Bluetooth Sim Access Profile (SAP)   Client Side support to oFono and BlueZ. This work was done by me at ProFUSION and  sponsored by Linux Foundation.

The Bluetooth Sim Access Profile enables a device to use a remote SIM card as its own SIM card. Between the benefits are ability to user others features than phone calls, like data connections, SMS, etc.  This is an advantage over the Handsfree Profile, that only supports phone calls. It also uses less power due to audio part, that is not streamed over the Bluetooth link like in the Handsfree Profile but instead is handled locally.

In the development I used the Telit UC864-G module. This module has built-in SAP Client support and other features that a common modem has to have.

The Telit modem has no Bluetooth support, then the main work was to modify oFono in order to connect a Bluetooth RFCOMM socket coming from BlueZ to a Serial port coming from Telit module. This Serial port give/receive SAP protocol messages.  So anything we got from it can be passed without changes to the RFCOMM socket and vice-versa.

The work was divided in two parts, in BlueZ fd-passing support was added to the Serial API through a method called Serial.ConnectFD(). This was an already planned change by BlueZ developers for the upcoming BlueZ 5.0 release. This a generic method to get a RFCOMM socket, it can be used for any purpose or by any profile.

On the oFono side, the Bluetooth infrastructure plugin was used to create a new SAP plugin that is aware of any remote device with Bluetooth SAP Server support that we paired, it also tracks if any SAP Client enabled modem is available. If the two conditions holds true a new oFono modem instance is created to connect the paired device with the SAP enabled hardware. Of course, this modem works like any other oFono modem and one can do the usual phone operations with it.

The implementation inside oFono is modular enough to easily support any other SAP enabled modem that comes to the market in the future.

It’s important to note that all the work related to the SAP Client implementation is already upstream in both BlueZ and oFono repositories.

Finally, I would like to thank Denis Kenzior, oFono maintainer, by the help on reviewing and improving the SAP code.

padovanGSoC: BlueZ projects sucessfullly finished

During this summer four students took part in Google Summer of Code with BlueZ. All four have passed the final term and produced a lot of code. Each of them the wrote a report about their projects. The reports were posted in bluez.org. Here follows the links:

Improve EDS backend of Phone Book Access Profile (PBAP)
Student: Bartosz Szatkowski
Mentor: Claudio Takahasi

Nintendo Wii Remote Device Driver
Student: David Herrmann
Mentor: Gustavo Padovan

Implementing the Basic Imaging Profile(BIP)
Student: Jakub Adamek
Mentor: Vinicius Gomes

Implement the Video Distribution Profile(VDP)
Student: Prasad Bhat
Mentor: Luiz Augusto von Dentz

That is it for this summer, I’m hoping to have another great summer on GSoC next year.

padovanBluetooth Changes for Linux 3.0

Yet another busy release. More than a hundred of commits for the Bluetooth subsystem will be in the upcoming kernel 3.0 release.

Those patches has the last bits for the Management Interface, By Johan  Hedberg. There should be things to fix and minor features to implement, especially about Bluetooth Low Energy, but the hard work is done.

Another big set of changes is in the L2CAP layer, where Gustavo Padovan is rewritten some parts of it to remove the socket dependence from the L2CAP core. This will help fix many issues in the RFCOMM layer and will help the AMP Manager implementation.

Szymon Janc worked in add Out Of Band Pairing Support to the Management Interface and to replace the kernel_thread() usage with the kthread API among other fixes.

There is also support for 16 digit PIN code in the Legacy Pairing, and lot of bug fixing and clean ups.

padovanBluetooth Security

As part of the Cryptographic course with Professor Julio López for my graduation at University of Campinas  – Brazil – I wrote a small article about Bluetooth Security. I also did a presentation.

The article is available here and the slides here. Please pay attention that my English is far from good and this article may contain many English errors.

Also the article is not intended to be something professional now, it lacks many good stuff, like cryptanalysis of ciphers used in Bluetooth and history of attacks to Bluetooth Security. But it is a start, I plan to update it as I have time.

So please drop me an e-mail  (or a comment on this blog) if you have corrections or suggestions for the text.

Enjoy!

padovanAnother report on MeeGo Conference

MeeGo Conf happened from May 23-25, in San Francisco, CA at the Hyatt Embacadero Center and I went there to meet the MeeGo people, especially people from projects that I develop like ConnMan, oFono and BlueZ and check what are the new stuff on MeeGo.

This time we had no free devices! But we had the announcement of MeeGo tablet during the Conference keynote, one of the first devices running MeeGo.

Some talks I attended there: “MeeGo connectivity: State of the union – what comes next …” by Marcel Holtmann,  who talked about how far we got with ConnMan, oFono and BlueZ integration to give a solid connectivity  platform.; “Connman Tethering API” by Samuel Ortiz which showed a quite easy to use free software tethering implementation. Samuel evene mentioned me in his talk due to some work I did on the ConnMan’s PrivateNetwork API (one of the pieces of the Thethering code); “Qt Open Governance Progress” by Tiago Maciera talking about how Qt will be managed by community and “Systemd for MeeGo – fastboot 2.0?” by Auke Kok reporting the speed ups gains with the systemd, that will be  in MeeGo 1.3 (the next version).

Also I was able to discuss with Marcel some issues I’m having in the rewrite of the L2CAP Protocol (Expect a post on this subject soon!)

It was nice see lot of new stuff about MeeGo and that its commit is doing great even with Nokia’s back out, more people are joining MeeGo and release 1.3 will be a lot better.

Finally, I would like to thank ProFUSION and MeeGo Conference for sponsor my travel to San Francisco.

anselmolsmQt Contributors’ Summit

I'm going to the Qt Contributors' Summit

 

We are in Berlin, attending the Qt Contributor’s Summit. 265 people are discussing very important (and interesting) topics for Qt 5 and the open governance. You can follow what’s happening here using the hash code #qtcs on several social networks. And of course, you can check the wiki page of the event.

Personally, I am attending sessions related with QML, Qt-Components, DevNet and open governance.

And yesterday was Thursday, also known as the “Yellow Day”:

Ok, Ademar was not wearing yellow t-shirt. Well, imagine him as the goalkeeper of the team ;)

 

padovanA little report of MeeGo Conference

In the end of the last month I attended MeeGo Conference in San Francisco, CA. The conference venue was very nice, and they managed to create a quite nice hacker lounge, with comfortable couches and free beer! :-)

There I attended some talks, as long as the opening keynote. The keynote was not that good, much more focused in the Linux success on mobile than MeeGo itself. But the talks were all about MeeGo, of course.

And like any other conference it was a nice time to assign faces to nick and meet people who you talk everyday in the internet.

Brazilians at MeeGo Conference - by gustavoboiko

Brazilians at MeeGo Conference - by Gustavo Boiko

As it was my first time in San Francisco, I also managed to do some sightseeing, so I visited the Golden Gate Bridge among other places

See you around!

anselmolsmMeego Conf 2011 – San Francisco

I am in San Francisco (again! =), now for the MeeGo Conference 2011.

The event is about to begin with the keynote “The Future of MeeGo Starts Now” presented by the president of Linux Foundation, Jim Zemlin.

This time, I’m going to present a talk in the event too! The talk is today and the topic is “Writing applications for multiple MeeGo devices”.

There are other talks by openBossa/INdT guys, check the schedule!

padovanI’m going to MeeGo Conference

In two days I’ll be in San Francisco – California to attend the MeeGo Conference from May 23-25. I see you there. ;-)

brunodillyNines Time

I’m migrating the game Nines Time from github to our beloved svn repository. Tonight, finally, I had time to fix the last 2 known bugs and substitute an image for something a bit less fugly. My hope is that, being there, more people will notice its existence, using it like an example of python bindings usage, will play it, and (who knows) maybe contribute to make it better.
Nines Time is a game about digit 9 tyranny over the other digits. You are a 6 undercovered for years studying the 9s and providing information for your HQ so you could stop them, but your arms fail after years of handplant and you need to survive for 9 minutes until your pals rescue you. What’s your weapon? Math, dude! You need to operate the number trying to get you.
It started as an entry for last month PyWeek, as jprvita already mentioned on his blog, when I “worked” with him, acidx and antognolli. Actually, it was more about fun than anything else. Using efl python bindings is really straight-forward. If you’re interested on the development process during the challenge, there’s a diary.
Some people complained about the chosen music. It’s Priya’s Journey fault for not recording anything so far ;)
Check out right now and enjoy:
svn co http://svn.enlightenment.org/svn/e/trunk/GAMES/ninestime 

Nines Time Intro Nines Time Gameplay

padovanBlueZ: GSoC students announced

Last Monday Google announced the students accepted to take part in 2011 edition of Google Summer of Code. BlueZ this time got four slots. Our projects, and students, for this year are:

Improve EDS backend of Phone Book Access Profile (PBAP)
Student: Bartosz Szatkowski
Mentor: Claudio Takahasi

Nintendo Wii Remote Device Driver
Student: David Herrmann
Mentor: Gustavo Padovan

Implementing the Basic Imaging Profile(BIP)
Student: Jakub Adamek
Mentor: Vinicius Gomes

Implement the Video Distribution Profile(VDP)
Student: Prasad Bhat
Mentor: Luiz Augusto von Dentz

Besides the mentors, Johan Hedberg and Marcel Holtmann along with whole community will also support the students helping them with doubts and technical decisions. We expect to have a very productive summer, happy hacking to all students. ;)

Footnotes