27 June 2013

Why hello there, Mac Pro

I bought a [single processor] Mac Pro on a whim (go figure). My intention was to see whether the Mac Pro 1,1/2,1 heatsink works in the Mac Pro 3,1 models. However, to my delight, the computer came with a magical second processor!


Turns out the computer was from a university. Maybe I should have waited for MIT to throw some out!

Feel free to scan the barcode.

Temporary setup. It probably should not live in front of my dresser.

That's a G5 carcass behind the Mac Pro.

Also, Apple certified FB-DIMMs are legit.

I <3 911s

22 June 2013

A Summer of Cars, Part I

As promised, I have test driven one (1) car a week every week I have been free. Here's a brief writeup of each:

Porsche Boxster (981): Wicked awesome. Great exhaust note, especially with the top down. Accelerates slow enough such that I could enjoy the exhaust note when merging onto highways, or accelerating from red lights. I was surprised that noise isolation was decent with the top up, in contrast to what I've read online. The interior fit and finish is good without full leather, but would be incredibly sumptuous with a special order two-tone natural leather with mahogany wood. I think this car could be a real winner (hey, it won a 10Best award from Car and Driver).


Porsche 911 Carrera (991): Unfortunately, I liked this test drive the least. I found the sport exhaust to be overwhelming; with it enabled while cruising, the exhaust is a loud, unpleasant droning noise. Sport plus mode was exceedingly scary, holding the engine at 5000+ RPM in second gear on the highway. I was also disappointed to find out that I could not fit in the claustrophobic rear seat with an extremely tall driver. So much for the #911fund.


BMW Z4 sDrive30i: Drove a pre-owned one since the dealer doesn't stock Z4s. More of a GT (grand tourer) than the Boxster. Engine roar was good, but quiet for my tastes. Lower quality interior materials than the Boxster, but not sure how a full leather interior would look. Steering was slow and light, unlike the Boxster's, which did not inspire confidence. The car also has poor rearward visibility with the top up. Also, to my horror during the test drive, the temporary license plate fell off when opening the hardtop.



Audi TT 2.0T: Drove a pre-owned one since the dealer doesn't stock TT's. The salesman said that I could "take my time" with the test drive, so I detoured from the normal route and drove on some smaller backroads. The steering was light compared to the Boxsters's, but had a tighter ratio than the Z4's. The accelerator was also very odd; it did not require any effort to push. The engine had unpredictable turbo lag (floor the car and the engine doesn't respond for a second), and did not sound as good compared to those of the Z4 and the Boxster (because of the turbo in the TT). The seats and steering wheel seemed unpadded and were very hard. I was delighted to learn that I can special order one with a manual gearbox to lease.



For kicks and laughs I test drove a Lexus CT200h. In short, it's Lexus's Prius, with the same lethargic powertrain, but considerably better fit and finish. Coming from the TT to a CT in Eco mode, the car was incredibly unresponsive -- pushing the accelerator halfway does practically nothing. Sport mode was marginally better. The car reacted to the throttle, but still moved relatively slowly. The engine roar was an irritating drone that I unconsciously blocked out. Steering was light, but somewhat twitchy. The brake pedal had a very short throw, which took a while to get used to. The synthetic leather feels really odd: it has a much finer grain texture than leather.

Some comments about the dealership experiences: I'm amused that I pass as a potential customer. At ze German dealers, the salesmen were not naggy at all, I think partly because I knew quite a bit about the respective cars. There was also a greater amount of trust: none of the salesmen came on the test drives. This was not the case at the Lexus dealer: the salesmen took every chance to ask if I needed help, and tagged along on the test drive. The Lexus salesman also seemed disappointed when I was "just looking," unlike the respective German marque salesmen.

Next up: Mercedes-Benz SLK and Lotus Elise!

17 June 2013

I have a computer naming scheme!

I finally thought of a viable scheme that even has implied hierarchy! The theme is:

First names of supercar executives!

The undisputed king: Ettore Bugatti. Ettore will be the name of my fastest, most absurd computer, currently my quad-processor AMD system. I highly doubt I'll get an eight-processor system soon.

Next, it takes two to tango: Christian von Koenigsegg and Horacio Pagani. Horacio is the name of my desktop. If I wind up with another comparable system, then it will be named Christian.

Then the not-absurdly-expensive exotics: Enzo Ferrari, Ferruccio Lamborghini, Roland Gumpert, Bruce McLaren (actually not the founder of McLaren Automotive, the road car subsidiary). I'm bummed that Aston Martin, Bentley, Rolls-Royce aren't named after a single person. These will be used for weak dual processor or fast single processor systems.

Finally, the unforgettable: Ferdinand Porsche (Ferry, his son, is also viable). Since Porsches are the lowest rung cars in the supercar land, Ferdinand and Ferry will be used for my two laptops.

16 June 2013

Happy Father's Day

Me: Happy Father's Day!

Dad: It is? Thank you. Who told you?

Bing

Who's ``bing?''

The search engine.

12 June 2013

Carte Blanche

I am pleased that, for the most part, abstracting away problems with money works. Mostly logistical problems.

01 June 2013

Third time's a charm

Welp, I'm here on the east coast again, trapped in the heat and humidity. It's not all bad though; for the most part of the week, I get fed to watch money being printed. Unfortunately, that's only a good 50 hours a week, at best. What do I do with the rest?

Definitely planning on finishing my scooter and go kart -- I think I learned a fair bit about chassis prototyping to get my scooter chassis right on the first try. I guess I'll have to bear walking in 32ºC weather.

Powerlifting? Seeing as I'm walled around 100/120/135 (bench/squat/deadlift), and without a bench spotter, I doubt I can catch up to vchiu, the star female powerlifter at MIT (she's currently at 110/209/286). All figures in lb.

Learn how to drive a manual? There are no rental agencies that stock manuals! How unfortunate. I'll buy a beater from craigslist after I graduate this December and practice on that for a good half year.

As my consolation prize for not having a stick shift for the summer, I figured a good use of weekends is to sample as many cars as I can before the semester starts. Since there are 11 weekends during which I am employed, 9 of which I'll be free, I figured that I can sample a vehicle a weekend. In particular, here's the plan:
  • Porsche Boxster (981) -- 1 Jun
  • Porsche 911 Carrera (991) -- 8 Jun
  • BMW M3 -- 15 Jun
  • Audi S4 -- 22 Jun
  • Mercedes-Benz SLK 350 -- 13 Jul
  • Lotus Elise -- 20 Jul
  • BMW Z4 -- 27 Jul
  • Chevrolet Corvette -- 3 Aug
  • ??? -- 10 Aug (might ditch this one)
I'm seriously considering a Boxster or 911, not so much the rest. I'm going for as much sportiness without sacrificing too much luxury -- I want my wood trim :P

This summer just got so much better.

16 May 2013

Powerlifting!

It's like overclocking but better: every chip [human] has a different limit! Also makes for a great stress reliever.

I'm also seriously considering joining MIT's powerlifting team, because according to stats on MIT's powerlifting team (I dream of steel), I'm pretty close to benching competitively (but seriously need to work on squatting and deadlifting), I've never joined a legitimate sports team (math team doesn't count), and…#yolo.

In somewhat related news, I started using Fitocracy to track my progress! It's a cute webapp that I've been trying to replicate for the past ~half year or so, but never got around to implementing it.

08 May 2013

Climbing up the ladder

Near the end of my freshman summer, when I was still a cute and impressionable froshling, a wise man told me a story:

You get into something, say cars. You make friends who are also into cars. You start out with something small, like a [BMW] 3-series, then go to a [Porsche] 911, then a [Lamborghini] Gallardo, and so on. Then the friends get into something else, say watches. Again, you start with something small, say a Rolex, then move up to a Seiko, and so on, and while doing so, you meet a bunch of people who are into watches who happen to be into planes. Then from watches you move to planes, beach houses, and yachts, and so on. But at the end of the day, if things were to be taken away from me, I'd keep films, books, and music. Especially the books and music. --GJF

02 May 2013

The Birth of Homemade Electrostatic Headphones

Starring Tyler Christensen and MIT's Electronics Research Society!




















These photographs were taken for my HASS class, 21W.749 Documentary Photography and Photojournalism.

13 April 2013

Google Code Jam!

Trying my hand at this competitive programming thing again. Google Code Jam is this weekend again, so what is there for a rookie to lose? Even better, no rounds overlap with my birthday!

My high-level approach was the following: I'll look one problem at a time, and I'll do it then and there if I can come up with a solution in 10s. If not, I'll revisit it. I like this approach better than looking at all of the problems first since I can have just one thing on my mind at any time.

The first problem is essentially pattern matching. You're given a 4x4 board and you want to see if any rows, columns, and major/minor diagonal matches some string. I was feeling lazy, so I hardcoded the patterns and did a brute force search. Not too bad.

I couldn't think of a brain-dead solution for the second problem, so I skipped it for now.

The third problem required finding palindromes that are squares of palindromes. Given that this is in a programming contest, of course there will be some cleverness involved. I then looked at the input sizes. There were not just two, but THREE (a first!) inputs, the first one with a bound of 1000 (trivial), the next with a bound of 10^14 (decent, I can just do it with 64-bit integers, or so I thought), and the third had a bound of 10^100 (excuse me?). I first pooped some code for the small case, which happily ran in time. I then realized that I can adapt this for the large case, but was unconfident about constant factors, which may or may not destroy me.

I decided to port the code to C++ to play it safe, or so I thought. "Clearly C++ is much faster than Python, so that should save me, right?" said naïve me. I coded it up, generated some random input data, tested the code using that, and found that it ran in time. "Sweet." I then downloaded the large-1 test case, computed the results, and uploaded my answers.

I wasn't too sure what to do for the largest test case. I thought computing the palindromic palindrome-squares indefinitely was a good idea to figure out a general pattern, since I noticed only ~1% of numbers less than 1000 satisfied the condition and some very small fraction of numbers less than 10^14 satisfied the condition. From the ongoing run, I noticed that there were some more numbers less than 10^14 that my C++ program failed to find. "This is weird," I thought. After a while, I noticed that one of my helper functions took an int instead of an uint64_t. I changed it, reran my code, and verified that I found my error: one of my function arguments was an int, instead of an unsigned long long. Good game.
I couldn't think of any way to solve the 10^100 case, so I moved onto the next problem.

The fourth problem at first looked like a search problem. Upon glancing at the input sizes, I figured there had to be some dynamic programming involved. I was feeling pretty tired at this point, so I shut my laptop and fell asleep.

Since the contest happened during a subset of MIT's Campus Preview Weekend (which I happily attended three years ago; more on this year's CPW in another post), I didn't work on Code Jam until about T-30min. I felt somewhat annoyed about not having solved problem 2, since all of my other friends solved it (bad logic, I know). Apparently I understood the concept of the solution, from talking afterwards to a person who solved it, but I struggled to put 1 and 1 together to make 2. Thus, I pooped something that would solve the [overconstrained] small test at T-8min, which happily passed.

The qualification round ended soon enough. As expected, I got all but my problem 3 large right. Not bad, for being a few years out of practice.