Purpose and Work

As a software engineer, I spend a considerable amount of time every day trying to determine which solution should be used to solve a particular problem. It did not take long from the start of my education in Computer Science to start asking questions of problems that went far beyond the daily situations I’d encounter. Where most students would ask “what is the latest way to do this thing I want to do?” or “how could I optimize this functionality?”, I would ask questions of the “why should I be doing any of this?” variety.

“Why” questions in the technology world are generally pushed outward to a few predefined and limited answers and generally boil down to:

  1. For personal satisfaction.
  2. To help someone accomplish something faster/easier.
  3. To help someone accomplish something new.
  4. For profit.
  5. Stop asking dumb questions.

Certainly we can all grasp the answers and understand them, but do they really answer the question of why we ought to make any technological progress? I don’t think so. Personal satisfaction can be had in other ways, some of which are better at personal enlightenment or edification. Helping people do something faster or easier is just as often a creator of problems as it is a solver of one, and it is certainly not inherently virtuous. Helping people accomplish something new is again not inherently virtuous, but is inherently more dangerous that just speeding up or simplifying an old activity. Profit is the hardest to argue with, but profit alone is not morally virtuous; it is on its own a neutral concept.

This is not to say that I oppose creating or inventing new technology as a matter of practice. I undoubtedly wait longer to adopt a new piece of technology than most and often never do (I refuse to own a smart phone), but it is not my rule to hate technological advancement by any means. I simply don’t find value in a constant pursuit of it for a couple of reasons. First of all, I believe the highest activity to which humans find their natural end is the knowledge of God and molding of oneself to this fact. I believe the second highest activity is in producing, raising, and teaching the next generation. Neither of those things are made easier by technology, but are in fact made much more difficult because of distraction and misinformation. I think of the myriad pieces of false information online against the abundance of knowledge in books that no one reads anymore because they are not accompanied by interactive illustrations.

The second reason I don’t value this pursuit is that it is exhausting far beyond its reward. Take smart phones for instance. Smart phones provide a number of useful features. At times, I’ve taken advantage of those features on the phones my friends own. The technology behind smart phones, however, is constantly changing, and phones are outdated within a year, sometimes within six months. The new features never transform the phone itself, but if you want to be on the bleeding edge of technology, you have to upgrade anyway. What you’ll receive for it is usually not worth the price or the time, let alone the advertising we all endure. Not worth it, that is, if by “worth” we mean more than entertainment value.

These two facts often contradict my profession; a profession that demands a pursuit of the latest and greatest technological advances. I don’t have a problem learning new technologies or developing new tools. My issue primarily lies in the long-term aspects of my work. Despite all the day-to-day interesting problems which require solving in a software engineering position, the question of ultimate purpose must always be asked. So far, the only long-term motivation for staying in a software engineering position that I am aware of is the financial benefit and the intellectual stimulation. As to the two highest ends of my existence – the pursuit of God and the creation and expansion of a family – it is the financial benefit that is most important, while the stimulation simply keeps it interesting.

I am still working through the implications of the contradiction and will continue to write on the topic. I think it is important considering the technological aspirations of our era.

Windows 8 – A Semi-Educated Review

Windows 8First, a small condition on this article: While I have a Computer Science degree and have spent far too many hours using a computer over my relatively young life, I am by no means fascinated with the latest and greatest toys, software, or software toys. I see computers as a(n often overrated) means to an end; one that is usually not sought after in the glamor of the technology industry and their conferences, magazines, and websites. It is the end that matters, and the end is what most of my blog is dedicated to, so I’ll let you search about if you are interested. Now that that is out of the way…

I believe I was five years old when I started using Microsoft operating systems, starting with DOS, moving to Windows 3.1, then Windows 95, 98, XP, Vista, and then onto 7. I’ve missed a few versions in there, but I don’t think that matters too much; I’m familiar with the products.

Windows 7 has been my favorite incarnation so far, featuring the library system, a sleek user interface, speed improvements, snap-to-edge windows, and a number of other niceties that make using older versions of the Operating System frustrating. In the last days of the “Buy Windows 8 while it is $40!” phase of Microsoft’s advertising effort for their new operating system, I purchased a copy to experiment with. Almost a month later, I finally got around to installing it. Because I wanted to install it on my primary partition alongside Windows 7 and allow a dual-boot, I shrunk my primary partition and dedicated 50GB to Windows 8. This involved temporarily turning off the paging file, the system restore, hibernation mode, and a number of other features that should probably never be turned off. I defragged the disk, created a new partition, and then reactivated all of those services.

Windows 8 installed smoothly to the new drive in under an hour. I lost track of how long it was, but I didn’t notice the length. A shiny new boot screen greeted me to have me choose between Windows 7 and Windows 8, and I chose the latter. I appreciated their willingness to let me continue using the old operating system while test driving the new one. Upon loading Windows 8, I discovered why they might have that willingness. The new operating system is entirely different from previous versions of Windows. The Start Menu has been turned into a Start Page, complete with new buttons, clicks, and menus to learn. I call this post a “Semi-Educated Review” because I only semi-understand all of these new features and quirks.

