Personal and Professional Blog of Rich Hauck

The Best Beer Central PA Money Can Buy

by: Rich Hauck


So this is a hyper-localized post, but my local news outlet, PennLive, has launched a beer bracket in an attempt to uncover “The best beers you can buy in the Harrisburg area” (per the video).

The beer-drinking friends I’ve spoken with (many of which have Untappd résumés that dwarf mine) have quietly labeled these brackets as “idiotic”, “uninformed”, and “poorly conceived”. It’s definitely an imperfect system, one in which we will soon see different styles such as IPAs pitted against porters. Fortunately, seasonal beers were exempt, but entire categories like sours and lambics are, sadly, absent. Personally, I cringed to see the possibility of a Stella Artois have the chance to go head-to-head with a bourbon-barrel (New Holland’s “Dragon’s Milk Stout”, which I rooted for but was, albeit understandably, eliminated in the first round).

I’m not sure PennLive can be held at fault. They clearly attempted to line up similar styles in the first round. More importantly, the pool of beers was compiled (and is still judged by) reader votes. At a glance, it may seem as if PennLive is trying to bring exposure to lesser-known beers available in the area, but realistically, it’s about getting more readers.

No, the blame can be laid upon the feet of the voting readers. Still, I think PennLive would have done better to balance the results by running a parallel competition comprised of the votes of local beer-drinking experts. Rather than have experts weigh-in on vote tallies, have them suggest beers! Everything needs experts, and it’s not as if the community-driven Yelp is handing out Michelin stars…

So, where do I leave this? Well, I’m curious, what you, my friends and readers, think is the best beer you can buy in the Harrisburg area. Leave a comment and tell me your favorite.

We certainly have our share of distribution limitations and blessings (being at Tröegs‘ doorstep remains the envy of many Californians, and Al’s of Hampden continues to be our local Mecca). My favorite easily acquirable beer remains Chimay Blue. It’s one I keep going back to on occasion. What’s yours?


Categories:food and drink Harrisburg
Comments: 0

Using Yeoman to Create a Website Workflow

by: Rich Hauck

Up until now, I’d always embarked on a new web project by either downloading all of the necessary components (HTML5 Boilerplate, JQuery, etc.) or keeping a local copy of such popular projects on my hard drive and copying them into to a new folder. I’d known about command line installers for quite awhile, but shied away from them as being too intimidating or complicated. I’d also worked in Sass, the CSS precompiler, but found debugging too frustrating, as (at the time) browser inspectors like Firebug didn’t provide support.

