31 December 2010

Year in Review: 2010

Ten Tech Moments
  1. 3D invades CES
  2. iPad arrives
  3. iPhone 4 prototype leaked by Gizmodo
  4. Kin One, Kin Two, Kin…BOOM
  5. iPhone 4 Antennagate
  6. Android takes off
  7. PS3 gets hacked
  8. Internet TV becomes relevant
  9. Windows Phone 7 is launched
  10. Motion gaming takes off with Kinect
Ten Twelve BCA Moments


Ten Automobile Moments
  1. Toyota recalls <insert model here>
  2. Toyota recalls <insert model here>
  3. Toyota recalls <insert model here>
  4. Toyota recalls <insert model here>
  5. Toyota recalls <insert model here>
  6. Toyota recalls <insert model here>
  7. Toyota recalls <insert model here>
  8. Toyota recalls <insert model here>
  9. Toyota recalls <insert model here>
  10. Chevy Volt and Nissan Leaf hit dealers

The year of fail is [almost] over!

27 December 2010

RIP Dr. Ostfeld

"You were a great man and one of the pillars of the Academies. Thanks for everything you've done, and above all else, thanks for allowing me (not yet a resident of Bergen County during the time of admissions) to attend the Academies." --me

Well, that was one great bang to close the year, after a dramatic opening with Holbrook's passing. BCA will never be the same again.

===[edit]===

So finally the [useless and horrifically designed] bergen.org website has a note from Russ Davis, the principal:

Dear Colleagues,

It is with great sadness that I share with you the news of Dave Ostfeld's passing. According to his family, Dave went to see a performance of the Nutcracker last night with his sister and daughter and died of a sudden heart attack this morning.

Words cannot express the impact that Dave has had on the Academy community since it's inception and I am certain that the news of his death will be difficult for our entire staff as well as current and former students.

I will forward information regarding funeral services as soon as I receive them from his family.

Sincerely,

Russ


===[edit x2]===

Here is the official obituary:

[David L. Ostfeld Jr.] passed away suddenly on December 27, 2010 at the age of 68 years. He was born on September 17, 1942 in Chicago, Illinois of David L. and Mildred (nee Harrison) Ostfeld, who both pre-deceased him.

Surviving are his children Kurt D. and his wife Alethia, Dana C., and Mara C. Ostfeld; grandchildren Selah and Elise; siblings Craig H., Lynne R., Adrienne and her husband Donald, Bohnenkamp; numerous loving nieces, nephews and cousins.

Dave taught chemistry, served as Admissions Chair and coached the chess team at Bergen County Academies. He received his B.S. from the University of Illinois in Champaign, his PhD from Cornell University, and did post doctoral work at Texas A&M. He had become an avid genealogist and was developing an interest in agriculture and farming. He was the best dad ever.

Funeral service on Friday, December 31, 2010 at 11:00 a.m. at the Vander Plaat Memorial Home, S-113 Farview Ave., Paramus. Private Cremation. Interment Dickison Cemetery, Dunlap, Illinois sometime this spring. Family will receive friends Thursday, December 30, 2010 from 2-4, 7-9 p.m.

In lieu of flowers donations may be made in his memory to the Dr. David L. Ostfeld Memorial Scholarship Fund, Bergen County Academies, 200 Hackensack Ave., Hackensack, NJ 07601.

25 December 2010

Visiting the Academies

As a good crvft (MIT speak for alumnus), I visited BCA this past Tuesday and Thursday =D Tuesday was for general lols and Thursday was for the Alum breakfast.

Since I don't live in Bergen County anymore, I had to take the NJ Transit bus to school, while everyone else could take the school bus or drive. This sucked because I paid $3 each way for a long and uncomfortable ride, while the same $3 could pay for a gallon of premium gas and the trivial wear and tear on a car. An easy 10-minute trip turned into a 40-minute bus ride + 0.8 mile hike along Hackensack Ave was not fun.

Unfortunately, when I stepped in the building, the deskworker recognized me, so I couldn't slip by without an ID tag. I then went to the former math team room and talked with Nevard, Abramson, Pinyan, and Ben Yang for an hour and also met the new interim math team coach, Jeff Worcjak. After an hour, I went to troll Mr. Sam and saw Alex Lam along the way. Mr. Sam insisted that our poor performance at MIT caused all the early applicants to get deferred/rejected. Then I had lunch at Boston Market, which is now really darn classy for a fast food restaurant.

The afternoon was when all the fun began. When we were done eating lunch, I realized that we were half an hour late for Data Structures, so we rushed there. We then barged in the class, to everyone's amusement, and then I settled down and beta-tested pongmegrenades (still vanilla pong at this point). Topics was right after Data Structures, but we had to leave not long after to prepare for the troll.

What is this troll, you ask? If you recall from last year, the section of AP Physics C that I was in gave Galitskiy hell. Nightmares. Migraines. So as the kind people we are, we decided to replicate that experience by sneaking into his class and taking our usual seats. So at 14:00, about eighteen crvft (people from my section, people not from my section, people who didn't take AP Physics C, and older alum) gathered in the second floor hallway to prepare to invade his class. Luckily for us, Galitskiy didn't have class this hour so we wouldn't disrupt anything important, but he was in his classroom prepping. When he left for lunch at around 14:15, we snuck in the classroom.

Galitskiy then returned and was shocked that he had a full class before class started. Treating the situation as a regular class, he rolled his n-die, which landed on 18, so Scott Lee (who never took AP Physics C) had to present. Luckily for Scott, Fahmid took the stage and started explaining us the dolphin, which we established last year that it could not do physics. A bit before 14:25, the real AP Physics class came in and was shocked that all the chairs had been occupied, so they just took the lab tables as Galitskiy shooed us out. Never have we heard him eagerly say "Guys, get out, it is two twenty-five and I have to teach a class!"

The last item in my agenda was computer team. It was great seeing familiar faces and new faces in the club :3 I decided to give a guest lecture about practical advice (totally not computer science related) as a gift. Unfortunately, setting up the presentation took a bit of work because Keynote complained that my DisplayLink USB to VGA adapter had "not enough VRAM". I tried rebooting the computer with the adapter attached (the internet indicated that this could work), but to my dismay, it didn't. During the reboot process, one of the csteamers asked, "How long will the reboot take?" and I said, "Oh, probably 5 seconds." He began to count out loud, and when he reached "THREE," the Mac OS X desktop loaded. Everyone was blown away.

===

Thursday was the Alumni Breakfast, so I didn't expect to have much trolling time. Nothing much was going on before the breakfast, so I said hi to some teachers again and hung out with crvft and some seniors. During the breakfast I saw some crvft (Julia-san and George Hotz, in particular) I didn't get to see earlier during the day or on Tuesday. George still seemed the same pwnage person he always was (unfortunately I forgot to ask him about USACO). Apparently I'm the first MIT-er that he talked to at the breakfast, after asking approx 10 other people if they "were at MIT." I also talked to Eric Zhang (AAST '00 and MIT '04), one of the freshman biology teachers. He was surprised that I took 6.172 ("the new 6.170") as a frosh xD After about an hour of jabbering, I left to go home.

20 December 2010

Bad Coding Habits -- Don't try this at home!

The first semester of college has concluded, which means that I have time to indulge in my hobbies, specifically photography! I was fortunate enough to have went to B&H, one of the largest pro creative shops, this past weekend and brought home a nice tripod, which I have been using extensively these past days mainly for low-light photography. The shots, one of which was posted yesterday, came out great; now I need a place to upload them.

Ah, what better place to upload than my own server.

That's right; a bit over a year ago, I wrote a nice little AJAX photo gallery, which could definitely use some work. So rather than exporting said photographs for the web, I got distracted by the dysfunction of the gallery and cracked open the code. I scroll down and see the following javascript:

function showAlbum(a) {
    path = a;
    var xmlhttp;
    if(window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState == 4) {
            document.getElementById('ulfilmstrip').innerHTML = xmlhttp.responseText;
            var aaa = document.images;
            img_array = new Array();
            for(var bb = 0; bb < aaa.length; bb++) {
                if(aaa[bb].src.indexOf("cover") < 0) {
                    var cc = aaa[bb].src.split("/");
                    cc = cc[cc.length-1].split("_thmb");
                    img_array.push(cc[0]+cc[1]);
                }
            }
            showImage(img_array[1]);
            document.getElementById('filmHeader').innerHTML = a;

            toggle();

            resizeGal();
            window.onresize = resizeGal;
        }
    }
    xmlhttp.open("GET", "fetch.php?dir="+a, true);
    xmlhttp.send(null);

    return;
}

Okay, so a is probably the album that we want to display…wait, what is aaa?! And bb?! And cc?!

17 December 2010

MIT First Semester Notes

Today is the first day of winter break, which means that first semester is over! Here are some notes about classes, etc:

Classes

6.172: OMG THIS IS SUCH A GOOD CLASS (even though the workload is ~20hr/week). If I could, I'd love to take it again, but since I can't, hopefully I can TA the class when I'm a senior or M.Eng student. =D Strangely enough, this class did not make me hate coding, even though I encountered a bunch of bugs. The TAs were enthusiastic and responded very quickly to emails.
  • Prereqs: Know C/C++, git, make, algorithms, or else you will suffer! Also, know how to use your favorite text editor!
  • Advice: Be prepared to debug, debug, debug and invest a considerable amount of time right before finals week for the ray tracer. I spent probably 40h that week for this class.
  • Average time spent in class: 3hr/week; average time spent out of class: 20hr/week
14.02: Very unrigorous; it's as if the teacher just pulled everything out of his posterior end. At least Professor Feyrer was an enthusiastic lecturer! The TAs were hard to understand and weren't very enthusiastic.
  • Prereqs: Common sense, know how to take derivatives with a ruler
  • Advice: This is your chance to practice common sense.
  • Average time spent in class: 1.5hr/week; average time spent out of class: 2hr/week
7.012: Eric Lander is such a baller. Weinberg is good too, except he is a rather monotonous lecturer. I did not like how the (really annoying and long) problem sets relied heavily on the lectures and not the book. The flow of material was pretty good and made my lust for computational biology manifest itself a bit more.
  • Prereqs: None
  • Advice: If you want to put in minimal effort into the class, make an effort to learn biology in high school! Also, it's a good class to take on pass/no record.
  • Average time spent in class: 1hr/week; average time spent out of class: 2hr/week.
21W.732: Define a grade function $g(x)$ (where $x$ is effort) such that $g(x) = A$ when $x > 0$ and $g(x) = 0$ when $x = 0$. Yes, that's basically how easy the class was for me. Professor Barrett was enthusiastic and assigned fun projects.
  • Prereq: None
  • Advice: Good writing class. If you have an interest in digital media, this is a great class to practice your skills!
  • Average time spent in class: 3hr/week; average time spent out of class: 1hr/week. 
Life and such

MIT's been a good place; there are amazing facilities for everything!
  • Stata Loading Dock for general hardware collection
  • Reuse for hardware and exercise
  • CSAIL for high performance computing (did I mention that I have access to a 48-core box? =D)
  • Micro Center for random hardware window shopping and exercise
  • MITERS for satisfying my latent EE desire
  • Star Market for cornish hens and exercise
  • Art of Problem Solving grading sessions to supply funds for obscure hardware
I should also mention a subset of the hardware I now have as a result of crufting:
  • 15" iMac G4 (USB 2.0): used to charge my iPhone at night
  • XServe G5 cluster node (unknown): soon to be a compute node
  • Matrox Dual Head2Go: sits in a drawer until I get more displays
  • IOGear DisplayLink adapter (USB to VGA): used to get VGA out from my laptop because I don't have any miniDisplayPort adapters
  • and a bunch of keyboards, mice, and cables that actually come in handy when things break (yes, things do break)
As for people, it's been a mixed bag. People generally are either theoretical or hands-on, but not both. I'm usually at one of three places:
  • 4E, my floor, for a little bit of computer hardware interests (mostly just collecting, not discussing) and some compsci stuff (mostly talking to one of the seniors =D)
  • Clam kitchen for more theoretical compsci stuff (and some gaming kibitzing)
  • 4W (Bayley and Michael Cohen) for…everything else? XD
    • From ray tracing, 
    • to lasers, 
    • to high performance computing, 
    • to CNC machines, 
    • to some really obscure [theoretical] computer science topics (Bayley's computer algebra stuff or Michael's general interest in theoretical compsci), 
    • to Apple =D, 
    • to how Erik Demaine is a beast at life, 
    • to photography (*cough* expensive optics), 
    • to the lameness of mandatory classes in EECS are, 
    • to computer architecture, 
    • to the weekly sale at Micro Center/Newegg and price levels of computer components, 
    • to how Henrik Wann Jensen is the god of photon mapping, 
    • to high-powered electronics, 
    • to how 6.172 is such an awesome class =D, 
    • to economics, 
    • to World War III,
    • to (a little bit of) cars,
    • to next semester's classes, 
    • and somehow the conversation becomes degenerate when the word ``finance'' (or even money) is uttered.
Also apparently I am a good artist even though my drawing skills have been shelved 7 years ago o_O.

So that's life at MIT for now; we're on break until January 2nd. The month of January is devoted to IAP, or independent activities period, a month of no (real) classes! Hopefully I won't be too hosed then to actually be able to work on some cool EE projects.

    04 December 2010

    So many lols

    What does this code do?

    370     __m128 row0, row1, row2, row3;
    371     __m128 tmp0, tmp1, tmp2, tmp3;
    372 
    373     
    374     row0 = _mm_load_ps( mat2[0] );
    375     row1 = _mm_load_ps( mat2[1] );
    376     row2 = _mm_load_ps( mat2[2] );
    377     row3 = _mm_load_ps( mat2[3] );
    378 
    379      
    380     
    381     tmp0 = _mm_unpacklo_ps( row0, row1 );
    382     tmp2 = _mm_unpacklo_ps( row2, row3 );
    383     tmp1 = _mm_unpackhi_ps( row0, row1 );
    384     tmp3 = _mm_unpackhi_ps( row2, row3 );
    385 
    386     
    387     row0 = _mm_movelh_ps( tmp0, tmp2 );
    388     row1 = _mm_movehl_ps( tmp2, tmp0 );
    389     row2 = _mm_movelh_ps( tmp1, tmp3 );
    390     row3 = _mm_movehl_ps( tmp3, tmp1 );
    391 
    392     
    393     _mm_store_ps( mat2[0], row0 );
    394     _mm_store_ps( mat2[1], row1 );
    395     _mm_store_ps( mat2[2], row2 );
    396     _mm_store_ps( mat2[3], row3 );
    397 
    398     
    399     
    400     ret[0][0] = mul_asm(mat1[0], mat2[0]);
    401     ret[0][1] = mul_asm(mat1[0], mat2[1]);
    402     ret[0][2] = mul_asm(mat1[0], mat2[2]);
    403     ret[0][3] = mul_asm(mat1[0], mat2[3]);
    404     ret[1][0] = mul_asm(mat1[1], mat2[0]);
    405     ret[1][1] = mul_asm(mat1[1], mat2[1]);
    406     ret[1][2] = mul_asm(mat1[1], mat2[2]);
    407     ret[1][3] = mul_asm(mat1[1], mat2[3]);
    408     ret[2][0] = mul_asm(mat1[2], mat2[0]);
    409     ret[2][1] = mul_asm(mat1[2], mat2[1]);
    410     ret[2][2] = mul_asm(mat1[2], mat2[2]);
    411     ret[2][3] = mul_asm(mat1[2], mat2[3]);
    412     ret[3][0] = mul_asm(mat1[3], mat2[0]);
    413     ret[3][1] = mul_asm(mat1[3], mat2[1]);
    414     ret[3][2] = mul_asm(mat1[3], mat2[2]);
    415     ret[3][3] = mul_asm(mat1[3], mat2[3]);
    416 
    

    Yeah, this is for a class. Guess which one? (6.172)

    24 November 2010

    Frustration

    As an early Christmas gift, I was suckered into buying two 2TB hard drives the instant I heard they were $90 apiece on Newegg (it so happens that 2TB drives are $70 apiece for Black Friday sales). They were destined to go into the first of my four Dells that I got from the Stata Loading Dock a while back for my media and archive server. My plan was to install ArchLinux on the drives, but with a twist: I wanted to install a software RAID 1; that is, to have the drives be perfectly mirrored at any instant in time. Sure, such a setup is overkill for one person, especially without any critical data, but setting one up would be good experience.

    Obviously the first step in setting up any storage array is to install the hardware. Since these Dells do not have a second SATA port, I had to either (a) use an adapter to convert SATA to IDE or (b) get a second SATA port. Step A was easier at the time I got the drives because I had already picked up two SATA->IDE adapters from a Reuse posting. Strangely the adapters did not work in the Dells, but worked perfectly fine on my quadbox. Luckily, a week later Bayley found a 4-port SATA PCI card and generously gave it to me. I installed it in the Dell, plugged in both drives, and fired up the machine. It worked! Surprisingly, the Dell reports the drives as IDE drives. Strange.

    Now it is time to install Arch. Having not a clue as to where to start, I Googled some guides. The first article that I got was an install guide on Arch's wiki and it was rather long and was not trying to do what I wanted to accomplish. However, it was a start, and I felt confident enough to work my way through it.

    On my first attempt, I followed all the instructions, only forgetting to add the "mdadm" and "lvm2" hooks before the "filesystem" hook in mkinitcpio.conf. I think everything else in the setup process went fine. Then I rebooted the machine, which seemed to be fine until the OS decided to fall back to the ramfs. Uh oh. This was my first time working in a castrated (and borked) Linux; I was shocked when "halt" and "reboot" did not work. I hit ctrl-d to logout, which proceeded to induce a kernel panic. Derp.

    Evidently the install failed somewhere. On my later takes, I tried manipulating the commands, and sooner or later I began to understand what each of them did. I also learned (more or less the hard way) that formatting a 2TB disk takes approximately five minutes. Google proved helpful in collecting further resources; some other webpages that I read included a Ubuntu mdadm RAID1 thread, Arch RAID0 thread, and mdadm stop/delete array thread. Unfortunately, none of them ended up helping me set up a working RAID1 array. Double derp.

    After two weeks of on-and-off work and trivial progress, I got rather frustrated, stressed, and upset. My self-imposed deadline of Thanksgiving crept faster and faster, which put more pressure on me to get this stupid thing working. I decided to try one last time on the eve of Thanksgiving, hoping that something would work out. It didn't. Grub decided to be annoying, and when I got Arch to partially load after copying the Grub files onto the boot partition, Arch decided to fall back to the ramfs and proceeded to kernel panic. Blah. I finally relented and installed Arch on one disk and set up the other disk as a vault for incremental backups, which took less than half an hour. *mega sigh of relief*

    Although this most definitely is not a RAID1 array, it is still a decent alternative for redundant storage. As for learning how to set up software RAIDs in Linux, I'll probably do that on another machine during IAP (another name for January, in which we have no classes), when I'm not Battlecoding, cramming for Linear Algebra or Differential Equations, or churning out PSETs for Intro to C++.

    tl;dr Setting up (uncommon) configurations on Linux + deadline in the near future = major stress. I totally do not want to do IT-related work as a career.

    UPDATE: So somehow Bayley sort of talked me into installing Ubuntu Server on the box because Ubuntu Server has a nice RAID configuration utility. Plus, Ubuntu Server is not as bloated as the regular Ubuntu. I suppose with 2TB of disk space I should not be fussing about an extra 150MB or so. Hmmm....

    23 November 2010

    Steve Jobs loves Coldplay?

    Today, in writing class, we presented our favorite music videos in class. One of them was "Life in Technicolor II" by Coldplay. The song's initial instrumental melody immediately reminded me of the Apple MacBook Pro (Unibody) promotional video.

    Life in Technicolor II:



    Apple MacBook Pro video:



    Well it is true that the one billionth song purchased on iTunes was "Speed of Sound" by Coldplay (the lucky purchaser won a 20" iMac, ten video iPods, and $10,000 in iTunes credit).

    20 November 2010

    Bit Hacks are Awesome

    What does this code do?

    float super_mario_bros(float number)
    {
       long i;
       float x2, y;
       const float threehalfs = 1.5F;
     
       x2 = number * 0.5F;
       y  = number;
       i  = * ( long * ) &y;                       
       i  = 0x5f3759df - ( i >> 1 );               
       y  = * ( float * ) &i;
       y  = y * ( threehalfs - ( x2 * y * y ) );   
    // y  = y * ( threehalfs - ( x2 * y * y ) );   
     
       return y;
    }
    

    18 November 2010

    BMW is tricky

    Putting the backup camera behind the trunk logo? Now that's creativity! =D

    Photo credits: Car And Driver

    The car in question is the 2012 650i, which recently debuted at the Los Angeles auto show.

    16 November 2010

    I'm Still Alive...I think!

    Hey folks,

    Apologies for the lack of movement/posts in the last week or so. Another week of exams/projects is coming up, so I don't have the luxury of heading to MITERS on Friday nights to tinker around. Actually, I don't have time to break from studying or coding to mess around with the display, which happens to be sitting a mere foot behind me. :/ So yeah, in short, life at MIT is very busy!

    What I've been up to recently: learned Cilk, an x86 parallel programming platform invented by my professor, Charles Leiserson (the tech has been acquired by Intel last year). I used it to optimize a graphical screensaver (6.172 Project 4 [pdf], if you're curious).

    I also got my hands on two very sexy pieces of hardware:
    1. a 13.3" MacBook Air 1.86/4/128/320m as a replacement for my 4.5-year-old, trusty Core Duo MacBook Pro (2.0/2/160GB Intel G2/X1600). Expect a review within the next week.
    2. a 15" iMac G4, courtesy of Bayley (the dumpster diver) =D
    Awwww, so cute :3

    I'll write some brief notes about the iMac, even though you are probably more excited to hear about the MacBook Air. The iMac boots Mac OS X 10.2.8, but since I didn't have the password accounts to any of the existing accounts, I found a hack to let me get in by making a new account with admin rights. All you have to do is boot into single user mode, remove /var/db/.AppleSetupDone, and reboot! The Mac will think this is the first time the computer has been booted, so it will go through the traditional setup process. After approximately five minutes, I had my own account with admin privileges! =D What an easy and terrifying exploit. So much for `security' in older Mac OS X versions ;)

    Besides that, the Mac has a 1GHz G4 processor, 256MB RAM (though easily upgradeable considering the vast amount of DDR RAM sitting in my drawers), and a semi-spacious 80GB disk. I theoretically could dump one of my many disks currently sitting in my dresser into it. That might make a good Thanksgiving project.

    In other news, I am teaching three Splash classes: Bit Hacks by myself, and two bridge classes, Probability in the Game of Bridge and a Menagerie of Bidding Systems, with my partner-in-crime Brian Hamrick. Lecture notes and slides will be posted for your enjoyment :)

    And finally, Math Prize for Girls was this past Saturday. Congratulations to all! The score distribution was much better than that of last year, with a tie in 3-5 and a ten-way tie for 8th place. The competition (and the fact that I got a MacBook Air not too long ago) reminded me of my [very silly and naive] vow if I had won the competition last year (going to the nearby Apple store to buy ten decked-out MacBook Airs immediately following the competition).

    In any case, happy hacking!

    08 November 2010

    Apple Display Hack Followup

    Here is a link to the original post: http://doesntexistat.blogspot.com/2010/11/hacking-apple-studio-display.html

    Intro, Power Supply

    So this past week was exams week, which means that I did not get much time to work on the project. After exams were over on Thursday night, I opened the 24V 1.5A power supply that I got from ebay! The cute power supply is pretty small; about the size of 5x7 photograph. There are terminals for AC +, AC -, AC Gnd, 24V +, and 24V -; you unscrew a screw which secures a plate, which in turn sandwiches the wire in the middle of said plate and the power supply unit itself. I then stripped one of my many computer power cords so I could use a 3-pronged plug. Most 3-prong plugs have black as L (line), white as N (neutral), and green as ground. No soldering or nonsense was needed to wire, since the only effort to wire up the system was unscrewing five screws and inserting the wires in between the plates and the unit itself. Before I wired up the monitor power cables to the power supply (and after I had attached the AC power cord), I measured the output with a voltmeter, and sure enough, it read 24.5V! Perfect.

    Wonky Connections

    I then wired up the monitor, plugged in the setup, and powered on the system. Sure enough, the monitor came to life! Upon closer inspection, I noticed some pixels that were spazzing green (i.e. flashing green and the proper color). This was probably a problem with the cable connection; I smacked the mess of wires and the number of spazzing pixels reduced.

    The spazzing goes away if I squeeze the proper connections. This confirms that some connections are loose. I can temporarily fix the problem by holding the connections with a binder clip, but will resolder and/or reshrink the connections once I get a soldering iron in my room. There is no way I am lugging the monitor 1 mile across campus again.

    Setting up a ghetto dual screen setup in the middle of a dorm (Random Hall) kitchen warrants weird looks!

    USB & Hotplug

    Apparently USB was always working. I finally tested it today with an Apple USB mouse. It's good to know that the monitor extracts/produces/ the +5V required internally. I still have yet to figure out hot-plug support (I guess it is a matter of soldering two wires together).

    Display Brightness

    I hadn't really thought about this until I skimmed through the bit-tech thread for the clean version of this hack. As all Apple display owners know, the brightness is controlled through software (System Prefs on a Mac), and the button on the display is more or less an app launcher for System Preferences. I confirmed that pressing the button works -- it brings up System Prefs to the Display pane. Dragging the display brightness does change the brightness!

    Other people mentioned that the display will draw significantly current at a high brightness than at a low brightness. When I tested the display (at full brightness) with the lab power supply, it drew less than 1.5A, so no worries there.

    Breakout Box

    I thought about making a breakout box as the true solution to this problem. I was fortunate to find a video card with a female ADC port in the dumpster. In theory, I could desolder that, create my own PCB board, and solder the necessary parts on (female ADC port, female DVI port, connection to power supply, USB cable). Unfortunately, desoldering the ADC port from the video card was crazy evil (especially at 12:30am), so I stopped working on it for the evening. Perhaps the desoldering tool needs a smaller head (it was one of those powered heat+vacuum tools). I will give it another shot when I return to MITERS.

    Miscellaneous

    One of my friends also got a 15" version of this monitor and creatively mounted it on his bunk bed after stripping off the acrylic (which is equivalent to unscrewing seven hex screws). He is also planning to do this hack! I am happy.

    Feedback and Q&A

    I also read much of the feedback to this hack. Thanks all who appreciated it. I do realize that this hack is not original (in fact I did not claim to be the first one to have done so since I linked to someone's pinout guide in the main post), but I do claim that this is my first hack. I do want to congratulate WarriorRocker for his very clean and Apple-esque Apple Studio Display hack.

    Now, to answer some questions/feedback:

    Q: ...pinouts.ru...
    A: Yes, I'm well aware of it. However, soldering the pins on the plug to wires is tricky, and since this is my *first* time soldering, I'd rather do something more manageable. I'm sure the hack will be a lot easier had I just connected corresponding pins with wires. Thanks anyway!

    Q: I happen to be attempting the same thing and I seem to be running into a snag. The only video connections I've made are the 8 which come off the board - Clock +/-, TMDS 0+/-, TMDS 1+/-, and TMDS 2+/-. Is there anything else that is necessary for DVI to work that I'm missing? Also, I'm using a 24V 4A power supply, could the amperage be too high? The power button lights up and pulses but I don't even see a flicker on the screen.
    A:  Yes, you are missing DDC Clock (ADC pin 9) and DDC Data (ADC pin 19). Your power supply should be more than fine; the monitor is rated for 50W.

    Q: Other Pins <=> Colors on the DVI fragment
    Is there any number pin number?
    Dvi or adc pin number ?????
    A: The DVI pin numbers are on the left of the chart. Basically that chart was a listing of all the leftover wires after I had soldered everything according the the main chart. Apologies if that was unclear.

    Again, a big thanks for all who thoroughly read through the post and appreciated it!

    02 November 2010

    Hacking the Apple Studio Display

    I acquired a circa 2002 17" Apple Studio Display LCD in good condition from my friend and dumpster-diver-buddy Bayley Wang. The monitor is one of the top-notch 17" monitors: (Hey, it retailed for $999!) it has a superb IPS, or in-plane switching panel for unmatched color quality even by today's semi-professional standards (pros probably want 10- or 12-bit panels now). Unfortunately, this unit has an Apple Display Connector, or ADC, plug instead of the more standard DVI plug. On the flip side, the ADC is simply DVI + USB + 25V, so I could hack the monitor to use DVI! I looked on Google for previous hacks, but the only relevant documentation was a post and a PDF on the Apple discussion forums describing the ADC pinouts and their DVI equivalents. Having nothing better to do, I decided to splice a spare DVI plug onto the monitor!

    Hacker food = McDonald's. Yup.

    I began by cutting off the ADC plug from the single wire the came out the back of the monitor and then proceeded to strip off the rubber sheath, cut off shields, and strip the internal cables. The actual cables were 26-gauge wires -- they were very thin and looked very fragile! I used a magnifying glass to help peel off the shielding. Some of the internal wires were grouped and additionally shielded; I exposed them at a shorter length to prevent cable confusion (there were multiple cables of the same color). I repeated the process for the DVI cable: first cutting it in half, then stripping the wires, and finally stripping the wires which were enclosed in a further layer of shielding. Stripping all the cables took a good hour and a half.












    The next item in our agenda was to find out which wires corresponded to which pins on the DVI wire fragment. I was not quite sure what to do initially, but a MITER gave me the following tip: Apparently the ohmmeter has the nice property of displaying some odd (i.e. zero) resistance when the positive and negative leads are connected without resistance. I tested all the pins and all the wires and constructed the following charts (note: these colors may be different for your DVI cable!):


    Main correspondence table

    ADC colorDVI Pin & Color (if none, function)
    2x thick red+25V
    2x thick blackGnd
    very thin dark brownC5
    very thin orangeLED
    light blue 7 yellow (single)
    yellow6 white (single)
    green (twisted w/ white)USB D+
    white (twisted w/green)USB D-
    black (near USB Data)USB return
    light brown (t. w/ white)24 white (white, blue)
    white (t. w/ light brown)23 blue (white, blue)
    white (t. w/ orange)2 red (red, pink)
    orange (t. w/ white)1 pink (red, pink)
    pink (t. w/ white)9 brown (yellow, brown)
    white (t. w/ pink)10 yellow (yellow, brown)
    white (t. w/ black)18 green (green, black)
    black (t. w/ white)17 black (green, black)

    t. = twisted
    (color1, color2) = color1 is in the same shielded group as color2

    Other Pins <=> Colors on the DVI fragment

    11naked w/ yellow, brown
    16light brown (single)
    14dark brown (single)
    15black (single)
    3naked (red, pink)
    22naked (blue, white)
    19naked (green, black)

    single = not in a shielded group

    Male DVI-D (single link) pin numbers:

    C5876------321
    161514------11109
    242322------191817

    The --- pins represent unused pins; these pins are for dual link connections only.

    I was left waiting for quite a bit because I didn't know how to solder and one of the MITERs who graciously volunteered to teach me, Dane, was busy with his project. After he was done, he soldered one of the wires on the monitor end with the corresponding wire on the DVI cable fragment while I watched from the side. Then he placed a heatshrink over the freshly soldered wire and blew it with a heat gun to prevent the conjoined wire from shorting the other wires. I then sat down for what seemed to be an hour and concentrated on soldering all the pairwise wires. The end product was a great big mess; Charles Guan, the MITERS god, felt sick to his stomach just by looking at it! Everyone doubted that my hack would work, but I had a sliver of hope that my first real electronics project would succeed.







    After I was finished, I showed Dane the end result. He suggested that I should solder the shields (the naked wires in the shielded groups), too. I finished soldering rather quickly, heatshrinked them, and reported back to Dane. We then connected the monitor to the lab power supply, dialed it to the Apple-specified 25V, and connected the alligator clips to the red and black wires on the monitor. Dane touched the capacitative power button, which pulsed at the touch. I connected the monitor to my laptop, went into System Preferences, and hit `Detect Displays.' The monitor then came to life in mirror mode!! My five hours of hard work paid off!

     IT WORKS!!11!!oneone!

    Mess of cables

    Other notes:
    • USB does not work. I'll get that working this week. [EDIT] A friend suggested that the monitor might internally make the +5V required for usb, so I'll have to test it this week at MITERS since I don't have the power supply in my dorm. USB does work -- see the follow-up.
    • Hot-plug display detection doesn't work. I'll get that working this week.
    • I will consider making a breakout box instead of hacking the monitor cable. One of these adapters costs a whopping $99 from Apple! 
    • The monitor runs fine on 24V and draws slightly more than 1A -- no need for 25V. I have already ordered a 24V 1.5A regulated power supply from ebay.
    If you have questions and comments regarding this hack, feel free to leave a comment (Google account required)!

    EDIT[2]: Here is a followup of the hack: http://doesntexistat.blogspot.com/2010/11/apple-display-hack-followup.html

    EDIT[3]: Here it is in action: lame dual display and insanely excellent triple display

    30 October 2010

    MITERS

    Yesterday night, Bayley and I decided to head to MIT electronics research society, or MITERS, after hanging out watching people play League of Legends at Random and eating a hearty dinner consisting of tiny McDonalds' burgers. I figured this would be a good time to learn how to solder and hack the 17" Apple Studio Display (flat panel) with an Apple Display Connector (ADC) that Bayley gave to me, so I carried that along. The lab/warehouse was located a good minute's walk from Random, but walking with a rather large monitor tucked under my arm was rather troublesome. Once we got there, I found an empty lab bench and introduced myself to the MITERSers (should it be just MITers?), while Bayley got down to work with his laser. The hack, which I will elaborate in a future post, that I wanted to do was to convert the ADC plug (male) to a DVI plug (male). Sure, I could buy the breakout box from Apple for $99, but a ghetto setup for $0 would be much more awesome. It took about five hours to complete, from stripping the cables to testing the unit.

     Teaser image: My first real electronics project works!

    Having nothing else to do, I hung around the lab and watched other MITERSers work on their projects and beta-test the 4-ft tall Tesla coil in the parking lot (this was at 3am today). The coil was particularly interesting in that it played loud, off tune music and had the peculiar ability of attracting drunk young adult females.



    Bayley and I finally left around 4am, satisfied that our respective projects were successes.

    27 October 2010

    This Fated Moment

    My printer "ran out of ink."

    "Ran out of ink?"

    Yes. The cartridge isn't actually empty; the printer, a Brother HL-2040 (a laser printer my dad purchased a few years ago for $50), is programmed so that when the toner level is below some threshold, will refuse to print any more documents. This means that I'll have to rely on the hall printer or some other Athena cluster printer, whose queue is usually jammed with 20-page articles people need to print for their humanities classes. Well, that's unfortunate.

    [Interjection] The clever MIT student would say, ``Well, couldn't you just haul back any printer from the dumpster? They all work...'' To which I would respond: ``Hacking my current printer would be much cooler!''[/Interjection]

    Actually not quite. A few years ago, when I was researching this particular printer in my leisure, I came across a highly insightful Amazon review (which I then stored in my Google Notebook):

    135 of 136 people found the following review helpful:
    Masking Tape Gives TN-350 Toner a Second Life,August 25, 2008
    By C. MACPHAIL "cmacphail3" (Solana Beach, CA USA) - See all my reviews
    (REAL NAME)       
    I get 800 to 1100 extra copies from each cartridge.

    After the "Toner Life End" message appears, it refuses to print even one more copy. Offensive...until you show it who's in charge.

    Remove the cartridge and find 2 clear plastic port holes, one on each side. The printer shines a light through these to decide when to shut you off. But it's too sudden and too early.

    Cover one or both windows with a small piece of masking tape. I get about 3400 copies per cartridge instead of 2400.

    I really like Brother printers now that I have taught them some manners.

    So I tried it...

    Here is the hole on one side (close up).

    Here is the hole relative to the cartridge unit.

    Here is the hole covered by masking electrical tape.


    ...and hey, my printer now willingly spits out my biology homework!

    The printer is nice and happy! (Green Ready light is on instead of the irksome orange Toner light).

    For the keen eye: The processor sitting on my printer is a LGA775 Pentium 4.

    Next hack: DIY ADC (female) to DVI (male) adapter! Stay tuned!

    23 October 2010

    Interesting MacBook Air Notes

    I suppose this post is slightly late, but still worth sharing anyway. It's more of an analysis of the new MacBook Airs, rather than a hands-on. In fact, when I went to the CambridgeSide Galleria Apple Store a few hours after the keynote, the only MacBook Air in the store was a lonely 13.3" model. *sad*

    This past Wednesday, Steve unveiled new MacBook Airs! It was a nice revision; the computers got smaller, lighter, and faster. Briefly looking through disassembly pictures courtesy of iFixit and hands on reports by Engadget, MacWorld, and Ars, I have notice several small details:
    • The SSD is no longer a 1.8" SATA unit; it is a very long Mini-PCIe card. In theory, you can transplant the unit to a different computer with such a slot and have a very fast, small, and light disk. The unit does have TRIM support, though.
    • The backlit keyboard has been omitted. I suspect it will be reintroduced in the next revision, as with the Aluminum MacBook (Late 2008) to the 13" MacBook Pro (Mid 2009).
    • The IR sensor and sleep indicator have been removed. Not sure why the IR sensor is gone, but I have a theory about the sleep indicator. One of the highly touted features of the computer is instant on and its 30-day standby time. From Jason Snell's report, he says that the new Macs go into deep sleep (hibernate) after it has been [normal] sleeping for a while, and when it is woken up from deep sleep, it does not show the gray loading bar like in other Macs. In essence, the computer has shut down, and other Macs do not pulsate the sleep light while they are in the off state. As for Snell's second observation, the MacBook Air omits the loading bar once awoken from deep sleep because it can jump back to the original state much quickly due to the SSD. Therefore, the MacBook Air can do away with both of those items.
    • The 11" MacBook Air has smaller function keys than the other Mac keyboards. The space between the keyboard and the start of the depression (on all sides but the side closest to the trackpad) has been shrunken considerably.
    • The power button has been moved to the location of the eject button, so the button is no longer aluminum.
    • The last row of keys on the 11" MacBook Air are the same height as the alphanumeric keys. This is a small turnoff for me, as I always appreciated the extra height of the space bar and the function, control, option, and command keys. 
    • The 13" model still uses the shrunken package low-voltage Core 2 Duos, but the 11" uses the shrunken ultra-low-voltage Core 2 Duos. This is the reason that 11" units have lower clocks than their larger siblings. 
    • Both units have stereo speakers! They are located underneath the the left and right sides of the keyboard.
    • Operating temperatures have been reported to be lower, and therefore fan speeds are lower. No more hair-drying (or jet engined) MacBook Airs!
    I think that's about it; I kept out the bigger features because those are widely documented. Hopefully this report will be useful to potential MacBook Air buyers! I know for sure that I will be getting a decked out 13.3" MacBook Air in the near future to replace my current laptop. (it's a 5-year-old MacBook Pro!)

    21 October 2010

    A Revelation

    I actually met and conversed with one of my 6.172 TAs today at a VMWare tech talk/recruiting seminar. He gave me some insight on his experience with the dynamic memory allocator project.

    ``When I did that project, I thought I could write the thing by myself two days before it was due. Turns out that didn't go so well.''

    Oops.

    19 October 2010

    Oh Hey Seagate Answered!

    Thank you for sending your Seagate E-mail inquiry.

    I understand you purchased Seagate internal drive  ST3400832AS, at swap meet when I entered the serial number 4NF068V3 it is 400 gb drive.  I also noticed it is OEM drive we do not support OEM drives.  However  the  drive may be clipped to a lower capacity, so we need to use a tool to set it to the full capacity.

    Please download Seatools for DOS from this page:

    http://www.seagate.com/www/en-us/support/downloads/seatools/

    It will create a bootable diskette or a bootable CD as you choose.

    Choose 'C' to Set Capacity.  That should get the drive back to the correct capacity.

    If that fails, please then choose 'Z' to zero-fill (quick) the drive and then click Done.

    **WARNING** This will erase all data on this drive.
    Then go back and try the Set Capacity once more.


    Hmm, interesting. So the response indicates that either (a) the swapfest seller ran the drives and disabled 80GB or (b) Seagate ran the drives and disabled 80GB.

    18 October 2010

    Oh Snap.

    My webserver died. (for the $n^{th}$ time.)

    Coincidentally, this morning was Swapfest, a flea market for electronics and hardware. Since this is the last swapfest in 2010, I woke up at 0800 to beat the line. I got there at 0830 after making a stop at BofA to withdraw money. When buyers were allowed to enter at 0900, I made a trip around all the stands to sett what people had. There was EVERYTHING: from circular saws to i7s to oscilloscopes. I picked up a 400GB SATA disk for $30. It's not such a great deal (there was a 2TB disk for $120, but I only had $60 and didn't need such a huge disk), but it's on par with what I can get at Newegg. Plus, I could take it home in 15 minutes and use it!

    So I take the drive home, plug it into my webserver, and format it. I was pretty spooked the first time when I saw that fdisk listed the drive as a 320GB unit. I looked at the drive again and the label on it was rather intact like the drive label on any (properly-marked) drive. There were no scuffs or hints that the drive had been re-labeled or whatnot. After installing ArchLinux, I plugged my old disk into the computer and went into the BIOS to change boot settings. I was horrified to see that the drive had a different model number (and of course a different capacity) than what was written on the label.

    Um, what?!

    The next day, I wrote the following message and submitted it to Seagate's support site.

    Hello,

    The drive that I bought yesterday at the MIT Swapfest was clearly labeled as a ST3400832AS, a 400GB unit. Upon close inspection, the sticker appears to be genuine; there is no evidence of it being placed sloppily. However, when I plugged it into my computer, the BIOS showed it as a ST3320620AS, a 320GB unit. Doing fdisk -l in Linux also says that the drive is a 320GB unit. I have included two images in the attached zip file: one is the original image my my digital camera and the other is an annotated version of the image showing the BIOS readout and disk drive sticker discrepancy. This is purely unacceptable and abysmal quality control on Seagate's part and I kindly ask for the drive to be replaced with the properly-marked (or better) unit. Thank you and have a nice day.


    Because Seagate isn't Apple, I don't really expect them to respond with anything I want (never mind a better drive). The most I expect is a curt message along the lines of  ``Life sucks, have a nice day!'' In any case, stay tuned!

    16 October 2010

    iRepair Adventures, Dell Latitude D600 Part I

    During my almost-daily runs to the Dumpster to search for goodies, I found this nice Dell Latitude D600! It was in fair condition: there were some scratches and dings on the top lid, worn out palmrests, and messy sticker removal traces on the bottom housing. Inspecting the externals, the laptop was missing its bottom-mount battery, but came with a bay-mount battery! GRanT, the 4E GRT (graduate residence tutor), graciously lent me his dell adapter (with a frayed charging end =P) so I could test the laptop. When I plugged it in, the charging LED came on. I tried to turn on the unit, but to no avail. Then I took the laptop to my desk and started unscrewing the bottom.

    Before removing the bottom plate, I thought to myself, `Wouldn't it be a lot easier to check if it were missing critical components, say RAM, first?' So I unscrewed the RAM lid, and hey, both DIMMs were missing!

    Good news: the wireless card is still there! [1]

    So I took the computer home, found a 40GB IDE disk and two 512MB SO-DIMMs. One of the memory modules was rated at 266MHz and the other unknown, which might be a problem. I put in the components, plugged in the laptop, and pressed the power button. No cookie. However, the battery charging indicator went from a constant green light to four short blinks of orange and one longer flash of green. I searched online for possible indicators, but no conclusive answer showed up. The Dell service manual was pretty lame as well. Since Grant made no guarantees that the power adapter would work, I found my voltmeter and tested the plug. The reading showed +19.0V, not bad for a +19.5V unit (or at least I hope so).

    At this point I don't know what to do; I also have my dad's old 14.1" `gaming laptop' (full with a Pentium 4!), but the CPU cooling fan does not start at bootup. This is a serious problem especially for something powered by a Pentium 4. The Dell is a nice unit too: it has a Pentium M processor, ATi 9000 series graphics card, and weighs approximately 4.5lbs, making the perfect netbook[2]. It is currently laying on the top of the family room couch in a half-disassembled state. Any suggestions?

    [1] Sorry Julia, my desk is still a mess =P
    [2] My current `netbook' is my 15.4" MacBook Pro 1,1.

    10 October 2010

    Life at MIT

    Preface: Okay, so it's been approximately two months living at MIT, but life is rather hectic. I do realize that the audience of this blog favors the storytelling-type articles over the technological articles, but you now have a dose of both.

    Orientation was for the first week or so. I took two Advanced Standing Exams to hopefully pass out of Multivariable Calculus and Physics II: E&M, which I did. Doesn't it feel nice not having to take physics for the rest of your life? :) Another notable event during orientation was the East side vs. West side water wars, in which East side completely obliterated West side. Oh, those preppy sissies.

    Towards the end of orientation was freshmen registration day. Having previously looked through all the classes I would have to take for a Course 6-3 (CS) and Course 15 (Management) double major, I had a decently good idea of my schedule.
    • 3.091 Introduction to Solid State Chemistry
    • 7.012 Introductory Biology
    • 14.02 Principles of Macroeconomics
    • 16.A47 The Engineer of 2020 (Freshmen Advising Seminar)
    • 21W.732 Science Writing and New Media

    I walked into my advisor's, Dan Hastings (oh yes, the Dean for Undergraduate Education), office and he and my junior advisor (a Computer Science junior from Illinois Math and Science Academy) shot down my schedule as being completely academically unstimulating for someone of my caliber. I talked with them for a while, told them I liked high performance computing, and eventually got thrown into 6.172 Performance Engineering of Software Systems. Both of them were afraid that I would get utterly obliterated (like Hiroshima after the atomic bomb), but they let me take it anyway. That class took the place of Chemistry, which my junior advisor said was pretty easy and not worth using pass no record. So here was my final schedule:
    • 6.172 Performance Engineering of Software Systems
    • 7.012 Introductory Biology
    • 14.02 Principles of Macroeconomics
    • 16.A47 The Engineer of 2020
    • 21W.732 Science Writing and New Media
    I then took the form to the Student Services Center to register for classes!

    Now that we are five weeks into the semester, here is a quick summary of my classes:
    • 6.172 is EPIC AWESOME. It's a competitively graded lab-based class, not unlike TopCoder. The material is not difficult to grasp, but working with projects with multiple source files (including a Makefile) is certainly different than trying to jam everything into a main function in USACO or one file in my personal projects. Also, learning how to comment code and write comprehensible documentation has been very useful. The one note about this class is that it requires an enormously huge time commitment: you could always be trying out new algorithms, implementations, or bit hacks to increase the efficiency of your code, but either end up making the code slower or introducing new bugs [1]. BUT THE CLASS IS JUST SO FUUUUUNN!
    • 7.012 is boring. Dr. Bajwa has drilled down the content surprisingly well.
    • 14.02 is interesting, but I don't see how one learns from a 50-minute lecture in which the professor teaches a whole chapter. I would rather spend 90 minutes at home to take notes from the book and later reinforcing by reading the lecture notes.
    • 16.A47 is somewhat interesting. A two hour seminar does get rather boring for me, so I'll end up cracking my knuckles or staring at Dr. Hastings' brass clock for the last half hour. I think the other students in the class think I'm an obnoxious computer-obsessed genius because I either know the answer and am not afraid to blurt it out or just give some nonsensical answer. I try to be humorous though :)
    • 21W.732 is pretty sweet. As its name suggests, we use digital media: our past two assignments were to create an audio clip and video clip that captures the essence of something (not necessarily the same). I was plenty happy to exercise my ninja iMovie and GarageBand skills.
    The first wave of midterms were the previous week, which is why I did not publish this post earlier. Okay, enough about classes.

    Dorm life has been pretty interesting. I live in East Campus, which is infested by [mostly] EECS and some MechE nerds. Most of the floors enjoy building and destroying things. Tetazoo, the floor below mine, is obsessed with fire. I've already found a few places from which to acquire free but workable hardware (mostly computers, for now). My collection of computers (besides my quadbox and MacBook Pro) includes four Dell Optiplex GX270s, a Power Mac G4 Quicksilver, and a Power Mac G4 MDD. (Hmm should I pick up a Power Mac G4 Sawtooth just to complete my collection?) The Dells will be used for an experimental cluster and the two Power Macs (which I carefully gutted) will be used for case mods: one for my webserver, which currently just sits open on a counter, and the quadbox, which resides in a 15-year-old case (complete with its `Intel Inside Pentium II' and `Windows 95 compatible' stickers!). The Quicksilver Power Mac is my nightstand, on which resides a 17" Dell flat panel I obtained. The MDD Power Mac is at home to be case modded, which is currently underway.

    Another notable event was CSW, or CSAIL Students Workshop. It was a day filled with computer science and good food at a resort for anyone with a CSAIL account. Who could resist? Everyone was surprised that I was an undergrad freshman (one person asked if I was a first year PhD candidate XD) and was taking 6.172. =D

    One more note: There is a surprisingly small number of people who are both hardware maniacs and have an aptitude in computer science/math. Also, I have yet to meet someone as interested in cars as I am. Maybe it's time to go to MITERS and FSAE (Formula SAE)!

    Anyway, instead of blabbering, I present some pictures of my room and other activities:

    Bananas on a hook!

     Writing Rickroll lyrics on hall whiteboard.

    Oh no! MIT Mobile app says I've fallen out of MIT!

     USB pet rock I got from the Google Tech Talk!

    The GM Alternative Energy group brought some of their cars outside of the Z Athletic Center for `show and tell.' Guess who got distracted from going to her makeup swim test on time to talk to an engineer for approximately 15 minutes? =D The above picture is a shot of the Chevy Volt interior.

     Chevy Volt steering wheel and instrument panel.

     GM Fuel-Cell Equinox right-side sticker.

     Front of Chevy Volt.

     Trunk of Fuel Cell Equinox. Notice the huge buldge needed to hold the hydrogen tank.

     Professor Steve Johnson (Applied Math) came to 4th East to ride our RC toilet chair!

     Bayley foraging for something good.

     Free, Free, FREE!
    Computers, Computers, COMPUTERS!

     YAYYYYYYYYYYYYYYYYYYYY!

     Carting them back to EC!

     Back to our secret hideout to open this massive Sun box. (That's me unscrewing)

     What do we have here? 2x750MHz Sun Sparcs with 8x256MB RAM! Nice find, Bayley.

     Resort in which CSAIL Student Workshop was held.

     Scott Aaronson and his P vs. NP talk. This slide shows his [infamous] quote: ``If Vinay Deolalikar is awarded the $1,000,000 Clay Millennium Prize for his proof of P≠NP, then I, Scott Aaronson, will personally supplement his prize by the amount of $200,000.''

    Heading to the resort's beach for lunch! That guy in the pic is a first year PhD candidate in CS. He did his undergrad at Harvard in CS and was Mark Zuckerberg's CS II teaching assistant!

     It's a BEACH!

     ITA's tech talk. Apparently they do some pretty neat stuff (i.e. NP-complete problems).

     Awesome error message in ITA's iPhone app.

     Lobster for dinner!

     Martin Rinard's closing presentation.

     Payoff vs. Intelligence graph, part I.

     Payoff vs. Intelligence graph, part II.

     Error message on Stata flat panel TV. This is the first MIT-owned computer running Windows that I've seen.

     I walked past Sloan as I headed to…

     Microsoft! 1 Memorial Drive, Cambridge, MA 02139.

     Checkers on Microsoft Surface. The touch screen requires a bit of effort to use.

     Cupcakes! Quiznos was catered for dinner.

     Trying out Xbox Kinect (Project Natal). It works really well and is much more intense than Wii games.

     Steve Sinofsky's Tech Talk. I was surprised that he touched on points made in a blog post I read earlier :)

     Here is my desk. Maybe I should clean it up.

     Here is my keyboard. I have two more split keyboards (that I found in the dumpster, of course) sitting in my drawer if anyone wants to use them :)

     Here is my hamper and stuff I got at MIT. I can be lazy and work at my bed now! [2]

     Here is my dresser. It has more electronics than clothes. I discovered that clothes belong on a clothes rack because electronics don't. 

     Here is stuff on top of my dresser. I think I need more real estate.

     Here I am looking at four different source files of evilwm. Vim split is pretty awesome.

     Here is where I sleep. I used to have an ethernet cord running on top of my bed. ULTRA NERDISM

     Here is the Power Mac G4 Quicksilver I hauled home by myself. The trick to carrying it is to *not* hold it by the handles, but to carry it by your side and support it from the bottom.

    That's it for now!

    [1] The commitment part is irrelevant for me because I'm limited to 54 units of class!
    [2] Theoretically, I could use my laptop, but it's not a foot away and is not guaranteed to have power. I'm lazy :)