A year ago, I had a need to collect, analyze, and archive firewall logs from several Cisco ASA appliances. The problem with Cisco’s ASA syslog format is that each type of message is a special snowflake, apparently designed for human consumption rather than machine parsing. The obvious solution was, of course, to use what is now know as the ELK stack: ElasticSearch, Logstash, and Kibana. In this article, I’ll walk through the process I used to tackle this problem, ending with a full configuration file that you can use in your environment.

This afternoon, I finished @chadfowler’s The Passionate Programmer. One of my favorite books is The Pragmatic Programmer, so the similar title of this book (and the author, who I follow on Twitter) caught my eye. I read a lot of hype about it leading up to its release and I was not disappointed! Besides echoing many other reviewers’ exhortation to go pick up the book and read it if you care about your career, I thought it would be valuable to capture in text some of my thoughts, gathered while reading this book.

I have been meaning to check out R for a few years now, but I got busy and I just never got around to doing much more than installing the MacOS X version on my laptop. I finally got my excuse to try it when I needed to start working on signal processing of the measurements I had been gathering. My usual go-to tool for this type of task was MATLAB. However, on this fateful day, when I tried to launch my copy of MATLAB, I got some kind of message saying that I needed to renew my license. At some point in the past, I had bought a one-year student edition of MATLAB, so this wasn’t a huge surprise. However, that message was all it took to get me to finally check out R.

As a part of my MS thesis research, I have a need to have precise control over an ACS ACOS5 Smart Card. In this article, I will explain the code I have written to directly interface an Atmel ATtiny2313 microcontroller to an ACS ACOS5 cryptographic Smart Card. Before developing this AVR C code, I experimented with various other methods of interfacing with a Smart Card at a low level, with varying amounts of success. I will discuss some of the other methods in future articles, and outline how far I got with them and where there is still opportunity for improvement.