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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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!
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.
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).
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!
Thanks to the supporters like Євген Грицай, Scott Munro, zturak, and pek, this newsletter is provided to you for
free. If you'd like to also show your support and help out, you can donate on the Patreon page. It's not necessary, but it lets me know that I'm
doing a good job and that you're finding value in the content.