RubyMine Review

In my endless pursuit of more productivity, I decided to give the latest RubyMine IDE one more chance. I’ll make this review nice and concise by listing the pro’s and con’s.

Pro’s

  • Helps stimulate the economy by giving $99 to JetBrains.
  • Its sluggishness gives you more time to think.
  • You get a great exercise from using your mouse since you have to constantly scroll to the right to see the rest of the code. That’s right, no wordwrap.
  • You get to install gems that does not appear anywhere in the code, even the Windows gems although these does not get installed on my Mac or Linux.

Con’s

  • When evaluating my existing projects, “refactor” does not work.
  • I get full of red dotted lines underneath constants and variables, even after “indexing”.

Conclusion

Nice try, but I’ll stick to VIM and TextMate.

Modern Day Sweatshop

Below describes the working conditions of a sweatshop according to Wikipedia.

“crowded, dangerous, low-paying, and without job security…”

I’d also like to add long hours and shitty benefits to this list.

Sounds familiar?

It should. I’m finding out that this is the working conditions of many developers. Yet, we take it like there’s nothing wrong with it. Why?

First of all, we’ve been brain-washed by the success stories of successful tech entrepreneurs bragging about working under these conditions. I don’t think I ever heard any of them actually talking about having a balanced life. If you really think about it, aren’t these people also the employers of developers? Do you think they have a financial incentive?

Another great bullshit I’ve heard is that developers get paid lot more than others. Well, if you take the amount and divide by the hours we’re forced to work, then you’ll know that we’re actually making less than others. I’ve also heard some grumble about consultant’s hourly rate. Well, if you think about it, there’s no sick days nor vacation days. How about the cost of health insurance and other overheads? I know, I did the calculations.

You must be thinking that I’m describing the working environment at a start-up. Not so. For some stupid reasons, people at well-established companies also think that they can treat “techies” like crap. It’s fascinating that we’re de-humanized, and therefore we don’t have human needs.

This has to change and it has to start from the top.

One thing I’m really proud is that when I was a CTO, I did not run a sweatshop operation. I made sure the working environment is a friendly one and made sure people are treated with dignity. I made sure they’re not overworked and always available for their family. Sure, there were times where we had to work crazy hours for few days, but they were far and few in between. I also made sure that a death march is a shameful event. It means we didn’t do a great job of planning and it’s a total collapse of expectation management.

So, next time you hear a developer bragging about how much he works, tell him that he’s working at a modern day sweatshop and should really shut the fuck up.

Introduction to MongoDB – Part III, MongoMapper & Rails

This is the third and final episode on introduction to MongDB. In this screencast, we demonstrate MongoMapper and how to use it in a Rails app. Get the code at http://blog.rubyhead.com/files/mongodemo.zip

Introduction to MongoDB – Part III, MongoMapper & Rails.

6-Mo of Full-Time Consulting

Today marks six months of me going full-time on my own. It’s been both exciting, disappointing, fun, hard, tiring, and most of all, extremely educational. Although not a complete list, I thought I’d share some important things I learned.

Getting Paid

Before you sign anything, make sure you have a payment schedule from your client and it’s same as stated in the contract. I made this mistake with a firm that handles the payment for the client I work for. Although I was given a payment schedule, the firm decided not to honor that and went with net 30 term. That effectively screwed up my budget and it’s not pleasant explaining that to my wife.

As for the payment term, if you invoice after two weeks and the payment term is net 30, you have to expect that there will be minimum of 6 weeks of non-payment when you go on your own. That is, if they don’t give you “the check is in the mail” line. Make sure you get a retainer upfront and check the credit of the company you’ll be receiving the payment from.

My advise here is that if you’re faced with working with a consulting firm and not the client directly, don’t do it. It’s much easier to talk to the people you work with than some outside company. I also saw this happen to other consultants when I worked with a consulting firm as a CTO.

Work Load

Don’t ever take on more work than you can handle. You’ll always get tempted by the financial reward but there’s more to life than money. I originally went into consulting because I thought I’ll get to see my family more. However, I ended up working like I did before. Always think about why you’re doing this to begin with.

I had to reduce the work load by transferring some clients to others who I trust. That’s another thing, always make sure your client that you can’t handle to good hands.

Time Management

As a consultant, time is money. I don’t have to explain how important time management is. Stay away from anything that is not considered productive use of your time. e.g. going out for drinking.

I have a gig that requires me to be onsite. What that means is that I have almost 4 hours of non-billable time per day. If you’re going to take on an assignment that requires you to be onsite, make sure your rate can cover that lost time. I use my commute time to catch up on studies and work online using EVDO.

Knowing My Place

Although I can offer lot more than what’s on the agreement, I have to be sensitive to the client’s employees and the management. The last time I opened my mouth and said what I thought, I ended up becoming a CTO. However, I did it because the person I was saying it to can handle it and was okay to do so based on the conditions at the time.

It used to frustrate me when I saw people making the same mistakes I made years ago. However, I now accept my role and there’s some comfort in knowing that they too, will learn from the mistakes. It may not always be the best thing for me to help. However, I’ll always roll up my sleeves if asked.

Introduction to MongoDB – Part II, Ruby

This is the second part of the series on MongoDB. In this screencast, we create a small Sinatra app called YASI that accesses the data using MongoDB. Get the code at http://blog.rubyhead.com/files/yasi.zip

Introduction to MongoDB – Part II, Ruby

Introduction to MongoDB – Part I

Here it is, the first of a series on MongoDB. I decided not to go over the concepts since there are extensive coverage already on the net. I highly recommend the presentation slides from nyc.rb and also checkout Peepcode’s screencast on CouchDB.

Teach Me To Code

Introduction to MongoDB – Part I from Joon You on Vimeo.

My Fellow Dorks at RB

rb_dorks.jpg

KataCasts

Similar theme as the RubyHead Screencast Shorts, Enrique Comba Riepenhausen, Chris Parsons, and Corey Haines are publishing their katas screencast online. Here’s the description from http://www.katacasts.com.

Software Craftsmanship Katas is a place dedicated to promote screencasts of coding katas to a wide audience of people interested in seeing other craftsmen perform a given kata.

If you don’t know what a kata is, check out Dave Thomas’ explanation at his site.

I’m also subscribing the video feed through Vimeo. Good stuff!

Ruby & Rails Screencasts

***update***
Thibaut emailed me with an aggregator site at http://www.learnivore.com that lists screencasts, free or paid. Check it out, it’s well worth it.
***

I once wrote that the term document should not only refer to paper, but to any communication vehicle that can be used to transfer ideas/knowledge from one person to another regardless of time. At the same time, I also stated that it is the technology that allows us to communicate and express ourselves far more effective than just words alone. This is the reason why I laugh at people who criticize Leo Laporte of ZDTV fame for saying that he reads audio books by Audible. He is absolutely correct as I’ve been reading audio books for years.

Having said that, one of the things I love about Ruby community is that we share our information lot more effective through the use of screencasts. Here’s a list of screencasts I found extremely useful:

Let me know if you find other FREE screencast sites.

All Future Full-Length Screencasts

I’m extremely pleased to announce that all future full-length screencasts (not the shorts) will be posted on http://www.teachmetocode.com. My goal is to consolidate resources so that people don’t have to excessively google (yup, i’m using it as a verb) in order to find information.

I was stunned that number of Ruby developers didn’t know this site. If you haven’t seen teachmetocode.com, do it now!

« Previous PageNext Page »

Clicky Web Analytics
Powered by Olark