Sunday, December 29, 2013

MacVim Won't Start...... Hmmmm

Being a good Mac user, I applied the recent updates to my Macbook, updating it to OSx 10.9.1.  I tested a few things out and thought all was ok, until I attempted to open a file with MacVim.

I sat there, patiently waiting for the app to open, and waiting and, well, you get the idea.  I killed the attempt, tried again, checked the logs, nothing.  The only thing I could figure out was that I had just updated.  So, to the Googles I went.

It didn't take me too long before I found this link, where the exact problem I was having was described.  On that page, you are provided a link to download the newest version that works on 10.9.x.

I don't know if any of you have been experiencing this same issue, but if you have, please enjoy this solution.

Happy New Year!

Wednesday, November 06, 2013

Get Away From Adobe Products

Adobe revealed back on October 3rd that their network had been infiltrated.  According to one article, 39 Million accounts were compromised.  On top of that wonderful news, Adobe also revealed that the invaders were also able to grab the source code to pretty much all of their products.  This is pretty insanely scary on many levels.  With the source code, one could find vulnerabilities or, even more unscrupulous, they could input vulnerabilities and release the version into the wild via torrents.  Adobe's products are widely torrented and it wouldn't take much to get people to unknowingly adopt the hacked versions.
The company that I work for has completely purged itself of any Adobe products, and from what I hear, there is a global ban going on in a plethora of companies.  My suggestion is to follow suit.  You don't need Adobe's products where there are other viable (some free) options.  I don't use anything much beyond Adobe reader and their flash player.  I have long ditched their reader anyway and gone with a free reader.  As far as the flash player goes, I am researching a viable option as too many sites still require flash.  Hopefully we will see a change in those sites as well.

Sunday, November 03, 2013


I was perusing Hacker News this morning and came across an idea called Progvember.   The idea is taken from the concept of National Novel Writing Month (NaNoWriMo as it is known to those who like to put pen to paper and tell the magical story ideas that flow through their active minds).

For the month of November, NaNoWriMo members work diligently to write a novel in 30 days.  The goal is 50,000 words put to paper (electronically or physically) during the month of November.

Progvember is the brain child of Andy Still and the idea is to create your application/web site/app in 30 days.  I visited the website and kind of like the way that you can 'register' your project in a hack-a-thon type of manner, and even have the project open to people helping you out.

This is a short post, but simply meant to just let you know about this interesting and cool idea.  Here is hoping that it takes off and keeps going.

Saturday, November 02, 2013

A Guide to Installing Java on Ubuntu 12.04

I recently re-installed my desktop and switched from Debian to Ubuntu (personal choice for my own reasons).  Doing a fair amount of Python lately, I have gotten to really like using the Community Edition of Pycharm.
Unfortunately, while Pycharm is pretty sweet, its also written in Java (not a favorite of mine).  So, with that tidbit of info, I will now go through the steps necessary to install and setup Java on Ubuntu 12.04.

The first thing your going to need to do is download the JDK from Oracle. After you download it, you will need to unpack it (below I used the name of the version I downloaded):

     tar -zxvf jdk-7u45-linux-x64.tar.gz

After you unpack the tarball, you will have a directory with the software in it (mine was named jdk1.7.0_45).  You will want to move the new directory to a usable location.  I moved mine to the /usr directory as such:

     sudo mv ./jdk1.7.0_45 /usr/

You will need to make sure to do this as sudo, as root owns /usr/.  

Next, you are going to want to set the JAVA_HOME variable, which is done in either your .profile or your .bashrc in your home directory:

     export JAVA_HOME=/usr/jdk1.7.0_45

Just for giggles, I added a path to the bin directory where the java executables are located.  To do this I simply edited my .profile and added "/usr/jdk1.7.0_45/bin" to the PATH variable.

You now have to execute the following:

     sudo update-alternatives --install "/usr/bin/java" "java" "/usr/jdk1.7.0_45/bin/java" 1
     sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/jdk1.7.0_45/bin/javac" 1
     sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/jdk1.7.0_45/bin/javaws" 1

Now, create a plugins directory for Mozilla:

     mkdir ~/.mozilla/plugins/

And create a link to the necessary file:

     ln -s /usr/jdk1.7.0_45/jre/lib/amd64/ ~/.mozilla/plugins/

After that, your JDK is now installed.  Just a bit of informaiton. Some people have said that you don't need the "update-alternatives" lines in order to complete this, just the path addition.  Actually, for me, it did not work until I did those links.  

