2024 |
August 29 |
Man vs. AI: optimizing JavaScript (Claude, Cursor)
in: programming ai
|
24 |
Implementing Notion-like table of contents in JavaScript
in: programming, javascript, webdev
|
June 27 |
Porting a medium-sized Vue application to Svelte 5
in: svelte, programming
|
April 10 |
Changing font size in Windows dialog in C++
in: SumatraPDF, c++, win32
|
2023 |
March 21 |
How I implemented wc in the browser in 3 days
in: svelte, programming
|
11 |
Advanced markdown processing in Go
in: go, programming
|
9 |
Persisted Svelte store using IndexedDB
in: programming, svelte
|
2022 |
June 29 |
Find programming work by increasing luck surface area
in: business
|
April 12 |
Extreme #include discipline for C++ code
in: programming, c++, SumatraPDF
|
2021 |
October 20 |
@levelsio and survivorship bias
in: business
|
July 25 |
Lessons learned from 15 years of SumatraPDF, an open source Windows app
in: SumatraPDF, programming
|
June 27 |
How I use Roam Research
|
2019 |
May 1 |
The things we do to ship desktop software
in: programming
|
April 5 |
Lessons learned porting 50k loc from Java to Go
in: programming, go
|
March 25 |
Trade offs in designing versatile log format
in: programming, go
|
2018 |
July 30 |
Powering a blog with Notion and Netlify
in: notion
|
23 |
How I reverse engineered Notion API
in: notion, programming, go
|
18 |
Advanced web spidering with Puppeteer
in: programming
|
2017 |
December 24 |
57 MicroConf videos for self-funded software businesses
in: business
|
November 7 |
Guide to predefined macros in C++ compilers (gcc, clang, msvc etc.)
in: programming, c++
|
August 4 |
Tutorial for github.com/kjk/flex Go package (implementation of CSS flexbox algorithm)
in: go
|
June 23 |
Solo founders with profitable businesses, collected stories
in: business
|
January 4 |
Analyzing browserify bundles to minimize JavaScript bundle size
in: programming, javascript
|
2016 |
October 23 |
Optimizing JavaScript by using arrays instead of objects
in: programming, javascript
|
2015 |
February 12 |
Go package for better guid generation
in: go, programming
|
2014 |
December 3 |
Tip for per-test verbose logging in Go
in: programming, go
|
October 29 |
SumatraPDF 3.0 released
in: releasenotes, SumatraPDF
|
May 14 |
SumatraPDF 2.5.2 released
in: releasenotes, SumatraPDF
|
2013 |
October 30 |
Using Fabric for deploying server software
in: programming
|
3 |
SumatraPDF 2.4 released
in: SumatraPDF, releasenotes
|
March 20 |
How I ported pigz from Unix to Windows
in: programming
|
2012 |
December 31 |
Thoughts on Go after writing 3 websites
in: go, programming
|
25 |
SumatraPDF 2.2 released
in: SumatraPDF, releasenotes
|
16 |
Design and implementation of translation system for desktop software
in: programming, SumatraPDF
|
October 22 |
Hiding duplicate content from your site via robots.txt
in: webdev
|
September 16 |
How I sped up Go by 20% (or is Go really slower than Java?)
in: go, programming
|
May 4 |
Websites with free ePub and mobi ebooks
in: SumatraPDF
|
3 |
SumatraPDF 2.1 released
in: SumatraPDF, releasenotes
|
April 15 |
Buying a certificate for signing windows applications
in: programming
|
2 |
SumatraPDF 2.0 released
in: SumatraPDF, releasenotes
|
2011 |
December 9 |
A list of chm readers/viewers for Windows
in: software, windows
|
November 30 |
Showing html from memory in embedded web control on windows
in: note, win32, programming
|
24 |
SumatraPDF 1.9 released
in: SumatraPDF, releasenotes
|
September 18 |
SumatraPDF 1.8 released
in: SumatraPDF, releasenotes
|
July 17 |
SumatraPDF 1.7 released
in: SumatraPDF, releasenotes
|
June 30 |
How to make software crash less
in: programming
|
1 |
Experience porting 4k lines of C code to go
in: go, programming
|
May 30 |
SumatraPDF 1.6 released
in: SumatraPDF, releasenotes
|
14 |
Easy vs. probable or how to make money with software
in: programming, business
|
7 |
90% of success is showing up - a proof
|
April 23 |
SumatraPDF 1.5 released
in: SumatraPDF, releasenotes
|
March 12 |
SumatraPDF 1.4 released
in: SumatraPDF, releasenotes
|
10 |
XML is really, really slow
in: programming
|
February 8 |
My social marketing failure
in: software, business, SumatraPDF
|
7 |
SumatraPDF 1.3 released
in: SumatraPDF, releasenotes
|
6 |
Writing a custom installer for Windows software
in: SumatraPDF, programming
|
2010 |
December 19 |
Executable compressors comparisons: upx 3.07w vs. mpress 2.17
in: SumatraPDF, programming
|
3 |
SumatraPDF 1.2 released
in: SumatraPDF
|
November 24 |
Using averages - a common performance measurement mistake
in: programming
|
5 |
8 habits for becoming a better programmer
in: programming
|
October 26 |
Simple duplicate post detection for your blog, forum or commenting software
in: programming
|
24 |
Value your time
in: productivity
|
3 |
Startup management lessons from “The Social Network”
in: business
|
2 |
Marketing lessons from WebP launch
in: business
|
August 13 |
SEO is harder than you think
in: marketing, business
|
July 7 |
Tools that find bugs in c and c++ code via static code analysis
in: programming, c, c++
|
June 13 |
Go vs. Python for a simple web server
in: python, go
|
May 20 |
SumatraPDF 1.1 release
in: SumatraPDF
|
3 |
Summary of talk on continuous deployment
in: programming
|
2 |
uISV stories
in: business
|
April 20 |
Productivity ideas
in: productivity
|
19 |
E-books economics
in: business
|
January 4 |
You have to implement to understand
|
2 |
Best captcha is exotic captcha
|
2009 |
November 18 |
SumatraPDF 1.0 released
in: SumatraPDF
|
July 20 |
Sumatra 0.9.4 release
in: SumatraPDF
|
February 24 |
Where do bugs come from?
in: programming
|
24 |
ssh tips
in: ssh, unix, reference
|
22 |
Summary of David Ditzel talk on binary translation
in: talk, summary
|
2008 |
October 2 |
SumatraPDF 0.9.3 released
in: SumatraPDF
|
August 24 |
SumatraPDF 0.9.1 released
in: SumatraPDF
|
11 |
SumatraPDF 0.9 released
in: SumatraPDF
|
July 27 |
realloc() on Windows vs. Linux
in: programming, optimization
|
May 28 |
SumatraPDF 0.8.1 release
in: SumatraPDF
|
April 7 |
gflags - a debugging story
in: programming, debugging, win32
|
4 |
Variadic Macros (C++)
in: visual studio, c++
|
January 3 |
Sumatra 0.8 released
in: SumatraPDF
|
2007 |
July 29 |
Sumatra PDF 0.7 released
in: SumatraPDF
|
June 24 |
Sane #include hierarchy for C and C++
in: programming, c, c++
|
April 29 |
SumatraPDF 0.6 released
in: SumatraPDF
|
29 |
A debugging story
in: debugging, windbg
|
13 |
Few things I’ve learned when writing Sumatra PDF
in: SumatraPDF
|
March 4 |
SumatraPDF 0.5 released
in: SumatraPDF
|
February 19 |
SumatraPDF 0.4 released
in: SumatraPDF
|
2006 |
November 26 |
Sumatra PDF 0.3 released
in: SumatraPDF
|
September 2 |
How I improved Sumatra performance by ~60%
in: SumatraPDF, optimization, programming, profiling
|
August 16 |
Paradox of bad comments
|
14 |
Performance optimization story
in: programming, optimization
|
6 |
Sumatra PDF 0.2 released
in: SumatraPDF
|
June 3 |
Sumatra PDF is born
in: SumatraPDF
|
March 17 |
Designing web forums software
|
11 |
Document your software
|
January 29 |
Embedding binary resources on Windows
in: win32, c, programming
|
13 |
Compile-time asserts in C
in: c, programming
|
13 |
Basics of writing DOS .bat batch files
in: reference
|
2005 |
December 31 |
High-resolution timer for timing code fragments
in: win32, c, programming
|
30 |
Accurate timers on Windows
in: win32, programming
|
2004 |
July 1 |
Review of “Hot text - web writing that works”
in: book, review
|
2003 |
June 12 |
Writing to sell
in: business, writing
|
11 |
On difference between amateur and professional shareware
in: business
|
2002 |
November 17 |
Good programming practices
|
August 27 |
The future is here, it’s just not evenly distributed
|
July 26 |
Principle of good design: discoverability
in: ui design
|
19 |
Bugs and eyeballs
in: quote, programming
|
February 11 |
Engineering school (summary of Rick Catell talk)
|
January 1 |
What I've learned from "After the Gold Rush"
|
2001 |
August 29 |
Things I Learned the Hard Way: Engineering and Computer Science in the Real World
|