Showing posts with label Development. Show all posts
Showing posts with label Development. Show all posts

Wednesday, January 12, 2011

2011 Goals

Well a week in and I'm off to a great start. Said I'd post a follow up on Wed the 5th, it's now Wed the 12th. Awesome. 

So as mentioned in my last post, in the beginning of 2010 I posted a list of goals for the coming year. That list became a guide for the year, some worked out, others didnt. Either way I found value in the post so to start 2011 it's time to do it again. 

So first off:

Renewed Goals

1) Update this blog twice a month. 
2) Seal the floor in the garage
3) Pay off the credit card(s)
4) Take a vacation outside of a border state 

All of these are pretty much the same as last year. 

Ammended Goals

1) Continue speaking, but more importantly prepare a talk that can be presented multiple times for multiple audiences.

This will probably be an intro to ruby or rails talk which I can give for work and possibly the CleRB group if we want to do another newbie night sometime soon. But If i can polish it and there's still interest in that basic of a talk I'd be happy to present elsewhere.

2) Learn some new stuff in .NET

This years list: Fluent NH or ActiveRecord NH, Dynamics and the DLR, MVC3, Cuke4Nuke or Specflow

3) Diet plan. I'm working with a personal trainer it's time to get better at nutrition. I'm terrible at it (food is kinda amazing.)

New Goals (Professional)

1) Build a series of blog posts or a mini-book on using the techniques i've learned in Ruby development and applying them to .NET

2) Be a good team lead. I have 2 guys working with me now and it's pretty new. So far it seems to be going well but theres a fine line to walk between being adamant about quality and being a jerk. Hoping I can manage the tight rope. 

3) Get serious about javascript testing. It's a first class and hugely important language and it's irresponsible of me to spend a ton of time testing c# or ruby or php and not pay attention to javascript. 

4) Get serious about ATDD. For .NET projects it will be cuke4nuke or specflow (or possibly cucumber but probably not), for ruby its cucumber. 

5) Finish and launch Dreamkumo. More about this one at a later date. 

New Goals (Personal)

1) Get a budget in order and start tracking expenses. I've tried this a couple times using mint but so far I've given up after a short period of time. Need to get the wife on board with this one cause its a bit bad to not really know where your money is going. 

2) Finish the upstairs flooring. Seriously they are plywood floors right now, kinda embarrassing if this doesn't get done in 2011 there's seriously something wrong. 

I think that's all for now. Time to get back to codemash (another upcoming post.) 

 

Friday, June 18, 2010

RCov w/ RSpec-2

So I've spend the last couple weeks updating an old Rails application to Rails 3 and RSpec 2, both of which are currently still in beta.

Early on I noticed that the new rspec doesn't quite support rake spec:rcov yet. The new core framework has the rcov flag but there's no default rake task. RSpec-rails also removed the spec.rake task from your rails project and centralized it into your gem install, which confused me to no end. So in case anyone else wants to run rcov on your code I thought I might post what I did to make rake spec:rcov work again.

First a couple prereqs. I'm using an RVM install of all of this with ruby 1.8.7 (only because 1.9.1 gave me problems w/ rails 3) so in the steps below replace the paths I give with the path to your gem installation folder and you should be good.

1) Open ~/.rvm/rubies//lib/ruby/gems//gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task in your favorite editor.

2) Add this rake task

desc "Run all specs with rcov"
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
t.rcov = true
end

That's it. Pretty simple.

A caveat. Right now this runs ALL of your specs in both your rvm ruby folder and your project. I haven't a clue why, hopefully someone smarter than I will comment. That means rcov take a while and when its done its cludgy. If someone does help me out I'll post an update, in the meantime this works.

Monday, January 11, 2010

Live to Code

For Christmas my wife bought me a copy of Michael Symon's new cookbook Live to Cook: Recipes and Techniques to Rock your Kitchen. For any non Clevelanders and Food Network aficionados Symon is the head chef and owner of several successful restaurants in Cleveland and Detroit and is also an Iron Chef on Iron Chef America.

Now, I don't consider myself a chef and I don't regularly read cookbooks. In fact the gift may have been a not to subtle hint that I need to bone up on my culinary arts. That said I have taken to Cleveland and enjoy reading a bit about local people doing what they love and the various landmarks the city offers so I opened Symon's book and found something slightly unique. Hidden between the various recipes and techniques are some short descriptions of his inspiration as a chef. What drives him to do what he does and how he just loves to cook. It got me thinking about programming and some conversations I've had with friends in our local community.

In the book Symon speaks of passion, and how in his career thus far the most successful people he has worked with haven't been the best trained or the people with the most experience on the line but rather the people who were most passionate at what they do. It's an observation that carries through to programming and I imagine any other career where people take pride in the craftsmanship of what they do. In my, admittedly short so far, career I've had the opportunity to work with some incredibly talented and bright people and they all had one characteristic in common, they were passionate. You could get them talking for hours ad nausium about software and what makes clean code. How to best structure an algorithm or what new and exciting technique they were learning now.

In the book Symon tells a story of his first restaurant after school. He recalls how it was a small  30-40 seat place and he worked under a head chef who was self-educated. Despite the individuals lack of "formal" training Symon speaks to how much he learned from the man and how he gravitated to him as a mentor because of the passion he showed. His examples are things like an insistence on using fresh garlic and not pre-peeled garlic despite the hours of prep time required and manually roasting peppers instead of purchasing them preroasted. In other words, the details are what mattered to this individual and Symon maintains that he adheres to those same concepts in his restaurants today. This to me is analogous to the Test Driven and Behavior Driven Development movements. In our profession we spend time identifying the details of an application in advance. Planning it out in essence by writing tests against how the code should function. By doing so we ensure a cleaner more quality driven end result.

From a business perspective the analogy continues. In software you have your McDonalds and your Lola's and there really is nothing wrong with being either one. The key is in knowing who you are. If you want to be the Lola of the software world you're going to be focused on quality, delivering the best product your customer asks for and your work will demand a premium because of it. If you're McDonalds then your going to deliver quickly and afford-ably but it may not be as good as the premium competition.

That said I'd much rather frequent Lola than McDonalds.