John Lindal’s Blog
San Diego Zoo
May 27, 2008 on 5:44 pm | In Travel | No CommentsWe took our daughter to the San Diego Zoo this weekend. It was our first time, too. It is certainly an interesting place to roam in. If you go, you must not miss the hummingbird aviary. It’s a tiny enclosure hidden away in a corner, next to the children’s zoo, but it’s pure magic. The hummingbirds in the aviary are used to people, so they will sometimes hover around you to investigate!
Why Programming is Hard
May 18, 2008 on 7:17 pm | In Programming | No CommentsEverybody knows that multithreaded applications are difficult to build. But single threaded applications are supposed to be easy, right? Well, after 12 years, I finally fixed a bug in the JX Application Framework’s JXContainer class — the base class of the entire visual heierarchy — that was causing Replace All In Files to crash Code Crusader. At first glance, the stack trace was impossible. The assertion that was failing was explicitly protected against. But if something actually happens, by definition, it cannot be impossible. After weeks of head scratching, I finally traced it to a complex interplay of recursion and derived class overrides triggering the unthinkable
: calling Activate() in the middle of the Deactivate() sequence. Once identified, of course, it was easy to add extra protection.
So why blog about it? What’s the lesson? First of all, recursion can be just as difficult to fully comprehend as multithreading. Secondly, if you’re building a framework, beware of what derived classes will do to your use cases! Client code can be just as disastrous as user input.
Prince Caspian
May 18, 2008 on 6:39 pm | In Books, Movies | No CommentsIf you love Narnia, don’t see this movie.
OK, so much for the executive summary. The extended previews on Disney Channel sounded wrong, and I re-read the book to confirm this, so I went to the theater with very low expectations. However, nothing could have prepared me for something this abysmal. Peter Jackson has moved down to #2 on my Worst Butchers In History list. Yes, as unbelievable as it sounds, this movie is worse than Peter Jackson’s anti-accomplishment. The reason is simply that, while The Lord of the Rings is a deep and intricate story, the Narnia series is so simple. Each book has one main theme. If you throw that out the window, there is nothing left.
The first book is about Christ dying for our sins. To my eternal astonishment, they got that movie right.
The second book is about Faith, both by people who have never experienced Christ, but who feel deep in their soul that the message is true, and those who have not experienced Christ in a while, in the middle of a so called dry spell. And about the Joy of discovering or re-uniting with Christ.
This movie had neither.
Instead of Prince Caspian and his army hanging on to hope while sustaining mounting losses, finally blowing Queen Susan’s horn in their darkest hour, and then having to hang on to hope even a bit longer before help finally arrived, the children meet Caspian at the beginning of the movie and proceed to invade Miraz’ castle with disastrous results.
Instead of Lucy and Susan romping with Aslan to reawaken the trees and the rest of Old Narnia, Susan leads the archers in the final battle while Lucy actually goes in search of Aslan, as if He were some random lion who lives in the woods, rather than the Creator and Driving Force of Narnia.
Reepicheep was OK. All the other characters were hopelessly distorted.
Bathroom Shelf — Part 1
May 10, 2008 on 2:55 pm | In House | No CommentsOur back bathroom is huge. One entire wall is a pair 8 foot high mirror doors, spanning 9 feet. And it doesn’t have a shelf above the clothes hanger bar. What were the remodelers thinking??
Previously, I replaced the shelves in the two front bedrooms. That was easy, because there were already support boards on the walls, so all I had to do was cut to size and add some brackets.
The back bathroom is virgin wall. After a lot of measuring, I decided that the floor was sufficiently level — nothing is level or square in this house — that I could measure up from the floor at both ends to get a rough estimate of where to put the end brackets and build trust that if I mounted one, the other one would not collide with the clothes hanger bar or otherwise be badly positioned. I then screwed one bracket to the wall, tied on a string, ran it over to the other side and through the other bracket, and weighted the string down to keep it taut. After some fiddling, I got the string horizontal, which gave me the location for the other end bracket.
Today, I cut the first of the two boards that will form the finished shelf. Everybody sells 8 foot boards, which is useless for a 9 foot closet. Luckily, DoIt Best sells 10 foot boards, but they are only 7 inches wide, so I need two. Thankfully, the brackets I bought are small enough to not interfere with the clothes hanger bar but still big enough to support 14 inches of shelf.
Total score so far: four brackets mounted on the wall and one 9 foot shelf board in place. Not in that order, of course. I mounted the end brackets, cut the board, manhandled it into position, and then mounted two more brackets near the middle.
Remaining: buy more screws and a 90° screwdriver, mount four more brackets (I already drilled the holes before putting up the first board.), cut the second shelf board into two pieces to fit around the clothes hanger bar supports, screw both shelf boards to the brackets, and install some small brackets to tie the shelf boards to the clothes hanger bar supports.
Second Shower — Part 2
May 10, 2008 on 2:04 pm | In House | No CommentsThe second shower is finally finished. We originally had it done back in December, but the original mounting for the shower wand proved to be just as flimsy as my wife predicted. After my daughter tugged on it and it fell down on her — just a bruise, but still! — I dismantled it, since nothing was better than a constant danger. A couple of weeks ago, I finally found myself at DoIt Best, and took the time to scour the aisles for something, anything, which would be suitable. I finally found it in the electrical department, of all places. The shower arm we were using to hold the shower wand mount screwed perfectly into a mounting box for a pair of outdoor security lights. It’s not a perfect color match, since the box is white, while the wall tiles are almond, but it’s rock solid.
The scary part was drilling the tiles, of course. After finding several web sites with essentially the same advice (DoItYourself.com, total-ceramics.com), I tested it out on a leftover tile — identical to what I would have to drill — and it worked beautifully! So I marked the shower tile, drilled one, adjusted the other mark due to drift, and got really lucky with the second hole — it didn’t drift much — so the holes aligned and I was able to mount the box.
Now I just have to pray that the tile isn’t under too much stress and doesn’t crack overnight!
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^