The base system finished compiling today, so I set about building my kernel. Configuring the kernel isn't so bad except for the sitting around answering hundreds of questions part. Ironically, answering the questions took about as long as compiling the kernel on my 333 MHz box.
The funny thing about the kernel configuration is you never answer questions based on what you want to do, only on what features to include and exclude. To answer every question, I have think, "What does this feature allow me to do? Is that something I want to do?" More often than I'd like, I'm not sure what the feature does. Unless the help text provides something meaningful, I just make the feature a module. I've heard the 2.6.x series has a better config tool. I'll have to check it out sometime.
After getting the kernel compiled and installed, I went to reboot. Grub started just fine, but when it went to load the kernel, the machine immediately rebooted. I was going crazy! I messed with grub for an hour thinking I may have misconfigured it. That was a dead end. From everything I could find, grub was fine. I went back into my kernel configuration and disabled APM since I've heard that could be a culprit. But, disabling APM didn't work. Finally I resorted to stepping through all the configration menus again, one-by-one. When I hit the CPU options, I realized that I hadn't changed the default setting from "Pentium III" to my processor, AMD K6-2. (I could go on about how "make menuconfig" displays this option in a very non-obvious way, but I won't.) After a "make clean" and a recompile, all was well.
So, now I have working kernel on a working system...time to build X windows and gnome...oh boy!
The Gentoo installation is progressing slowly on my 333 MHz K6-2, but things are going well. I had some initial trouble getting going because I was trying to install Gentoo 1.4rc4--that's the version I already had a CD for. After grabing the 1.4 (final) version, thing have gone quite smoothly.
My computer has been compiling for over 24 hours solid now. I'm looking forward to my super-optimized Linux box! I can't wait to see how fast (or slow) Gnome will be. What would really be entertaining is to install Fedora on that box and do some performance comparisons.
Somehow I feel more powerful using Gentoo...I'm not sure why, I just do.
I saw "The Passion of the Christ" yesterday. All-in-all, an excellent film. Going into the movie I had two apprehensions. First, I wasn't sure I wanted to watch two hours of unspeakable brutality, and second, I wasn't too sure how much Gibson's Catholic background would influence the film. The movie was less difficult to watch and more biblically founded than I anticipated.
The violence was disturbing--particularly because it is accurate. Scourging is a horrific punishment and crucifixion is unspeakably cruel. Gibson clearly shows the injustice of Jesus' execution without compromising on Jesus' power to avoid the whole ordeal. What drives the message home is Jesus' love and compassion on those inflicting this horror upon Him. Jesus is not the victim. Jesus choses to die. Gibson states this essential Christian message with power and clarity. Christ layed down His life for us--He accepts our punishment in our stead.
I understand the symbolism of the Satan character presented throughout the films. I thought it was clever way of showing the underlying epic battle of Jesus crushing Satan. Some symbolism that struck me as odd was Satan's "children" harassing Judas and the raven who pecks at the unbelieving criminal. Both were extrabiblical and didn't seem to fit.
I liked the focus on Mary and Jesus's relationship. As a new father I can readily identify with the heartbreak of watching my child suffer. Emily recently had pink eye and we had to administer eye drops. For the first few days she would scream and cry, looking at us as if she had been betrayed by her most trusted caretakers. Emily's suffering is nothing compared to Jesus's suffering. Gibson captures a mother's anguish while mainting a strong Mary who understands Christ's necessary death.
Although the movie vividly reminds me of Christ's sacrifice, I'm not sure how clearly the gospel message is conveyed. It seems one must be reasonably familiar with the gospel to extract meaning from the film. The movie greatly impacted me, but I'm not sure what impact it would have on a non-Christian. It could be nothing more than a violent film about a great man who suffered unspeakable torture. I hope that the film creates an opportunity for good discussion between Christians and non-Christians alike and the controversial rhetoric surrounding it's release won't distract from it's important message.
Today I'm making the big dive into Gentoo. I already have it running on my server, so I'm familiar with it. However, my Dad installed the sever instance for me. Now, I'm installing Gentoo on a workstation at home to really check it out. I'm doing the ominous "Stage 1" installation. So far, so good. I'll keep you posted as I walk down the Gentoo path.
Happy birthday to my little sister Karin! I hope you have had a great day and have many good birthdays to come. It's been a pleasure growing up with you. I wish you much success as you finish up at UCSB.
Today, we had some of the most spectacular rain I have seen in a while. It was just pouring down in sheets. I saw lightning and heard thunder for the first time since we moved up here to Oregon! Just amazing.
I was waiting for the bus when the rain started to pick up. The city builds covered rain shelters at all the major bus stops. Shortly after I sought cover, the sky just opened up. The drops were pouring in a thunderous roar. The wind was wipping the water everywhere. When the bus finally pulled up, I ran out of the shelter to get in the bus. I only in the rain for about 15 seconds, but I got soaked.
Typically, the rain up here is moderate to light. I usually doesn't pour. Today was the exception. What a sight!
Emily has been endowed with a nobel quest. There's no Lady of the Lake or sword Excalibur. There is a table, but it's not round. It's our rectangular coffee table, and Emily is on a quest to keep it clean.
Now that she can pull herself up on the coffee table, she has discovered a whole new world of opportunity before her eyes. This cluttered surface just begs to be organized. So, when she escapes our gaze, she grabs the closest thing and tosses it on the floor.
Fundamentally, she's driven by a need to empty things. She finds her toy basket and, one-by-one, emptys all the toys on the floor. In the bathroom, she'll crawl to her laundry basket and proceed to place all the clothes in two piles--one on each side of her. Of course, when the basket is empty, she entertains herself by relocating the pile on the right to the left and visa-versa. She does all this with the serious look of labor appropriate for one who has been commissioned.
With this innate talent for organization, I'm looking forward to training her to do the opposite--pick stuff up and put it where it goes. Hm...we could call it the "second quest."
See Emily at work
Lisa and I went to the "Home and Garden Show" in Portland today. Lots of neat booths, products, and displays. I particularly enjoyed the flower and garden displays. Just beautiful. It reminds me that spring is coming soon.
I can't wait for spring and summer here in Oregon. Now, I'm not complaining about the winter. The winter up here is nothing, even though native Oregonians seem to feel compelled to complain about it. I was joking with Lisa today that we should print up t-shirts that say "I survived an Oregon winter." We could wear them on our trips to California. Other Oregonians could laugh while we garner sympathy from those endowed with more sunshine.
No, I can't wait for spring and summer because I'm told that it is absolutely gorgeous! It will be time to go hiking, visit national parts, and enjoy the perfect weather with optimum sunshine. The "Home and Garden Show" whet my appetite. Now if I can only make it through the rest of the term.
I was talking with Joey Lawrance during Professor Paul Cull's "coffee hour" today. We got off on the subject of what science can and cannot prove. It came up during the discussion that axioms, by definition, cannot be proved. A scientist must simply accept them to be true. In a certain sense, this is an act of faith--the scientist must believe in something they cannot prove. So, even a so-called "rationalist" must have some kind of faith.
Ironically, rationalists will claim that they don't know anything for certain, and therefore they don't trust anything. But to cope with day-to-day life, rationalists act on their beliefs with certainty. Essentially, they become trapped by philosophical skepticism.
I find this paradox interesting. Skeptics act with faith, but will not admit that it is faith. And, although skeptics can not prove their strong faith in science, they still trust it for answers.
A big thanks to Nate Jones who posted on secure remote file systems. I tried out LUFS today. It was very easy to install and worked reliably for me (no segfaults, kernel panics, or freaky behavior). I had some permissions problems with sshfs, but I couldn't figure out if this was due to me not providing the correct command line switches, using a different username remotely, or connecting to a Solaris server. Essentially, I was able to read all the directory information, but I couldn't view any files. Here's my command line:
lufsmount sshfs://neumann@flop.engr.orst.edu ~/lufs/flop –f 666 -d 777
If anyone has success/failure stores or any tips, feel free to post.
As I mentioned before, I wrote a mini research paper on volume rendering over the weekend. Essentially volume rending is a computer graphics technique that allows you to visualize three dimentional or higher order data. One of the most practical applications is to take CT scan and MRI data and display them as 3D objects that the user can manipulate.
If you are intesterested, you can read my paper (4 pages). Also, if you are curious and would like to see some pretty pictures, check out the Visualization Tool Kit, the Visible Human Project, and Bill Lorensen's home page. This page also has some nice pictures, but I'm not sure how long it will be around.
Maybe your remember my previous entry about my frustrations with AOL Instant Messenger? Well, I figured out what was going on. Apprently, "gaim" was configured to use the "TOC" protocol instead of the "Oscar" protocol. To fix the problem, I zapped all my gaim configuration except the buddy list. I then hand-edited the "blist.xml" file and replaced all instances of "prpl-toc" with "prpl-oscar". Vola! My buddy list is now showing up in "AIM Express"!
I have dim recollections about AOL abandoning support for TOC protocol. They are focusing all their effort with the Oscar protocol. I've never had a problem with TOC before, so I'll chalk this one up for the record.
What I really want to know is when can I get support for "voice chat" in gaim?
It's been one crazy weekend! Basically, I wrote a four page research paper over the weekend. That, and I took Lisa out for Valentine's Day. Oh yeah...there was church on Sunday morning too. And, I read through a quarter of an interesting dissertation. I'm trying to remember if I got sleep somewhere in the maddness...hm I have a vauge recollection...maybe I'll just sleep on it.
So, why write about the weekend now, on Tuesday? Well, I didn't have time until now. A word of advice to all you out there considering grad school. You don't even know what busy is yet. :-)
Well, I'm off to do some grading. Have yourself a restful and relaxing day. If you have any extra rest or relaxation left over, just send it my way.
In reponse to feedback, criticism, and mocking about his book, "The End of Science", John Horgan wrote an excellent article for IEEE "Computer" entitled "The End of Science Revisited." He makes some excellent points in a hysterical way! I would say this is a "must read". Grab the PDF (it's pretty and easy to read), or if you prefer, check out the HTML version. It's a short read, so just go for it.
Without spoiling too much, I would have to say this is my favorite quote:
"Chess, with its straightforward rules and tiny, Cartesian playing field, is a game tailor-made for computers. Deep Blue, whose five human handlers included the best chess programmers in the world, was a prodigiously powerful machine, capable of examining hundreds of millions of positions each second. If this silicon monster had to strain so mightily to beat a mere human at chess, what hope is there that AI engineers will ever create HAL, the lip-reading killer in the film 2001?"
Happy Valentines Day for all of you out there with a significant other. I hope you treated them even better than they deserve. Happy "I'm glad I'm free of women" day for the rest of you!
Lisa and I went to the "Best Little Roadhouse" in Salem to grab a steak dinner. The 50 min wait was worth it because it was delicious! I highly recommend it to anyone. Dinner was, of course, after a nice afternoon of shopping at the outlet stores to get big Presidents' Day sale discounts. I think the most we payed for something was 50% off. Most of what we bought was 75% off! Not bad at all! Emily now has clothes to get her through the next six months and Lisa has clothes to keep her looking nice while carrying Emily around.
Maybe I'm not alone in thinking this...but I think "Firefox" is a terrible name change for "Firebird"! What are they thinking? Sure, sure, the Firebird database people were upset, but "Firefox"?! I can't help but thinking about that cheesy 80's movie starring Clint Eastwood.
Yeah, yeah, I'm a detractor with no suggestions...so here's what I say. I don't see what's oh-so-confusing about "Firebird" the browser and "Firebird" the database. Just say the "Firebird browser" or the "Firebird database". Or heck, call your self "Icebird", or anything except "Firefox"!
Do not be fooled! Do not become a victim of misinformation. Don't believe everything you hear on the news or read online. Oregon is not having gorgeous weather with beautiful, cloudless skys. It's the winter. That's the rainy season. Despite what the weather channel may be reporting and that obviously phony doppler radar, it's pouring in Oregon--even snowing. In fact, most people have not seen the sun in months. Beware, and most of all, keep away!
Remember, California is the "Golden State", full of beautiful sunshine. You don't have to worry about a "cooling trend". California has "culture" and "diversity" everywhere--in fact, try to find any piece of land without something on it. You don't have to worry about what wild animals might be lurking out in nature. Things are laid back in California. Even on the way to work, people just kick back and take it slow. And there's nothing more enjoyable than a good BBQ and a swim during the pleasantly warm months of July, August, and September.
Remember, do NOT move to Oregon. Do not be taken in. Stay in California and share it with 30 million of your closest neighbors. Enjoy it. What the Oregonians don't know can't hurt them.
Perhaps you've heard this before, but I had this insight while I was taking my midterm in CS 582 over the weekend. It's about static versus dynamic typing. Ironically, in class on Monday, this is what was on the agenda.
Fundamentally, there is a great tension between static typing and code resuse. Sure, static typing gives you the compile-time assurance that your program is free of type errors, but it also limits you to writing programs that are only in a subset of all type-correct programs. This limitation poses problems.
Consider this: How can I make reusable components if I have to bind them to a particular type? A container class is a great example to illustrate this problem. Because of polymorphism, I can pick a class high enough up in the class hierarchy (a.k.a. "Object") so that virtually any class I want can be used. This only works if the languages has a singly rooted hierarchy (not C++), and it still doesn't free you of the pain of down casting everything on the way out of the container.
Java's use of interfaces is a clever approach to this problem. Instead of depending on the class hierarchy to determine validity, an interface can be used. This allows the programmer to create abstractions to handle problems that span classes. Take iterators for example. One may want to interate over many different classes, whether or not they are related. Using interfaces, this is possible. Without interfaces, this is a nightmare.
Of course, we can't forget data generics (a.k.a. templates) for some of these things too. They are particularly good for container classes, but can also be useful in place of interfaces too. I'm happy that Java 1.5 supports generics, but I hope it's not as messy to deal with as templates in C++.
Fundamentally, static typing is quite constraining. Perl is one of my favorite languages because it is dynamically typed, and I enjoy the liberty of not having typing constraints. So why do I like Java? Because interfaces and generics ease the static-typing enough while still guranteeing provable type-correctness.
Interesting stuff....
Happy birthday to my wonderful and precious wife Lisa! I look forward to spending many more years with her. She is a blessing and a joy to me!
My beta fish, Foo, got a space "upgrade" today. He moved from his filthy little beta tower into my 2.5 gallon fish tank. He wasted no time in establishing his domain. He immediately started flaring his gills and chasing the poor plecostomus and red-eyed tetras around the tank. It was fun to watch Foo stretch his legs, ahem, fins. It's funny, because I haven't seen a beta that active in a while.
Foo is named after my previous beta Phineas. Foo's full name is "Phineas 2" which I simply reduce to "Foo". Phinny lived to a ripe old age of at least two years when I left him behind in the APU fishtank. When I parted with my dear Phineas, he was having significant difficulty "attacking" his food pellets in stationary water...poor thing.
Foo is young and has his best years ahead of him. Here's to the new king of the tank...and here's to my entertainment watching him. :-)
Yesterday, in the OSU colloquium, "cfengine" was referenced. It got my attention because it was in the context of managing large systems of computers. This morning I checked it out and found an interesting article in the Linux Journal on using cfengine to manage security settings.
Basically, cfengine allows you to keep the configuration of multiple computers in perfect sync with each other--following the change once, change everywhere philosophy. It looks like a useful tool, and I'll add it to my list of things to experiment with when I have time.
Before I became a parent, I was unaware of many things. One such thing was the ins and outs of child care. I figured that when I needed someone to watch my child, I would just call them up, let them know she is coming, and then drop her off. Needless to say I was surprised to find out the usual policies of "drop-in" care. And this morning, those policies finally caught up with me.
Basically, any organization that watches children as their business, wants you to commit to bringing your child in a set amount every week. This is well and good if you have one of those "normal" lives with fixed schedules. (Read, not a student or a nurse.) Consequently, Lisa and I rely on drop-in care whenever our schedules collide.
The way drop-in works is you call the morning of you want to drop-off your child and hope they have availabillity. Maybe they do, maybe they don't. If you try to call and make arrangements in advance, they tell you to just call in the morning. Now, I understand this from a business standpoint. A business can't just sit around hoping you'll drop off your child so they can watch him. But the uncertainty of this arrangement puts a parent in quite a predicament. You are putting your child in daycare is because you must do something, but you cannot be assured that you will actually be able to do what it is you must do.
As a resourceful parent, I have a list of the only three places in Corvallis that provide drop-in care. None of them were free this morning, so I stayed home to watch Emily. Fortuanately, there is nothing critical in class this morning, but that's because the midterm that was scheduled, was turned into a take home exam. I can only wonder what I would have done if I still had a midterm this morning.
Whenever I see "C++", I can't help but think of "Brave New World" and the "Alpha Double Plus" social strata. I'm not sure why I make that connection, but it's always there. I know, I know, the "++" is the postincrement operator...I get the pun, but I never think of it that way. It's interesting how this one-cut-above C mentality is so relavant to C++.
The most interesting thing about C++ is the incredible tension created by having an object-oriented language that worships efficiency. Kevin's comment on C++ culture prompted me to think more about this. C++ values the raw, no "frills" approach. The language is constructed so that you know where every CPU cycle is going. Hm...I have a "virtual" keyword, that will cost a few extra cycles and a slightly bigger footprint. Hm...I'm using "new", so the object will be on the heap instead of the stack and the memory will take longer to allocate. Even "iterators" are glorified pointers, not first class objects. Case and point...see how long it took for "string" to be a fundamental part of the language.
Whereas other languages focus on the programmer, C++ focuses on the binary code that will ultimately be produced. Rather than the language being an expression, it's a bitwise specification. Rather than allowing the compiler to choose anything for you, you must choose it all yourself.
Here lies the tension. Fundamentally, object-oriented programming cares more about the way code is expressed than executed, but C++ cares so heavily about execution. I think this is why Java is such a popular alternative to C++. With Java, you get very reasonable execution speed without the agony of dealing with a specification heavy language such as C++.
Remember, programming languages were created for man, not man for the languages.
So, have you ever stayed up really late to get something done only to find out that it is due later than you thought it was? Well, last night I stayed up until 3:00 AM to get my graphics program done thinking that I was supposed to turn it in during class today...well I was wrong. It's due at midnight. Doh! At least I can go to bed early. ;-)
I thought I would mention that I've been incredibly busy in the last few days. This might be the first time in a while where I feel like if I stayed up night and day, it would still take a few days to catch up. Boy it's been crazy! Well, I guess what grad school is all about. But, with my fast Internet connection, I'll be sure to keep blogging despite the insanity.
Bring on the high speed Internet connection! This is my first "official" blog entry over my new high speed connections. I have "Comcast High Speed Internet" with 3 Mbit down and 256 Kbit up. Woo hoo! I'll guess I'll just have to wait and see how the service is, but so far I'm happy.
I've been holding off on the high speed connection to save money. OSU provides "free" dialup. The dialup service is fine, but I've been spending more time lately SSHing into OSU's servers. Also, on-line research goes much, much slower on dial-up. Now that I have a TA position (for a little extra income), I decided to go for the high speed. At about $45 a month it's not a bad price.