Nintendo DSi Reminds Me Why I Do This

So floating around the other day, I noticed that Nintendo released another iteration of the DS, this time calling it the DSi.  Way back in the day I grew playing much of what Nintendo had to offer and it’s nice to see they are still pushing the limit while not alienating consumers (I’m looking at you Apple).  Heck they took chances with Robbie the Robot and now they’re pumping out products like the Wii Fit board to appeal to a whole new base.

I guess that’s what I like about technology.  When I was little, I sat amazed and in wonder about how a video game could be so interactive and so much fun.  Nintendo made interacting with the latest in electrical gadgetry an adventure.  They pushed the limits of what we could do both technically and creatively.  It’s what kindled the fire in my belly to get me into this whole shebang in the first place.  I felt working with technology was the perfect convergence of science and art.

Now when I witnessed the unboxing of the device, I could see they joy that I once had unboxing the latest game at christmas.  I’m looking very forward to seeing this baby drop in the United States.  Not just for the playability, but for the chances to homebrew some specific software for it.  What’s great about the evolution of technology is that the kids that grew up with Nintendo now take the time to pull apart devices and program it to their likes.

Think of it.  There’s a camera, a Micro SD card slot, better audio, touch screens, and a powerful processer.  The DSi could literally be the controlling media device for the rest of your appliances.  Did I mention that it also had wireless capabilities?  It tops the race for the most portability against the likes of the iPhone.  Hopefully homebrew pulls through and we see some creative new ways to use the device.

I think most game companies should take a cue from many of the web applications out today and provide an API or SDK for home enthusiats to build off of.  It’s the next step in the evolution of entertainment.  You go from passively watching a screen, to interacting with a screen, to building your own screen for you and others to play off of.  The common thread that pulls it all together is the wonder and adventure of technology.  Go Nintendo!

Java Redux

It’s been awhile since I worked with Java.  Well, more specifically, I last seriously worked with Java around the beginning of the century.  I figured, well why not set it up on the server and see what’s going on nowadays?  I knew that the package install for the Java platform is sticky on linux machines.  So a quick cache search yielded me lots of results, with Iced Tea being the most interesting one.

As I was eyeballing the search results, IcedTea stuck out in my head.  I remembered over the summer an episode of FLOSS Weekly briefly touching upon IcedTead.  Dalibor Topic and Bruno Souza from OpenJDK were interviewed about IcedTea and the satus of OpenJDK altogether.  It was very nice to see a fully open sourced implementation of the Sun Java platform.

OpenJDK is an open sourced implementation the Java Platform, Standard Edition.  Sun just in 2006 decided to open source Java and this year some traction took hold.  IcedTea (and OpenJDK) is the first to pass the Technology Compatibility Kit tests and can claim to be a fully compatible Java 6 implementation.  It showed up on Fedora but I forgot that it was on Ubuntu too.

I went the one liner route and installed IcedTea the quick and easy route:

hokey@tardis:~$ sudo apt-get install icedtea-java7-jdk

Which yielded me a bunch of other recommended packages, which I’ll revisit later, but I was ready to hit the big ‘Y’:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
icedtea-java7-bin icedtea-java7-jre
Suggested packages:
binfmt-support icedtea-java7-demo icedtea-java7-source icedtea-java7-plugin sun-java6-fonts ttf-baekmuk ttf-unfonts ttf-unfonts-core
ttf-kochi-gothic ttf-sazanami-gothic ttf-kochi-mincho ttf-sazanami-mincho ttf-arphic-uming
Recommended packages:
liblcms1 lesstif2 libgnome2-0 libgnomevfs2-0 libgconf2-4 libgl1-mesa-glx
The following NEW packages will be installed:
icedtea-java7-bin icedtea-java7-jdk icedtea-java7-jre
0 upgraded, 3 newly installed, 0 to remove and 3 not upgraded.
Need to get 36.8MB of archives.
After unpacking 117MB of additional disk space will be used.

After installing the package a quick test verified its install:

