Patches submitted which have not made their way to the archive yet:

#809780 on flask-restful by Chris Lamb: implement support for SOURCE_DATE_EPOCH in the build system.

#810259 on avfs by Chris Lamb: implement support for SOURCE_DATE_EPOCH in the build system.

#810509 on apt by Mattia Rizzolo: ensure a stable file order is given to the linker.

reproducible.debian.net
Add 2 more armhf build nodes provided by Vagrant Cascadian. This added 7 more armhf builder jobs. We now run around 900 tests of armhf packages each day. (h01ger)
The footer of each page now indicates by which Jenkins jobs build it. (h01ger)

diffoscope development
diffoscope 45 has been released on January 4th. It features huge memory improvements when comparing large files, several fixes of squashfs related issues that prevented comparing two Tails images, and improve the file list of tar and cpio archive to be more precise and consistent over time. It also fixes a typo that prevented the Mach-O to work (Rainer M ller), improves comparisons of ELF files when specified on the command line, and solves a few more encoding issues.

Package reviews
134 reviews have been removed, 30 added and 37 updated in the previous week.
20 new fail to build from source issues were reported by Chris Lamb and Chris West.
prebuilder will now skip installing diffoscope to save time if the build results are identical. (Reiner Herrmann)

reproducible.debian.net
Packages identified as failing to build from source with no bugs filed and older than 10 days are scheduled more often now (except in experimental). (h01ger)
Package reviews
178 obsolete
reviews have
been removed, 59 added and 122 updated this week.
New issue identified this week: random_order_in_ruby_rdoc_indices.
18 new bugs for packages failing to build from sources have been reported by Chris West (Faux), and h01ger.

28 September 2014

A few months ago I was showing my friend Bruno Souza the work I had been doing with my childhood friend and robotics genius, David Hanson. I had been watching what David was going through in his process of creating life-like robots with the limited industrial software available for motor control. I had suggested to David that binding motors to Blender control structures was a genuinely viable possibility. David talked with his forward looking CEO, Jong Lee, and they were gracious enough to invite me to Hong Kong to make this exciting idea a reality. Working closely the HRI team (Vytas, Gabrielos, Fabien and Davide) with David s friend and collaborators at OpenCog (Ben Goertzel, Mandeep, David, Jamie, Alex and Samuel) a month long creative hack-fest yielded pretty amazing results.
Bruno is an avid puppeteer, a global organizer of java user groups and creator of Juggy the Java Finch, mascot of Java users and user groups everywhere. We started talking about how cool it would be to have a robot version of Juggy. When I was in China I had spent a little time playing with Mark Tilden s RSMedia and various versions of David s hobby servo based emotive heads. Bruno and I did a little research into the ROS Java bindings for the Robot Operating System and decided that if we could make that part of the picture we had a great and fun idea for a JavaOne talk.
Hunting and gathering
I tracked down a fairly priced RSMedia in Alaska, Bruno put a pair of rubber Juggy puppet heads in the mail and we were on our way.
We had decided that we wanted RoboJuggy to be able to run about untethered and the new RaspberryPi B+ seemed like the perfect low power brain to make that happen. I like the Debian based Raspbian distributions but had lately started using the netinst Pi images. These get your Pi up and running in about 15 minutes with a nicely minimalistic install instead of a pile of dependencies you probably don t need. I d recommend anyone interested I m duplicating our work to stay their journey there:
Raspbian UA Net Installer
Robots seem like an embedded application but ROS only ships packages for Ubuntu. I was pleasantly surprised that there are very good instructions for building ROS from source on the Pi. I ended up following these instructions:
Setting up ROS Hydro on the Raspberry Pi
Building from source means that all your install ends up being isolated (in ROS speak) and your file locations and build instructions end up being subtly current. As explained in the linked article, this process is also very time consuming. One thing I would recommend once you get past this step is to use the UNIX dd command to back up your entire SD card to a desktop. This way if you make a mess of things in later steps you can restore your install to a pristine Raspbian+ROS install. If your SD drive was on /dev/sdb you might use something like this to do the job:

