[ back to Tom 7 Radar ]

     Viewing posts in category hacks...
(view all posts instead)
next
p
e
r
s
o
n
a
l
SIGBOVIK 2017: ABC (31 Mar at 12:34)
Hello my bloggies! I back-dated this post because even though I was all set up to post about my SIGBOVIK accomplishments, which this time conveniently occurred in the month of March, I then celebrated SIGBOVIK so thoroughly as to go to bed without actually posting here.

This year's invention is a strange artifact; if you want to experience it with fewest spoilers and have some time, then check out the paper version. I also put together a youtube video, since I like doing that:

SIGBOVIK 2017: Compiling C to printable x86, to make an executable research paper, by tom7
Click for nerd-talkin'


Despite the possibly misleading thumbnail, the video is mostly live-action, as I it after a popular YouTube series called Numberphile. The project doesn't lend itself too well to video, so my feelings won't be hurt if you don't sit through this one. :) I did my best to make the ideas and puzzles fun for people that don't have deep knowledge of this stuff but are interested.

SIGBOVIK was also live-streamed, so for the first time we have a mediocre recording of all the talks if you want to tune in after the fact too. My talk's at 1:22:00, and it's more bite-sized than the above.

Also, I must say: The conference this year was excellent, perhaps the best ever. The conference hall was packed; the overall quality of work was very high; the proceedings is thick with really interesting stuff (interspersed with the requisite juvenilia), and the talks were well-prepared and didn't drag on, thanks partly to the new timer system. It's pretty crazy how this conference has a life of its own now; almost nobody from the original group is organizing or even writing papers for it. We may even be getting to the point where we have to be selective about what we print..???
Categories:  hacks  sigbovik (13 comments — almost 3 months ago)   [ comment ]
p
e
r
s
o
n
a
l
SIGBOVIK 2016: Snacks, 3D Zelda (02 Apr 2016 at 12:57)
Sup team! Yesterday was SIGBOVIK 2016, and as usual I had some entries that were more work than warranted by a joke conference.

The minor work was Reordering the Snacks is Effective and Just, which concerns an operational and ethical question in office snack behavior. Probably not worth it unless you go for the deep cuts.

The thing I poured a month into is The glEnd() of Zelda, which is a hack to automatically emulate NES games in 3D. I spent a lot of time crafting a video demonstration and explanation with my typical non-SAG "acting", which even seems to go over well with non-nerds:

Click here for Automated 3D NES
Click here for Automated 3D NES


I sort of ran out of time on this one, so I hope to have some more refinements to the code and to then post a download in a more user-friendly form. But you know how these things go!
Categories:  sigbovik  hacks (10 comments — a year ago)   [ comment ]
p
e
r
s
o
n
a
l
Portmantout: A portmanteau of every English word (30 Apr 2015 at 22:59)
Oh, wow, that was dumb. I actually have at least three good posts saved up, but for some reason I thought I already posted in April. So I backdated this one. It's really May right this second. But it concerns April work:

Portmantout video!
Portmantout video!


This is a video I made for my little hack about "Portmantout". Portmanteau is a stringin'-together of two words (like caviar + armpit = caviarmpit), and Portmantout is when you do that for all of the words in English! I did the work and wrote the paper for SIGBOVIK but the video is part of my slow attempt to make an entertaining Youtube channel. It's a lot of work to put together these videos but I'm happy with how it came out!
Categories:  hacks  sigbovik  drawings (4 comments — 2 years ago)   [ comment ]
p
e
r
s
o
n
a
l
ARST ARSW (29 Jun 2014 at 23:36)
At the beginning of the month I published ARST ARSW, which is Star Wars sorted alphabetically. It "went viral" (I think it was actually bacterial. Gram stain was positive) almost immediately, due to some lucky press, which is fine by me. If you haven't seen it, clicky-clicky:

ARST ARSW: Star Wars sorted alphabetically
ARST ARSW: Star Wars sorted alphabetically


Literally, every word spoken in the movie is assembled in alphabetical order along with the corresponding video clip (and ties of course broken chronologically). The description contains some "fun" facts, like that "lightsaber" only appears once in the movie!

