10 Years on #WordPress

August 2015 marks ten years that I’ve had a blog on WordPress. My original website started in 1996, but there was no such thing as a “weblog” back then. I called it my “online diary”.

This blog goes back ten years. I had another blog that I was hosting that goes back to around March of 2004 that was running on the .NET blogging engine “DasBlog” (created by Clemens Vasters). I decided in 2005 to switch to WordPress hosting because they would keep WordPress updated with security patches. It was also easier to deal with than self-hosting.

I have had a long and rocky road as a blogger. For a while, I was posting controversial topics alongside technical topics. It didn’t provide any positive outcome for my career, so I stopped blogging for a little while. I then had a short religious phase where everything I posted had to do with the Bible. Now, I’m pretty much back into technical posts with some music thrown in.

I try to avoid sex, politics, religion, and other topics which could be considered controversial. As a Christian, I am aware that I should not be ashamed of my religion, but I don’t think it’s my duty to convert people to my religion. I can only act as an example. And honestly, there are days when I feel that I wouldn’t want anyone looking to me as an example.

Just got an M-Audio Trigger Finger Pro and I like it

Saturday, I went to Guitar Center to pick up the upgrade to Reason 8. I’ve been using Reason 4 for too long and have been wanting the new version for a while. While I was there, I spotted an M-Audio Trigger Finger Pro. trigger-finger-pro-632

It was on sale, so I decided to pull the trigger (get it) and buy one of these. When I got home, I immediately started setting it up. After installing and playing with the software that came with it, I noticed that it wasn’t completely connecting. I was unable to map the sliders and knobs to any functions on the software. It turns out that I simply had to download and install the latest driver. Since I’m using Windows 10 and they don’t have a driver for it, I picked the Windows 8.1 64-bit driver. Once installed, that fixed the issue.

I wasn’t really all that interested in the software that came with it. It was OK, but what I really bought it for was to control Reason. So, I watched a YouTube video that described what you need to do to get it running with Reason. I played around and created a few beats with it last night. It’s got a quick workflow for beats. I used the Kong drum machine within Reason. However, you can also use it as a keyboard input for other instruments in Reason.

The TFP also has modes that map the pads to specific chords and sends those keys to your software. The sequencer is incredibly easy to use. I had a beat created in just a few minutes after installing everything. Once you create a sequence, you can save it to the TFP’s memory. Also, when you hit Record on your DAW (Digital Audio Workstation software), it will send the sequence as MIDI events, so it will record your live performance as any changes you make to the sequence while it’s recording. Or, you can just let it run after creating a sequence and it will record the sequence to your DAW. Since the sequence is all MIDI, you can manipulate it in the DAW and do whatever you need to it. For me, in Reason, I was able to modify the instrument being used and add some cool filters (I really like the new Kangaroo Rack Extension).

Next, I’m going to start working with rhythms as sources for a vocoder and create rhythmic chords. I’ve always liked harmonizers and vocoders. I think they add a futuristic sound to a song (even if they might be overused). An example of extreme vocal harmonization is Imogen Heap’s Hide and Seek.

I’m not planning on being a live performer, so I can’t speak to the capabilities of it as a live performance instrument. However, I saw a pretty cool YouTube video of a guy (Carl Rag) performing live with the TFP.

Overall, I’m really liking the TFP so far. The quality of the hardware is good, it’s solid and doesn’t feel like a toy. The pads are responsive (and velocity sensitive, something the Novation Launchpad at the same price point does not offer). I like having the sliders and knobs on the device, and with 4 banks of controls, I have 16 of each to work with.

So, besides being a drum controller, it’s also working out great as a controller for when I want to automate knobs and sliders in Reason.

What was I thinking when I was 33?

Ten years ago, my blog looked very different: http://goo.gl/reEoEq

Here is a sample of some of the things I was thinking ten years ago:

There are two reasons you get paid

  • You do something that no one else can
  • You do something that no one else wants to

A job is filled with varying combinations of the two.

But, I’ve learned that my true job is this:

Make my boss look good

