Saturday, February 27, 2016

Slight resurrection

Okay, I'll admit it.  I've mostly forgotten about this blog.  I got going with good steam and like so many other things I've started and never finished, I lost interest.  I'm going to start working on a series of entries including source in repositories.  Right now I'm hosting at Github, but with the latest rounds of weird going on there, I'm looking for another host.

Since the latest postings, we are still cord-free.  We've switched up from attached boxes to TV's with Smart apps installed, phones and personal media devices.  The kids favor Youtube, while my wife and I tend to watch more Netflix.  I've completely dropped Hulu after realizing there wasn't much on there I actually wanted to watch that was not available on Netflix already (and without advertisements).  My wife is now an IT geek as well, having spent the last decade trying to ignore her geekish tendencies, has joined the dark side and is a technology coordinator in a local school system.

Now on to something completely different.

I love my .rc files.  I get irritated when I leave a job and lose that .rc file that I spent the last couple years tweaking out to fulfill my needs.  After the last batch of that, I went ahead and started a github repository where I keep my local rc files.  As I make tweaks, I push them back upstream and they're always up to date.  Recently, we added a Mac to the arsenal at the house and after upgrading bash to a more modern version, I grabbed my rcfiles to only discover they weren't working as I anticipated.

Add a couple lines and everything's working again.

#MacOS is different - set some variables.
if [ "$(uname)" == "Darwin" ]; then
    export CLICOLOR=1
    alias ls='ls -GFh'
fi

Saved, committed and pushed upstream.  Now any new Mac I encounter, ready to roll.

Full .bashrc below.

# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

#MacOS is different - set some variables.
if [ "$(uname)" == "Darwin" ]; then
    export CLICOLOR=1
    alias ls='ls -GFh'
fi

# User specific aliases and functions
LS_COLORS='di=01;35:fi=00:ln=01;36'
# Prompt Stuff below
NO_COLOR="\[\033[0m\]"
CYAN="\[\033[0;36m\]"
GREEN="\[\033[0;32m\]"
RED="\[\033[0;31m\]"
ORANGE="\[\033[1;31m\]"
YELLOW="\[\033[1;33m\]"
GREY="\[\033[0;37m\]"

if [[ $EUID == "0" ]];
then
    USER_COLOR=$RED
else
    USER_COLOR=$GREY
fi

PS1="$GREEN[$USER_COLOR\u$CYAN@$YELLOW\h$GREEN] $ORANGE:$CYAN\w$GREY\$ $NO_COLOR"

# Use vim whenever possible, if not, then use vi
if [ `which vim` ] ; then
    export EDITOR=vim
else
    export EDITOR=vi
fi

Monday, August 19, 2013

Post-cable, one week in.

Last week we got rid of cable TV in our house in lieu of internet entertainment options.  Between my Roku and my Chromecast we've been watching a lot of stuff we haven't seen.  One remarkable thing is that while we miss certain shows (notably Big Bang Theory), my wife and I have been forcing the kids off the television more and watching our own shows (my wife has been catching up on Grimm for instance). 

By far, we use the Roku more often than the Chromecast, but that's largely a geography thing.  The Roku is connected to the main television downstairs while the Chromecast is connected to the TV in our bedroom.  So far, I've been streaming Youtube to the Chromecast at night, watching some of my favorite channels like "Tested" and "hickok45" - watching their longer streams that I never really had the time to sit at a desk and watch. 

Do we miss certain aspects of Cable?  There are a few shows, but we don't really miss live events as we didn't really watch sports to begin with, and the news we get through the internet anyway.  My biggest gripe with the Chromecast is the lack of support for phone apps, and navigation on my phone for Youtube channels is kinda wonky (the kind of wonky most people are used to already).  Trying to find specific videos is not as cut and dry, but I'm figuring it out. 

My Roku does randomly lock up, which is annoying.  Its patched all the way up, and I have it on a hard-line to the main router (not wireless).  I have to reset the whole thing by pulling the power cord out.  Overall its been fairly stable with only a handful of lockups.  I need to lock down some sort of security into the Roku as the kids have been caught unknowingly watching stuff on Vimeo that was not age appropriate (mostly Lego stop animations), but we're working through the kinks still.  Looking forward to hooking the Raspberry Pi up on one of the media server distros and giving that a whirl as a possible replacement / enhancement to the current setup.

Friday, August 9, 2013

Cut the cord

After hemming and hawing about it for months, and generally grumbling about the cost of cable TV, an article by Marketwatch prompted me to really think about the amount of value I get from TV.  I watch sports generally twice or three times a year and otherwise watch very little time sensitive material.  After seeing what I could do with the Chromecast I got earlier this week, I'm finally cutting the cord.

As a technology person, I'm really a Luddite when it comes to basic home entertainment.  My main TV is a 32" Samsung HDTV Tube Television (one of the last Tube TV's made).  I already had an older Roku player as well as a Samsung BluRay player with Smart capabilities.  My home network has been disassembled for years (I had two RJ-45 Ethernet jacks run next to the TV area), my switch isn't properly configured to run and apparently my USB -> Serial converter isn't supported on Windows 8 (wife's laptop).  As a stop-gap, I ran a longer (30' or so) Cat6 cable to my Wireless access point in the next room to the Roku until I have a chance to rewire everything in the next couple days.

I already have Amazon Prime and Netflix, I went ahead and grabbed Hulu as well.  Right now my youngest son is watching Team Umizoomi on Amazon Prime and honestly, it looked better than it ever did on TV.  For the real test, we'll have to see how well the wife and kids handle the new remotes.

Thursday, August 8, 2013

How to think like a Linux Administrator.


  • Everything is a file.*
  • Yes even that.
  • That too.
  • If you're going to do it more than a handful of times, script it.
  • DOCUMENT your scripts so when you go back later, you'll be able to understand them.
  • There are four commands you really need to become familiar with, probably in the following order.
    • grep
    • vi
    • awk
    • sed
  • Yes vi.  Every system you'll ever run into will have some variant of it.  That's can't be said for pico / emacs / gedit.
  • Learn how to edit files using 'cat' in case vi isn't there.
  • Learn one of the basic shells (bash / ksh / csh).  I used to mention sh, but bash has supplanted it nearly everywhere.  Learn it until you can't use other shells anymore.  Then learn the other ones.
  • No they're not the same.
  • Tweak out your PS1.
  • Have a bunch of widgets on your desktop.
  • Use the /dev filesystem.
  • Learn regular expressions.
  • Never refer to it as regular expressions again.
* Okay, its not really a file, but you can probably treat it like a file, or at the very least, a stream of characters.

Monday, August 5, 2013

Google Chromecast unboxing and first impressions

I received my Google Chromecast today,  far earlier than I had anticipated.  I managed to take some pictures while I unboxed it as well.   My first impression is while not as polished as an iDevice, the box itself is well thought out and designed with everyday users in mind.

My biggest disappointment thus far was the lack of channels.  As of right now, there are only really three channels, Google Play Store (although for some reason they split it into a second channel for music vs movies and television), Youtube and Netflix.  I was probably up and running in under ten minutes.  Luckily my Samsung monitor / TV had a USB port on the back that I could tap to power the device, so no extra cables running to the ground.  Setup is quick and easy with the application taking maybe ten minutes.  

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.