I found these Lecture Notes on finding substrings using both finite automata and KMP string matching. An important note from the second paper: "[KMP] can be thought of as an efficient way to build these [formerly mentioned string matching] automata". Some of the younger students out there might ask: "Why study a second subject which is simply thought to be generating the first?". It's all about simplification and many things in CS fall into this category but finite automata is especially rich in this area. Example: many people out there use regex's on a daily basis but most of them don't realize regex's are just building finite automata in the background. Learning automata doesn't seem particularly important to writing faster regex's although it's quite important when learning how to write things that are _faster_ than regex's for a particular (usually small) task.
My dad's in town this weekend; We're heading to the Packers v. 49er's game tomorrow. I'll have to pick up a Niners hat in the Stadium since he's wearing his Packer's gear. Dad told a couple on the plane down here who asked whether I was also a Packer's fan: "Of course, if he wasn't we would have made him live in the shed."
I bet SF over Green Bay 27-20.
Update: The Packers beat the 49er's 20-14 with SF failing to connect for a TD with 20 seconds left on a 4th down.
# — 15 December, 2002