hokey@tardis:~$ java -version
java version "1.7.0"
IcedTea Runtime Environment (build 1.7.0-b21)
IcedTea Client VM (build 1.7.0-b21, mixed mode, sharing)

It’s nice to get back to my Java roots using something completely open source and Java 6 compatible.  I’ve read up on a couple of things like JavaFX that I play around with and this is a good first step.  Plus, it’s helping me dust some cobwebs that have been lurking in my head for a couple of years.  Who knows?  Once I get knuckle deep back into Java I might turn out some projects or maybe even something enterprise for headquaters.   At any rate, the Java mixes well with my morning coffee addiction and IcedTea mixes will with my afternoon green tea addiction.

Aligning Myself With Subversion Behavior

After working through the development environment portability debacle and relaunching the website, it was time to figure out how to control the customizations I have planned.  There are big plans coming for the site and I want to template the changes for future identity management and blogging prospects.  I really didn’t set much time on setting up a system by myself.  Time for me to re-introduce myself to revision control.

Revision control is the de facto standard way to manage code changes and bug fixes in a project.  From a single developer to a collaborative work environment,  it’s the best way to keep the evolution of a project in steady hands.  With a little effort in between building the project, you can roll back, trace history, and work on new features without affecting the production code.  For what I have planned, I need this kind of system to handle the changes heading toward this current deployment of the WordPress blogging software package.

My first exposure to revision control started way back in college.  My role as a student worker included modifying the content management portion of the college’s in house online course delivery system.  We used CVS as the motor for our revision control.  CVS was by all means not perfect and we had workarounds or hacks to help push projects along, but it was way better than nothing.  A couple of years ago, I felt the need to retrain myself on that but ended up deciding on Subversion as it was an evolution of the CVS mindset.  What ended up happening was a huge distraction of data backups and an implementation of rsync at headquarters.

Before deciding on what software to use, I felt the need to research the topic of revision control to see what changes came about in the last couple of years.  Due diligence is always near and dear to my heart.   I looked at lists of many different types of software.  There was a CVS control system guideline for websites that cnetnews.com follows.  Git was another up and coming software package that Linus Torvalds built which I used on a project at work.  And a Django module strictly developed for website control and rollback also came up in my searches.

After looking over the choices Sunday evening,  I decided to go with Subversion.  The biggest factor that won me over the other methods was the WordPress development team’s use of Subversion.  Another big factor was my previous desire to use Subversion.  What I hope to gain is learning how to use a web server to update and manage code remotely.  This also opens the door for me to try out different IDE’s because of plugin or internal support for Subversion.  Finally, further down the road I want to bang out some code for Songbird and they use a documentation/wiki/code repository framework called TRAC, which uses Subversion for its repository portion.

So this week I’ll start figuring out how to implement Subversion on the website.  I’m not sure how long it will take, but I will report or update on its progress when necessary.   Once I nail down the process for code management,  I’ll finally get to work on updating WordPress for kccollegegameday.com.  Until then,  I’ll pop in and out to pontificate when the urge fills me.

Xampp’ed Up But Turned Off To Portability

Before I rolled out the relaunch, I spent a good month trying to figure out the right kind of development environment for tools the I had available.  I have three laptops but all of the batteries are toast and the motherboard on one of them has gone the way of the dodo.  I convinced myself to develop exclusively off of a big ole Western Digital 80 GB Passport USB external drive.  First step done.  After doing some research I decided on XAMMP to drive my environment.  It was nice but there were some issues.

My real focus for this development environment setup was to be able to plug in the hard drive and code directly off of it.  I work off of multiple platforms at home and at the office.  Almost all of the apps do not have a single application to launch.  I already run some portable apps that support clients in Windows, Mac, and Linux flavors, like KeePass.  XAMMP advertised clients for each platform so I decided to give it a try.

XAMMP is a fully integrated web application development server.  The purpose of XAMMP is to roll out a fully workable, out of the box *AMP stack.  The packages include an Apache2 server, PHP version 4 or 5, MySQL 5, and a torrent of management utilities and open soruce libraries/modules.  There are some differences between platforms for the package set, however.  The beauty behind it is that you can pick and choose what you want and start work within minutes.

