Saturday, January 29, 2011

FTP server changes

I will be retiring the old FTP server and replacing it with a new one. Anonymous FTP will replace the old smalltalk account. This change should be finalized in a bit.

Wednesday, January 12, 2011

Hard lesson to learn

See here: what happens when you think the spec does not apply to you because you are special*. In short: huge computer security problems, and huge embarrassment...

But it's such a valuable lesson, you know? Realizing there are many more specs than any human can possibly read, and the full extent of the consequences, is a sobering experience. These specs tell you how to write C code, how to call OS APIs, how to boot a machine, how to use a graphics card, how to use a compiler, etc. Those specs also state how you're supposed to do stuff so that the resulting behavior is well defined, as opposed to undefined (see video above). That also means we do not have the means to ensure proper software behavior because ultimately we do not understand how it is meant to work correctly.

Thus, regardless of typing and safe compilers and whatever, how can we make sure our software really works when we cannot absorb all the material necessary to prove our software correct? Alas, in the mean time, this is the world we live in today. Back to reading more specs...

* e.g.: because you can sue anybody who disagrees into compliance.

Saturday, January 01, 2011

Chapter 6 is done

I just finished Fundamentals II's chapter 6. Besides all the wonderful material, this chapter weighs in at 78 exercises of all kinds. I really like the result. The draft is at 158 pages right now. It's time for a little break before I start with chapter 7, on threading.

By the way, how fitting that I get to write about threading now. At work, I have to fix this condition that leads to HPS scheduling the wrong Smalltalk process until you hit ctrl-y. Fortunately it's rare, but it should never happen to begin with. I had fixed a problem where signal handlers would smash the wrong stack page's stack limit, but there are some critical section style holes that need to be closed before the general scheduling functionality can be proven to work in every single case.