Matt Roberts

A Page in Progress

Contact by Email

First, some links about me, and my current activities:

Resume: Do you need a gifted, flexible, and well-rounded computer scientist for your organization's development team? How about one with additional background in engineering, telecommunications, information security, system administration, and network design? Check out my current resume.

Faith: I encourage you to check out the links to Faith, below, for a number of websites about faith in Jesus Christ. Always remember that the story of the entire Bible is how a Holy God reconciles sinful man to Himself through His Son.

Hobbies: I have recently started back into an old hobby, Amateur Radio. On frequencies below 30MHz, my operations are almost completely limited to digital modes, including PSK31/63, RTTY, Olivia, Contestia, and CW. For now, most of my time on the air is spent contesting.

Radio Projects
Below are articles on some of my recent radio-related projects.

Small/Magnetic Loop Antenna Projects
This article describes my recent experiments using small transmitting loops for high power levels at HF. That article describes construction considerations and outlines the process I followed and some of the experiments done with these antennas.

Another loop-related project I am working on is an auto-tuner for QRO small loops, which is being tested right now. The software is a Windows application, paired with Arduino hardware.

Genetic Algorithms for Small Loop Antenna Design
This project uses GA/GP/EC techniques to optimize small transmitting loop antenna designs, while balancing competing design constraints.

Digital SWR Meter Project
In order to make the AutoCap project completely Open Source, I have added a project for an inexpensive USB SWR meter kit, also based on Arduino hardware.  Support for this kit has been added to the AutoCap software.

The $70 Digital Rotator Controller
This is a brief article about using an Arduino to build a rotor controller for my back yard hexbeam, based on updated K3NG firmware.

Looking for a simple, elegant rotor control console for Windows or Linux?  So was I, and I couldn't find one!  So I wrote this one as a companion for the rotor controller project listed above.  This version is based on .Net, so it runs on Windows and Linux.

A Simple CW Terminal
I gave myself the challenge of getting a tiny Arduino board to do both CW encoding and decoding, just using the CPU power that was on the board. This is an ongoing project describing the firmware and hardware developed to meet the challenge.

The $50 QRO Multi-Band Dipole
This article describes a series of projects and experiments using window line for remote tuning of a multi-band high-power dipole for HF.

Software Projects
Below, you will see some examples of other software projects.  They are mostly here as an appendix to my resume, to show some additional work product in support of the skill sets listed there.  These are mainly small utilities and libraries I have written to make my life useful in different projects. If you would like to see my coding style, these are some examples.  Everything here is GPL or LGPL licensed.

This is a C++ library that contains tools for many things that I couldn't find in C++ standard libraries.  Since I started this project, many things have been added to C++, but it's still a useful library for me.

Simple Image Viewer
This is a C#.Net application that I cooked up in an evening to be able to animate and view long lists of SOHO imagery from NASA. I have thousands of these images backlogged, and I want to flip through them quickly to find anomolous frames. Not finding a ready-made tool that I liked, I just used C#.Net to make one. This project requires the CLR 2.0, which does most of the heavy-lifting.

Monopole Antenna Efficiency Calculator
This is a C#.Net application that calculates the efficiency of an electrically-short monopole antenna, given several parameters about the antenna system. Requires MS CLR 2.0.

The dsp-sim package is still very much a work in progress. In this package, I am implementing various digital signal processing (DSP) algorithms on my PC. This packages builds on a P4 Linux system with GCC 3.3. This is the framework under which I am testing some ideas for my MS research at OSU. A successful build of this package requires libsndfile to be available.

The sgateway package implements a serial (RS-232) gateway between two different Linux systems. Building the package requires the my++ library, above.

This is a simple delivery filter for Qmail. It is meant for invocation from the dot-qmail file in the user's home directory. This package requires my++, above, to build properly.

This is a pipeline logger, similar in usage to multilog from DJB's daemontools package. This logger is different, in that it creates a file for each clock day that it is run, rather than rotating files based on logfile size, as is the case with multilog. I still use multilog for many apps, but for specific projects, I needed a more calendar-based logger, and this was it. Written originally in C, the source is now C++, with a very C feel.

This is a utility written in Python which makes use of the ID3 Library and its associated Python extension to tag MP3 and OGG files. I couldn't find a really flexible tagging program that could be easily scripted on the command line, so I wrote one.

My most recent Ruby project, this utility runs a child process for a specified maximum time, and then terminates it if it tries to run longer. This is a tool I use for scripting programs that I want to run over a specific time of day, such as recording my favorite radio programs, so I can listen to them later.

I am starting to enjoy working with high-level languages, especially in smaller projects, where code speed isn't critical. Before the Python LDAP project came to its current level of maturity, I wrote a very similar extension to Python to give me the ability to use the OpenLDAP libraries from my Python apps. This is not the python-ldap library available at SourceForge. This is my own library, which I happened to name the same thing, before the former became popular.

The bintail package contains a single application, bintail. The program reads a normal file from disk, and pipes the output to stdout, byte-by-byte, with no translation, similar to what tail(1) does to text files. This is useful for "tailing" binary files, such as WAV files, while they are being written in realtime. This app is a work in progress, but it already does what it was designed to do for me.

These are links to many of my favorite and/or most-used sites. I have some rather diverse interests:

Bible Gateway and Blue Letter Bible - The scripture online - in many languages.
E-Sword - Incredible FREE Bible study software.
Stillwater Bible Church - Home of my favorite Bible teacher.
Koinonia House (K-House) - Home of my second favorite Bible teacher.

Mozilla - Home of Firefox and Thunderbird.
VanDyke Software - Home of SecureCRT - great terminal emulation software.
GNU Software - Organization for developers of Free & Open Source software.
Free Software Foundation - Advocacy organization for FOSS.
Linux Kernel - The main workhorse of my day.
Samba - Share files to Windows -- better than Windows!
VIM - An awesome editor.
DJB's Software - DJB writes Unix software the way Unix software is supposed to work.

Software Development
GCC - All you could ever want in a C/C++ compiler.
Python - A very expressive high-level language.
Ruby - Another very expressive HLL; Ruby Docs - Ruby's documentation site.
PHP - Powerful web scripting language; sort of a cross between C and VB
LISP - How people can learn to "love" LISP is behond me, but it's hard to beat for a self-modifying programming environment. Do LISP programmers see constellations of parenthesis when they look at the stars in the sky? I think so...
MSDN - I spend a great deal of time doing Windows programming these days, for which the MSDN site is a prerequisite tool.

Web Technology
W3C - Home of HTML, CSS, XHTML, etc. - so many "standards" to choose from!
Apache - The "Swiss Army Knife" of web servers.

Raspberry Pi - These are nice, inexpensive single-board Linux computers.  I have used these for server and applicance products, and they are very capable for their price.
Arduino - Creators of the Arduino platform.  I use many of these in my projects.
SparkFun - One of the best hobby electronics sites I have found.
AdaFruit Another hobby-friendly electronics shop.
SainSmart - Some nice Arduino clones.  I still like to support Arduino, but if you need a really inexpensive Arduino-compatible board, these deserve a look.
Mouser - Just about any electronic component you could ever want.

Amateur Radio
ARRL - The Amateur Radio Relay League in the United States.
eHam - Another good site on ham radio.
QRZ - Online database of hams.
eQSL - I really enjoy getting paper QSL cards, but that's really not very practical anymore. This virtual alternative is a good idea.
FlDigi - Some good multimode digital software.
MMTTY - My current choice for RTTY operation.

Document version 2015-02-07(a)