Personally, when I was 21 and bummed I didn't have a girlfriend, I would have appreciated someone, anyone, telling me to MTFU and get out into the real world rather than sit in my room and whine about it on a forum.
While I appreciate that there's a chance that the OP does have a serious case of depression, I feel that it's a lot more likely that he just needs to get out there and enjoy himself. In either case, there are plenty of replies here catering to that possibility, so I don't think this reply is out of place here.
If you're referring to the `git merge` command then the actual things they do are quite different.
In svn it applies specified changes to your working copy, while in git it either fast-fowards branch-a to branch-b if applicable, or finds a common ancestor for the commits and creates a 'merge commit' so the commit history won't be linear (it will branch and re-converge). If all the branches are local, you can also use 'rebase' and that will make the history a little cleaner (well, linear at least).
The chapter on branches in the pro git book is enlightening:
Yeah, as the other posters have said, they're different things.
OpenID allows users to log into _YOUR_ site with a single login that they can use for other sites that support it. An alternative is your regular user/pass login (which you'll have to implement anyway for users without openid).
OAuth allows you to get data from your users accounts on other websites (twitter, yahoo, gmail etc) in a secure, supported way. An insecure and brittle alternative would be to ask your user to give you their login details for a different site on your site and then screen scrape their account.
I've been a PHP programmer through and through for the past three years and had no complaints about it. That is until of course I met RoR.
After the first year or so of occasionally playing with RoR, I found that my PHP started to have a decidedly Ruby accent to it. I was making heavy use of create_function() and array_map(), and was designing interfaces that hid more and more of the inner workings of my code in abstractions.
Now I still do PHP as a day job, but I absolutely hate it. Not because of the language itself but because I have to put up with other peoples complicated procedural code. I'm not implying that everything has to be OO all the time, I'm instead referring to code written by developers who have absolutely no interest in OO programming or MVC when building fairly complex content managed site.
For freelance work, its RoR all the way. Because Rails imposes quite a fixed structure (fixed compared to PHPs open-endedness), I don't need to spend days trawling through someone elses code before I can get started on a site.
Now, there are frameworks in PHP as well, but they focus on different things. Zend for example is a collection of libraries that you can pull together free-form into a system of your design (though there is of course a recommended directory structure). This flexibility comes at a price, i.e. that you have to initialize and configure all the working parts of the MVC stack essentially by hand.
The focus of rails is unapologetically to make a site work now, and make it easy for the developer building it to make required changes for that site. This comes through in pretty much every interaction you have with the framework (unless of course, you're on windows!)
The Ruby language itself is an absolute joy to program with if you cut your teeth on OO programming. You really don't know what you're missing until you learn the inner workings of the object model. If I hadn't given it a chance (i.e. spend a good few weeks hacking away on a ruby-based project) I wouldn't appreciate the benefits of it, sort of like what Paul Graham was saying in his Blub Programming article.
There's no harm in doing it that way. By convention across my classes though I declare properties private and provide access via public getter methods.
The reason I use getters instead of direct access to properties (especially in PHP) is you can hide a lot of laziness behind them (i.e. database runs, object initialization etc) while at the same time providing a consistent interface to client code.
While I appreciate that there's a chance that the OP does have a serious case of depression, I feel that it's a lot more likely that he just needs to get out there and enjoy himself. In either case, there are plenty of replies here catering to that possibility, so I don't think this reply is out of place here.