I am Steinar, although online, many will know me as Sesse.
After moving back and forth for a while, I now live in Oslo,
in my home country of Norway. I currently work for Google,
on the Chrome web browser (with a special emphasis on CSS performance),
but during my previous Google employment,
I also worked on projects such as
IPv6,
Snappy,
Search by Image,
Offline Maps,
TensorFlow,
and many more I cannot talk about.
I've also worked in the MySQL optimizer team for Oracle,
where I wrote the new executor in MySQL 8.0 as well as the upcoming new join optimizer.
I sometimes take pictures, and I play
ultimate.
NOTE: These git repositories are only available over IPv6.
To send a patch to any of these projects, just do “git push”,
and I will receive an email with your patch. Remember to set the committer email appropriately!
I happen to be quite good at changing
patterns of lights, so I do that a lot. A lot of the code I write is made available,
even the projects that are not very useful, or even completely unfinished.
Most of them are just Git repositories,
but some have things that look like web pages dedicated to them.
The list of projects includes:
remoteglot,
a program used to use a UCI compatible chess engine (such as
Stockfish) to analyze
chess games, including live online relay. Used for
my live chess analysis website,
seemingly just known as “Sesse” in the general public.
Misc.
audiosync, a few
quick programs to keep the recording from multiple sound cards in
sync (using one channel per card for a sync pulse).
BetaFTPD, a single-threaded,
minimalistic FTP server.
bursty, software to
test packet loss behavior over the Internet.
c64tapwav, a
high-quality .wav generator from a C64 TAP file.
fat-rescue,
some snippets for rescuing files from a FAT file system with
a broken FAT.
fp-downconvert,
C code for converting 64-bit IEEE 754 floating-point numbers to
16-bit floating-point numbers, including correct handling of rounding,
infinities, denormals and NaN.
GPUwave, an implementation of
the split-step Fourier method (simulating underwater acoustics) for the GPU.
hamming,
a simple but relatively fast implementation of (16,11) and (32,26) extended Hamming codes in C.
ITKACL, a simple
but generic authorization system with bindings to many languages
and systems.
keycount,
a daemon that counts your keystrokes in the background.
mbd,
a daemon for relaying broadcast packets for popular games across multiple
network segments, (ab)using directed multicast and helper functionality usually
meant for DHCP.
qmfsplit,
a moderate-complexity (O(n log n) in number of subbands, but higher
constant factor than straight FFT), small-size (<2kB code with plenty
of opportunity for optimization), low-latency, simplistic splitting
filter based on quadrature mirror filters (QMF).
qscale,
a high-quality, high-speed image scaling library.
rdpsrv,
what was once supposed to be a server for Microsoft's Remote Desktop Protocol
(or: how far you can get with a copy of rdesktop and a few days of frantic hacking).
sigmoidsmooth,
a simple program to fit a sigmoid curve to a set of data points,
using the Ceres library.
sproing,
a very primitive but fun-to-watch solver for (possibly overconstrained)
trilateration, triangulation and hybrid problems.
tcxmerge,
software for finding the most likely route you took given a GPS track,
pedometer/footpod data, and road information from OpenStreetMap,
using the Ceres library.
ts-ipv6,
a binary patch adding IPv6 support to Tiberian Sun.
tsp, a program for solving
(possibly sparse) travelling salesman problems using memoization
(good for up to about twenty cities).
ttk-gettext,
an interface between Template Toolkit and
GNU Gettext, allowing for simple translation of web templates.
webpdf, the
source code for pdf.sesse.net (which no longer exists).