A Comparison of Image to ASCII Conversion Tools

Inspired by ponysay, I think wicked ascii/ansi artwork on the terminal is great. I decided to survey all the tools I could find that aid in this conversion to see if there were any dramatic differences in results. Methodology For these tests I used an image with a 160px width, twice that of a standard terminal. Then I cat’d the image in plain xterm and took a screenshot of the results.

Playing with IPv6 Over Bluetooth Low Energy (6LoWPAN)

I like Bluetooth Low Energy (BTLE). I also like IPv6. Did you know you could but both together? Technically 6LoWPAN Requirements modprobe bluetooth_6lowpan echo 'bluetooth_6lowpan' >> /etc/modules Establishing the Connection Set the Bluetooth L2CAP PSM First you need to set the Protocol/Service Multiplexer value on both sides to “62” (0x3E) on both sides: echo 62 > /sys/kernel/debug/bluetooth/6lowpan_psm This PSM value lets the driver know that you are going to multiplex this special new protocol on top of whatever your bluetooth device mith also be doing.

Etherhouse Part 2 - Software

The software that powers the Etherhouse project is open source. This blog post describes that software and how it interacts with all the pieces. Client You can see the Client software that runs on the Arduino. This uses one external library and is in the native Arduino C++. The Arduino runs a limited TCP/IP stack and interacts with the http api. The code plenty of defensive code in place to ensure the client continues to run without interruption or interaction.

Etherhouse Part 1 - Hardware

Etherhouse a project of mine involving eight Christmas gifts. Each gift involved a display of some model houses made from folded paper, each representing the home of a friend or family member. The houses light up, depending on whether that family member is home or not. Their presence is detected based on if their smartphone is on the same network the etherhouse is on. See the GitHub page for more details.

Getting Started Puppet Acceptance Tests With Beaker

Beaker is a test framework created by Puppetlabs to run tests against puppet modules on real servers (vm, containers whatever) and test that they do what they say they should do. This is a quick tutorial on how to use this framework. At the time of this writing, Beaker is under heavy development, so this could all change. The Gem The first thing you need to do is install beaker.

Managing Ssh Known Hosts With-Serf

Serf is a very interesting service discovery mechanism. Its dynamic membership and tags capability make it very flexible. Can we use it to generate a centralized ssh_known_hosts file? Installing and Configuring Serf I like to use configuration management to manage servers. Here I use a Puppet module to install and configure Serf: class { 'serf': config_hash => { 'node_name' => $::fqdn, 'tags' => { 'sshrsakey' => $::sshrsakey }, 'discover' => 'cluster', } } This particular module uses a hash to translate directly into the config.

What Happens When You Run Puppet Tests

Breaking down bundle exec rake spec What is happening when you run: bundle exec rake spec Bundle The first command you are running is bundle. Bundle is kinda like virtualenv for Ruby. It makes sure that you use the same ruby libraries that you, everyone, and puppetmasters use. Bundle uses a Gemfile, and searches downwards. As long as you have the Gemfile in the puppet repo, it will work.

Writing Purgable Puppet Code

Whenever possible, I try to write Puppet code that is purgable and “Comment Safe”. That is not a very good description. What I mean is, Puppet code that removes resources from a system when the corresponding Puppet code is “Commented” out of a manifest. Lets look at a few examples. Example: Managed Sudo Lets say you used this popular sudo module with the following params: class { 'sudo': purge => true, } Great start.

Introducing sensu-shell-helper!

The Problem The barrier to writing Nagios checks is high. I dare say very high. You have to think about check intervals, host groups, service groups, config files, etc. But, I know my servers are not behaving, if only there was a way to check them! They run commands for me all the time. In the worst case they fail and no one knows. The best case is that they end up in my cron spam folder….

Saying Goodbye to Wordpress

It’s Been a Great Ride There is no doubt that Wordpress is a great piece of software. As much as people love to hate on PHP, it runs a lot of the internet. I’ve been running Wordpress personally and professionally for years. It only gets better. I was only hacked once :) Rethinking What I Need Since moving to a Low End Box, my resources have been tight. Even on a tuned system, I can’t run much more interesting things than my Nginx+PHPfpm+MySQL.