Enjoy and hope it works for you too.

Thursday, September 19, 2013

Small Side Project

The other day, while on lunch, I decided to write a quick bash script to determine the IP of my machine.   For the first incarnation of this script, I chose Bash as it is just a quick and dirty way to achieve my goal.  
Well, after working on it for a little bit on my Linux machine, I looked to my right and saw my Macbook sitting next to me.  Being a *nix backed OS, I decided that the script also needed to support it, as well.  What the heck, why not throw Solaris into the bunch as well, seeing as I also have access to a Solaris machine.
Once I decided to take a break, I created a new repo up on Github to host the project, created a license and readme file and got my script checked into the repo.  Shortly after I put up a facebook post about the new repo, a colleague downloaded it, tested it and quickly posted a suggestion for improvement.  
I will be the first to admit that my initial design was a bit short-sighted and didn't take into account interfaces that were not active.  
I quickly went about a re-design to determine which interface(s) were active, and report their IP's.  After getting the script working as hoped on Mac, I turned my attention to Linux and Solaris.  I quickly realized that when dealing with servers, you will most likely have multiple active interfaces, including virtual (vnet) interfaes. 
Sitting here writing this, I think I may simply report each one, and also print the interface name in the output, which is currently not done.  The code is a work in progress, so if you are interested, please stay tuned and watch the updates flow.  
As always, if you have any suggestions for script improvement or if you find any bugs, please open an issue through the project on Github.  

Thursday, September 05, 2013

Effing ARGH!!!!!

Let me just say how painful it is when you have been pouring tons of time into a pet project that you feel strongly about, and that you had a "grand plan" for, only to literally stumble upon another site that has already implemented the idea.  ARGH!!!!!

My idea was to be a nutritional information site.  It would cover not only standard foods and processed foods from your grocery store, but also the food at restaurants.  I wanted this thing to be the one-stop-shop for anyone conscious about their health and what they eat.  

One of the main reasons this is near and dear to me is that I am a Diabetic, and earlier this year changed my entire eating style to be Paleo.  Its been an amazing journey thus far and I wanted this site to be the nutritional information bible.

Well, while downloading restaurant nutritional information last night, I noticed that one of the PDF's was not hosted at the restaurant's site, but instead another site all together.  I went to the root url only to discover that this site, where the info was hosted, already provided what my site was going to provide.  And on top of that, it was pretty slick.  A friend suggested I use their data as my source and make a better site, but to be honest, it wouldn't be right.  Yes, I am one of those honest people and believe in doing the right thing.

You can say 'C'est la vie'..... move on..... whatever you choose, but it doens't take the sting out of the fact that I feel robbed and completely screwed over having been totally beaten to the fully implemented concept.  

I am going to just have to ensure that the next idea that I have gets to fruition quicker, before someone else does it.

Monday, September 02, 2013

Do My SSL Keys Match Up?

Recently, at my day job, we had an issue where the SSL certificate that we had in place for one of our URL's, was expiring and needed renewing.  One of my colleagues had renewed the certificate, but did not have time to install it immediately.  So, the day that its expiring we had to do a bit of scrambling to get it replaced on the server.

So, having been given this task, I logged on to the server and noticed that the public key, signing keys and private keys were all put into the same directory.  Cool, I don't have to figure out where to put them.  So, I downloaded the certificate bundle from our issuer and unzipped it.  It was then that I realized that the bundle only contained the public key and the signing certificate(s).  

So here I am, with the new key and no private key.  Plus, looking on our issuer's site, there was no way to tell what private key was used.  Thus became my quick search of the Googles to determine how to compare a public key with a private key to see if they are a pair.  

If you have manually created SSL certificates before, then you should already (hopefully) be familiar with the openssl software.  Thankfully, that software can also be used to pair up public and private keys.

In order to match up two keys, you need get some output from the keys themselves.  On the public key, you want to run the following:

openssl x509 -noout -text -in cert.crt
You will then want to run the following on the private key that you suspect may match up:

openssl rsa -noout -text -in cert.key
As part of the output of both of those commands you will see a section called "Modulus", which looks something like this:

Modulus (4096 bit):

What is really nice is that if they are the correct pair, the modulus of both keys will be identical.  To finish my anecdote regarding work, I got lucky and the first key that I chose (which was the private key previously used), ended up being a match, proving that they new key was generated using it by our provider.  

I hope this has helped someone find their long lost matching keys.  

