Strange Loop 2014

Kris Calabio bio photo By Kris Calabio

Reflections on my first conference

Me and Daniel Solano-Gomez at the core.async workshop Me and Daniel Solano-Gomez at the core.async workshop. Photo by Mike Bridge

Diversity and Opportunity

Although I spend much of the day at home taking care of my father with Alzheimer’s disease, I do find the time to pursue my double career as a programmer and a musician by taking on some software projects and playing some gigs. Income is sparse, although now that me and my brother Mark are living with our folks again we have recently tried our hands at becoming game developers.

I found out about the Diversity Scholarship from the Strange Loop mailing list. On a whim, I sent an application. I was thrilled to find out that I was accepted. If it weren’t for the Scholarship I just wouldn’t be able to go to the Strange Loop conference at all. I am forever grateful to Bridget Hillyer, Alex Miller, and all the sponsors for giving me the opportuniy.

This was my very first conference. I have heard that tech conferences tend to lack diversity, and it is well-known that the industry is dominated by white males. I was glad to see people of all colors, creeds, and genders. The turnout for women is probably the most notable.

Perhaps I’m not the most qualified to write about diversity so I will refer to Amber Adams’ wonderful piece about her Strange Loop 2014 experience:

When much of the world is telling you, “you can’t, you can’t, you can’t, you don’t belong here,” an experience like this year’s Strange Loop might be just enough encouragement to give you the strength to square back your shoulders and respond, “Yes, I can, and yes, I do…and it shouldn’t stop me even if you believe what you say is true.” If success is going from failure to failure without losing enthusiasm, attending Strange Loop certainly gave me a massive boost of that enthusiasm.

I never travelled without my family or a band, and for a while I was worried that I would spent much of my stay in St. Louis on my lonesome. This would all change on Thursday’s Conference Guide lunch for Diversity Scholarship recipients where I would not only have the pleasure of becoming friends with David Broderick and Pooja Pasawala but also meeting Craig Andera. It was actually kind of funny when this happened. I arrived a tad late to our table and haven’t gotten everyone’s names yet, and Craig was talking about podcasts (meanwhile I was thinking that his voice was made for broadcast). I mentioned that I regularly listen to a podcast called The Cognicast, and then he said “Oh, that’s my show. I’m Craig Andera.” I replied, “No wonder your voice sounds so familiar!” Who would have thought I would get matched with him as one of my Conference Guides?

Making Progress

I’ve been following the Strange Loop conference and watching talks since 2012. What draws me to Strange Loop compared to other tech conferences is that the speakers seem to be a bit more forward thinking.

In the opening keynote Joe Armstrong helps us step back and look at the bigger picture to see that, yes, computer programming is terrible. If we as an industry want to move forward, we have to keep in mind that things must not stay as they are. He also explores the physical limitations of computing and presents the idea of a blackhole computer. Fascinating!

I’ve been interested in game programming ever since I was a 12 year old kid playing this Zelda-like MMO called Graal. It had a level editor where you could script your own NPCs, and I liked making my own boss battles. Although I am still inexperienced with game programming, I might just say that game development may be the messiest, most difficult kind of codebase to work with. By the end of a game project, one is left with this enormous montrosity of fragile code complete with “callback hell.” Maybe it’s my inexperience with large codebases in general. Indeed, Ramsey Nasser and Tims Gardner in their talk bring up the fact that “game development sucks,” and part of that has to do with the the fact that if you want to target platforms like PS4, XBox, etc., the languages we have to choose from are C, C++, C#, and Java. But what about languages which lend themselves to functional programming, or reactive programming?

Nasser and Gardner present their open source project which combines the multi-platform game engine/IDE Unity with the Clojure programming language. I have experimented with Clojure game programming before with play-clj which is a Clojure wrapper over libgdx. It has a nice API, but I experienced some performance issues once I created over thirty entities. This is another choice of technology that I will have to try out. Just like play-clj it’s still very young, so maybe I’ll have to give Unity and C# a shot until the project matures a bit. Nonetheless, the fact that they are working on something like this is very exciting.

I’ve seen a video of one of Evan Czaplicki’s earlier talks, and this talk on functional reactive programming was one which I was looking forward to the most. I actually woke up a bit late that morning and walked in the wrong direction to the conference venue for a while so I missed the first ten minutes of this talk. I entered the theater, I saw Super Mario jump, and the crowd went wild. Yep, that’s Elm! When I returned back home, Elm was one of the first things I looked into that were presented at the conference. Elm seems so amazing to me. I hope to one day make a videogame using this technology. I looked at some examples on the Elm website, and the next step for me is to read Evan’s paper.

Having Fun

One true Zendo koan and one false Zendo koan

On Thursday night Michael Fogus (co-author of Joy of Clojure, excellent book) held an UnSession where he would present an inductive logic game called Zendo. I arrived at the location a little early and was thrilled to see a group at a table playing a game of Set. I jumped in for a few rounds and played horribly. We all were there for the UnSession. I will not explain the game here, but we all had a lot of fun. The UnSession was scheduled from 9pm to 10pm, but we played well into midnight. Some of us even decided to ditch the Cardinals baseball game on Friday night after the conference to play more games together.

Having a degree in Music Technology, I just had to see what Jamison Dance’s DOMStep talk was all about. Jamison was such a hilarious person with his constant joking and self-deprecating humour. I won’t spoil the jokes so just watch the video. Using JavaScript’s WebAudio API, he made a dubstep track in the browser. I even participated in the Strange Loop laptop orchestra. I might have to one-up Jamison and make a DOMnBass web app.

I got my agenda mixed up and found myself at a talk about kernel hacking, and the speaker was one of the people I played Zendo with: the bubbly personality which is Julia Evans. I had no idea! This was such a fun talk. Julia made the intimidating idea of kernel hacking into something fun and accessible to non-systems programmers.

LIVECODING ROBOT DANCE PARTY! Enough said. Carin Meier’s talk was very emotional and very inspiring. I almost cried. Programming is fun, and we should always strive to keep the flame alive. As for me, I need to keep that sense of wonder that videogames gave me as a kid and made me curious about programming to begin with. Sam Aaron’s talk was also an inspiration. Introducing young children to programming through livecoded music seems like an idea worth exploring.

Conclusion

I had the time of my life at the Strange Loop conference. It was my very first conference and am glad that it was. I don’t have many programmer friends in SoCal, let alone programmers into things like functional programming, language design, type theory, etc. I’m not the greatest programmer. Sometimes I felt like I was the dumbest person at the conference, but I was surrounded by so many forward-thinking, intelligent, and diverse individuals that I felt like I was growing as a person just by being around them. Needless to say, at the Strange Loop conference I felt like I belonged. I’m still basking in the afterglow. I hope I can go again next year!