Getting Java in the mix
Once you have your Pi all set up with minimal Raspbian and ROS you are going to want a Java VM. The Pi runs the ARM CPU so you need the corresponding version of Java. I tried getting things going initially with OpenJDK and I had some issues with that. I will work on resolving that in the future because I would like to have a 100% Free Software kit for this but since this was for JavaOne I also wanted JDK8, which isn t available in Debian yet. So, I downloaded the Oracle JDK8 package for ARM.
Java 8 JDK for ARM
At this point you are ready to start installing the ROS Java packages. I m pretty sure the way I did this initially is wrong but I was trying to reconcile the two install procedures for ROS Java and ROS Hydro for Raspberry Pi. I started by following these directions for ROS Java but with a few exceptions (you have to click the install from source link in the page to see the right stuff:
Installing ROS Java on Hydro
Now these instructions are good but this is a Pi running Debian and not an Ubuntu install. You won t run the apt-get package commands because those tools were already installed in your earlier steps. Also, this creates its own workspace and we really want these packages all in one workspace. You can apparently chain workspaces in ROS but I didn t understand this well enough to get it working so what I did was this:

and then copied the sources installed into ~/rosjava/src into my main ~/ros_catkin_ws/src. Once those were copied over I was able to run a standard build.

> catkin_make_isolated --install

Like the main ROS install this process will take a little while. The Java gradle builds take an especially long time. One thing I would recommend to speed up your workflow is to have an x86 Debian install (native desktop, QEMU instance, docker, whatever) and do these same build from source installs there. This will let you try your steps out on a much faster system before you try them out in the Pi. That can be a big time saver.
Putting together the pieces
Around this time my RSMedia had finally showed up from Alaska. At first I thought I had a broken unit because it would power up, complain about not passing system tests and then shut back down. It turns out that if you just put the D batteries in and miss the four AAs that it will kind of pretend to be working so watch for that mistake. Here is a picture of the RSMedia when it first came out of the box:
Other parts were starting to roll in as well. The rubber puppet heads had made their way through Brazilian customs and my Pololu Mini Maestro 24 had also shown up as well as the my servo motors and pan and tilt camera rig. I had previously bought a set of 10 motors for goofing around so I bought the pan and tilt rig by itself for about $5(!) but you can buy a complete set for around $25 from a number of EBay stores.
Complete pan and tilt rig with motors for $25
A bit more about the Pololu. This astonishing little motor controller costs about $25 and gives you control of 24 motors with an easy to use and high level serial API. It is probably also possible to control these servos directly from the Pi and eliminate this board but that will be genuinely difficult because of the real-time timing issues. For $25 this thing is a real gem and you won t regret buying it.
Now it was time to start dissecting the RSMedia and getting control of its brain. Unfortunately a lot of great information about the RSMedia has floated away since it was in its heyday 5 years ago but there is still some solid information out there that we need to round up and preserve. A great resource is the SourceForge based website here at http://rsmediadevkit.sourceforge.net.
That site has links to a number of useful sites. You will definitely want to check out their wiki. To disassemble the RSMedia I followed their instructions. I will say, it would be smart to take more pictures as you are going because they don t take as many as they should. I took pictures of each board and its associated connections as dismantled the unit and that helped me get things back together later. Another important note is that if all you want to do is solder onto the control board and not replace the head then its feasible to solder the board in place without completely disassembling the unit. Here are some photos of the dis-assembly:
Now I also had to start adjusting the puppet head, building an armature for the motors to control it and hooking it into the robot. I need to take some more photos of the actual armature. I like to use cardboard for this kind of stuff because it is so fast to work with and relatively strong. One trick I have also learned about cardboard is that if you get something going with it and you need it to be a little more production strength you can paint it down with fiberglass resin from your local auto store. Once it dries it becomes incredibly tough because it soaks through the fibers of the cardboard and hardens around them. You will want to do this in a well ventilated area but its a great way to build super tough prototypes.
Another prototyping trick I can suggest is using a combination of Velcro and zipties to hook things together. The result is surprisingly strong and still easy to take apart if things aren t working out. Velcro self-adhesive pads stick to rubber like magic and that is actually how I hooked the jaw servo onto the mask. You can see me torturing its first initial connection here:
Since the puppet head had come all the way from Brazil I decided to cook some chicken hearts in the churrascaria style while I worked on them in the garage. This may sound gross but I m telling you, you need to try it! I soaked mine in soy sauce, Sriracha and chinese cooking wine. Delicious but I digress.
As I was eating my chicken hearts I was also connecting the pan and tilt armature onto the puppet s jaw and eye assembly. It took me most of the evening to get all this going but by about one in the morning things were starting to look good!
I only had a few days left to hack things together before JavaOne and things were starting to get tight. I had so much to do and had also started to run into some nasty surprises with the ROS Java control software. It turns out that ROS Java is less than friendly with ROS message structures that are not built in . I had tried to follow the provided instructions but was not (and still have not) been able to get that working.
Using unofficial messages with ROS Java
I still needed to get control of the RSMedia. Doing that required the delicate operation of soldering to its control board. On the board there are a set of pins that provide a serial interface to the ARM based embedded Linux computer that controls the robot. To do that I followed these excellent instructions:
Connecting to the RSMedia Linux Console Port
After some sweaty time bent over a magnifying glass I had success:
I had previously purchased the USB-TTL232 accessory described in the article from Dallas awesome Tanner Electronics store in Dallas. If you are a geek I would recommend that you go there and say hi to its proprietor (and walking encyclopedia of electronics knowledge) Jim Tanner.
It was very gratifying when I started a copy of minicom, set it to 115200, N, 8, 1, plugged in the serial widget to the RSMedia and booted it up. I was greeted with a clearly recognizable Linux startup and console prompt. At first I thought I had done something wrong because I couldn t get it to respond to commands but I quickly realized I had flow control turned on. Once turned off I was able to navigate around the file system, execute commands and have some fun. A little research and I found this useful resource which let me get all kinds of body movements going:
A collection of useful commands for the RSMedia
At this point, I had a usable set of controls for the body as well as the neck armature. I had a controller running the industry s latest and greatest robotics framework that could run on the RSMedia without being tethered to power and I had most of a connection to Java going. Now I just had to get all those pieces working together. The only problem is that time was running out and I only had a couple of days until my talk and still had to pack and square things away at work.
The last day was spent doing things that I wouldn t be able to do on the road. My brother Erik (and fantastic artist) came over to help paint up the juggy head and fix the eyeball armature. He used a mix of oil paint, rubber cement which stuck to the mask beautifully.
I bought battery packs for the USB Pi power and the 6v motor control and integrated them into a box that could sit below the neck armature. I fixed up a cloth neck sleeve that could cover everything. Luckily during all this my beautiful and ever so supportive girlfriend Becca had helped me get packed or I probably wouldn t have made it out the door.
Welcome to San Francisco
THIS ARTICLE IS STILL BEING WRITTEN

26 February 2011

Given that Chromium/Chrome is used more and more (as became apparent
with the discussion of including it in Debian's squeeze), I decided to
give it some tries, mainly Giuseppe Iuculano's version. I occasionally
install Chromium from Fabien Tassin's daily builds.
And, to be honest, I have also contributed a good amount (about 400) of
translated strings to the Brazilian Portuguese part of Chromium. As a
matter of fact, I have even done some "activism" and incentivatedotherpeople to create their accounts on Launchpad and help with
the projects.
But I always come back to Iceweasel/Firefox, especially with Mike Hommey's
frequently updated repository.
What are my reasons for staying with Iceweasel, and not with Chromium?

I can disable full zoom in Iceweasel (i.e., I only want to zoom the text,
not the images). According to Chromium's project BTS, it seems that this
will be a WONTFIX bug, despite many people asking for it (and it having
a lot of duplicates).

I can, in Iceweasel, set my preferred fonts without resorting to hacks on
the system level, like say, having to lie with fontconfig or other stuff.
And I really want Deja Vu Sans, not a serifed font.

In Iceweasel, a middle mouse click on "an inactive portion" of the page
makes me go to the URL that is the system clipboard, just like pasting
stuff in X, in general, works. I guess that there may be some way to
enable this in Chromium, but, so far, I have not found it.

In Iceweasel, I have a way (without resorting to many extensions or
hackish solutions) to use the equivalent of Firefox's "View > Page Style >
No Style" (i.e., to ignore any CSS sheet that the document author may have
specified on the page).

In Iceweasel, my personal data is encrypted before being synced.

In Iceweasel, I can press Ctrl+Q and make the damn browser quit, instead
of me having to use the mouse/trackpad/pointing device. This is probably a
lack of my understanding on how to associate key bindings to Chromium, but
the problem still stands.

Similarly, when there is only one tab open, pressing Ctrl+W in Chromium
does not close the tab (say, presenting me a blank tab or the list of most
visited sites), nor it closes the application.

I would be satisfied if any of the above were fixed or better documented,
but it seems that some of those are, at best, going to wait a long time.

1 November 2010

It s already the fourth issue of Flattr FOSS: it means 20 different projects using Flattr that I presented you. Here are the 5 suggestions for November:

Redshift is a small utility that adjusts the color temperature of your screen to make it less aggressive on your eyes, in particular during evening/nights. It uses the time of the day and the geographic location to know whether it s night or day. I discovered it this summer and I liked it, although I m not running it permanently.

Noscript is a Firefox plugin to control what sites can execute javascript, flash and other plugins. All those are creating supplementary security risks and you browse safer if you allow only some sites to run them. This is the number one entry on Flattr in the opensource category, it recently took the place of dpkg.

phyMyAdmin is a web interface to manage MySQL databases. If you have such a database on a web-hosting service, you have likely already seen it in action. It s an award-winning software with a 12 year history, it s not so common for PHP applications.

Chromium maintenance in Debian. Chromium is a rapidly-evolving & complex software and Giuseppe Iuculano has been tirelessly working on packaging it. Almost alone within Debian. He deserves kudos for his work even though he reused work made by Fabien Tassin on the Ubuntu package.

Dulwich is a pure-Python implementation of the Git file formats and protocols. It s an important building block for interoperability between Bazaar and Git: bzr-git (a Bazaar plugin providing Git integration) is notably using it. Given the large usage of bzr in Ubuntu and the popularity of Git world-wide, it s important to have such gateways.

6 November 2007

...at least, in my opinion (which is obviously biased, let's admit that). There are several reasons for this loss:

Strategic choices: Bernard Laporte deliberately chose to use the same
tactic against England and New Zealand. However, the tactic that worked
against New Zealand failed against England, mostly because that tactic...is
just the play of the English team. So, as we say in French, "les Bleus"
entered the game of England and therefore made the task easier for them.

The choice of players. This is the result of the previous item.
Reconducting the entire team that won against NZ was IMHO a bad idea. It is
not a scoop that I dislike Rapha l Ibanez or Fabien Pelous and I would
rather have seen the punch of Dimitri Szarzewski or, for once, S bastien
Chabal beginning the game (actually, he entered pretty quickly because of
Pelous' injury).

Several failures to occupy the English side with kick play. In many
occasions, kick shots by either Beauxis, Traille or Jauzion missed their
target. This is IMHO the main reason for the defeat.

Too many drop tentatives. When they were in the English side, why the
hell did they choose to kick drops several times instead of just play. That
sounds like a fear of not scoring and the French lost several key balls with
that miserable tactic.

Too many lost balls in mauls. That is not only a failure by the French
but also good defense play by the English team.

Discipline. It happened only once (high tackle by Dimitri Szarzewski)
but that was *the* moment where no error was possible and it offered an
ideal penalty kick to Wilkinson.

Bad luck. We can't rule out that one. The difference is 5 points: this
stupid 1st minute try....and the missing 50 centimeters on Chabal's action
in the last minutes.

Some *bad* reasons for the English victory:

Johnny Wilkinson influence: this is untrue. Apart from his drop goal,
he missed penalty kick tentatives and his kick play was not brilliant during
the same. I much preferred Andy Gomarsall during that game.

Scrums. They didn't crush the French scrum which is one of the
satisfactions of that game. The English team even had to cheat slightly
during 1st half time to win their scrums.

Good play. No. Watching the game again, there was as many bad choices in
the English side than in French side. I can only enhance their defense, not
their attack. So, as I wrote immediately after the
game, that one was one of the worst matches in the entire WC.

The referee. Before the game, some French newspapers were doubting of Mr. Kaplan
because he's South-African (funnily, some English newspapers were also
doubting because he was supposed to advantage England's opponents in the past). He was indeed perfect. Anyway, everybody knows I
never blame referees in sports.

14 October 2007

...at least, in my opinion (which is obviously biased, let's admit that). There are several reasons for this loss:

Strategic choices: Bernard Laporte deliberately chose to use the same
tactic against England and New Zealand. However, the tactic that worked
against New Zealand failed against England, mostly because that tactic...is
just the play of the English team. So, as we say in French, "les Bleus"
entered the game of England and therefore made the task easier for them.

The choice of players. This is the result of the previous item.
Reconducting the entire team that won against NZ was IMHO a bad idea. It is
not a scoop that I dislike Rapha l Ibanez or Fabien Pelous and I would
rather have seen the punch of Dimitri Szarzewski or, for once, S bastien
Chabal beginning the game (actually, he entered pretty quickly because of
Pelous' injury).

Several failures to occupy the English side with kick play. In many
occasions, kick shots by either Beauxis, Traille or Jauzion missed their
target. This is IMHO the main reason for the defeat.

Too many drop tentatives. When they were in the English side, why the
hell did they choose to kick drops several times instead of just play. That
sounds like a fear of not scoring and the French lost several key balls with
that miserable tactic.

Too many lost balls in mauls. That is not only a failure by the French
but also good defense play by the English team.

Discipline. It happened only once (high tackle by Dimitri Szarzewski)
but that was *the* moment where no error was possible and it offered an
ideal penalty kick to Wilkinson.

Bad luck. We can't rule out that one. The difference is 5 points: this
stupid 1st minute try....and the missing 50 centimeters on Chabal's action
in the last minutes.

Some *bad* reasons for the English victory:

Johnny Wilkinson influence: this is untrue. Apart from his drop goal,
he missed penalty kick tentatives and his kick play was not brilliant during
the same. I much preferred Andy Gomarsall during that game.

Scrums. They didn't crush the French scrum which is one of the
satisfactions of that game. The English team even had to cheat slightly
during 1st half time to win their scrums.

Good play. No. Watching the game again, there was as many bad choices in
the English side than in French side. I can only enhance their defense, not
their attack. So, as I wrote immediately after the
game, that one was one of the worst matches in the entire WC.

The referee. Before the game, some French newspapers were doubting of Mr. Kaplan
because he's South-African (funnily, some English newspapers were also
doubting because he was supposed to advantage England's opponents in the past). He was indeed perfect. Anyway, everybody knows I
never blame referees in sports.

25 November 2005

There's this artists collective on St-Laurent, across from La Sala Rossa. They call their place Casa Magica, and it's really quite groovy. They've got this cozy living area with an open plan. The kitchen is separated from the living room with a tiled countertop someone built themselves. It's decorated in that way with splashes of paint, splashes of light, and furnishings that look like they grew there.
I showed up at this place to meet some people in the Free Software world. I've been in Montr al for about a year and I still don't know very many hackers in the city. So when I got invited to Les 24h SQIL, I decided to show up and meet some people.
I went up St-Laurent to a non-descript red door with a poster about SQIL on it. "This must be the place," I thought as I tried the door. Upstairs, I was greeted by a living room full of random people: some sitting in front of computers, some chatting away, and one guy fiddling with a projector. I wandered around in a state of confusion until I was introduced to Robin.
Robin Millette seems to do a lot of work for FACIL, which is an organisation for promoting free content in Quebec. He introduced me to a bunch of people, like Simon Raven whom I helped with finger-ldap. I met Fran ois from Quebec City, who was interested in Nitix. There was Nicolas who is a Java developer that writes web-based applications. And other people like Alex, Yan, Marco and Matthieu who seemed nice but I can no longer remember what they do.
I returned later in the week to Robin's birthday party where I happened to meet Fabien, who is a consultant that does work on Firefox and Yannick who's a Ph.D. student at McGill. We had a good time talking about quantum computing and how to design a programming language for quantum computers. Good geeky times were had.