November 15, 2015

What's A Web Developer Gonna Do With A Gaming Notebook?

In my previous post, I shared how I came to the decision to stick with a PC versus joining the 15 inch MacBook Pro cult. Being a Jack-of-web-trades, there are areas of Web Development that interest me, that fall on the Ops side of DevOps. Areas where having a particular set of skills could set one apart from other web developers. Continous Delivery and everything that it consists of, is something I have always wanted to pursue, but have never had the opportunity, until now.

First order of business is my return to Linux. I have tried many times to enter the world of Linux, but have crashed and burned from frustration, or maybe impatience, that normally doesn't affect me. The myriad layers of barriers I run into with Linux cause a committment of a great amount of time, that usually burns me out after about 10 to 12 hours. Like when I loaded Ubuntu on a spare notebook, and I cannot for the life of me figure out how to get a basic necessity like Wifi working on it, it just blows my mind, and I end up punting. Shouldn't Wifi just work, right after an OS install? But no, there are countless different commands to try and not one of the first 10 fixed the issue. Insane. Just one example.

So this weekend I loaded Fedora Server into a VirtualBox VM 3 times. It took 3 times, because the first time, I installed Fedora Server 23 and it worked beautifully, I was really happy with it. Then I went to install Docker, and Fedora Server 23 isn't supported yet; only version 21 and 22. I said F-it, I am doing it anyway, and it didn't work. I couldn't go any further, and I didn't know if I wasn't doing something right, or if it was because it was version 23. I had no choice but to try it with Version 22.

I loaded another VM with Fedora Server 22. Now, when I installed version 23, some things worked really nicely, that didn't work so smoothly in version 22. I like to save some time, by choosing the install settings I'm really going to need, prior to installation, even though tutorials say to ignore them for now. I had to check disk encryption, it seemed like a good idea. It worked great in version 23, no issues. But version 22 put up some massive barriers in my way. I couldn't even connect to my server via the Windows Command Prompt. It said the SSH key had been changed. A man-in-the-middle attack might being happening. (This could also have not been related to disk encryption at all, but it felt like the disk encryption might possibly have been making it more difficult to connect from the Windows Command Prompt.) So I deleted all of the SSH Keys and made a new one. Nope, didn't work. Couldn't figure this one out, so I re-installed Fedora Server 22 without disk encryption. I am almost to the point where I need a Linux expert to sit with me, to act like a guide, to give me the back stories as to why I should or shouldn't do this or that. As with all new things, I am in very unfamiliar territory. Maybe a few more YouTube videos with get me through.

My goal is install and configure VirtualBox with Fedora Server on it. Once that is accomplished, and I can get Docker installed, then my deep dive into Docker begins. I want to get the Atlassian Dev Tools running with Docker ( Jira Software, Confluence, BitBucket Server, Bamboo, and HipChat ) in there own containers. Then ColdFusion/Lucee. Then Couchbase. Then I attempt to get some code both git pulled from BitBucket Server, and then deployed to the web server.

I should mention that Test-Driven Development (TDD) and having tests to run prior to deployment, are an important part of this exploration too. I will include some very basic tests at first, just to make sure they are running. After they are running, I can go back and add better tests, and I continue working on the code. I will use Tape with Javascript, and TestBox with my CFML code.

When I am up-to-my-neck in a project, I need to be able to work, a lot. Having the infrastruture parts already worked out will give me the ability to re-invent my workflow to be significantly more efficient. I spend way more time than I would like, installing and configuring servers and tools. So much time, that I get discouraged by it, and never get to write any code; which is the fun part.

My new Alienware 15 R2 will give me the mobility I am looking for, but will be able to handle anything I throw at it, be it virtualization, containerization, mobile development, video editing, or writing code. It will support my lifestyle of having six Chrome windows open-at-a-time with 50+ tabs in them. The 4k (Retina-like) screen will be easier on my aging eyeballs. It will give me the capability to demo results at a moments notice. And I have some video-related pursuits I would like to try, in addition to UX/UI layout and design (with Adobe Comet, not yet released).

Imagine if setting up a new server to run a test is as easy as one line at the command-prompt and in 10 to 30 seconds I am running the code. Some people have been doing that for years. It's all new to me, but soon I will be sharing this with my fellow CFers in Kansas City, among others. This is where I am headed, and I will blog about all of it, throughout my new journey. I might even find some time to play a game on it.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.