Marcos Dione: Elevation

Another long time without mentioning any advancements on my map making efforts. While not much has changed, what has changed is a big step to easier customization.

In the last post in this series I gave a quick list on how I make my own maps:

  • Use SRTM elevation to generate a hypsometric base map, hill and slope shading, and finally hypsometric curves. For the latter I'm using gdal-contour and shp2pgsql.
  • Use any extract you want and import them with osm2pgsql. Small extracts import quite quick, but so far, I have never succeeded to import a big part of Europe (from Portugal to south Finland, so it covers UK/Ireland and Istambul) in a machine with 8GiB of RAM and hard disks. The recommendation is to use a machine with lots of RAM (16+, I heard up to 256 for the whole planet) and SSDs.
  • Use TileMill for the initial design.
  • Do a lot of xml manipulation to try to customize OSM's mapnik style based on your design.
  • Use []( to, well, generate the tiles.

But since August 2013 things have changed in the 3rd and 4th items in that list. Andy Allan had finished a first big iteration of redoing OSM's mapnik style in CartoCSS. The latter is a CSS-like language that is the native way to style things in TileMill. Since then, customizing is way much easier, not only because of the Cascading part of CSS, but also because Andy took the time to make a lot of things (widths, colors) to things similar to C/C++'s #defines, which you can override and impact anywhere where the definition is used.

So now, steps 3 and 4 are more like:

  • Use TileMill to change OSM's initial design[1].
  • Export the design to a mapnik XML file.

In fact, that last step could be avoided, given that TileMill can also render everything by himself.

The last step in having your own tiles to be able to use them. I use Marble in my phone, but I also setup a slippy map so I can brag about it. Unluckily I can't embed the map here (I should fix this).

The tiles served actually come from different rendering passes using different, incremental designs. The previous-to-last one can be seen in Deutschland's region; I will be rendering some parts of London with a newer design before the end of the month.

[1] You can use any text editor to change the CartoCSS files; TileMill will pick them up via inotify and rerender accordingly. The only problem is when you're editing multiple files to impact a zoom level that takes a lot to render (for me is between 6 and 8).

openstreetmap elevation gdal gis srtm

Ramiro Algozino: QtQR 1.4 Released

About QtQR 1.4

I’m glad to announce that since this morning, python-qrtools and QtQR are both available in their 1.4 version for download in the daily PPA (

The 1.4 version includes several bug fixes, support for saving the generated codes in several image formats besides PNG (with the collaboration of Joanthan Greig), no crashes when trying to decode from webcam and there is no webcam attached, support for “WiFi Networks” QR codes and a lot more!

What is coming next?

There won’t be anymore updates to the 1.4 version, don’t expect a QtQR 1.5. The next step is a complete rewrite of both the qrtools backend and, in consequence, of QtQR also. This will be the 2.0 version.-


Gabriel Patiño: Mi primer cajita de madera

Oli recibió un mazo de cartas para navidad, así que le hice una cajita de madera para que las guarde, o para que guarde lo que quiera.

 Use los restos de una tabla de lenga de 1 pulgada, la corte a 1/2 pulgada de espesor con mi nueva sierra japonesa. Es un lujo usar una herramienta tan buena, y eso que es de las más baratas, no me imagino lo que son las caras.

Como Oli quería tanto un unicornio, encontré una forma muy simple de hacer el estampado: se imprime el dibujo en laser (con fotocopias no funcionó), se pone el papel en la superficie donde se quiere hacer el estampado con el dibujo para abajo, y se frota el papel con quita esmalte de uñas. Nos divertimos mucho haciendo esto y también funciona como tatuajes y en la ropa (incluso aguanta unos lavados).

Quería ponerle unos imanes para que la tapa quede cerrada, pero parece que se perdieron en el correo, tengo que ir a averiguar.

Marcos Dione: ayrton-0.4.1

Last night I released ayrton v0.4 and v0.4.1. Here's the combined changelog:

  • Fixed the release.ay script that prematurely released v0.4.
  • >= can redirect stderr to stdout.
  • o(option=argument) can be used to declare keyword params among/before positional ones.
  • bash() now returns a single string if there is only one result.
  • Slightly better error reporting: don't print a part of the stacktrace that belongs to ayrton itself. There is still more to do.
  • No longer depends on sh.

It's not too long, but that last item and a 2 week vacation made this a quite long release time: about 3 months. Getting rid of sh means that the capture of a command's output is no longer buffered, and that we can launch all kinds of TUI programs, notably editors and such.

Still, it's quite far from being stable enough; I still have to think about how the remote() API should be; really implement pipes between two and three commands; think if ayrton should, and how to, autodetect what the user wants to do with the executable (does he want the output? foreground, background? what if there's a python function in between?); and implement several things I noted in the project's issue page.

All in all, the project goes forward, not at the pace I wanted, but now I have better control on what's going on and this simplifies its development. From now on, releases should be shorter (knock on wood).

python ayrton

Diego Sarmentero: NINJA-IDE 3.0-alpha is Here!!

NINJA-IDE 3.0-alpha is finally here!!!

After lots of months rewriting NINJA-IDE to implement the new architecture (which I must say, is going to bring new amazing things about: performance, extensibility, stability, and easy a lot of things for developers of plugins and the core of ninja), we are finally here with the 3.0-alpha version.
There are a lot of things that still needs to be implemented, several features to add, a bunch of issues to fix, etc, etc...

BUT if you are one of the brave ones, you can start playing around with NINJA-IDE, and let us know your ideas of what needs to be improved, problems you experienced, and everything you think would help us to make NINJA-IDE 3.0 the most awesome version so far!
As usual, we are developing NINJA-IDE 3.0 using NINJA-IDE 3.0, but it's always nice to hear from people using the IDE in different ways.

For the alpha version, we are not going to distribute installers for the different platforms, but if you want to start testing NINJA-IDE 3.0-alpha, you can grab the source code from Github and run it from sources (We've always tried to make it really easy to execute it this way for developers), also, if you are in Ubuntu, you can use the Daily PPA and install the last version from there.

Take a look at some of the visual changes that we have done in NINJA-IDE 3.0:

Now that we have the new architecture implemented in NINJA-IDE (something that we knew was going to take a lot of time, but the payoff was going to be huge!), we can start working on fixing the remaining issues, add some of the missing features, AND INCLUDE THE NEW FEATURES THAT WE PLANNED FOR THIS VERSION!! I can tell you that an incredible effort is being done from everyone in NINJA-IDE to build some really awesome things:
  • A whole new plugin environment, with virtualenv detection, pypi handling, etc
  • Lots of improves in Code Completion
  • Graphical Debugger
  • A new IntelliSensei module to bring to you the magic of metadata analysis
  • Several improves in the UI and UX
  • And lots of more things!!!! But... LOTS!!

And that it's not ALL!! The Web Team of NINJA-IDE is also working in a new website, to improve some internal functionalities, and to provide new sections, as a new blog, where we want to publish all the news about the new features being developed, updates in the documentation, videos about how to use and interact with ninja, and lots of more stuff!


Gabriel Patiño: Peceto relleno de fin de año

Este fin de año hice un peceto relleno, más o menos improvisando y quedó buenísimo, va la receta.


  • 1 peceto entero de unos 2 kgs
  • 3 chorizos
  • hongos secos, un puñado
  • jerez
  • mostaza, bastante
  • calditos de verdura, 1 o 2
  • vino blanco, 2 vasos
  • aceite
  • maizena
Poner a remojar los hongos secos en jerez unos minutos para que queden blandos y sabrosos. Cuando estén hidratados cortarlos en pedacitos y mezclarlos con el relleno de los tres chorizos (sin la piel).

Cortar el peceto a lo largo, unos 3/4 del ancho que tenga, y abrirlo como un libro. Sacar un poco de carne de cada 'hoja' para que entre el relleno.

Acomodar la mezcla de chorizo y hongos en el peceto y cerrarlo. Se puede atar como un matambre, o como hice en la foto, ponerle palillos en toda la abertura y cerrarlo cruzando un piolín como si te estuvieras atando unos borcegos.

Embadurnar bien el peceto con mostaza y meterlo en una bolsa de horno (esta parte es un enchastre). Agregar a la bolsa los calditos desmenuzados, el vaso de vino blanco y unas cucharadas de aceite. Cerrar la bolsa y cocinar un poco más de una hora (yo lo cocine una hora y me quedó muy jugoso, podría ser 1:20).

Abrir la bolsa y rescatar todo el jugo, espesarlo en una cacerola con una cucharada de maizena diluida en un vaso de vino blanco. Tengan en cuenta que la salsa tiene mostaza y calditos, así que es bastante salada, por lo tanto no le agreguen nada de sal ni a la salsa ni a la carne. Para comer con menos sal se pueden obviar los calditos o usar calditos sin sal.

Volver a meter el peceto en el horno, sin la bolsa, hasta que quede un poco dorado.

Dejar enfriar un poco antes de servirlo cortado en rodajas y cubierto con la salsa. Muy fácil y sabroso.

Les debo las fotos del peceto servido, estaba muy rico como para ir a buscar la cámara.

Mariano Guerra: How To Build Twister Distributed Microblog on Ubuntu 13.10 (Saucy)

today I found out about twisterd and I wanted to give it a try (and reserve my username ;) so I tried and it took a while to get all the dependencies right, to avoid you the pain here is the guide.

take into account the comments in the script.

just a console dump, it should work just by pasting the commands in order:

mkdir twister
cd twister
sudo apt-get update
sudo apt-get install libssl-dev libdb-dev libdb++-dev libminiupnpc-dev libboost-all-dev build-essential git autoconf libtool
git clone
git clone
mkdir ~/.twister
mv twister-html ~/.twister/html
cd twister-core/libtorrent

# NOTE: the following command will fail with an error about boost, ignore
# it and run the following commands

./configure --enable-logging --enable-debug --enable-dht --with-boost-libdir=/usr/lib/x86_64-linux-gnu/
cd ../src
make -f makefile.unix
./twisterd -daemon -rpcuser=user -rpcpassword=pwd -rpcallowip=

BTW I'm @mariano :)

Marcos Dione: cars-also-have-bugs

In the last two weeks I took a couple of friends and my car to a trip around Deutschland and then some more. When I do this kind of road trips, the last thing I do each night is to take a picture of the dashboard with the trip counter showing the accumulated kilometers. Last year we did a slightly shorter one all the way to Praha and back, and on the last day I noticed that the counter seemed to reset a little bit beforehand. See, the trip counter only shows three integer digits and one decimal digit, so once it reaches 1000 km (1mm! Just not the small one :), it shows 000.0 again. So in this trip to Praha, while coming back, the counter reseted back to 0, so at the end of the trip I was not sure how many kilometers I did, only that it was around 3.5k km.

This time we were in the way between Hamburg and Köln when it happened again. This time I was sure we were around 3.2k km when it happened, and suddenly it struck me. But let me tell you how I was sure first.

In the first night, the numbers read 207780 for the total counter and 752.2 for the trip, which makes the start at around 207027.8. The last night they read 212048 and 743.3. Subtracting this last total counter to the belated start value makes some 5020.2 km!

Now, let's go back to the strange resetting problem. It's around the 3200.0 km mark, and the counter is digital. Digital counters need bits to count, and the amount of bits available determine the maximum number these bits can count. Also, this counter has a decimal place for counting kilometers... but what if it actually counted hundreds of meters (hectometers) and the display is just a representation? That would make the reset at around 32000 hectometers, hmm...

I just wonder why the technicians at BMW decided 20 years ago (my car is old) to use what looks like a signed int for this. With a two byte signed int a counter can go as up as 32767. If you're counting hectometers, that makes 3276.7 km, which seems to match the resetting point. Then, if we add the number from the last night, we get 4020.0. I knew that after Köln the digits shown wrapped once around 1000 km, so we end up with 5020.0 for the real trip. It's a suspiciously round number, but it's only a 1 in 10 probability.

So, cars can have bugs too. This time is just annoying bug for those us crazy people who make trips longer than 3.2k km, but with the tendency of making cars more and more dependent on computers (self-driving cars are the most clear cases), we have to be aware that worse things can happen. But then, we already have self-flying planes, which can even land mostly by themselves.