At 43 minutes, it's a bit hard to watch the whole thing in a sitting, although many have declared success. I've only been able to finish it with a break or two, in all honesty. Maybe on the elliptical machine. If you do watch, please get to at least Alderaan (link skips directly) to see how it can create unintentional humor, as each character pronounces this fictitious planet's name differently (Luke kinda goes with whatever the person he's talking to says). Some other parts I like: Two words appear adjacent in ARST ARSW that are also adjacent in the movie, such that it goes an an an an ... an analysis. All the words that appear in Leia's hologram message are interesting, like Kenobi. See how much time people spend looking for Luke in this movie, and here you can see one of my three mistakes (one of the "Luke"s is out of order because it had an invisible tab character after it in my transcript). Catch 'em all! And I think Han Solo's scene that contains almost all the uhs in the movie is pretty hilarious. There are lots more favorites highlighted in the comments, along with the ubiquitous internet abuse. (Mom, who felt protective at my Ph.D. defense: Never read the comments.)

For F.A.Q.s like "Why did you do this?" take a look at this nice article in WIRED. That was the best writeup (thanks Emily!) but there were several, like in Yahoo Movies and cracked.com and many more. My favorite thing was that Conan O'Brien made fun of me on his show! He even has his own parody version, which is pretty good, except for that atrocious font. Here is the real font for next time, Conan.

