Category: Goals

Goals

Node.js Build From Source Failed

I was attempting to move on to another of my 2011 Technology Resolutions and start working with Node.js. I have already watched several of the free Node Tuts screencasts and also messed around with Node on someone else’s machine. Now I wanted to get down and dirty with it myself. As I got the source from Github, I followed the installation instructions for the Mac but got the following error:

Build failed:  -> task failed (err #1): 
	{task: cxx platform_darwin.cc -> platform_darwin_4.o}

Well, crap. It is bad enough that getting Node up and running is still pretty painful, but now I get this very cryptic (to me) error message. The great news is that I used my Google-Fu to find out that the problem was that I had gotten the master branch of the source and that was just not going to work. So, I got the latest branch (currently the v0.4 branch) and followed the installation instruction steps again. This time it was a win.

Incidentally, I also could have just used Homebrew and installed it with the simple command:

brew install node

Next time, then 😉

Git

Get Your Git On

Can You Dig Git? (from http://blog.aquabirdconsulting.com/?p=262)As I stated in my 2011 technology resolutions, I really wanted to make an effort to learn Git this year. I started with learning some Git Immersion, which I documented as well.

Well, since I like to go big or go home, I decided to start using Git at work full time. We have a big project that we started last week that requires us to branch our code and maintain this “catastrophically different” branch and our “hotfix” branch so that we can still get any bug fixes or emergency features to production in the meantime.

As many of you who have worked with it know, doing a long running branch in TFS (our old VCS) SUCKS hard. The merge would have not been fun. On top of that, switching between the branches to perform bug fixes wouldn’t have been fun either. We would have had to maintain separate directories, which means remapping local IIS routes for testing, etc. Disaster city.

However, when I saw that when you jump between branches in Git and your directories and files just “magically” transform into what you expect them to be in place, I was sold. We had to have that wizardry. Since Chris already knows him some Git, I felt like I was working with a safety net, so we went for it.

Chris used spraints’ git-tfs to migrate our TFS source (with history!) into Git so that we literally lost nothing in the transition. One note of warning was that it had trouble with a very large binary file that we had checked into source due to some memory constraints. We hard deleted it from TFS and the migration went much more smoothly from that point, though Chris still had to work some magic. Maybe he’ll blog it???

We’re officially about a week and a half in with Git and we actually haven’t had as many problems as I had feared. We had a little scare last week when a deployment went wrong, but it turned out that we ended up with a weird WCF issue that forced us to need to reproxy in every project that consumed that service. I had worried that Git had messed up our very large file, but we did some experiments and proved that it behaved exactly as it was supposed to. (Good thing, too, or that “three” I shot in pulling the trigger on the Git switch might have cost me an earful.)

Next blog, I’ll show everyone what “magic” really impressed me with Git. People who are old had at Git will maybe scoff at what I thought was mind-blowing, but I imagine some VSS/TFS-only users may have their face melt off and children will weep over their exploded bodies. (update: I’ve blogged the example here)

Git

Git Immersion

Got GitI’ve begun tackling my 2011 technology resolutions. It was as if the good folks at EdgeCase read my blog and deigned to help a brotha out. They’ve recently launched Git Immersion, which does for Git what their Koans did for the masses. That is, it offers a simple, step-by-step way for someone to learn a technology.

I already learned something. Doing Lab 3, it says to issue this command

git commit -m 'First Commit'

When I do, I get this error

error: pathspec 'Commit'' did not match any file(s) known to git.

A little of my Google-Fu and I find that my windows command prompt is anti me using the ‘ here. I change the command to

git commit -m "First Commit"

and I get the right result

[master (root-commit) d23d927] First Commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello.rb

Another thing I learned. When I typed “git commit” with no -m (Lab 8), it brought up VIM. Guess what? I’m such a n00b that I couldn’t figure out how to save my freaking file. Thank goodness for StackOverflow here to tell me to hit Esc then type :wq and then the enter key.

That’s it of my revelations so far. As I’m writing this, I am through the first 10 labs and will do some more after I post this. I’m really looking forward to learning Git because I like the way that it encourages you to work. On to some more learning…

Goals

2011 Technology Resolutions

ResolutionsI try to learn at least one new thing every year in the technology field. In 2010, I learned (and build a production application from) Asp.Net MVC 2.0. I also learned Windows Phone 7 development and even got an app in the Marketplace called Nerd News. You can see a little more about it here or by searching for Nerd News in the Marketplace.

In 2011, I’m beginning the year with the goal of learning more about Node.js, Socket.IO, and Git. I had hoped that CodeMash might have some Node stuff this year, but it doesn’t. Maybe I can find or start an open space about it…

Do any of you try to learn a new technology every year? If so, what are yours for 2011?