Latest geek reads

Some of the things I’ve read/watched lately to sharpen my skills:

Christmas

The other day we had a Christmas dinner mostly like every previous years.

I’m not very much into receiving physical gifts but sometimes a little thing with a lot of thought can change everything. Long ago a couple of friends collaborated on an anthology of poems and the last weekend it arrived after a convoluted trip from Uruguay.

The result of their hard work is called “¡Dale Hermano! 20 Poetas del Río de La Plata”.

After the traditional toast I drove my grandma home and then went to say hi to a couple of friends.

The night was unusually quiet. After wandering without a clear intention for a while I parked at Parque San Martín and started to read.

The poems did not have the author with them but while reading I could imagine some of my friends reciting those and, upon looking at the index, I was most of the times correct in my guesses.

Thanks Mar and Pachi for such a great night.

¡Dale Hermano! 20 Poetas del Río de La Plata

Power off.

Today I replaced a couple of quick hacks with InfluxDB and Chronograf.

I like things that run without breaking:

# supervisorctl
carbon      RUNNING   pid 1415, uptime 207 days,  19:49:57
graphite    RUNNING   pid 1419, uptime 207 days, 19:49:57
icecast     RUNNING   pid 24419, uptime 32 days, 1:11:18

Boot / No Boot

Today while cleaning I found an old stm32 board carrying an STM32F030F4P6.

Turns out that PlatformIO supports it so just for fun I tried to blink some lights.

I couldn’t find my stlink at home but openocd can use a buspirate as a programmer.

It took a while to upload but after that I was able to launch gdb.

And the light was dead.

Strangely enough poking at the memory showed that the code indeed was there. After a long pause to think I noticed that the boot 0 jumper was misplaced.

The lights flashed and there was much rejoicing.

Tiling

(this has nothing to do with a window manager)

During the last couple of days I was mostly dumb because of the heat. But the nightly breeze gave me a bit of life.

So I started to tile the new bathroom.

I helped many times with this kind of endeavors but this is the first that I’m completely on my own.

The initial bucket of paste yielded around 7 tiles, most of it ended on the floor. But when I finally got the hang of how to use the trowel I managed to put 16 tiles with little waste.

Bathroom tiling

A very apt metaphor

“we don’t have electricity on the south side of the building, but I know water conducts electricity, so just connect the water main to the power grid, then install an outlet in every faucet”

Brad Montgomery on what we do as software engineers. Original at https://bradmontgomery.net/blog/blue-collar-programmer/

I don’t know why or how I ended up at that post but that situation evokes many fond memories of failed attempts at explaining what I was doing sometimes.

For all of its sins (or our inability to understand it back then) XML coupled with XSLT & friends is a nice basis to do ETL transformations.

Carancho.

This morning I went out to run some errands and on my way back I crossed along Parque Saavedra to enjoy the smell and freshness of a rainy morning.

Hopping among the bushes I spotted a big bird (at least compared with what can be usually seen in this part of the city).

Here they go by the name of Caranchos, a term that encompasses many former members of the Polyborus genus, mostly Caracara plancus.

This one let me follow its routine from a very close distance for quite a bit of time.

Hey, I wrote an assembler.

(It was about time I interrupted a never ending pile of drafts with something)

So, for a bit more than a month I’ve been attending a seminar on VHDL microcontroller design.

One of the workshops involved doing some simple exercises on eval boards. While the overall instruction set is small (fits on less than a page) the idea of programming and then assembling the sources using pencil and paper wasn’t very appealing at the moment.

It sure is a fun way to keep the mind fresh but given time constraints I couldn’t cope with such a long debugging cycle.

And… The obvious path was to build a tool.

I reused parts of python-lx200 because smart data structures and dumb code are nice. Most of this could be implemented with M4 too, perhaps for another code golf session.

A couple of years ago I’d probably tried to use Bison and Flex but doubt that I could manage something like this in just a handful of hours during the weekend.

There are some rough edges but as it is it supports labels, variable definitions and emits a valid IHEX file. I made a couple of dumb mistakes but they were really evident when looking at what Quartus made of the output file.

I’m quite proud of the result, I don’t know when was the last time I had so much fun doing a one off project, even if it wouldn’t be used anymore after the seminar.

The source code lives here: https://github.com/pardo-bsso/islyd-asm

Weird Dreams

The other day I had a strange dream.

I was at a lounge talking with a waitress and we were doodling nonsense on a napkin. My drawings slowly morphed into something that was a lot like a Hilbert curve but not quite.

Our talk drifted into space filling curves and I kept trying to draw it but even tough I knew how it should look I always managed to draw something like a very simplified sandcastle.

Books

This year I haven’t read as many books as others at this point.

My list so far has:

  • “Las neuronas de Dios” by Diego Golombek
  • “Effetti personali” by Francesca Duranti
  • “Blonde’s requien” by Raymond Marshall / James H. Chase
  • “The terminal Man” by Michael Crichton
  • “La Mala Fama” by Benchi Calligo
  • “La Otra Orilla” by Raúl Filgueira
  • “Sacrificios en Días Santos” by Antonio Dal Masetto
  • “Justine, or The Misfortunes of Virtue” and “La Marquise de Gange” by Donatien Alphonse François de Sade. Horrible Spanish translations. The ones I remember in English were better but I should try next time with the original in French.

And on the queue:

  • “Consciousness and the Brain” by Stanislas Dehaene
  • “The Psychology of Selling”, “Master Your Time, Master Your Life”, “Kiss that Frog” and “Eat that frog!” by Brian Tracy.
  • “What Color Is Your Parachute” by Richard Bolles.
  • “Management – Tasks, Responsibilities, Practices” by Peter Drucker
  • “Tras la crisis, El nuevo rumbo de la política económica y laboral en Argentina y su impacto” by Damill, Frenkel y Maurizio

Traitlets

Lately I’ve been hacking on IPython and Jupyter.

That journey led me into Traitlets and I wish I knew about them before.

For most of my stuff I use argparse, blinker (when not using GLib) and plain properties.

I knew about traits from long ago but what really liked from a first look is their solution to configuration management. It’s clean, self documenting, type checked, composable and can be python code.

I’m still a bit torn about having a complete programming language as a user configuration tool instead of a DSL or stuff like ini-files, json or the good dialect of yaml.