From MongoDB.org

Screencasting isn’t easy, but sometimes things like this makes it all worthwhile.

Ruby-Debug19 with Ruby Head

Just in case you didn’t know by now, true to my name, I use HEAD version of Ruby. That’s 1.9.2dev at this time, and I already made a post on how I compile it from the source here.

Ruby-Debug is one of my indispensable tool. I’d be lost without it along with all the testing framework. You see, I really don’t know how to develop without testing and debugging. I’m a devoted Catholic so my faith is unshakeable, but that’s the religion, not the code.

I was going to give up on the latest Ruby because I had a bitch of time trying to install it. Well, it turns out that I was making a stupid mistake and although I feel embarrassed to admit, I’ll post the instruction here.

To install ruby-debug19, do the following:

That’s all! I was keep pointing to a wrong directory. This is a good reason why you shouldn’t remove the source directory after you compile and install Ruby.

Ruby Method Name with Spaces

This is an introduction to Ruby metaprogramming where I cover two different ways to define a method. The idea actually started as a joke, but there are valuable lessons to be learned here.

Ruby Method Name with Spaces from Joon You on Vimeo.

Rails Now 2.3.6, No, 2.3.7, No, 2.3.8

I found this little odd, but as you all probably know, Rails went through three rapid releases last couple of days. Here are the official words:

The 2.3.7 release slipped out the door too hastily. Fixing compatibility with the rails_xss plugin inadvertently forced everyone to use it. Facepalm.

I know people must be saying what a screwup this is. However, I view this as agile and fast reaction to the problems the core members faced. I believe they should be congratulated for their fast actions. It’s all about taking the responsibility and doing the right thing, not playing the blame game and sitting on a problem.

All I can say at this point is, THANK YOU GUYS!

Available for Hire

** Update **
Just accepted an offer from a really exciting company and will be starting on Tuesday. I’m really looking forward to this since I will be working on the stuff I’ve been dying to solve on my free time. Now I get paid to do this! Can it get any better?
**

For the first time in my adulthood, I woke up this morning without having to go to work. It’s a long story and I’ll spare you the disgusting details, but I got out of a bad situation. That’s all I’ll say.

This presents interesting set of challenges. I’ve always had a set of small clients to supplement my income. That is, until I decided to focus on one startup beginning of this year. I made the fatal mistake of putting all my eggs in one basket. Having faith is great for religion, but not for anything else. However, if an opportunity surfaces where I can truly take the dive without hitting my head on a rock, then I’ll do it, since it’s my nature to do so.

I’ll introduce the consulting programs I’ve created one at a time here until they’re all up in newly designed rubyhead.com site. I’m also trying out a project management process that makes managing consultants easy and painless, especially in terms of cost control. Keep your eyes open for that.

I’ll leave this post with the offer to provide you with my services. If you really don’t know who I am and where I’ve been, please visit my wiki at http://wiki.joonworld.com for my resume and my story. Email me at joon (at) rubyhead (dot) com and we can chat.

MongoNYC Report

I went to MongoNYC today and was amazed at what people are doing with it. Gilt Group presented their use and demonstrated Hummingbird (you can find it in Github since it’s open-source).

They’re holding the meetings in other cities and if you’re in the area, I highly recommend it.

Here are some of my observations:
1- bson is now a separate gem that needs to be added. Make sure you have the same versions of other gems.
2- Kyle Banker, the man behind the Ruby driver recommends that you learn Mongo driver without ORM such as Mongo_Mapper to understand what’s going on behind the scene. As you all know, the episode II on my MongoDB screencast series covers this.
3- object id: first 4 bytes are timestamp and can even search based on it.
4- map/reduce is not just for Ph.D’s. Don’t think too much of it and do it.

The tutorials also reminded me all the things I forgot or just know without thinking about it. I also got to meet my friends I haven’t seen ever since I started to work for “the sweatshop”.

I’ll produce more advanced screencasts in the future now that I’m armed with refreshed excitement on NoSQL/MongoDB.

Scottish Ruby Conference Videos

Just in case you haven’t seen it.

http://video2010.scottishrubyconference.com/

Trouble Recruiting Ruby/Rails Developers?

I’ve been at the both sides of the fence, so I can say that it’s not easy finding talents and even harder to find a good gig. Here are the factors I think is affecting this weirdness these days.

Economics 101

Simple supply and demand.png
I have a degree in Economics and Finance, so naturally, I point the problem to disequilibrium in the market. If we were to achieve the perfect equilibrium, people hiring will have to pay more. However, there’s a nasty thought out there that Ruby and Rails developers are cheap. That’s not true. They are cheap because we can produce more bang for the buck. Until this misunderstanding is cleared, we’ll continue to have disequilibrium.

By the way, don’t compare us with developers working on other language/framework.

Working Conditions

2696481591_c444ccaef1_m.jpg
As I mentioned in my “sweatshop” post, people hiring us demand that we work in shitty environment and work ourselves to death for their own benefits. Granted that Rails is used mostly by the startups, but provide your co-workers with the necessary tools and the environment.

The Treatment

Grow up! Don’t be an asshole!

DHH and others have criticized about being “professional”, but the fact of matter is, you have to treat people with kindness, understanding, and yes, professionalism. I’ve seen some behaviors that makes me want to puke.

People generally don’t want to be treated like a commodity. Treat them well and be amazed at what they give you in return. This is one lesson I learned throughout the years of managing that got me through incredible challenges.

Thoughts on Scaling (ToS) – Part I

I’m extremely proud to say that I, along with extremely talented people, built a system that runs on every continent except Antarctica. I know scaling is a subject that discussed when it comes to Ruby and Rails, but the fact is, it’s not just us, but it’s a beast to any other language/framework/system.

People mostly associate scaling with a system, but that’s not true. Scaling involves the people, including the end-user experience, policies and standard operating procedure in addition to code and system. If you think about it, it’s much like the security where all these things matter.

Take a look at the lessons learned from eBay. It will give you a brief insight to what they’ve done, especially at item #3.

I’ll be tackling some of the scaling issues as I create upcoming screencast series on deployment. Look for it at teachmetocode.com as well as here.

What’s The Name of Method?

Someone asked me today how do I find out what method the current line of code is in during the runtime. Besides the obvious question, I nevertheless thought that it’s interesting that Ruby provides with that information.

Take a look at the code below.

The output is “hello”, which happens to be the name of the method that was called. If you do “__method__.inspect”, then you’ll get :hello instead of the String version.

Next Page »

Powered by Olark