Wednesday, December 31, 2008

More snow on New Year's Eve

We got some more snow today. We were going to go out to lunch and then take in a movie in a town about 10 miles away (the closest theater now - there was both a movie theater and a drive-in theater in town when I first moved here 30 years ago). We brushed off the car and got to the Chinese restaurant for a nice lunch buffet. After lunch, we had a tougher time clearing off the car to head to the movie. It took about fifteen minutes to get about two miles down the road so we decided it wasn't worth it to see the movie. We'll just go another time. The snow wasn't really that bad but people must have been rushing home early from work (I'm still on vacation) and caused the traffic back-ups. We only got about 4 - 6 inches but it came down heavy for a while and scared us a bit.

I feel sorry for the folks who had parties to go to tonight or who were hosting the parties. I don't think a lot of folks ventured out. The road in front of our house was pretty empty after the "rush" hour. Here's another picture of our house in the new snow. I'm looking forward to the new year. I'm hopeful that we'll have a better year than last year. I pray for those who suffered hardship this past year that they will have a better year coming up. We had a pretty good year - especially compared to the people in war zones or who lost homes or money or loved ones.

Monday, December 22, 2008

"The True Meaning of Christmas"

The title of this post is in quotes because I'm quoting one of the stories you always see on TV and in newspapers this time of year. Every year around this time, every TV station and newspaper I have ever seen or read has a story about people helping other, less fortunate, people. It's nice to see or read these stories. I like the fact that people go out of their way to help other people. I like the fact that people in need are being helped. I like the fact that we see right then that peoples' lives can be improved - if only for a short time. Then comes the part I disapprove of - the announcer or writer states that, "This story illustrates the true meaning of Christmas."

No, this is not the true meaning of Christmas. What it illustrates is something we should all be doing all year long. What it illustrates is people in need being helped who may be back in bad shape the next day. What it illustrates if that, in a country as rich and capable as ours, there are still people in need and they can only be helped by individuals or small groups who, at this particular time, are willing and able to help those people. The unfortunate people being helped at this time of the year have probably needed help for a long time and will need steady help for a while before they can get back on their feet.

There are other people who are against any kind of organized help for the unfortunate people other than by private groups or individuals. There are people who think that any organized help by a government is bad and a waste of time or money. Unfortunately, many of the people who object to this organized (government in this case) help are Christians. They either feel that the unfortunate people are in their situation because they aren't working hard enough or are being punished for being bad. If the government helps the unfortunate people, they are taking money away from all the hard working people and giving it to people who are lazy or choose to be homeless. I know one guy who, being against any government aid to the unfortunate, said he was more likely than most to put money in the cup of some poor beggar than most other people. Does he think that is really enough? Does he not see that to really help someone, it takes a concerted, continuing effort - something that is organized and not based on the whim of someone passing by?

Well, the true meaning of Christmas is that a baby was born of a virgin in a stable. That baby was conceived by the Holy Spirit and was God with us (Immanuel). His name was Jesus and he was born to give us hope and to show us that God would forgive our sins (we are all sinners, by the way). He was, and is, God incarnate. He said the greatest commandment was to love the Lord our God with all our heart, with all our soul and with all our mind (Matthew 22:37). He also said that the second commandment was like it: to love our neighbor as ourselves (Matthew 22:39). For the passage in context, see Matthew 22:36-40 NIV. If we truly believe that this country and its government were founded on Christian principles, we as a country need to repent of our sins and start loving our God and our neighbors. We need to be helping our neighbors in an organized way. We can do great things if we can work together. If we insist on doing everything our own, disorganized way, we cannot accomplish the things we are capable of.

Saturday, December 20, 2008

First big snow of the season

I'm dating this post December 20, 2008 because that's when we got the snow (actually starting December 19) but this really loaded on December 26.

I know this isn't much snow (6 - 8 inches) in other places but it's a lot to us. Here is a picture of our house with the snow framing it. It wasn't bad shoveling it - until you got up near the road. That's where the snow plows throw all the heavy, watery, salted and sanded snow from the road. It takes as long to shovel the last six feet of the driveway (near the road) as it does the rest of the driveway because the snow is so heavy and there is so much more of it.