I’d say Yeoman has really changed all of this for me. It has generators to pull all of the necessary dependencies and publishes minified files that are optimal for performance. I always feel like I’m light years behind when I come across stuff like this, but seeing the source code of other sites helps let me know that I’m not that late to the ball.


  1. First, ensure you have Sass installed.On Mac:
    Using a Mac? Congratulations, Macs ship with Ruby installed, so you’ll install Sass by opening up your Terminal (which you’ll find in Applications > Utilities) or iTerm and typing:

    gem install sass

    if you run into an error, it’s likely it’s a permission error, meaning you’ll need to install Sass using sudo (superuser do):

    sudo gem install sass

    Once installed, double check the installation by typing:

    sass -v

    This should return the version of Sass installed.

    On PC:
    you’ll want to run RubyInstaller.

    NOTE: In both cases, you may want to use Sass 3.3.0 alpha, as it supports CSS Source Maps.

    gem install sass -v '>=3.3.0alpha' --pre
  2. Next, you’ll need to download NodeJS. There is an installer that’s available for both PC and Mac (as well as a binary for Linux). This will also install Node Package Manager (NPM). NPM is Node’s collection of software libraries that automate installing, upgrading, configuring, and deleting scripts.
  3. With Node installed, you can proceed to install Yeoman. Yeoman is a scaffolding tool for automating the creation of Web applications. You can do this by opening up the Terminal (Mac) or Command Line (PC) and typing the following:
    npm install -g yo

    (Node is a global installation, meaning the above call should work regardless of which directory you are in in the command line). Yeoman automatically installs Grunt, a javascript task runner (which will build, watch, and publish files), as well as Bower, Twitter’s package manager.

    In order for Yeoman to generate a project, it needs to know what code generator to use. In this case, we’ll focus on webapp, which scaffolds out a front-end web application, or website template (and also happens to be the focus of the Yeoman website example).

    Yeoman’s website contains a list of official generators along with a list of community-contributed generators (I’ve found the Angular and WordPress ones to be particularly useful).

  4.  While in the command line, type:
    npm install -g generator-webapp

    and hit “Enter”. You should see a series of lines go be listing all of the dependencies being installed.

  5. Next, create a folder on your hard drive where you wish to install your website template (do this either in your operating system or by mkdir [foldername]). Then navigate to that folder in the Terminal. You can either do this by typing cd [path] or, if you’re lazy like me, typing “cd”+space and dragging the target folder right into the command line window.
  6. Once you’re in this folder, you can proceed to install the webapp by typing this in the command line:
    yo webapp


    Choose your options and it will install the following files and folder structure:

    • /app – This is where you will develop and modify your site template
    • bower.json – This is a file telling bower what library
    • /node_modules – This directory contains all of the dependencies required for the project and referred to in the Gruntfile.
    • Gruntfile.js – This file tells Grunt what to do with your app folder when you publish your app. It will include file minification and consolidation.
    • package.json – This file is used by Grunt to list all devDependencies. Leave devDependencies alone, however, you can modify your app’s name and version.
    • /test – This folder contains unit tests.
  7. Next, call the following in the command line:
    grunt serve

    This will create a static web server and open your default browser to point to your webapp’s app folder. You will want to use Firefox 29+ or the most recent version of Chrome, as these will support scss files in the web developer console.More importantly, calling grunt serve also does grunt watch, which means it will poll your /app folder for changes. As soon as you save any file, it will detect the change and reload the latest version in the browser.

    As this is happening, your command line window will show “Waiting…”. If at any point you wish to return to the prompt, you can type control+c to return to the prompt.

    In the past, I’d used the live view in Brackets (Adobe’s excellent open source text editor) or the Compass framework by itself. I’d still advocate Brackets, however, Grunt doesn’t break the connection between editor and browser when you open the developer console.

  8. Once you are satisfied with your app, you can return to the command prompt, type the following, and hit “Enter”:
    grunt build

    This will instruct Grunt to use the commands and preferences defined in Gruntfile.js and build out your app in a new folder: /dist (the location of this distribution folder can be changed in the Gruntfile.js under the yeoman project settings found in grunt.initConfig()).

By default, the webapp’s Gruntfile.js will include instructions to minify all files and images within the app folder. If you want to change any of the publish settings, you can simply change the Gruntfile. For example, if you want to prevent the HTML page from minifying (as I do, since I’m likely to inject server-side calls), you can either modify the preferences for htmlmin (L248) or comment out where Grunt registers the task (see grunt.registerTask() on L389).

I questioned this workflow every step of the way. I investigated ways to include CSS and Javascript source maps, then I tried revising the cachebusters to query strings instead of file name prefixes (until I discovered prefixes were more reliable). I also looked into using Koala as a watch tool instead of Grunt. In the end, I have no doubt this generator has gone under extensive scrutiny, and it’s something I’m currently building into my workflow.

Categories:HTML5 javascript webdesign
Comments: 0

If you wanted to know what City Island is like at -9 degrees, I saved you the trip

by: Rich Hauck


Yesterday, I decided it’d be a good time to try out my new Speedlite and remote switch for my SLR. The snowstorm had me work from home, and since class was cancelled, I was ahead of schedule for my typical Tuesday. Of course, the temperature (with wind chill) hit -9 degrees. I was grateful to be using smart gloves to control my camera’s touch screen, but I blatantly chickened out and didn’t take my Speedlite out at all–it was just too cold!


I took several bracketed shots in hopes of doing some HDR images (that capitol is always just so blindingly well-lit!), but the gusts of wind weren’t cooperating.



I reached a point on the north end of City Island where I couldn’t tell where ground stopped and ice began. I suppose it wasn’t the wisest thing for me to set up my tripod on the ice, especially considering no one knew where I was and there wasn’t another soul to be found on the island.

Categories:Harrisburg photography
Comments: 1

About Rich Hauck

Rich Hauck

I'm a creative technologist at Hauck Interactive, Inc. and an adjunct instructor at HACC. I live in Harrisburg, Pa. with my wife and two boys. I enjoy good coffee, Trappist beers, Orioles baseball, and good design.