Image for post
Image for post

Live demo

Try out the demo on my personal blog.


I recently started researching Neuroevolution in the context of generating/optimizing neural networks. As a refresher exercise on the basics of genetic algorithms, I decided to code up a slightly contrived, yet not incredibly trivial application of genetic algorithms.

My formulation here was simple: given some continuous line, use genetic algorithm to find a vector representation of that same line.

Image for post
Image for post
Why is PyCharm suddenly unable to run Python scripts?

I’m a long time user of JetBrains IDEs. Simply the best. My Python workflow includes running scripts using PyCharm’s built-in Run/Debug configuration. If you don’t take advantage of this feature, I invite you to do so next time you’re writing code.

The Problem

The other day I got the error message above:

Python quit unexpectedly.Process:               Python [8520]
Path: /Library/Frameworks/Python.framework/Versions/3.6/Resources/
Identifier: Python
Version: 3.6.8 (3.6.8)
Code Type: X86-64 (Native)
Parent Process: pycharm [4412]
Responsible: Python [8520]
User ID: 501
Date/Time: 2019-12-02 22:05:05.623 -0700
OS Version: Mac OS X 10.14.6 (18G1012)
Report Version: 12
Bridge OS Version: 4.1 (17P1081)
Anonymous UUID: 8D27C45B-6035-3C83-450A-8A74DCA59153

Image taken from Google search:


Very subtle tweak over the default theme. My goal was to make it even more minimalist. Get the CSS for my custom theme from this Gist or scroll to the bottom of the article.

How to customize your Jupyter Notebook experience

Recently I realized there are ways to customize the look and feel of your Jupyter Notebook. I experimented with a few, including:

  • JupyterThemes: A PyPI package. Looks pretty complete, but requires a pip install. Not a big deal, but since I use Jupyter off a Docker image, I wanted a way to customize the theme without having to jump through a lot of hoops.
  • Jupyter Notebook…

This morning I came across an article with tips for using Pandas better. One of the claims was that df.itertuples() should be used instead of df.iterrows(). Since I had not used (or heard of) df.itertuples(), I thought I’d crack open my Jupyter Notebook and try it out.

Warning: the following was done on my train commute as a proof of concept. May not be the most scientific explanation for why you too should prefer df.itertuples().

Image for post
Image for post

TL;DR: a common way to iterate a Pandas dataframe is using df.iterrows() which yields a tuple with the row index and the series (row). Although…

Image for post
Image for post

One of the first things you will learn (or have learned) when getting into machine learning is the model evaluation concept of precision and recall. If your experience was like mine, you were shown the formula for computing both, and you understood that if your model has high precision and recall, that’s a good thing. Conversely, if it only has one of those high, and the other low, then your model may not be that good. However, having an intuitive understanding of these metrics may not have been a take away.

In this post, I will attempt to illustrate what…

Image for post
Image for post


As it turns out, the following is not a collection of revolutionary ideas about unit testing. If you already follow sound testing principles, you’re most of the way there. After you’ve written those tests to be as fast as they can, making sure they all run in parallel will make you feel so good inside that you might just write a blog post to share your joy with the world.

My approach to unit testing

Over the years, I’ve experimented with just about every approach to writing and running unit tests. The paradigm I’ve settled on for web services is something like the following:


My goal for this week was to do more test driven development. Given that our team implements our applications using an n-tiered architecture, most components are pretty straight forward to unit test.

Image for post
Image for post

Our convention is to have the “controller” (the method that processes the request) do as little work as possible. This can be accomplished by injecting Service objects into the controller, then letting the controller delegate the work of generating the necessary data to the service objects. …

Today my mind went back to days in the hatch. More specifically, I thought about when I was doing my first internship while in college. My job was to write software for a small startup, and the requirement to satisfy the college was to turn in a weekly write up summarizing the week’s work, along with an overall highlight, and a thing or two that I’d learned.

Image for post
Image for post

Although half a decade has gone by since then, today I thought back about that practice. …

It was only a few months ago when I finally made the switch to a Mac. Although I absolutely love it, I must admit that coming from Linux, it was a bit frustrating having a very limited set of free tools. And by “tools” I mean things like a calendar widget for the notifications center ($0.99), a way to have spaces organized in a grid ($12), or a way to change the resolution to something that’s 16:9 aspect ratio ($16). Really?

I mention those three things because they were things I used so much on the previous OS I was…

Rodrigo Silveira

Software engineer fascinated with learning, practicing, and teaching.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store