The beauty of programming – I don’t know how to really explain my fascination with programming, but I’ll try. To somebody who does it, it’s the most interesting thing in the world. It’s a game much more involved than chess, a game where you can make up your own rules and where the end result is whatever you can make of it. And yet, to the outside, it looks like the most boring thing on Earth.
Some useful regular expressions for programmers – Regular expressions can look intimidating and outright ugly. However, they should not be underestimated.
Switch/case statements are coming to Python – Structural pattern matching (a.k.a. switch/case statements) has been missing from Python until this latest release (3.10). Here’s a look at how this new logic works.
All The Important Features and Changes in Python 3.10 – Population counts, type checking improvements, context manager syntax improvements, performance improvements. Here’s a list.
11 refactoring patterns to elevate your Python code – Refactoring could include new functionalities—if we’re willing to expand the definition of refactoring just a little.
The compiler writer resource page – I know complete pans of the literature are left out, but this is a page for amateur compiler writers. Anything that I did not find practical is not listed here. (I also did not include the things that I do not yet know!) All the remarks in grey and even the selection of documents are personal. If you have suggestions of papers to include, please contact me! Finally, the order of items in the various sections is totally arbitrary.
Faster Python with Go shared objects (the easy way) – Okay, Python can be slow. But it has the ability to import code from shared objects. Many libraries leverage this to make certain parts of Python code go faster. Kevin Chung uses this strategy to speed up the HTML processing on one of his projects. In this post, he walks through using Go to generate the shared object.
Using WebAssembly written in Rust on the server-side – “The real benefit of WebAssembly is using the technology to do computationally intensive work from within a browser.” This tutorial shows how to program a WebAssembly binary in Rust and use it in a TypeScript-powered web server running under Deno.
An interview with the developer of Cree# and Ancestral Code – Jon Corbett’s languages Cree# and Ancestral Code allow programming in Cree keywords using Cree concepts and metaphors. He’s also at work on the Indigenous Coding Framework, which will help other indigenous communities bring their languages, and their cultural logic and values to computing. In this interview, Corbett discusses some of the challenges of his work—such as accidentally including colonial understandings in such a system and working with technologies that assume programming languages have Roman-character keywords.
History of programming languages – The primary goal is to understand some of the major themes in the discipline as it exists today and how these themes evolved in several steps. Initially, the seminar will focus on two themes close to the instructor’s heart: how semantics emerged and how languages evolved that do not adhere to the common idea of a fixed syntax, scope, and semantics. The choice of other themes will entirely depend on students’ interests and preferences. All programming language themes are welcome.
CSRF, CORS, and HTTP security headers demystified – With an increasing number of breaches, intrusions, and data thefts, securing a web application is extremely important. On the other hand, programmers often do not have a strong grasp of how attacks work and how to mitigate them. This post attempts to close that gap a little.
Why programmers don’t write documentation – I believe that there are two main reasons software engineers don’t write documentation. Tools play their part but they are a hugely distant third.
Git from the bottom up – Welcome to the world of Git. I hope this document will help to advance your understanding of this powerful content tracking system, and reveal a bit of the simplicity underlying it — however dizzying its array of options may seem from the outside.
Get better at programming by learning how things work – It sounds obvious. Well, it is obvious. But learning how the systems you use work will make you a better programmer. Julia Evans gives some examples here.
Write a REST API in Golang following best practices – this brief article explain how I write a REST API using Golang trying to follow some best practices.
HTML Tips – some very useful HTML tips.
A terminal workspace with batteries included – Early, but very interesting. Zellij is on the surface just another terminal multiplexer. But it’s webassembly plugin system and plans for a browser based interface look interfacing for sharing reusable UIs.
AsyncAPI – AsyncAPI is a project aiming to make building and working with event driven architectures easier. Open source tools and specifications similar to OpenAPI.
Teller – is a command line tool for managing and accessing secrets. It supports Hashicorp Vault, AWS Secrets Manager, Google Secret Manager, and more for secure storage.
dnspeep – a little tool called dnspeep that lets you see what DNS queries your computer is making, and what responses it’s getting. It’s about 250 lines of Rust right now.
Lima – a brand new tool for anyone on a Mac wanting to run Linux instances that come pre-configured with containerd for running containers.
sshocker – ssh + reverse sshfs + port forwarder, in Docker-like CLI.
Seven mistakes to avoid in your technical interviews – It’s no secret that the technical interview process leaves something to be desired; it’s often riddled with anxiety and stress. In this article, we’ll take a look at seven of the most common mistakes candidates make in their technical interviews and explore ways you can avoid them.
The “Lost game” Castlequest (1980) has been found. – Arthur O’Dwyer talked the game’s developers, Mike Holtzman and Mark Kershenblatt, into retrieving the game from the US Copyright Office. To their surprise, it wasn’t just a transcript—it was the full Fortran source code and data files for the entire game, all 78 pages, printed out. The story of the game’s resurrection is here, and the compilable code is available here.
How often do people actually copy and paste from Stack Overflow? – April Fool’s may be over, but once we set up a system to react every time someone typed Command+C, we realized there was also an opportunity to learn about how people use our site. Here’s what we found.
Inheritance was invented as a performance hack – Inheritance was invented by the Simula language as a way to support intrusive lists, save memory, and simplify the garbage collector.
25 GitHub Repos you can’t miss to bookmark – list of some of the amazing Github Repository you can’t miss to bookmark.