Category: Programming
-
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…
-
Sudoku
I’ve been playing Sudoku on Google+. i’ve more or less mastered the easy and medium levels, but it takes me about 30 minutes to do a hard level, and I haven’t tried expert yet. Sudoku is a fairly dumb game in some ways; as a colleague of mine pointed out, it’s trivial to write a…
-
CVS SSH
Sorry for the long posting hiatus. I have enough readers now that it’s hard to write the usual random nonsense. I was recently reminded of an old problem using CVS over SSH, which was an interesting example of various different instances of reasonable behaviour adding up to a bug. It’s possible that this bug has…