Category: Programming
-
The Conversation Game
Some people are arguing that artificial intelligence technology has advanced so much, so quickly, that we are now close to artificial general intelligence (AGI): a computer program that has the intelligence and flexibility of a human. Popular programs like ChatGPT are examplars of what modern AI can accomplish: they can summarize text, they can answer…
-
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…
-
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…
-
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…
-
Non-free Services
As both of my faithful readers can see, my blog postings have dropped significantly. I’ve been posting my random little comments on Google+ instead. Which leads me to the following. There is a hard-core group of people who only use free software. I’m not quite that hard-core, but in practice I do use only free…