• research!rsc Thoughts and links about programming, by Russ Cox
  • Table of Contents (favorites in bold)
  • Why Add Versions To Go? (Go & Versioning, Part 10) June 2018
    Why should Go understand package versions at all?
  • What is Software Engineering? (Go & Versioning, Part 9) May 2018
    What is software engineering and what does Go mean by it?
  • The vgo proposal is accepted. Now what? (Go & Versioning, Part 8) May 2018
    What is the state of vgo?
  • Versioned Go Commands (Go & Versioning, Part 7) February 2018
    What does it mean to add versioning to the go command?
  • Defining Go Modules (Go & Versioning, Part 6) February 2018
    How to specify what's in a module.
  • Reproducible, Verifiable, Verified Builds (Go & Versioning, Part 5) February 2018
    Consistent builds in versioned Go.
  • Minimal Version Selection (Go & Versioning, Part 4) February 2018
    How do builds select which versions to use?
  • Semantic Import Versioning (Go & Versioning, Part 3) February 2018
    How do you deploy an incompatible change to an existing package?
  • A Tour of Versioned Go (vgo) (Go & Versioning, Part 2) February 2018
    We need to add package versioning to Go.
  • Go += Package Versioning (Go & Versioning, Part 1) February 2018
    We need to add package versioning to Go.
  • Go & Versioning February 2018
    Topic Index
  • How Many Go Developers Are There? July 2017
    Looks like at least half a million.
  • Glob Matching Can Be Simple And Fast Too April 2017
    Regular expression exponentials in another form.
  • My Go Resolutions for 2017 January 2017
    What I would like to do for Go in 2017.
  • Go and Dogma January 2017
    Programming language dogmatics.
  • Lock-Free Bugs January 2017
    Locked frees and freed locks.
  • Version SAT December 2016
    Dependency hell is NP-complete
  • Hacking the OS X Kernel for Fun and Profiles August 2013
    Modifying the OS X kernel binary to make user-level CPU profiling work
  • How To Build a User-Level CPU Profiler August 2013
    The internals of Google's pprof CPU Profiler (for C++ and Go)
  • A Tour of Acme September 2012
    A video introduction to Acme, the Plan 9 text editor
  • A Tour of Go June 2012
    A video introduction to Go: interfaces, reflection, concurrency
  • QArt Codes April 2012
    How to make pictures with QR codes, part II
  • Finite Field Arithmetic and Reed-Solomon Coding April 2012
    How to make pictures with QR codes, part I
  • Random Hash Functions April 2012
    Go ahead, call rand in your hash function.
  • go blog() February 2012
    Sorry about the RSS trouble.
  • Regular Expression Article #4 January 2012
    Regular Expression Matching with a Trigram Index, or, How Google Code Search Worked
  • Floating Point to Decimal Conversion is Easy July 2011
    Straightforward printing of floating-point values.
  • Minimal Boolean Formulas May 2011
    Simplify equations with God
  • Irregular expression matching with the .NET stack May 2011
    Matching well-formed XML (!) with a not-quite-regular expression
  • Knuth, Volume 4A January 2011
    It's here!
  • The MOS 6502 and the Best Layout Guy in the World January 2011
    When chip design meant drawing every wire by hand
  • Visualizing TCP December 2010
    Seeing the packets
  • Yacc is Not Dead December 2010
    Even if it smells that way.
  • Webscript September 2010
    A language I'm still waiting for
  • Computing Machines April 2010
    A real Turing machine!
  • Broken abstractions in Go March 2010
    Mind-bending implementation techniques
  • Zip Files All The Way Down March 2010
    Did you think it was turtles?
  • Regular Expression Article #3 March 2010
    Regular Expression Matching in the Wild
  • Formal Logic Club March 2010
    This one you can talk about.
  • UTF-8: Bits, Bytes, and Benefits March 2010
    The reasons to switch to UTF-8
  • Off to the Races February 2010
    How to break memory safety using race conditions
  • Names February 2010
    My variable naming philosophy
  • Go's Package Name Space February 2010
    Why you can name any package math
  • Generating Good Syntax Errors January 2010
    How to make yacc print good syntax errors
  • Gofmt December 2009
    The end of the style wars
  • Regular Expression Article #2 December 2009
    Regular Expression Matching: The Virtual Machine Approach
  • Data Structures Go Programs December 2009
    Data-based programming
  • The Generic Dilemma December 2009
    Musings about generics in Go
  • Go Data Structures: Interfaces December 2009
    How interface values work in Go
  • Go Data Structures November 2009
    An introduction to basic Go data structures
  • Is This Thing On? November 2009
    Back to blogging...
  • Electoral Programming June 2008
    The dynamics of elections
  • Lessons from the Debian/OpenSSL Fiasco May 2008
    Looking at the context that made it possible
  • Mel was Real April 2008
    !
  • Backups, heal thyself April 2008
    Disk storage that can heal itself
  • Bi-quinary and other bases April 2008
    Like counting with one hand
  • Computing History at Bell Labs April 2008
    Doug McIlroy's rememberances
  • Bigger Programs are Better, not Best April 2008
    The Busy Beaver Problem
  • Alphabetical Order April 2008
    Is sorting hard because it is recursive?
  • Using Uninitialized Memory for Fun and Profit March 2008
    An unusual but very useful data structure
  • Rotating Hashes March 2008
    A hashing technique that faded into history
  • Leaping Years and Drawing Lines February 2008
    ... and why they're the same problem
  • Face the Nation February 2008
    Historical bitmaps
  • Permissive Access Links February 2008
    The locks on nuclear weapons
  • Elegance and Power February 2008
    Elegant Haskell programs for computing power series
  • Worms and Distributed Computations February 2008
    A look at early distributed systems
  • The Hideous Name February 2008
    The pitfalls of mixing naming systems
  • Bourne Shell Macros February 2008
    How to make C look like ALGOL
  • Traveling Passenger Problems February 2008
    The computational complexity of airline travel
  • Absolute File System Design February 2008
    A file system that was truly robust against failures
  • B Languages February 2008
    Some influential languages of the past.
  • Traffic Lights and Buridan's Ass February 2008
    My favorite paper that was never published
  • The Discovery of Debugging February 2008
    Someone had to do it.
  • Unix Viruses February 2008
    Experience with some early computer viruses
  • On Duff's Device and Coroutines January 2008
    An abuse of C
  • Play Tic-Tac-Toe with Knuth January 2008
    The only winning move is not to play.
  • Debugging the Universe January 2008
    Physicists at work
  • I Could Tell You, But ... January 2008
    ... well, let's leave it at that.
  • Play Chess with God January 2008
    The perfect chess machine
  • Superoptimizer January 2008
    When in doubt, use brute force.
  • Division via Multiplication January 2008
    A now-standard compiler optimization
  • Scooping the Loop Snooper January 2008
    The halting problem, in verse
  • Crabs, the bitmap terror! January 2008
    A destructive, pointless violation of the rules
  • Bitblt January 2008
    The canonical introduction
  • Literate Programming with Lguest January 2008
    The most readable VM you'll ever see.
  • Killing Quicksort January 2008
    How to force Quicksort to run in quadratic time
  • Introduction January 2008
    Hello, world
  • © 2018 Russ Cox. These posts are made available
    under a Creative Commons Attribution License.