TL;DR: You can send and receive data using TURN by encoding data into username and IPv6 UDP address. Say that you have a HTTPS website. Modern web safety forbids it from accessing insecure parts of the network using HTTP. This is usually not an issue, since signing a HTTPS certificate for a website is fairly… Continue reading Crossing the Mixed Content Boundary: abusing STUN/TURN as a Communication Channel
Tag: coding
IPv4 Network Address Translation for Steam (NAT4S)
TL;DR – I made Steam multiplayer possible with classic LAN games through a project called PartyLAN. It enables network address translation (NAT) between IPv4 and Steam IDs. Network address translation (NAT) is not an obscure concept – it has been in use since 1994. The basic idea is simple: a router, either software or hardware,… Continue reading IPv4 Network Address Translation for Steam (NAT4S)
Fixing Analog Stick Input in PPSSPP
PPSSPP is one of my favorite emulators. First introduced to me when I was still in high school, it is my go-to (or, only?) choice if I want to revisit some old PSP games. Though I ran into an issue that I was not able to run, only walk, diagonally in Metal Gear Solid: Peace… Continue reading Fixing Analog Stick Input in PPSSPP
sparsebundle-fuse: Another Implementation for Reading / Writing MacOS Sparsebundles on Linux
There are already a sparsebundle implementation for Linux, but that’s read-only and only supports FUSE. This implementation is read / write, AND supports NBD (network block device) so the sparsebundle actually appears as a block device on the system, without you needing to loop mount the file in FUSE. There are some useful things that… Continue reading sparsebundle-fuse: Another Implementation for Reading / Writing MacOS Sparsebundles on Linux
The Making of the Library Occupancy Estimation System, Part 4 – the Frontend
The only part missing was a front-end. It is 2017, and splitting up front-end and back-end is now a must. This is even more true in this project: serving html and other resources from my free Heroku server does not sound like a good plan – with only 1 web instance, the server can be… Continue reading The Making of the Library Occupancy Estimation System, Part 4 – the Frontend