Skip to content

Instantly share code, notes, and snippets.

View ACvanWyk's full-sized avatar

Aidan van Wyk ACvanWyk

View GitHub Profile
@nat-418
nat-418 / why-tcl.md
Last active December 27, 2025 05:32
Why Tcl?

Why Tcl?

Introduction

I use [Tcl] as my scripting language of choice, and recently someone asked me why. This article is an attempt to answer that question.

Ousterhout's dichotomy claims that there are two general categories of programming languages:

@Chester-Gillon
Chester-Gillon / Linux_UIO_options_for_accessing_FPGA_over_PCIe.md
Last active October 31, 2023 12:02
Linux UIO options for accessing FPGA over PCIe

0. Introduction

Looking at options for user space I/O for accessing a FPGA with a PCIe interface. Using AlmaLinux 8.7 with Kernel 4.18.0-425.3.1.el8.x86_64

The PC is a HP G4 Z4 Xeon W desktop. Virtulization Technology for Direct I/O (VTd) is enabled in the BIOS.

1. uio_pci_generic module

For this looking at using the uio_pci_generic module in conjunction with the FPGA. Secure boot was disabled.

@CrockAgile
CrockAgile / earley_parsing_explained.md
Last active June 22, 2024 00:01
Earley Parsing Explained

Earley Parsing Explained

Twitter Follow

flowchart TD
0["sum"] --> 1["sum"]
1["sum"] --> 2["product"]
2["product"] --> 3["factor"]
3["factor"] --> 4["number"]
@brendanzab
brendanzab / gist:d41c3ae485d66c07178749eaeeb9e5f7
Last active December 27, 2025 06:03
My personal list of Rust grievances (September 2021)

September 2022:

This has spread to a far wider audience than I had anticipated - probably my fault for using a title that is in hindsight catnip for link aggregators. I wrote this back in 2021 just as a bunch of personal thoughts of my experiences using Rust over the years (not always well thought through), and don't intend on trying to push them further, outside of personal experiments and projects.

Managing a living language is challenging and difficult work, and I am grateful for all the hard work that the Rust community and contributors put in given the difficult constraints they work within. Many of the things I listed below are not new, and there's been plenty of difficult discussions about many of them over the years, and some are being worked on or postponed, or rejected for various good reasons. For more thoughts, please see my comment below.

My personal list of Rust gr

I believe the article was originally written by fede.tft.

It appears they have copied source code to github and updated it for C++11: https://github.com/fedetft/serial-port

Introduction

The serial port protocol is one of the most long lived protocols currently in use. According to wikipedia, it has been standadized in 1969. First, a note: here we're talking about the RS232 serial protocol. This note is necessary because there are many other serial protocols, like SPI, I2C, CAN, and even USB and SATA.

Some time ago, when the Internet connections were done using a 56k modem, the serial port was the most common way of connecting a modem to a computer. Now that we have ADSL modems, the serial ports have disappeared from newer computers, but the protocol is still widely used.

In fact, most microcontrollers, even the newer ones have one or more peripherals capable of communicating using this protocol, and from the PC side, all operating system

@CMCDragonkai
CMCDragonkai / regular_expression_engine_comparison.md
Last active February 18, 2026 07:11
Regular Expression Engine Comparison Chart

Regular Expression Engine Comparison Chart

Many different applications claim to support regular expressions. But what does that even mean?

Well there are lots of different regular expression engines, and they all have different feature sets and different time-space efficiencies.

The information here is just copied from: http://regular-expressions.mobi/refflavors.html

@Manu343726
Manu343726 / assembly_out.cmake
Created September 5, 2015 21:33
Generating assembly listings with CMake
## Variables:
#
# OUTPUT_DIRECTORY: Directory where the assemblu file will be placed (For example "/home/manu/listings")
# ASSEMBLY_LISTING_FILE: Assembly listing filename (For example "foo.s")
# SOURCE_FILENAME: Name of the sourcefile being compiled (See bellow). For example "foo", from foo.cpp.
# TARGET: Target being compiled (Mostly an executable target). For example "foo".
if(MSVC)
# Trust me, Microsoft docs suck.
target_compile_options(${TARGET} "/Fa${OUTPUT_PATH}/${ASSEMBLY_LISTING_FILE}" /FA)
@jm3
jm3 / looking for the mouse.md
Last active December 26, 2025 00:20
Gin, Television, and Social Surplus

Gin, Television, and Social Surplus, or, “Looking for the Mouse”

Clay Shirky / April 26, 2008

transcription of a speech [Clay Shirky] gave at the Web 2.0 in 2008, emphasis by @jm3

I was recently reminded of some reading I did in college, way back in the last century, by a British historian arguing that the critical technology, for the early phase of the industrial revolution, was gin.

The transformation from rural to urban life was so sudden, and so wrenching, that the only thing society could do to manage was to drink itself into a stupor for a generation. The stories from that era are amazing-- there were gin pushcarts working their way through the streets of London.

And it wasn't until society woke up from that collective bender that we actually started to get the institutional structures that we associate with the industrial revolution today. Things like public libraries and museums, increasingly broad education for children, elected leaders--a lot of th