Computer Science
Web Security and Privacy
This is a research paper I wrote about Web Security and Privacy. It’s quite an interesting read, if you’ve got 20 minutes to spare.
(Interesting fact: I wrote the entire final draft of this 25-page paper in less than 24 hours. Coding up the proof-of-concept attack page demo took two days, and gathering information took several weeks, but I finished the actual writing in less than one full day.)
Related Posts
Posted under Computer Science, Essays, Stanford Life, The Internets, Web Dev on Jul 07, 2010.
Leave a Comment 936 views :Facebook, information, Internet, privacy, PWR, securityRichard Stallman Comes to Stanford
A few weeks ago, I had the amazing opportunity to meet Richard Stallman — founder of the GNU Project and Free Software Foundation, and developer of the amazingly popular GNU Emacs, GNU compiler (gcc), and GNU debugger (gdb).
RMS, as he likes to be called, is a living legend in the computing field. He’s widely considered to be the father of the free software movement. There is no question that the free software philosophy has brought enormous amounts of good to the world. I firmly believe this. I think most programmers and computer scientists would agree, too.

GNU/Linux render farm at Dreamworks
Free software is everywhere today. The popular operating system GNU/Linux (which Stallman wrote large parts of) powers so much of our computing today, nearly everyone has used it, whether they’ve heard of it or not.
The majority of servers on the Internet are powered by Apache and GNU/Linux, major parts of the Internet and most networks in large corporations are powered by GNU/Linux, and even 95% of the desktops and servers at major Hollywood movie studios like Disney, Pixar, DreamWorks, and Sony run GNU/Linux.
Many people are confused about what the phrase “free software” means. Before I continue, let’s be clear about the definition of free software.
Related Posts
Posted under Computer Science, Famous People, Politics on May 21, 2010.
2 Comments 1,607 views :copyright, free software, freedom, FSF, GNU, hacking, Richard Stallman, Stanfordof != for
More about the Stanford Association for Computing Machinery.
Related Posts
Posted under Computer Science on Apr 26, 2010.
Leave a Comment 1,106 views :ACM, names, petpeeve, StanfordStanford iPhone App Final Project – iBoard
This is the iPhone app that I’m working on with my friend John Hiesey. iBoard is a networked drawing app that allows multiple users from around the world to draw together on the same drawing canvas in real-time. Use it to share your ideas — diagram, brainstorm, sketch, or doodle with your friends from around the world in real-time.
The video is from the final project presentations for the Stanford course CS193P: iPhone Programming. Before our demo, our iPod touch was accidentally disconnected from the server, so it caused a hiccup in our demo — but we still proved that it works using the iPhone simulators on our Macbook Pros.
Also, the name iBoard is likely to change before we put it on the App Store. Please share your comments and feedback!
Related Posts
Posted under Computer Science, Stanford Life, This is AWESOME! on Apr 05, 2010.
9 Comments 4,276 views :app, canvas, drawing, iBoard, iphone, networkGCC Undefined Behavior
Check out this little GCC gem that I just discovered read about.
In GCC 1.17, when the compiler encountered specific forms of undefined behavior (unknown/not implemented #pragmas), here’s the code it executed:
execl("/usr/games/hack", "#pragma", 0); // try to run the game NetHack
execl("/usr/games/rogue", "#pragma", 0); // try to run the game Rogue
// try to run the Tower's of Hanoi simulation in Emacs.
execl("/usr/new/emacs", "-f","hanoi","9","-kill",0);
execl("/usr/local/emacs“,"-f“,"hanoi“,"9“,"-kill“,0); // same as above
fatal("You are in a maze of twisty compiler features, all different");
When GCC identified “bad” C++ code, it tried to start NetHack, Rogue, or Towers of Hanoi. Failing all three, GCC printed out a cryptic error message. Wow.
This just goes to show you that when the official C++ specification talks about undefined behavior, they mean business:
[Undefined behavior is] behavior, such as might arise upon use of an erroneous program construct or erroneous data, for which the Standard imposes no requirements
No requirements indeed.
Update: It turns out this is actually implementation-defined behavior, which is slightly different than undefined behavior. Implementation-defined behavior actually requires the compiler to document what it does, but there are no requirements on what it can do.
Related Posts
Posted under Computer Science, This is AWESOME!, Video Games on Mar 28, 2010.
5 Comments 8,021 views :compiler, Emacs, gcc, hacking, NetHack





