Once Clojure parity is achieved, I'm interested in static typing, pattern matching, value-based errors, and some other opt-in improvements that I think will greatly improve both readability and toolability (i.e. how well tooling can work with the code, based on what it knows of the code). Stay tuned. :)
Thanks for jank! It’s great to be reading about it, listening to you talking about it at conferences, and I can’t wait to try it out!
Automated CI was not quite as big back then as it is now; we had some in-house CI-ish facilities, one of which was buildbot: a small Python script that continuously built all of our projects one after another, reporting successes/failures in a simple UI.
One day I was puzzled to discover that buildbot hung trying to build a tiny Java applet. Just a handful of .java files. But it had been stuck for more than four hours at that point.
I ssh’d into buildbot and looked at what exactly the hung process was doing. It was not javac. It was jarsigner.
Then it dawned on me. jarsigner needed some crypto-safe randomness, it was trying to get it by default from /dev/random, not from /dev/urandom, and the machine ran out of entropy!
I ticketed a change, but as an interim measure, I went to the server room, switched the console to buildbot’s server, and moved the mouse vigorously for some seconds. It proceeded.
What turbo vision brought to the game was movable, (non) modal windows. Basically a lot of rewriting that array in a loop. Pretty snappy. I made a shitload of money with that library.
Arrays in TP were laid out in row-major order, and each character was represented by two bytes, one denoting the character itself and the other the attributes (foreground/background color and blinking). So, even better, array[1..25, 1..80] of packed record ch: char; attr: byte end absolute $B800:0000.
Replace $B800 with $B000 for monochrome text display (mode 7), e.g., on the Hercules.
> A careful programmer will check the return value of close(), since it is quite possible that errors on a previous write(2) operation are reported only on the final close() that releases the open file description. Failing to check the return value when closing a file may lead to silent loss of data. This can especially be observed with NFS and with disk quota.
Last time I checked, GCC’s implementation of ~ofstream() ignored failures from the underlying close().
I approached the math olympiad back in high school, but found it too challenging. Looking backwards, I think I might have benefitted from having a better math teacher.
I’m 41 now; AMA.
Germans are allowed to write compound nouns in hyphens
Donau-Dampfschifffahrts-Gesellschafts-Kapitänsmützenknopf-Farbenfabrik-Eingangstor