For T – 11.24.08

I find myself smiling more often
since you have come into my life.
This is no easy feat you have managed.
You ask why I stare?
I cannot help but to find myself
lost in the depths of your beauty.
If only you could possibly see through my eyes.
I find myself feeling anxious when
your face crosses my mind.
In the same instant I am nervous and happy.
Nervous because I have to worry,
that I don’t make you nearly as happy as you make me.
Nervous because I want you to know,
that every single day I am thinking about you.
This is at once overcome by the happiness that you bring.
The way you laugh melts my heart.
Your smile makes my heart stop.
When our lips touch
I have to remind myself to breathe again.
Imagine waking from a dream,
only to find yourself in a better place and time.
It is a serenely disorienting experience.
When I awake and see your beautiful face
resting there on my chest,
and I feel your body tangled around mine
I know all of this is going to be ok.

What's up. Where I'm at.

December 11th. December 11th at 11AM I will finally graduate with a bachelor’s of science degree in psychology. It’s been a long journey. Let me repeat that (I’m starting to sound like Joe Bidden). It’s been a VERY long journey. I’m not going to get into details because if you don’t know what I’m talking about then you don’t need to know.
So what’s going on? What’s the plan? I plan to move to New York City in the very near future. That would obviously imply that I’ll need to find a place to live, and I’ll need someone to employ me as well. These are all things I’m still working out as we speak. The wheel has been put in motion, and now I’m just hoping its momentum will promptly lead me to where I want to be.
So why New York City? The better question would be: why not? The intelligent reply would be “because it’s absurdly expensive”. Well yes, it is. Fair point actually, touché. Ignoring this minuscule stumbling block I’ll answer the “so why New York City” question instead I guess. “I [have] to go and see about a girl.” That would be part of it. I’ll keep the sappy details to myself, but I’ll just say that she’s the girl of my dreams. She makes the little things in life extraordinary. The other significant reason for this move will be because, quite simply, I need to get out of Rochester. Excluding my brief stay (2 1/2 years on and off) at Vassar, I’ve never lived in a different place. It’s definitely time to fix that.
So that’s the deal. What’s left to do? Minor things, ya know. I need to graduate (which includes finishing my finals), find a job, find a place to live, and then actually move down to NYC. Wish me luck!

How to download any song from Favtape.com

I’ve had my doubts about posting this information because quite honestly I’m a big fan of Favtape.com and I don’t want to see them get in trouble and/or close. That being said, I suppose it can’t hurt that much to put this information out there. Here’s a quick and simple way to download any song that you can play on Favtape.com

  1. Use Firefox (it’s not required but we all know that when you use IE god will kill kittens).
  2. Go to Favtape.com (duh) and find a song that you want.
    FavTape.com songhover
  3. Click the name of the song to begin playing it.
  4. When you hover over the name of the song you should see something like this in the status bar: http://favtape.com/play/**Artist**/**Song**.mp3  (**Artist** and **Song* obviously replaced with the appropriate information). Click on the image to the right if you don’t understand what I just said.
  5. Now you can’t simply right click and “Save link as”. You actually can’t right click at all. So how do you get the MP3 file?
  6. Method 1 – no tweaking involved:
    1. Open a new tab in Firefox (control + t).
    2. Click + hold the Artist – Song Name and drag this onto the new tab you just created.
    3. That’s it! The song should not start to download, but you’ll need to rename it because it’ll save as “fetch.mp3”.
  7. Method 2 – tweaking the Firefox settings:
    Click for full size

    1. In Firefox goes to Tools –> Options
    2. Go to the “Content” tab
    3. Find “Enable Javascript”. To the right of this you will see “Advanced” click on this.
    4. Find “Disable or replace context menus”. Uncheck this box.
    5. Click “OK” and then “OK” again.
    6. Now you can right click on the Artist – Song Name and select “Save link as”.
    7. That’s it! You can now just save the MP3 file we saw in the status bar earlier.
    8. Important Note: You may want to re-enable the “Disable or replace context menus” option because many web applications use this functionality.

