Home
Software
Writings
blog posts
in: Writings

2022

Find programming work by increasing luck surface area
Extreme #include discipline for C++ code

2021

@levelsio and survivorship bias
Lessons learned from 15 years of SumatraPDF, an open source Windows app
How I use Roam Research

2019

The things we do to ship desktop software
Lessons learned porting 50k loc from Java to Go
Trade offs in designing versatile log format

2018

How I implemented Oembed Proxy for GitHub
Powering a blog with Notion and Netlify

2017

Business of Software talks
57 MicroConf videos for self-funded software businesses
Solo founders with profitable businesses, collected stories
Analyzing browserify bundles to minimize JavaScript bundle size
Tutorial for github.com/kjk/flex Go package (implementation of CSS flexbox algorithm)
Guide to predefined macros in C++ compilers (gcc, clang, msvc etc.)

2016

Optimizing JavaScript by using arrays instead of objects

2015

Extracting files from .7z archives in Go
Go package for better guid generation
Accessing GitHub API from Go

2014

SumatraPDF 3.0 released
Improving speed of SMAZ compressor by 2.6x/1.5x
Notes on Ansible
Tip for per-test verbose logging in Go
SumatraPDF 2.5.2 released

2013

Using Fabric for deploying server software
SumatraPDF 2.4 released
Inspiration for programmers that want a passive business
How I ported pigz from Unix to Windows

2012

Hiding duplicate content from your site via robots.txt
Speeding up Go with custom allocators
Thoughts on Go after writing 3 websites
Design and implementation of translation system for desktop software
SumatraPDF 2.2 released
How I sped up Go by 20% (or is Go really slower than Java?)
Websites with free ePub and mobi ebooks
SumatraPDF 2.0 released
SumatraPDF 2.1 released
Buying a certificate for signing windows applications

2011

A list of chm readers/viewers for Windows
SumatraPDF 1.9 released
How to make software crash less
SumatraPDF 1.7 released
Showing html from memory in embedded web control on windows
SumatraPDF 1.8 released
Easy vs. probable or how to make money with software
SumatraPDF 1.6 released
SumatraPDF 1.5 released
90% of success is showing up - a proof
Experience porting 4k lines of C code to go
SumatraPDF 1.4 released
XML is really, really slow
Writing a custom installer for Windows software
SumatraPDF 1.3 released
My social marketing failure

2010

Best captcha is exotic captcha
You have to implement to understand
Productivity ideas
E-books economics
Go vs. Python for a simple web server
Summary of talk on continuous deployment
uISV stories
SumatraPDF 1.1 release
SEO is harder than you think
Tools that find bugs in c and c++ code via static code analysis
Value your time
Simple duplicate post detection for your blog, forum or commenting software
Marketing lessons from WebP launch
Startup management lessons from “The Social Network”
8 habits for becoming a better programmer
SumatraPDF 1.2 released
Using averages - a common performance measurement mistake
Executable compressors comparisons: upx 3.07w vs. mpress 2.17

2009

ssh tips
Where do bugs come from?
Sumatra 0.9.4 release
SumatraPDF 1.0 released

2008

How to think
Sumatra 0.8 released
gflags - a debugging story
Variadic Macros (C++)
SumatraPDF 0.8.1 release
realloc() on Windows vs. Linux
SumatraPDF 0.9.3 released
SumatraPDF 0.9.1 released
SumatraPDF 0.9 released

2007

A debugging story
SumatraPDF 0.4 released
SumatraPDF 0.5 released
Few things I’ve learned when writing Sumatra PDF
Sane #include hierarchy for C and C++
SumatraPDF 0.6 released
Sumatra PDF 0.7 released

2006

Basics of mysql
Debugging adventure
Basics of writing DOS .bat batch files
Compile-time asserts in C
Embedding binary resources on Windows
Designing web forums software
Document your software
Sumatra PDF is born
Order of #include headers in C/C++
Deeply nested if statements
Sumatra PDF 0.2 released
Performance optimization story
Paradox of bad comments
How I improved Sumatra performance by ~60%
Sumatra PDF 0.3 released

2005

High-resolution timer for timing code fragments
Accurate timers on Windows

2004

Web writing that works
Review of “Hot text - web writing that works”
Alan Cox on writing better software

2003

Given enough eyeballs make all bugs shallow
My future is so bright that I’ll need to wear sunglasses
Writing to sell

2002

Bugs and eyeballs
Defining Professionalism for Software Engineers
Principle of good design: discoverability
The future is here, it’s just not evenly distributed
Good programming practices
Written on Jun 27 2018.
home
Found a mistake, have a comment? Let me know.

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you: