Thursday, November 18, 2010
Wednesday, November 17, 2010
Mindblowing CGI
Tuesday, November 16, 2010
Called It
New things!
Saturday, November 13, 2010
This Week's Episode of "Aging Executives Who Don't Understand The 21st Century"
The head of sales at a big-name digital service provider agreed: “At the moment the big digital distributors need to stock games with Steam. But the power resides with bricks and mortar retailers, they can refuse to stock these titles. Publishers are hesitant, but retail must put pressure on them.”
Thursday, November 11, 2010
L.A. Noire
EDIT: Embedding doesn't seem to be working right, you can check out the video on the original page here.
Wednesday, November 10, 2010
Various Lifehacks
Anything that solves an everyday problem in a clever or non-obvious way might be called a life hack. The term became popularized in the blogosphere and is primarily used by geeks who suffer from information overload or those with a playful curiosity in the ways they can accelerate their workflow.My earlier post on dorm room engineering is a good example of that sort of thing. Here are a few more that I've been using lately.
Monday, November 8, 2010
Harry Potter and the Methods of Rationality
Sunday, November 7, 2010
Take 2: TIME Magazine's Top 100 Films
Saturday, November 6, 2010
Jack Bauer, Always On Duty
TIME Magazine Top Novels
Sometimes I feel bad that I don't read as much as I used to when I was younger. Maybe I'll go to the library tomorrow and fix that, but to assuage my guilty conscience for now, here's TIME Magazine's list of the top 100 English Novels published after 1923. If I've read or heard of one of them, I'll talk about it.
Friday, November 5, 2010
Intimidation
When Oscar Peterson was still a young boy, his father played him a recording of Art Tatum performing "Tiger Rag". Once the young Peterson was finally persuaded that it was performed by a single person, Peterson was so intimidated that he did not touch the piano for weeks. (source)I can definitely sympathize with him there.
Wednesday, November 3, 2010
Spring 2011 Schedule
Today was registration day for my class at W&M, which is a mixed bag; it's exciting to know what classes I'll be taking next semester, but the actual registration process is extremely stressful. I've heard of some schools that have systems where you just put in a request for what classes you want, with no time pressure, and you get placed in them based on priority (which I guess includes your year, your major, that sort of thing). Here at W&M, that's not how we do things.
Tuesday, November 2, 2010
Android
Fireflies!
Sunday, October 31, 2010
Saturday, October 30, 2010
Friday, October 29, 2010
Danny Boy
P.S. Turns out the Latin sentence I translated for a blog post yesterday was the one I had to translate on the test today! Bam.
Thursday, October 28, 2010
Latin Insanity
Wednesday, October 27, 2010
I Am Batman
Monday, October 25, 2010
My Professional Acting Debut
Sunday, October 24, 2010
Stephen Fry on Linguistic Pedants
(original)
Gordon Goodwin and Take 6 - Comes Love
Saturday, October 23, 2010
Zelda Reorchestrated And Other Assorted Videogame Music
Friday, October 22, 2010
lingua latina utilissima est
For example, take a sentence like "this dog is bored". In order to determine the syntactical structure of this (simple) sentence, we need to know what parts of speech all the words are. "This" is what's called a determiner (not really important), "dog" is a noun, "is" is a verb, and "bored" is..... what?
Thursday, October 21, 2010
My Sleep Habits: Fun With Facebook, Part 3.5
I'm not making this a full post yet, because I don't feel like writing much but I still want to share this cool result. Basically, I got a working HTML parser for Ruby and am beginning to create a framework for analyzing the Facebook data stored in HTML. My first interesting result is this graph for frequency of wall posts (including status updates) by hour, in military time:
Interesting conclusions to draw here:
- Facebook seems to indicate that I'm asleep before 2:00 the vast majority of the time.
- The drop for the 15 hour (3:00-4:00) PM is probably related to going home at the end of the high school day, which ended at 3:50.
- The other drop at 19 (7:00-8:00) PM is probably because that's when most people eat dinner.
Wednesday, October 20, 2010
Lions, iLifes, and Airs, Oh My!
- iLife '11
- Mac OS 10.7, codenamed Lion
- New Macbook Airs
Anyway, I was eagerly following Engadget's liveblog as it went down, and here are my basic first impressions.
Tuesday, October 19, 2010
Sintel
Monday, October 18, 2010
Fun With Facebook, Part 3
As I mentioned before, my method for generating searches to find names was really bad, because I was searching the whole space of strings and wasting a lot of time on searches that found no results, like "zx" or "qq". Last time, it took a little over two hours to generate only the useful searches that were 5 letters long. With my new, non-terrible code, it takes under 10 seconds to generate all 8348 search strings of any length. That's a pretty massive improvement. How massive?
Well, there are a total of 8348 search strings of any length that will produce at least one result. The actual alphabet they drew from is bigger than just "a" to "z", because some people's names have special symbols, like dashes for compound last names, but we'll just assume that they drew from "a" to "z" in order to get a lower bound. The longest search string that gets results is 13 letters long, so the space of all possible search strings I would have had to look through using the old method is the sum of all the spaces for each length, i.e. all the 1 letter strings plus all the 2 letter strings plus all the 3 letter strings, and so on up to 13. Computing that sum yields a whopping 2,580,398,988,131,886,038 possible searches. The 8348 searches that return results represent a rather small portion of those, approximately 3.2 * 10^-13%. In other words, if I'd run my bad program enough to find all the searches, only 0.00000000000032% of my time would have been productive.
Anyway, I wrote a new program that didn't suck, and you can read a description of how it works after I go over some of the results. Like I said before, there were 8348 search strings that produced any results at all. Of those, 5507 return exactly one result. Of course, a lot of those are redundant. For example, if "icho" were to only hit "Nicholas", then so would "Nicho", "Nichol", "Nichola", "ichola", and so on. If you then reduce the redundant results down to just the shortest one, we'll get a list of what we'll call "minimal searches": searches (1) that return only one result and (2) for which there are no shorter searches that return the same result. Condition (2) is worded a little bit awkwardly because there can be more than one minimal search of a certain length. For example, it could be that "ich" and "cho" are both minimal searches for "Nicholas", if they both only match "Nicholas" and there are no two-letter strings that match only "Nicholas".
With that concept in mind, we can answer some even more questions. For example, how many names have minimal searches at all? Shouldn't all of them? Interestingly, there are only 481 names that have minimal searches. Part of this oddity is a result of the way I've implemented the searching. One name that fails to have a minimal search is mine. It doesn't work because there are other people in my friends list named Nick and other ones with the last name Starr. The way I've implemented this so far, you can't have multiple words (separated by spaces) in a search, so you couldn't search something like "ck rr" to try and get "Nick Starr". With that capability, there wouldn't be any names without minimal searches, unless there were literal duplicates in the list.
Well, that's about all I can think of doing with a list of my friends' names. If only facebook had provided more info (like which of my friends were friends with each other), there would be all kinds of other things I could do. As it is, my next goal is to find a good HTML parsing library for Ruby and write some code to start messing with the other data, hopefully in a more organized way than my friends list code.
Appendix A: How The Better Algorithm Works
The gist of how I made my code better is to restrict it to only look at valid search terms, by working from the names themselves rather than looking at all the possible search strings. For every name I go through a process of generating all the search strings that will match it. For example, for Nick, I would generate the following:
n, i, c, k
ni, ic, ck
nic, ick
nick
For each one of those search strings, I would run it against the whole list of names, seeing which names are matched by "n", which ones are matched by "i", and so on. Fortunately, this is a textbook example for the use of a simple optimization technique known as memoization. If you start running this method for a few sample names, you'll see that there's a lot of duplication. For example, in my dataset the string "nic" will match "Nick", "Nicholas", "Nichole", "Nicole", and a few last names. This means that every time I run the process above on any of those names (most of which are repeated a few times throughout the list), my code would have to search the whole list for names to see what matches "nic", even though it's already done that before. The key of memoization is to save the results of a function that gets repeated a lot. Sometimes you have to be careful about which results to save, but this computation is small enough that I just saved all of them. Then you end up with something like this (in pseudocode)
Did we already search for this string?
If yes
Use the stored value instead of re-searching.
If no
Perform the search and then store the result for the future.
It may seem like a minor change, but memoization can often have a huge impact on a function's efficiency. In this case, it cut off about two thirds of my code's running time. Of course, memoization only works if the function being considered is what's called referentially transparent, which is a fancy way of saying that given the same input, it'll always return the same output no matter how many times you call it. Trivial examples of functions that are not referentially transparent would be one that returns a random number, or one that asks the user for input. In this case, if I were to change the underlying list of names that I'm working with, my memoized values would no longer be valid, because my searching function would no longer be referentially transparent.
Sunday, October 17, 2010
WARNING: Ke$ha post
Wolfram Alpha... scrabble expert?
The Friends List: Fun With Facebook, Part 2
Source for this post
As I mentioned in my intro to this series, the friends list is the simplest info in this whole package - it's quite literally just a list of names in plain text (592 total for me). The first thing I did was just a basic frequency count, which came out basically how you'd expect.
Saturday, October 16, 2010
Fun with Facebook, Part 1
So after a few hours, Facebook finally finished preparing the zip file with all my info and sent me a download link. They had some interesting security features to make sure that no one else would be able to download it. Not only did I have to re-enter my password, but I had to identify a bunch of my friends. They picked three pictures of each friend at random, and asked me to pick who it was from a list of names. Very cool method, and makes it unlikely that someone will get tricked into giving this info to someone else by a simple phishing scam or something.
Friday, October 15, 2010
Downloading Your Facebook Account
Jukebox the Ghost - Good Day
I kind of discovered Jukebox the Ghost by accident. I've had an album of theirs (Let Live and Let Ghosts) for ages now, but haven't really listened to it much at all. A few weeks ago, I gave it another chance, and now I'm in love with it. Here's a video of them playing the opener from the album:
I'll admit to liking them partly because they feature the piano so much. The guy playing is really quite good, and his style reminds me a bit of Ben Folds.
Wednesday, October 13, 2010
Sesame Street + Old Spice = ???
Tuesday, October 12, 2010
Dorm Room Engineering
Cab Calloway and the Nicholas Brothers - Jumpin Jive
Monday, October 11, 2010
What *isn't* Google doing?
Sunday, October 10, 2010
Pink Floyd + The Beegees = Stayin' Alive In The Wall
Saturday, October 9, 2010
Fall Break Adventures
Like a phoenix from the ashes
Saturday, July 17, 2010
Sunday, July 11, 2010
Saturday, July 10, 2010
Tuesday, July 6, 2010
Monday, July 5, 2010
Thursday, July 1, 2010
This message was sent using the Picture and Video Messaging service from Verizon Wireless!
To learn how you can snap pictures and capture videos with your wireless phone visit www.verizonwireless.com/picture.
Note: To play video messages sent to email, QuickTime� 6.5 or higher is required.
Sunday, June 27, 2010
This message has been sent using the picture and Video service from Verizon Wireless!
To learn how you can snap pictures and capture videos with your wireless phone visit www.verizonwireless.com/picture.
Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.
Saturday, June 26, 2010
Friday, June 25, 2010
Wednesday, June 23, 2010
Tuesday, June 22, 2010
Sunday, June 20, 2010
Rehearsal Nicknames
buses), I'm going to try and write some longer posts rather than just
brief updates from my phone.
There's a lot that goes on behind the scenes and on the rehearsal
field that you don't get to see during a drum corps performance. One
of the most quirky things we do, at least as individual sections, is
give nicknames to measures of music or pages in the drill that we
commonly start or stop at. There are a ton, but just for illustration,
here are some of the nicknames we use in Khachaturian's Second Symphony.
Khach begins with a percussion feature named Snake Bite. The name
comes from the fact that the pit had a HUGE black snake come through
the pit while we were rehearsing that section, and the name spread to
the battery too. In the same vein, the pit has an exercise based on
that section that we've named Black Anaconda.
For the pit, measure 38 of Khach is officially known as Giraffe. At
one point, we were told to go to one measure past 38, and someone
asked why we didn't just say 39? Our tech Mike explained that the
offcial rehearsal numbers often don't line up with the real measure
numbers, so we phrase everything in terms of rehearsal numbers.
"Measure 38 could be called Giraffe," he said, "and I'd still tell you
to stop at one past Giraffe". We all liked the name, and so it stuck.
Next up, measure 77 is known as Furry Woodland Creature, because we
saw one running by during rehearsal yesterday in Allentown.
A lot of these are only being used by the pit, but these two came from
the battery. I heard this story secondhand, so it might be inaccurate.
Apparently the battery kept missing a hold at page 51 in the drill, so
their tech Zach had them repeat over and over "the hold is after the
triplet diddle. The hold is after the triplet diddle. The hold is
after..." and so on. Apparently in the movie Fight Club, there's a
point where they repeat the name Robert Paulson a lot, so page 51 was
christened Robert Paulson, and page 50 became Tyler Durden, another
character from Fight Club.
So there you have it. Next time you're watching a drum corps rehearsal
and someone yells out "Play out at Snake Bite! Watch your spacing at
Tyler Durden!", you'll have some idea of what's going on. Of course,
these are just a few of the many names that we have, and this is
mainly just the pit. Every section in the corps has their own
nicknames like these, and it's still June, so there are surely many
still to come.
Saturday, June 19, 2010
Friday, June 18, 2010
Thursday, June 17, 2010
Wednesday, June 16, 2010
Monday, June 14, 2010
Sunday, June 13, 2010
Tuesday, June 8, 2010
Monday, June 7, 2010
Friday, June 4, 2010
Monday, May 31, 2010
Friday, May 28, 2010
Wednesday, May 26, 2010
This message has been sent using the picture and Video service from Verizon Wireless!
To learn how you can snap pictures and capture videos with your wireless phone visit www.verizonwireless.com/picture.
Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.
Tuesday, May 25, 2010
This message was sent using the Picture and Video Messaging service from Verizon Wireless!
To learn how you can snap pictures and capture videos with your wireless phone visit www.verizonwireless.com/picture.
Note: To play video messages sent to email, QuickTime� 6.5 or higher is required.
Sunday, May 23, 2010
First full day of spring
Saturday, May 22, 2010
Friday, May 21, 2010
This message has been sent using the picture and Video service from Verizon Wireless!
To learn how you can snap pictures and capture videos with your wireless phone visit www.verizonwireless.com/picture.
Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.
Wednesday, May 19, 2010
Tuesday, May 18, 2010
Google's "Liquid Galaxy"
http://mashable.com/2010/02/11/google-liquid-galaxy-video/
Saturday, May 15, 2010
2010 Source music
Tuesday, May 11, 2010
Think about it for a minute...
A) 25%
B) 50%
C) 60%
D) 25%
(via reddit)
Monday, May 3, 2010
A long overdue update
For now though, check out this beautiful video (thanks to Chris Brophy for showing it to me!). For more info on the instrument involved, check out the wikipedia page.
Tuesday, April 13, 2010
North Korea - A day in the life
Monday, April 12, 2010
Pictures, part 2!
Sunday, April 11, 2010
Mean Disney Girls
Tuesday, April 6, 2010
Fall 2010 Schedule, Part the Second
Wednesday, March 31, 2010
Friday, March 26, 2010
A 60 ton angel falls to the earth
Scars in the country, the summer and her
Thursday, March 25, 2010
Tuesday, March 23, 2010
Errrrr
Monday, March 15, 2010
Track 1: Time Difference
Clocking in at 6 minutes and 19 seconds, Time Difference starts the album off with a bang. I've actually been putting some time into figuring out this one on the piano, and boy is it complicated. It starts out in a truly bizarre meter: 13/4. Yeah, 13. And people thought Dave Brubeck was crazy when he played in 5/4.
Gasp!
Hiromi is a Japanese jazz pianist, active today (Time Control came out in 2007). The lineup for the record sounds like any one of a bunch of classic 70s jazz fusion records: drums, bass, electric guitar, and piano/synthesizer. As the name suggests, the album is all about time: there are songs in odd meters, incredibly complicated manipulations of those meters, and all the songs are performed with deadly rhythmic precision. The title might be an homage to Dave Brubeck's classic album Time Out, which featured songs in a number of different time signatures, which was a very bold move at the time (1959).
Thursday, March 11, 2010
Classes!
Tuesday, March 9, 2010
Complex Numbers
Monday, March 8, 2010
The Failure of Videogame Companies to Understand Piracy - An Ubisoft Case Study
Saturday, March 6, 2010
3 AM still counts as "today", right?
Thursday, March 4, 2010
Wednesday, March 3, 2010
Steam for Mac?
Tuesday, March 2, 2010
Why you've never really heard the Moonlight Sonata
Monday, March 1, 2010
A quick pun for today
Saturday, February 27, 2010
Wednesday, February 24, 2010
Lockhart's Lament
Tuesday, February 23, 2010
Sunday, February 21, 2010
All Along The Watchtower
Saturday, February 20, 2010
Precious and libraries
Second, a very interesting post I found today in an online discussion. For context, the discussion was over whether paper books will eventually die off in favor of e-books. Someone asked what everyone thinks about libraries, and someone else replied:
Thursday, February 18, 2010
Waiter Rant
Wednesday, February 17, 2010
Post?
Saturday, February 13, 2010
TED
Friday, February 12, 2010
Bruce Schneier on the value of privacy
EDIT: just finished another long but excellent article about him (circa 2002) explaining what's wrong with the security measures being taken in response to 9/11. His basic thesis is that our security systems are "brittle"; that is, when one component of the system fails, the whole thing fails, and fails hard. Systems should instead be designed to "fail well" when someone goes wrong, because it inevitably will. Read it here.
Thursday, February 11, 2010
Picture messaging!
EDIT: Apparently to get MMS pictures to show up, I can't use the same number I use for SMS, instead I have to use the email address I use for email posting. Plus this horrible ad shows up beneath every post, I guess I'll just have to get used to that over the summer.
Testing?
my blog quite easily over the summer without a computer. First up is
posting by email -this is being written on my iTouch! Next up will be
posting via SMS.
Tuesday, February 9, 2010
Google Buzz!
Pictures!
Monday, February 8, 2010
Space Shuttle
So, I mustered my insanity and geekdom and got up at 3:30 AM to go see it. I was barely able to get myself to get out of bed. I pitched the idea to my roommate, but he was not really interested in freezing himself when he should be sleeping in order to see a speck in the sky; I can't say I blame him. Anyway, I did manage to force myself out of the bed, out of the dorm (COLD COLD COLD), and walk about 10 minutes to a pretty open area devoid of streetlights. And right on schedule at 4:20, I saw it. A small but distinct dot, about as bright as the brightest stars out that night, was cruising across the sky a little bit above the horizon. Fortunately, it was high enough that the trees and buildings didn't block it, so I was able to watch it for the whole way.
On the one hand, it really was just a little speck, and arguably might not have been worth it for how tired I felt for the rest of today. But on the other hand, I just took advantage of one of the last chances I'll have for a while where I live to see people going into space. People. In space. How crazy is that? That little dot wasn't some mysterious fusion reactor billions of miles away that we call a "star", it was a human-engineered and human-launched chunk of metal, with actual people in it, leaving the confines of our planet behind. It's really mindblowing, and I wish I'd been alive for the first moon landing, because I feel like people who grew up with that as a given might find it easy to not be all that impressed by space shuttles. It's just something that's there. We sent people into space, yup. Whoop-dee-do. I'm glad I had this opportunity to sort of think about it freshly.
It was also interesting to see how artificial our concepts of "time", "night and day", and so on are. NASA launched people into space at 4:14 AM, a time when most of humanity is rightfully asleep. And what's more, they had a news conference about the launch at 5:30. Five! Who else but NASA has the guts to hold news conferences at five in the morning?
Saturday, February 6, 2010
Mashups
Friday, February 5, 2010
Not Always Right
Thursday, February 4, 2010
Solitaire Meets Number Theory
If you get stuck, you can draw cards one at a time from the rest of the deck, called the Stack. So, that's all well and good, but what on earth does math have to do with this? Read on, dear reader.
A February 4th resolution?
So, for today (it's past midnight, but it counts as today), I'm going to share a picture. I'm in a class called Worlds of Music, which is basically about learning to see and listen to music in a broader context than just the usual "classical" music. It's a really cool class so far, and our first quiz is tomorrow, so I made a playlist in iTunes of the musical samples we've listened to so far to study. It's a pretty varied list, to say the least. You have to click on the picture to see it full-size.
Wednesday, January 13, 2010
If you only play one video game in your life...
What is Braid? If I wanted to be Wikipedia, I'd call it something like a 2D platforming/puzzle game with some time manipulation elements, but that doesn't really tell you much, does it? Braid is much greater than the sum of its parts, much like another wildly popular recent game: Portal. WARNING: Spoilers within for Portal.