Review: The Road

The Road
The Road by Cormac McCarthy
ISBN: 0307387895
The book is available on Amazon
I was hoping for a very dark post apocalyptic novel when I purchased The Road, but instead I found what felt like a half-hearted attempt at the genre. To be honest the entire story didn’t feel all that dark, hopeless, or even post apocalyptic. McCarthy repeatedly mentions the ever present ash, the ash snowfall, the ash dyed rain, etc etc …but this gets old after the first 100 pages. The dialogue is interesting if only because it’s short, choppy, and very much to the point. It may be important just to note that Cormac McCarthy is the writer of the now famous “No Country for Old Men” novel turned Hollywood blockbuster.
[xrr rating=3/5]

Review: The Virgin Suicides

The Virgin Suicides
The Virgin Suicides by Jeffrey Eugenides
ISBN: 0446670251
The book is available on Amazon
After recently reading Middlesex by Jeffrey Eugenides I was anxious to read another book he had written.The Virgin Suicides continues in much the same style of sarcasm and biting social commentary, while remaining very approachable to the casual reader. The point of these reviews aren’t to give away the plot because that wouldn’t do anyone any good. So I will simply say that this was an interesting, relatively quick, and enjoyable read. The ending left a bit to be desired, but I’m beginning to realize that I happen to be extremely picky about what constitutes a good ending to a novel.
[xrr rating=3/5]

Barack Obama Clinches the Demoncratic Nomination

CNN projects Obama clinches nomination
Barack Obama Clinches Nomination
Sen. Barack Obama has clinched the Democratic nomination for president, according to CNN estimates, making him the first African-American in U.S. history to lead a major-party ticket.
Sen. Barack Obama on Tuesday will tell supporters he is the Democratic nominee, according to his campaign. “Tonight, I can stand before you and say that I will be the Democratic nominee for president of the United States.”
Obama picked up a slew of superdelegate endorsements on Tuesday. Those endorsements, combined with the delegates he’s projected to receive from South Dakota’s primary, will put him past the 2,118 threshold, according to CNN estimates.
By doing so, he shattered a barrier more than two centuries old to become the first black candidate ever nominated by a major political party for the nation’s highest office.

Review: Middlesex

Middlesex
Middlesex by Jeffrey Eugenides
ISBN: 0312422156
The book is available on Amazon
“I was born twice: first, as a baby girl, on a remarkably smogless Detroit day in January of 1960; and then again, as a teenage boy, in an emergency room near Petoskey, Michigan, in August of 1974.” Is your interest piqued yet? This remarkably novel follows the life and family of Cal Stephanides or Calliope, depending on when you met our narrator. Eugenides does a remarkable job of weaving minute details of the past with satirical humor of the present. This novel was exciting, engaging, extremely funny, and very approachable for casual readers. That being said, those with any knowledge of Greek mythology will find particularly interesting and comical tidbits throughout the novel. This is probably the best novel I’ve read in at least the past 4 years. I’d highly recommend this to anyone, but I’d emphasis that they shouldn’t get hung up on the society-induced awkwardness they may feel from the situation the book discusses.
[xrr rating=4.5/5]

Review: The Alchemist

The Alchemist
The Alchemist by Paulo Coelho
ISBN: 0061122416
The book is available on Amazon
The Alchemist is a quaint tale about a peaceful shepherd named Santiago. He travels from his quiet existence in the hills of Spain to begin what will ultimately become the spiritual journey of his life. Unfortunately for the reader, Coelho tries far too hard to impart these spiritual tidbits during this adventure. It’s not that the book is actually all that spiritual; it’s more that Coelho attempts force that on the story. If you haven’t gathered yet, I feel that he fails miserably at this unnecessary task. To be brief, if this book hadn’t been a very quick read (1 afternoon) I would have put it down and retired it to the bookshelf unfinished. It’s a moderately interesting story, but Coelho stumbles in his attempt to impress the reader with his spiritual ramblings.
[xrr rating=2.5/5]

