neenjaw.

What's new with neenjaw?

Lots, thanks for asking!


Almost a year

Well, we've been back in Saskatoon for almost a year. What a year indeed. Been lots of transition between new jobs, side opportunities, family involvement and what not. But this blog is about coding, so let's get up to speed about what I've been up to since...October? I'm a bad blogger

Elixir

What a fun language to work in. Whether you've heard about it or not, I have discovered a language that is just so expressive with all its batteries included. When I was doing my first degree, we had very little exposure to functional, logic, and procedural programming. Most of what we did was in Java, Eiffel, or C (and very little of it was in C). OOP was king, and was the apex of programming design.

OOP is fine and all, but it's not my preffered. I enjoyed my short runs in haskell, prolog, shell scripting, C and so when I stumbled on to elixir as a spiritual successor to ruby, I was intrigued.

But how was I going to learn it?

Learning by doing -- exercism.io

So i tried learning Elixir from a book -- not a bad way to learn, but I just don't find it really all that good to actually get into the language. So I restumbled on a website -- exercism.io -- that facilitates learning through solving toy problems.

I got started working through the problems, and really enjoyed how expressive, idiomatic, and productive elixir felt. I set out to complete all of the problems. And as of a month and a bit ago, I finally had finished all of the problems (proof is in the github). Are all of my solutions as elegant as they could be? No. Not at all. For that, find the plataformatec employees' solutions for that. But have I grown? Yes, absolutely.

Now I have also been able to engage with new learners as they interact with the language, and it has been a great pleasure so far.

In addition to that, exercism is an open source project with regular and practiced openness towards new contributors and it has been a good experience interacting with community members to solve some collective problems, organizing and maintaining a 'curriculum', and looking at new avenues for development. I am by far a little fish in this sea, but it has been a nice experience being a part of it.

A slack request

As a code mentor, you have the opportunity to help people learn the language and the website allows you to read the code on the website. And there was a mentor soliciting opinions on the slack channel if there would be any thing that could be done to increase the code frame's width so that it would handle more than a 66 character column width on a 1080p screen.

A reasonable request, as depending on the solution being mentored, I have also been frustrated/burned by the code frame hiding key code. So I put forword to create a TamperMonkey script (which is a nice UserScript manager for chrome) to add the feature in to the website. So that's what I did. I created the script, and supplied it to the community in question. (You can find it here: github gist)

This was a meaningful moment for me, because I don't think I could have felt confident enough a year ago to be able to take a request, build a simple solution inside of a few hours, and then publicly post it if not for exercism.

Exercism has helped me to start to figure out a niche, if small, in the OSS world.

It's a nice place to be.