For the third year in a row, BCA has qualified in at least one division of the ACSL All-Stars, a national computer science contest. The first year, when I was a sophomore, we were all ecstatic to have made a national competition. (well who wouldn't be?) The three of us, Kamran, Pavel, and I, were to somehow get to Maryland on Friday, stay there for a night, and get back Saturday after the competition by ourselves because Mr. Tyndall, the ACSL advisor, couldn't make it. Balls.
I decided to take things into my own hands. I recruited my parents as drivers, since I had close connections to them and they were wiling to go to the competition. We found a relatively inexpensive hotel in the area and booked two rooms, one for the guys and one for my family. (It had free wifi, too :D) With some reviewing, but no formal programming practice or problem sets, we managed 4th place overall. Nice.
The next year, Mr. Tyndall decided to sign up two teams, one in the intermediate division and one in the senior division. Both teams qualified for All-Stars, to be held in Alabama. Unlike before, this trip was school sponsored (Dr. Mayers chaperoned!), but we had to pay a lot more than if we went by ourselves. Again, there was no formal practice except for a cursory review of the topics for the written contest the night before. This yielded mixed results: the powerhouse of a senior team (Sam, Kamran, and I) easily claimed second place, while the intermediate team managed sixth. What was worse was that the individual round scores for the intermediate team was absolutely horrendous, with one person getting a measly 4 out of 12. Seriously?!
Upon witnessing the utter massacre, I vowed to make sure it doesn't happen again. I decided that, since I got a perfect 40/40 on the monthly contests and a near perfect 11/12 on the All Stars written contest, there wasn't really a point to go to All Stars again, so I just participated in the seasonal contests to help the school's team score. I made sure that after both teams were invited to All Stars, optimal teams were chosen as soon as possible to maximize training time.
As expected, both teams were invited. I decided to implement a team selection test for additional data gathering. It covered all material on the seasonal contests and had two parts; the first part was a speed test with ten short-answer questions to be done in ten minutes and the second part was five All Star questions (open-ended!) to be done in thirty minutes. The scores were more or less what I expected; but I was highly disappointed that no one got the internal path length question correct on the speed section and only Andrew Cai got the pre/in/postorder traversal question right on the accuracy section. Now I had a better sense of everyone's skill level and collective strengths (bit string flicking) and weaknesses (trees).
The next step was to pick teams. Mr. Tyndall, Dr. Nevard, and I sat down during my lunch time to discuss teams. With everyone's seasonal contest and TST scores in hand, we debated for about forty-five minutes on everyone's qualifications. We focused on people's teamwork skills, motivation to prepare for the contest and reason for going, and ability to supply a driver. Finally, we decided that Alex K. Andrew H., and Mark M. should represent the intermediate team and Yumi S., Andrew C., and Jonathan S. should represent the senior team.
With the team selection out of the way, I quickly whipped up a problem set on trees. It had two sections; the first section had three parts; each required building a binary search tree out of the string (ABCDEFFEDCBA, BERGENACADEMIES, PRINCETONUNIVERSITY), find the internal and external path lengths, and do preorder, inorder, and postorder traversals on the tree. The second part consisted of building a max-heap out of the word SCHOLARSHIP and doing preorder, inorder, and postorder traversals. Time limits were given so that the contestants could pace themselves. The results were generally good; most of the six were able to do the heap question, but about half stumbled on the longer strings in part one.
The weekend before the competition, I emailed everyone a programming problem set. I couldn't find any `good' ACSL problems (this is where you rofl), so I stole one from Project Euler (find the sum of the digits in $$N^M$$), one from USACO (preface numbering), and made two up (sudoku solver and shortest path). I was plenty surprised to have seen a shortest path problem on last year's All Stars, given that ACSL was mostly about brute force and super annoying problems. I am not sure if anyone attempted the problems, since I did not receive any emails with programs. Oh well.
The second pset was on Finite State Automata and ACSL Assembly and the third was a speed test on bit string flicking. Again, the psets had two parts each. On pset 2, the first part consisted of drawing some finite state automata from regexes and the second part consisted of not reading, but writing assembly code given a task. The third pset had two sections of bit string flicking. I got responses from most of the All Starrers. They did well on the third one, but got pretty raped on the second one. One person said that ``his eyes bled'' when he wrote the assembly code. Since it was just days before the competition, I decided, at 23:30 the day before their departure, to type up and send them my solutions to the problems so not only could they check themselves, but also see how I attempt the problems.
During all of this writing problems and giving feedback fun stuff, I also had to maintain clear communication with Arlan Dietrich, the ACSL coordinator, Mr. Tyndall, and the driving parents. There was lots to be done logistics-wise, such as registering for the competition, placing lunch orders for the competition, and telling parents about the schedule of the competition and the times that they have to get to places. Although it was very overwhelming, I somehow got through everything fine…
I was really happy to hear that the competition went smoothly, and even more so when they said that they pwned the individual round :D I breathed a sigh of relief, now knowing that I have considerably mitigated our biggest weakness. Three people got 11/12s, one got 10, and two got 8s. Much much better than 11/11/10/9/7/4. The senior team did respectably well on programming, with 37 out of 40, but the intermediate team got absolutely annihilated, scraping up only six points out of forty. This resulted in a fourth place finish for senior team and sixth place for intermediate team. At least four of them got books for doing well on the individual round. Well done, guys :)
30 May 2010
18 May 2010
Rolfcopter
Enjoy :)
Direct link:
Video 1
Video 2
Other notes: The white thing in the background on the top-left is the back of my Math Prize for Girls check with my shitton of iPods. (Actually not quite the whole lot; I am currently using my iPhone and iPod 20GB 4th Generation) :D
This post is dedicated to my project partner Dan A., who failed at spelling `roflcopter' on his SEN10R shirt.
Direct link:
Video 1
Video 2
Other notes: The white thing in the background on the top-left is the back of my Math Prize for Girls check with my shitton of iPods. (Actually not quite the whole lot; I am currently using my iPhone and iPod 20GB 4th Generation) :D
This post is dedicated to my project partner Dan A., who failed at spelling `roflcopter' on his SEN10R shirt.
17 May 2010
iMac G4
16 May 2010
Yay Internship Paper
Good morning. We are here to tell you about our eight months of internship experience in approximately twenty minutes.
As two of the top programmers at the Academies, we set sights on a computer science related internship. We chose to intern with AltLaw because we wanted to work for a small scale open source project to get firsthand experience on working with a team of people all over the country and to be recognized as not just an intern, but also a contributor of the project. We also liked that it was going to be on-campus, so we did not have to arrange transportation to the city or elsewhere.
AltLaw is a free and open source legal search engine. The project was started by Stuart Sierra, Paul Ohm, Tom Bruce, Carl Malamud, and Tim Stanley in hopes of creating a searchable database of law cases and such that is accessible to everyone, not just paid subscribers. However, in November, Google Scholar added legal cases to its vast collection of scholarly documents, so AltLaw is no longer needed. The developers did not see this as a complete disappointment; they were happy to see that a large corporation has taken on this initiative to provide the general public with a searchable collection of legal documents.
We interacted with Stuart for most part of the project. He has a bachelors of arts in theatre from the New York University and a masters of sciences in computer science from Columbia University. He works for the Program on Law & Technology at the Columbia Law School, where he spends his day hacking on AltLaw.
The branch of computer science in which AltLaw belonged is known as Information Retrieval. It is the science of searching for documents, for information within documents, and for metadata about documents, as well as that of searching relational databases and the World Wide Web. The three branches on which we focused are scraping or getting data, processing data (usually with mathematical or algorithmic means), and displaying data, usually with a web interface. At AltLaw, this was done with a variety of tools and languages.
Working for AltLaw required us to learn a Lisp-like programming language called Clojure, among other things. It is radically different from languages one might be accustomed to; it forces one to think recursively instead of imperatively. The biggest omission that newcomers will notice and lament is the lack of `for' and `while' loops. This is a bigger part to data immutability, or the inability to modify the value of a variable once it has been set. Immutability allows for much simpler concurrency implementation because there will not be any discrepancies in variable values in multithreaded applications and such.
To practice coding with a functional programming mindset and to learn the Clojure API, we started out with little programs, such as factorial (which, surprisingly, can be written a bunch of different ways). There is the standard tail recursion method, loop-recur method, and a clean, one-liner map-reduce method. We were surprised that there was a rather large time discrepancy when we tested the different ways with a large test case.
In the meantime, the ATCS parent organization, Computer Science Families, was generous enough to donate two Sun Fire rack servers for us to use. Unfortunately, we were not allowed to keep the servers in school without handing them over. We tried to find another permanent home for them, but that proved to be difficult as well. They, now along with nine other machines, are sitting in the basement of the house of the CSFamilies' president.
We wrote a program similar to the UNIX wc (wordcount) program to test Clojure's performance. The test results showed that the Clojure program was consistently more than twice as slow as wc, which reinforced the notion that interpreted programs are slow (augh this wording is terribad -Sherry Wu 5/16/10 3:11 PM)
After we were relatively fluent with the basic syntax, Stuart taught us about how Clojure and any functional language was deeply intertwined with lists and its siblings, such as maps, sequences, and vectors. To practice with these, we wrote a sentence validator. This program takes a grammar and a collection of sentences and returns whether each sentence is valid with respect to the grammar. (darn i don't think this wording is good either -Sherry Wu 5/16/10 3:16 PM)
As an aside, we were asked to write a regex (regular expression) to parse Java-style floating point numbers. Regexes were quite easy to pick up; and this assignment showed us an application of using regexes. (lol this paragraph seems relatively useless -Sherry Wu 5/16/10 3:20 PM)
Now that we had a hang of working with the data structures, Stuart taught us about the basic infrastructure of search engines. They stored keywords into a table-like data structures, such as a Document Term Matrix or an Inverted Index. The inverted index is essentially a map used to count occurrences of words in a set of sentences and to keep track of which sentences had what words. One of our assignments, which turned out to be a mini-project, was to write an inverted index.
Stuart decided to shift from programming to learning about Hadoop. Unfortunately, our efforts were impeded by a variety of things, including a lack of 32-bit J2SE 6 for Mac OS X, restricted user rights on school computers, and a terribadly craptastic implementation of the school's network. Therefore, we were left with only three laptops to work with. It took quite a bit to get the software configured, and finally, when all three machines were up and running, we got the sample distributed wordcount program to run! Unfortunately, that was all for Hadoop.
On the bright side, we still continued discussing concurrent programming. Stuart introduced us to the meat of Clojure, starting with agents and refs and reinforcing immutability. It was more of a watch-and-learn session instead of hands-on coding. Stuart wrote a program to test the fairness of the random boolean generator, except this time, we could see the proportion of true booleans in real time. As a final example, we played with a prewritten ant farm simulator as a demonstration of concurrent programming.
Stuart also showed us some testing techniques, such as unit testing and applications of agents. He showed us his rapid testing library, in which a program watches several files and runs tests against them every time a change is made. This is done by having the operating system push changes to the program (instead of it asking the file system if the files in question have been changed). A question that still remains is whether it can be used to develop itself. Yay metatesting?
As a final `unit', Stuart introduced us to "better object-oriented programming" in Clojure, which involved message passing, similar to a practice in Objective C. This is radically different from object oriented programming in Java, where every class has a predefined set of messages. We messed with some Protocols (Interfaces in Java speak) and Structures (Classes in Java).
In the middle of working with Stuart, we decided to do some basic Monte Carlo. This is a technique for numerical integration and heavily involves randomness. The canonical example is computing the area of pi by throwing darts in a circle inscribed in a square and finding the proportion of darts that land within the circle. We just implemented this in Clojure for fun and ran increasing numbers of trials in each test to see how the value in question would converge.
To wrap up the end of the year, we did discussions of current technology, the industry, and the future. Our most interesting discussion was about cloud computing, in which we debated the effect of the iPad and Android devices and current development tools. We talked about HTML5 and its open source buddies against the rest of interactive development tools, such as Flash, Silverlight, and even Cocoa. One of the big points in discussion was whether many people would continue to support native iPhone development now that Apple has banned using all but Apple-approved languages.
As a last activity, Stuart told us about different uses of programming languages in industry and upcoming revolutions. Although he lamented that he wasn't part of the PC revolution, he is happy that he is able to see functional programming, massive data processing, and virtualization go mainstream. He showed us the enterprise hardware Java accelerator (essentially a massive server powered by a custom chip with fifty-some cores and oodles of gigabytes of memory). We did an exercise in which we had to write the GCD function in Clojure, Python, and Ruby and benchmark all three. We were surprised that Clojure was fastest (by quite a wide margin), followed by Python and then Ruby.
Overall, we highly recommend this internship to anyone up for a challenge. Picking up Clojure is not recommended for the incompetent, as it requires thinking and persistence to master it. We got a full exposure to a new (and very different!) language and were able to work with someone from the open source community. It is also a big advantage if you are able to push yourself to work in an unsupervised environment or have a superb problem solving skill; if you have either, you will be able to accomplish the assignments easily.
As two of the top programmers at the Academies, we set sights on a computer science related internship. We chose to intern with AltLaw because we wanted to work for a small scale open source project to get firsthand experience on working with a team of people all over the country and to be recognized as not just an intern, but also a contributor of the project. We also liked that it was going to be on-campus, so we did not have to arrange transportation to the city or elsewhere.
AltLaw is a free and open source legal search engine. The project was started by Stuart Sierra, Paul Ohm, Tom Bruce, Carl Malamud, and Tim Stanley in hopes of creating a searchable database of law cases and such that is accessible to everyone, not just paid subscribers. However, in November, Google Scholar added legal cases to its vast collection of scholarly documents, so AltLaw is no longer needed. The developers did not see this as a complete disappointment; they were happy to see that a large corporation has taken on this initiative to provide the general public with a searchable collection of legal documents.
We interacted with Stuart for most part of the project. He has a bachelors of arts in theatre from the New York University and a masters of sciences in computer science from Columbia University. He works for the Program on Law & Technology at the Columbia Law School, where he spends his day hacking on AltLaw.
The branch of computer science in which AltLaw belonged is known as Information Retrieval. It is the science of searching for documents, for information within documents, and for metadata about documents, as well as that of searching relational databases and the World Wide Web. The three branches on which we focused are scraping or getting data, processing data (usually with mathematical or algorithmic means), and displaying data, usually with a web interface. At AltLaw, this was done with a variety of tools and languages.
Working for AltLaw required us to learn a Lisp-like programming language called Clojure, among other things. It is radically different from languages one might be accustomed to; it forces one to think recursively instead of imperatively. The biggest omission that newcomers will notice and lament is the lack of `for' and `while' loops. This is a bigger part to data immutability, or the inability to modify the value of a variable once it has been set. Immutability allows for much simpler concurrency implementation because there will not be any discrepancies in variable values in multithreaded applications and such.
To practice coding with a functional programming mindset and to learn the Clojure API, we started out with little programs, such as factorial (which, surprisingly, can be written a bunch of different ways). There is the standard tail recursion method, loop-recur method, and a clean, one-liner map-reduce method. We were surprised that there was a rather large time discrepancy when we tested the different ways with a large test case.
In the meantime, the ATCS parent organization, Computer Science Families, was generous enough to donate two Sun Fire rack servers for us to use. Unfortunately, we were not allowed to keep the servers in school without handing them over. We tried to find another permanent home for them, but that proved to be difficult as well. They, now along with nine other machines, are sitting in the basement of the house of the CSFamilies' president.
We wrote a program similar to the UNIX wc (wordcount) program to test Clojure's performance. The test results showed that the Clojure program was consistently more than twice as slow as wc, which reinforced the notion that interpreted programs are slow (augh this wording is terribad -Sherry Wu 5/16/10 3:11 PM)
After we were relatively fluent with the basic syntax, Stuart taught us about how Clojure and any functional language was deeply intertwined with lists and its siblings, such as maps, sequences, and vectors. To practice with these, we wrote a sentence validator. This program takes a grammar and a collection of sentences and returns whether each sentence is valid with respect to the grammar. (darn i don't think this wording is good either -Sherry Wu 5/16/10 3:16 PM)
As an aside, we were asked to write a regex (regular expression) to parse Java-style floating point numbers. Regexes were quite easy to pick up; and this assignment showed us an application of using regexes. (lol this paragraph seems relatively useless -Sherry Wu 5/16/10 3:20 PM)
Now that we had a hang of working with the data structures, Stuart taught us about the basic infrastructure of search engines. They stored keywords into a table-like data structures, such as a Document Term Matrix or an Inverted Index. The inverted index is essentially a map used to count occurrences of words in a set of sentences and to keep track of which sentences had what words. One of our assignments, which turned out to be a mini-project, was to write an inverted index.
Stuart decided to shift from programming to learning about Hadoop. Unfortunately, our efforts were impeded by a variety of things, including a lack of 32-bit J2SE 6 for Mac OS X, restricted user rights on school computers, and a terribadly craptastic implementation of the school's network. Therefore, we were left with only three laptops to work with. It took quite a bit to get the software configured, and finally, when all three machines were up and running, we got the sample distributed wordcount program to run! Unfortunately, that was all for Hadoop.
On the bright side, we still continued discussing concurrent programming. Stuart introduced us to the meat of Clojure, starting with agents and refs and reinforcing immutability. It was more of a watch-and-learn session instead of hands-on coding. Stuart wrote a program to test the fairness of the random boolean generator, except this time, we could see the proportion of true booleans in real time. As a final example, we played with a prewritten ant farm simulator as a demonstration of concurrent programming.
Stuart also showed us some testing techniques, such as unit testing and applications of agents. He showed us his rapid testing library, in which a program watches several files and runs tests against them every time a change is made. This is done by having the operating system push changes to the program (instead of it asking the file system if the files in question have been changed). A question that still remains is whether it can be used to develop itself. Yay metatesting?
As a final `unit', Stuart introduced us to "better object-oriented programming" in Clojure, which involved message passing, similar to a practice in Objective C. This is radically different from object oriented programming in Java, where every class has a predefined set of messages. We messed with some Protocols (Interfaces in Java speak) and Structures (Classes in Java).
In the middle of working with Stuart, we decided to do some basic Monte Carlo. This is a technique for numerical integration and heavily involves randomness. The canonical example is computing the area of pi by throwing darts in a circle inscribed in a square and finding the proportion of darts that land within the circle. We just implemented this in Clojure for fun and ran increasing numbers of trials in each test to see how the value in question would converge.
To wrap up the end of the year, we did discussions of current technology, the industry, and the future. Our most interesting discussion was about cloud computing, in which we debated the effect of the iPad and Android devices and current development tools. We talked about HTML5 and its open source buddies against the rest of interactive development tools, such as Flash, Silverlight, and even Cocoa. One of the big points in discussion was whether many people would continue to support native iPhone development now that Apple has banned using all but Apple-approved languages.
As a last activity, Stuart told us about different uses of programming languages in industry and upcoming revolutions. Although he lamented that he wasn't part of the PC revolution, he is happy that he is able to see functional programming, massive data processing, and virtualization go mainstream. He showed us the enterprise hardware Java accelerator (essentially a massive server powered by a custom chip with fifty-some cores and oodles of gigabytes of memory). We did an exercise in which we had to write the GCD function in Clojure, Python, and Ruby and benchmark all three. We were surprised that Clojure was fastest (by quite a wide margin), followed by Python and then Ruby.
Overall, we highly recommend this internship to anyone up for a challenge. Picking up Clojure is not recommended for the incompetent, as it requires thinking and persistence to master it. We got a full exposure to a new (and very different!) language and were able to work with someone from the open source community. It is also a big advantage if you are able to push yourself to work in an unsupervised environment or have a superb problem solving skill; if you have either, you will be able to accomplish the assignments easily.
Labels:
altlaw,
internships
05 May 2010
Happeh happeh happeh 17+1!
Yes, today is a nice day that is alternatively known as my birthday! It's been an awesome eighteen years thinking different, and only more is going to come. Lots have changed (and not changed), so let's see:
Changed:
Academic Focus: I thought I would enjoy math and physics (just like Dad) and would get a PhD and be a near exact replica, but I turned out not to be one of the theoretical people. Though I do find theory helpful in understanding applications, I find it pretty boring and useless by itself. This reflects my newborn interest in economics and applications of computer science and math. I probably will end up getting an MBA or something like that.
Computing and involvement with technology: One of the things I am really happy that I did early was get involved in technology. When I was in sixth grade, my parents said that they would buy me my own box to use (so I wouldn't have to take over their system), so I looked online at various manufacturer and review websites. I was enthralled by Apple's artwork, but was silly enough to fall for the Megahertz (gigahertz) myth, so I pretty much discounted its machines. So I ended up with a little noisy Dell tower, which I used for the first twoish years of middle school.
As I kept reading C|Net (mainly for reviews), I started following technology (and Apple). I remember the one time when I was reading initial reviews about the $49 Apple Mighty Mouse (debuted August 2005), and I predicted that Apple was going to release a Bluetooth one with Laser tracking for $20 more, the price delta between the wireless mouse and the former wired mouse. And holy crap, I was right! XD
My computing style had shifted quite a bit; I started out on Dad's Macintosh Classic when I was really little, then used several Windows boxes for quite a bit of time, got my first computer (a Dell Dimension 4600C which I am using as a webserver today), got a Mac mini for my 13th birthday, tried Ubuntu and Hackintoshed my Dell a year later, got a MacBook Pro (which I love and am still using it today) for my 14th birthday, and built my own box in sophomore year (with the intention of Hackintoshing, but that was never realized and it's now a Ubuntu box).
Unchanged:
`Thinking' Different: I have always been `different' (i.e. odd one out in `normal' people's language) ever since...I dunno...elementary school? preschool? Known as the `brainiac' or the `math whiz', the other kids basically ignored me because, well, I didn't play sports and was interested in academics. During the award ceremonies in middle school, most of the crowd booed when I got up to claim my certificate of honor or excellence. In another situation, when I was talking with someone from my homeroom who plays sports, I told him about getting money or a free laptop at a math competition (Mathcounts Nationals, in particular) and his reaction was like, ``nawwww, get out of here! you're kidding!''
In BCA, I am pretty much the same, except there's a much wider range of people interested in academics. However, I still remain the odd one out in that I am the only female in my class to be interested in and dedicated to both math and compsci. XD
Being different has been fruitful for me. I followed through with compsci and math and have won many prestigious awards (USACO Gold and Math Prize 6th place) and am Captain of both teams. I am the first female from BCA to make Gold. Pursuing these usually `guys-only' subjects has allowed me to make some wonderful connections
Being different has just made me plain bizarre. I am one of few people who has cracked all my joints at least once (cracking my neck freaks my mom out XD). I know all of the first generation Pokemon (only the first 80 or so in order, though) and 97% of second generation. I skipped junior prom to go to a compsci competition (ACSL All-Stars). Now that was pretty epic. Oh, also, I do not approve of makeup/any of that girly garbage.
Expanding on that last note: I probably do it for the hell of it, but it is also for economic reasons: with limited resources, I cannot possibly feed my gadget impulsion and buying silly stuff at the same time. Therefore, I forgo most (if not all) makeup, jewelry, etc. and save my budget for buying computers, circuits, hardware, and the like. A $500 prom dress?! I'd take an NVidia GTX 480 over that any day (or an iPad; either one is nice)! Also, I can be different! Unlike pretty much everyone else, I wear khaki-like pants and a BCA/Math Team t-shirt most of the time, but now I pretty much wear black-and-gold apparel every day to remember Mr. Holbrook's passing.
Well, that's pretty much all I have to say. I suppose I'll end this with something more informal...
I'm a beaver,
You're a beaver,
We are beavers all.
And when we get together,
We do the beaver call.
e to the u, du / dx
e to the x, dx
Cosine, secant, tangent, sine
3.14159
Integral, radical, mu dv
Slipstick, slide rule, MIT!
GOOOOOO TECH!
Hello, MIT!
26 April 2010
Moody and Angry!
This one is pretty late, but I thought I'd publish it anyway just because our day was pretty hilarious.
I got there in the morning at 0700 and we started working on the problem. This year's problem was aptly named ``Making sense of the 2010 Census'' or something like that. Pavel and I worked on #1, while Jared and Ian tackled #2 and Mark had fun with #3. Pavel and I had our ideas and a few paragraphs of text down by lunch, by which time we went to eat pizza. In the afternoon, we slowly edited our paper and added more information.
Around 1515, some salespeople knocked on Mark's door. Pavel told Mark to get the door, and when Mark was about to open it, he stood there for about five minutes and contemplated if he should XD When Mark finally opened the door, they convinced Mark to subscribe to their religious magazine. Too bad for them that we were in the middle of M3 and Mark is an atheist. After they left, we started making jokes about them as they slowly left the doorstep.
How many times do you need to witness Jehovah?
Over 9000!
You're a Jehovah's witness, aren't you?
Why else would I use Linux?
Then around 16:30 we took an ice cream break! Distracted, Mark pulled up the Russian version of ``Be a Man'' (or whatever it's called) from Mulan. Ian pulled up one of the Aladdin song to keep us distracted and Pave started ranting how useless Jasmin was. Around 1700 we went back to work to proofread.
Not long after, Mark's mom asked us if we were fine with getting Fuddruckers' for dinner. When she came back with two bags of burgers and Mark's sister about an hour later, Pavel pointed out that Mark was still in his pajamas. That gave Mark plenty of ideas that Pavel wanted him to take his pants off [to put something else on] XD
Around 1830 we were taking about some statistics stuff, when Mark discovered a huge hole in our argument (we just assumed a sample was normal) XD Then we went to eat our burgers and finished adding and revising content. By 2000 Mark told everyone to cease editing on the Google Doc so Pavel could put finishing touches on our paper and ship it to the Moody's folks. We shipped out the paper at 2055, helped Mark clean up our messes, and left.
===
So it appears that we have advanced to the finals, and our presentation is this Wednesday. Unfortunately for Pavel and Ian, they'll have to skip the second day of USAMO. Anyway, we look forward to going to NYC by way offlying from EWR to JFK a stretch limo and competing against the top applied mathematicians. :) I still have lots to practice, but hopefully we'll all be ready in two days.
I got there in the morning at 0700 and we started working on the problem. This year's problem was aptly named ``Making sense of the 2010 Census'' or something like that. Pavel and I worked on #1, while Jared and Ian tackled #2 and Mark had fun with #3. Pavel and I had our ideas and a few paragraphs of text down by lunch, by which time we went to eat pizza. In the afternoon, we slowly edited our paper and added more information.
Around 1515, some salespeople knocked on Mark's door. Pavel told Mark to get the door, and when Mark was about to open it, he stood there for about five minutes and contemplated if he should XD When Mark finally opened the door, they convinced Mark to subscribe to their religious magazine. Too bad for them that we were in the middle of M3 and Mark is an atheist. After they left, we started making jokes about them as they slowly left the doorstep.
How many times do you need to witness Jehovah?
Over 9000!
You're a Jehovah's witness, aren't you?
Why else would I use Linux?
Then around 16:30 we took an ice cream break! Distracted, Mark pulled up the Russian version of ``Be a Man'' (or whatever it's called) from Mulan. Ian pulled up one of the Aladdin song to keep us distracted and Pave started ranting how useless Jasmin was. Around 1700 we went back to work to proofread.
Not long after, Mark's mom asked us if we were fine with getting Fuddruckers' for dinner. When she came back with two bags of burgers and Mark's sister about an hour later, Pavel pointed out that Mark was still in his pajamas. That gave Mark plenty of ideas that Pavel wanted him to take his pants off [to put something else on] XD
Around 1830 we were taking about some statistics stuff, when Mark discovered a huge hole in our argument (we just assumed a sample was normal) XD Then we went to eat our burgers and finished adding and revising content. By 2000 Mark told everyone to cease editing on the Google Doc so Pavel could put finishing touches on our paper and ship it to the Moody's folks. We shipped out the paper at 2055, helped Mark clean up our messes, and left.
===
So it appears that we have advanced to the finals, and our presentation is this Wednesday. Unfortunately for Pavel and Ian, they'll have to skip the second day of USAMO. Anyway, we look forward to going to NYC by way of
Labels:
jehovas' witnesses,
lawlz,
math
15 April 2010
Spring Break
Monday
- Did a physics mech multiple choice practice
- Looked at CUDA parallel reduction some more
Tuesday
- Apple refreshed MacBook Pros!
- Set up WebDAV, so now I have access to all my data wherever there is internets :D
Wednesday
- Set up symlinks so all my data could be accessed from DAV share
- Helped Pavel pick the right netbook (an HP Mini 210 HD) - his current computer is a 7-year old Dell ultraportable with only ~4GB devoted to Linux (the rest of the 20GB HD is his parents' windows installation), so yeah...
- Reworked y0u.dontexist.com - put in an updating AAPL ticker :D among other things
- Fixed minesweeper (aka LOLsweeper) - there was a huge bug in the mine generator
Thursday
All days
- Wrote a php widget to scrape Apple rumors
- Went back to NJ
- During the trip, I was looking at cars (like I always do) and I saw a portion of a Lexus LS 460 from the rear 3/4 view. It turns out to be the long wheelbase variant, and when I got a closer look at it, I noticed that it had the 18" wheels instead of the 19" ones (they're different styles; I'm not that crazy :P). I also realized that one can only get the 18" wheels if the car comes with the 4-seater package (the one with the rear seat massagers and the right hand side recliner with footrest). I have no idea how I notice these things; maybe it's from all those hours playing sudoku and analyzing Apple design? xD
- Installed XMonad and started learning the key bindings!
- Played around with XMonad and tried to get a hybrid solution with Gnome setup because I'm too lazy to launch everything from the command line. Unfortunately that was pretty unstable. I reverted to a pure XMonad solution, but that was still terrible. Now I'm thinking of wiping and installing Arch (Gentoo is too much work =P) because I think something in Ubuntu is causing it to fail.
- Thought about Trisweeper (our triangular minesweeper game for iPhone OS) a bit
- Tried to hackintosh my Intel Atom (D945GCLF2D), but that just utterly failed. I couldn't even burn a working boot-132 disk :(
- Played some games and a tournament on BBO! Sam and I got 8th out of 164 pairs :D
All days
- IM
- Lots of sudoku - So I played 27 hard games on my MacBook Pro for the first three days, and my average time is ~6m10 while my fastest time was 4m00! I am getting good at this :D
- Browsed MacRumors forums
- Watched Big Bang
13 April 2010
MIT CPW
For the past four days or something like that, the entire universe went to MIT. Well maybe not the entire universe, but approximately one thousand MIT '14 admits. Each day was packed with events, and there certainly was lots of free food.
Thursday
Friday
Thursday
- Train ride with Pavel and dad was fun ^_^ unfortunately the free wifi wasn't working, so I read a MSDN magazine instead.
- Registration went smoothly. Then I went to sign up for UROP tours, only to find out that the video game lab tour was full, so I signed up for a MechE one for the lulz.
- Lunch…what lunch? I just had two cookies and a cup of lemonade because I wanted to catch a class.
- Investments was a pretty cool class. Unfortunately I know too little management or economics to get the most out of the class, but I understood the part about using a Taylor approximation to derive an estimation formula for yield. Also, I read Engadget's coverage on iPhone 4.0.
- It was about 1500 now, so I retrieved my luggage from the storage room and haul it to Ashdown. June then led me to the suite and we talked for a while.
- Brian told me to meet him at Random for Bubblewrap at 1617, which turned out to be a huge fail because the demand for bubblewrap exceeded the supply by like hmm…over 9000? Yeah. The little room got mobbed by fifty people. Yeah.
- We walked back to main campus and bumped into Sam and Travis. Then we went behind Kresge to eat some BBQ because I was starving.
- Brian goes on a tour with Akshar and other TJ folks and I go eat ice cream at Simmons. A group of people were there already so some upperclassmen took us on a tour of the dorms. The interior was so different; the walls were curvy! I do realize it's an extravagant waste of interior volume, but the fact that it's so different just appeals to me. Then I had ice cream and played legoes with some other people. I was pretty surprised that two girls there were also having fun decapitating lego people and constructing a human rainbow with the bodies :O
- I start heading over to Random for tea and math and then see Brian and the TJ folks (who were headed to EC for BBQ), so I join them. When we got to EC, I saw Pavel, Ian, and Ben, and the TJ guys decided to go to the minorities dinner.
- Then Pavel and I went to Tea and Math and Ian went to quizbowl. I had tea while Pavel, Brian, and the other guys there did math. lol
- We went to Rockwell Cage for the opening ceremony, which turned out to be pretty epic. The Logarhythms sang ``You Belong With Me'' XDD After the assembly, we got into small groups and played icebreaker games.
- After that was the Activities Fair. There were lots of booths for every club. I watched a lot of supersized Jenga and a chess match between two BCAers to stall for time while Brian just stood at the physics booth doing integrals -_-
- We walked to Firehose for some midnight math/physics (wedge products). It seemed pretty random but understandable until the end, where the lecturer just threw random calculus applications at it ._.
Yep, that really is a crown composed of lego bodies.
Our mostly complete amusement park. The human body rainbow on the revolver was my idea :)
Evil calculus problems. Evil, I tell you. EVIL!1!!111!
Friday
- Chancellor's welcome address was neat. The four presenters were excellent speakers, and the two professors at the end surely prepared informative yet entertaining lectures. Unfortunately, there was a minimum of free food, so my breakfast just consisted of a cup of iced tea. >_<
- Having failed at finding more free food, I went to the student center to check out the women engineer's brunch. The line was unbelievably long (over 100 people), so I bought a Subway sandwich.
- Right after that, Pavel texted me about the BCA alum/senior lunch. He told me to meet at Stata, so I made my way there through the infinite corridor and stuff. I met Ian along the way and he decided to follow me. We got to Stata, floodfill the first floor. No Pavel. Ian texted him and said to meet in the Gates library. We floodfill the first floor of that. No Pavel. Then he texted us to meet at 466. We climbed the stairs to 4th floor, head to that room. No Pavel. Frustrated, Ian and I left to eat lunch and continue with CPW.
- UROP tour of the Ideation lab was pretty cool. The room was basically a junkyard filled with prototypes, posters, and a few Macs. The tour guides had us brainstorm improvements for the paper towel to show us what a typical day working in the lab would be like.
- Went back to dorm to sleep for ~3hr. 5hr is not enough sleep >_<
- Walked to Random Hall in the rain. First went to the Nerf Gun battle, but people were still setting up their hideouts constructed from cardboard. I learned how to operate a nerf gun!
- Minihunt was pretty fun. I had the the team's sole internet connection, which helped a lot. We got pretty far, until everyone got distracted by beef. BEEF. Except I didn't, because it looked unappetizing and I'm not used to eating meat for dinner (gasp).
- Brian took me to the pizza shop diagonally across from Random and I had a slice of pizza and a drink. Yay, I'm no longer starving!
- We went back for nTris and Friends, a rigged Tetris tournament. I did miserably because I treated it as normal Tetris and just used a greedy algorithm to clear lines.
- Tangerine Tour! Under Jack Florey's NDA, all I can say is that roof and tunnel hacking is awesome. And so is sitting on roofs with a spectacular view of the city :)
- Solar Car Shop Tour was really cool. The people discussed what it took to build a efficient, yet high-performance solar car. The project is really tempting, but I probably will forgo this opportunity.
- Took a nap again because 5hr sleep is not enough >_< (see a pattern?)
- Yugioh: The Abridged Series Marathon + Live Interview with LittleKuriboh was one of the most awesome events I went to. We watched the first twenty episodes and then had a live chat with the man himself :O Of course, Jordan asked him a bunch of questions about the creation of the show and how he gets inspiration. I asked him to sing Brooklyn Rage for us :D He told us that he's working on a parody of ``Bad Romance.'' I suppose he's not giving Lady Gaga a break, is he?
- For dinner, Brian and I went to this upscale Spanish restaurant called ``Cuchi Cuchi.'' We ordered two delicious (albeit expensive) dishes, garlic shrimp and bliny. It was also my first experience with bread and oil (still don't understand why; bread is good by itself). Maybe I should convince the rest of purchase cellophane to eat at more upscale places rather than pizza and burger places.
- Our tour at EC was pretty lol. Our tour guides were all from the same floor, so of course they weren't biased. We saw four floors of East side, skipping floor four because it was ``lame,'' apparently. One of the floors had a hackable soda machine that dispensed free soda if you knew how to use the computer program and another had a knife sticking out of the wall. Most of the floors were basically computer junkyards, which makes me feel right at home :) Then a gymnast decides to climb on the steam pipes single-handedly, which was pretty epic. I probably should have recorded it or something…
- Around midnight, some EC folks put on a fire show! The pyromaniacs were spinning fire batons, spitting fireballs, and playing with a fire yo-yo. It was so awesomely mesmerizing…
- We went to the Big Bang Theory marathon (it's a geeky comedy) at 1am. One of my friends had recommended that I watch it, and so I did. It's pretty hilarious. Sheldon has got to be the most socially awkward character XD We got through the first six episodes, but I fell asleep sometime during the middle.
Sunday
- After sending Brian off to the shuttle, I joined Pavel, Ian, and Ben in an empty classroom for early morning breakfast. We talked about EC, MIT life, and math team.
In other news, I finally memorized all of Gen 1 Pokémon! Now for Gen 2…I have 75 of the 100 down. Maybe I should play HeartGold or SoulSilver to refresh my memory :)
Also, while walking through Ashdown, I came across one of the ``don't lose your laptop'' posters, but this one was a bit marked up:
Also, while walking through Ashdown, I came across one of the ``don't lose your laptop'' posters, but this one was a bit marked up:
QFT :)
12 April 2010
Rendering Fail
From all the HeartGold and SoulSilver rage, I decided to get back into Pokémon…old school style! That is, I'm going to memorize all 151 (152, actually, if you count MissingNo.) Gen 1 Pokémon :D So far my record is 148, which is good, but I surely am shooting for 151! Anyway, I randomly decided to listen to the Hoenn (gen 3) Pokérap on Youtube and saw this nice fail.
P.S. CPW post will be up soon!
Labels:
lawlz
01 April 2010
Long, Overdue Post
On 2 March 2010, BCA was conducting interviews for the rising freshmen, which meant half days for us! As with any Tuesday, Health immediately preceded Physics, but on that day, we were let out a bit late, but not much later. I walked to Physics from the cardio room, went up two flights of stairs, was right outside his door. I turned the door handle $$\frac{\pi}{2}$$ radians and pulled it outward. Unlike what happened on all the other days of physics, the door did not move. Dammit! One of the Galitskiy's quotes instantly came to my mind:
I desperately pulled the door handle and knocked on the door for a few moments longer, but I thought of a better idea. I walked into the physics room next door and asked for the teacher to open the door. The teacher looked at me with a confused look and muttered ``Manny's here today; he's not in his room?'' to himself, but went out to unlock the door for me anyway. By then, a small group of people had gathered around the door and were glad that I had found a way to unlock the door. The people already inside the classroom were laughing that I was able to convince another teacher to unlock the door, and when we got inside, Dr. Galitskiy asked ``Since when did Mr. Liva get involved?'' We took our seats and class started.
Having forgotten to lock the door, Pavel and Sam slip through after a few minutes. Dr. G lectures them for being late and locks the door. Then John comes by, tries to open the door, but Galitskiy lets him in because he's special. He locks the door and proceeds with the lecture.
Finally, after ten minutes, Kamran and Fahmid decide to show up in front of the locked door. Like everyone else, they tried to open the door, and we all jeered at them. Seeing their futile efforts, John decided to unlock the door because he's nice. Galitskiy gave them a really long lecture on how not to be late and made them stand in timeout.
/end
So you see, it's very simple, at 2:26 I will simply shut down the door.
Having forgotten to lock the door, Pavel and Sam slip through after a few minutes. Dr. G lectures them for being late and locks the door. Then John comes by, tries to open the door, but Galitskiy lets him in because he's special. He locks the door and proceeds with the lecture.
Finally, after ten minutes, Kamran and Fahmid decide to show up in front of the locked door. Like everyone else, they tried to open the door, and we all jeered at them. Seeing their futile efforts, John decided to unlock the door because he's nice. Galitskiy gave them a really long lecture on how not to be late and made them stand in timeout.
/end
Subscribe to:
Posts (Atom)