Baby's First Ruby App

So I’ve begun to learn Ruby (for work), and I thought I might share a little bit of my progress so far. Progress might be an exaggeration considering how basic this application actually is, but at least I’m slowly but surely moving in the right direction anyway.

So here’s the 1st part of it:

   1:  #GET INPUT
   2:  puts "Please enter a number"  
   3:  STDOUT.flush  
   4:  num1 = gets.chomp.to_i
   5:   
   6:  puts "Please enter another number"  
   7:  STDOUT.flush  
   8:  num2 = gets.chomp.to_i
   9:   
  10:  puts "Please pick the type of operation:
  11:  (A)dd
  12:  (S)ubtract
  13:  (M)ultiply
  14:  (D)ivide)"  
  15:  STDOUT.flush  
  16:  oper = gets.chomp
 

So here we’re asking the user for 2 numbers, cleaning up the input, and then storing it into 2 variables (num1 and num2). We then ask the user to select which type of mathematical operation they’d like to perform (addition, subtraction, multiplication, or division).

The 2nd part:

   1:  #SELECT THE OPERATION
   2:  if oper == ("a" or "A")  
   3:          add(num1, num2)
   4:      elsif oper == ("s" or "S")
   5:          subtract(num1, num2)
   6:      elsif oper == ("m" or "M")
   7:          multiply(num1, num2)
   8:      elsif oper ==  ("d" or "D")
   9:          divide(num1, num2)
  10:  end

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

So here we’re deciding what we’re going to do with our 2 variables (num1 and num2) based on the users selection. If they enter “a” or “A” (for example) we will then execute the method called “add” on line 3. Speaking of these methods…

The 3rd and final part:

   1:  #DEFINE THE METHODS
   2:  def add(num1, num2)  
   3:    sum = num1 + num2
   4:    puts "#{num1} + #{num2} = #{sum}"
   5:  end  
   6:   
   7:  def subtract(num1, num2)
   8:      if num1 > num2  
   9:        diff = num1 - num2
  10:        puts "#{num1} - #{num2} = #{diff}"
  11:      else
  12:        diff = num2 - num1
  13:        puts "#{num2} - #{num1} = #{diff}"
  14:      end
  15:  end  
  16:   
  17:  def multiply(num1, num2)  
  18:    prod = num1 * num2
  19:    puts "#{num1} X #{num2} = #{prod}"
  20:  end  
  21:   
  22:  def divide(num1, num2)  
  23:      if num1 > num2  
  24:          div = num1 / num2
  25:          puts "#{num1} /  #{num2} = #{div}"
  26:      else
  27:          div = num2/num1
  28:          puts "#{num2} /  #{num1} = #{div}"
  29:      end
  30:  end 

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Each one of these methods (starting on lines 2, 7, 17, and 22) perform a particular set of functions based on the variables that are being passed in (num1 and num2). These methods are called based on the earlier code (part 2) that selected which method applied based on which of the mathematical operations the user selected. The 2 numbers that the user entered are passed into that method, some type of calculation is carried out, and then the result is displayed to the user. In the case of subtraction and division, I elected to add an additional step that would determine which of the 2 entered numbers was larger, and then it would order the calculation accordingly so as to not return a negative number (but this is purely optional).

To recap, and provide a plain English flow of how this happen in this simple little application: the user enters 2 numbers, and then they select a mathematical operation. Based on that operation we go through a series of checks to match which operation was selected, the 2 numbers entered by the users are passed to the method, and then we enter the applicable method. The method then performs the necessary calculations and displays the output to the user.

Pretty simple, not exactly rocket science, but it’s a start at least. I wanted to play with conditional statements a bit, as well as creating and calling my own methods. Next up will be to continue to experiment with arrays and hashes.
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }