Configuring Your Own DNS Server on Mac OS X

For years I have hated having to try to memorize different static IP address' when trying to access different network resources on my local network. This past week I finally forced myself to sit down one evening with a stiff drink and an ambition to set up and configure my own DNS server for my local network. My server would be my newly reclaimed Mac Mini running the latest version of OS X (El Capitan 10.11.x). With a good recommendation from a good friend and Sysadmin from work I set out to build my own DNS server with 'dnsmasq' and found it to be surprisingly easy. Easy enough that I figured I should post it out to my blog so that I could remember in the future and hopefully share with others who might be so inclined to attempt the same.

Pre-requisites:

  1. Mac OS X Yosemite 10.11.x (I fathom that all of this could easily be done on older versions)
  2. Homebrew (http://brew.sh/)
  3. An open terminal to execute the required commands per step outlined below

Step by step process (some commands may require 'sudo' permissions):

  1. Install the latest version of the 'dnsmasq' package/module on your server.
    1. Command: brew install dnsmasq
  2. Create directory to store the 'dnsmasq' configuration file.
    1. Command: mkdir /usr/local/etc/dnsmasq
  3. Copy the default example 'dnsmasq' configuration file into the local configuration directory.
    1. Command: cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq/dnsmasq.conf
  4. Modify the default configuration file to suite your needs.
    1. Command: vim /usr/local/etc/dnsmasq/dnsmasq.conf
    2. In this step I personally configured 'dnsmasq' to use my own personal domain as well as auto-appending the domain for requests.
  5. Configure the 'dnsmasq' software to start automatically as a daemon on reboot.
    1. Command: brew services start dnsmasq
  6. Configure hostname to IP address mapping via the local hosts file.
    1. Command: vim /etc/hosts
    2. This step can vary depending on how you have 'dnsmasq' configured, but with default configurations the software will look to the servers /etc/hosts file to serve as the hostname/ip registrar.

Hopefully this tutorial/guide is helpful in getting your own DNS server up and running. I know that I personally have LOVED being able to access my home network via my router's VPN software using my own personal DNS server to make sure I never have to try to memorize another IP address again.

As always feel free to leave a question in the comments section.

Tips For Getting Started With No Man's Sky

With No Man's Sky finally released, I got a chance to run my first stream when initially getting started. Seeing as how the game really has almost no sort of tutorials I thought I would share some of my findings for any other wayward explorers who might want some guidance on how to best approach the game in the beginning.

  1. Take your time when getting started. Be prepared for a lot of reading as that will be mostly how you determine what your next steps are. It is even more important to spend time in the menu system as that is where you will do most of your work to progress and get your ship back in the sky.
  2. Pay attention to your inventory! The first thing that I did was repair my mining laser so that I could start stock piling a solid supply of Carbon and Zinc for my life support systems. Since one of your first tasks is to craft some metal plates with Iron it might be easy to go crazy and just start farming Iron. Don't! I would recommend getting a healthy supply of each component until you have a full stack that way you won't fill your inventory up with an unnecessary stockpile. Inventory space seems particularly limited at the start and I found myself throwing away unwanted Iron stacks.
  3. Always keep Carbon and Zinc on your person at all times. Luckily Carbon can be found quite easily from the local plant life, but I certainly found Zinc much more difficult to track down.
  4. Improve your multitool with the Boltcaster augmentation. This will be particularly handy when you run into aggressive wildlife and more importantly the super annoying sentry drones which will randomly track you down and try to kill you. Why? Who the hell knows. I can only hope the game will eventually explain that to me.
  5. Get to know your controls. One difficulty that I had was dealing with how to switch between my Mining Laser and my Boltcaster on my multitool. A quick look into the menu system let me know that it was simply the "Triangle" button. Once gain, since there is no tutorial for the game I would highly recommend that you familiarize yourself with the controls from the inside the menu so that you aren't panicking to figure out how the hell you equip your Boltcaster when those pesky Sentry Drones attack.

Hopefully these quick tips will help you out in your initial voyages into the great unknown as you journey to the center of the universe.

Customizing Android Studio Logcat Color Scheme

When developing for Android it is easy to get lost when looking through your logcat output. I've always been a fan of dark themed IDEs and Android Studio's Darcula is great with the exception of their default logcat colors. Out of the box you are left with all your logcat levels other than ERROR being printed in an off white. For years I have simply suffered with this until today when I decided to spend some time configuring a custom color set to improve my ability to rapidly read through log messages while developing.

To configure custom colors for Android Studio when using the Darcula theme access the "Preferences > Editor > Colors & Fonts > Android Logcat" settings. Next, click the "Save As..." button to clone the Darcula scheme. At this point you can click through each log level and uncheck the option "Use inherited attributes" which should allow you to then click on the color boxes and edit the hex colors for each individual log level. Below you will find the colors that I think work best.

Log Level / Foreground Color / Background Color
VERBOSE / #BBBBBB / NONE
DEBUG / #6897BB / NONE
INFO / #6A8759 / NONE
WARN / #BBB529 / NONE
ERROR / #000000 / #FF6B68
ASSERT / #9876AA / NONE

I specifically chose to go with the red background for ERROR messages to really make sure that they stood out, though I could easily see the same being done for WARN messages as well only with the yellow color. So far the results have been great and I figured I would share it for anyone else who happens to stumble upon my blog. Enjoy!

Adding Applications to the Mac Finder Toolbar

If you are a software developer like myself, you might often find yourself opening text files with non-conventional (for most users) extensions (*.json, *.log, etc). In the past, I would simply drag those files from finder over to the dock in order to open them in my preferred text editor of choice Sublime Text.

Apparently Apple knew that this workflow sucks for anyone with multiple monitors, or those who don't keep all their apps permanently in the dock. Much to my surprise, as of OS X 10.9 Mavericks you are able to dock apps directly in the Finder toolbar. All you need to do in order to dock your app in the toolbar is to hold down the CMD key and drag the app to the toolbar (see image below).

So far this has proven as an amazing quality of life improvement for me since I use three monitors and have my dock on the far left side of my left display. Wish I would have figured this out years ago.

Configuring Mac Dock Via AppleScript

There are times when my software developer induced neurotic tendencies get the best of me. This is one of them. Recently, I decided to perform a clean install of OS X El Capitan on my workhorse MacBook Pro that I use for all my personal productivity work (read: development, photography, graphic design, etc). As part of this process I figured it was about time to create a system build doc listing exactly all the steps I go through so the next time I do this (read: in a week or so on my work laptop) I would be able to get everything configured the same. I ran into a bit of a block when trying to document settings tied to sliders (specifically the dock size and magnification size, see image below).

My best method thus far for documenting these annoying settings was to take a screenshot of a system before wiping it and simply trying my best to exactly match the setting. After being frustrated that there was no way I could get it to be perfect across the various Mac systems that I use on a regular basis, I decided to investigate whether or not these could be set programmatically via a script. A few quick Google searches and presto!

AppleScript: configure-dock.scpt

tell application "System Events"
    tell dock preferences
        get properties -- comment out set command below and use this command to inspect the properties object
        set properties to {screen edge:left, autohide:true, animate:true, magnification:true, minimize effect:genie, dock size:0.15, magnification size:0.3}
    end tell
end tell

After years of trying to match these settings by eye, I finally have a way to set it to a specified value (my personal defaults are in the code above). For all others who have bizzaro tendencies to want to perfectly match system settings, feel free to copy/paste the above code into the default 'Script Editor' application hit the 'Play/Run' button and set your own preferences.

Dance Photography: Power from Darkness

I have been going through and editing all my shots from shooting Backstage Dance's 2015 Winter performance in Nampa, Idaho. Honestly, I never thought I would be someone who enjoys shooting dance photography. Being a sports junkie I only got involved with dance photography when my close friend asked me to shoot some rehearsal shots for her dance company Project Flux. Ever since then I have been hooked and though I don't shoot dance all that often, every time I do get the chance I enjoy it and never ceased to be amazed by the athleticism of dancers. Another reason that I love shooting dance is because it gives you the opportunity to snap gems like this...

Power from Darkness. Copyright Nate McIntyre. 2015.

So if you have ever even thought about shooting dance, I would definitely be one to suggest giving it a try!

 

Trying to Keep my Eye to the Camera

You can't capture what you aren't prepared for. This mindset has been the focus for improving my sports photography over the past year and it continues to pay off. One of the downsides of being a sports fan as well as a sports photographer is that I sometimes find myself caught up trying to watch the game as a fan rather than always keeping my eye to the camera. As a result I sometimes miss those quick moments of action when I would have otherwise been distracted. A few games back it paid off big time when I was able to capture this great post goal celebration.

Goal! Copyright Nate McIntyre. 2015.

Just another reminder to always be ready to catch a moment when other photographers would have let their guard down.

Everything You Need for a Raspberry Pi Setup

Raspberry Pi systems are awesome little computers for a multitude of different tasks, whether it be hosting a small private Minecraft server to serving as a LAMP stack for web development. Over the years I have tried a few different devices and setups and come to the following list for an ideal Raspberry Pi setup. All items listed below are my personal opinion regarding the best initial setup for a headless Pi server and include an Amazon link. In total you can pick all these items up for right about $110 via Amazon Prime and have them 2 days later so you can begin hacking away on your Pi.

If you plan to run your system with a wired network connection and don't need to have a dedicated keyboard/mouse for the device then you can shave off about $35 bucks bringing the total down to a measly $75.

Note: The criteria for my recommendations regarding the specific wifi adapter and keyboard/mouse is due to the super small size of their USB connections. They are super small and lend themselves perfectly to the tiny form factor of the Raspberry Pi system as a whole while also being very affordable.

1. Raspberry Pi 2 Model B + 32GB Micro SD Card
Amazon: http://amzn.to/1SYtGaN

2. GizmoJunkies 5.3V/2A Power Supply for Raspberry Pi
Amazon: http://amzn.to/1SYtRTq

3. CanaKit Raspberry Pi Case for Pi 2 or B+ with Heat Sink (White Gloss)
Amazon: http://amzn.to/1SYu35d

4. Edimax USB Nano Wifi Adapter (Supports N)
Amazon: http://amzn.to/1YgNyqO

5. Logitech Wireless Touch Keyboard K400 Plus
Amazon: http://amzn.to/1YgNCH6