I'm absurd, but I am constantly on the hunt for pens with a good flow that don't smudge the second you accidentally rub your hand against what you just wrote. I love the uni-ball pens, but unfortunately my handwriting is completely illegible with these :/
It's a mental thing - I feel like my hand is an extension of my mind and I can't tell you how many times I write code on paper before typing it up. It just helps me organize.
This rant is absolutely ridiculous and unintentionally highlights the reason that people hate nerds. As most "popular" kids consistently try to prove their own popularity, nerds do the same with intelligence. Most normal people at some point realize that there's more to life than being smarter than the next guy, but nerds ne'er do.
This article is chock full of pseudoanalysis, providing what the author believes to be concrete reason for nerd persecution, but to the reader it comes across as a pathetic attempt to gain virtual sympathy and assault the reader with his pathetic life stories. Why? Because he goes on and on, distracting his nerd audience with justification for its obnoxious behavior towards the rest of the world.
I dislike nerds and nerd culture - I don't get any pleasure from proving to other people that I'm smart via rambling about a specific body of knowledge that I've immersed myself in, I think dr who is a dumb show, and I thought star wars was all right at best. According to nerd criteria, I must be an idiot popular kid. And yet, I'm in the top 10% of cs majors at my college. It's people like this author and his friends who make my life miserable every day in this major by constantly trying to prove somehow that the world is black&white, and that since I am not part of nerd culture then I must be dumb. No, assholes - there are people that are smart and not social retards and the fact that you can't grasp this proves how simplistic your mind really is. There is such a thing as being an intellectual, although you would never know it by talking to the asperger majority in cs.
Tl;dr - there are more ways to classify the world than "smart" and popular, being nerdy != being smart, I hate cs nerds because every conversation turns into an intelligence pissing contest ending with some obscure video game reference that I don't get because my parents wouldn't buy me a console since I'm a girl and thus should love barbies instead.
Tl;you have ADD - I hate people that need to shove the world into disjoint sets.
It really depends on personal taste. If you tend to prefer younger, fruitier wines as opposed to heavier, aged wines then going for the $50+ bottle isn't going to do you any good. Some wines actually get worse with age.
You can find some really consistently great pinot noirs, merlots, and malbecs for much less than $20. I would steer clear of cabernet sauvignon simply because there is such a wild degree of variation in taste and it is not consistent with price.
Be aware of prices by region as well. Some grape varieties grow more easily in certain climates and as a result will be more cheaply produced. The Oregon wines have recently gotten noticeably more expensive, but this has more to do with it becoming a trendy region much like Napa Valley in the past.
So be aware of factors in price when buying wines, and your personal preference in wine body should be the ultimate determinant of how much you should be willing to spend. On a side note, if you're ever throwing a dinner party stick with the lighter wines. I break out the schmitt sohne riesling for $8 a bottle during the summer and while it's too sweet for my taste, guests usually love it.
As a CS major (junior), I often find that when I think assignments/exams are uncomfortably hard I tend to pour my energy into other hobbies that are seemingly less stressful at the time and convince myself that this new fleeting hobby is my new passion (like the time I decided to write the first ten chapters of my great new novel in the middle of a 24hr coding exam).
Moral of the story: Coding is hard, and just because it comes easily to someone at first doesn't mean that there aren't going to be those days when it's frustratingly, nail bitingly difficult. The reason I say this is because you sound as if you're inclined to give up or cease to try when things get difficult. If coding really is your passion, the best advice I can give you is to find a project you love and obsess over making it perfect every single day, even when you run into a problem that is seemingly impossible to solve.
As for technical advice, I would suggest you familiarize yourself with as many languages as you can. I started coding in C, and while I rarely use it for anything other than assignments it has definitely helped me in terms of understanding concepts and constructs for other languages. I've never used RoR, but I'm assuming that you've at least learned the basics of deploying a web app. Try learning Python/Django, JSP (I hate it, but lots of small businesses in my area use it and it's great to throw on the resume), PHP, etc. You'll find that there are a lot of similar concepts.
I'm in the job hunt myself and every single recruiter I've met has said that the best thing you can do is to expand your programming skill set. If you've even so much as finished a basic tutorial in a language, list it on the resume. Build up your portfolio with as many completed projects as you can. Don't listen to what you're "supposed" to do - I was "supposed" to be an English major because I got an 800 on the SAT verbal. The point of CS is that you take the rules and bend them beyond the point of recognition, and the sooner you start thinking this way the better.
Anyway, good luck and I can only hope that the passion you have for coding now stays with you during those tough moments ^.^
(Oh, and don't worry too much about familiarizing yourself with TDD, Agile, etc. There are a ton of books on safari on the subject - read those, familiarize yourself with tools like git, trac, or any version control system, and you can get by)