Weekly update for Monday, July 20
Howdy internet friend, and welcome back to my blog. I want to thank you for taking the time to read this, I know there is so much you can do with your time and I appreciate you taking a few minutes with me! As I do each week, I am going to be sharing both personally and professionally what I got up to last week, as well as sharing some information about Black Lives Matter and some good resources of people to follow on Twitter. Lots to get to this week, so let’s jump in!
Black Lives Matter!
As I (try to) do each week, I want to spend some time writing about Black Lives Matter because the movement is really important and hasn’t gone away despite the lack of media coverage in the United States. While it would be easy and morally right to rage against the deployment of federal troops in Portland because it is horrific and something we should all speak out against, I do not want this discussion of BLM to be derailed. At the same time, it is really important to speak out against the use of federal troops in American cities. Historically, this has not gone well and there is little reason to think it will be different this time. To be crystal clear, it is an outrage and offensive to the ideals this country was founded on to allow soldiers without accountability to kidnap and disappear anyone, but especially not protesters! Protest was literally the first thing the people who founded this country wanted to ensure remained free, and trying to supress that with violence is absolutely unacceptable and I will use every platform available to me to denounce it!
If you are reading this and wishing for tech content, it is very important to remember that everything is connected. Lack of diversity in AI and machine learning research leads to problems and is itself problematic. If that statement isn’t clear enough, let me be more explicit. Failing to have people from all walks of life involved in creating products all but guarantees that product will not reach as large an audience as it might. Reading stories like this one from last year, about Google contractors tricking homeless people to scan their faces is just the tip of the iceburg but there are other examples as well.
Once again, there is much more that I could say on the subject. However, I will save that for next week and just reiterate that Black Lives Matter and if you feel like you don’t know enough about issues of racial justice, do some work to educate yourself first. In last weeks blog post there are some suggestions for reading, if you didn’t check them out but feel compelled now you can find them here.
Last week was a struggle for me personally. We noticed when we moved in that the ice maker on the fridge was regularly running out of ice, which seemed strange because it was supposed to make up to a hundred and forty cubes a day and we didn’t think we were going through that much. Then my wife noticed that the ice cream in the freezer melted. On Wednesday of last week I noticed a funny smell from the fridge and the milk in my morning tea seemed strange. Turns out that the fridge was/is dying but my wife is smart and scrambled to get us some temporary replacements.
Now we are stuck between a rock and a hard place. We don’t really want to drop a few grand for a new fridge and because the pandemic is raging, we don’t want to have anyone come in our house. Even if they are wearing a mask and take all prevention measures possible, we’ve been isolating for four months and we do not want to get sick when we have a solution that works, albeit not ideally. I suppose there is a third option where we research and repair the machine ourselves. Given how much I do not want anyone coming in our house, this is an option which I might look at revisiting later in the week.
Finally, while it could just as easily fall under the professional category, I want to comment here by way of a transition that I did not get nearly the amount of work done last week I would have liked to. Part of the problem was that I invested time in resting and recovery as well as building office furniture and putting things together so I have a nice place to work. My wife and I spent time last weekend putting up the art we brought with us around the house, and I’ve got a few more pictures hung on the walls of my office, as well as my new bass. It is starting to feel more like a home all the time, and stuff like this almost makes up for the fridge dying. However, I should add that it feels like there had to be at least one thing that went wrong with the new house. Perhaps it’s because I internalized watching The Money Pit when I was a kid, or myabe it is because I’ve had bad things happen so frequently in my life that it always feels like the other shoe is about to drop, but I think this feeling helps me to never feel too comfortable or to rest on my laurels too much. Whether that is a good thing or not, I can’t say for sure. My wife would probably say no but perhaps only time will tell. Since this is the personal section, I also want to add that I’ve not been sleeping well lately. I thought I would sleep better once we got out of our apartment, but for the last week or so I’ve been having brutal nightmares. If I really think about it, my guess is that it has to do with be uncertain about my career future because of one recent failure and worrying about my family. Despite being really eager to improve my skills, the economy is fragile right now and things don’t feel very stable. I’m also a worrier, even though I wish I could be better about it. Having shared my personal feelings and lack of sleep, let us now do a 180 and talk about my professional week. :)
Unfortunately, last week my four month project was cut three and a half months short. While it would be really easy to get burned and/or feel like a failure, this would not be neither professional nor productive. Instead, I’m thrilled to have the opportunity to expand my skills in two areas that are currently in development - threat modeling and the cloud. During the weekend where I spent way too much time on Twitter (apologies to my wife) one of the things I saw was this tweet. If you don’t want to click on the link, the author is saying they believe the cloud is an area where spending is going to increase substantially in the next five years and one could invest that time to become an expert on the subject. Lately I’ve been thinking about the best plan for my career going forward, as well as good ways to apply the programming skills I’ve been teaching myself, and it struck me that the cloud is a great investment of my time. I’m going to start working on a Udemy course for the AWS Security certification and plan to write a blog post once I am finished. One of the things that is so great about the cloud is that all the time I’ve been investing over the last few years in improving my programming skills will still be useful in the cloud. Speaking of programming, last week I did not spend nearly as much time writing code as I would have liked, but I did spend a bunch of time thinking about programming and made a decision over the weekend on that subject, which is substantial enough to have a subsection of this weeks post to discuss it.
Something that is really important to me in programming and in life is freedom. I’ve got tux tattooed on my right arm so I am frequently reminded that it is important that free software be something I am contributing my time and energy to expanding and improving. One thing I do not want to be doing is working on something that doesn’t give everyone a reasonable say in the decisions made going forward, yet that is exactly what happens with the Go programming language. While it may use a BSD license, I do not know if one could honestly say that it is as free or open as other programming languages. It used to be that the motto of Google was, “don’t be evil”. Somewhere along the way, that motto disappeared and the Goog became more comfortable doing things that were ethically dubious, including the issue with contractors mentioned above. While I have been working on my ethics in tech essay and haven’t published it yet, it is important to reiterate again here how important it is that we make ethical decision in the software that we write. This includes the decisions on what languages to support with your time, energy, code, and evangelism. For me, I do not want to invest more time in a programming language that is controlled by a giant corporation, whether it be Google, Microsoft, or Oracle. While one could make a persuasive argument that all of those firms have impact on the direction of (many/most/all) programming languages, they do not have the final say in free and open source software.
From a practical standpoint, I have always struggled with Go in terms of readibility. In Black Hat Go the authors mention that single name variables are the convention for the language. For me, single name variables make things less readable and thus less accessible. It is important for me to write code that is not only functional but also readable. Like the way I try to write, it is my goal that my programming be accessible and even liberal use of comments wasn’t enough to make the Go code I was writing readable to me, which tells me it likely wouldn’t be readable to others.
If this sounds to you like I am going to be moving on from Go to another programming language, you would be correct. While I greatly appreciate everything that Go has taught me about programming, it is time for me to look at the next language. Last week I asked some of the programmers I work with for suggestions of next language(s) to learn and my favorite advice was to learn different languages for different jobs. Lisp and Scala were suggested, as was Python (but I’ve already got a decent grasp of Python and I hate the virtualenv system, plus I’m not thrilled with how Python handles concurrency), and I am also looking at Rust as well. One of my coworkers suggested a series on fuzzers, the first video (I admittedly haven’t finished yet but am really enjoying so far) you can find here and it looks amazing so far! I’ve followed the author for years on Twitter, roughly as long as I’ve been interested in fuzzing come to think of it. This series is great because most of the fuzzing work I did in the past was pretty dumb - just turning the fuzzer (in this case, AFL) loose against some free software. I’m looking forward to watching the first video for a more targeted approach. In the series, the author mentions prototyping the code in Python and then writing it in Rust. This is really interesting to me because I feel like I know Python a bit, and Rust is on my programming language short list. If you are interested in fuzzing as well, you can check out the series and next week you can see if you agree with my conclusions. :)
One final note, while I haven’t decided exactly what language I am going to use, I didn’t write very much Go code last week. I did my best to work through Black Hat Go but I just didn’t have the motivation. I want to be honest with you, the reader, that even though I got up every day at five last week (except the day I let myself sleep in until 6:15), I didn’t achieve my goal of writing code Tuesday through Thursday, and I didn’t write on Friday - and that is ok! I wanted to be accountable and honest, not only because it is the right thing to do, but because I think it will motivate me to work harder and focus better next week.
People to follow
As I do every week, here are some tech and non-tech people you might consider following on Twitter. I do want to give an extra shout out and greetz to Null Coder, who took time out of their weekend to expand my knowledge of how interfaces work in programming. Null Coder is a brilliant up and comer doing really interesting work and I highly recommend checking out the stuff they are sharing on Twitter!
Martin Luther King III - The son of Dr. Martin Luther King, Jr.
Bernice King - The daughter of Dr. King
@cetolyne - great friend, awesome programmer, super helpful!
@blenster - cool maker, very positive, well worth a follow!
@GWeessies - very smart person doing interesting research!
Marley - first place champ! Marley is one of the best on Twitter!
Null Coder - another awesome person to keep an eye on!
Brandon Falk - great information about fuzzing!
Thanks for reading! I hope you have a very nice day and a great week!