Saturday, April 26, 2008

Fresh air

A friend passed on this interview with Donald Knuth. Some excerpts:

[...] To me, it looks more or less like the hardware designers have run out of ideas, and that they’re trying to pass the blame for the future demise of Moore’s Law to the software writers by giving us machines that work faster only on a few key benchmarks! I won’t be surprised at all if the whole multithreading idea turns out to be a flop, worse than the "Titanium" approach that was supposed to be so terrific—until it turned out that the wished-for compilers were basically impossible to write. [...]

[...] With the caveat that there’s no reason anybody should care about the opinions of a computer scientist/mathematician like me regarding software development, let me just say that almost everything I’ve ever heard associated with the term "extreme programming" sounds like exactly the wrong way to go... with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me. [...]

Thank you.

Thursday, April 24, 2008

First pool tournament...

I went to my first 9 ball tournament tonight. Each series was to be played to the best of 3 games, so there was no margin for error. I get there, and I see players with nice looking cues. Hmmm... difficult...

First I played this guy that was not very skilled. I won two games in a row, one finishing with a cross side shot, hit hard, that went down dead center, and another one with 4 consecutive shots that cleaned the table. Basically he didn't play at all.

Then I played this guy that really knew his business. He started playing and now I was being left out of the table. But, when he was going for the run out, he made a mistake. I had 3 balls to go. I sunk two and got an impossible to miss setup on the 9 ball. Which I immediately proceeded to miss, and that cost me a game. So now I was down by 1.

No more margin for error now. The next game starts and again he gets lucky with balls going into pockets almost by accident. Then, he misses and this time I sink the 9 ball with a soft straight stun shot. 1-1.

We start playing the deciding game and it gets complicated. I really needed to stay on the table because all the remaining shots were easy, and the 3 ball which was next in the sequence was in this impossible position: next to a side pocket but out of reach past the middle of the table, the corner pocket in front of it blocked by the 8 ball, and the cue ball set for a straight in shot into the corner pocket that was busy. An up and down shot was out of the question due to traffic and the cut angles. So I went for the just as tough cross corner shot. To make it more difficult, the 9 ball was bothering near the other corner pocket. I decided to hit it really hard with follow so that the cue ball might push the 9 in after the recoil. The 3 ball went in, and the 9 ball almost made the combo too. It was this close.

The game continues. Next up, the 5 ball with a corner pocket blocked by the 7. I went for the combo shot. It was the only thing to do. As I was setting up for doing the 7 with the 5, they asked me if I was planning to sink them both. I said I didn't know. They laughed. Both went in side by side.

Two balls on the table, the 8 and the 9 ball. I missed the 8, and the other guy had a chance at the 9. And, although he missed and it was back to me, he left me this horrible leave. I had this shot across the full diagonal length of the table into a corner pocket, but with the danger of scratching on the other one. I hit it with a lot of draw, the 9 ball went in, and the cue ball missed the pocket on the long rail. 2-1, and a win. Phew...

Then on to the final game, against someone who was billed as not being very talented. And still I wondered if I wouldn't make a silly mistake... after all, I had taken advantage of that in the prior round. He comes to me and says "I am so much going to lose". I don't pay attention... the game still has to be played.

So we go through the first game. He gets a chance at the 9 ball but misses and leaves me something familiar. I won that game with another hard cross side shot.

The next game plays on, and he scratches trying to go for a win. In the end, I had this table long straight in shot, so drawing it was almost impossible because the cue ball just would not stop. I go for the slow shot... and I miss it badly. He makes it, it's 1-1, and again a lot of tension. No more errors allowed.

The next game starts and he gets on a roll. Oh dear, now he is also confident and making the shots he was missing before. The crowd is behind him too. And again, we get to the 9 ball. He tries with a bad leave, and he misses. What shot was left? The same diagonal shot that had to be hit with draw, only this time longer and with more scratch danger. Oh well I thought, I better make it. I hit it harder and with more draw. The 9 ball went in dead center. Then I move my eyes to the cue ball. It had recoiled backwards, but was it enough? Slowly, it backpedaled away from the corner pocket and into the long rail. After that, it took a short bounce and came to rest on the table.

So I won the tournament. That was an experience! And, for the pain and suffering, I also got a nice gift card at a sports store. Good stuff!

Now, back to the normal schedule. I predict the fundamentals book will get past 100 pages this weekend...

Friday, April 18, 2008

Twice this week

The first time... I was dreaming of a nice looking Solaris setup, with a debugger that looked like Smalltalk but was really a C debugger. The stack was top to bottom, and all the lines began with an uppercase character. They were functions. The windows had the pale blue background color I use on Windows. What I was working on was that in some cases the native stack got trashed, and while looking around I found that optimized block contexts were damaged such that answering the message #class would answer nil. At this point, quite happy for having found the bug, I woke up at 3am.

The second time... on the plane back I fell somewhat asleep, and I started dreaming about the VM's internal storage of Windows socket I/O semaphores. I was examining the use of the free list pointers and the CRUD mechanism, looking for potential bugs. Unfortunately a seat had to be fixed next to me, and as such I was prevented from doing further work while resting.

Sunday, April 13, 2008

More progress

I snipped a bit of chapter 2, and the draft went down to 70 pages. Today I started chapter 3, and I reached 78 pages and 300kb of PDF. I really like what I did today. More to come...

Saturday, April 05, 2008

Informal feedback about the hash book

Here are a couple comments I received about the hash book. First, I heard this from somebody who frequently dives into topics such as category theory.

It is on par with any serious mathematics book. It will take me at least a year to wring out all the information it has.

And today, I received the following assessment.

Very, very thorough! [T]he hash book is (imo) at least the equivalent of a master's thesis for the literature review alone[.]

It makes me really happy that what I did is received in this manner. Thank you for your feedback!

Progress so far

I just finished and polished chapter 2 of the fundamentals book. The book draft is now 72 pages long, and the PDF went over 256kb. I am happy I am now in a position where I can put away all the thoughts about this chapter. This will make room for chapter 3, which should begin in a while after a plan for it coalesces.

On to other things now.

New weekend, more to write

This week has gone quickly... almost a blur.

Work wise, there was more than plenty to do, lots of learning about new things, and strong challenges that seem to extend into the far future the more I look at them. There is also progress on them, which is good. I also managed to start playing pool again. After having to put up with my lack of practice, some of the nice shots I was making are back. Today's neat shot was a two rail cross corner bank shot (short, long, and cross corner pocket... 2 table lengths). I still can't stand myself though... I need to put in a lot more time into practice.

Sigh... I still feel like I need an assistant. I have been consciously neglecting some chores as much as possible because I can't help seeing them as unnecessary interruptions. Unfortunately I need to take care of them now, and I really do not feel like it at all. And I am really tired, and I am ready to rest.

Rest, huh? Not so fast, my little lazy friend... I still need to finish chapter 2 of the fundamentals book. I hope this is the weekend when I finish it. We shall see what I have to comment on by Sunday night in about 48 hours.