Sunday, January 11, 2015

Install SouceCodePro to Windows 7

Spent an hour figuring out how to install the Source Code Pro Font ( without building from source for Windows 7 (should also work for Windows 8).  This is an open source software developer's Font which I had never heard of before reading IntelliJ IDEA Essentials.  I haven't started using it much, so I won't weigh in with my opinion yet, but I will document how to install it.

  1. Have git installed and available on your path
  2. Open up an command prompt window (CMD.exe or cygwin's Mintty.exe)
  3. Create a directory where you can clone the Source Code Pro project to and change directories into it
  4. Clone the repository branch with the following command 
    git clone -b release .
  5. Open a Window's explorer window to the folder where you checked out the project
  6. Change into the "TTF" directory
  7. Copy all of these files (*.ttf) files using Windows explorer to C:\Windows\Fonts\
Windows explorer will treat the copy as an installation and take care of the appropriate OS level associations for enabling the fonts.  

Monday, January 5, 2015

Case Study

I'm developing a case study to tackle in my personal time with a few personal development goals in mind.  I'm currently working using Java 6 which has been end-of-life'd and need to brush up on Java 7/8, Java EE 7, GlassFish, and I'd like to learn some about Android development as well as IntelliJ.  It is my hope to touch on all of these while tackling this case study.  In addition, I will be using my Amazon EC2 cloud instance to provide the services.  I'm also debating on purchasing an SSL cert to really drive the service home.

The case study I'm mulling over is putting together a simple list management server that allows cross-device sharing of the lists.  Think grocery list/checklist application.  I'm well aware there are a thousand out there, and some of them are perfect for what I need already, but I'm not doing it to re-invent the wheel.  I'm doing it to learn.  At this point, I can see using Java 8, with Java 7 EE, deployed on GlassFish, built using the IntelliJ IDE, on my Amazon EC2 instance.  It will touch on server security, GlassFish administration, data security, and then I will develop an Android application to provide the UI that the server's REST API supports.

I'm still designing it (both in my head and on paper) and figuring out what features I want to put into the service.  I'm also brushing up on what open source UML applications there are out there to support documenting the plan.  I'd like to be able to treat this as a professionally developed software for my resume and portfolio, with real "customer" requirements, requirement documentation, API documentation, and security.  Hopefully over the next few months I will have documented my approach on this blog, what I have learned, and then I will provide both the source code and answer any questions.

Monday, December 23, 2013

Nexus 7

I picked up a new Nexus 7 for my own little Christmas gift.  I have an Amazon Kindle Fire and find the Nexus execution to be a lot smoother, with a better default browser and much cleaner access to Android applications.  It really bugs me how much the Kindle limits access to so many applications.

I've got my Twitter, Blogspot, and LinkedIn applications installed and ready to go with little to no headaches.  Wish the Kindle was this easy.  Well done Google!

Saturday, March 31, 2012


So, every now and again I review utilities for my Windows PC that I use and see if something better has come along.  Sometimes I find it online, sometimes by asking.  Here are some of my most heavily used utilities that I require on any PC I'm going to be developing on:

  • 7-Zip - - A great zip utility supporting a variety of formats, including tar, tar.gz, zip, and more
  • Notepad++ - - Beats the old notepad and adds support for regex replacements, search in files, and a lot more.
  • Launchy - - A Windows utility that allows you to essentially launch applications with a hotkey and a quick search.  Recommended to me by a coworker, and I'm not looking back.  Very strong catalog and if it is missing something, you can add a shortcut to the programs menu in Windows, right-click launchy, select rebuild catalog, and boom! 
Finally, after watching a coworker manage his windows, it dawned on me that I was missing a severely needed tool.  I needed a Windows organizer, and he had a great one.  I have added to my list of utilities.  With a simple click combination I can have a window move to the top center, and another click I can move it to the bottom right.  Sitting in front of 2 24" monitors, I just know this is going to come in very handy.

Thursday, March 29, 2012

Apache ServiceMix Integration

Pounded out an Apache ServiceMix Camel-route integration in about 11 hours of work today.  Not much existed before I got my hands on it.  Now, we have separation of ownership and can pull more developers into more tasks.  Having a framework that enforces a component-centered project structure is very nice to have when working with a remote team, eight hours out of your local time zone.

My new developer battle cry?  Go Camel!  Go ServiceMix!

Tuesday, March 27, 2012

Moving To VM Workstation

I've been getting by with VM Server for quite some time now.  They discontinued it, but it still works on Windows 7.  With the update to IE 9, all the plugins finally stopped working.

Sigh, time for my first VM Workstation purchase.

Monday, March 26, 2012

Appreciate The Docs

I've been messing with ejabberd these last few months for a big project I'm playing a role in.  The more I use it, the more I realize just how poorly it is documented, and I get how easily things are overlooked.  Essentially, to know how to use ejabberd, you had better get a pretty solid grip on Mnesia.  Since I didn't really account for learning a whole new language/paradigm/architecture, I'm pretty much relying on the mailing list.  I'm very appreciative of those who help a new guy out and it makes me realize how little I have been able to give back to the community.  I guess at the end, I'm hoping that with starting to blog again, I can also start to give back to the community, albeit a small piece at a time.  Here goes my part.

I have been working on clustering support for our deployments of ejabberd.  Particularly, I have been trying to get the servers in our DMZ void of any and all password validation for users and the servers behind our big firewalls to be the datastores.  Today  I learned that while we had four nodes working, one of the rear two nodes was only able to start up if the other "master" was started.  This is a poor solution for failover and creating a  .999 deployment, so it had to be researched.  In the end, we discovered that ejabberd is built as a list of features built on Mnesia, and if a database is stored as RAM only, then the features will wait until the remote node is available.  The discovery which directed me to the solution was a simple mailing list post:

So, lesson of the day, if your ejabberd server is starting, but none of the ports are listening, and you're not getting crash/error reports, the features are probably waiting for one of your remote nodes storing the database to come up.  The fix is to configure your databases to mirror one another, particularly in the "RAM and disc copies" selections of each table.