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.
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!
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.
There is a wget package available for Node.js that makes it really easy to integrate the convenience of wget in to a Node.js program. It is useful for downloading a file from any number of protocols. This example shows you how to download a file using wget in Node.js
These code snippets demonstrate how to access command line arguments for a Node.js program.
jQuery provide a convenient way to access elements using CSS selectors. Node.js has a package called Cheerio that allows us to make jQuery style code. The Request module can be used in tandem to provide the ability to perform an HTTP GET to fetch remote HTML documents. That is useful for web scraping.
Perl is commonly used for sysadmin tasks which frequently involves managing files. These examples demonstrate how to read, write, and append files with Perl.
This example shows how to get information from the user using Standard Input (STDIN), which is typically the keyboard.
Exif information is a group of meta tags stored on an image. It can contain information about the image, the camera used to take it, software used to manipulate it, latitude and longitude, and even more. This example shows how to use Perl to extract and manipulate image exif data.
This example shows how to list the contents of directories in Perl. It also demonstrates how to change directories, create directories, differentiate between files and directories, and use a regular expression to limit the results or search for particular file names or extensions.
Serial communication is still used a bit today. Arduino's are fun programmable microcontrollers and the main method of communication is serial over USB. This example will show you how to communicate using serial in Perl.
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.
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.
In Haskell, you can access the command line arguments with getArgs. Check out this example.
Haskell is a purely functional programming language create in 1990. This Hello World example will help you get started with Haskell. Install Haskell for your system from the Haskell website. The program installed is called ghc which stands for the Glasgow Haskell Compiler. It can be run interactively or as a compiler.
C and Assembly can be used together to provide extra flexibility. You can create static libraries in Assembly that you call from C, and vice-versa, you can call C functions from within Assembly. Check out the code samples below that demonstrate that process.