You can't see our Christmas tree in the front window in this picture. I'll try to get one at night and add it to the this post later.

[Updated, December 28 with a picture of our house with the Christmas tree "visible" through the front window. Unfortunately, it's not very clear. One of these days I'll learn to take good pictures. You can see that in the eight days since the original post, all the snow has disappeared.]

Wednesday, December 17, 2008

December 17, 1777

One of my favorite places on the Internet is the This Day in History page at the website. It used to be referred to as the History Channel website because it was supported by the television network of the same name. Today's entry made me stop and think. One of the events they highlighted today was that on this day in 1777, France recognized the United States of America as an independent nation. If this hadn't happened, you have to wonder if we would have won our independence from England.

Of course, our winning our independence depended on a number of things. For one thing, the open support from the French depended on our being able to convince them that we had a chance of winning. The huge victory at Saratoga in October of that year allowed that. Also, the fact that Benjamin Franklin was our "ambassador" helped a lot. He captivated the French with his knowledge and his charm. He was able to convince the important and powerful people in the French court that their helping us was a way to get back at the British for France's defeat and losing its North American territories in the Seven Year's War.

It troubles me that some "super patriots" in our present day are often willing to complain about France when they disagree with us and to put down the French as when they insisted on renaming French Fries to Freedom Fries. Yet they are willing to look back at the American Revolution for guidance in how we should be running our country now. But they forget about the help the French gave the Founding Fathers during the Revolution. We wouldn't have won our freedom without the sacrifice and dedication of the Founding Fathers but we also may not have won our freedom without the help of the French.

Friday, December 12, 2008

Working at home

Actually, I should title this, "Working from home". I've had a real awakening. I've had a desktop computer at home since I built my first one from a HeathKit (PC compatible with an Intel 8088 processor) in the 80's. I could log in to the Unix computer at our office at the US Geological Survey and get some work done after hours or on week-ends. I didn't do it a lot but when something needed to be done or I had a sudden thought about a problem I was working on, it was nice to have the flexibility to do that. When I came to my present job, I couldn't do that but I could still bring work home (on disk or by e-mailing it) but it wasn't as convenient. For years, though, our network administrator has set up a Virtual Private Network so that we could log in from home and use the company network. I haven't had a high powered computer at home for a while, though, and didn't think I could ever do that. But recently, I got a new, fast computer with plenty of memory, a quad-core processor, a large screen and plenty of disk space. So, I was ready to install the VPN client and get to work!

When I tried to install the software, though, I got a rude awakening. My new computer was too advanced. The software couldn't run on my 64-bit operating system (Windows Vista 64 bit - it's not as bad as I'd been led to believe). So, what to do now? Was I reduced to bringing home work on my thumb drive or e-mailing it back and forth?

Well, the network administrators had an idea. They asked me to try Log Me In or as it is usually "spelled" LogMeIn, (my first thought was that it looked like a Chinese noodle dish). I heard about things like this where you can access your computer through a Web browser as if you are at your desk. But I didn't think it would work very well. Boy was I wrong. It's really great. It is literally like you're sitting at your desk at work. There is a little delay as you type or click the mouse but, for the most part, everything just works. I highly recommend this. There is nothing fancy to set up and you don't need to have a high powered computer to use it. I do recommend having at least as large a screen at home as you have on the work computer, though. My screen at home is a 24" wide screen monitor while my screen at work is "only" a 22" wide screen monitor.

But everything just works. I didn't have to worry about connecting to the network. I didn't have to worry about setting up a link to our source control system (we use Subversion). I didn't have to worry about installing the compilers (we mostly program in Java and use IntelliJ but I also use CodeGear's C++ Builder and Delphi) or programming utilities we use like installer makers (we use Inno Setup for Windows applications). Even small things like screen capture and hex editors are already set up. It's amazing how many programs and files you use that make working easier or more efficient that you don't think about needing to be installed on a new computer.

Everything was already set up on my computer at work. I have access to everything from my old familiar Web browser bookmarks to our network as if I was sitting at my desk. Our company doesn't encourage us to work extra hours and I don't plan on abandoning my family to put in more hours at work. What this does is to give me the flexibility to work on something critical or to work on something as I get an inspiration. It also allows me to stay home when I'm feeling just a little sick. Normally, I'd force myself to go in. Now, I can still get work done but not infect everyone else at work.

