Where things I've worked on get documented.
Java Native Interface DLL Debugging
Sometimes your JNI DLLs have bad code in them, it's a fact. Here is how you can connect to a
live instance of your Java application and debug the native code using Microsoft's Visual
Studio Express 2008 package and NetBeans. While this example focuses on locating crash code,
setting breakpoints and stepping is also possible using the same technique.
Privilege Deescalation
Usually I set my Windows system up to have two users: one Administrator and one Limited User Account.
Running as an LUA is a good thing, it means viruses and spyware have a harder time getting a foothold
in your system. For those few times you need to run as an Administrator to grab drivers off the 'net
or whatever, it's also good to make sure your browsers run as Limited Users too.
Stop All Services
A quick JScript file that will stop as many services on Windows as it can.
Handy for when you want to defragment your hard drive.
Simple AC Monitor
This is a small daemon I wrote while building up a server on an old laptop
of mine. Since I usually switch off the AC power to the laptop before going
to work, I needed an automatic way to turn it off without having to log in.
Rather than cron job it or shell script it, I just hacked together this
quick daemon.
serialping.c
A small program I put together to demonstrate the use of getopt_long(), the termios
interface, and signal(). It's written in response to a real-world need and serves as
a template for similar programs. (e.g. any program that takes parameters)
"RAII in C"
A short program to demonstrate resource allocation unwinding under exceptional conditions
in C, one of the few instances where the goto construct makes sense.
Kernel/User-Space Latency Measurer
A set of two programs that measure latency under Linux between packet reception at the
kernel level network stack and the delivery of a packet to the user space network client.
Uses the SO_TIMESTAMP option from setsockopt() to force the kernel to timestamp an
incoming packet's arrival time.
Fixed-Point FIR Filter Considerations
Just some notes and things to keep in mind, from the design of FIR filters for an Atmel AVR microcontroller.
Make JavaScript Load Faster
Switching on Apache's deflate compression is great, if you have access to httpd.conf. If not, here's
another way you can get your JavaScript to load faster.
Snippets
Discrete Fourier Transform
Fast Fourier Transform
Bit dumper.
access() call.
if().
sizeof-test.
Radio Free America: A map of spectrum utilization from 54-806MHz.
Something I threw together to see how well our precious television spectrum is being used.
Embedded Linux Dev
Project page for the embedded Linux work I was doing on the LogicPD SH7727 (Renesas SH3) development board.
Calder-A
Calder-A is a bigger brother to Hellbender. Another "caseless" computer, this one in the style of Alexander
Calder's mobiles, in other words,
mobile computing. Reengineered into Extrovert, below.
Extrovert Caseless
After deciding that Calder-A was just too unwieldy for normal use, and ultimately a bit ridiculous,
I reworked the raw materials into a more compact and usable system. I call it Extrovert, because its
guts are all on the outside.
I created a new Win32 / Windows installer for the MySQL database software using
Nullsoft's Install System. Copies of the server and the scripts used to generate
the install files are posted here. Have a nice install!
[mv 12:40 PM 3/27/2009: This stuff is ancient, and I've removed the binaries, but left the notes on
what I did for my own sake.]
This script takes an input directory and recursively replicates it with zero-length
directory and file entries to a specified output directory.
What this was used for:
Rather than running the compress/decompress cycle on real data while building-testing
an installer, it is much easier if all the input files are simply zeroed out, making
compression instantaneous.
Warbiking
While I was in Washington, DC, I had the opportunity to do a little Warbiking.
The density of Wi-Fi in Washington is excellent.
PortMonitor/G: A graphical network port watcher.
This is a program I wrote to familiarize myself with the winpcap packet capture
library, thread programming concepts, and the SDL multimedia library.
I bought a new used laptop recently (12.19.2002) and the battery that came with it was Dead On Arrival (DOA).
Luckily, I had an extra battery pack sitting around from my old laptop, and I correctly predicted that the
actual lithium cells would be identical. So I ended up just swapping the dead cells for live ones.
Here is the surgery in pictures.
Just a couple of screenshots from an infared file transfer between my two laptops, in case anyone wants to
know just what they look like. Nothing really special.
Euphemistic Safeway Map
Washington, DC has numerous Safeway grocery stores that residents have lovingly nicknamed
such things as: Social Safeway, Soviet Safeway, Sixties Safeway, and so on. Just for kicks, I decided to
plot them out on a map.
FCC ITFS Antenna Map
Lately, I've been working on the visualization of geographic coordinate data from FCC license databases.
Unfortunately, professional GIS packages cost on the order of $1,000+ and I don't have that kind of money.
So I wrote my own package.
The heavy lifting is done using PHP and the GD graphics library extension, with data sourced from a
MySQL database stored on my laptop.
Way Out West GPS Data
When I originally wrote the GIS analysis package, I ended up with a fairly flexible framework which I tweaked
to process more diverse datasets, such as the GPS data I gathered on my trip out West last summer.
A Collaborative Effort of The New America Foundation and The Shared Spectrum Company, this is a short memo describing measurements
of the electromagnetic spectrum between 30MHz and 3GHz. What we found out was that ~62% of the radio spectrum is unutilized during
peak hours in the urban area around NAF's headquarters. [2003-07-16]
Also included is a snippet of video from the presentation we made at the New America Foundation on June 20, 2003.
"Issue Brief #12: Unlicensed Sharing of Broadcast Spectrum"
by Max Vilimpoc and J. H. Snider
[pdf]
[NAF pdf]
A short (4pg) Issue Brief I put together with J. H. Snider, a Senior Research Fellow
with the Spectrum Policy Program at the New America Foundation. In it,
we discuss the potential for a transition of the broadcast television
spectrum towards greater unlicensed use. [2003-07-16]
"Why Washington Matters in the Silicon Valley"
[pdf]
My first published article, appearing in the August/September 2003 issue of IEEE Potentials magazine.
In it, I discuss the importance of public policy and why engineers need to participate in the
political decisionmaking process.
Argus
Created as part of our senior capstone curriculum at Ohio State,
the Argus Project represented the packaging of many distinct
skills into a compact, computer-operated, remote-controlled truck.
Ultimately, our team fit two wireless transmitters, two
microcontrollers, and a host of sensors into every available
space on the truck.
Available sensor data included: acceleration, GPS coordinates,
velocity, and motor/battery temperature.
Additionally, our system had ability to control lights on the
truck including: headlights, brake lights, reversing lights,
turn signals, and fog lights.
Created by Craig Bennetts, Shefali Patel, and I for a course in medical
imaging. This presentation details the process by which High Intensity
Focused Ultrasound energy can be used to treat prostate cancer and other
tissue by inducing ablation and localised necrosis of cancer tissue.
The Digital Millennium Copyright Act: Questions and Critical Observations Slideshow
[html]
[pdf]
[powerpoint]
DMCA: Observations and Critical Questions Final Report
[pdf]
Here is a presentation I created for the
Washington Internship for Students of Engineering (WISE)
as part of my summer 2002 research project. I discuss a few of the problems currently faced under the
current system of copyright.
Appended is a copy of the final report I wrote for the WISE program. (It is also mirrored
here.)
There were numerous comments in this docket that supported or dissented the use of GPS + database-backed interference mitigation
for unlicensed devices (a user-side solution). A better idea would be to shift some responsibility for interference mitigation onto
licensed television broadcasters (a server-side solution).
Two methods should be considered: (1) adding a geolocation signal to NTSC analog television broadcasts, by tucking data into the
Vertical Blanking Interval (VBI), and (2) adding a geolocation signal to an ATSC digital television broadcast, by tucking location
data into the Field Synchronization Segment.
Adding a geolocation signal that uniquely identifies television towers is a good idea that mandates an appropriate level of spectrum
management and stewardship on licensed broadcasters, as already is expected of end users. The proposal also offers a great
public service, making for a geolocation system similar to GPS, with potentially more robust results for urban users.
Privatization, Government, and Economics
[pdf]
[html]
The essay "Privatization, Government, and Econonmics"
which I wrote for the
John Glenn Institute
Essay Competition in 2001 at OSU, which took the first place prize.
The Net Effect on Popular Participation in Government
[pdf]
[html]
draft [
jpg1 |
jpg2 |
jpg3 |
jpg4 |
jpg5
]
Here's my essay "The Net Effect on Popular Participation in Government" which I wrote
for the
John Glenn Institute Essay Competition for 2000 at OSU.
This paper took second place.
Newly added to the collection are 5 JPEGs representing the draft work that I did while writing the essay.
It's pretty esoteric, but might give some insight into my thought processes.
Hellbender Archive
The Hellbender Archive is a small "caseless" computer I built using 12" threaded steel rebar and custom
cut wood supports. It's getting up there in age, but it runs Linux + Apache + PHP and SSH pretty handily
and it also handles the video capture for my webcam. While I was travelling in Mexico, I remitted
close to a gigabyte worth of photographs to it over the course of three months. Its security has never
been compromised.