A More Healthy Habitat

Like most people in my profession, I spend most of my waking hours behind a desk - normally 8+ hours at the office and 2-3 hours at home each evening. I’ve suffered with lower back pain for a number of years and have recently switched to using a sit-stand desk both at work and at home to help alleviate some of the pain and stiffness.

Today, our bodies are breaking down from obesity, high blood pressure, diabetes, cancer, depression, and the cascade of health ills and everyday malaise that come from what scientists have named sitting disease.

Read More

Getting Started with AngularJS

I have spent the last couple of weeks going through the “AngularJS: Get Started” course produced by Scott Allen at Pluralsight. It is a beginner-level course that walks you through the process of creating your first AngularJS single page application (SPA). If you are familiar with creating a web page, and have some basic knowledge of JavaScript programming, you should be able to walk through the example with Scott and produce your own copy of the application.

Since AngularJS is a client-side JavaScript framework, you don’t have to have access to a server to work on most of the code. Scott uses the web-based Plunker editor as he walks through the code, but I ran into issues getting it to work. I believe that it may be related to differences in the JavaScript libraries between the time that Scott produced the course (June 2014) and now. I did most of my initial development opening local files on my computer in the browser, but ran into issues when I attempted to use the ng-include directive because the browser was preventing a XSS (cross-site scripting) attack. To get around this issue, I found the zero-configuration command-line http-server that worked like a charm. I intend to continue to use this tool for development purposes.

The sample application is a GitHub Viewer. It allows the user to enter a GitHub User ID and then retrieves a list of the public repositories maintained by the user on GitHub.

By clicking on one of the repos, the application displays the number of Open Issues and the Contributors for the selected repo.

Since I had never used AngularJS before, I went through each of the lessons exactly as Scott had outlined in the course. There were a couple of places where the GitHub API had changed and it no longer matched the original content of the course, but Scott had placed updated information in the screenshots so that it was simple to understand the changes that needed to be made. He also went over the use of the $interval command to implement a countdown time, but I chose to not implement that feature in my version of the app. At the end of the course, Scott issued a challenge to implement the functionality to display the repo details and I was able to implement about 80% of it before looking at his solution. There were a couple of items that I wasn’t quite clear how to implement, but I felt good that I was able to complete as much as I did on my own.

My company has recently decided to move from the IBM Rational toolset (ClearCase / ClearQuest) for source control management to the Atlassain Git-based BitBucket Server and so I chose to store my application on their public site at https://bitbucket.org. I’m enjoying using Git and found BitBucket easy to setup and use. I may modify the sample application to also support BitBucket since they provide a similar API to the one provided by GitHub.

This is an excellent course that I highly recommend if you are interested in learning about AngularJS. I know that it has sparked my interest in AngularJS and I plan on choosing another course on this framework in the near future. I’ve started listening to the Adventures in Angular podcast and have found it to be interesting and entertaining. The AngularJS team has recently released the beta version of Angular 2.0 and there will be plenty to learn in this new version. I believe that I may choose to go through Angular 2: First Look course authored by John Papa to get a head start on the new version. I’ve had the pleasure of hearing John speak at a couple of Code Camps here in Florida and believe that this course will be a good investment of time. John has been working on the Tour of Heroes Angular 2 tutorial and I plan to also work through it.

If you decide to look at AngularJS, or you’re already an expert, and come across any resources that you find beneficial, please leave a comment with the information and I’ll check them out.

Save Your Discoveries

I spend a lot of time “surfing the web” and come across a lot of information that I’d like to refer back to at a later time. I’ve used a number of tools to try and keep up with all of this stuff and for the past four years I’ve been using Pinboard because it is cross-platform and has the ability to add links through e-mail. I was one of the earlier supporters of the site. I’ve also purchased a couple of client apps to make finding and using these “Pinned” sites quicker. However, the web interface of the Pinboard site is very dated and no frills.

Today I came across kifi which is a website and an integrated plug-in for Chrome and Firefox that allows you to capture and collaborate on pages that you find on the web.

Why Blog?

I became a fan of Microsoft’s Scott Hanselman from listening to his technology-related podcast Hanselminutes and was inspired by a couple of his blog posts to start my own. He suggests that this is a way for individuals to contribute back to the community and participate in the global discussion. He also recommended that you have your own custom domain name and you “own” the content that you produce and not rely on social networks to maintain your web presence. Another great source of information is the free course that Scott produced with Rob Conery entitled “Get Involved” were they discuss becoming a “social developer”. Follow Scott on Twitter at @shanselman; everything he produces is gold.

Anyone who knows me will see two big problems with me writing a blog. First, I don’t enjoy writing - in fact, I would say that I dislike writing text and have since my days at Cooper Elementary school. I enjoyed all of my classes more than English. Second, it seems that I am continually drawn to the “shiny” new technology and that I don’t spend enough time on any one subject to learn enough that what I share will be of benefit to someone other than myself. John Sonmez, founder of the Simple Programmer site, recommends that you focus on a niche and become the expert for that area; my plan is to write about whatever interests me at the time and hope that it leads to something beneficial.

I created this first post using the Jekyll static website generator. I was intrigued with the idea of maintaining a blog without having to keep up with a CMS (WordPress, ) and database updates and security breaches. Jekyll is written in Ruby and I haven’t had a great desire to learn the language. I’ve been interested in Node.js and have some experience in my day job with writing JavaScript code. A search on JavaScript-based static site generators revealed a couple of alternatives and I settled on Hexo. It works like Jekyll, but if I want to try and extend the platform, I’ll be using JavaScript instead of Ruby. At least I don’t have a lot of blog posts to try and convert.