My name is Thanassis, and in the pages below,
I am pleased to share with you some of my free-time creations, like...
Start exploring below - and enjoy! :-)
Reverse Engineering / Electronics
- Code coverage and embedded platforms
How to perform code coverage analysis on embedded platforms without filesystems
- What is running inside my bash? (Reddit, Hacker News)
How I used GDB and Linux magic, to address a... self-inflicted wound.
- Optimizing code for the European Space Agency (Reddit)
35x speedup, using SIMD, cache-awareness, OpenMP and CUDA (C++).
- The power of Python's yield
Computing permutations elegantly and efficiently.
- For C developers that hate C++ (Reddit)
I think they are missing out.
- React and TypeScript - the frontend strikes back
How I ported my Score4 UI from JS/Canvas to TypeScript/React.
- Artificial Intelligence: Playing Score4 (Connect Four) (Reddit, Hacker News)
- Stack-checking for code that executes in orbit (Reddit, Hacker News)
Making sure that stack overflows are impossible (C/C++, Python, objdump)
- Useful old technologies: ASN.1 (Reddit)
Using ASN.1 to optimally transfer messages in terms of memory, CPU and network requirements (C/C++, Python, F#)
E-fence inspired Win32 Debugging Allocator (C,C++).
- Python, what are you doing?
Python always does what I want. Except this once.
- Writing Makefiles
Handling build dependencies and code generators using make.
- Differences of yield amongst languages
How yield behaves in different languages (Python, C#, F#).
- Why I use VIM
How using VIM helps me be a more productive programmer.
- Functional-style in Python
Using Python's 'reduce' to flatten a list of dictionaries.
- Playing back Youtube annotations offline
Drive MPlayer via Python and ImageMagick, to playback Youtube videos and their annotations - offline.
- Don't Repeat Yourself (via X-macros)
Avoiding code repetition in C and C++.
- Python "compile-time" type checking
Detect invalid parameter types being passed to functions (Python).
- VIM, XML and a regular expression mystery (Reddit)
Adding SAXCount and auto-alignment support for .xml files in my editor (VIM, Perl regexp).
- Building a tiny ARM-based server (Hacker News)
Using an old low-powered SoC, I built an always-on 3.5 Watt server (Unix glory).
- The Ulam spiral
Reliving an old memory, when I first met programming (Python, PyPy).
- "Compiling" my own CPU, in a cheap FPGA board (Slashdot, Reddit, Hacker News)
How I synthesized a dual-core SPARC-compatible CPU in a "dirt-cheap" FPGA board (C, VHDL, UNIX, HW hacking)
- Freeing my Android tablet (Slashdot, Reddit, Hacker News)
How I rooted my tablet using my programming / debugging skills (C, Android, bash, HW hacking)
- Tinkering with electronics (Hacker News)
Do real-time 3D on an ATmega328P; assemble from scratch an ARM server, both HW and SW; and program an FPGA!
- My adventures with an Atomic PI (Reddit)
Hacking my own power board to feed the heart of a little robot.
- Remotely powering on/off via an ESP8266 (Reddit)
What to do when Wake-on-LAN doesn't seem to work - and you also plan for a remote serial port :-)
Video / Audio
Best of my Stack Overflow posts
- Real-time raytracing: Renderer 2.x in CUDA (Reddit)
Porting my renderer to CUDA - will the speed increase? (C++, CUDA)
- Using hardware: Renderer 2.x in
Real-time Phong/ZBuffer rendering through OpenGL fragment shaders (C++, OpenGL).
- Using software: Renderer 2.x (Reddit)
Portable GPL software renderer: multi-threaded, Phong, ZBuffer, Soft-ShadowMaps, Ambient Occlusion, MLAA, Raytracing (C++, SDL, Intel TBB, OpenMP).
Real-time flying over South Greece (Windows/Linux).
- A real-time Mandelbrot zoomer done via OpenMP/SSE and via CUDA
The joy of reaching the limits of your H/W (C, x86 SSE assembly, OpenMP, SDL, OpenGL, CUDA)
- SDL hacks (Slashdot)
Simulators for fireworks, waves and snow flakes (C++, SDL)
- Simulating the universe with 300 Python lines (Reddit)
What does gravity do to a set of celestial objects with random velocities? (Python).
Very old code that performs simple software-only rendering of 3D Studio .asc
files. For archiving purposes only :‑) (C++, SDL).
Thanassis Tsiodras, Dr.-Ing.