• Leaving Google

    I’ve left Google after working there for 19 years. For most of that time I’ve been fortunate in being able to work on the Go programming language. Go was started by Rob Pike, Ken Thompson, and Robert Griesemer in the fall of 2007. I joined the team in June, 2008, about the same time as…

  • Electrification

    This is a note about some steps that I and my family have taken to work to reduce our carbon emissions. According to the EPA, commercial and residential use is the fourth largest source of carbon emissions overall in the U.S., generating about 12% of carbon emissions. Some sizable chunk of that is fossil fuels…

  • Go experience report: the append function

    When the Go language was first publicly released it contained a package named container/vector.  The type vector.Vector was a name for the type []interface{}.  Vector supported methods like Len, Cap, At, Set, Insert, Delete, Push, Pop, and several more.  You can see the source code at on Github.  An interesting aspect of the package is that…

  • The 2016 Election

    Although I haven’t written in this blog in years, like many people I’ve been thinking about the recent U.S. presidential election. What I find most interesting is the continuing evolution of effect of the Internet on life in the U.S. The Internet is destroying the truth. By this I don’t mean the recently much-discussed issue…

  • Piece of PIE

    Modern ELF systems can randomize the address at which shared libraries are loaded. This is generally referred to as Address Space Layout Randomization, or ASLR. Shared libraries are always position independent, which means that they can be loaded at any address. Randomizing the load address makes it slightly harder for attackers of a running program…