Words of Wisdom (06.30.10)

Written on June 30th, 2010 by Shawn Sparks
  • There’s something to be said for the light rain after a large storm.
  • Some days I feel like I can tackle the world. The only problem is tackling the world takes more than a day.
  • When in doubt, follow the path before you, but when you see an opportunity for a better route, take it.
  • When looking for a particular file suffix, look from the back of the file name.
  • When tracking down cupcakes in a convoluted mess of cubicles, one feels a bit like a rat in a maze hunting cheese.
  • Mistakes are heavier when wrapped in red tape. Hence, by refining the red tape to be a finer material, we can reduce the weight of mistakes.
  • Restarting Windows is like restarting a relationship. It might fix the most recent problem, but the fundamental flaws remain.
  • You know you’ve been working too much when you attempt sign into your personal blog with your work ID.
  • Every line of code in a block should be at the same level of abstraction.
  • If an algorithm dominates a function, separate it into a helper function.

Veni, Vidi, Vici!

Written on April 30th, 2010 by Shawn Sparks

My dear Ellinore gave out on me this winter. I think it was caused by moving in subzero temperatures. The end result was the motherboard bit the dust. Considering it was the oldest piece of hardware in her, I was not horribly upset. It was outdated enough that purchasing something to work with all the other complementary parts was nearly impossible. Modernizing it would have resulted in replacing most of the components. My final decision was to build a wholly new computer.

Hardware had definitely changed since I originally built Ellinore. The best part was the change in price. When building a system one’s self, it is easy to get something more than the average person needs for dirt cheap. Here are the new parts:

I also pulled my two 1TB Sata Western Digital hard drives from Ellinore since they were fairly new and had all my data.

The end result was a computer which has more processing power than I will ever need in a very long time. I might add that I paid just over $1000 by the time the cost of the hard drives is added. This is the reason I build my towers rather than paying more for less hardware from the normal retailers. It supports virtualization that I do not fully utilize yet. Still, the ability to easily run a few guest virtual machines on a host operating system is extremely convenient when tinkering with new setups. It also looks really good on my television in 1080p when I want to watch movies or HD shows on Hulu.

Ultimately, I needed a name. A machine with such power was only deserving of a name on par with a single individual in all of history:

Caesar.

Flow of the Game

Written on March 11th, 2010 by Shawn Sparks

When playing a first-person shooter (FPS), a player cannot underestimate the importance of the flow of the game. It is one of the most important facets of the game to give attention, and, yet, most people do not consciously think it about it even once during the course of a full game. The flow of the game defines how quickly individuals can move about the maps, where they can move, and when they can move. Everyone involved affects it. Spawn locations affect it. Respawn delays affect it. Read the rest of this entry »

Blogging Hiatus

Written on March 1st, 2010 by Shawn Sparks

Last month was the second month in which I did not blog at all in the 20 months I have been blogging. When this occurred to me last night, I just about got out of bed to post something since it was not yet midnight. I respectfully declined and resolved to fix the problem. The past month saw me configuring a new computer about which I still need to blog, getting used to a new job, watching the Olympics, engaging in NHL 10, and simply spending time with friends and family. Read the rest of this entry »

Mounting a VirtualBox Share on a JeOS Guest

Written on January 28th, 2010 by Shawn Sparks

Tonight I needed to mount a share from my host OS to a VirtualBox virtual machine (vm) running JeOS. To get the job done, I had to mix a few different resources so I figured I would make a nice compact guide here.

  1. Create the VirtualBox share. I believe the virtual machine is supposed to be turned off for this step, but I do not know if it actually matters. I did this using a GUI, but it is my understanding you can do it with this command (JeOS – name of vm, share – name of share, /home/your/shared/folder – path to shared folder, backslash – entire command should be on a single line):

    VBoxManage sharedfolder add “JeOS” -name “share” \
    -hostpath /home/your/shared/folder

  2. Install the necessary tools to compile the kernel modules that are a part of the Guest Additions:

    sudo apt-get install gcc make build-essential linux-headers-`uname -r`

  3. Mount the Guest Additions iso. First, make sure it is set on the vm’s cd device. Then, simply run this command:

    mount /dev/cdrom

  4. Install the Guest Additions. Please note the specific file run may be different depending on whether the guest OS is 32-bit or 64-bit. Here is the command for 64-bit:

    sudo /media/cdrom/VBoxLinuxAdditions-amd64.run

  5. Reboot the system:

    sudo reboot

  6. Make the directory which will be the target of the share mount:

    mkdir /home/your/target/folder

  7. Mount the share (share – name of shared folder):

    sudo mount -t vboxsf share /home/your/target/folder

Voila! The share is now mounted in JeOS. I ran this on an Ubuntu 9.10 Karmic Koala 64-bit host, Ubuntu 9.10 Karmic Koala JeOS guest on VirtualBox v3.1.2. For the purposes of my vm, I did not want a compiler left on the system; thus, I removed everything I installed with this command:

