• Capturing HTTP/HTTPS Traffic With Tshark

    I have been working on a tool that collects information about network requests to help debug failing integration tests. The tests click around a website using Selenium to make sure everything works as expected; if a test fails, network logs might help track down issues with API calls. Wireshark is helpful for analyzing HTTP requests over SSL/TLS, but I needed to figure out how to do this programmatically. Tshark is the command-line cousin of Wireshark (“terminal-shark”); it is quite a capable tool, but it took me a while to figure out how to use it for what I wanted to do.


  • Tips for Working With Stanford's Myth Machines

    Stanford provides a cluster of computers for use in CS classes known as myth that is equipped with gcc, gdb, Valgrind, etc. I’m using these computers as part of CS 107 this quarter. (If you aren’t a Stanford student taking CS 107, this post might be totally irrelevant to you, but maybe you can still get something out of it.) These machines can be a bit of a pain to use for someone who has never worked over SSH before, but there are a few things you can do to make life happier.


  • Repairing a Dead Switch on the Kinesis Advantage

    I recently bought a used Kinesis Advantage from EBay. Unfortunately, the keyboard came with a dead tilde key. I emailed Kinesis Support, who told me the following:

    1). You can send us the keyboard and we can repair it for you. No cost if the keyboard is under warranty. Outside of warranty $40 + return shipping.

    2). Since the problem is isolated to a single key on the left side of the keyboard, then we can send you a replacement right keywell (right side of keyboard with alpha/numeric keys) for $30 + shipping (or free if under warranty) and you can swap it out yourself . Only a screwdriver is required and step-by-step instructions are provided.

    3). If you’re handy with a soldering iron, I can send you a few replacement key switches free of cost and you can swap out the bad key yourself, which as far as soldering goes is fairly simple, however I obviously wouldn’t recommend this if you don’t have experience soldering.

    Since the keyboard was no longer under warranty, I figured I’d give the third option a shot. Kinesis mailed me three switches for free (which was very surprising and very nice), and I crossed my fingers and hoped I wouldn’t break anything. The repair turned out to be relatively straightforward, but because I couldn’t find much online about other peoples’ experiences doing this, I thought I’d post pictures of what I did.


  • Experiences With Community College

    When I reached the end of my senior year at the Illinois Math and Science Academy (IMSA), I had a difficult decision to make: Which college should I go to? I hadn’t been accepted to the schools I most wanted to attend, and most of the schools that did accept me costed upwards of $30,000 a year. My parents encouraged me to consider community college, but I struggled with that idea. I had never heard of anyone from my school ever attending a community college, and I thought I was above that. All of my friends are heading off to all these big-name, top-ten colleges, and I’ll be off to… community college? In the end, though, that’s what I decided to do, and I’m glad I went that route. I wanted to talk about my experiences for anyone that might be in a similar position.


  • You Should Write

    I write a lot. I rarely publicly share what I write, but I write a lot anyways, and I consider it one of my most important habits. However, I know many people don’t write, and many who want to write don’t know what to write about. This blog post intends to change that!


  • Getting Started With Web Development

    I recently taught an introductory frontend web development workshop for the Harper Society of Engineers, and I promised I would post a writeup of what I taught. This is that writeup!


  • A Dead-Simple Break Timer for Mac

    Far too often, I sit down in front of the computer to get some work done, only to look up and realize that eight hours have elapsed, I haven’t eaten, and my prescription has increased by 2 diopters. Break timers are handy, but many cost money and/or are too bulky and annoying for my preferences (they’ll pop up a big overlay on your screen saying HEEEEYYY RYAN TAKE A BREAK, which kills my concentration if I am thinking about a hard problem). My experience with most break timers is that I disable them within a few hours of using them. All I want is a subtle reminder, and I figure it shouldn’t be too hard to script that myself.


  • Using MASM on Mac or Linux via Wine

    This semester, I am taking a class on assembly programming using Kip Irvine’s book “Assembly Language for Intel-Based Computers.” Unfortunately, the book should really be called “Assembly Language for Intel-Based Windows Computers,” as it is written for Microsoft Macro Assembler (MASM). It mentions that the programs in the book could be converted to TASM assembly fairly easily, but they will not run out of the box.

    I could run MASM on a Windows virtual machine, but that would be fairly heavy to have running whenever I want to work on assembly. Instead, I wanted to see if I could run MASM with little overhead using Wine. It turns out that this is fairly easy to do!


  • Hello, World

    I have decided to start a blog.

    I have long considered starting one, but I never really knew what to write about. It often feels like every problem in tech has already been adequately explained on some other fellow’s blog in words better than I can manage.


subscribe via RSS