Felipe Martín

A week for personal development

Sadly, over time, my programming time at work is becoming less frequent. Doesn’t mean I don’t do stuff it’s just little by little most my time is spent on management things. Since I don’t want to get stalled and to give myself focus into other things I got last week off to see whatever I was capable of making. To my surprise it was time well spent.

Side effect: instead of five or six days it was down to four or less cause you know, everyone is busy these days ;)

So, what did I do?

Used Lektor to build this site

This site on github

I finally managed to rebuild my site from scratch with lektor. Already wrote about this in a previous post.

Summary:

  • :arrow_up_small: Read other people’s code, which is nice.
  • :arrow_up_small: Made some goodies with Make, Gulp and Bash to automate stuff.
  • :arrow_up_small: Discovered that ARM servers are not so fun.
  • :arrow_down_small: It wasn’t coding.

Natif

Natif on github

Simple app to use a website as a desktop application.

I wanted to do something with electron for some time now and since I use some webapps that I wanted outside of my browser this was a simple yet powerful ally for me.

I wanted it mostly to create a Netflix app because my main browser is Firefox and Netflix isn’t working on it but I came into trouble when trying it out.

Summary:

  • :arrow_up_small: Tried electron.
  • :arrow_up_small: Simple code, good results.
  • :arrow_down_small: Widevine.
  • :arrow_down_small: Packaging automation on release for every operating system without a decent server will force me to use jenkins, and I don’t want to.

SymbolDoc

Symboldoc on github

Print a simple docstring based on a given python module and a symbol name.

I wanted to use abtract syntax trees for something thinking it was more difficult than it really were, and it came to a simple script that print a docstring for a symbol that also could be easily integrated into my emacs setup, forcing me to document my projects more.

Summary:

  • :arrow_up_small: Used AST!
  • :arrow_up_small: Made tests.
  • :arrow_down_small: Understanding the AST wasn’t as difficult as I expected.

Nout

Nout on github

Maybe in the future a note taking app.

After trying almost every note taking app out there mine are just files on a Notes folder written in markdown syntax. Thinking about what I needed, it came just to a couple features, so I thought that creating an index of my notes in a sqlite database would be enough. Parsing files to normalize the information and using simple queries to look up for the data.

Right now I only made the file watcher and the database storage, there’s a pull request on the works with some tests. It’s not usable yet.

Summary:

  • :arrow_up_small: Forgot how fun was working with multithreading.
  • :arrow_up_small: Getting the mindset to start bigger projects.
  • :arrow_up_small: Now I know that fnmatch exists.
  • :arrow_down_small: Got the feeling that the components are not as modular as they should be.
  • :arrow_down_small: Not enough testing, solving it now.
  • :arrow_down_small: Not documented, but time was scarce.

Other stuff

Other things I did:

  • Started reading the pragmatic programmer and started to feel that it was money really well invested. Highly recommended to every developer out there. (Thank you @RusEu and @MiguelGR)
  • Made a few Pull Requests to i3pystatus. Minor things but it felt rewarding.
  • Made a simple plugin for lektor. Not published yet.
  • Built a list of stuff to automate my laptop provisioning with Ansible even more.
  • Tuned a little bit more my i3 configuration.
  • Found out tools like codecov, scrutinizer and gemnasium.
  • Learn things about open source projects (guidelines, contribution, CI, …).
  • Moved my site from a custom server to Firebase.

Things I miss:

  • Doing something in another programming language. Not so long ago I tried golang and I got the feeling that I should have invested more time in this or a new one.
  • Lack of documentation but you know, when there’s not enough time…
  • Focus on unit testing more than I did.
  • Related with the above, should have tried to use TDD or another different development process.
  • Not having a boilerplate to create projects and its integrations and base file tree, spent a lot of time doing it. It’s silly because you’re not creating tons of projects in a short period of time but it’s a task that could be automated somehow.

Overall it felt really rewarding. I encourage everyone to get some time off to create new stuff, maintain your projects, create that tool you always wanted, research about that subject you read so long ago, etc.

I don’t know when but I will surely repeat this.