Blog Directory

 
Listee Account | Admin Account
 
Home -> Arts Blogs -> Ranking -> Profile
 
Blogbert™
  Digg It!

Rating: 3.9/5 (26 votes cast)

Blog Title: Blogbert™

your guide to how much caltech sucks

Blog Details

Overall rank: 4475715
Number of inbound blogs: 0
Number of incoming links: 0
ATOM: ATOM feed
Last update: 2008-06-25 01:43:01 GMT

Analytics

Incoming clicks since last reset: 0
Outgoing clicks since last reset: 142

Latest Posts

Wow, There Are Stars In Los Angeles, Too, And, Mt. Wilson On The Eros

Pretty much a perfect ride. No eggs, no flats, full moon, almost everything went as planned. Kept an 8 mph pace on the uphills, 3 hours of riding time from Caltech to Mt. Wilson. Kept it easy. Two speeds almost the whole way, spinning it in 42 - 26, or shifting down a click and getting out of the saddle for a break or when it got a bit steep. Frighteningly fast (and really cold) on the dark winding downhills. Hit 40 in a 25. Lost my speedometer (how does that unclip itself?) and front light, but after backtracking found both quickly. My bag fell off my bike once ... as soon as I got back to Caltech. Right now I'm only sore in the shoulders. So yeah, all in all a great ride.

This route kicks ass. Remarkably consistent slope the entire way. Caltech Velo has a good route description. About 4500 feet of climbing and 57 miles out and back from Tech, amazing views of LA.
Is that smog???






'W' is for Wilson. Or Win.





All kinds of wicked equipment out there.




I love the The Starting Line!




And for your contemplation:

These Pictures Tell A Story

I purchased a used 2003 Bianchi Eros today. (I think) It's a very cool bike, and it's unfortunate it won't be permanent. Naturally, I tested out my sweet new ride with a trip over to In 'N' Out.

I haven't ridden a "nice" road bike for more than a few minutes... Even though the fork is carbon and it's much too small, I love it. The ride is amazing. Back in good old SD, Chris once told me "But Robert... riding a nice road bike... it's different." I guess I didn't really take it to heart, but I should have. I always kind of imagined that whatever you can do on a twenty or thirty year old steel bike, you can do on a $4,000 bike, and that the difference between the Tour de France riders and everybody else was in training and preparation, not in shaving grams and the like. But the performance gains were huge, and this isn't some space age super light carbon job, it's a steel frame and carbon fork. And while on the topic of shaving grams and the like... WTF?

Three key words have emerged as the theme for the 
latest DURA-ACE system: Speed, Smooth and Strength.

Does Shimano really say things like that?

Anyways, after riding this just a few miles I've gained a lot of respect for expensive, new, properly maintained, whatever, bikes. I'm not used to having a 30/42/52 triple and a 13-26 rear cassette at my disposal. Oooh, and light weight, true wheels. And brakes that function properly. Crazy delicious. Shifters that work. After just a couple miles of flat, rough, pothole ridden yet remarkably smooth (on this bike) Colorado Blvd on the cruise over to In 'N' Out, I decided to head north on Lake to find the top of the nearest hill. Milkshake in cupholder, prepared for the worst.

It's the first time I've used an SLR while riding a bike. I got that "Oh shit, I can't do that" feeling (you know, like when you try to coast on a fixed gear going over a bump?) when I tried to brake with both hands and at the same time keep one on the SLR fastened around my neck.

Anyways, I started out hauling in the middle of my triple and somewhere between 6 and 8, and before N Lake even got steep I was using the largest my rear cassette had to offer. And then... around N Topeka St, I get hit with something, and I feel a sort of cool mist. And laughter coming from kids in a Nissan sedan as they speed away.

It's the second time I've been egged on Lake late at night.

It takes a few seconds (probably about 3) for me to realize what the hell was happening. I crank down on my plastic flat pedals hard and try to shift, and just then, I miss my single speed. The chain slips and the pedals turn an entire revolution without catching. I pause, thinking "Shit, how am I going to catch these guys?", crank down, and the chain catches. I'm hauling ass, probably 20 mph. They pull off the main road and I catch them at Atchison and N Catalina, where I come up behind the car and dismount. They're surprised to see me. Circular, widely spaced reverse lights linger for too long, scare the fuck out of me, it's a Nissan, recent, Maxima or Altima. "Is he seriously going to try to run over me in reverse?", and I creep closer, concentrate hard on the license plate, one passenger is out of the car, they start moving away before he/she is back in. "Quick, get back in the car!" More eggs, pop, pop. Concentrating hard on the license plate. A girl squeals. "It's Like the stupid IQ test. Recite these digits. They have a girl with them? Can you memorize... seven random characters and letters of text? How about with the adrenaline on?" The driver graciously screeches to a halt to allow the partially exterior passenger to enter fully. They swerve off, left, right, left, right left, right, "why?", and they're gone.

