ASCII Bell Character

Sunday, August 17th 2014

The other day, I accidentally printed a ton of binary data to my terminal. Upon doing so, my computer started to beep incessantly - which startled me a bit. I looked through the list of processes, closing all the terminals, but the beeps persisted.

Turns out this is a feature, and not me going insane. The ASCII value 7 is the Bell character, one of several control codes or non-printed characters in ASCII. Apparently this dates back to the days of teletypewriters, where it was used to ring a physical bell (as opposed to just a digital sound).

This article points out that it can even happen in the case of the Unicode bullet.

It just so happened that my data was full of 0x07, and all the beeps queued up, running the entire time as I searched Google and Wikipedia for solutions. The answer in my this case was to use the command net stop beep, found on this Stack Overflow post.

View Comments

Simple Reloading Server in Bash

Tuesday, August 5th 2014

It’s often extremely useful to have a server that automatically reloads when any of the source files change. Grunt is commonly used for this, but in some cases that is overkill - a simple bash script will suffice. The script below uses Python 2 to start the server and inotify-utils to wait on changes in a directory.

set -e

# Create site dir if it does not exist
mkdir -p site

# Python server
cd site
python -m SimpleHTTPServer &
cd ..

# Kill python server on exit
trap "exit" INT TERM
trap "kill 0" EXIT

while true; do
  echo "Building site..."
  sass theme/styles.scss:theme/styles.css

  echo "Waiting for changes..."
  inotifywait -e modify -r .
View Comments

The Damned

Sunday, July 20th 2014

A couple weeks ago, I took part in a game jam on called the AGDG Microgame Jam. The premise behind the jam was to create a WarioWare style game that takes place on a single screen. I chose to try a local multiplayer game, in the vein of the frantic, competitive multiplayer from the GameCube adaption of WarioWare.

Unfortunately, since it was mostly made during a single weekend, I didn’t get a chance to play-test at all, and for a multiplayer game that’s a death knell. If I get the chance to actually test it out, I might go back and tweak the mechanics.

Possible Concerns:

  1. It’s too easy to survive, especially after a certain amount of blocks have dropped from the arena.
  2. More obstacles should be implemented that actually bring out the chain mechanic.
  3. Chain physics is still wonky.
  4. Players may be so unwilling to cooperate, that any movement at all is impossible
View Comments

A Perk of Using WebGL

Thursday, November 28th 2013

I’ve recently been testing with WebGL for a project, and one of the pretty cool perks is that you can just use regular HTML/CSS/JS to create your GUIs. In this quick test, I made a simple chat window for the UI.

When I used Ogre3D, I knew about some libraries such as Navi that embed Mozilla/Chromium, but I always assumed they were more work then the time saved. Having now used HTML to create a GUI, I think I’ve changed my mind about that.

View Comments

Recent Hackathon Projects

Thursday, November 28th 2013

StumbleTube [Code] [Web]

StumbleTube was a simple hack that I made with three other students at the 2013 NorCal Facebook Hackathon. The goal was to present YouTube recommendations (pulled from your Google account) in a fashion that’s easy to quickly traverse, and let you find videos that actually interest you. You get videos in sets of four - hovering over a video plays only the audio from that video, and clicking on one makes that video full-screen. At any point, you can pick a different video, or request a new set of four. You can also like videos to further improve recommendations.

As a bonus feature, we added a QR code that, when scanned, will take you to a remote page, letting you control the entire player exclusively from your phone. We actually ended up winning first with this hack, and progressed to the global finals.

HackWall [Code] [Web]

HackWall was another simple hack that we made for the global finals. It’s essentially a real-time collaborative bulletin-board. All you need to do is create a wall, share the link, and you can collaboratively create/move notes, draw annotations, and create mind-maps.

View Comments