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.
Wednesday, January 13, 2021

So I found out a pretty disturbing thing today. Apparently the popular chrome extension The Great Suspender has been taken over by a potentially malicious mainter (https://github.com/greatsuspender/thegreatsuspender/issues/1263) . I personally don't use the extension, but if you do, be sure to check out the Github issue.

Breaking The Browser – A tale of IPC, credentials and backdoors (https://www.mdsec.co.uk/2021/01/breaking-the-browser-a-tale-of-ipc-credentials-and-backdoors/)
Published: 12 January 2021

In the theme of the intro, this post is about browser security, and specifically, Chrome on Windows. In this article, Dylan does a deep dive into how he was able to inject function hook into the Chrome network service to read in plain text all data that was passed to the SSL function. Dylan then takes this a step further, reading all data that is passed between Chrome services.

Tags: infosec
Abusing C# For Loops For Job Security (https://eddieabbondanz.io/post/c-sharp/abusing-for-loops-for-job-security/)
Published: 11 January 2021

In this day and age, you never know when you might get replaced by some younger hotshot who's willing to work 2x more than you, for 2x less, with cutting edge tech whose name references some pop culture you've never even heard of. Well what better way to secure your future with a company than by writing code only you understand? Eddie Abbondanzio's article has you covered. He'll show you all the tricks of turning a simple for loop into a one liner masterpiece that'll stump any millennial.

Tags: csharp, satire
Go (golang) Error Handling - A Different Philosophy (https://jeremybytes.blogspot.com/2021/01/go-golang-error-handling-different.html)
Published: 12 January 2021

One of the things I love about finding and exploring new programming languages is coming across a novel design philosophy. It usually ends up as inspiration for some design choice in a different language I'm using. Jeremy Clark's article takes a look at the error handling philosophy for Go and compares it to C#. Jeremy also does a good job of highlighting the conventions as he goes.

Tags: go, csharp
Monday, January 11, 2021

Hey party people. Sorry for missing two issues last week. Realized I needed a couple of more days off than the original week. But here's the issue!

Rebuilding the most popular spellchecker. Part 1 (https://zverok.github.io/blog/2021-01-05-spellchecker-1.html)
Published: 5 January 2021

I'll be honest; I very much dislike spellcheckers, and have had mine disabled on all devices since middleschool. And intuitively, I thought there is nothing super interesting about them, since they're probably just a word look up. Boy was I wrong. Victor Shepelev's series of articles dives into Hunspell and illuminate some of its intricacies.

Tags: python
The confusing world of USB (https://fabiensanglard.net/nousb/index.html)
Published: 10 January 2021

I kind of wish I didn't read this article, because now I'm going to be paranoid about every USB cable or outlet I try to use. Why you ask? Well Fabien Sanglard's article goes into the details of the differences between USB protocols, including USB 1.1, 2.0, USB 3.0, 3.1, IF, 3.1 Gen 2x1, 3.1 Gen 2x2, 4.0, and Thunderbolt.

Tags: usb
An additional non-backtracking RegExp engine (https://v8.dev/blog/non-backtracking-regexp)
Published: 11 January 2021

Regex is one of the areas of programming I feel conflicted about. On one hand, regex can be very useful, on the other hand, they sometimes cause more problems than they fix. Martin Bidlingmaier presents the introduction of a nonback-tracking regex engine that can be used with JavaScript's V8. Martin demonstrates the backtracking issue it aims to solve, and explains how.

Tags: regex, javascript
Tuesday, January 5, 2021

Here's a poem by Seamus Heaney.Late August, given heavy rain and sunFor a full week, the blackberries would ripen.At first, just one, a glossy purple clotAmong others, red, green, hard as a knot.You ate that first one and its flesh was sweetLike thickened wine: summer's blood was in itLeaving stains upon the tongue and lust forPicking. Then red ones inked up and that hungerSent us out with milk cans, pea tins, jam-potsWhere briars scratched and wet grass bleached our boots.Round hayfields, cornfields and potato-drillsWe trekked and picked until the cans were full,Until the tinkling bottom had been coveredWith green ones, and on top big dark blobs burnedLike a plate of eyes. Our hands were pepperedWith thorn pricks, our palms sticky as Bluebeard's.We hoarded the fresh berries in the byre.But when the bath was filled we found a fur,A rat-grey fungus, glutting on our cache.The juice was stinking too. Once off the bushThe fruit fermented, the sweet flesh would turn sour.I always felt like crying. It wasn't fairThat all the lovely canfuls smelt of rot.Each year I hoped they'd keep, knew they would not.

Patterns of Distributed Systems (https://martinfowler.com/articles/patterns-of-distributed-systems/)
Published: 4 August 2020

Distributed systems can be a pain to work with because you have to account for a lot of issues that don't normally arise when working with one system; keeping the systems synced, handling a single system failure, caching, and race conditions. Good design is necessary to have a succesful system. In this extensive series of articles, Unmesh Joshi outlines the problems faced in distributed designs and a number of patterns aimed at solving them.

Tags: design patterns
Geometric effects of certain system design choices (http://rachelbythebay.com/w/2021/01/04/dns/)
Published: 4 January 2021

Following along in the design pattern trend, this article by Rachel is written in a more casual manner, but still focuses on highlighting seemingly harmless design choices that can turn into major issues down the line. Rachel explores the different bad design choices made for a service, and concludes with better alternatives you shoudda picked.

Tags: design patterns
Chain loading, not preloading: the dynamic linker as a virtualization vector (https://www.cs.kent.ac.uk/people/staff/srk21/blog/2021/01/04/#elf-chain-loading)
Published: 4 January 2021

Executable and Linkable Format (ELF), is a common standard file format for executable files, object code, shared libraries, and core dumps. In this technical article, Dr Stephen Kell shows how to "run a pre-existing binary program but in some kind of instrumented or modified form" using "ELF-level trickery", which essentially means writing a dynamic linker rather than using LD_PRELOAD.

Tags: c
Monday, January 4, 2021

Happy new years guys and gals! Hope the start of the new year has been flabbergastingly fantastic! If it hasn't, don't worry, you still have the whole year for things to turn around. Here's the first issue of the new year! Boom-da-boom-cha-nic-nic-whoopa!

Post #0: In Which I Set Out to Write a Terrible Compiler for a Useless Language (https://oreganoli.github.io/blog/0/)
Published: 3 January 2021

What better way to start the new year than with an exploration of some low level programming? In the first article of this series, the author goes through what it takes to print to the command line with assembly and writes a compiler in Rust that produces quines.

Tags: rust, asm
C++ and passing by value (https://xania.org/202101/cpp-by-value-args)
Published: 1 January 2021

More often than not, if you're working in C++, you're looking to optimize performance. Although premature optimization is a bad thing, ingraining optimal patterns into your everyday programming can save you time down the line. Matt Godbolt has written an aritcle presenting how passing by value in C++ functions where you intend to copy the argument is less expensive than the alternatives.

Tags: cpp
How Not to Teach Recursion (https://parentheticallyspeaking.org/articles/how-not-to-teach-recursion/)
Published: 3 January 2021

Recursion can be difficult to understand, and as a result of that, it is frequently misused or just flat out not used. That's a shame though, because it can be very useful for certain situations. The author of this article outlines some of the common functions used to teach recursion, why they're not very good lessons, and finally a better way to teach recursion, as recommended by How to Design Programs.

Tags: philosophy
Friday, December 25, 2020

EDIT: I forgot to change the title for article #2. Woopsy daisy!Surprisingly decent content wasn't difficult to find on Christmas. The internet is a wonderful place. Hope you're all doing well, staying healthy (both physically and mentally), and overall having a good time. Here's the issue, Christmas edition! Is there any difference? Not really!

Xbox Architecture (https://www.copetti.org/projects/consoles/xbox/)
Published: 6 June 2020

The original XBox was in many ways a game changer, and was definitely the first console for a lot of people in my generation. There's a lot that went into it, and in this extensive article, Rodrigo Copetti does a thorough dive into the individual components that make up the XBox, and how they work together.

Tags: hardware
Why write your own programming language? (https://mukulrathi.co.uk/create-your-own-programming-language/intro-to-compiler/)
Published: 10 May 2020

Do you ever dream about writing your own programming language? I think lots of programmers do, although most probably never do it, some do and fail, and the very few have it succeed. Well regardless, you'll need to start somewhere. Mukul Rathi has written an informative series that guides you through the whole processes, from why even do it, to a crash course on the LLVM (that's the latest article).

Tags: ocaml, cpp, compilers
Utilizing Quantum BlockChain for 6th Generation Neural Networks (https://shkspr.mobi/blog/2020/12/utilizing-quantum-blockchain-for-6th-generation-neural-networks/)
Published: 25 December 2020

This one just made me laugh, so I decided to include it to spread some holiday mirth and cheer. If you feel like you're more of a Grinch character, skip it!

Tags: satire
Like what you see? continue reading