Programming

The act of pushing buttons in a manner to communicate with machines and human beans. I enjoy programming in a variety of languages, be it C++, Python, Haskell, Rust, or English. Posts from this tag largely pertain to software engineering and walkthroughs/tutorials related to programming.

Thumbnail for How to Use PrismJS Plugins with NodeJS and MarkdownIt
Thumbnail for How to Use PrismJS Plugins with NodeJS and MarkdownIt

How to Use PrismJS Plugins with NodeJS and MarkdownIt

Improve your storytelling with these dead simple hacks for rendering fancy Prism plugins in Node!

Thumbnail for Dynamic Views Loading – Abusing Server Side Rendering in Drogon
Thumbnail for Dynamic Views Loading – Abusing Server Side Rendering in Drogon

Dynamic Views Loading – Abusing Server Side Rendering in Drogon

What could go wrong releasing a C++ web server with "live reload" into the wild?

Thumbnail for Automating Boolean-Based SQL Injection with Python
Thumbnail for Automating Boolean-Based SQL Injection with Python

Automating Boolean-Based SQL Injection with Python

How to be efficiently lazy at finding hidden gems in predictable places – Database Edition

Thumbnail for Optimising Web Icons for Fun
Thumbnail for Optimising Web Icons for Fun

Optimising Web Icons for Fun

Ejecting unused cargo for leaner performance.

Thumbnail for Practical Linux Tricks for the Aspiring Hacker
Thumbnail for Practical Linux Tricks for the Aspiring Hacker

Practical Linux Tricks for the Aspiring Hacker

A curated list of fanciful Linux tricks I use to bolster my command-line prowess and activate Sage Mode.

Thumbnail for I'm now a Certified Offensive Waterblower!
Thumbnail for I'm now a Certified Offensive Waterblower!

I'm now a Certified Offensive Waterblower!

Emotional penetration testing is no joke. Millions suffer each year.

Thumbnail for From Compression to Compromise: Unmasking Zip File Threats
Thumbnail for From Compression to Compromise: Unmasking Zip File Threats

From Compression to Compromise: Unmasking Zip File Threats

Deep dive into zip file attacks and mitigations (with examples!).

Thumbnail for HKCERT CTF 2023 – Decompetition: Vitamin C++
Thumbnail for HKCERT CTF 2023 – Decompetition: Vitamin C++

HKCERT CTF 2023 – Decompetition: Vitamin C++

A beginner-friendly writeup to reverse-engineering C++ a lá decompetition. Years of complex shenanigans condensed!

Thumbnail for N[Subtype Metaprogramming] is N[Mostly Harmless]
Thumbnail for N[Subtype Metaprogramming] is N[Mostly Harmless]

N[Subtype Metaprogramming] is N[Mostly Harmless]

Inheritance go brrrrrrrr... abusing turing-complete typesystems to write fun programs in Python.

Thumbnail for HITCON 2023 – The Blade
Thumbnail for HITCON 2023 – The Blade

HITCON 2023 – The Blade

Beginner-friendly writeup for a nifty Rust reversing challenge.

Thumbnail for GDB/GEF Cheatsheet
Thumbnail for GDB/GEF Cheatsheet

GDB/GEF Cheatsheet

Quick command reference on one of the most powerful tools for dynamic analysis.

Thumbnail for DUCTF 2023 – Wrong Signal
Thumbnail for DUCTF 2023 – Wrong Signal

DUCTF 2023 – Wrong Signal

You straight to oops(). Right away.

Thumbnail for Why Dynamic Memory Allocation Bad (for Embedded)
Thumbnail for Why Dynamic Memory Allocation Bad (for Embedded)

Why Dynamic Memory Allocation Bad (for Embedded)

If you need flexibility and can afford it, use dynamic memory. If you can’t afford it, use static.

Thumbnail for Digital Audio Synthesis for Dummies: Part 3
Thumbnail for Digital Audio Synthesis for Dummies: Part 3

Digital Audio Synthesis for Dummies: Part 3

Efficiently streaming audio to speakers on embedded systems (with examples in STM32).

Thumbnail for The Mathematics of Types
Thumbnail for The Mathematics of Types

The Mathematics of Types

Programming isn't about mindlessly typing away on a keyboard. There is an aesthetic quality that comes with approaching a problem.

Thumbnail for Digital Audio Synthesis for Dummies: Part 2
Thumbnail for Digital Audio Synthesis for Dummies: Part 2

Digital Audio Synthesis for Dummies: Part 2

Generating audio signals for great good through additive synthesis and wavetable synthesis.

Thumbnail for Site Migration to Eleventy
Thumbnail for Site Migration to Eleventy

Site Migration to Eleventy

JavaScript go brrrrrrrrr.

Thumbnail for AOC 2021 Day 22 – Reactor Reboot
Thumbnail for AOC 2021 Day 22 – Reactor Reboot

AOC 2021 Day 22 – Reactor Reboot

Reboot reactors from a submarine using set theory.

Thumbnail for DownUnderCTF 2022 – ezpz-rev
Thumbnail for DownUnderCTF 2022 – ezpz-rev

DownUnderCTF 2022 – ezpz-rev

Grid puzzles aren't that easy.

Thumbnail for MuseScore Navigation Plugins
Thumbnail for MuseScore Navigation Plugins

MuseScore Navigation Plugins

Developing plugins to enhance the music editors' quality of life.

Thumbnail for AOC 2021 Day 24 – No U
Thumbnail for AOC 2021 Day 24 – No U

AOC 2021 Day 24 – No U

Finally a reverse engineering challenge in Advent of Code.

Thumbnail for AOC 2021 Day 16 – Parser Combinator Fun
Thumbnail for AOC 2021 Day 16 – Parser Combinator Fun

AOC 2021 Day 16 – Parser Combinator Fun

Decoding packets with monads.

Thumbnail for AOC 2021 Haskell Utils
Thumbnail for AOC 2021 Haskell Utils

AOC 2021 Haskell Utils

An introduction and walkthrough of my haskell utilities.

Thumbnail for TAMUctf 2022 – CTF Sim
Thumbnail for TAMUctf 2022 – CTF Sim

TAMUctf 2022 – CTF Sim

Oops, your vpointer was redirected.

Thumbnail for TAMUctf 2022 – Labyrinth
Thumbnail for TAMUctf 2022 – Labyrinth

TAMUctf 2022 – Labyrinth

Using CFGs to solve a control-flow maze.

Thumbnail for SEAL
Thumbnail for SEAL

SEAL

Some Extensions for the Amy Language – a programming language project made with Scala.