programming newsletter
A Byte of Coding is a newsletter that I, Alex, put out four times a week, Monday through Thursday. Each issue consists of three articles that I personally curate from across the interwebs. I believe that you can find inspiration in the most unexpected places, so I select articles with topics that span the entire programming spectrum. Each article comes with a little summary that I write.

There are three criteria for the curated articles:

  • In depth (focusing on the how and why something works, rather than "How to ...")
  • Within the last month (although depending on the quality and timelessness of the article, there are exceptions)
  • Diversity (topics we haven't seen before are rated higher)

What about the articles I reject?
Incremental vs. Virtual DOM is an example of an article I read, but then rejected. Why? Because although the author outlines the advantages and disadvantages of both approaches, they fail to explain one of the major points of why the incremental DOM is slower than virtual, which makes me feel like the article is incomplete. On top of that, a lot of the content is repetitive.

Here are a couple of the criteria for rejecting articles:

  • Fail to explain major claim that was made
  • Full of filler content
  • Terrible reading flow
  • Not in article format (ie video, podcast, book)
  • Directly promoting a commercial product

If that appeals to you, I suggest subscribing below! If you're on the fence, check out the latest issue and more below.
Friday, January 29, 2021

What's poppin wonderful people? Hope you have a great weekend. Here be the issue arrrrr. Keeping it short and sweet. Also lol of sadness @ Robinhood and the free market in general.

A Look at iMessage in iOS 14 (https://googleprojectzero.blogspot.com/2021/01/a-look-at-imessage-in-ios-14.html)
Published: 28 January 2021

Why all of the security articles lately? Don't know, just been feeling them. In this one, Samuel Groß summarizes the fruits of reverse engineering iOS 14 to look for any signs of previous vulnerabilities to "memory corruption based 0-click exploits".

Tags: security
Inheritance Without Pointers (https://www.fluentcpp.com/2021/01/29/inheritance-without-pointers/)
Published: 29 January 2021

"Inheritance is a useful but controversial technique in C++". Basically it's easy to use incorrectly, but it's fairly useful in certain circumstances. Everything in moderation, right? Jonathan Boccara's article takes a look at a technique byPavel Novikov for using inheritance in C++ without pesky pointers to complicate implementation.

Tags: cpp
Blinkenlights (https://justine.lol/blinkenlights/index.html)
Published: 24 January 2021

Although the complexity of modern computers is great, in that it allows to to quickly build wonderful applications that would've previously taken 1000x the resources, one downside is that it becomes really easy to miss out on all of the details of what your computer is actually doing. Justine Tunney's Blinkenlights is a neat binary emulator that allows you to watch under the hood of your computer when running an executable.

Tags: x86, linux
Thursday, January 28, 2021

Sorry for missing the issue yesterday. I'll send another one out tomorrow to make up for it!

Experimenting with remote debugging: Node.js runtime code injection (https://blog.sqreen.com/remote-debugging-nodejs-runtime-code-injection/)
Published: 28 January 2021

Injecting code into remote processes isn't the safest thing to do, and is actually a common way for malicious actors to get existing processes to run code that the actor has written. Nonetheless, it's interesting to know how it's done. In this informative article, Vladimir takes "a running Node.js HTTP server and, from another local Node.js process, [injects] a script into it to make it log all incoming HTTP requests".

Tags: javascript
DBA in training: SQL Server under the hood (https://www.red-gate.com/simple-talk/sql/sql-training/dba-training-sql-server-hood/)
Published: 28 January 2021

It's not a bad ideas to get to know how SQL databases work. A lot of projects use them. In this article of an extensive series, Pamela Mooney breaks down how the SQL sserver works and how to tune queries.

Tags: sql
Progressive Rendering for Better Web App Performance (https://blog.bitsrc.io/progressive-rendering-for-better-web-app-performance-22db0d2cd80)
Published: 28 January 2021

When creating websites or webapps, you conventionally had two major options for rendering; you could either do it client-side, or server-side. Well in this article, Nethmi Wijesinghe presents a third option (to be fair, it's more of an alternative of the second option), which involes progressively loading server-side rendered content. Faster rendering = more conversions, or just less frustration.

Tags: web dev
Tuesday, January 26, 2021

It's our problem free, philosophy. And here's the issue.

TypeScript: Stop Using 'any', There's a Type For That (https://thoughtbot.com/blog/typescript-stop-using-any-there-s-a-type-for-that)
Published: 13 October 2020

If you're using TypeScript, you mgiht sometimes be tempted to take the easy way out and slap the any type on something you can't be bothered to type. Well in this article, Alejandro Dustet and Wil Hall discuss the intricacies of why if you use the any type in TypeScript, you're gunna have a bad time mmkay?

Tags: typescript
How to convert between callbacks and Promises in Javascript (https://advancedweb.hu/how-to-convert-between-callbacks-and-promises-in-javascript/)
Published: 26 January 2021

Await/async are my go to in most JavaScript programming, since I personally think it makes code much more readable and easier to reason about. Unfortunately, not all JavaScript code has caught up (or shares the same opinion), and often times you might have to work with callbacks. In that case, Tamás Sallai has written an article where you can learn how to switch between the two, reimplementing any legacy (or poorly written code) into your perferred solution.

Tags: javascript
New campaign targeting security researchers (https://blog.google/threat-analysis-group/new-campaign-targeting-security-researchers/)
Published: 25 January 2021

More security related than programming, but this in this article, Adam Weidemann brings to light how a "government-backed entity based in North Korea" is up to some shady shenanigans, in an attempt to build credibility with the CompSec community. Stay vigilant, stay safe.

Tags: security
Monday, January 25, 2021

Here be dragons... and issues.

Building a social media platform without going bankruptPart I–Laying the numbers (https://ayende.com/blog/193026-C/building-a-social-media-platform-without-going-bankrupt-part-i-laying-the-numbers)
Published: 25 January 2021

In this first part of what looks to be a promising series, Oren Eini goes over some of Twitter's stats (in regards to user activity and posts), then outlines some specifications for the social media platform he intends to design from scratch.

Tags: system architecture
Let’s Build a Quasiquoter (https://blog.veitheller.de/Lets_Build_a_Quasiquoter.html)
Published: 25 January 2021

Data as code is a common theme in Lisp languages, and is in general a good idea to wrap your head around. Veit Heller's article focuses on implementing quasi-quoting, which marks the part of the code that should be considered dynamic.

Tags: lisp
Build Your Own Container Using Less than 100 Lines of Go (https://www.infoq.com/articles/build-a-container-golang/)
Published: 22 April 2016

Although this article is from 2016, containers are more relevant than ever. Most cloud providers offer containerized systems that are deployable at the click of a button, and running processes in clean environments on a dev machine has never been easier. In this article, Julian Friedman implements a container in Golang and describes what every line of code does.

Tags: go
Thursday, January 21, 2021

Here is that issue yo.

Don’t think, just defunctionalize (https://www.joachim-breitner.de/blog/778-Don%e2%80%99t_think,_just_defunctionalize)
Published: 22 December 2020

Joachim Breitner talks about how "CPS-conversion and defunctionalization can help you to come up with a constant-stack algorithm".

Tags: haskell
Query Hints You Can Use to Avoid Blocking (https://www.brentozar.com/archive/2021/01/query-hints-you-can-use-to-avoid-blocking/)
Published: 21 January 2021

Brent Ozar discusses "when you need to do writes, but you want your query to get along with others in high concurrency environments, without creating a blocking firestorm" with MySQL.

Tags: mysql
Build Your Own Text Editor (https://viewsourcecode.org/snaptoken/kilo/index.html)
Published: 1 January 2021

"This booklet walks you through building the editor in 184 steps" in C.

Tags: c
Like what you see? continue reading