I believe that it really is that simple.


I was running from myself…

…and he caught up with me.

I cannot deny the source of my salvation.  The harder I try to understand how a universe can exist without a creator, the more I learn that I am on the wrong path.  Lately, God has revealed himself to me as an infinitely awesome, self-similar universe with infinite decision points.  He is the very thing that I have been attempting to use to convince myself that he does not exist.  He is a paradox.

Seeking to somehow disprove truth by filling my mind with mythology has taught me a lot about who I am.  I didn’t realize that the lesson to be learned had little to do with the moral of the story.  The moral is there to give you a hint as to what the deeper truth will be (assuming you are looking and assuming you are allowed to find it).  I’ve also learned that the seeking of unholy information is the very act that prevents you from having access to it.  An infinite journey in search of nothing but the journey itself.  A downward spiral.

There is more.  I have seen it.  In the past two weeks of my life, I have been blessed with a renewed sense of faith.  I have witnessed a wonderful vision directly from my dreams.  I suddenly realize that I now clearly see the American dream.

I’m ready to live that dream.  I love this country.

In God we trust.  I do not see a limit to what I can do as long as I implement his service interface.

That last line about the service interface was a reference to a technology that I was working on at the time. A little geek speak.

About 20 years ago, I had a breakthrough in my life.  I finally determined which direction I was going to take with my life.

When I did, I came up with these lyrics…

They know what you want.
Everything they’ve got.
Take a look and see
your own reality.

They’ve got what you want,
you only have to pay.
I’ll do my own thing
until I find a way.

Show them who you are.
The real thing they can sell.
You have to make a choice:
Happiness or Hell.

Life was very difficult back then. I was living in poverty living from paycheck to paycheck. Of course, I somehow always found money for party supplies. Life is much better now and I’m glad I survived those dark days.

About ten years ago, for a short time, I was posting controversial topics on my blog. I was exploring these subjects from varying points of view and I stirred up a lot of trouble for myself. Here is a post towards the end where I essentially give up and go underground:

I’m married.  Why does that matter?  Well, because I can have a two-way discussion with my wife about my thoughts and personal opnions and we can actually learn more about each other as we’re doing it.  If I say something stupid, silly, or devoid of verifiable fact, she will forgive me and we can both learn from it.

When I post my current thoughts on my weblog, I’m only posting a snapshot of who I am…at that moment.  We humans are complicated beings, and I’m no exception.  Therefore, when I learn something that causes me to change my mind about something, I just look silly since I didn’t really totally share what I think.  It’s a one-way conversation that boils down to one horrible thing… vanity.

Therefore, I will return to only posting upbeat, useful technical entries and the occasional friendly, non-abrasive posts that provide a glimpse into my life by using artwork, music, or photographs.


I just can’t spend the time I need to spend to communicate to you who I really am.  All I’ve managed to do is attract the “me too” readers and repel the “you’re an idiot” readers.  Honestly, I liked my blog better when I was just helping out.  There was little in the way of offensive posts and most of the comments were thanking me for helping them with a particularly difficult problem.

In the end, all of my advisors were correct, it just isn’t worth it to risk my career and the well-being of my family by posting pro-marijuana, anti-republican, arrogant topics, even if I don’t intend them to be taken seriously (and many times they were hypocritical in nature due to their tongue-in-cheek delivery).  I’m learning that people are taking it seriously and I just don’t want the trouble any more.  I’m also losing good friends that I would otherwise be able to keep if I was having a real conversation.

Thanks for sticking with me through these times, but I can’t continue like this.  This weblog has caused me a great deal of grief lately, and it was all due to a mix of arrogant pride and mischievous whimsey.

If you truly want to get to know me, send me an email, invite me to Google talk or Skype, or hang out with me in the Atlanta area.  I’m going back underground.  I just can’t take the risk any more.

This blog will now return to its regularly scheduled geek fest…

I had a personal meltdown shortly after that and went into hiding about a year later. My blog readers got to witness my self destruction. I’ve lost a lot of followers since then because my content wasn’t useful anymore. Luckily, my good friends stuck around and I’ve managed to get back into the swing of things and have a positive contribution again.

