Hello. I'm Chris. I live in San Francisco.
I made SumatraPDF, dbHero and few other things.
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
Inspiration for programmers that want a passive business in: business
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
Bandwidth price research notes in: note
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
Find free stock photos with Fotofi in: software, fotofi
Drobo and warranty extortion
Beware spurious charges when buying from Parallels (Digital River)
Why you shouldn't write Mac programs in QT
Hipmunk - a new site for finding flights
SEO is harder than you think
A rant on iTunes TV experience
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
How does chromoting works
Software licensing scheme in: business, note
OpenVPN gui weirdness on 64-bit Windows 7 in: software
SumatraPDF 1.1 release in: sumatra
Bash programming basics in: reference, unix, note
How to accept online payments in: business
Idea for code review tool in: idea, note
Summary of talk on continuous deployment
uISV stories in: business
How to think in: productivity, psychology
apt, dpkg, rpm basics in: unix, note
Things I've learned this week
Productivity ideas in: productivity
e-books economics
BitTorrent-based, large file distribution for HTTP in: idea, bittorrent
Thumbs up for markItUp in: javascript, web devel
Talk about happiness in: note
VisualAck 0.3.3 released in: software, mac, visualack
VisualAck 0.3.2 released in: software, mac, visualack
Google storage 8 times cheaper than Amazon's S3?
You have to implement to understand
Best captcha is exotic captcha
Drobo Dashboard and mysterious mac slowdowns in: mac
15minutes 1.1 for windows in: software
SumatraPDF 1.0 released in: sumatra
Web server in C# in: .net
15minutes for mac updated in: software
Unicode problem with firstof in appengine/Django in: appengine
We need Visual Ack in: software
Sumatra 0.9.4 release in: sumatra
15minutes for mac now available in: mac, software
Shared http caching in: idea
Network drives, .net, security and virtualbox in: .net, c#
Automatic Java to C# conversion - experience using Java Language Conversion Assistant in: java, c#, .net, tenderbase
Setting unicode rtf text in rich edit control in: win32, programming
Accessing Mac file shares from Windows 7 in: mac, windows
15minutes - a simple productivity tool in: software
IPTraf clone for windows in: idea, note
Cocoa source code and tutorials in: cocoa, objective c, mac, src
Interesting win32 source code in: src, programming, win32
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
HTTP info in: http, reference
Essential software in: software
HTTP sniffer in: idea, note
Customizing Visual Studio in: visual studio, note
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
Ideas for software in: idea
Resources related to implementing programming languages in: prog lang, programming
Experience with using Rietveld for code reviews in: programming
Exporting data from EverNote
Manager for ec2, s3 and SimpleDB, on mac in: idea
Those who adapt, survive
App Engine as generic web host in: appengine
Profiling tools for C/C++ on windows, mac and linux in: debugging, profiling, programming
Fonts on windows
NSCopying, NSMutableCopying or NSCoding in: objective c
Server monitoring idea in: idea
Previewing changes before commiting on mac (svn or git) in: git, svn, mac
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
Google App Engine tip 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
Software worth buying - SftpDrive and ExpanDrive in: software
Pet peeves of mine - files in: ui design
Google App Engine - the first Internet operating system in: appengine
gflags - a debugging story in: programming, debugging, win32
variadic macros in msvc in: programming, c++, msvc
Variadic Macros (C++) in: visual studio, c++
Python static code checkers in: python
making unix user a sudoer in: unix
gcc in: c++, gcc, programming
Interface Builder reference in: cocoa, xcode
Exercise in: health
Diet in: health
A way to simulate various network conditions in: mac, networking
Reverse DNS lookup in: unix, networking
backtrace_symbols() and -rdynamic in gcc in: programming, mac, gcc
How to think in: productivity, psychology
intermittent variable reward in: psychology
Objective-C patterns in: objective c, cocoa
Setting goals in: productivity, psychology
Deliberate practice in: productivity
Notes form Standford compilers course in: prog lang, compilers, programming
DHL in San Francisco in: san francisco
International bank recommendations
objdump -g in: unix
valgrind basics in: unix, debugging, programming
enabling coredumps in: unix, debugging
screen basics in: unix
fixing cygwin dll load problem in: unix, cygwin
Faster metabolism in: health
Windbg reference in: debugging, windbg, win32
Mac software installed: in: mac
gdb quick reference in: debugging, gdb
Design process at Apple in: ui design
picoLisp - Arc before Arc
Too much oo
Rebol vs. Shoes
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
Basics of mysql in: sql, mysql
Pawn: yet another embedable language in: programming
Compile-time asserts in C in: c, programming
Basics of writing DOS .bat batch files in: reference
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
Getting user-specific application data directory for .NET WinForms apps in: .net, c#, win32, winforms
High-resolution timer for timing code fragments in: win32, c, programming
Pickling (serialization) in Python in: python, serialization
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 saga - episode 205
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
Google - we take it all, give nothing back
GPL 3 - anti-patent virus?
Font Vera Sans Mono - recommended for programmers
Google - ultimate hypocrite
Recovering data from formatted drives
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
C programming tips from Rob Pike in: c, programming
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
Century dictionary on-line
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
cmd.exe replacement for Windows in: 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
Another ArsDigita story
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
Perl to Python compiler in: python
Do you read the old papers?
Are Microsoft products any good?
Abut Face - second edition in: book
Disabling WFP (Windows File Protection)
Asking the right question about language design
Don't change URIs
An old ad for a job at Microsoft
Remote desktop - from Windows to Mac OS X
An almost accurate quote
Inspiring marketing article in: business
Creative commons presentation
Python idoms in: python
SICP lectures available on-line
Old ArsDigita content
Christopher Alexander's talk
Source Insight 3.5
Successful telecommuting
Publicity 101
Lying with a straight face
Catch me if you can
Your life
The ghost of ArsDigita
Selling Microsoft
High Tech start up
Recruitment is like dating
Blown to bits
Good programming practices
LL1 Videos
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
Three-way merge
High tech martyr
A lesson in marketing needed
You won't make money blogging
The history of bookfinder
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
Daemon tools for mounting iso images in: software
On writing well in: writing
What I need: ssh/sftp file system driver for Windows
The value of programming
How to be a leader in your field
Stuff costs more than you think
Life of Hellen Keller
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
SMART Goals in: productivity
On "The 22 Immutable Laws Of Marketing" in: book

Subscribe to RSS/Atom feed