The comedic geniuses over at The Onion have done a number on the new Ben Affleck/Jennifer Lopez film, Gigli. I actually got to this story from somewhere else and didn’t realize it was an Onion story at first. Given some of the descriptions of this film that I’ve heard by people who have seen it, the “audience reactions” in the story didn’t seem all that far-fetched. Then I figured it out. Go read it. But don’t drink anything while you are reading unless you want it on your monitor.
As I mentioned yesterday, I got a handheld GPS unit and was going to give GeoCaching a go. Well, today when I got home, Thomas and I headed out for our first “treasure hunt.” The cache we were after is actually in our subdivision, which made it a good first hunt since it was so close and I had a pretty good idea of where it was. Yes, this does somewhat violate the spirit of GeoCaching, but for a first go with a 4.5 year old, I wanted to make certain we found it.
And find it we did! We parked by the pool, got out, sprayed our arms and legs with Deep Woods Off! and started out. I let Thomas wear the GPS unit around his neck and showed him how to read the map display. I told him that the line showed us where we wanted to go and that the arrow was where we were, and it needed to point as closely as possible to the line. He got a real kick out of that. “Daddy, we need to go to the right. Oops! Too far!” It was fun. We had to trek through some weeds that were taller than he is, but we found the cache and opened up. There was a ton of stuff in it. Some toys, a big sea shell and some stuff I didn’t recognize. We looked at all of it, recorded our find in the log book, took a little green MatchBox type car and left a Disney trading pin of Goofy. We then closed it back up, walked around the lake a bit, then headed for home.
Thomas had a ball, and I rather enjoyed myself as well. He’s ready to go on another hunt, only next time he wants one that isn’t so close to home! That shouldn’t be a problem. According to GeoCaching.com, there are about 30 in the area.
On the local radio station 96 Rock they are running a spot in which some chick from the “96 Rock Bod Squad” delivers this at the end of a “newscast”:
Well, it looks like we got Uday and Quasay. Hey Saddam! Ou’reyay extnay, ickheadday!
Juvenile, yes. But funny.
I finally got around to getting a handheld GPS unit today. I got the Garmin eTrex Venture and took it for a spin today when I went cycling at my usual location. Pretty cool little unit. Good price, too. On of the reasons I got it is because I had heard a while back about a sport called GeoCaching and the website that supports it. I had also heard that there was a cache remarkably near my house; actually in my subdivision. So tomorrow, assuming the weather is good, Thomas and I will head out, GPS in hand, to find our first cache. I’ll post tomorrow night with our results. From the comments I read about this cache, and my knowledge of the area, I don’t think it should be too hard to locate. Of course the website reminds us that GeoCaching is “deceptively easy.” We’ll see.
That’s right. Some sick people are creating a computer game based on the horrible events of 9-11-2001. Can you believe that? At the risk of giving them free publicity, the site is here. They have “actual in-game” screenshots of a guy leaping to his death to escape the fires behind him. What kind of person comes up with something like this? I can’t even imagine. And I sure hope I never meet them.
This morning I found out about SmartCVS; a really nice looking GUI client for CVS. I’ve been using WinCVS for a while now, but (no offense to the developers!) it just didn’t feel right. I can’t explain it, but it just didn’t give me all that I wanted. (Laugh all you want about SourceSafe, but that is a really nice client tool.)
Anyway, I just downloaded SmartCVS a few minutes ago and started playing with it. It’s written in Java so it will run on lots of OSs, and it’s fast too. It looks a lot like IntelliJ IDEA and apparently JetBrains has signed some sort of license with SmartCVS to incorporate it into IDEA. There is a free version and a “pro” version with more features. A single license of the pro version is $45 USD which doesn’t sound too bad. I’m going to keep using the free version for a while to make sure I really like it, but thus far it looks like a great tool.
Now if someone would just create a cvs client that can use a proxy! I’m behind a firewall that blocks most useful ports, one of which is 2401… Sigh…
So I’m playing around with Lisp, reading Successful Lisp and thoroughly enjoying myself. I really like Lisp, I just haven’t gotten to use it on anything other than test stuff yet. One of the things that I find the most interesting, and powerful, is the macro facility. Sure, some languages like C have macros that are processed by a preprocessor, but Lisp’s macros are in a league of their own. Consider this code (lifted wholesale from Successful Lisp)
1 (defmacro def-i/o (writer-name reader-name (&rest vars)) 2 (let ((file-name (gensym)) 3 (var (gensym)) 4 (stream (gensym))) 5 `(progn 6 (defun ,writer-name (,file-name) 7 (with-open-file (,stream ,file-name 8 :direction :output 9 :if-exists :supersede) 10 (dolist (,var (list ,@vars)) 11 (declare (special ,@vars)) 12 (print ,var ,stream)))) 13 14 (defun ,reader-name (,file-name) 15 (with-open-file (,stream ,file-name 16 :direction :input 17 :if-does-not-exist :error) 18 (dolist (,var ',vars) 19 (set ,var (read ,stream))))) 20 t)))
What does this mass of parentheses, backquotes, commas and colons do? Lots. Executing the macro thusly
(def-i/o save-checks load-checks (*checks* *next-check-number* *payees*))
will define two functions, one called
save-checks and the other called
load-checks, that will store and retrieve the global variables
*checks*, *next-check-number* and *payees* to and from a given file name. These methods could be called thusly
(save-checks "checks.dat") (load-checks "checks.dat")
This macro could be included in any program for which we needed to have reader and writer functions for marshaling data to and from disk files. This example was for a fictional bank, but let’s say I had a program to process data about the Tour de France and I had buckets for teams, riders, jerseys and sponsors. I could do this
(def-i/o save-tdf-info restore-tdf-info (*riders* *teams* *jersyes* *sponsors*)
and would get
save-tdf-info and restore-tdf-info functions that could be called thusly
(save-tdf-info "tdf.dat") (restore-tdf-info "tdf.dat")
Maybe I’m just easily impressed, but I think that’s pretty cool.
As I was getting ready for work this morning I noticed that one of my cats had barfed in my shoe. I suppose I could look at this as a sign that if the day starts off that bad, it won’t get any worse…
I asked a fellow cyclist today at Tribble Mill if he knew where the trail was that would take you to the old mill site. He did and told me where to look. I had driven in my car to this particular parking lot before, but I hadn’t noticed the wooden posts about 8 feet back into the woods. These were the markers indicating the trail head. I headed down it, very down, a long way. I hit a hole and augered the front tire in, came off the seat and landed on the top tube. Ouch! And the left pedal came around and ripped down the back of my leg. Lots of choice words were uttered, but being alone in the woods, and no one was there to hear them…
Anyway, I continued down the trail and finally hit large sheets of granite. It looked like being at Stone Mountain. I could hear a fast moving stream nearby and headed for it. The stream was about 20 feet across and moving at a pretty good clip across the rocks, making lots of noise. It was a lovely sound, and a lovely sight. I didn’t even attempt to cross because I could tell that the rocks were very slippery and I would slip if I even tried to ride across. As for the mill, I don’t know what was supposed to still be there. I could see a man-made wall about 30 feet upstream from where I was standing, but no good way to get there. So I hung out by the stream for a few minutes then headed back out. That hill was now an ascent instead of a descent and was quite hard. I had to walk a little of it, but I ultimately made it out and headed for home. Total ride: 9.32 miles.
The hill at Tribble Mill Park that I mentioned here suffered a crushing defeat today as I surmounted its summit. It sounds impressive, but it really isn’t. Most riders probably wouldn’t flinch at this hill, but it whooped me the first time I tried it. Today I made it over the top with only a brief stop half way up. After that I picked up the multi-use track at the bridges and finished a counter-clockwise circuit. After resting for a few minutes and eating 1/3 of a chocolate PowerBar I headed out again to do a clockwise circuit.
After completing that circuit, I rested again and decided to go just one more time and headed out again clockwise. This time as I approached the bridges in the woods, my right calf was starting to cramp, so I parked on the first bridge and got off to stretch. While standing there I was looking at the trails below me next to a little stream and decided to go off-road and check them out. So I backtracked about 150 feet to a little wooden bridge that I figured was the entrance to these trails. I was met with a fork and headed to the left, which was the direction of the stream. I was immediately faced with an enormous mud pit with no obvious way around. I could tell by the tire tracks through it that it presented no problem for a lot of folks, but this being my first off-road experience, I decided not to tackle mud just yet. So I turned around and took the right fork. This was lovely! I was back there for about a mile, pedaling almost the entire way. No one else was around; just me, the birds, and a lizard. O yeah, and one squirrel.
I finally came out back to the road and stopped for about five minutes to finish off the PowerBar and rest. I then picked up the multi-use again and completed the circuit for a total of nine miles. I’m tired, but it was extremely fun. I’m going to have to check out some of the other trails out there.