A blog on software engineering by Trevor Brown

My Favorite Talks From Strange Loop 2019

I was able to go Strange Loop for the first time this year. I’ve watched a lot of videos of talks from Strange Loop over the last couple years, and was excited to be able to attend this year. It was a great conference with excellent talks on a good variety of topics. I learned a lot and I am really glad I went. The conference was multi-track with up to 8 talks scheduled during each time slot, so there were many talks I missed. Below are my 6 favorite talks from those I attended at the conference. I am sure there are many excellent talks I missed out on, but these were my favorites among the ones I attended.

Probabilistic Scripts for Automating Common-Sense Tasks

My favorite talk from the conference by far. Coming into the talk I didn’t have an experience with probabilistic programming so this talk introduced me to the concepts and as well as Gen, a probabilistic programming system. I was able to learn a lot from this talk and it got me excited about probabilistic programming. I have decided to dedicate some time to learning probabilistic programming.

This talk was a good reminder of the importance of web accessibility. I really enjoyed the topic as it forced me to look at the web differently. Realizing that not everyone can have the same experience on the web reminds me to be more careful about how I design things for the web. This talk introduced my to Pa11y and I’ve started running it on this website.

How to Teach Programming (and Other Things)?

This was an excellent and fun talk. This keynote was probably one of the most thought provoking talks I listened to at the conference. I think it was also one of the most controversial talks that was given at the conference. I had numerous discussions with people at the conference with people about the things I agreed with and the things I didn’t agree with in this talk. Overall it was very thought provoking and very well presented.

New programming constructs for probabilistic AI

Another interesting talk about probabilistic computing. This talk also featured example code written with Gen just like the other talk on probabilistic scripting. This talk presented some very interesting problems and showed how probabilistic programming constructs could be used to solve them without a strong understanding of the underlying mathematics.

Uptime 15,364 days - The Computers of Voyager

An all around fun and informative talk about the design and development of the Voyager space probes. Aaron covers the requirements the project had as well challenges that were encountered in the design and development of the hardware for the probes. I found the details of the redundant computer hardware and the probes' power system to be particularly interesting.

Parser Parser Combinators for Program Transformation

A very interesting talk on tool called comby, which allows for programmatic refactoring of code in any language. comby has been run on code in the top 100 Github projects and produced refactorings that resulted in around 40 merged PRs all without any manual manipulation of the code. comby seems very powerful and I hope ideas like this will become more popular.

Elixir Cheatsheet

Last year I created an Erlang cheatsheet. I’ve used Erlang for quite a while, so I knew exactly what I wanted on the cheatsheet. I’ve only been using Elixir for about a year so it took me a while to figure out what I wanted to include on an Elixir cheatsheet. But I settled on some things that aren’t that complicated, but I know I’ve forgotten many times. The resulting cheatsheet includes tables on sigils, escape codes, metaprogramming constructs, pattern matching on lists, maps, and structs, and list comprehension syntax. This cheatsheet isn’t intended for beginners because it does not cover any of the fundamentals of the language. Just like the Erlang cheatsheet this cheatsheet is designed to be printed on a single sheet of 8.5 by 11 inch paper.

The cheatsheet is available for you to freely print or download at The source code has been released under the MIT license and is available on GitHub at Stratus3D/erlang-cheatsheet.

I’d really like to hear your thoughts on the cheatsheet. Is there something you think my cheatsheet is missing? Is there something that can be simplified or removed?

Let me know via email. If you want to contribute directly feel free to create an issue or pull request on the GitHub repository.

Social Media Is Not Important

I’ve been a moderately heavy user of social media on and off for several years now. I’ve been hooked on Facebook, Twitter, and Instagram at different points in time. In recent months I’ve been questioning why I use social media.

Social media is designed to be addictive. Social media sites bombard us with dozens of images, videos, and ads every time we visit them. We’ve become numbed by the constant stimulus. Social media has radically changed how we interact and it has affected society as a whole. I began to question how it has changed me.

I realized that in many ways social media changed social interaction online into a game of sorts for me. The implicit goal in the game was to get likes or shares. I found myself focusing on optimizing my posts for the algorithms, trying to use the right combination of text, photos, and hashtags to generate the most likes and shares. Then I’d constantly check back to see how my latest post was doing. Every time I checked I got a dopamine hit when I saw a new like or share. It had become a game, a game that I was addicted to. I began to question why I participated in the whole thing. Was I really hooked on it? Had I become addicted to the dopamine hit I got from someone liking or sharing one of my posts? Was this the way I want to interact with the world? What was the point of it all?

I realized I didn’t want to live that way.

I wanted more out of social interaction than likes and shares. I wanted lasting relationships, friendships with people who wanted to be more than just Facebook friends, relationships built on shared values and interests, interactions with people who encourage who me to try new things and step out of my comfort zone.

I wanted meaningful, lasting, connections with people.

Social media doesn’t provide that.

Social media isn’t about relationships, it’s about entertainment. A constant bombardment of images, videos, and text designed to entertain us for as long as possible to generate ad revenue. Making meaningful connections with people is not what social media is optimized for.

I realized I had believed the lie that social media was about friendships. In reality social media had inserted itself as the middleman between me and those I cared about. Yes, I have made a few friends online through social media, but most of those friendships were developed outside of social media, many of them in person. I realized there were other lies I had believed that kept me using social media.

Lies I Believed About Social Media

  • It is necessary for building a following

  • It is necessary for maintaining an online presence

  • It is needed to stay in touch with friends and family

These are the lies kept me thinking that I needed social media. The truth is I don’t need social media at all.

Building a Following

Building a following via a blog and a mailing list is far more effective than maintaining a Twitter or Facebook presence. Mailing list subscribers are more valuable than Twitter followers. Since starting the mailing list for this site I’ve gained around 500 subscribers by setting up a list that automatically emails my latest posts out every other month. During that same time I gained around 50 Twitter followers while working hard to post quality tweets and retweeting other relevant content. Getting 500 email subscribers was far easier. This may be the subject of a later blog post.

Maintaining an Online Presence

Maintaining an online presence with a website or blog puts you in control, and allows you to deliver the content you want to deliver to your own subscribers without having to pay the middleman for it.

Keeping Up With Friends and Family

Keeping up with friends and family can be done via phone and email. These means of communication have the added benefit of being more personal. Calling up a family member or friend you’ve not talked to in a couple months is more meaningful than sending them an IM on Facebook. Sharing pictures and video can be done via text message or email. If you want to update a large number of friends and family on what you are doing a mailing list is a good way of sharing updates. Mailchimp makes managing a mailing list easy. Mailing lists have the added benefit of offering more flexibility than a social media site when it comes to composing your update. Email allows you to interleave text and any number photos as you see fit.

In many ways developing friendships the old fashioned ways is easier. Make a special effort to meet those in your neighborhood. Call that friend you haven’t talked to in a year. Find local meetup groups for the things that interest you and attend regularly. Try to get a group of old friends together for an activity. Make a point to facilitate face-to-face social interaction every day.

What I Am Changing

I am working to cut out social media as the middleman in my friendships. I am making an effort to establish more direct means of communication with people I care about - phone, email, etc…​ Am I abandoning social media completely? Right now, not completely. I’ve still got some friends that I only communicate with via Facebook. I am closing my Twitter account and I’m working to wean myself off of Facebook by establishing other means of communication with friends. Eventually I will close my Facebook account.

The people around us are ultimately what make our lives meaningful and make us feel connected. People are important.