It took a while to make, but people routinely waste entire weekends just binge-watching Netflix or worse. Not only was this basically relaxing (not to mention that it absorbed that nervous energy that you probably know I'm aflame with) but I got some practice making software for video editing. The source code is here. It's a pair of multithreaded C++11 apps. Basically the process was like this: I loaded all the frames up into memory, along with the audio, and had keyboard commands for marking a section of the video (actually the audio—you need much better resolution than 24fps to chop up words) and refining its borders while listening to it in a loop. I'd find a phrase in the audio, then type "if this is a consular ship where is the ambassador" and it'd just split up that loop into 10 mini-loops of the same length, one for each word. Obviously "if" is much shorter than "ambassador", so then I'd go and adjust the edges of those loops with the keyboard. I made tweaks to the program as I went, to make it efficient and fun-ish, and eventually got pretty fast at it. Here's what the UI looks like:

The software called ARST.EXE. Click for full-rez
The software called ARST.EXE. Click for full-rez


I also learned some things from making this video and the reaction to it. First: Star Wars is a really well-made film. I've probably only seen it four times or so—I'm no superfan—but watching the movie this closely, frame by frame, was a master course in filmmaking. At the micro level, I was very surprised how densely packed the dialogue is, with almost no pauses in between lines. (And yet it doesn't sound weird? People obviously don't talk like that.) It was neat how sound effects like laser blasts were carefully placed between words of dialogue during messy scenes, so that you'd still be able to hear the characters. I was also surprised with how little actual sound you need in order to perceive words like "a" or "it"; I often had trouble even isolating what part of the audio even corresponded to the word, despite it being clear that the character was saying that word when I listened to the whole line. It was notable how much of the story is propelled by the two droids, and I entertained an alternate theory that C3PO was Keyser Söze-ing the whole plot by "interpreting" R2D2's nonsense bleeps, which is pretty plausible.

I also learned that people have done this kind of thing before. For example, someone alphabetized one of George W. Bush's speeches as Qaeda Quality Question Quickly Quickly Quiet. There's also AARRSSTW, which I was terrified to see because I thought it might have been literally the same thing, but it is in fact Star Wars reordered by the length of the shot. In general, this kind of exhaustive analysis of the words in some work is called a Concordance, which is usually done entirely earnestly for books like the bible by people who are even more extremely boring than me.

Lots of people have asked to do other stuff with the timecoded words, especially, something where you type in a phrase and it outputs a video of clips from the movie speaking your phrase. (Or more cleverly, take the movie itself and replace each word with a clip of a different character saying that word.) There are lots of good ideas, but I decided that it would detract from the art of this one to do anything that might be perceived as "useful" or "interesting" with it. The point is the movie and that it has no point.

Moreover, although I'm always happy with attention for my projects, this one is now probably my most famous (!), at least if measured by Youtube views, which are now nearly 1 million. (Though people have watched more than twice as many actual minutes of my previous virus.) I don't want to be known as the Star Wars guy or something, so we are now done with this project and it's on to the next! Expect the next post to contain an unexpectedly resumed classic.
Category:  hacks (13 comments — almost a year ago)   [ comment ]
p
e
r
s
o
n
a
l
SIGBOVIK 2014! (13 Apr 2014 at 10:29)
Almost two weeks ago there was SIGBOVIK 2014, the 8th annual April Fool's academic conference at CMU. When I say April Fool's conference, it's not that it's a conference about April Fool's Day or something, rather, it takes place on A.F.D. and contains "research" that may or may not be real, and is usually whimsical.

This year I emceed, labcoat and all, and begin with a one-day-hack "SIGBOVIK Plays Twitch Plays Pokémon Plays SIGBOVIK", where I rigged up a website with a controller that looks like this:



(told you I did it on the morning of SIGBOVIK!) and internet people could click the buttons to vote in real time on what a Nintendo emulator running this weird Chinese pirate NES version of Pokémon would do:



although it was delayed 10 seconds due to streaming to twitch.tv, just like the real Twitch Plays Pokémon. But the "twist" here is that the software then reads some bytes out of Pokémon's RAM, and uses those to pose the line drawing of a person, the idea being that the current SIGBOVIK presenter must take on the pose indicated, thus completing the Circle of Life and "playing" SIGBOVIK. Even though my prerogative as emcee is technically limitless, almost nobody followed this decree. It might have had something to do with the fact that the pose changed three times a second, due to bad planning/tuning. Still, it was there projected on the wall, always haunting you:



Connoisseurs of weird pirate versions of Pokémon will notice that we made it into Professor Oak's laboratory to select our beast, which took hours of trying to time the ten-second delay correctly. We accidentally exited the lab before selecting a Poké-egg.


There were many fine ideas at the conference, some of which are collected in the SIGBOVIK 2014 proceedings. My papers this year are even more abstruse than usual. The first was "New results in k/n Power-Hours", a ten-page hangover that revisits the incorrect or nonsensical theories in our paper from 2012, "Algorithms for k/n Power-Hours". Both are about a generalized version of the popular drinking game, but only the latter was written while sober. The results here are completely accurate, studied at length with real software. The "joke" in this case may be a little edgy for SIGBOVIK, the idea being to oversolve some pointless problem and then not even present it in a way that's humorous. It has some cool-looking figures, though. That one won the "Most Deserving of Being Real Research" award. Second I contributed "What, if anything, is epsilon?", a more or less serious descriptive account of how programmers set the value of epsilon in their software (spoiler alert: they range over 300 orders of magnitude!), whose results are obscured by absurd choices in data visualization. Third was "It still seems black has hope in these extremely unfair variants of chess", wherein I combine chess with populist board games, ruining it, and then study strategies for avoiding domination as player 2, using computer game tree search.

I think I started 7 other SIGBOVIK papers that I didn't finish on time, obviously, but I'm keeping the dream alive.

Up next: I have an idea for the Pittsburgh Marathon, and if I simply apply myself to something useful for once, I should be able to put together the apparatus in time (three weeks). In two weeks, another trip to Zurich with a stop in Lugano. Also: Barn-based board games.
Categories:  hacks  sigbovik (8 comments — almost 4 years ago)   [ comment ]
p
e
r
s
o
n
a
l
Ludum Dare 23: T in Y World (24 Apr 2012 at 23:37)
T in Y World
T in Y World - Play that thing!


Sup guys. I made this game in 48 hours for Ludum Dare #23, whose theme was "Tiny World". It is an experimental homage to an old game called ZZT, with some twists like that everyone can edit the game world, making it a Moderately Multiplayer On-Line Rule Playing Game. Other features:

Very expensive simulated color-ASCII graphics
Content & technology double-whammy
False dichotomy
Four new music tracks, including shamelessly self-referential theme song
You can turn off the annoying music
Spoiler 1
Thrilling Computer Science based gameplay
Integrated level editor
Spoiler 2
Boss battle!!


You can play it or get the soundtrack, or both!
Categories:  mp3  hacks  video games (16 comments — 10 months ago)   [ comment ]
b
o
v
i
k
SIGBOVIK 2012: The National Month Of Pushing Spacebar (31 Mar 2012 at 22:31)
SIGBOVIK was upon us once again and now it is off. This is CMU's annual satirical research conference, which pokes fun at academics and itself. The conference website has approximately "one nine" of reliability, and is currently down, but when it's up you can probably find this year's proceedings. The papers are no more than half the fun, though. Something else that's not quite half the fun is the conference event, which I emceed again this year. It was a good one, with lots of fresh contributors and a pretty full house and cake.

This year I contributed to the probably-could-work A Modest Proposal for the Purity of Programming, the probably-could-work-but-not-with-that-much-beer Algorithms for k/n Power Hours, the juvenile where is my pants ("play"), and my main submission, The National Month of Pushing Spacebar. If you read only one (or none) make it that one (or none). The paper describes a contest which you can partake in, taking par now (if now is within 30 days of posting), at the website national.month.of.pushing.spacebar.org. But start with the paper.
Categories:  hacks  sigbovik   [ comment ]
p
e
r
s
o
n
a
l
SIGBOVIK 2011: What words ought to exist? (01 Apr 2011 at 23:06)
Today was SIGBOVIK 2011, the fifth one. This is my favorite CMU CS tradition; a fake conference thrown with real aplomb (carefully bound and printed proceedings, entertaining talks, product demonstrations, awards, promotion, budget and steering committees, paper management systems and reviews, etc.). People use it as both a venue for childish drivel and for deeply satirical but essentially real work that in my opinion is too good for actual conferences. I love it because of how it simultaneously scorches (for its pointless navel-gazing) and celebrates (for its pointless navel-gazing) academia.

I always participate. This year I was emcee and I did not have enough time to execute all of my ideas (do I ever?), but I did write two papers. The first was just the slapdash results of the thing I posted earlier, Who is the biggest douche in Skymall?. It's more fun to continue to play the on-line game than read the results, though I did add a douche-detecting image recognition "algorithm" to that paper, at least.

What I spent the most time on was my paper What words ought to exist?.

What words ought to exist?


I tried something different this year. I feel like the conference is filled with loads of satire and irony (which is great), but that the best way to celebrate what I feel is the SIGBOVIK spirit is to be off-puttingly impenetrable about where the work is even coming from. Like "Is this real or a joke? Why did you even do this? I don't understand" is the ideal reaction. So, controlling for SIGBOVIK tenor, this time my paper is a completely earnest and thorough attempt to answer an interesting philosophical question (titular). It starts with a maximalist approach, my variant of Scrabble called Scrallbe (where they can all be words), which is pictured above. It's like God mode for Scrabble. I dismiss this as too coarse and then look at a bunch of different methods for figuring out what words should exist, and justifying that mathematically. I tried to write it for the layperson, but I think my notion of layperson may be distorted. Read the paper to decide for yourself.

I won another award this year (keeping my perfect batting record!), this time for "Most frighteningly like real research," which I think is apt.

SIGBOVIK 2011
Categories:  talks  hacks  sigbovik (3 comments — almost 7 years ago)   [ comment ]
p
e
r
s
o
n
a
l
Pac Tom September update (12 Sep 2010 at 00:26)
Time for another update on my project to run the length of every street in Pittsburgh, called Pac Tom. It's all about the map:

Full Pac Tom map of Pittsburgh, 12 Sep 2010


logoPac Tom project:
site · all · map
Also available is the same map in PDF so that you can pinch to zoom. Over on the right (known to cartographers as "East") you can see Pac Tom Level 1, totally all done. I've been hard at work on the stuff South of the Monongahela since I finished Level 1 almost two years ago. It's hard because it's far from my house (see rules and regulations) and crazy hilly. You can see that I've made a lot of progress either just by the superbrite color lines all over everything (btw that image above is about 136 square miles, about 140 feet per pixel) which is where I went, or by comparing to last time, or by me being more specific:

Neighborhoods totally done (level 2): Banksville, Beltzhoover, Bon Air, Brookline, Carrick, Chartiers City, East Carnegie, Esplen, Fairywood, Hays, Knoxville, Lincoln Place, Oakwood, Overbrook, Ridgemont, St. Clair, Westwood, Windgap.

Total running events (this includes Pac Tom, training, races, and 3D World Runner): 734
Total time recorded: 25 days, 23:15:38
Total distance: 4230.118 miles

But actually what I really wanted to show you was a newer map, which has been on the Pac Tom site for a while but I have never explained. It's the shortest paths map:

Full shortest paths map, Pittsburgh


Well, at this view it just looks like the regular map vomited a rainbow all over itself. What's going on is that this is a graph of all of the places I've been (each individual GPS waypoint), connected by heuristics (like they were consecutive in a trip, so I actually ran between them, or they appear to be near enough to imply that I could run between them) and then I compute the shortest path from each point back to my home. Here's a zoom up:

Shortest paths example


Bonus points if you recognize the neighborhood! See all those fingersnakes reaching up to meet one another? Those aren't dead ends, they're the farthest away from my house I can get on those roads (the leaves in the minimal spanning tree rooted at my house). On one side, the shortest path is to go South, but just a few feet away, the shortest way is to go North. (My house is Southeast from here.) I spent a lot of (fun) time writing this code partly in the hopes that it would teach me about better ways to get out to distant neighborhoods, but it turns out that on city streets (especially grids), the shortest path on foot is usually pretty obvious. Even when it's not, the difference rarely exceeds 100 feet. The most interesting places are probably choke points, like bridges:

Shortest paths around Birmingham Bridge


Pretty much everything nearby points up this bridge. The colors by the way are not gratuitous; they indicate the physical heading that I should be running on that segment to decrease my distance to home. Green means East, red means North, violet means West, cyan means South. This is meant to emphasize the break-even points described above. Here you can see from the thickness of the lines (which just comes from having lots of runs through there, with GPS noise) that I don't usually take the Birmingham Bridge, even though it would save me about a South Side block's width (that's the pink stuff: Turn around!) I usually prefer the Hot Metal Bridge to the East because it's got better pedestrian access and also my brain autopilot is accustomed to the area, having run it like a hundred times. Unfortunately it's hard to get route preferences (and other stuff like elevation change) incorporated into the formulas. So, rainbow brite indeed but not actually that useful. The maps are updated automatically after every run onto the graphics page. You can check out the source code which of course is mostly calls out to general-purpose libraries for loading GPS data and computing fine-grained distances on the earth pear's surface and undirected graphs and snapping the neighborhood boundaries to be exactly perfect, and outputting the SVG, all of which I of course wrote myself even though it probably or certainly already exists because have you MET Tom?
Categories:  pac tom  hacks (5 comments — almost 7 years ago)   [ comment ]
p
e
r
s
o
n
a
l
Pittsburgh Marathon 2010: Project SHARKWEEK (02 May 2010 at 17:57)
YES. You guys know I like to run races in costume, or carrying something, or otherwise making it conspicuously difficult. Well, when I signed up for this year's Pittsburgh Marathon they allowed us to pick a 9-character personalized vanity bib, and since the first thing that came to me was SHARKWEEK, I did today's marathon in a shark costume. At first, it was just a dream, with this as the prospectus:


Pinch to zoom


Erika, a costume whiz, helped me get started planning it out and correcting my grievous anatomical mistakes, but then I slacked off for ages not working on it, until I bought a sewing machine and then put together the costume starting Friday night on my own. It's highly overengineered, with an adhesiveless design, inner wireframe made of coat hangers, and tailored felt with reinforced stitching. I discovered that pretty much every part of a shark's body is shaped like a coat hanger:

Project SHARKWEEK - Tail Section


It was a good long day of remembering how to sew and which unfortunately lasted longer than I wanted it to. I decided to punt on the gills, which were unanatomically located anyway, but otherwise it pretty much came out as I had hoped. Here's shark-face:

Project SHARKWEEK - Shark face


I was worried about this race, though. Weather reports predicted temperatures up at 80°F at some point, plus thunderstorms. That'd be bad for just running regularly, but one of this costume's main difficulties is how it seals in the flavors and spices. I wanted it to be hard but not heat-stroke hard. And then I had unwisely stayed up until 12:30am finishing the costume, and also I couldn't fall asleep until 2 or 3am because of Pitt's graduation party noise, heat, allergies, and excess energy from tapering. Despite the 3 hours of sleep, and not being able to find my bicycle pump, I biked downtown with the costume on and with a flat tire (the biking is where I first discovered how obstructive wearing a tail can be, particularly when it gets caught in the wheels), tried to find my friends running (couldn't) and then started towards the back of the pack. Part of the idea of this costume was the mental image (hopefully communicated to some) of a shark (me) attacking a swimming (running) throng of people (people) at the beach (marathon course) trying to get to shore (finish line), eating all the ones who weren't fast enough.

Project SHARKWEEK - In Race


It turned out that despite all the looming potential disasters, it really went quite well. Temperature was mercifully in the 60s. The costume was hot, for sure, towards the end of the race forcing me to walk off problems that I knew weren't just exhaustion (e.g., headache) but it was way better than it could have been and I managed to run the first 18ish miles only stopping for water, and only some modest walking in the last 8. The costume was heavy and soaked up water when it rained on us for most of the race, but honestly the water there wasn't as bad as it was in my shoes. Although the head would stay on pretty well if I was just walking or biking, when running it would bounce too much (bad design). I therefore had to spend the whole race holding it on, usually with an internal handle under my chin. The coathanger shoulder-"rests" dug into my shoulders the whole time and left some pretty grody bruises, but given all the other sharp pieces and metal burrs it's a miracle I didn't come away with some real serious abrasions or stabbed as the thing collapsed around me (it held up almost perfectly). The tail was an unexpected difficulty: As soon as I actually started running I realized that I was kicking it and probably would be for the whole race. So I used a shorter than usual stride, but still it was pretty tripoverable and I was hitting it or worse with every step. That's fine, think about what a shark with feet must feel like! My official time was a garbage 4h29m49s, which is about a 10 minute mile, more than an hour slower than my non-costume first marathon.

The costume itself went over extremely well. The Tribune-Review says,
Marathons usually bring out their share of off-the-wall running apparel, from tuxedos and wedding gowns to Elvis impersonators, but there were relatively few that engaged in the offbeat this year. One of the few was someone who donned a shark's head and dorsal fin for the occasion.
Still Pittsburgh runners have not picked up on the fun of costume-running. Other than all the trouble, it's the best: The whole race other runners are running up to say hi or you overhear them saying to a friend, "I just got passed by a shark!" The crowd who is sitting there in the rain waiting for their one family member or because they can't go anywhere because the roads are shut down, they completely love it, so you get people from all backgrounds laughing and clapping and shouting, GO SHARK MAN!!!, and the water station volunteers who are doing labor in the rain for nuthin' in return always perk up, and little kids trying to figure out what is going on with that dude but with that little kid smile where they know something's funny but don't totally get it. Two people recognized me as the guy from birthday cake running. At some point a woman comes up to me who had been running at a mutual pace for a while and says, "You have made so many people smile today."

Project SHARKWEEK - Mile 20


(BTW Thanks to Gabe and Someone on Twitter for the pics. I can't photograph myself while running yet.)

One of my favorite groups to make smile is the live bands or musical cheering organizations like the dance music cheerleaders. In this race I slowed down in front of every such group (probably about 15 of them) and did an interpretive dance to their music. This was so fun. I got several of the singers to mess up their singing from laughing, and some bands made musical or lyrical reference to the shark (like the cover band that lamented having just played "Fins" right before I got there), and the cheerleaders were flipping out, chanting, "go shark! go shark!" and pumping their fists. The best was when a school band saw me coming and quickly arranged a full marching-band version of the Jaws theme—not kidding, this was completely amazing—and I did the hunched over swimming lurch by them.

Most people only see the shark for a few seconds, so it's interesting to get a catalogue of thousands of people's first reaction. I was surprised that Land Shark was the most common thing shouted, since that skit is pretty old now. It's not like every shark costume is depicting land shark just because it's on land. If I were dressed as the International Space Station, would they say "Land-ISS!"? No. Also popular: Sharky (don't know if this is some specific cartoon character but it was too common to not be), Shark Man, Shark Boy (at least one referring to the Rodriguez film), Sharkweek (reading the bib), and in single digits: dolphin (?), whale (?), alligator (??). I get the benefit of hearing the quips so many times over the four hours that I can develop and refine comebacks. Like at the water stations, if someone takes the last cup of water right ahead of me, "Save some for the fishes!" or when biking back home against the runners who hadn't finished yet, and someone goes "26.2 miles is not enough, now you're going biking?", I say, "Yeah, it's a triathlon. The swimming part is easy."
Categories:  hacks  races (10 comments — 7 years ago)   [ comment ]
     Viewing posts in category hacks...
(view all posts instead)
next