I’ve certainly learned a lot in the last ten years and I look forward to what I will earn in the next ten! If you ever need advice on what not to post on your personal blog (or Twitter or Facebook), let me know. I’d be glad to assist you in avoiding big trouble.

No more #Mac. Why I chose to sell my #Apple computer

I recently bought an iMac. I’ve always wanted to own one, but never had the money. I got the opportunity last month and I picked one up used.

I installed the latest operating system on it and started using it instead of my PC. I still kept my PC hooked up and connected to my monitor for gaming. I set everything up; email, browser, PGP keys, etc. As time progressed, I kept finding myself switching back to the PC for various tasks. Eventually, I realized that I hadn’t turned on the Mac in a few days. It was a hassle. I didn’t have any software for it and there wasn’t really any software for it that I couldn’t get on the PC (Adobe Creative Cloud, for example). Plus, that magic mouse is so annoying!

My PC is so much more comfortable to me. I just don’t have a need for the Mac, after all. So I put it up for sale on eBay. Hopefully, someone can find a use for it that I couldn’t. Maybe one day I’ll invest in a new spiffy iMac, but honesty, for the money, I think I’d much rather invest in a killer PC. You just get more for your money. I don’t need a coffee shop trophy, so the Macbook isn’t for me. I have a great desktop, so the iMac isn’t for me.

I’m still using iCloud for a shared family calendar, since Laurie and I both have iPhones and she uses her iPad a lot. I also use it for notes and photos. I’ll probably keep paying for extra space on iCloud since it’s integrated with my iPhone. Though, for $9.95/month, I could get 1TB of One Drive along with 5 installs of MS office. That might be a better deal than $3.95 for just 250GB of iCloud space. I’ll have to weigh my options.

I’m still torn between OneNote and Apple Notes. I really like OneNote, but Apple notes is so convenient. I guess I can configure OneNote to act just like it, so it’s not really a problem. I just need to take the plunge. I was “all in” with Apple products a few weeks ago, but I’m starting to die a little inside because of it.

About five years ago, I said, “We’re not having any of that Apple crap in my house”, responding to Laurie buying an iPod. Now we both use iPhones, have a Macbook Air and iPad Air 2 for Laurie, and an AirPort Time Capsule WiFi router. So, I’ve grown a little more tolerant, but I’m still a Windows fan at the end of the day, I think.

Newly married? Listen to your wife.

Back in 2000, just before Laurie and I got married, I was taking a business trip to Las Vegas. I am not a gambler. I look at it like this: any money I bet is money I’m going to lose. I don’t ever envision winning. I’m just not wired for it. So I don’t gamble.

However, I’ve always wanted to play Roulette. So, before I took my trip, I asked Laurie (who was then my fiancé) what number I should play. She told me a number (I don’t remember it now).

Off to Vegas I went. I bought some chips and headed off to the gambling floor. I got to the Roulette table and there were three older men there looking rather beat up. It seemed to me like they had been there all night. They were putting chips on various numbers and colors. I simply put a chip on my single number. Spin…spin…spin…not my number. So I did it again. Spin…spin..spin…not my number. This went on for about five minutes. I started to get nervous. I have firm feelings about how pointless gambling is as the odds are always against you. OK, one last time. I put $10 of chips on my number. Spin..spin..spin…not my number. That’s it! No more!

What happened next is something I will never forget. I decided to hang around and see what would happen if I didn’t bet. Spin…spin…spin…MY NUMBER! Not only was it my color, it was my EXACT NUMBER! The first spin after I stopped betting. The three men that were there playing looked at me as if to say, “Welcome to our world, have a seat and stay awhile”. No way was I going to stay there. I turned away from the table, walked away, and cashed in my remaining chips. I took my leftover money and had something to eat.

If I had stuck with it and listened to Laurie, I would have won a considerable amount of money. I should have played until I was all out of money. I did not have faith in my soon-to-be wife and it cost me. I have let this lesson influence my entire marriage with Laurie. While not always right, I do not make major decisions without consulting her. Between the two of us, we usually get it right.

