Software Engineer

Jason Hancock

last update:

It’s no secret that I use WordPress for this blog. One of the reasons I like WordPress is the wide variety of plugins that are available. Since I blog a lot about perl/php/puppet code, I like to have a plugin that does syntax highlighting. For this task, I use the WP-Syntax plugin which is built on top of GeSHi. Unfortunately, it doesn’t have a language file for puppet. A quick search turned up this language file.

One thing I’ve struggled with in puppet in the past was managing iptables firewalls. I used to end up building a few different templates for the various firewalls that I had to manage and just passed in a list of ports to open up, but it was kind of a nightmare to manage as more and more applications with different requirements were added. The number of templates began to sprawl.

puppet and xinetd

I ran into an interesting problem with puppet today involving xinetd on CentOS 5. In one of my manifests, I had declared the following service resource: <service{"xinetd":ensure=>stopped,enable=>false,hasstatus=>true,} The problem I was seeing was every time the puppet client ran, it stopped the xinetd service: Sep 5 01:10:21 someserver puppet-agent[2300]: (/Stage[main]/Xinetd/Service[xinetd]/ensure) ensure changed 'running' to 'stopped' Sep 5 01:10:21 someserver puppet-agent[2300]: Finished catalog run in 5.82 seconds Sep 5 01:20:33 someserver puppet-agent[2300]: (/Stage[main]/Xinetd/Service[xinetd]/ensure) ensure changed 'running' to 'stopped' Sep 5 01:20:36 someserver puppet-agent[2300]: Finished catalog run in 11.

I added a couple of syntax check aliases (well, one’s actually a function because alias didn’t seem to like putting a pipe in there) to my .bashrc file: aliassynpp='puppet --parseonly --ignoreimport'synerb (){erb -x -T - "$@"|ruby -c } To check a .pp (manifest) file, I simply type synpp path/to/manifest.pp and to check a template synerb path/to/template.erb This assumes that you have a puppet client installed on your local machine.

UPDATE 10/24/2011: The script has been updated to support Canon CR2 and CRW raw files and JPEGS. I’ve also moved the script to my github account. Find it (and the latest installation instructions) here. Here’s the situation…’re shooting a wedding, bar mitzvah, or other event. You’re running and gunning, two cameras going full blast, switching back and forth. Your second shooter is laying down cover fire making sure you guys don’t miss any important moments.

I tried something different for dinner yesterday….made some pulled pork in the crock pot. That’s not the different part though….I used orange soda (yes, orange soda) as the braising liquid. I put a pork shoulder in the crock pot, covered with orange soda, and let it do its thing until I got home from work. Then I pulled the meat from the braising liquid, shredded it and mixed in some BBQ sauce.

Here’s a snippet that will print out perl’s @INC path perl -e'print join("\n", @INC);\n' And my results on CentOS 5.5: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8


I’m a day shy of not posting for almost two months. That’s crazy! A lot has changed in the last 60 days. I’ve moved on from SpecificMedia. I’m scheduled to start a new position with Disney on Monday. I’m pretty stoked about that. I’ve had a week off between jobs and I’ve been doing some Android development in that time. I haven’t really been developing too much in Android…more like learning the framework/ecosystem/eclipse IDE/ and getting reacquainted with Java.

Update 2017-10-06: It’s 2017. Don’t use the code below, but use the excellent dalen/dnsquery module instead. Leaving the original post below for historical reasons. I use dynamic DNS at my residence so that I can always log into my server remotely without having to know the IP. I run denyhosts on the server hosting my website at Rackspace to attempt to contain brute-force ssh attacks. If you enter the wrong password N times, your IP gets banned and you can’t connect to my server anymore via ssh.

It’s 9:36PM on a Monday night. For the past few weeks, I’ve been picking up our son from daycare and getting home about an hour before my wife. During that time, I like to crank up some tunes on our home stereo receiver. The problem is that my server and my pc are about 25 feet away from my receiver. I was plugging a long headphone extension cord with a headphone to RCA splitter into the front of the reciever, but our son is on the verge of crawling and I don’t wany any extra or unnecessary cables to be within his reach.