Wednesday, December 03, 2008

The Conjunction of the Moon, Venus and Jupiter

I see lots of pictures around the web of the Moon, Venus and Jupiter when they were recently near each other in the sky. So, I thought, "Why not add my pictures to the mix?" I don't know how it looked on Sunday, November 30, 2008 because it was cloudy here but by Monday, December 1, we had clear skies. I ran out of my office to snap a few pictures just in case the clouds rolled in before I could get home and get my tripod. So, the first picture is a far view of the three object over our office. I found a ladder to rest on but it was not stable and none of my close shots were any good. Look above and to the left of the peak on the front of our office. If you double-click the picture, it should show up full scale.

When I got home, I attached the tripod to my camera but there was a lot of light from cars on the road and the church on our street. Also, we're closer to town and the light from the businesses there drowned out the light a bit. But on the second picture, which is obviously the closer of the two, you can make out the irregularities of the sunlight on the Moon due to the mountains and craters on the moon. The crescent Moon is obvious in the upper left. Near the bottom is Venus and on the right about half-way up is Jupiter. The three brightest objects in the night sky all together as they won't be again (at night) until about 2052. Here's hoping we're all around to see it again!

Tuesday, December 02, 2008

Writing software and building a railroad

There are lots of analogies for writing software. Some people compare it to architecture (is Art Vandelay writing programs on the side?) and others compare it to bridge building. I'm going to compare it to building a railroad in a remote, harsh environment. What brought this to mind is that I've been reading a book by David McCullough called Brave Companions. It is a set of 17 essays on people (and some places) you may not be familiar with but who are important in history. One of the stories is about the building of the railroad across the Isthmus of Panama. As Mr. McCullough develops the story of how difficult a project it was, I started to see parallels between what the builders faced and how a software project is run. Not that we have to deal with danger, disease or hard physical labor but the methods of planning and executing the plan are similar.

First off, there was no support system in Panama for the men (construction workers and engineers) and the machinery (no supplies or repair facilities) so before they could even begin, they had to set up a support base. People had to eat and equipment needed to be sheltered from the elements. Managers like to talk about "building up the infrastructure" and engineers like to talk about building up the "support network" but it's all the same idea - you end up spending as much (if not more) time making things to support the work as you do spending time doing the work itself. In a lot of engineering projects this involves designing a testing system so you know what you're building will work correctly or safely.

Another similarity I noticed was their need to build the railroad so they could build the railroad. This sounds silly but what I mean here is that they used the railroad itself to transport equipment and men to the work area. This involved quickly building a not-ready-for-prime-time track into the wilderness to get rails, ties, ballast (the stones the track rests on), spikes and men that was just good enough to allow a locomotive and cars to run as far into the jungle as possible. Then, in parallel, they would go back and improve the track to bring it up to the level of what the railroad needed to be to operate commercially. We do similar things in our programming. We often write ugly, inefficient code just to get something running so we can test it and to enable us to write other code. Then we go back and make the code more efficient. We add more error checking and handle problems better. We make the user interface look nicer and make it easier to use. One fellow engineer used to joke that when you used the early versions of our software and firmware, it wouldn't run correctly unless you wanted it to work. For example, you had to know that only certain things would work or that certain values had to be entered that would work. Then we would go back and make it more robust.

They finally finished the railroad and it worked well for a long time. It was the most profitable railroad in the world for a long time. They could charge whatever they wanted because there was no competition. Another analogy between the railroad and a software program is the need for maintenance. You might think that once a program is written, it runs forever but that isn't true. The underlying operating system changes. The data the program works with changes. And the people who use the program think of new things they would like to do with the program. A good program is built so that it can be upgraded. Here is an interesting link about the Panama Railroad.

[Updated, Dec 3, 2008: It turns out that one of my favorite blogs, Coding Horror (it's in my list of "Other Blogs"), has a post about variousg analogies used to describe writing software (or Software Engineering as some people say). It starts by listing some of the other analogies and then adds another, programmers as farmers.]