Hello. I'm Chris. I live in San Francisco.
I made SumatraPDF and few other things.
Currently working on solar design software at Folsom Labs.
JavaScript optimization by using arrays instead of objects in: programming, javascript
First release of dbHero - a GUI database client in: dbhero
Extracting files from .7z archives in Go in: go, programming
Accessing GitHub API from Go in: go, programming
Go package for better guid generation in: go, programming
Improving speed of pure Go SMAZ compressor by 2.6x/1.5x in: go, programming
Tip for verbose logging in Go in: programming, go
SumatraPDF 3.0 released in: releasenotes, sumatra
SumatraPDF 2.5.2 released in: releasenotes, sumatra
Using Fabric for deploying server software in: programming
Pigz windows port 2.3.1 released in: software, releasenotes
The Silver Searcher windows port in: software
SumatraPDF 2.4 released in: sumatra, releasenotes
How I ported pigz from Unix to Windows in: programming
Pigz windows port in: software
Thoughts on Go after writing 3 websites in: go, programming
SumatraPDF 2.2 released in: sumatra, releasenotes
Design and implementation of translation system for desktop software in: programming, sumatra
Speeding up Go (and C++) with custom allocators in: go, programming
Hiding duplicate content from your site via robots.txt
How I sped up Go by 20% (or is Go really slower than Java?) in: go, programming
Websites with free ePub and mobi ebooks in: sumatra
SumatraPDF 2.1 released in: sumatra, releasenotes
Buying a certificate for signing windows applications in: programming
SumatraPDF 2.0 released in: sumatra, releasenotes
A list of chm readers/viewers for Windows in: software, windows
Showing html from memory in embedded web control on windows in: note, win32, programming
SumatraPDF 1.9 released in: sumatra, releasenotes
Introducing Volante - a database for C# (.NET) in: software, volante, .net, c#
SumatraPDF 1.8 released in: sumatra, releasenotes
SumatraPDF 1.7 released in: sumatra, releasenotes
How to make software crash less in: programming
Experience porting 4k lines of C code to go in: go, programming
SumatraPDF 1.6 released in: sumatra, releasenotes
Easy vs. probable or how to make money with software in: programming, business
90% of success is showing up - a proof
SumatraPDF 1.5 released in: sumatra, releasenotes
SumatraPDF 1.4 released in: sumatra, releasenotes
XML is really, really slow in: programming
My social marketing failure in: software, business, sumatra
SumatraPDF 1.3 released in: sumatra, releasenotes
Writing a custom installer for Windows software in: sumatra, programming
Executable compressors comparisons: upx 3.07w vs. mpress 2.17 in: note, sumatra, programming
Which technology for writing desktop software? in: programing
SumatraPDF 1.2 released in: sumatra
Using averages - a common performance measurement mistake in: programming
8 habits for becoming a better programmer in: programming
Simple duplicate post detection for your blog, forum or commenting software in: programming
Value your time in: productivity
Startup management lessons from "The Social Network" in: business
Marketing lessons from WebP launch in: business
Why you shouldn't write Mac programs in QT
SEO is harder than you think
Comparing program versions (in C# and Python) in: programming, c#, python
Searching for available DBA name in San Francisco in: business
Introduction to PartCover - a short manual in: .net
Converting PartCover results to html in: .net
Tools that find bugs in c and c++ code via static code analysis in: programming, c, c++
Go vs. Python for a simple web server in: python, go
Software licensing scheme in: business, note
SumatraPDF 1.1 release in: sumatra
How to accept online payments in: business
Summary of talk on continuous deployment
uISV stories in: business
Things I've learned this week
Productivity ideas in: productivity
e-books economics
BitTorrent-based, large file distribution for HTTP in: idea
VisualAck 0.3.3 released in: software, mac, visualack
VisualAck 0.3.2 released in: software, mac, visualack
You have to implement to understand
Best captcha is exotic captcha
15minutes 1.1 for windows in: software
SumatraPDF 1.0 released in: sumatra
15minutes for mac updated in: software
We need Visual Ack in: software
Sumatra 0.9.4 release in: sumatra
15minutes for mac now available in: mac, software
Network drives, .net, security and virtualbox in: .net, c#
Setting unicode rtf text in rich edit control in: win32, programming
15minutes - a simple productivity tool in: software
Forcing basic http authentication for HttpWebRequest (in .NET/C#) in: .net, c#
setting up s3 logging in: aws
scdiff update (Windows git/subversion/cvs gui diff previewer) in: software
Parsing s3 log files in python in: aws, python
Compacting s3 aws logs in: aws, python
How content-based addressing can help web performance
ssh tips in: ssh, unix, svn, reference
Where do bugs come from? in: programming
Summary of David Ditzel talk on binary translation in: talk, summary
Resources related to implementing programming languages in: prog lang, programming
Exporting data from EverNote
App Engine as generic web host in: appengine
Profiling tools for C/C++ on windows, mac and linux in: debugging, profiling, programming
NSCopying, NSMutableCopying or NSCoding in: objective c
Mac program scheduling (like crontab) in: mac
SumatraPDF 0.9.3 released in: sumatra
SumatraPDF 0.9.1 released in: sumatra
SumatraPDF 0.9 released in: sumatra
Results of tweaking compiler flags before 0.9 release: in: sumatra, optimization, programming
realloc() on Windows vs. Linux in: programming, optimization
habit forming in: psychology
Announcing fofou - forum software for Google App Engine in: appengine
SumatraPDF 0.8.1 in: sumatra
Extreme (size) optimization in C and C++ in: programming, optimization
_NT_SYMBOL_PATH considered harmful in: windbg, debugging
Remapping Page Up and Page Down on Mac to move a cursor in: mac
Google App Engine - the first Internet operating system in: appengine
gflags - a debugging story in: programming, debugging, win32
Variadic Macros (C++) in: visual studio, c++
making unix user a sudoer in: unix
Reverse DNS lookup in: unix, networking
backtrace_symbols() and -rdynamic in gcc in: programming, mac, gcc
Objective-C patterns in: objective c, cocoa
valgrind basics in: unix, debugging, programming
enabling coredumps in: unix, debugging
Logging in WinDBG in: debugging, windbg
Sumatra 0.8 released in: sumatra
Sumatra PDF 0.7 released in: sumatra
Merge tools showdown
Sane #include hierarchy for C and C++ in: programming, c, c++
SumatraPDF 0.6 released in: sumatra
A debugging story in: debugging, windbg
Few things I've learned when writing Sumatra PDF in: sumatra
2 great books and one not so great
SumatraPDF 0.5 released in: sumatra
SumatraPDF 0.4 released in: sumatra
memset() considered harmful in: programming
Programmers are silver bullets (or: after all this years, C still kicks Python ass)
Sumatra PDF 0.3 released in: sumatra
Talk on designing good APIs in: programming
Navigating source code in large programs
Gdb basics in: gdb, unix, programming
On how I improved Sumatra performance by ~60% in: sumatra, optimization, programming, profiling
Deeply nested if statements
What I love about Google open-source project hosting
A simple catchpa scheme
Paradox of bad comments
Order of #include headers in C/C++ in: programming
Performance optimization story in: programming, optimization
Where do bugs come from and how to avoid them
The missing msvcr80.dll story in: programming, msvc
php_mysql.dll not loading in PHP 5.1.4 and Apache 2.2
Sumatra PDF 0.2 released in: sumatra
Short tutorial on svn propset for svn:externals property in: svn
Sumatra PDF is born in: sumatra
Python id3 library in: python
tar basics in: unix
Designing web forums software
Document your software
Digg and the craft of catchy headlines
What makes a CD bootable
C portability notes in: c, programming
Embedding binary resources on Windows in: win32, c, programming
Make C code safe for C++ in: c, c++, programming
Pawn: yet another embedable language in: programming
Basics of writing DOS .bat batch files in: reference
Compile-time asserts in C in: c, programming
Debugging adventure in: programming
Get file size under windows in: win32, c, programming
Subversion basics in: svn
Check if file exists on Windows in: win32, c, programming
High-resolution timer for timing code fragments in: win32, c, programming
Pickling (serialization) in Python in: python
Local DNS modifications on Windows (/etc/hosts equivalent) in: windows
Accurate timers on Windows in: win32, programming
Another lesson in entrepreneurship in: business
Serialization in C# in: c#, .net
UI design tip: icons are not enough in: ui design
A book to read, talks to listen to
Code-name Monad and the value of different perspective
Petzold on Visual Studio and mind corruption
Unsolved source control problems
Rich client is here
Interesting Dave Winer interview
Open-source and windows
Longhorn/Vista fonts
VirtualEarth vs. Google Maps - not hitting the high note
Deep indentation vs. flat
musikCube - nice mp3 player
Backpack observations
How to delete a file you get from urllib.urlretrieve() in: python
Subversion with SSH on Windows tip
Google - what kind of a giant they are?
Google - comments on comments
Bad Google - the fallout
2005 prediction - the rise of anonymous p2p
Counterpost to a counterpost
GPL 3 - anti-patent virus?
Google - ultimate hypocrite
University of Washington on-line videos
Alan Cox on writing better software
scdiff 0.3 released
DocSynch - multi-editor plugin for collaborative text editing
A collaborative text editor for Windows
Don't use 0 instead of NULL
Review of "Hot text - web writing that works" in: book, review
Microsoft leading the way with open bug database
wTail release
Productivity tips in: productivity
A tip from "Getting things done"
.NET Framework bootstrapper in: .net
scdiff - show diffs of local changes in CVS or Subversion repository in a GUI
Blogs should always provide "previous posts" button
Patterns in interaction design (web and gui design pattern) in: ui design
Web writing that works in: writing
Startup: A Silicon Valley Adventure - book review in: book, review
What people want?
Myths Open Source Developers Tell Ourselves
Making money with shareware software in: business
The story of Photoshop
Royalties in game buisness in: business
Skype as an example of changing nature of social interactions in: software
Watch TV on the internet
How to make money developing Mac apps in: business
Marketing and shareware articles in: business
A shameless rip-off, or what did you expect?
Critical reading skills
Not as happy as you thought you will be
Shirky on Wikis
Popular fallacies
Better selling through a web-site in: business
Lucene for searching source code
Usability Heuristics for Rich Internet Applications
Memex - "sue me please" device
As we may think
How much can you make writing computer books
O'Reilly on software
Programmers don't steal enough
Software can always be better
Good software, bad buying experience
Why consistency is important in software design
My future is so bright that I'll need to wear sunglasses
Writing to sell in: business, writing
On difference between amateur and professional shareware in: business
Given enough eyeballs make all bugs shallow
Is software industry a place to be - Greenspun perspective
Carmack on creativity
Do you read the old papers?
Are Microsoft products any good?
Abut Face - second edition in: book
Asking the right question about language design
Outsourcing
An old ad for a job at Microsoft
Inspiring marketing article in: business
Creative commons presentation
SICP lectures available on-line
Old ArsDigita content
Source Insight 3.5
Successful telecommuting
Catch me if you can
Your life
The ghost of ArsDigita
Selling Microsoft
Recruitment is like dating
Blown to bits
Good programming practices
LL2 webcast
How to refuse features
How to sell software
Open-source lesson from a stripper
Joel, man of his word
Profitable open-source business
Slate knows why Amiga failed
High-level not so good
Platform Leadership
Show me the code
Those are the good times
You'll have a job
Great business without innovation
A lesson in marketing needed
You won't make money blogging
The stupidest thing a software company can do
Interview with MicroStrategy CEO
Blog your resume
Quote from "Net Words"
WinAmp 3
The future is here, it's just not evenly distributed
Information business as a relationship
On writing well in: writing
The value of programming
How to be a leader in your field
Stuff costs more than you think
C Interfaces and Implementations in: book, programming
Wozniak's speech
Principle of good design: discoverability in: ui design
Open Source is Philanthropy
Bugs and eyeballs
You and your research
Laws of marketing #22 (resources)
Laws of marketing #21 (acceleration)
Laws of marketing #20 (hype)
Laws of marketing #19 (failure)
Laws of marketing #18 (success)
Laws of marketing #17 (unpredictability)
Laws of marketing #16 (singularity)
Laws of marketing #15 (candor)
Fine interview with Marcelo Tosatti
Laws of marketing #14 (attributes)
Laws of marketing #13 (sacrifice)
Laws of marketing #12 (line extension)
Laws of marketing #11 (perspective)
Laws of marketing #10 (division)
Laws of marketing #9 (opposite)
Laws of marketing #8 (duality)
Laws of marketing #7 (ladder)
Laws of marketing #6 (exclusivity)
Laws of marketing #5 (focus)
Laws of marketing #4 (perception)
Laws of marketing #3 (mind)
Laws of marketing #2 (category)
Laws of marketing #1 (leadership)
Redefining Professionalism for Software Engineers
On "The 22 Immutable Laws Of Marketing" in: book

Subscribe to RSS/Atom feed