Decoding #HTML special characters using #JavaScript regular expressions

I’ve been working with a web service that returns HTML encoded special characters. I have been working all morning on coming up with a regular expression to convert something like:

& #8211;

To its real-world equivalent:

I finally found a great JavaScript method to do this:

Decoding HTML Special Characters with JavaScript and regular expressions

Basically, it comes down to one function:

var decodeHtmlEntity = function(str) {
return str.replace(/&#(\d+);/g, function(match, dec) {
return String.fromCharCode(dec);

Here is an alternative which I am using in my App:

function parseHtmlEntities(str) {
    return str.replace(/&#([0-9]{1,4});/gi, function(match, numStr) {
        var num = parseInt(numStr, 10); // read num as normal number
        return String.fromCharCode(num);

There were other solutions out there to do this, but they depend on using the browser DOM. I’m trying to write code that runs on the Pebble smartwatch, so I can’t use the DOM. This solution works beautifully.

#Pebble smartwatch review

I got some money for my birthday, so I decided to spend it on something frivolous. I bought myself a first generation Pebble smartwatch. I wanted to get the first gen instead of the recently released Pebble Time because I thought it would be the best way to see if I’d even use a smartwatch before investing that much money in it.

I ordered the watch last Monday. It got here a day early on Thursday. By nightfall Thursday, I had already created my first app for it – a daily Bible verse reader. After a few releases, the daily verse reader could get a daily verse as well as a random verse.

The source code to the daily verse Pebble app is on GitHub.

This weekend, I developed my first C language app for the watch. It is a moon phase app that shows the current phase of the moon. It uses location awareness to determine what hemisphere the watch is in so it can show the correct perspective of the moon (Northern and Southern hemispheres have the same phases, but they are “upside down” from one another as viewed from Earth).



As a watch, it is a great device. It has many watch faces available. It’s fun to try new faces. I’ve landed on two that I use the most – the Modern watch face and a Star Trek style watch face. They both show the current temperature along with the time.

One of the best features is the music control. I can be listening to my music and change songs and pause from the watch. It’s also cool when I get a call while I have my headphones on. All I have to do is hit the “answer call” button on the watch and start talking without pulling my phone out to see who it is and answer it. It shows who is calling on the watch.

I’ve also downloaded a great game called Jump! Chump! and a fitness/sleep tracker called Misfit. I’m getting a lot of use out of it. So far, the battery has lasted me a few days. I didn’t charge it all the way when I first got the watch, so I had to charge it today. I fully charged it, so I’ll get a better idea for how long the battery lasts. I’ve been using it a lot to test my apps as I make new releases, so I’m not sure if I’ve got regular usage patterns or not.

I’m definitely getting a benefit from the watch and I look forward to saving up for the new Pebble Time. I won’t be getting the more expensive Steel option, but I will get the basic Pebble Time in a few months. It has a new timeline feature that I think will be cool.

I was thinking of adding the moonrise and moonset times to the timeline, but I’m having trouble locating the proper formulas for calculating the values. I have everything I need, time, date, latitude, and longitude. It’s just a matter of finding (or writing) the code I need. The precision I’ve got on lat and long are to the nearest integer value as I am still learning how to convert a byte array to a double in C.

That has been the biggest challenge for me in all this. I don’t know the C programming language. I have been using “C like” languages for many years like Java, JavaScript, and C#, but I have never had to deal with manual garbage collection and pointers before.

I took an intro to C class in college back in 1992, but that was an intro, and it’s been a long time.

So, I’ve put Swift aside for now as I learn C. This will benefit me in that it is similar enough to Objective-C so that I can develop in ObjC, then switch to Swift in the future.

I’m having a blast writing watch apps. It’s a lot of fun.

I probably won’t get an Apple watch as the Pebble seems to be providing everything I need. I just hope Apple doesn’t cut Pebble off by not approving their app in the Apple app store. That would be a terrible move on their part.