At first, I wanted to setup all of the platform packages on the flash drive.  Due to the desire for cleanliness on the drive, however, I tried to install the software locally on all of my workstations.  Most of my time is spent on these machines anyway.  Linux was the easiest to turn out, mainly because it just dropped everything into the ‘/opt’ directory.  I could change the doc and database links and move forward from there.  Windows was also a snap as I could modify configuration and turn services on and off with the included XAMMP control panel.  The Mac OS X client was not so easy.

The installer package for the Mac does not allow for choice.  It scans you computer to see if it’s okay to run on and then drops it straight to the Applications folder.  The folder it installs to is not entirely encapsulated.  When the configuration points to the database files on the flash drive,  the service will crash upon startup.  I’ve already been exposed to issues on lock file management on Mac OS X Server, and the workaround didn’t work for this issue.  The Apple puts the lock file in a directory other than the MySQL default setup.  When I symbolically linked the lock file, the database would start up.  This was not working with XAMMP.

After spending some small time here and there for about two weeks on it, I ended up just letting it go.  Attempts to find out on their forums page led me nowhere.  Also in my research on this topic, I discovered a Portable Apps version of Xammp but it is Windows only.  Not much help there.  Maybe one day the devs on the project will look for better portable support.  Until then, I’m focusing on version management and working off my lil server in my apartment.

I’m still coming to terms with getting distracted on small setup roadblocks.  I really didn’t need to waste the time figuring this out when what I really needed to do was to turn out this blog and other projects.  Struggling with Xammp taught me that sometimes the perfect environment will trickle down from actually working on things first rather than focusing on a perfect setup for work that hasn’t started yet.  Plus it’s alot more fun when you actually have projects in progress instead of dreaming of working on projects.

While We Get Settled In, Let’s Git Down To Business

I’m still working with what to bang out here at hoketronics.net.  Long term wise, I’m looking to integrate some social media profiles I have floating around in the name of consolidation.  Also, I’ll look into implementing Open ID using hopefully some WordPress plugin magic. The content needs to be filled in as well.  Look for some pages to crop up.  Also, I’ll be testing out designs on the fly so if it breaks, please be patient, it will be all good real soon. But that’s for this site.

I’m working on another site, http://www.kccollegegameday.com, to help show my love for college football.  I first turned it out last year when a friend of mine and myself needed a reason to go watch college football every week out at some sports bar establishment.  That idea quickly turned into a website.  By mean quickly, I mean I hit up GoDaddy, registered the name, did the one click install from their scripting site, setup emails/accounts, searched and installed a free template, and blasted out an announcement.  The site could use some refreshing almost as bad as this one does.

Really, it’s just minor ticks that need improved.  I really dig the color scheme but some of the style is just not lining up correctly.  A great example is the bullet points.  If a big point lands, it will center in the middle and look off.  Chances are I’m going to customize the current template, much like this open source base one here.  So look for some additions at that.  There’s also some rotating image header script that’s piquing my interest.

Backend wise, I mentioned that it was a one click WordPress install.  Welp, working with the new release here, I’ve decided to begin work on upgrading WordPress on KCCGD.  Right now, I’m weighing two options.  First, I can roll out the complete package and run an update script to bring the old database/code up to the current release.  Or I can research about using one instance of code for multiple blogs.  I haven’t figured out which one, but will talk about the decision and experience soon.

All of this work needs to be tracked and I’m in the middle of getting back into habit of revision control.  I used CVS way back in the day at one of my K-State jobs and have heard of Git, Subversion, and Mercurial.  I’ve used Git in a limited fashion at work for some Python projects, but have yet to taste Subversion or Mercurial.  More than likely, I’ll be doing something other than Git as a reason to learn new software.  What is the best version control software for websites?  Maybe the first step is to see what WordPress uses for their version control.  At any rate, I’ll be talking about what route I go with that in the near future.  Until then, check out KC College Gameday and let me know what you think.

Spiraled out of the Mind of Mike