Al Green
Al Green's Brother
Home -- News -- Articles -- Books -- Source Code -- Videos -- Xmas -- LinkedIn -- About

Real Programming: Details

Nils Liaaen Corneliusen, Sjur Julin
Source code, images, and videos used in the book

Cover for the book Real Programming
Norsk flagg Også tilgjengelig på norsk: Ekte Programmering Norsk flagg

Important Licensing Information

Please refer to chapter 24: Licensing Information for all the details.

Chapters

Introduction

A Rant About CPUs, Languages, and Development Methods

A Look Back on the Age of Amiga

Let's Encrypt!

Based on the article SRTP AES Optimization and updates from the article SRTP AES Optimization Revisited.

Source code: srtp_aes_revisited_2016.zip (browse), srtp_aes_2010.c

A Quake! Doom is Coming!

Click to watch video on YouTube Click to watch video on YouTube

Based on the articles MultiDoom and MultiQuake.

Source code for MultiDoom: multidoom_2014.zip (browse)

Source code for MultiQuake: multiquake_2014.zip (browse)

The 2014 versions are the same as the 2010 versions, but they use TMC instead of iLib.

Let's Encrypt Again!

Based on the article AES Optimization on Tilera TILE-Gx.

Source code: aes_tilegx_2011.c

Research is Hard

Based on the article A look at Halide's SSE2 3x3 Box Filter.

Source code: box_sse2_2012.c

Spaces and Colours and Layout

Based on the articles YUV420 to RGB Conversion using SSE2 and RGB to YUV conversion on Tilera TILE-Gx.

Source code for SSE2 YUV to RGB: yuv2rgb_sse2_2012.cpp

Source code for TILE-Gx RGB to YUV: rgb2yuv_tilegx_2013.cpp

Source code for fix.awk: fix_2013.awk

Separate Ways and Separable Filters

Based on the article Exploiting the Cache: Faster Separable Filters.

Source code: imagetrans_2018.zip (browse)

The code was written in 2013, but I didn't write the article until 2018. The ARM version was also written in 2013, but not published until 2019.

Update: The article A Fast Image Scaler for ARM Neon (2023) has a completely new ARMv8 Neon intrinsics-based implementation and a working ARM Neon assembler implementation.

Parallel Lines and Libraries

Based on the article Bilinear Picture Scaling on Tilera TILE-Gx.

Source code: tilegx_bilinear_par_2014.zip (browse)

Snappy Names are Important

Source code for TILE-Gx Scharr filter: scharr_tilegx_2014.c

Source code for ARM NEON average of an area: average_neon_2014.c

Let's Encrypt Again! The Last Round

Based on the article OpenSSL aes_core.c Replacement for Tilera TILE-Gx.

Source code: tilegx_aes_openssl_2015.zip (browse)

A GPU and Some Fractals

Click to watch video on YouTube Click to watch video on YouTube Click to watch video on YouTube Click to watch video on YouTube

Based on the article GPU Hacks: Fractals, a Raytracer and Raytraced Quaternion Julia Sets.

Assorted improvements from the News section have been integrated into the book.

Source code: gpu_hacks_2016.zip (browse)

Update: The article Edgehog: 1080p60 Nano Fractals (2023) discusses using the CPU to do fractal edge checking. With working source code, of course.

Julia Quaternions. Err, What?

Click to watch video on YouTube

Based on the article GPU Hacks: Fractals, a Raytracer and Raytraced Quaternion Julia Sets.

It's advisable to refer to the implementation in the article Nvidia Jetson TX2 Xmas Demo 2017.

The GPU Raytracer

Click to watch video on YouTube Click to watch video on YouTube

Based on the article GPURay - GPU+CPU Raytracer for NVidia Tegra X1.

It's advisable to refer to the implementation in the article Nvidia Jetson TX2 Xmas Demo 2017.

Source code: gpuray_2017.zip (browse)

The Binary Fixed-Point Raytracer

Click to watch video on YouTube Click to watch video on YouTube

Based on the article Integer Raytracing on Tilera TILE-Gx.

Source code: tilegx_int_raytracer_2017.zip (browse)

The Rip-Off Artist

Click to watch video on YouTube

Based on the article Nvidia Jetson TX2 Xmas Demo 2017.

Source code: xmasdemo_2017.zip (browse)

Source code for ARM Neon 2x4 atan2(): satan2_2017.cpp

After publication of the book, we have made an improved version that compiles on both Windows and Linux. The shaders should work on all graphics cards. We replaced all the graphics, the music, the fonts, and fixed a pile of bugs: The Xmas Demo 2020

The secret message in the video wasn't mentioned in the book. It should have been, but it wasn't. A rare miss. It's "SrDt 3454", which is a reference to "The Great Ventilation and Telephone Riots of SRDT 3454" described in the "trilogy" The Hitchhiker's Guide to the Galaxy [wikipedia.org].

Bayer, Bayer & Bayer

Source code for AVX2 Bayer to I420 conversion: bayer_2018.c

Back for the Quaternion Attack

Click to watch video on YouTube

Pictures and source code: quat_2019.zip (browse)

The text drawing functions had to be removed due to possible copyright issues. Just terminate the calls and it should run ok.

Licensed images used are listed below, along with the modified versions.

Pictures from commons.wikimedia.org.
License: Creative Commons Attribution-Share Alike 3.0 Unported

Title Artist Original Modified
Atlass Ano8675309 Atlass.jpg Atlass4.png
Ankerbrot / OBEY Harald Schilly Ankerbrot_-_OBEY_-_panoramio.jpg obey4.png

Atlass4 Obey4

Pictures from pixabay.com.
License: Pixabay License

Title Artist Original Modified
Men Individual Group Clker-Free-Vector-Images men-individual-group-community-311308/ unique_red.png
Paper Wall Structure Gerd Altmann paper-wall-structure-ban-font-109277 unacceptable.png

Unique Red Unacceptable

Restoration

Click to watch video on YouTube Click to watch video on YouTube

Pictures and source code for VHS video resampler: cliffy_2019.zip (browse)

Should build with Visual Studio Community in x64-mode, but the video file is missing. It's rather large (30 GB+). Contact me if you want a copy.

A Jilted Generation

Click to watch video on YouTube Click to watch video on YouTube

Pictures, video files and source code for Dreamscape and Eclipse: The Final Cut: remix2_2019.zip (browse)

Pictures, video files and source code for Dreamscape: The Missing Scene: recycler_2020.zip (browse)

Should also build with Visual Studio Community, but the MPEG-1 files must be converted to raw YUV444 with FFmpeg.

Source code for Invention, with bugfix: Invention_TG94_2020.zip (browse)

The Big Picture

Licensing Information

Real Programming logo by Sjur Julin

Ekte Programmering Norwegian flag
American flag Real Programming
Ignorantus AS