They didn't get the bike at all, which is great! Well, I scribbled the cross street and license plate number on an old Metro card, cruised back to Lake looking like an omelette, flagged down a sheriff who told me there wasn't anything to be done, and started the descent back to tech.

Did you fail me, Lake?

License plate number available if you want it. Did you know eggs leave welts? Ride safely. True.

3333.33 mg Taurine Per Dollar, And, Milk, The Bittorrent Client: Part IV

You can't read the label, because my hands are shaking like I've just consumed 2000 mg of Taurine. An entire pot of coffee doesn't get me like these damn things do.

In other news,

IT'S FUCKING DONE!

That's right folks, Milk works. Download it here. A single purpose free-leeching, sequentially downloading, super lightweight torrent client. You can get the source now, or I'll probably try to make binaries (because I know SOOO many of you care). OMG DON'T U GUISE LOVE JAVA TOO!?

what it does do

  • downloads at over 1MBps (that's 8Mbps, folks, just to rub it in your face) while using < 10% of processor time on my Macbook Pro 2.2 GHz
  • It now has a (more) properly abstracted structure. file and piece management is no longer tied to the peer. There are convenience classes for Blocks, BlockMaps, Pieces, and such things to make the code easier to understand and more portable.
  • uses 16 MB RAM and 11 threads (on my MacBook Pro) of JVM overhead
  • when given the name of a torrent file on the local system, talks to the tracker, gets a peers list, connects to as many peers as possible (won't connect to peers that force encryption .... yet)
  • for better or worse, it doesn't contain any GPL code
  • allows for as many parallel downloads as you want, probably limited by machine memory
  • downloads multifile or singlefile torrents (joy)
  • enables you to download legal content sequentially
  • enables you to download illegal content sequentially (don't do this, it's WRONG)
  • stores the tracker response to a file, and won't pester the tracker until 30 minutes have passed for more peers (unless you want to)

What it doesn't do (and possibly should):

  • pester the client for lots of peers automatgically
  • announce to the tracker after it's done download that, well, it's done downloading
  • it doesn't have a GUI
  • use more than 20 MB RAM, typically (memory usage should be close to (piece size * number of peers) or about 25 MB plus JVM overhead worst case
  • keep any state beyond the last tracker update between runs
And for those who say that sequential downloading is bad for the swarm, yes, it IS bad for the swarm. : D Do not use this with private trackers, they will kick you the fuck off.

In traditional blog style, I'm going to post some links. I wish I was in Chicago. Wait, I've never even played bike polo.

I just recently found the world of bicycling blogs. Each time I add a new one to google reader, another 5 come up that I have to read. It's painful, really. There's Bike Hugga. I don't really know who they are or what they do (I just look at the pretty pictures), but they have an incredible amount of money, judging by the bikes they ride, and the fact that some of their writers seem to star in cycling photo shoots. Or maybe the money comes from the three square miles of ads on their site. Anyways, they post really cool stuff regarding pretty much everything important in cycling. Even if it does involve carbon fiber.

Then there's cyclingwmd. This guy is famous for his sentence to exclamation mark ratio. He posts "crazy bike shit that will blow your mind and leave you begging for more". It's fantastic.

This guy is my hero. He posts the best of the best of craigslist NYC, takes pictures of trucks in bike lanes, hating (snobbing) on triathletes, and just plain wacky stuff.

Anyways, just robert karl checking in. Add those cycling blogs to your google reader and I assume you will get the other 50 really neat cycling blogs that it suggested I read. Adiós...

In N Out 157 and 102

During my very busy summer of doing very little, I've still managed to go get a burger once and a while. And guess what I found in the street.... on Wilshire Blvd in LA? You guessed right! UNIX In A Nutshell, A Desktop Quick Reference for SVR4 and Solaris 7!

Here, let me zoom in on that.

Naturally, I liberated it.

A Lot Of Traffic From Florida Lately

It all started in November of 2006. Nic and I were in LA and met Joe Fox. He told us about Telomerase and the hydraulic cheetah bike. Naturally, we wanted to tell the world about this, so we blogged it. Joe's pissed. Well, he was pissed 6 months ago, in late November 2007.



[11:48] meeboguest327583: Hey Robert, this is Joe Fox!
[11:55] meeboguest327583: My new Corporation is now making Telomerase
based products, the Superbike will be made very soon, and I'm very
well settled politically and financially, I would appreciate it, if
you REMOVE your EXPOSURE of my trade secrets and such a defamation of
my character online, IMMEDIATELY, or I would have to take you to court
to do so IMMEDIATELY. As these items you wrote about are COPYRIGHTED
CONFIDENTIAL and a TRADE SECRET. Please cease and desist in your
exposure and defamation of my character. Joe Fox.
[11:57] meeboguest327583: My Law Firm is Glantz and Glantz, I will
send them a letter tomorrow to communicate with you instead of me.

Anyways, I don't know what the point of writing about this is. I hope his attorneys actually get around to calling! That would be a good time.Today,

What's up, Joe? Send me an email, ok? robert at caltech dot eedduu.

Spymaxx Spyware/Trojan/Virus/Whatever Encounter

I just had a run-in with the Spymaxx Windows spyware program. My friend downloaded some (possibly illegal) software, installed the package, and got this nasty bug instead. It changes your background, disables the task manager, and pops up fake Windows alerts with text like like "Your machine is running slowly due to a virus". All of its messages link you to a webpage where you can buy software to fix the problem. NYARRRR!

Anyways, I tangled with it for a couple of hours at least, here's what to do if you've got this crappy thing installed.

spywareremove.com, spyware-techie, and 2-viruses.com have information about the virus. Spyware techie appears to be a legitimate blog about removing this kind of crap from your computer. The other two sites allow you to download their own spyware, programs that scan your computer for viruses but make you pay to actually take any action. Anyways, I read over those sites, as they have some good information.

Steps to take

Boot into safe mode. This usually means repeatedly pressing F8 until Windows asks you what kind of boot you'd like to perform. My friend had a firewall installed, and the program kept trying to connect to the internet, so chose Safe Mode (without networking). I have no idea what it tried to do over the network.

Get the DLLS The program installs a bunch of somewhat important looking DLLs and a few just plain odd files into C:WINDOWS, C:WINDOWSsystem and C:WINDOWSsystem32. You can tell because the filenames contain misspellings like ieeexplorer.dll, explorr.dll, funniest.dll, funny.dll, and such silly things. The easiest way to get rid of everything is to go into these directories and sort the list by date created. I didn't delete them in case anything was actually important, I just moved them to the desktop, zipped them, and deleted the originals.

Remove assorted spyware files Delete files in C:Program Files. On the machine I was working on, it also installed a program called WebHancer. So delete the SpyMaxx and WebHancer folders.

Kill the executable To find out the executable name, I opened up my friendly local DOS prompt and typed "tasklist". The executable was named jtgsochvg.exe or something like this. So run 'taskkill /F /ID jtgsochvg.exe' or whatever it may be. Die, stupid spyware app. Oh yeah, and don't kill svchost.exe. Apparently its important, Windows runs several of them and flips out when they quit unexpectedly. Who knew!

Add/Remove Programs Yep. You'll see SpyMaxx in this window. Get rid of it!

Delete registry entries Remember that "Task manager has been disabled by administrator" message? This site has good info on how to get the task manager back. Also cruise through the registry tree and get rid of anything that has to do with SpyMaxx or WebHancer.

Boy do I hate Windows.The machine appears to be up and running just fine now.

Jasmine

Not the Disney princess!

Bittorrent Client: Part III

So our project is "done".

But we're pretty far from functional.

Functionality we have: our client successfully parses torrent files, talks to trackers and gets the peer list, and initiates connections with peers, sending the "handshake" bytes. Beyond this, we don't do much communication with the peer.

We have code to perform this communication, and weird bugs to track down. The code is in place to send request messages for blocks, download and verify them, and write them to files without consuming massive amounts of memory, but we need to debug all of this code, and to do that we need to communicate with peers.

This summer we'll continue working on this project. We'll start with a restructure. Peer I/O is spread through several methods and it all needs to be done in the same place.

We don't yet have peer seeding algorithms in place, or a way to differentiate and prefer faster peers over slower ones. This is next to do on the list. Using the subversion Eclipse plugin we used, I put together some data about the project.

entire project:1831 lines of code
decoding torrent files:228 lines
communication with tracker: (reading peer lists, etc)144 lines
communication with peer: (initial handshake, sending/receiving messages)931+ lines
5-26 4 hours 5 revisions
5-27 3 hours 8 revisions
5-28 2 hours 4 revisions
5-29 4 hours 3 revisions
6-01 48 hours 86 revisions
6-02 31 hours 84 revisions
6-03 53 hours 78 revisions

Bittorrent Client: Part II: The Setup: Version Control

Alright... we now have some code written for this stupid thing.

We can now read BEncoded data from the torrent file (torrent info hash, files, piece size, etc), talk to the tracker, and store the peer list / other important information in the class.

We would be farther along due to all of the time we wasted away yesterday dealing with version control software.

Why is it so difficult to get Subversion or CVS up and running and usable? After finding a developer site that kept track of some free SVN servers, we picked one that was labeled as the best free service for open source code. This is the latest status message on their page, in big scary red text:

Due to errors in our backup scripts, we have gone two weeks without backups of the repositories. Unfortunately, we made an error when cleaning our filesystems. As a result, some repositories have been deleted. Some of them have been recovered from our last backup, which we regret is two weeks old. If you can't access your repository, mostly likely it is lost. We sincerely apologize for any loss of data and inconvenience.

Needless to say, we're keeping our own backups.

But that was half (or one third) the battle. We now needed client SVN software to access the server. I spent about two hours on this, which was two hours more than I wanted to spend... the command line interface was clumsy and poorly documented, or else I'm just bad at man pages and the internet. I tried a couple Mac OS X apps, either they didn't work with Leopard or required you to use the command line interface as well. Finally, we found "subclipse", an Eclipse plugin that puts all of the SVN commands innocently into the eclipse GUI. This lets us commit, update changes, and handle conflicts with a reasonably shallow learning curve. But when you make software where four Caltech undergrad CS majors can't figure out how to handle conflicts for a good 20 minutes, that either says something about your interface or this institution. Anyways, aside from the times where subclipse completely stops working when you click "commit file", you lose your changes, and then you have to recheck out the entire source package, it's great and it lets the four of us all edit the same files with some degree of safety. But it's basically like playing Russian roulette with your last few minutes of work sometimes.

So, I commit my changes compulsively and often.

While I'm bitching (all I seem to do is bitch), why doesn't Java have a function to take a byte and return the two hex characters that byte corresponds to? After at least 15 minutes of searching for strings like "java byte to hex class" and "url encoding binary data hex byte" and finding java forums on sun's site that varied from absolutely useless to of marginally useful, I gave up. Does this class exist? There is a method that takes a byte and creates a signed integer, but what use is that here?

Again, am I just bad at the internet and documentation? Anyways, my dear developer blog reader, if you need to use binary data in a URL(like sending the info hash in a torrent tracker request), here is a function that takes a byte[] and creates a URL safe string. Hopefully somehow who doesn't care how this works and just needs the right format will find it will be useful.


/**
* Java function that takes a byte[] of binary data and returns a URL safe string of hex chars
*/
private String urlEncodeBinaryData(byte[] o){
String[] hexDigits = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
// stuff has to look like %20%a4%20%20
String x = new String();
for (int i=0; i < o.length; i++){
// for each byte, strip off the top 4 bits, then the bottom 4 bits.
// convert each to an integer, and index into the array.
int firstIndex = (int)((o[i] & 0xF0) // grab the higher bits of the byte
>>> 4); // shift them so they're the lower bits
int secondIndex = (int)((o[i] & 0x0F)); // grab the lower bits of the byte
x = x + "%" + hexDigits[firstIndex] + hexDigits[secondIndex];
}
return x;
}

TODO: talk to peers, and start downloading pieces. Away to wrestle with java.nio.channels, threads, and file I/O!

Designing And Implementing A Bittorrent Client

For CS3, my class titled "Introduction to Software Engineering", we are choosing a final project to implement in Java.

To me, the software development process is still pretty mysterious. How does an application with tens of thousands of lines of source code get written? The purpose of this series of entries will be twofold: first, I hope it wil help keep my thoughts organized and help streamline the process of writing the app, and second, I hope the next undergrad or high schooler or middle schooler who comes along and wants to read about bittorrent application design will have something well documented to read about. This first post is just to give an overview of our application and what we think will happen.

Anyways, my group, which consists of two freshmen, myself, and a senior, chose to implement a BitTorrent client. This is pretty funny, after the Institute sent us this email: (thanks for protecting us, Caltech. I'm going to assume that since this was sent to every undergrad, it's pretty much public.)
Dear student,

Please pay special attention to the following notice from the Caltech Office of the General Council about downloading and public sharing of copyrighted material, especially the second paragraph.

Jo hn Ha ll

Dea n of Stud ents

From the Office of the General Council:

Students should know that content owners (of copyrighted materials such as music recordings, movies, TV shows, electronic books, games, software and similar files) object to the illegal downloading and public sharing of their material. Recently, copyright holders have become much more active in asserting their rights against those who illegally download and share their materials using peer to peer (P2P) file sharing software.

Recently, we received Preservation Notices asking us to preserve information about the downloading and public sharing of music files by three students at Caltech. These Notices are an alert that a subpoena may be issued to Caltech, requiring us to identify the students who were using the specified IP addresses to illegally share the material. If these subpoenas are served, Caltech will be compelled by law to identify the names and addresses of the students and a lawsuit against the students may follow. These lawsuits can cost the person responsible for the downloading and sharing tens of thousands of dollars in damages and attorney fees. An alternative often used by the content owners is to email a university like Caltech what is called an “early settlement letter” and ask that we forward this letter to the person responsible. We understand from other universities that these letters have requested an amount of at least several thousand dollars (which would not include any attorney fees a student incurs) to settle the dispute and avoid a lawsuit.

While some might question whether the copyright law should restrict the sharing of music and other content, the fact is that P2P sharing of copyrighted content is illegal. As you can see from the above, this can be a very expensive way to listen to music, or watch a movie or a TV show. We urge you to not download copyrighted material unless you are certain you may do so legally, and to remove any P2P file sharing software from your computer.

Did you see that last line?

"We urge you to not download copyrighted material unless you are certain you may 
do so legally, and to remove any P2P file sharing software from your computer."

Alright! We're designing banned software for our final project!

Well anyways, as we were researching our project and how much work exactly we would have to do, we tried to find a well documented minimalist bittorrent client. As of yet, we haven't found one. Azureus and Transmission are open source, but the source code is pretty intimidating.... I opened up five alphabetically consecutive files in the Azureus source package... none of the five had any comments. We haven't been able to find much good information about how these are designed.

As we thought more about the design of the client, we started to break it down into classes.

If you don't know what BitTorrent is, it's a protocol for distributing files that does not require a central server to operate. One user creates a .torrent file from a source file on his computer, say a folder of MP3s or a CD image. The torrent file contains information about the directory structure of the files in the torrent, information about the HTTP server that keeps track of connected peers, and a code for checking each piece of a file received. The files are distributed in small blocks, around 32KB each, and checked to be valid in pieces of 32KB-4MB each. If you're still curious, pictures help. Luckily, bittorrent.org has some of those! That's also where the official specification of the protocol lives.

So, We'll probably have a class for dealing with the file I/O operations like reading .torrent files, writing .torrent files, hashing pieces of the file, and all that. And we'll have a network I/O class for talking to trackers, peers, requesting pieces, sending and receiving status messages, and all that good stuff. And we'll probably have classes for dealing with and keeping track of the numerous peers and their current status.

At first glance, this kind of seems like a lot of work. After thinking about it some more, it still does seem pretty complicated. Before writing a single line of code, here's what I think we need to do. Assuming we'll use a command line interface,


a.) parse command line arguments
b.) store names of torrents to add, from command line.
c.) load previously seeding/leeching torrents from file
d.) talk to trackers about previously active torrents
e.) look for peers for previously active torrents
f.) start transferring data
g.) load and parse torrent files specified on command line
h.) perform d.), e.), and f.) for the new torrents
i.) rinse, dry, repeat.

