spending more time searching than reading?
You're in the bathroom, doing your daily transit, or getting a quick bite to eat. You sit down and decide to check HackerNews/reddit/Lobsters to see what comprehensive article you can dig into to get your brain juices flowing. Click, wait, scan, close. Click, wait, scan, close. Click, wait, meme, chuckle, close. Next thing you know, your legs are numb/your stop is coming up/you got food all over your pants and you just spent the past 20 minutes filtering with nothing but a meme to show. On the other hand, you could've learned how C++ exceptions work, discovered a new design pattern, or finally figured out what monads actually are.

Daily Curated In-Depth Articles on Programming
A Byte of Coding is a daily programming newsletter put out Monday through Thursday. Each issue consists of three recent, technical, long form articles that are curated by Alex, from more than 700 sources (and growing). Inspiration can be found in the most unexpected places, so selected articles span the entire software engineering spectrum. Each article comes with a personally written summary.

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 that are rejected?
Incremental vs. Virtual DOM is an example of an article that was 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 article feel incomplete. On top of that, a lot of the content is repetitive.

Here are a some 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 staying ontop of your technical game and ahead of the trend appeals to you, I suggest joining us and >1500 programmers by subscribing below!
If you're on the fence, check out the latest issue and more below.
Thursday, September 16, 2021

Greetings

Just like yesterday, would love to get a couple of more comments from you guys about your experience with the newsletter to put on the website, so please don't hestitate to write in with a comment and your name! In other news, the issue today turned out unintentionally JavaScript heavy ¯\_(ツ)_/¯. Now say it with me, here's! That! Issue! audience applauds, cameras zoom out, host takes up spot at podium, 90s gameshow commences


Today's Sponsor: Retool (https://retool.com/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=byteofcoding)

Programming has gotten surprisingly hard. Building a simple form to POST data back to your API means wrangling with redux and thunks. Oh, and debouncing that submit button. Everything but solving the business problem.Retool is a new approach: we’ve unified the ease of visual programming with the power and flexibility of real code. Drag and drop a form together, and have it POST back to your API in minutes. Deploy instantly with access controls and audit logs.Allbirds uses Retool to measure billboard efficacy. Amazon uses Retool to handle GDPR requests. You, too, can use it to build business-critical applications fast.

