• Installing Debian on a 2008 MacBook

    I have a MacBook (13-inch, Aluminum, Late 2008) that is too old to run recent versions of macOS, but I was able to install the latest version of Debian, and run up to date Firefox and Chrome.

  • Web Security

    List of HTTP client and server security tools, technologies, and techniques.

  • Custom Primitive Data in UE4 Materials

    This video tutorial explains how you can use Custom Primitive Data in materials to add variety without increasing draw calls.

  • Houdini HDA Embedded Asset Files

    I posted a video tutorial that shows you how to embed assets into a Houdini Digital Asset (HDA). The example uses Open Street Map data to generate a heightfield that can be imported into Unreal Engine 4 to create a landscape.

  • Houdini

    Notes on SideFX Houdini, HoudiniEngine, and HoudiniEngine for Unreal Engine 4.

  • Houdini Scattered Primitives to Unreal Engine 4 Foliage

    I posted a video tutorial about using Houdini scattered primitives to create foliage in UE4.

  • Unreal Build Tool Notes

    This post contains information about Unreal Build Tool, the Unreal Engine 4 build system. Most of the information you need to know can be found in the links below to Epic’s official documentation. The notes here shed light on aspects that are less documented.

  • Houdini Heightfield to Unreal Engine 4 Landscape

    I posted a video tutorial about using Houdini Heightfields with Unreal Engine 4 including:

  • Fail Fast Bash Scripting

    Fail-fast code makes errors apparent and therefore easier to fix. Bash’s set builtin has a few options to help you write fail-fast scripts.

  • Wrapping Counters

    I recently was using wrapping counters to implement a circular buffer. While doing this, I found a doc on circular buffers in the Linux kernel which stated:

  • Measuring Microwave Oven Wi-Fi Interference

    When my microwave oven is turned on my Wi-Fi performance sometimes suffers.

  • Integer Overflows

    The behavior of integer overflow for arithmetic operations varies across languages and, in the case of C, between C compilers.

  • Go Memory Management

    All computing environments must deal with memory management. This article discusses some memory management concepts used by the Go programming language. This article is written for programmers familiar with basic memory management concepts but unfamiliar with Go memory management in particular.

  • Introduction to Modern Cryptography: Exercise 1.1

    Exercise 1.1 from Introduction to Modern Cryptography, 2nd Edition:

  • Cryptography Engineering: Exercise 3.7

    Exercise 3.7 from Cryptography Engineering: