The Blog of Tom Webster

Chronic Ranter, Reviewer, and Developer. I speak only for myself, opinions are my own.

Distraction Killers

  2015-09-01 15:58:14 PDT

When I need to concentrate and get some hardcore, head-down work done, I employ the use of what I call "Distraction Killers". A collection of sound generators to help get me in the zone mentally.


Ambiance: Available on Windows, OSX, iOS, and Android. This app gives you access to a complete library of free downloadable sounds that you can listen to individually or mix together to make your own distraction killer. Be careful with this one, I've gotten distracted by the sheer amount of sounds and mixes before. Really awesome app, I wish the Android version would get a visual overhaul (it really needs it), but the functionality is still there.

Noise Generators A huge collection of free noise generators (and some paid ones if you would like to contribute). From Jungle Life to Number Stations to Sounds from the USS Enterprise, has just about everything you would want in noise generators (and they add more all the time). These sounds are very well produced and the online player comes with an "animate" feature, that subtly changes the sounds around you, so they don't become too repetitive. I highly recommend this site if you need to sit down and get some work done. A very simple site with two buttons: One turns on Rain sounds, the other turns on Cafe sounds. I go here quite a bit because it has the best cafe ambiance I've found (the rain isn't half-bad either).

SOUNDROWN: A simple site with a great twist: You get five sounds to turn on or off and mix the volumes as you see fit. Choose from Coffee Shop, Rain, Waves, Fire, and Birds, mix them together to make a pretty unique ambiance. I don't use this as much as the others on this list.

Rainy Mood: This list simply wouldn't be complete without Rainy Mood. The very best rain/thunderstorm sounds anywhere. I use this every night when I sleep and at work most days to drown out the activity around me. It's well-looped, expertly produced, and is a beautiful (yet simple) website as well. They also put out apps for all the major platforms that I rely on all the time. As an added bonus, their fans have suggested music to go along with the great rain ambiance, and they're listed right at the bottom of the page. I've listed some of my favorites below.

Mix with Rainy Mood

Fireplace: Very simple, just a fireplace with sound.

Piano cover of Where Is My Mind by the Pixies: Slow enough to not be distracting, but not so suble that it blends into the background.

The Fragrance of Dark Coffee : Quite possibly the classiest thing I will ever put on this blog. Slow, jazzy, saxaphone. Turn on Rainy Mood, set this song to loop, and pour yourself the most expensive scotch you have on hand. This is by far, my favorite combination.

Unix Toolbox

  2015-08-30 10:23:46 PDT

A couple days ago I came across this link which is really helpful. A one-page reference for TONS of *nix commands. Everything from SSH tricks, to database commands, to encryption is here. Pretty handy!

Just a caveat: In the ssh section, don't use DSA keys, use ED25519 or RSA (4096 bit) keys. I imagine some of this information is older, keep an eye out.

Unix Toolbox Deployable Version

  2015-08-29 07:33:48 PDT

In case you wanted to use this site's theme easily, I've made a deployable version. It is literally this site, but with all of my posts/pages and data removed. Easy to check out and get started. I have kept the rake tasks in there to make it easy to get started, and modified the readme to walk you through how the site functions. Hope it's useful!

Linux Workstation Security Checklist

  2015-08-28 09:19:37 PDT

The Linux Foundation has put out a pretty stellar checklist dealing with Linux workstation security. Covers everything from the obvious to the truly paranoid. Well worth the read.

Linux Workstation Security Checklist

Git Training and Reference Links

  2015-08-26 15:00:00 PDT

Updated: 2015-12-04

Git Training

Here's a collection of links about Git that I've found useful. I've been pretty involved in teaching people about version control recently and have used these resources to teach myself. If you want to see another link added, leave a comment or issue a merge request. I'll make sure you're credited on this post.

Try GitHub

A fantastic first-run introduction to git. Covers just the basics. Completely interactive and all training takes place inside the browser.

Codecademy: Learn Git

I really love Codecademy, they have tons of free courses ranging from programming languages, to frameworks, to APIs, and now onto version control. A highly-interactive tutorial, just like Try GitHub, just a bit more in-depth. Highly recommended.

Git Immersion

A great VERY in-depth tutorial for git. Covers lots of subjects, but is quite text-heavy. Relies on local git and having Ruby installed.

Linux Academy

If you have a Linux Academy subscription, I highly recommend this git course. It walks you through Git, GitLab, and GitHub. From basic usage to management.

Git SCM Book

Another VERY in-depth book about git. Always up-to-date, but a bit dry. It isn't written in a tutorial-style, it's more of a tech book. Good for some people, bad for others. I use this site as a reference all the time.

Udemy Git Tutorial

If you learn from reading textbook examples and diagrams, Udemy has a course available for Git training as well. It's a bit wordy, but the content is solid.

Reference Links

Your Real-World Git Cheat Sheet

A super-light cheat sheet for everyday git operations. If you want a simple walkthrough of the most basic git commands, or just forget when to use git revert, check this page out.


An absolutely wonderful single-page reference. The information isn't too dense, and will be very helpful to those new to git who just need to remember a few commands or remember the syntax of something. Totally bookmark-toolbar-worthy.

Git SCM Site

Not a single-page reference by any stretch of the imagination. This site has everything you could ever need. Combine your favorite search engine and site: for some truly stellar search results.

Commit Messages

Why good commit messages matter

A lesson on why commit messages are the most important thing to get right when using git. Commit messages are your messages to the universe, important, meaningful, they stand on their own. Commit messages as art.

Utter Disregard for Git Commit History

Who cares about commit messages? Seriously, no one cares. Put anything you want into them, the pull/merge request is what matters! Have the discussion, collect +1s and -1s, gather in-line code comments, and hash it out there. Anyway, the view is better from the merge request.


You should probably read both links above and make your decision. Software development and version control especially is not one-size-fits-all. Some shops will focus on the commit itself, others value the pull/merge request and attached discussion. Some shops are literally one guy and his side project that no one will ever look at so who the hell cares anyway? Do the research, try things out, pick the best method for you and your team.

Branching Models


Dubbed "Git Flow", this model is one of the biggest original git management workflows. I've used it for countless projects and it works pretty well. The only real downside is that it can be overbearing for smaller projects or teams.

GitHub Flow

A very simple Git Flow model, without the baggage. Companies without proper testing or CI integration should not use GitHub Flow. It really is suited for internet-based services and projects.

There's one rule: master is always production-ready and deployable.

The flow works like this:

  1. Create a branch
  2. Make your commits
  3. Open a pull/merge request
  4. Everyone discusses the proposed change on GitHub/GitLab
    • You make changes as necessary, adding commits to the pull/merge request
  5. Deploy your changes, make sure nothing breaks (either manually or through continuous integration)
  6. Merge your code into master

And from there the process starts over.

GitLab Flow

GitLab flow is a teeny tiny bit more complex than GitHub flow, but is still quite simple compared to Git Flow. The only difference is that instead of a single master branch, you have different environment branches (with master being deployed to your staging or pre-production environment with every commit), while all development happens on master via pull/merge requests.

Here's how the flow breaks down:

  1. Create a branch
  2. Make your commits
  3. Open a pull/merge request
  4. Everyone discusses the proposed change on GitHub/GitLab
    • You make changes as necessary, adding commits to the pull/merge request
  5. Deploy your changes, make sure nothing breaks (either manually or through continuous integration)
  6. Merge your code into master
  7. Do your testing in staging
  8. If staging looks good, merge staging to pre-production
  9. If pre-production looks good, merge pre-production to production

This process ensures that all features are stage-gated through each environment, cutting down on potential problems or downtime.

GitLab Flow also has the concept of release branches, but those are only useful if you're releasing versioned software to the outside world. Check out the link to learn more.

Additional Thoughts:

If you have an interest in this kind of work, you'd better check out Semantic Versioning. It's a great way to version software and keep outside developers happy. Many open source projects are now using this system. It's way better than the old odd-numbered-dev-versions system.

Page: 7 of 31