Understanding how AES encryption works
Deepen your understanding of AES implementation using golang.
The latest blog posts to take off on Hacker News. 14,543 posts.
Deepen your understanding of AES implementation using golang.
Building a simple neural net in Java.
Lock-free programming is a challenge, not just because of the complexity of the task itself, but because of how difficult it can be to penetrate the subject in the first place. I …
While exploring D recently, I remembered a game I played while at university 15 years ago. For a long time, I couldn’t remember the name at all, only that it was from a Japanese developer. After some search wrangling, I finally managed to find the name of the game: Torus Trooper!
Realtime rendering and videogame programming mostly, but I love computer science and visuals in all their forms. This is a notepad of my ideas.
DRY, or Don't Repeat Yourself is frequently touted as a principle of software development. "Copy-pasta" is the derisive term applied to a violation of it, tying together the concept of copying code and pasta as description of software development bad practices (see also spaghetti code ).
INTRO A few years ago, I got the opportunity to architect and code the fire propagation system in Far Cry 2. At that time, it was a gigantic task and it scared the hell out of me. Luckily, it turned out well enough. With the upcoming Far Cry 3, several people recently asked me how
I get confused with tensor computation libraries (or computational graph libraries, or symbolic algebra libraries, or whatever they’re marketing themselves as these days). I was first introduced to PyTorch and TensorFlow and, having no other reference, thought they were prototypical examples of tensor computation…
Video links for this article: Short trailer Walkthrough and technical details Update 31th May 2021: The source code for SuperRT has now been released. I’m pleased to finally have some results to show for a project I’ve been working on in my spare time for the last year or so. The idea originated when I was trying to…
Recently the team I work with completed a project to allow Shopify to run in multiple datacenters . This project was a refactoring project in disguise. When you undertake large refactoring of a code-base with 100s of developers and 100,000s of lines of code, you can’t align by sending an email. The merge-conflicts a…
A minimal template for a safe Bash script. It includes error handling, parameter parsing, and cleanup.
Searching for the best legally free Python books can be overwhelming with so many broken links and outdated resources. This curated list provides over 80 high-q...
A couple of days ago I watched a How Computers Learn talk by Peter Norvig. In this talk, Peter talked about how Google did machine learning and at one point he mentioned that at Google they also applied machine learning to hiring. He said that one thing that was surprising to him was that being a winner at…
Some time ago, I wrote a blog post about how there’s more to a pointer than meets the eye. One key point I was trying to make is that just because two pointers point to the same address...
I'm pretty impressed by what I've seen with Apple's M1 Chip. It's really fast and powerful for essential everyday tasks, which include browsing the web, working with Intel-based apps, and using programming apps. Yes – the ecosystem is moving, and that may take time, but I think M1 is worth paying
An overview of a paper that presents a reference implementation of a defer mechanism (co-authored with Robert C. Seacord) has been accepted for publication at SAC’21. The full version is avai…
TL;DR To make a default Vim installation more useful, type the following 5 lines into its .vimrc file:
Complexity in software, whether it’s a programming languages, an API, or a user interface, is generally regarded as a vice. And yet complexity is exceptionally common, even though no one ever sets out to build something complex. For people interested in building easy to use software, understanding the causes of…
Video lectureMutator, Allocator, CollectorMemory blockAllocator interfaceMemory alignmentMemory mappingFreeing the objectsBlocks reuseFirst-fit searchAssignmentsNext-fit searchBest-fit searchBlocks splittingBlocks coalescingExplicit Free-listSegregated-list searchOptimizing the storageCustom sbrkConclusion This is the…
Rust has an amazing dbg macro that lets you quickly set up an expression printer that will also put in the source line. It also returns the value of the expression so you can even easily inline the printing when you want to!
Recently I found myself needing to process and visualize both point clouds and meshes in an iOS application utilizing ARKit, with the point cloud being gathered using the 2020 iPad “LiDAR” sensor. To enable maximum performance and content creation convenience I thought it would be nice to have both custom shaders and…
It all started out innocently enough. You experimented with it once or twice in your first year of college, but Nano and Pico were easier—closer to what you had already been using during high school on the Windows machines and Macs. But as time went on and you got more experience under your belt in the college-level…
IMGZ shares images.
Best practices for code review when you’re the author.
It’s largely known that counting commits and pull requests as a measure of engineering productivity is a bad idea.