Saturday, August 17, 2013

Easy CD Ripping on Mac OSx

As we all know, there are a plethora of applications out there to rip music cd's to mp3 format.  All of them have some kind of learning curve, as well as learning to configure them properly, not to mention, some of the better options will cost you a few $$ out of pocket if you want to use them. 

In this post, I will show you how to easily configure your iTunes software to import a music cd and convert it to MP3 on the fly.  The only limitation that some will skoff at, is that it only seems to support up to 192kbps.  For me, this is not an issue as I tend to use 192 by default.  I have found the higher rates above 192 don't always play or are sketchy when playing, but that's just my observance.

For these instructions, I am using iTunes 11.0.4 on OSx 10.8.4.  If you are using something different (including Windows), your going to have to figure out where to go.  Hopefully it won't differ to greatly.

The first thing you will need to do, after putting your cd in you Mac and selecting it from the source drop down menu, is to go to iTunes->Preferences in the top menu.   When the window appears, you will need to be in the General tab. On that screen, look for the section called "When you insert a CD:"  Here is what it looks like.

Once you found the above, you will click on 'Import Settings'.  The new window that opens will look like this:

In the above, you will want to set your settings as shown.  The 'Import Using' setting is important for the conversion to MP3.  After changing the settings, hit "Ok' to save them. 

When the tracks are converted to MP3, iTunes will save the files to the designated 'iTunes Media folder location'.  You can find out what this is, and even change it, on the 'Advanced' tab.  Once you are done, hit 'Ok' to go back to iTunes.  

The only thing left is to click on the 'Import CD' link in the upper right corner of the iTunes window.  This will begin the import and conversion of the files.  Believe it or not, its not that awful and only takes a several minutes per CD to rip all of the tracks.  

I hope this tutorial provided what you needed to rip mp3s with iTunes.  

Issues/Bug Tracking Software

I recently started working on a software project during my companies recent Hackathon.  While I ended up getting a good chunk of the application completed (ok, the initial configuration script and the first part of the app itself), I see an immediate need to track both needed enhancements and bugs/issues.