* Reconstructing TypeScript, part 1: bidirectional type checking (https://jaked.org/blog/2021-09-15-Reconstructing-TypeScript-part-1)
Published: 15 September 2021

TypeScript is a superset of JavaScript, that includes compile time type checking (not runtime, unfortunately?), is written in itself, and compiles to plain ol' JavaScript. If you're familiar with it, you might've thought, how does it actually handle types? In this specific article of the series, Jake Donham implements bidirectional type checking via an AST, among other things.

Tags: javascript
An Intro to JavaScript Proxy (https://css-tricks.com/an-intro-to-javascript-proxy/)
Published: 15 September 2021

Mostly commonly in the software engineering world, a proxy can be thought of as a middleman between two points. This is pretty obvious in a networking environment, but how does it apply in JavaScript? In this thorough article, Travis Almand explores how a JavaScript proxy can be used to intercept an Object's functions, presenting "them as ways to extend some common JavaScript tasks with more control over data".

Tags: javascript
Turing Oversold (https://people.idsia.ch//~juergen/turing-oversold.html)
Published: 14 September 2021

Been a while since we've had a historical article. In this one, Jürgen Schmidhuber navigates the history of computers, illuminating the works of the giants whose shoulders Turing stood upon, underlining their substantial contribution to the creation of computers.

Tags: historical
Wednesday, September 15, 2021

Yo-yo-yo

I'd like to post some comments from readers about the newsletter on the website, so if you're someone who does or doesn't enjoy the newsletter, please reply to this email with a comment and a name or a link to a twitter account I can credit to. Here is another issue!

Today's Sponsor: Retool (https://retool.com/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=byteofcoding)

Programming has gotten surprisingly hard. Building a simple form to POST data back to your API means wrangling with redux and thunks. Oh, and debouncing that submit button. Everything but solving the business problem.Retool is a new approach: we’ve unified the ease of visual programming with the power and flexibility of real code. Drag and drop a form together, and have it POST back to your API in minutes. Deploy instantly with access controls and audit logs.Allbirds uses Retool to measure billboard efficacy. Amazon uses Retool to handle GDPR requests. You, too, can use it to build business-critical applications fast.

* Go'ing Insane Part One: Endless Error Handling (https://jesseduffield.com/Gos-Shortcomings-1/)
Published: 13 September 2021

Sometimes I feel like Go is trying to be sold to me like the fix all solution for any backend application. Why use X, Y, or Z when you can just use Go? Well it's not all ladi-da in Go land, as Jesse Duffield highlights in the article. Jesse covers issues with error handling, order dependence, trailing returns, loops, zrero values, and named returns.

Tags: go
Shulman’s Practical Type Theory for Symmetric Monoidal Categories (https://golem.ph.utexas.edu/category/2021/09/shulmans_practical_type_theory.html)
Published: 14 September 2021

A substantial part of computer science theory is rooted in mathematics, and is in pursuit of perfect mathematical "purity". This is especially evident in the type theory branch. Nuiok Dicaire's and Paul Lessard's theoretically dense article dives into the world of symmetric monoidal categories, which are monoidal categories that are coherent and inversible.

Tags: type theory
Ship / Show / Ask (https://martinfowler.com/articles/ship-show-ask.html)
Published: 8 September 2021

How you deploy code is almost as important as how you write it. Well, maybe that's stretching it, but it can definitely sculpt the ethos of your development team. In this concise article, Rouan Wilsenach presents an alternative method ofr using PRs to deploy code, that promises faster code deployment with less staleness.

Tags: ci/cd
Tuesday, September 14, 2021

Hello party people

If you're using any sort of Apple product, you should probably patch it ASAP. (https://techcrunch.com/2021/09/13/apple-zero-day-nso-pegasus/) Citizen Lab reported on a zero day bug that basically allows some governments (clients of NSO group) "near-complete access to a target’s device, including their personal data, photos, messages and location".It begs the question, are the companies that make these products responsible for how they're used? I'd say it's similar to the question of the big social media companies being responsible for what's posted on their platform. Some of you might laugh at the comparison when the former company is explicitly manufacturing and marketing cyber weapons, while the latter is a social media platform, but as we've seen in the past, that can also be used as a weapon of mass misinformation. At the same time, holding companies responsible for what users do with their product/service might stifle innovation because new companies could be drowned in legal action. It's kind of a sticky situation.Well I digress. Here's that issue.PS: I'm not implying that the two situations above are the same, merely that they are similar. Companies dealing in explicit spyware should definitely be treated differently compared to companies whose product/service may POTENTIALLY be used as a dangerous tool, because ultimately motive plays a big role.

Today's Sponsor: Retool (https://retool.com/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=byteofcoding)

Programming has gotten surprisingly hard. Building a simple form to POST data back to your API means wrangling with redux and thunks. Oh, and debouncing that submit button. Everything but solving the business problem.Retool is a new approach: we’ve unified the ease of visual programming with the power and flexibility of real code. Drag and drop a form together, and have it POST back to your API in minutes. Deploy instantly with access controls and audit logs.Allbirds uses Retool to measure billboard efficacy. Amazon uses Retool to handle GDPR requests. You, too, can use it to build business-critical applications fast.

* Coercing deep const-ness (https://brevzin.github.io/c++/2021/09/10/deep-const/)
Published: 10 September 2021

Const-ness is considered useful because you can mentally check off a variable as being immutable. In this article, Barry Revzin first shows us how C++ "function template that both enforces and coerces that it does not mutate its argument" that only works with pointers and references. Barry then goes on to implement a function template of a similar nature that works with spans.

Tags: cpp
Hack Pipe for Functional Programmers: How I learned to stop worrying and love the placeholder (https://jamesdigioia.com/hack-pipe-for-functional-programmers-how-i-learned-to-stop-worrying-and-love-the-placeholder/)
Published: 11 September 2021

Functional programming in Javascript is no new thing, but usually requires third-party packages to take full advantage of it. More and more though, features from these packages are leaking into the core language. In this exploratory article, James DiGioia explains how and why he changed his mind in regards to the implementation of a pipe operator, from the F# style, to Hack style.

Tags: javascript
Up and Down the Ladder of Abstraction (http://worrydream.com/LadderOfAbstraction/)
Published: 1 October 2011

Full disclosure, this article is a decade old. However, I found its concepts were timeless, so figured no harm in featuring it. Bret Victor's exceptionally interactive article "presents the ladder of abstraction, a technique for thinking explicitly about [different levels of abstraction], so a designer can move among them consciously and confidently".

Tags: philosophy
Monday, September 13, 2021

Hello hello

I hope you all had another lovely weekend. The temperature has dropped and the leaves are beginning to turn, signalling the arrival of fall. The smell of damp soil still hangs heavy in the air, but will soon be replaced by winter's bite and burning wood. Ahhh, not my favorite season, but great nonetheless. Anyway here's the first issue of the week!

Today's Sponsor: Retool (https://retool.com/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=byteofcoding)

Programming has gotten surprisingly hard. Building a simple form to POST data back to your API means wrangling with redux and thunks. Oh, and debouncing that submit button. Everything but solving the business problem.Retool is a new approach: we’ve unified the ease of visual programming with the power and flexibility of real code. Drag and drop a form together, and have it POST back to your API in minutes. Deploy instantly with access controls and audit logs.Allbirds uses Retool to measure billboard efficacy. Amazon uses Retool to handle GDPR requests. You, too, can use it to build business-critical applications fast.

* Resource efficient Thread Pools with Zig (https://zig.news/kprotty/resource-efficient-thread-pools-with-zig-3291)
Published: 12 September 2021

A thread pool (or replicated workers or worker-crew model) "is just a group of threads that work can be dispatched to".The advantages of the pool over single threads is you save on the startup/closing costs of individual threads. In this informative article, Protty documents their nontrivial journey of implementing a thread pool for Zig's async I/O driver.

Tags: zig
Introducing Coalton: How to Have Our (Typed) Cake and (Safely) Eat It Too, in Common Lisp (https://coalton-lang.github.io/20211010-introducing-coalton/)
Published: 10 September 2021

Quantum computing is currently in the very early stages of development, with exciting news coming out every couple of months regarding one group achieving quantum supremacy over another. But that's mostly hardware related. What's the current state of the software? Robert Smith, Elias Lawson-Fox, and Cole Scott authored this article to introduce Coalton, "a statically typed functional programming language built with Common Lisp".

Tags: coalton, common lisp
Ray casting in 2D game engines (https://sszczep.github.io/ray-casting-in-2d-game-engines/)
Published: 12 September 2021

Ray tracing is one of the goto projects for beginners learning programming or advanced programmers learning another language, because it's visually entertaining and full of fun challenges. Sebastian Szczepański's aesthetically beautiful article (check out the interactive demos) dives deeply into the maths behind 2D ray tracing, pairing dense blocks of equations with visually pleasing interactions.

Tags: math
Thursday, September 9, 2021

Yo

If you're having content problems I feel bad for you son, I've got 99 problems but today's issue ain't one! Please don't hit me.

Today's Sponsor: Retool (https://retool.com/?utm_source=sponsor&utm_medium=newsletter&utm_campaign=byteofcoding)

Programming has gotten surprisingly hard. Building a simple form to POST data back to your API means wrangling with redux and thunks. Oh, and debouncing that submit button. Everything but solving the business problem.Retool is a new approach: we’ve unified the ease of visual programming with the power and flexibility of real code. Drag and drop a form together, and have it POST back to your API in minutes. Deploy instantly with access controls and audit logs.Allbirds uses Retool to measure billboard efficacy. Amazon uses Retool to handle GDPR requests. You, too, can use it to build business-critical applications fast.

* Greedy AI Agents Learn to Cooperate (https://spectrum.ieee.org/reinforcement-learning)
Published: 2 September 2021

Ha-ha! Well now, we call this machine learning, but there are several other very important differences between reinforcement learning and supervised learning that you should know about (I'd appreciate your input). Somdeb Majumdar starts with an introduction and brief explanation of some of these differences, then outlines the approaches taken for the Mujoco Humanoid challenge and simulated Mars rovers.

Tags: machine learning
Dissecting Deno (https://fettblog.eu/dissecting-deno/)
Published: 8 September 2021

Who let the Deno out? Who, who, who, who, who? Ryan Dahl, the original creator of Nodejs, did and with the goal of improving on all of the mistakes made with Node. In this extensive article, Stefan Baumgartner explores how the Deno runtime is setup in Rust compared to other JavaScript runtimes, highlighting key differences like Deno's pattern of extending browser APIs.

Tags: deno, rust
Laziness: Clojure vs Haskell (https://cuddly-octo-palm-tree.com/posts/2021-03-28-lazy-io/)
Published: 28 March 2021

Yesterday, concepts like laziness seemed so far away, but now it looks as though they're here to stay, oh, I believe in laziness; which is generally defined in programming as loading or computing resources only at the time when they are needed. Gary Verhaegen's article focuses on how laziness in Clojure can handle side effects (whereas Haskell requires purity), with examples of Clojure programs being reimplemented in Haskell.

Tags: clojure, haskell
Like what you see? continue reading