My First DEF CON

I went to DEF CON 23 this year. It was my first time to DEF CON and to Las Vegas. I paid on my own dime and it was not a company sponsored trip. I am sharing my personal experiences, opinions, and reflection on my first DEF CON. Others who will attend their first DEF CON might find some useful tips.

Writing a Mumble Bot in Ruby

Mumble is an open-source voice communication tool with low latency ideal for gaming. It is an alternative to the non-free TeamSpeak and Skype options. The Ruby gem mumble-ruby provides a library to connect and interact with Mumble as a client. These code snippets demonstrate how to connect and communicate in a chat room and private messages. At the very end, there is a fully functional command line chat client that is ready to use to chat on the DevDungeon.com Mumble server!

Working with Images in Go

The Image interface is at the core of image manipulation in Go. No matter what format you want to import or export from, it ultimately ends up as an Image. This is where the beauty of Go interfaces really shines. Go comes with support for gif, jpeg, and png formats in the standard packages. These examples demonstrate how to programatically generate, encode, decode, write to file, and base64 encode images. We will also cover a little bit about interfaces.

CoffeeScript Basics

CoffeeScript is an evolution of JavaScript. It actually compiles down to optimized JavaScript. It feels a lot like Python because of the significant whitespace, and lack of semi-colon line endings and curly braces. The syntax is a lot sparser than JavaScript which lends to its readability and simplicity. CoffeeScript can be run as an interpreter or a compiler. You can write plugins for the GitHub Atom Editor using CoffeeScript. The compiled JavaScript can be used for a web application or for command line applications run by Node.js.

Working with files in JavaScript (Node.js)

Node.js is the server side version of JavaScript. Since it is not limited by the web browser, we can access files on the file system. Here are several code snippets that demonstrate how to read, write, move, delete, change ownership, change permission, check if exists, and get statistics file size, timestamps, and ownership for files.

How to Manage CPAN Urllist

CPAN is a Perl tool for installing and managing modules. CPAN stands for the Comprehensive Perl Archive Network. There are many mirrors around the world that host the same CPAN archive. Sometimes mirrors shut down or you may want to add mirrors that are closer to you. These examples demonstrate how to add and remove mirrors from your configuration.

Input, Output, and Concatenation with Haskell

Standard in and Standard out (STDIN/STDOUT) are very common methods of interacting with the user. Standard in is typically the keyboard and standard out is the terminal. Haskell makes this very easy to access. The getLine function gets a value from the user and putStrLn and putStr allow you to write to output. The ++ operator is used to concatenate strings.