Welcome to 2018

2017 was a very quiet year for me as far as blogging has been concerned and that is something I intend to remedy in 2018. I thought I would go ahead and kick things off since there is no time like the present.

While things have been quiet I was actually quite busy in 2017. The first part of the year was spent picking up Angular(JS/2/4/5). That kept me occupied for the early part of 2017. Next I wanted to look in to ReactJS because I have heard so many good things about the framework. Turns out it is not the easiest framework to pickup so I decided to put it down for a bit.

After working with frontend frameworks for the first half of the year I thought it would be great to move javascript to the backend and decided to pick up NodeJS and ExpressJS. I will not really expand on this too much but overall I have really enjoyed my time tinkering around (have you checked out node-billz, my NodeJS-based bill calendar)? Be on the lookout for more posts coming soon.

As far as non-tech things, I did not read quite as many books in 2017 as I had intended. I got started on the Wheel of Time series by Robert Jordan and I made it to book seven, I hope to finish the series this year. Also Raymond E. Feist, arguably my favorite author of all time, has a new series coming out in March.

2018 is going to be a great year!


Creating a background process in Lucee

Lately at work I have been using ColdFusion event gateways to accomplish a few very specific tasks. I thought it might be cool to see if I could leverage CFThread on Lucee do accomplish some of the same things.

The first step was writing a working demo with ColdFusion. A buddy was kind enough to point out that using an event gateway with a cfthread running inside of it was doing extra work for nothing. Event gateways were introduced before cfthread so I went ahead and just refactored it back as a regular ColdBox service. Everything was running smoothly in ColdFusion.

Next was trying to port the same code to Lucee since that is what I tend to run for personal projects. The one road block I did run up against is cfthread terminating at 50 seconds, the default request timeout for Lucee. It turns out there is a simple fix for it, but it made me scratch my head for a while since I didn’t run into it on ACF. The code with fix is below.

It was not a hard fix (setting the request timeout extremely large), but it did take a bit of google-fu to figure it out. Interestingly enough, setting the request timeout to zero did not work.

Goodbye 2015

It seems that 2015 is coming to a close and I thought it would be a good time to compose my fourth and final post of 2015. It has been a slow year blogging but that is not to say I have not been busy.

I have been working almost exclusively with ColdFusion almost 20 years now which is almost half of my life as scary as that is to say. This year has been focused on learning new methods and technologies. I spent quite a bit of time this year picking up the NodeJS stack. As a front end developer I have written a lot of jQuery interacting with the DOM. Using javascript to write a server just seemed plain awesome. Moving forward I have a feeling many of my personal projects will be built on top of NodeJS.

After my crash course on NodeJS the natural progression of things led me to AngularJS. I will have to say this one was a real pleasure. After so many years of using jQuery to modify the DOM after it was rendered it was refreshing to use javascript to actually render the DOM. I have been splitting my time between working with Angular 1.x branch and also trying to pick up Angular 2 since it is getting closer to a stable release.

Finally I have been working with GitHub’s Electron to build cross-platform desktop apps. Mostly this has been writing tools I can use for work since that would actually push me to learn Electron and Angular. Writing an application once and being able to build it for Mac/Windows/Linux is just awesome. My teammates at work have enjoyed the fruits of my labor.

Aside from that I have played a lot of games in 2015. I enjoyed Destiny for a while, but really my old standby is Diablo 3. I am excited to see what 2016 has to bring and I hope all of you have a happy and safe new year!


April update

It has been pretty quiet around here for a while so I thought I would go ahead and post a quick update and get my first post in for the year. There have been quite a few things keeping me busy lately and the day job keeps me busy more often than not so here is my current list in no particular order.

ColdBox 4
If I loved ColdBox any more I would probably have to get a room. I have been playing with CB4 since the bleeding edge releases but I have switched some of my 3.8 projects over to 4.0. A lot of hit has to do with compatibility since the core was cleaned up.

Google OAuth 2 Integration
Having to rewrite user authentication for every application seems a bit of a drag, especially when user authentication can be handled by somebody else. To that end, I am looking to have Google handle all my user authentication going forward. Ray had some code for hooking into Google’s OAuth2 implementation and I am working on getting that wired in to CB4.

Lucee Application Server
I have used Railo for years and I was sad to see it would have no more updates. Then Lucee was announced and I was cool again. I spent a few weeks tuning my installation process and moved away from the automated installers to custom installations. I have always been a bit of server geek so this was right up my alley.

I have been wanting to get in to Node.js and Socket.io for ages, but time has always been a factor. However, lately I have been looking into ways to leverage websockets aside from a chat application (I wrote one of those too) so I finally sat down and learned just enough for me to be dangerous. It was pretty easy getting socket.io to talk to the ColdFusion server through API calls. Next will be figuring out how to get CF talking to node.

Sublime Text not refreshing the sidebar

As much as I love Sublime Text one issue that has really buggered me is that occasionally when deleting a file the sidebar will not update. Also, when creating a new file it won’t necessarily show up in the sidebar either. Admittedly, my project structure is pretty wild and spans about six mapped drives, but it is annoying none the less.

Today I finally snapped and did some google-fu and found a solution. It looks like it annoyed someone else and they wrote a plugin to fill that gap call syncedSideBar. You can easily install through package manager or find it here: https://github.com/sobstel/SyncedSideBar

I am posting this here as a reminder to myself but I thought someone else may find it helpful. A big hat tip to the author.