The new Internet Explorer is pleasant to use, though I had to learn that right-clicking allows you to view open tabs, as it wasn’t intuitive. I had to learn that the Windows key brings up the menu (something I ought to have figured out quickly, but did not). I had to learn that programs continue running even when you close their windows. I had to learn that the desktop has a different set of programs running than the Start Screen, something I have yet to fully understand. Primarily, I had to learn.

I enjoy the ease of use and the design. I’m not sure how I feel about perpetually running programs without the easy ability to close them. The ease of access to programs is great. The difficulty in categorizing items at first was frustrating. I absolutely love the speed increases and the boot time.

The plan now is to use this operating system fairly frequently for a few weeks to see if it is worth switching over for non-development stuff (that is, fun stuff). So far, I’ve been pleasantly surprised and enjoy it. If you can do it easily, give it a try for a few days and you might like it too.

Science and Progress Wrongly Defined

The modern world has a particular obsession that I’ve never quite been able to figure out: that of worshiping science and progress. Science has a particular definition, and if properly understood, is not something worthy of worship. It is merely the empirical study of objective reality (which, of course, requires a presupposition of objective reality to even make sense).

Progress is typically left undefined. Despite the fact that a modern liberal will balk at the use of “virtue” and “morality” and “ethics” (and even “marriage”, which is a sign that we are most certainly witnessing the death of a culture), the liberal seems to envision “progress” as a term by which we all mean the same thing and upon which there can be no debate. Despite this, there often is very little agreement about what the term means or why it ought to mean anything in particular.

Even science is typically defined incorrectly by moderns and postmoderns. They often mean “technology”, which is a branch of applied science typically called engineering. Going back to the original use of the word, “Science” comes from the Latin for “Fact”, while “Art” comes from the Latin for the practical application of that fact (hence “Artisan”). We’ve gotten past the age where artisans were the purveyors of practical scientific application, but engineering is still a similar enough concept.

However, in misinterpreting what science is and filling that void of knowledge with the meaning of technology and engineering, the most important aspect of all about science is lost; that being the philosophical foundations upon which science rests and to which ends it must pursue. This pursuit, when properly understood, could be defined as scientific progress. It simply means a more complete picture of understanding of the natural, empirical, observable world. Science, after all, is limited in its scope, and all advances performed as practical results in engineering are also limited. To have any value, they must be understood with a coherent philosophical framework. Such is not usually the case.

Because of this, what is often mislabeled as “progress” today is more definitively just faster and smaller computers with larger screens and better user interfaces. What makes this “progress” is the same thing that makes homosexual marriage “progress”; it is modern. It is hip. It is trendy. The modern notion of progress has more to do with what is most popular (even if that thing itself is unpopularity, as Napoleon Dynamite demonstrated) and less to do with any traditional measure of progress.

And so, we are in wonder at things that ought not give us any such sense of wonder, while we neglect to watch sunsets and read old books and understand the character of God Almighty. We are in wonder about the latest electronic device that will last us a year before they release one with a bigger screen and nicer camera. We are in constant discussion about how we will spend our money on new toys and nicer cars and faster network connections. We spend not a moment discussing why any of those things are helpful and not a moment pondering the implications of a culture saturated in consumerism. We spend not a moment fearing what catastrophe will happen in a culture at war with its own heritage and history. We are too busy making sure we are on the cutting edge of whatever catastrophe takes place with our cameras in hand and our minds divorced of every good thing that has been done in history.

Glowy Thing Pong

The assignment? Create something in C++ with an ancient graphics library. It had to have input and a menu system and there was extra credit for motion.

I opted to create a souped up Pong game.

Glowy Thing Pong is a game where you control a paddle of various colors, launch a ball of various colors, and try to destroy little Glowy Things of various colors. The rules are simple; the ball you have only destroys Glowy Things when it matches their color. The ball only changes color when it hits your paddle, at which point it takes on whatever color the paddle is. The paddle changes colors by pressing the number keys 1, 2, and 3, or by clicking on Glowy Things.

There is an absurdly long timer that keeps score for you. When the ball is lost to fates unknown by hitting the bottom of the screen, you get a penalty. Right click any time to pause and load a menu. Left click to shoot the ball.

Any questions? That’s what comments are for.

Have fun!

GlowyThingPong

Recursive Copy Tool

In the process of fixing my fiance’s laptop, I backed up all of her data and then reformatted her hard drive to reinstall the operating system. Any Windows user knows the joy of a freshly installed OS.

Somehow, when we looked at the backups, we noticed that none of her music was present. I had copied her entire User directory, but the tool I used, in its infinite wisdom, decided against copying music as if we had never really intended to copy it in the first place. It then proceeded to not tell us it didn’t copy it, making sure we felt no remorse with choosing the utility in the first place.

So, after attempting to recover her files, I wrote my own. “RecursiveCopy” is a very simple command line tool. That means you copy the file anywhere, go to your command prompt, navigate to it, and run it. It takes a source directory, a destination directory, and a file type. Other tools that do the same thing probably exist but I didn’t want to bother with them. This tool copies all the files from one directory to another of a particular extension. Simple to use, pretty fast, and useful when I’ve had to use it.

RecursiveCopy