Makeover Monday 2020 Week 41 Oct 15, 2020

Last week’s Tableau Conferenceish was a much needed kick in the pants to engage more with the Tableau community online and also to start participating in some of the community challenges like Makeover Monday and Workout Wednesday on a more regular basis.

My primary goal with this viz was to keep things simple since the original viz was far too complicated. I settled on a bar chart almost immediately since that tends to be a nice way to show breakdowns of categorical data in a way that most people can interpret at a glance.

Click to view on Tableau Public

Click to view on Tableau Public

To begin with I opted to combine the three Financial Services categories (Banking, Insurance, and Other) into a single unified category. I felt that this brought the category more in line with how the other categories were presented.

From a design perspective, I matched the blue color to the blue on the section pages in the original report. I also left aligned the percentages on the bars to make it easier to scan through the values while sorting the categories in decending order by percentage. I also moved the Other category to the bottom of the list because I found it strange to have Other as the third largest category. I went back and forth on this decision, but in the end I’m happy that I decided to move it.

Finally, I decided to include some context about the sample size on the dashboard. Since the sample size was only 103 I opted to display the percentages without any decimals since the decimals were more an artifact of the sample size rather than contributing any meaninful information to the viz.

After viewing this week’s Viz Review I’m still pretty happy with how I approached this viz. I’m happy I took the simple route even if it isn’t particularly flashy. I’ll admit to not spending a huge amount of time considering an alternative title for the viz simply because I was running out of time. I’m also glad I remembered to include my name in the viz since that was a comment made again and again - I don’t think I’ll ever forget that.

Link Dump February 2019 Feb 28, 2019
Zoo lights at Phoenix Zoo! Nov 22, 2018
Vacation 2018 Oct 31, 2018
Total Eclipse 2017 Aug 22, 2017
Twin Cities Pride 2017 Jun 25, 2017
WordPress Dashboard Today Widget May 27, 2017

I threw together a widget for my WordPress Dashboard with the current weather. I planned on adding other elements like upcoming calendar events, but I kind of like it the way it is. I may redesign it to be a weather only widget.

Intel ISEF 2017 May 21, 2017
Jekyll Up and Running on Reclaim Oct 23, 2016

For the past few weeks I have been working on converting Davidized over from using WordPress to Jekyll. Mostly in the interest of simplifying administration of the site since I haven’t been a very good blogger in some time, and because I worry about the security of my WordPress installation being left unattended for months at a time and potentially missing important updates to plugins (mostly, since core auto updates itself these days).

I initially used Tim Owens post on how to get Jekyll up and running, but it seemed needlessly complicated to setup a whole Ruby application in order to get things to work. In addition I wanted to be able to just push updates to the server and have my site update automatically. In the end this ends up being more complicated than Tim’s method, but I’ve got it working now and figured I’d share in case anyone else wants to do the same.

The first problem we have to tackle is being able to use ruby and gem from the command line. To do this we’ll need to update our .bashrc file located in the home folder of your hosting account. (If you’re using the web based File Manager you will need to have the “Show Hidden Files (dotfiles)” setting turned on in order to see the file.)

Update .bashrc to include the following:

RUBYHOME="/opt/alt/ruby22"  
GEM_HOME="$HOME/.gem/ruby/2.2.0"  
GEM_PATH="$HOME/.gem"</code>

PATH="$GEM_HOME/bin:$RUBYHOME/bin:/usr/local/cpanel/3rdparty/bin:$PATH"  
export PATH  

Next we’ll need to SSH into the server and install the Bundler gem. (Reclaim has a pretty good video with instructions on how to get SSH up and running.)

Since we don’t have write permissions to the system location where gems are usually installed, we’re going to have to install them in our home directory. To do this we can use the following command:

$ gem install -user-install bundler  

By using Bundler we’ll be able to make sure that the versions of Jekyll (and other gems) are the same on our local computer being used for development and the server where we are hosting the site from.

Next up we’re going to create the repository that we’ll push our changes to in order to update the site. We’re also going to set up a post-receive hook so that our site will update automatically after we push changes to it.

$ mkdir ~/git/jekylltest.git  
$ cd ~/git/jekylltest.git  
$ git init -bare  

Now you can push your local Jekyll repository up to the server. You’ll need to add a new remote first using something like:

$ git remote add origin ssh://USERNAME@server.reclaimhosting.com:/home/USERNAME/git/jekylltest.git  
$ git push origin master  

Obviously you’ll need to change USERNAME to the appropriate username for your account as well as use the server name appropriate for your account as well.

Next let’s create the working git repository we’ll be using to generate our jekyll site from. If you want to make changes on your server you can do it from this repository, just don’t forget to commit your changes and push them back so that you can pull them back down on your local machine later.

$ cd ~/  
$ git clone ~/git/jekylltest.git jekylltest  

The end is in sight. Let’s use Bundler to install the required gems to get everything up and running.

$ cd jekylltest  
$ bundle install -path=$GEM_PATH  

It took me a while to figure out that I needed to include the --path=$GEM_PATH argument when running the install. If you leave it out Bundler will try and install to the system gem location and you don’t have permissions for that.

Our last step is to setup our bare repository so that every time we push a change it will automatically regenerate the site and copy it to the correct location. To do that we’ll use a post-receive hook.

$ touch ~/git/jekylltest.git/hooks/post-receive  
$ chmod +x ~/git/jekylltest.git/hooks/post-receive  

We’ll need to edit the new ~/git/jekylltest.git/hooks/post-receive file we just created to include the following:

#!/bin/sh  
cd $HOME/jekylltest/ || exit  
unset GIT_DIR  
git pull origin master && bundle exec jekyll build && rsync -verbose -recursive -checksum -delete \_site/ ~/public\_html/jekyllsite  

Each time the post-receive hook fires it will move to our working Jekyll directory and update it. Then it will rebuild the site and copy it over to ~/public_html/jekyllsite. At this point you could setup a subdomain to point at the new jekyllsite directory and be done, but I wanted the main domain on my account to use Jekyll so I updated my ~/public_html/.htaccess file with the following:

RewriteEngine On  
RewriteBase /</code>

RewriteRule ^$ /jekyll/ [L]

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_URI} !^/jekyll/  
RewriteRule ^(.*)$ /jekyll/$1  

Hopefully this can help others who are trying to get Jekyll up and running. At the very least I’m sure it will help me when I can’t remember what I did in the future and need to fix something or setup another site.

Camp Nerd Fitness 2016 Sep 26, 2016