sudo apt-get purge gcc make build-essential linux-headers-`uname -r`

Here is the list of guides I referenced in figuring out the process:

It’s Not Real, And I Don’t Care

Written on January 17th, 2010 by Shawn Sparks

Inspiration: “Brick by Boring Brick” by Paramore

I grew up listening to stories about King Arthur, Davie Crockett, and Paul Bunyan. From there I began reading about Crusades, Roman Legions, Samurai, and World War II platoons. I played Final Fantasy videogames and lived in a world that was all my own. I had an active imagination as most kids do. I became enchanted with the ability to mix history into the stories of our fictional media. It made them seem as if there was a chance they could be real. After all, Medieval stories are full of dragons and demons despite being based on factual events. Is it so hard to believe that such a story as Final Fantasy VI could have truly happened with some slight modifications? I know it did not, but the historical traces laced throughout give it the credence to allow our minds to be encaptured.

Read the rest of this entry »

There Is No Spoon

Written on January 16th, 2010 by Shawn Sparks

Object-Oriented Programming is all about conceptualizing real-world objects in our code. However, I find it helpful to keep in mind that the objects we create are simply abstractions. It is simply a collection of instance variables of various data types and functions. Functions themselves are simply a data type themselves whether or not it is in explicit in your language of choice. This means that an object is nothing more than a hash.The result is, with the proper language, a programmer can make objects and classes in his own manner. It is simply a matter of mapping hash keys to their appropriate instance variables and functions.

If you want to take it further, eventually, each composite data type can be broken down into a scalar value. Then a scalar type really is just a series of bits. Your kitchen spoon is nothing more than ones and zeros in the mind of a programmer.

Warrior Scholar Kings

Written on January 12th, 2010 by Shawn Sparks

Many of the greatest kings remembered in the history books or among the stories of the people are known as warrior scholars. They fought their battles, and when they had an opportunity to rest, they studied. Most focused on topics along the lines of politics, economics, and military strategy. However, there were also those with interests in religion, astrology, astronomy, and agriculture. A man with a talent for battle was a scary sight. A man with a talent for battle and a brain for making the battle easy was something to truly fear.

Lately, I have been associating with this image. I recently graduated college and took a short hiatus to get away from everything. It was a nice break including family, friends, Christmas, snowboarding, and videogames. Yesterday, I returned to the working world. I say return because after three internships and a couple student jobs, I do not feel like it is a wholly new experience. To me, going to work is stepping onto the battlefield. My coworkers are fellow soldiers, and the problems encountered in breaking greater service to the clients is the force opposing us. It is where I employ everything I have learned over the years. It is where all the training comes to the forefront.

Then I go home in the evening. Where medieval kings may have played chest by candle light, I dabble in web development and other programming projects. They are miniature versions of problems I may encounter at work. I begin to expose the forces at play and develop tactics to meet them. I spend time reading books and blogs. I watch enlightening shows on the television. You may think all I do is watch sports, but I argue that football relates to far more of life than the local three-day forecast.

Tonight’s agenda is no different. Tonight, I resume reading The Art of War.

Words of Wisdom (12.05.09)

Written on December 5th, 2009 by Shawn Sparks
  • Programs suck because humans are still involved.
  • It really sucks to get an itch on the top of your foot when you are wearing shoes and your hands are dirty.
  • The concept of sleep sucks. We should adjust the concept of work/class accordingly.
  • Never program in MUMPS.
  • “It is dangerous to be right when the government is wrong.” -Voltaire
  • Drama is synonymous with bad team dynamics.
  • 4-3 Cover 2 is the best base defense in football. Period.
  • How many kings could King Kong kong if King Kong could kong kings?
  • It turns out “carpe diem” does not shift to “carping the diem” when going from a simple present to present continuous verb tense.
  • “Survival of the fittest” used to mean the strong ones watched the weak ones die. Now it means the strong ones pay the bills for the weak ones; so, the weak ones do not have to work. Who are the strong ones now, then?

Aspects of a First-Person Shooter

Written on November 22nd, 2009 by Shawn Sparks

With the release of Call of Duty: Modern Warfare 2 now nearly two weeks ago, I decided to put together the facets which determine the quality of a first-person shooter (FPS). Please note there is no direct order to importance here. I am sure I have missed some key aspects, but this is a good starting list.

Lag

If it exists in great quantities, the game will fail. There are no if’s, and’s, or but’s about this. No other feature matters if the game lags. If there are not going to be dedicated servers hosting the games, then there needs to be a quality host selection process. There also needs to be a process to transfer hosts when dedicated servers do not exist so hosts can not kill games because they are getting dominated and want to go cry to their mothers. In other words, when Papasmurf786′s “mother resets his router.” I still say that was exceptionally convenient timing.

Read the rest of this entry »