I did a quick search and found a Wikipedia page comparing the different issue tracking systems out there.  Some of my requirements are:
  • It must be FREE!
  • Support for git (as that's what I am using for my versioning)
  • Python based (because Python rocks!)
  • Not hosted.  I want to host it myself.  ( I'm a control freak)
  • An option for OpenID login would be sweet.
  • Ability to lock it down securely.
I know, its not a terribly long list, but its not short either.  Unfortunately, my options are quite limited, due in no small part to my Python requirement.  After looking at the options, I am currently looking at Trac (quite popular) and Apache Bloodhound.   Before you say it, Launchpad is python based, but unfortunately appears to be a hosted solution.  

In comparing the two potential choices, I have decided to go with Trac.  I did some research on their site (and through the Googles), and there has been plenty of additions made to the project.  For instance, someone implemented pastebin support in Trac using a Python module called ClueBin.  That is SWEET in my opinion.

Update:  Thankfully, I quickly realized something I overlooked in my decision.  That was the need for support for multiple projects.  I know, I didn't list that above, but an issue tracking system that only supports one project is quite tunnel visioned.  Trac claims that people have modified the application to add support for multiple projects, but at the point that I am at, I am in no place to take on that modification.  So, it looks like Apache Bloodhound is going to get my current vote and i will update after I have it installed and have used it for a bit.

Sunday, July 14, 2013

Adding Desktop Spaces in OSx 10.8.x

This is one of those things that is different between earlier versions of OSx and the current version.  To be honest, I find it much easier in today's version than it was earlier.

In the earlier version's of OSx (I am not really sure of which version it was changed), you would go to System Preferences, and under Personal there was an item called "Expose and Spaces", where you would configure your desktop spaces.

Now, with the advent of gestures making it a bit quicker to do certain things, like switching desktop spaces, you can also add desktop spaces.

How?  Using what is called the "view Mission Control" gesture, where you use 3 fingers together and drag them upwards on the mouse pad, you are presented with a display of your desktops and your running applications.  You can drag your apps to different desktops from here.  If you bring your cursor to the upper right corner, a "+" sign will appear.  Click it and it will add a desktop to your spaces.  If you happen to add one to many, or want to reduce the number of desktop spaces you have, then simply hover over the desktop(s) you wish to get rid of and an "X" will appear in its upper left corner.  Simply click the "X" to get rid of the desktop space.

For those that are somewhat new to OSx and are not totally comfortable with gestures and want to learn, Apple has provided some quick videos.

I hope this helped.

Wednesday, June 05, 2013

Setting Up BitTorrent Sync

A New Toy

On April 23rd, BitTorrent Labs announced a new offering called BitTorrent Sync (btsync here after for short).  The project was quickly adopted by users and within 2 weeks, a Petabyte of data had been synced by users, between their devices.  That is an amazing amount of data!

My Issue

Personally, I have been using DropBox for quite some time and have a plethora of files stored in my account.  So much, that I needed to make room for other things that I need to store.

The Setup

I had thoughts of documenting all of the steps that I took to get btsync installed and running on my 2 systems, but in lieu of re-documenting everything, I figured that I would share the tutorial that I followed for my installation.  

While Bittorrent does have documentation on the main site, I found the above tutorial a much better guide to follow for the setup process.

What stinks is there isn't any man page or help guide for the btsync command.  But, thankfully you can do the following to get the usage statement:

  btsync --help

and that will print out what the options are for the command.  The setup is pretty straightforward with very little, on your own hacking (even though there is nothing wrong with a little bit of that.

Thursday, May 30, 2013

"Change My Name Please", begged the Mac OSx Machine

I ran into a small issue where my laptop and my machine at work had the same name (yes, I liked it and ended up overusing it).  When I first logged on to the network at work, my machine name on my laptop was "auto-changed" to have a suffix of '-2'.  I found it odd, but accepted it.... temporarily.

I recently made a conscious effort to fix my naming scheme, and have since done so.  In case you have a Mac and don't know how, here is the command to use if you want to change the hostname of your machine.

First, open up the Terminal app and enter the following:

    sudo scutil --set HostName .local

The portion should be replaced with the new name you want for your machine.

I recommend that you nail down your own machine naming scheme prior to haphazardly naming your machines on the fly.  But in the event this happens, you now have the knowledge you need.

Saturday, February 16, 2013

Frayed...... No more!

I posted a short time ago that I had re-entered the job market thanks to the company that I work for eliminating my position.  To recap, they notified us (my entire group) back in October 2012.  I was given my notice and a termination date in mid January that would terminate my employment in April.

I have to admit that prior to the bombshell they called an announcement, I had been looking around at jobs and had been on a couple of interviews over several months prior.  It was only a casual looking as I was employed.  Once we received the news that casual looking turned to an all out assault into the job market to find my next job.

It took a little while, but I am quite proud to announce that I FOUND A JOB!!!!!!  I was beginning to get in the mindset that I wasn't good enough and wouldn't find anything, but I have to say the two interviews that I went on felt really good.  The company is amazing and still in start-up mode, so its in the process of growing and expanding.

I have 4 days of work left and I will be done with the employer who apparently didn't want us around any more (maybe some day I will expand on that vague idea).  The good news is that I am employed, joining an amazing company and plan on getting my head right into the job.

On a side note, I found out something about the way my current employer is going about their 'moving of positions', that is really just disgusting and underhanded.  From what I found out, if you terminate or lay off a certain number of employees, it must be reported to the Federal Government and counted among the unemployment statistics.  The media then get hold of the news your doing layoffs and that can really worry people and even effect your stock price in some cases.

So what is my current company doing?  They are doing the terminations / position moves in small groups that fly juuuuuust under the Federal radar.  Thus, they can move the jobs and terminate the positions (knowing most won't relocate) and they don't have to report it.  They are actually working to shut down the site where we are, so the fact that they are doing it in small chunks and nobody will be none the wiser that all those people were laid off and the site closed, is just wrong if you ask me.

I just hope that in the long run, the choices they are making as far as staffing to replace many years of talent and experience, come back to bite them in the a$$!  The look at the numbers and don't give a crud about the people and their experience.  It goes to show that in large corporate America, nobody is safe, no matter what.

Sunday, February 03, 2013

Thoughts on Pinguy Linux

Ever since Ubuntu has completely switched to its Unity desktop (which I have to say I am not at all pleased with), I have been looking around at some different distributions.  Some have been ok, some have been quickly removed from my system (mostly for lacking any thought by the person who put it together).

Today I discovered a link to Pinguy Linux while going through the headlines on Hacker News.  A quick read of the description peaked my curiosity, so I downloaded a copy via their Torrent link.  I have to say that it was nice to see my download hit 3.4 Mb / second as the download finished in a matter of minutes.  I then created a virtual machine and installed the distribution into it.

The installation went pretty quickly and I was up and running in only a matter of about 10 minutes.  First impressions are quite important when you are trying to make a difference and this one did not blow me away.

After everything started up, I noticed that there is a dock on the left side of the screen containing folders.  Maybe its me just being picky, but I didn't want it there.  The unfortunate thing is that I couldn't figure out how to get rid of it.  For me, this was strike one. The system status app that auto runs is actually nice, keeping the user informed of processes, ram used, disk space, etc.

The next strike came when I started going through the Applications menu.  While there were plenty of apps for multimedia and such, there weren't any development type apps. I know its not a requirement for everyone, but nothing?  That wasn't the strike though.... it was when I scanned down to the wine applications menu, scanned over a couple of levels to find that Microsoft's Notepad had been installed by default.  Really?  Notepad?  I am on a Linux system that has plenty of editors available to it.  Why on Earth would I want an inferior product like Notepad?  (I say inferior, mind you, as a sign of its lacking any features, not as a slam to Micro$oft).

As I was browsing around, I noticed that the background kept changing.  They had pre-setup a rotating desktop background that cycled through pre-installed pictures. Why?  That takes up system resources that could be used for greater good.  And, when your running in a virtual machine as I am, you haven't allocated a ton of ram to begin with.  So, for me that was strike three.

All in all, if your on a fixed system, not in a Virtual Machine environment and you don't mind some of the quirks and "features" I have described (and your a multimedia geek), then maybe this is for you.  For me though, I am removing it and moving on to the next one.   The closest I have found for a distribution to switch to is Linux Mint.  We shall see though..... we shall see.

Thursday, January 31, 2013

Once more into the fray.....

Not to pull a quote from the movie "The Grey", but it seems appropriate considering my situation.  Back in October, the company I work for decided that my group (and a couple of other groups) needed to be relocated to one of their offices in another state.  To say that we were blindsided by this decision was an understatement.  I mean there were rumors abound for years about its possibility, but nothing ever came of it..... till now.

Seeing as how all 7 members of the team I am on are choosing to take severance (including me), they are losing many years of experience supporting their client facing product.  Four of us have already received our 90 notice of termination, and of everyone in the group, I think that I am the one most actively looking for work at the moment.  Sure, it would be nice to bank the severance, but I have to admit that staying employed and keeping a roof over my families heads is a bit more important in my opinion.

So, I have been actively doing things like learning Python and MongoDB and rebuilding my skills in Perl (which I have only used periodically over the last 3 years, but am getting right back onto that bicycle).  I am hopeful that one of the interviews that I have had (and am going to be going on) pans out as I really want to keep working.

So, at this point I have 75 days left to find myself a job.  Fingers crossed!

A Moment Of Regret

Quite a vague title for a blog post, I know.  Some of you are probably thinking, "What happened?  What did you do?".  I was thinking the same thing recently and am still kicking myself a bit.

I have a VPS(Virtual Private Server) that I have rented online for the last couple of years.  Its mostly a playground where I can do development for projects.  I have had a yearning to get a website up on it and maybe advertise my coding services, but with everything that's going on (especially as of late), I just haven't had the time to do that.

Anyway, I digress from my point.  I run Ubuntu Linux on the VPS and about 3 1/2 weeks ago I logged on to do some stuff and tried to install something through the apt package manager and was presented with some really funky errors.  Thankfully I had seen the errors but once before and they were those tell tale errors that say, "your distribution is flipping old and you need to UPGRADE!!!".  

So, I backed up my coding and my home directory and even my web directory where I kept things like my wiki, which had a TON of nice docs that I constantly referenced.  I then proceeded to attempt to upgrade my version from the command line, but was met with some other errors which puzzled me.  A bit of research on Google still had me puzzled.  Since I had to get some coding done, I decided to do a full re-install from the VPS control panel.  After it completed, I logged back in, uploaded my web directory, re-setup things like Apache, MySQL, PHP, Python, etc., configuring as I went.

I got my web server working and attempted to go to my wiki as I needed to reference something and that was the moment that stopped me.  I realized that in my rush to back everything up and get things re-installed, I had backed up my wiki software yes, but COMPLETELY forgot about....... the database.   Yes, everything in my wiki was toast.....gone..... kaput!

So here is a lesson for you everyone, back EVERYTHING up and make sure to not forget your databases.  I am still getting things configured and added, but my wiki needs the most work of all.  C'est la vie!
Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.