We'll be using preexisting libraries for the .torrent file encoding.

One of my first questions was, (after "how can we make money from this") was, "how do you deal with all of those connections?" Each torrent (and we might have a handful or a few hundred open) can make hundreds of connections to other peers itself. Each connection can be a taxing process, what with the peer sending its status, us responding with a piece request, receiving data, checking that the data is valid, writing it to a file, and repeating. Do you spawn a new process or thread for each connection? That seems absurd. How do you manage all the sockets? Well, it turns out that Java has the java.nio.channels class, which does multiplexed I/O for sockets. I'm not sure how this works, and I have no idea how it works in other languages, but I assume that this will do what we need. I also assume that most of my future posts about this will deal with java.nio.channels.

One of the frosh in our group has started work on a GUI in Netbeans, but as of yet, there is no code written for this project at all. I will post updates soon, this is due in a few weeks. (; Trust me, I'm just as eager to find out what happens as you are!

Stay safe, you pirates of the interweb. And let me just remind you that there are many "legitimate" uses for BitTorrent.
-robert

Another Caltech Post

This is written for applicants to Caltech considering the school. I recently saw a blog post from a freshman who said she couldn't find much in terms of blogs of real students. Hopefully if anyone is really interested in finding out what's it like for somebody who had a tough time here during core, they can find this.

Pretty soon there'll be the class of 2011 and the class of 2012 under me... it doesn't feel right. I kind of want to recap why Caltech is an awful place for just a few students to pick. Since the Caltech class of 2012 had a May 1 postmark reply deadline of notifying schools, it's too late. But I'll pretend it's not too late.

If you look at the Caltech admissions page, they still have the class of 2011 statistics posted. 605 offers of admission, 235 matriculated. SAT middle 50%: 2190 - 2320 (for you old folks, that's about 1460 - 1550), ACT mid-50%: 33-35. 99% of those at high schools who ranked students were in the top 10%. 74% were on science/math teams, over half did community service, and 38% had done scientific research in high school.

That's pretty intimidating. How could students with those credentials have trouble in college? This year I've been watching as these guys go through the classes that ran me over last year... and to my surprise, the ones I know, live with, and hang out with, can take it, and are maybe even excelling. They're very intelligent, and they still have to work hard. Most nights there are more than a few of them around in LD or Snatch (two hallways in Ricketts) working on sets. And of course they complain. But it's not the same as it was for me.

My friend who's taking Bi 1 this term, the biology component of the Caltech core curriculum, was just whining about it. "I can't wait to be done with it. It's so boring," he says. I've learned to keep my mouth shut when people complain, it's really boring to hear me go off about how terrible a place Caltech is every time somebody makes some small comment about a class.

But my experience here has been very different from that of the frosh. On the first week of third term last year, which was probably representative of the rest of the term even though classes hadn't really gotten rolling yet, I logged my work hours each day. The weekend was relatively clear, between 1 and 4 hours of work each day, but during the week I was doing homework or in class for 56 hours between Monday, March 26 and Friday March 30. And I was only taking four classes.

So the big question that remains is "Why was it different for me?"

Looking back through my posts, I don't think I've tackled this question. During third term last year I wrote:

"As a conservative estimate, between Monday and Thursday I worked or was in class forty five and a half hours. That's not fun. It's not like I had that much to do... I had classes to go to, a physics set due Wednesday, math set due Friday, and physics lab due Friday afternoon. I don't really understand."

I think I understand now. So I'll spend just a little bit of time talking about it now.

It all comes down to raw intelligence. I'm not as smart as these kids. I don't have as high of an IQ. Another strike against me is that I haven't been trained in math, physics, and analytical thinking from a young age. That's it. It's simple, really.

So why did admissions let me in? I wanted to go to a good school, so in my senior year of high school I spent a lot of time getting to know how my TI-89 worked and taking practice exams for the SATs. Every weekend I took practice exams. Practice, practice. I got really good at multiple choice exams by doing them over and over again. Combine good SAT scores with the senate page thing and the fact that I fixed and sold iPods, and someone from South Dakota who wasn't even in the top 10% of their public high school class was accepted to Caltech. At a place where the curriculum is set up to challenge kids who have professors at Caltech, Stanford, or Ivy league schools for parents, kids who competed in the Intel with their research from high school, I was not cut out for it. It was like being tossed into a gunfight with a butter knife. Sure, you might survive by some freak accident, but you're not going to be at ease and you're probably going to get fucked up because everyone else is better equipped for it.

So if you're considering Caltech for an undergraduate degree, make sure you're the right applicant. The successful student here probably completed most of a physics or math degree at a very good university, or at the very least took AP Calc and AP Phys and got 5's on the tests without a sweat. You probably competed in the Intel, academic decathlon, quiz bowl, math competitions, physics competitions, and other nerdy stuff like this. Your SAT scores were over 1500 and you probably took the test hung over and without studying. And most importantly, you probably pushed yourself to learn stuff, anything, starting from a very young age. I'm guessing that without these things, you won't do well here.

For future prospective students, here is a list of some posts I have about my experience at Caltech, good and bad. But don't worry, I'm the exception, not the rule. A lot of people don't have too much trouble.
http://robertkarl.net/blog/2006/09/los-angeles.html
http://robertkarl.net/blog/2007/01/caltech-round-two.html
http://robertkarl.net/blog/2007/02/shortest-set-ever.html
http://robertkarl.net/blog/2007/02/post-drop-day.html
http://robertkarl.net/blog/2007/02/nobel-prize.html
http://robertkarl.net/blog/2007/04/another-update.html
http://robertkarl.net/blog/2007/04/april.html
http://robertkarl.net/blog/2007/05/caltech-it-is-i-guess.html
http://robertkarl.net/blog/2007/05/math-1c-set-6.html
http://robertkarl.net/blog/2007/05/whats-going-on-here-and-in-n-out-16.html
http://robertkarl.net/blog/2007/06/work-tomorrow.html

As of right now, I'm doing OK. A little behind, but not tragically lost. It's midterms week, and if I start dragging myself to class more and spending more time on homework I'll get C's or better.

The Internets

It's pretty amazing how quickly you can register a concise memorable website, take a photo with your laptop, and upload content. Oh the wonders of having a laptop and the internet.

BTW, I now have a shiny macbook pro.

I guess the main point of this blog seems to be talking about Caltech. I should continue to do so.

I've been listening to new (to me) music lately: Of Montreal, Forever The Sickest Kids, The French Kicks...

I've had time lately to go mountain biking again! It's an incredible development. My workload this term isn't prohibitive.

Here's what I'm taking this term.

CS 24 - Computer systems. Assembly, virtual machines, functions, memory management
CS 38 - Algorithms. sorting, trees, hash functions, graphs, dynamic programming, treaps, complexity
CS 3 - intro to software engineering - abstraction and specification. ends with a final project, possibly a bittorrent client?
Ec 11 - Intro to Econ
Hum/En6 - frosh hum ... US culture and early film
tennis!

Well, that's it for now. Notice how I'm not taking any physics or actual math classes?

The Daily Chump

Some Updates

Check out my traffic map!


Facebook's targeted ads think I'm gay.


Mathtex! Lets you do things like Exciting, huh? (I'm on a two post LaTeX streak.)


The average case complexity for an n bit binary counter incrementer is . Who knew?

Using LaTeX isn't THAT bad

LaTeX! There is a lot of annoying crap to get out of the way before you can get started, but it's not really that bad. Here's the steps I went through before I could hobble through typing up an entire assignment.

So... Download LaTeX. The entire mac download is > 700 MB (for mac), so watch out.

Open TeXShop and start a new document. There's a ton of boring stuff about environments, modes, packages and whatnot that you can learn.... but who really cares. This is your document. Save it. LaTeX will generate your PDF in the same place. Nice!

documentclass[english]{article}
usepackage{fullpage}
usepackage{babel}
begin{document}
YOUR STUFF GOES HERE
end{document}

Entering mathematical symbols. There are two equivalent ways to enter symbols:

$f(x) = x^{2x + 4}$
and
( f_{epsilon}(x) = e^{epsilon} log x ). 
When you type $$ or ( ), the stuff in the middle is in math mode, everything else is interpreted as plain text. Use the second one to avoid ambiguity. Anyways, escape the symbol you want with a "", like
epsilon
or
 frac{4 pi r^3} {3}.
Chances are if you want a symbol "something", just type something. There are "rightarrow"s, "subsets"s and even weird stuff like "pitchfork"s, and they're all nicely formatted mathematical symbols.

There is an excellent LaTeX math reference PDF here written by these guys.

Differential Equations

Just this morning I stumbled across two excellent resources for solving ordinary differential equations with a computer. I didn't read much of this guy's blog, but apparently he's a theoretical biology mathematician, with a blog named "Phase Portrait". So he pulled a Dan and did a blog post on differential equation tools... some guy at Rice develops a MATLAB GUI DE solver. You don't even have to think! type in your equation in human readable form, and click on the direction field to plot a particular solution.

In addition, if you are interested in thinking (a little), this Wolfram How-to page for Mathematica gives an excellent overview of using differential equations tools that do everything from solving simple first order linear equations to plotting the Lorenz attractor equations.

Phew

I dropped EE20, the analog circuits lab... interesting, but time consuming. It's been good for my sanity. Now I'm down to thirty six units, which I'm comfortable with, and only five sets a week.

It's midterms week, which is usually the worst week of the term (sets and midterms due in some classes). This weekend, all I need to do are two midterms. Not so bad. I've got some time for other activities, (like doing nothing, for example) I'm helping The Blinking Project prepare for their upcoming tour.

Coding is great fun.

Caltech: Round Two, Part One? Or Round Four, Week Three? No Matter How You Count It, It's a Quagmire

So here we go again! Caltech, year two.

Physics 2a: Waves/Quantum - 9
Math 2a: Differential Equations - 9
EE 20a: Electronics Lab - 9
EE 5: Intro to Embedded Systems - 6
CS 1: Intro to Computation - 9
CS 11: Computer Language Shop: C track - 3

For a total of 45 units. It still sucks, and I'm fighting against what happens when I work for 12+ hours/day: I start sleeping 12 hours a day. With six or seven sets and quizzes due each week, it sometimes feels hopeless.

However, it's a huge relief to work on classes that interest me. Learning C, Scheme, binary arithmetic and bits of ABEL at the same time is a much more interesting challenge than vector calculus and and analytical relativity. Seriously, what the fuck.

It's Sunday night, and three of my four sets due in the next two days are half done. ;) got to finish math before tomorrow.

adiós...

Photoshop is amazing. And so is a five year old camera.



Satan Is In My iPod Question Mark?

More.iPods.And.SSEL

Holy cow! It's been awhile. What's up! Just me checking in again...

As you may know, Nic Westlake is in town. we are iPodding and keyboarding and Craigslisting and eBaying trying to sell as many iPods as is possible. But more importantly we have some good stories to tell. Recently Nic sweet-talked a southern lady into giving him the chance to watch the last half of Miss Teen USA. Apparently it was a trashier production than most high school musicals. You can probably look forward to a guest-blog entry about it.

And the Dakota Five-0 is happening in the Black Hills of good old (puke) South Dakota. It's too bad I can't be around for it... my single speed Kona Unit and I will be in Pasadena, CA. Currently when you run "Dakota 5o" through google, my blog entry from nearly a year ago comes up second. Hey Ridge Riders: if you need marketing advice, or a new site, you know who to call. ;) Not that my blog is great, and I know your page is for a yearly mountain bike event, but, I mean, yuck. :P

In other website aesthetics news, eBay centered their homepage content (!!) and Paypal ended the beta of their new and prettier dub dub dub layout.

But we haven't been just browsing the web all day. We can multitask at wasting time like crazy. It turns out that Craigslist is a great resource for eBay sellers... people on Craigslist sometimes sell stuff for ridiculously low prices and occasionally people buy on Craigslist for even more absurd prices... more to come.

So if you want an iPod nano for $75, or Blinking Project The Two Person Play merch, or if you want to hear about getting paid hundreds of dollars a week to get hooked up to eye tracking gear and electrodes and heart rate monitors, send me or nic an email: robert [at] themacintoshdoctor.net & nic [ at ] theblinkingproject.com,

and the current tally? $-3472. We have lots of iPods to sell. Back to work.

/robert

The Current Tally (And iPods) (And Nic Westlake Is In Town)






Make sure you've listened to The Blinking Project's The Two Person Play. It's Nic's latest work of art. And when I say art, I mean it... it's not another emo kid in the basement with an eight track recorder whining about his parents. The album is beautifully orchestrated, well written, recorded with pro sound gear, mixed with care, mastered by the best, and best of all, it's literature. I'm going to write about it in more detail in an upcoming blog post.

Do you think I'm blowing a bunch of smoke? Go have a listen. You'll enjoy it if you enjoy new music or writing that doesn't fit in the mold of popular music today.


Also, you may or may not know that I've been working at JPL this summer, looking at weather data. Right now, I'm trying to understand weather patterns in the western United States. Interesting stuff. If you're lucky, I'll upload a picture. ;)

ttfn,

/robert

Over Wireless At Caltech

With A Futon, A Bed, And A Warm Monitor, You Sleep Here?

A New (Sri Lankan) Macbook

The iPhone was released today! Hundreds of people were waiting in line at the Apple store today, camping out since yesterday or the day before. Coincidentally, my macbook was getting repaired and was ready the same day...

Go play 'Geosense' right now. Then I can play vicariously through you. Some 14 year old girl from New Zealand told me to type the name of the country south of India a few times, and the server chided me for using vulgarities. Now I can't log in. Sigh. Since when is Sri Lanka a swear word???

 
 
 

Copyright 2006-2007 OnToplist.com, All Rights Reserved
Powered by OnToplist.com :: blog directory and blogging community.