Following on my last entry, where I built a better pre-commit hook to ensure every commit in my Git history passed make check with flying colors, I realized something today about my good friend, rebase. [...]
Recently a friend turned me onto an interesting article about a problem I had just recently discovered about Git and its pre-commit hook: Committing in git with only some changes added to the staging area still results in an “atomic” revision that may never have existed as a working copy and may not work. [...]
This has probably been written countless times before, but I found myself needing it today and it was quick to write. It lets you read characters from a char array in C++ via the istream interface: #include "ptrstream.h" int main() { ptristream in("Hello, world!\n"); char buf[31]; in.getline(buf, 32); std::cout << buf << std::endl; } Handy for if you don’t want std::istringstream needlessly copying character strings. [...]
There is a new version of Ready Lisp for Mac OS X available. This version is based on SBCL 1.0.24 and Aquamacs Emacs 1.6, and requires OS X Leopard 10.5. The only changes in this version are upgrades of many of the dependent packages. [...]
I’d been avoiding adding full Unicode support to Ledger for some time, since both times I tried it ended up in a veritable spaghetti of changes throughout the code, which it seemed would take forever to “prove”. One branch I started used libICU to handle Unicode strings throughout, while an earlier attempted using regular wide-string support in C++. Both were left on the cutting floor. [...]
The other day I finally implemented a feature in Ledger which I’d avoided doing for a full half-year. The reason? Every time I thought about it, my brain kept shutting down. It seems my brain doesn’t care for math much, or for mathy problems, so it always seemed as if something better needed doing… [...]