<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss"><id>tag:blogger.com,1999:blog-25706674</id><updated>2009-07-09T11:52:13.081-07:00</updated><title type="text">Blogbert™</title><subtitle type="html">your guide to how much caltech sucks (as it really happens)</subtitle><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default?start-index=26&amp;max-results=25" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://robertkarl.net/blog/atom.xml" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>133</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/Blogbert" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><id>tag:blogger.com,1999:blog-25706674.post-5305237937966728373</id><published>2008-08-19T03:13:00.001-07:00</published><updated>2008-08-19T03:40:20.705-07:00</updated><title type="text">Wow, There Are Stars In Los Angeles, Too, And, Mt. Wilson On The Eros</title><content type="html">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.&lt;p&gt;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.&lt;img src=http://robertkarl.net/images/blogimages/08081901.jpg&gt;&lt;br&gt;Is that smog???&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081902.jpg&gt;&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081903.jpg&gt;&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081904.jpg&gt;&lt;br&gt;'W' is for Wilson. Or Win.&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081905.jpg&gt;&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081906.jpg&gt;&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081907.jpg&gt;&lt;br&gt;All kinds of wicked equipment out there.&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081908.jpg&gt;&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081909.jpg&gt;&lt;br&gt;I love the The Starting Line!&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081910.jpg&gt;&lt;br&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08081911.jpg&gt;&lt;br&gt;And for your contemplation:&lt;br&gt;&lt;br /&gt;&lt;a href=http://www.photobasement.com/no-really-we-dont-need-roads-doesnt-even-matter-were-going/&gt;&lt;img src=http://img.ffffound.com/static-data/assets/6/db5036bdb74d158c62a0de0d1c19896fe7f11895_m.jpg&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-5305237937966728373?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/5305237937966728373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=5305237937966728373" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/5305237937966728373" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/5305237937966728373" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/08/wow-there-are-stars-in-los-angeles-too.html" title="Wow, There Are Stars In Los Angeles, Too, And, Mt. Wilson On The Eros" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-2712868967842122876</id><published>2008-08-06T04:30:00.000-07:00</published><updated>2008-08-06T07:25:15.264-07:00</updated><title type="text">These Pictures Tell A Story</title><content type="html">I purchased a used 2003 &lt;a href=http://www.bianchiusa.com/past/2003/site/bikes/30_Eros.html&gt;Bianchi Eros&lt;/a&gt; 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. &lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080607.jpg"&gt;&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080609.jpg"&gt;&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080606.jpg"&gt;&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080605.jpg"&gt;&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080604.jpg"&gt;&lt;p&gt;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 &lt;em&gt;nice&lt;/em&gt; road bike... it's &lt;em&gt;different&lt;/em&gt;."  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? &lt;pre&gt;Three key words have emerged as the theme for the &lt;br /&gt;latest DURA-ACE system: Speed, Smooth and Strength.&lt;/pre&gt;&lt;img src=http://bike.shimano.com/publish/content/global_cycle/en/us/index/news_and_info/news/shimano_turns_on_the.image.-mainParsys-0004-image.dash.483.382.gif&gt;&lt;p&gt;Does Shimano really say things like that?&lt;p&gt;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. &lt;p&gt;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.&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080603.jpg"&gt; &lt;p&gt;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.&lt;p&gt;It's the second time I've been egged on Lake late at night.&lt;p&gt;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 &lt;em&gt;girl&lt;/em&gt; 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.&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080602.jpg"&gt;&lt;p&gt;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.&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080601.jpg"&gt;&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080610.jpg"&gt;&lt;p&gt;Did you fail me, Lake?&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/08080611.noparticularreason.jpg"&gt;&lt;p&gt;License plate number available if you want it.  Did you know eggs leave welts? Ride safely. True.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-2712868967842122876?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/2712868967842122876/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=2712868967842122876" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2712868967842122876" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2712868967842122876" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/08/these-pictures-tell-story.html" title="These Pictures Tell A Story" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-2587782809754495544</id><published>2008-08-04T21:36:00.000-07:00</published><updated>2008-08-04T23:12:20.271-07:00</updated><title type="text">3333.33 mg Taurine Per Dollar, And, Milk, The Bittorrent Client: Part IV</title><content type="html">&lt;img src=http://robertkarl.net/images/blogimages/08080401.joker.jpg&gt;&lt;p&gt;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.&lt;p&gt;In other news,&lt;h2&gt;IT'S FUCKING DONE!&lt;/h2&gt;&lt;p&gt;That's right folks, &lt;a href=http://robertkarl.net/080804.milk.zip&gt;Milk&lt;/a&gt; works. &lt;a href=http://robertkarl.net/080804.milk.zip&gt;Download&lt;/a&gt; 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!?&lt;p&gt;what it does do&lt;ul&gt;&lt;li&gt;downloads at over 1MBps (that's 8Mbps, folks, just to rub it in your face) while using &lt; 10% of processor time on my Macbook Pro 2.2 GHz&lt;li&gt;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.&lt;li&gt;uses 16 MB RAM and 11 threads (on my MacBook Pro) of JVM overhead&lt;li&gt;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)&lt;li&gt;for better or worse, it doesn't contain any GPL code&lt;li&gt;allows for as many parallel downloads as you want, probably limited by machine memory &lt;li&gt;downloads multifile or singlefile torrents (joy)&lt;li&gt;enables you to download legal content sequentially&lt;li&gt;enables you to download illegal content sequentially (don't do this, it's WRONG)&lt;li&gt;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)&lt;/ul&gt;&lt;p&gt;What it doesn't do (and possibly should):&lt;ul&gt;&lt;li&gt;pester the client for lots of peers automatgically&lt;li&gt;announce to the tracker after it's done download that, well, it's done downloading&lt;li&gt;it doesn't have a GUI&lt;li&gt;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&lt;li&gt;keep any state beyond the last tracker update between runs&lt;/ul&gt; 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.&lt;br /&gt;&lt;p&gt;In traditional blog style, I'm going to post some links.  &lt;a href=http://www.chicagobikepolo.com/&gt;I wish I was in Chicago.&lt;/a&gt; Wait, I've never even played bike polo.&lt;p&gt;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 &lt;a href=&gt;Bike Hugga&lt;/a&gt;.  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  &lt;a href=http://feeds.feedburner.com/~r/BikeHugger/~3/355945601/2009_trek_madone_replaceable_h.htm&gt;bikes&lt;/a&gt; they &lt;a href=http://bikehugger.com/2008/07/bianchi_titanium_s9_matta.htm&gt;ride&lt;/a&gt;, 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 &lt;a href=http://bikehugger.com/2008/07/i_like_to_ride_bikes.htm&gt;everything&lt;/a&gt; &lt;a href=http://bikehugger.com/2008/07/ride_with_horner.htm&gt;important&lt;/a&gt; in &lt;a href=http://bikehugger.com/2008/07/mailbox_bike.htm&gt;cycling&lt;/a&gt;.  Even if it does involve carbon fiber.&lt;p&gt;Then there's &lt;a href=http://cyclingwmd.blogspot.com/&gt;cyclingwmd&lt;/a&gt;.  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". &lt;a href=http://cyclingwmd.blogspot.com/2008/07/holy-mutherfuckinshit-these-bitches-are.html&gt;It's fantastic&lt;/a&gt;. &lt;p&gt;&lt;a href=http://bikesnobnyc.blogspot.com/&gt;This guy&lt;/a&gt; is my hero. He posts the best of the &lt;a href=http://bikesnobnyc.blogspot.com/2008/08/worst-of-nyc-craigslist-special-edition.html&gt;best of craigslist NYC&lt;/a&gt;,  takes &lt;a href=http://bikesnobnyc.blogspot.com/2008/05/something-to-ponder-bike-lane-ethics.html&gt;pictures of trucks in bike lanes&lt;/a&gt;, &lt;a href=http://bikesnobnyc.blogspot.com/2008/07/crisis-of-faith-bidding-bittersweet.html&gt;hating (snobbing) on triathletes&lt;/a&gt;, and just plain &lt;a href=http://bikesnobnyc.blogspot.com/2008/07/highbrow-vs-lowbrow-lost-in.html&gt;wacky stuff&lt;/a&gt;.&lt;p&gt;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...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-2587782809754495544?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/2587782809754495544/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=2587782809754495544" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2587782809754495544" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2587782809754495544" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/08/3333-mg-taurine-per-dollar-and-milk.html" title="3333.33 mg Taurine Per Dollar, And, Milk, The Bittorrent Client: Part IV" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-2121003503427784534</id><published>2008-06-24T13:12:00.000-07:00</published><updated>2008-06-24T18:43:01.212-07:00</updated><title type="text">Spymaxx Spyware/Trojan/Virus/Whatever Encounter</title><content type="html">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!  &lt;p&gt;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.  &lt;p&gt;&lt;a href=http://www.spywareremove.com/removeSpyMaxx.html&gt;spywareremove.com&lt;/a&gt;, &lt;a href=http://www.spyware-techie.com/how-to-remove-spymaxx/&gt;spyware-techie&lt;/a&gt;, and &lt;a href=http://www.2-viruses.com/remove-spymaxx&gt;2-viruses.com&lt;/a&gt; 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.  &lt;p&gt;&lt;h3&gt;Steps to take&lt;/h3&gt;&lt;p&gt;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.  &lt;p&gt;&lt;b&gt;Get the DLLS&lt;/b&gt; The program installs a bunch of somewhat important looking DLLs and a few just plain odd files into C:\WINDOWS\, C:\WINDOWS\system and C:\WINDOWS\system32.  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. &lt;p&gt;&lt;b&gt;Remove assorted spyware files&lt;/b&gt;  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.  &lt;p&gt;&lt;b&gt;Kill the executable&lt;/b&gt; 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!&lt;p&gt;&lt;b&gt;Add/Remove Programs&lt;/b&gt; Yep. You'll see SpyMaxx in this window.  Get rid of it!&lt;p&gt;&lt;b&gt;Delete registry entries&lt;/b&gt;  Remember that "Task manager has been disabled by administrator" message? &lt;a href=http://windowsxp.mvps.org/Taskmanager_error.htm&gt;This site&lt;/a&gt; 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.&lt;p&gt;&lt;strike&gt;Boy do I hate Windows.&lt;/strike&gt;The machine appears to be up and running just fine now.&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-2121003503427784534?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/2121003503427784534/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=2121003503427784534" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2121003503427784534" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2121003503427784534" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/06/spymaxx-spywaretrojanviruswhatever.html" title="Spymaxx Spyware/Trojan/Virus/Whatever Encounter" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-1907619021039678770</id><published>2008-06-19T02:21:00.000-07:00</published><updated>2008-06-19T02:28:04.654-07:00</updated><title type="text">Jasmine</title><content type="html">Not the Disney princess!&lt;br /&gt;&lt;a href=http://robertkarl.net/images/blogimages/08061902jasmine.jpg&gt;&lt;br /&gt;&lt;img src=http://robertkarl.net/images/blogimages/08061902jasminet.jpg&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-1907619021039678770?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/1907619021039678770/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=1907619021039678770" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/1907619021039678770" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/1907619021039678770" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/06/jasmine.html" title="Jasmine" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-4887011109654860217</id><published>2008-06-05T16:53:00.000-07:00</published><updated>2008-06-05T21:03:09.085-07:00</updated><title type="text">Bittorrent Client: Part III</title><content type="html">&lt;p&gt;So our project is "done".&lt;p&gt;But we're pretty far from functional.&lt;p&gt;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. &lt;p&gt;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.&lt;p&gt;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.&lt;p&gt;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. &lt;table&gt;&lt;tr&gt; &lt;td&gt;entire project:&lt;/td&gt;&lt;td&gt;1831 lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;decoding torrent files:&lt;/td&gt;&lt;td&gt;228 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;communication with tracker: (reading peer lists, etc)&lt;/td&gt;&lt;td&gt;144 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;communication with peer: (initial handshake, sending/receiving messages)&lt;/td&gt;&lt;td&gt;931+ lines&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table&gt;&lt;tr&gt; &lt;td&gt;5-26&lt;/td&gt; &lt;td&gt;4 hours&lt;/td&gt; &lt;td&gt;5 revisions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;5-27&lt;/td&gt; &lt;td&gt;3 hours&lt;/td&gt; &lt;td&gt;8 revisions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;5-28&lt;/td&gt; &lt;td&gt;2 hours&lt;/td&gt; &lt;td&gt;4 revisions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;5-29&lt;/td&gt; &lt;td&gt;4 hours&lt;/td&gt; &lt;td&gt;3 revisions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;6-01&lt;/td&gt; &lt;td&gt;48 hours&lt;/td&gt; &lt;td&gt;86 revisions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;6-02&lt;/td&gt; &lt;td&gt;31 hours&lt;/td&gt; &lt;td&gt;84 revisions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;6-03&lt;/td&gt; &lt;td&gt;53 hours&lt;/td&gt; &lt;td&gt;78 revisions&lt;/td&gt; &lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-4887011109654860217?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/4887011109654860217/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=4887011109654860217" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/4887011109654860217" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/4887011109654860217" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/06/bittorrent-client-part-iii.html" title="Bittorrent Client: Part III" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-7497912546012774380</id><published>2008-06-02T13:29:00.000-07:00</published><updated>2008-06-02T14:36:49.742-07:00</updated><title type="text">Bittorrent Client: Part II: The Setup: Version Control</title><content type="html">&lt;p&gt;Alright... we now have some code written for this stupid thing. &lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;We would be farther along due to all of the time we wasted away yesterday dealing with version control software.&lt;br /&gt;&lt;p&gt;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:&lt;br /&gt;&lt;p&gt;&lt;font color=red size=4&gt;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.&lt;/font&gt;&lt;br /&gt;&lt;p&gt;Needless to say, we're keeping our own backups.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;So, I commit my changes compulsively and often.&lt;br /&gt;&lt;p&gt;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?&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/**&lt;br /&gt; *  Java function that takes a byte[] of binary data and returns a URL safe string of hex chars&lt;br /&gt; */&lt;br /&gt;    private String urlEncodeBinaryData(byte[] o){&lt;br /&gt;        String[] hexDigits = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};&lt;br /&gt;        // stuff has to look like %20%a4%20%20&lt;br /&gt;        String x = new String();&lt;br /&gt;        for (int i=0; i &lt; o.length; i++){&lt;br /&gt;            // for each byte, strip off the top 4 bits, then the bottom 4 bits.&lt;br /&gt;            // convert each to an integer, and index into the array.&lt;br /&gt;            int firstIndex = (int)((o[i] &amp; 0xF0)  // grab the higher bits of the byte&lt;br /&gt;                    &gt;&gt;&gt; 4);    // shift them so they're the lower bits&lt;br /&gt;            int secondIndex = (int)((o[i] &amp; 0x0F)); // grab the lower bits of the byte&lt;br /&gt;            x = x + "%" + hexDigits[firstIndex] + hexDigits[secondIndex]; &lt;br /&gt;        }&lt;br /&gt;        return x;&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;TODO: talk to peers, and start downloading pieces. Away to wrestle with java.nio.channels, threads, and file I/O!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-7497912546012774380?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/7497912546012774380/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=7497912546012774380" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/7497912546012774380" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/7497912546012774380" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/06/bittorrent-client-part-ii-setup-version.html" title="Bittorrent Client: Part II: The Setup: Version Control" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-8931269571534828614</id><published>2008-05-19T01:22:00.000-07:00</published><updated>2008-05-19T02:22:32.362-07:00</updated><title type="text">Designing And Implementing A Bittorrent Client</title><content type="html">For CS3, my class titled "Introduction to Software Engineering", we are choosing a final project to implement in Java.  &lt;p&gt;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.&lt;p&gt;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.)&lt;br /&gt;&lt;font size=1&gt;Dear student,&lt;p&gt;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. &lt;p&gt;Jo hn Ha ll&lt;p&gt;Dea n of Stud ents &lt;/font&gt;&lt;p&gt;&lt;font size=1&gt;&lt;i&gt;From the Office of the General Council:&lt;p&gt;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.&lt;p&gt;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.&lt;p&gt;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.&lt;/font&gt;&lt;/i&gt;&lt;p&gt;Did you see that last line? &lt;br /&gt;&lt;pre&gt;"We urge you to not download copyrighted material unless you are certain you may &lt;br /&gt;do so legally, and to remove any P2P file sharing software from your computer."&lt;/pre&gt;&lt;p&gt;Alright! We're designing banned software for our final project!&lt;br /&gt;&lt;p&gt;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.&lt;p&gt;As we thought more about the design of the client, we started to break it down into classes.&lt;p&gt;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, &lt;a href=http://bittorrent.org/introduction.html&gt;bittorrent.org&lt;/a&gt; has some of those! That's also where the official specification of the protocol lives.&lt;p&gt;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.&lt;p&gt;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,&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;a.) parse command line arguments&lt;br /&gt;b.) store names of torrents to add, from command line.&lt;br /&gt;c.) load previously seeding/leeching torrents from file&lt;br /&gt;d.) talk to trackers about previously active torrents&lt;br /&gt;e.) look for peers for previously active torrents&lt;br /&gt;f.) start transferring data&lt;br /&gt;g.) load and parse torrent files specified on command line&lt;br /&gt;h.) perform d.), e.), and f.) for the new torrents&lt;br /&gt;i.) rinse, dry, repeat.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;We'll be using preexisting libraries for the .torrent file encoding.&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;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!&lt;br /&gt;&lt;p&gt;Stay safe, you pirates of the interweb. And let me just remind you that there are many "legitimate" uses for BitTorrent.&lt;br /&gt;-robert&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-8931269571534828614?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/8931269571534828614/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=8931269571534828614" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/8931269571534828614" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/8931269571534828614" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/05/designing-and-implementing-bittorrent.html" title="Designing And Implementing A Bittorrent Client" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-4508673821829260651</id><published>2008-05-04T18:01:00.000-07:00</published><updated>2008-05-04T18:08:18.199-07:00</updated><title type="text">Another Caltech Post</title><content type="html">&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;If you look at the &lt;a href=http://www.admissions.caltech.edu/&gt;Caltech admissions page&lt;/a&gt;, 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.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;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.  &lt;p&gt;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.&lt;br /&gt;&lt;p&gt;So the big question that remains is "Why was it different for me?"&lt;br /&gt;&lt;p&gt;Looking back through my posts, I don't think I've tackled this question.  During third term last year I wrote:&lt;br /&gt;&lt;p&gt;&lt;i&gt;"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."&lt;/i&gt;&lt;br /&gt;&lt;p&gt;I think I understand now. So I'll spend just a little bit of time talking about it now.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2006/09/los-angeles.html&gt;http://robertkarl.net/blog/2006/09/los-angeles.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/01/caltech-round-two.html&gt;http://robertkarl.net/blog/2007/01/caltech-round-two.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/02/shortest-set-ever.html&gt;http://robertkarl.net/blog/2007/02/shortest-set-ever.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/02/post-drop-day.html&gt;http://robertkarl.net/blog/2007/02/post-drop-day.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/02/nobel-prize.html&gt;http://robertkarl.net/blog/2007/02/nobel-prize.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/04/another-update.html&gt;http://robertkarl.net/blog/2007/04/another-update.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/04/april.html&gt;http://robertkarl.net/blog/2007/04/april.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/05/caltech-it-is-i-guess.html&gt;http://robertkarl.net/blog/2007/05/caltech-it-is-i-guess.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/05/math-1c-set-6.html&gt;http://robertkarl.net/blog/2007/05/math-1c-set-6.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/05/whats-going-on-here-and-in-n-out-16.html&gt;http://robertkarl.net/blog/2007/05/whats-going-on-here-and-in-n-out-16.html&lt;/a&gt;&lt;br /&gt;&lt;a href=http://robertkarl.net/blog/2007/06/work-tomorrow.html&gt;http://robertkarl.net/blog/2007/06/work-tomorrow.html&lt;/a&gt;&lt;br /&gt;&lt;p&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-4508673821829260651?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/4508673821829260651/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=4508673821829260651" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/4508673821829260651" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/4508673821829260651" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/05/another-caltech-post.html" title="Another Caltech Post" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-6892002580874554229</id><published>2008-04-29T22:20:00.000-07:00</published><updated>2008-04-29T22:41:09.095-07:00</updated><title type="text">The Internets</title><content type="html">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.&lt;br /&gt;&lt;p&gt;BTW, I now have a shiny macbook pro.&lt;br /&gt;&lt;p&gt;I guess the main point of this blog seems to be talking about Caltech. I should continue to do so.&lt;br /&gt;&lt;p&gt;I've been listening to new (to me) music lately: &lt;a href=http://www.last.fm/music/Of+Montreal/&gt;Of Montreal&lt;/a&gt;, &lt;a href=http://www.last.fm/music/Forever+The+Sickest+Kids/&gt;Forever The Sickest Kids&lt;/a&gt;, &lt;a href=http://www.last.fm/music/The+French+Kicks/&gt;The French Kicks&lt;/a&gt;... &lt;br /&gt;&lt;p&gt;I've had time lately to go &lt;i&gt;mountain biking again!&lt;/i&gt; It's an incredible development.  My workload this term isn't prohibitive. &lt;br /&gt;&lt;p&gt;Here's what I'm taking this term.&lt;br /&gt;&lt;pre&gt;CS 24 - Computer systems. Assembly, virtual machines, functions, memory management&lt;br /&gt;CS 38 - Algorithms.  sorting, trees, hash functions, graphs, dynamic programming, treaps, complexity&lt;br /&gt;CS 3  - intro to software engineering - abstraction and specification. ends with a final project, possibly a bittorrent client?&lt;br /&gt;Ec 11 - Intro to Econ&lt;br /&gt;Hum/En6 - frosh hum ... US culture and early film&lt;br /&gt;tennis!&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Well, that's it for now. Notice how I'm not taking any physics or actual math classes?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-6892002580874554229?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/6892002580874554229/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=6892002580874554229" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/6892002580874554229" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/6892002580874554229" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/04/internets.html" title="The Internets" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-641733860858676764</id><published>2008-04-29T22:10:00.000-07:00</published><updated>2008-04-29T22:13:13.279-07:00</updated><title type="text">The Daily Chump</title><content type="html">&lt;a href=http://thedailychump.blogspot.com/&gt;&lt;img src=http://robertkarl.net/images/blogimages/080429.chump.png&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-641733860858676764?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/641733860858676764/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=641733860858676764" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/641733860858676764" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/641733860858676764" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/04/daily-chump.html" title="The Daily Chump" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-8240146932249035780</id><published>2008-04-20T01:09:00.000-07:00</published><updated>2008-04-20T03:22:07.862-07:00</updated><title type="text">Some Updates</title><content type="html">Check out my traffic map!&lt;br /&gt;&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/080429.trafficmap.png" width=600&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Facebook's targeted ads think I'm gay.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://robertkarl.net/images/blogimages/080420.gay.png" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.forkosh.com/mathtex.html"&gt;Mathtex&lt;/a&gt;! Lets you do things like &lt;img src="http://131.215.169.165/cgi-bin/mimetex.cgi?\frac{x^2}{\alpha%20asdf" /&gt;  Exciting, huh?  (I'm on a two post LaTeX streak.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The average case complexity for an &lt;i&gt;n&lt;/i&gt; bit binary counter incrementer is &lt;img border=0 src="http://131.215.169.165/cgi-bin/mimetex.cgi?2-\frac{2+n}{2^n}" /&gt;. Who knew?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-8240146932249035780?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/8240146932249035780/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=8240146932249035780" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/8240146932249035780" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/8240146932249035780" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/04/some-updates.html" title="Some Updates" /><author><name>rskjr</name><uri>http://www.blogger.com/profile/15363540058532142191</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="06181216051611398582" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-5500007018609783815</id><published>2008-02-19T01:27:00.000-08:00</published><updated>2008-02-19T01:51:05.598-08:00</updated><title type="text">Using LaTeX isn't THAT bad</title><content type="html">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.  &lt;p&gt;So... Download &lt;a href=http://www.latex-project.org/ftp.html#distributions&gt;LaTeX&lt;/a&gt;.  The entire mac download is &gt; 700 MB (for mac), so watch out.  &lt;br /&gt;&lt;p&gt; &lt;b&gt;Open TeXShop&lt;/b&gt; 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!&lt;br /&gt;&lt;pre&gt;\documentclass[english]{article}&lt;br /&gt;\usepackage{fullpage}&lt;br /&gt;\usepackage{babel}&lt;br /&gt;\begin{document}&lt;br /&gt;YOUR STUFF GOES HERE&lt;br /&gt;\end{document}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Entering mathematical symbols.&lt;/b&gt;  There are two equivalent ways to enter symbols: &lt;pre&gt;$f(x) = x^{2x + 4}$&lt;/pre&gt; and &lt;pre&gt;\( f_{\epsilon}(x) = e^{\epsilon} \log x \). &lt;/pre&gt;  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   &lt;pre&gt;\epsilon&lt;/pre&gt; or &lt;pre&gt; \frac{4 \pi r^3} {3}.&lt;/pre&gt;  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. &lt;br /&gt;&lt;p&gt;There is an excellent LaTeX math reference PDF &lt;a href=ftp://ftp.ams.org/pub/tex/doc/amsmath/short-math-guide.pdf&gt;here&lt;/a&gt; written by &lt;a href=http://www.ams.org/tex/amslatex.html&gt;these guys&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-5500007018609783815?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/5500007018609783815/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=5500007018609783815" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/5500007018609783815" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/5500007018609783815" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2008/02/using-latex-isnt-that-bad.html" title="Using LaTeX isn't THAT bad" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-2610889220081990554</id><published>2007-11-19T08:29:00.001-08:00</published><updated>2007-11-19T08:39:53.302-08:00</updated><title type="text">Differential Equations</title><content type="html">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 &lt;a href=http://westcoastgrid.blogspot.com/2005/09/what-is-googleplex.html&gt;Dan&lt;/a&gt; and did a blog post on differential equation tools... some guy at Rice develops a &lt;a href=http://math.rice.edu/~dfield/&gt;MATLAB GUI DE solver&lt;/a&gt;. 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.&lt;p&gt;In addition, if you are interested in thinking (a little), &lt;a href=http://library.wolfram.com/howtos/diffeq/&gt; this Wolfram How-to page for Mathematica &lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img src=http://online.redwoods.cc.ca.us/instruct/darnold/mfiles/review/dfield2.jpg&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-2610889220081990554?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/2610889220081990554/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=2610889220081990554" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2610889220081990554" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2610889220081990554" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/11/differential-equations.html" title="Differential Equations" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-2779670641854277949</id><published>2007-11-04T12:27:00.000-08:00</published><updated>2007-11-04T12:37:38.993-08:00</updated><title type="text">Phew</title><content type="html">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. &lt;p&gt;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 &lt;a href=www.theblinkingproject.com&gt;The Blinking Project&lt;/a&gt; prepare for their upcoming tour.&lt;p&gt;Coding is great fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-2779670641854277949?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/2779670641854277949/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=2779670641854277949" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2779670641854277949" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/2779670641854277949" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/11/phew.html" title="Phew" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-6924914148034083566</id><published>2007-10-21T23:40:00.000-07:00</published><updated>2007-10-22T00:04:12.951-07:00</updated><title type="text">Caltech: Round Two, Part One? Or Round Four, Week Three? No Matter How You Count It, It's a Quagmire</title><content type="html">So here we go again! Caltech, year two.  &lt;br /&gt;&lt;pre&gt;Physics 2a: Waves/Quantum - 9&lt;br /&gt;Math 2a: Differential Equations - 9&lt;br /&gt;EE 20a: Electronics Lab - 9&lt;br /&gt;EE 5: Intro to Embedded Systems - 6&lt;br /&gt;CS 1: Intro to Computation - 9&lt;br /&gt;CS 11: Computer Language Shop: C track - 3&lt;/pre&gt;&lt;p&gt;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. &lt;p&gt;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.&lt;br /&gt;&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;adiós...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-6924914148034083566?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/6924914148034083566/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=6924914148034083566" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/6924914148034083566" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/6924914148034083566" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/10/caltech-round-two-part-one-or-round.html" title="Caltech: Round Two, Part One? Or Round Four, Week Three? No Matter How You Count It, It's a Quagmire" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-667404286923662700</id><published>2007-09-09T23:09:00.001-07:00</published><updated>2007-09-09T23:22:26.396-07:00</updated><title type="text">Photoshop is amazing. And so is a five year old camera.</title><content type="html">&lt;p&gt;&lt;img src=http://robertkarl.net/images/blogimages/i.like.fire.full.jpg&gt;&lt;br /&gt;&lt;p&gt;&lt;img src=http://robertkarl.net/images/blogimages/i.like.fire.inset.jpg&gt;&lt;br /&gt;&lt;p&gt;&lt;img src=http://robertkarl.net/images/blogimages/i.like.fire.small.jpg&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-667404286923662700?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/667404286923662700/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=667404286923662700" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/667404286923662700" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/667404286923662700" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/09/photoshop-is-amazing-and-so-is-eos-10d.html" title="Photoshop is amazing. And so is a five year old camera." /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-7599931309603189543</id><published>2007-09-05T17:59:00.000-07:00</published><updated>2007-09-05T18:06:42.405-07:00</updated><title type="text">Satan Is In My iPod Question Mark?</title><content type="html">&lt;img src=http://robertkarl.net/images/blogimages/09050702.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-7599931309603189543?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/7599931309603189543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=7599931309603189543" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/7599931309603189543" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/7599931309603189543" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/09/satan-is-in-my-ipod-question-mark.html" title="Satan Is In My iPod Question Mark?" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-9141844991803854839</id><published>2007-08-30T20:01:00.000-07:00</published><updated>2007-08-30T20:38:24.288-07:00</updated><title type="text">More.iPods.And.SSEL</title><content type="html">&lt;p&gt;Holy cow! It's been awhile. What's up! Just me checking in again...&lt;br /&gt;&lt;p&gt;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.&lt;p&gt;And the &lt;a href=http://www.google.com/search?num=100&amp;hl=en&amp;safe=off&amp;q=dakota+5o&amp;btnG=Search&gt;Dakota Five-0&lt;/a&gt; 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&lt;p&gt;&lt;center&gt;&lt;a target="_blank" href="http://www.dakota5o.com"&gt;&lt;img width="300"src=http://www.dakota5o.com/Images/all_logos.jpg&gt;&lt;/a&gt;&lt;/center&gt;&lt;p&gt;In other website aesthetics news, eBay centered their homepage content (!!) and Paypal ended the beta of their new and prettier dub dub dub layout.&lt;p&gt;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.&lt;br /&gt;&lt;p&gt;So if you want an iPod nano for $75, or &lt;a href=http://theblinkingproject.com&gt;Blinking Project &lt;i&gt;The Two Person Play&lt;/i&gt;&lt;/a&gt; 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 &amp; nic [ at ] theblinkingproject.com, &lt;br /&gt;&lt;p&gt;and the current tally? $-3472.  We have lots of iPods to sell.  Back to work.&lt;br /&gt;&lt;p&gt;/robert&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-9141844991803854839?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/9141844991803854839/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=9141844991803854839" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/9141844991803854839" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/9141844991803854839" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/08/moreipodsandssel.html" title="More.iPods.And.SSEL" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-6198999632336234965</id><published>2007-08-24T02:52:00.000-07:00</published><updated>2007-08-24T13:02:35.706-07:00</updated><title type="text">The Current Tally (And iPods) (And Nic Westlake Is In Town)</title><content type="html">&lt;br&gt;&lt;img title="cheep bread" src=http://robertkarl.net/images/08240701.jpg&gt;&lt;br /&gt;&lt;br&gt;&lt;img title="holy cow. southern sweet tea" src=http://robertkarl.net/images/08240702.jpg&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Make sure you've listened to &lt;a href=http://theblinkingproject&gt;The Blinking Project's&lt;/a&gt; &lt;i&gt;The Two Person Play&lt;/i&gt;. 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 &lt;i&gt;literature&lt;/i&gt;.  I'm going to write about it in more detail in an upcoming blog post.  &lt;br /&gt;&lt;p&gt;Do you think I'm blowing a bunch of smoke? Go &lt;a href=http://theblinkingproject.com&gt;have a listen&lt;/a&gt;.  You'll enjoy it if you enjoy new music or writing that doesn't fit in the mold of popular music today.&lt;br /&gt;&lt;p&gt;&lt;center&gt;&lt;a href=http://theblinkingproject.com&gt;&lt;img title="the missing number 17" width="300" src=http://www.theblinkingproject.com/store/images/cover.jpg&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;p&gt;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. ;)&lt;br /&gt;&lt;p&gt;ttfn,&lt;br /&gt;&lt;p&gt;/robert&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-6198999632336234965?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/6198999632336234965/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=6198999632336234965" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/6198999632336234965" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/6198999632336234965" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/08/current-tally-and-ipods-and-nic.html" title="The Current Tally (And iPods) (And Nic Westlake Is In Town)" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-5978424051370769327</id><published>2007-07-29T15:30:00.001-07:00</published><updated>2007-07-29T15:30:54.742-07:00</updated><title type="text">Over Wireless At Caltech</title><content type="html">&lt;a href="http://speedtest.dslreports.com"&gt;&lt;img border=0 src="http://www.dslreports.com/im/34294264/306.png"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-5978424051370769327?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/5978424051370769327/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=5978424051370769327" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/5978424051370769327" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/5978424051370769327" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/07/over-wireless-at-caltech.html" title="Over Wireless At Caltech" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-884839288158197817</id><published>2007-07-07T15:33:00.000-07:00</published><updated>2007-07-07T15:34:29.683-07:00</updated><title type="text">With A Futon, A Bed, And A Warm Monitor, You Sleep Here?</title><content type="html">&lt;img src=http://robertkarl.net/images/blogimages/07070701.jpg&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-884839288158197817?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/884839288158197817/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=884839288158197817" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/884839288158197817" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/884839288158197817" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/07/with-futon-bed-and-warm-monitor-you.html" title="With A Futon, A Bed, And A Warm Monitor, You Sleep Here?" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-4903945115495548957</id><published>2007-06-30T01:44:00.000-07:00</published><updated>2007-06-30T03:20:14.555-07:00</updated><title type="text">A New (Sri Lankan) Macbook</title><content type="html">&lt;p&gt;The iPhone was released today!  Hundreds of &lt;a href=http://en.wikipedia.org/wiki/Freak&gt;people&lt;/a&gt; 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...&lt;p&gt;&lt;img src=http://robertkarl.net/images/blogimages/06300701.jpg&gt;&lt;p&gt;&lt;img src=http://robertkarl.net/images/blogimages/06300702.jpg&gt;&lt;p&gt;Go play &lt;a href=http://geosense.net&gt;'Geosense'&lt;/a&gt; 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???&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-4903945115495548957?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/4903945115495548957/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=4903945115495548957" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/4903945115495548957" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/4903945115495548957" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/06/new-sri-lankan-macbook.html" title="A New (Sri Lankan) Macbook" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-7315069573114229690</id><published>2007-06-25T21:10:00.000-07:00</published><updated>2007-06-26T17:39:03.735-07:00</updated><title type="text">Are You An Audiophile, Part II</title><content type="html">&lt;img src=http://www.mikewren.com/flac/flac_full.gif&gt;&lt;br /&gt;&lt;p&gt;OK! I was pretty appalled that I couldn't tell the difference between a 320 kbps AAC and a 128 AAC.  I tested it again, today, when I was awake and aware.  I did much better.  I used Audio Dueler for a double blind test.  For each song I used a 256 kbps or higher AAC or MP3 and a 128 kbps transcoded MP3 as the low quality version.  &lt;p&gt;I noted whether I mistook low quality for high, high for low, or both.&lt;p&gt;I also noted how well I knew the song, from 0 to 10.&lt;p&gt;The program randomly picks a version, plays it, and then you click which version you think is correct.&lt;p&gt;Before going into the test, I had heard that lossy encoding takes the most out of low and high frequencies, so through most of the test I concentrated on high hat/cymbal/bass drum.  I prepared for each by listening to the high quality version of the song in iTunes.  I tried to keep volume at a constant level.&lt;br /&gt;&lt;pre&gt;Score     Errors                Format/Rate   Song                            Artist            Listener      Song&lt;br /&gt;&lt;br /&gt;1 / 5     both                  MP3/261       Agenda Suicide                  The Faint         Russell&lt;br /&gt;       /* consistently chose opposite */&lt;br /&gt;4 / 7     both                  MP3/256       Zip-Lock                        Lit               Criff         6&lt;br /&gt;4 / 6     high for low          MP3/262 VBR   The Procession                  The Dear Hunter   Me            5&lt;br /&gt;2 / 8     both                  MP3/320       Dear Jamie...Sincerely Me       Hellogoodbye      Me        X&lt;br /&gt;       /* I consistently switched high for low and vice versa, twice correctly                &lt;br /&gt;        * identified high quality */&lt;br /&gt;4 / 7     both                  MP3/262 VBR   Dead End                        The Format        Me            5        &lt;br /&gt;5 / 7     low for high          MP3/278 VBR   Go On Drone                     Hey Mercedes      Me            2     &lt;br /&gt;3 / 7     both                  MP3/256 VBR   The Words We Say                Straylight Run    Me            0&lt;br /&gt;6 / 7     high for low          MP3/256       I Had Angels Watching Over Me   Wheat             Me            7&lt;br /&gt;       /* bass drum is very 'loose' sounding, cymbals very open and disperse,&lt;br /&gt;        * difficult to choose a version */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;A major problem here is using iTunes as the reference point for playback quality.  iTunes played the music file differently than the quicktime plugin in 'Audio Dueler' did.  iTunes does some processing before playing the song, even with EQ and sound enhancer turned off, but &lt;br /&gt;&lt;p&gt;I'll run the data through Matlab later, because I'm learning how to use it. And I'm too good for Excel. :D  But the data clearly shows that people can't tell the difference between high bit rate encodings and otherwise, and sometimes people prefer lower bitrate encodings.&lt;p&gt;&lt;b&gt;So Is FLAC or higher bit rate encodings worth it?  I say no.  I can't tell on my $200 Harmon Kardon speakers, but then again I don't have a professionally trained ear.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-7315069573114229690?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/7315069573114229690/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=7315069573114229690" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/7315069573114229690" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/7315069573114229690" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/06/are-you-audiophile-part-ii.html" title="Are You An Audiophile, Part II" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25706674.post-1042510447643709170</id><published>2007-06-21T02:50:00.001-07:00</published><updated>2007-06-21T02:57:21.072-07:00</updated><title type="text">Are You An Audiophile?</title><content type="html">Somehow I stumbled upon this &lt;a href=http://blogs.pcworld.com/staffblog/archives/003993.html&gt;pcworld blog&lt;/a&gt;. &lt;p&gt;I've always had somewhat fancy audio equipment and laughed at those who pitifully tried to enjoy low bit rate mp3s.&lt;p&gt;But I can't tell the difference between a 128 kbps AAC and a 320 kbps AAC file.  Can you? Someone wrote a simple (mac) program that does a double blind test: &lt;a href=http://iscs.us/AudioDueler.zip&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25706674-1042510447643709170?l=robertkarl.net%2Fblog'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/1042510447643709170/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=25706674&amp;postID=1042510447643709170" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/1042510447643709170" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25706674/posts/default/1042510447643709170" /><link rel="alternate" type="text/html" href="http://robertkarl.net/blog/2007/06/are-you-audiophile.html" title="Are You An Audiophile?" /><author><name>Robert</name><uri>http://www.blogger.com/profile/07119731270313450225</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="15320564964535519561" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry></feed>
