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.

Hello World, Where Have We Been?

Hello World!  Welcome to the relaunch of my personal site.  I guess with every relaunch, one starts anew so let me go over what I’m bringing from the last site.  My old about page talked about my history, my hopes, and my dreams but now almost 3 years later, I’ve felt that it hasn’t been truly realized.  During my sojourns, I’ve come across many changes.  Some of which have helped immensly and some of which set me back.  So I decided to drop everything and start fresh.

The focus of the old site was to be a project hub geared toward my interests in sound, programming, and artificial intelligence.  There really wasn’t anything else I had in mind for the site.  I rolled my own simple blog app but failed to add content on a consistent basis.  Many of the projects ended up just being ideas.  The logos were hand drawn and the site design was all my own.  I really built it from the the ground up.  For some reason, I just stopped working on it and became satisfied with the idea of thinking about working the site.

Bouncing around those 3 topics produced maybe a sprinkle of actual work.  I whipped up some Java classes to play some Pink Floyd MIDI songs, I dabbled in some Flash, and really didn’t research anything in the AI field.  All I really had was project ideas.  Some time ago, I realized this and implemented the Gettting Things Done (GTD) method of task management.  The book is great and I recommend it to anyone who is overwhelmed.  But as I have learned again, the most important part is to actually get things done.  One can spend hours upon hours reading and implementing productivity and still not be productive.

I sometimes fall in love with idea of having something, whether it be a great guitar lick, knowledge in a language, or even a certain body type I wish to fit.  A samll part of that is who I surround myself with, but for the most part it’s habits and behaviors I’ve had with me growing up.  Scan through the years and all you see is fragment ideas that fail to reach a whole.  The GTD method and many of the productivity blogs around the web warn against that dangerous habit.  It just is sometimes hard to admit when you fall into it yourself.  Then, about 2 years ago, something changed.

A series of events took place to lead me to change how I view my life.  Most of my childhood and adult life, I have always been overweight.  Like orca-fat.  Well, that one thing happened.  I believe, especially today, that there is that one thing that leads a person to make a major change.  What’s mine?  I’m not gonna tell.  But what I will tell is that it started a two year process of losing about 70 pounds of weight.  I had one big goal and accomplished that by making small goals.  Set backs happened, lull times came and went, but I was persistent.  It was tough, but I lost the weight.  And I learned so much from it.  This is how I’m appraoching this blog.

What better way to approach a relaunch then to start with the simplest of programs?  Hello World!  The phrase first showed up back in 1972, but with each new langauge, with each new system, with each new software it is the first phrase one would see or use.  Hello World is an announcement to the world that whatever domain has arrived.  Before, I hand coded my own site.  Now, I rolled the latest WordPress to focus on the real projects at hand.  Guess what the first default post for a WordPress install is?  With that, I am now saying:  HELLO WORLD!

It’s a new beginning here at hoketronics.net and it will seed in its simplest form with this post.  As time passes, I will germinate this project in the hopes of growing it into a solid, mature plant in the grand garden of knowledge.  Before, I locked my interests down to certain topics and neglected its growth.  Now everything is in the open.  The template for the WordPress theme is from thematic.  It’s simple and straightforward.  Much with the growth of the site, the growth of the template will be its reflection.  But that’s only the beginning.

The direction of the site will lead me wherever my mind takes me.  I have a great passion for technology, music, and anything creative.  This site will exhibit that and for the first time, nothing will be held back.  I still am interested in many of the topics from my old about page, but now I’m no longer afraid to expose any lack of knowledge in those areas.  After all, I’m starting all over.  I’ve hit my one thing.  HELLO WORLD!