21st Century C: C Tips from the New School – O’Reilly Media review November 23rd, 2013 by Rick Salsa, 2 Comments

I’ve recently been looking for a new book on C, not wanting to spend the time on read Computer Science type text book. During my search I came across 21st Century C from O’Reilly. Upon first glance at the table of contents, I was intrigued.

This book doesn’t start off like your typically beginners programming book. No ‘Hello World’ type example, no coverage of operators, etc. Instead, the author jumps right into Makefiles, debugging with gdb, unit testing, valgrind and documenting your code. Not an exhaustive look into those topics, but just enough. I was glad to see that he also covered autotools as well.

Beginning with chapter 6, you start to get into the language. I found the remaining chapters to read like tips from an experienced programmer. The author definitely knows his stuff and gives you enough details about why you should do things a certain way. I enjoyed these sections as learned much more than blindly following along in a text book.

I would have like to see a bit more code and examples, but overall it was a decent book. This is book would go well with a beginner’s book on C for those new to the language. For those familiar with C and looking for a better understanding of how to write quality C code, I’d recommend you take a look at this book. It was interesting approach to a book on programming.

January 03rd, 2013 by Rick Salsa, No Comments

View from the office today.

The Little Book on CoffeeScript by Alex MacCaw – O’Reilly Media review November 11th, 2012 by Rick Salsa, No Comments

Coffeescript is all the rage with web developers nowadays and for good reason. If you are wanting to pick up coffeescript and are looking for something more than the overview at coffeescript.org, then look no further than The Little Book on CoffeeScript by Alex MacCaw from O’Reilly Media. At only 62 pages, it is a quick read for anyone with an understanding of JavaScript or programming in general.

Chapters 2 and 3 get you up and running, while chapter 4 talks about how to compile your coffeescript code. The example on how to get a coffeescript application up and running. The author also highlights some useful projects for developing your applications like Backbone, Spine and Stitch.

What I really enjoyed was chapter 5 which takes on a Good Parts of JavaScript talk about things in JavaScript and can trip up newer developers, but also looks at some of the elegant ways that coffeescript fixes the bad parts.

Overall I found The Little Book on CoffeeScript to be a good read. I was able to get through it quickly and using coffeescript in my latest project quickly. I’ve also found myself using it as a quick reference book as well. Don’t wait and longer to buy it:  http://shop.oreilly.com/product/0636920024309.do

MovementU Kelowna February 22nd, 2011 by Rick Salsa, 5 Comments


Pro endurance athlete, Jessi Stensland is coming to Kelowna for a 1 day swim, bike & run clinic (and much more). Jessi has been mentored by Mark Verstegen, one of the top athletic & functional training coaches in the world at Athletes Performance.

Class size is limited to 20-25 people. Cost is $199/person. The session will be held at the Capital News Centre in Kelowna. You can register for the event here:


Here is a more detailed writeup and schedule for class:

SWIM BIKE RUN: Movement Efficiency + Performance

This unique, interactive workshop, designed and lead by professional endurance athlete and movement specialist, Jessi Stensland, is unlike any other multisport education. It is about the most overlooked, yet most important thing you bring to your swimming, cycling and running: YOU.

Held at the top athletic performance training centers across the United States, this full-day experience is designed to enhance participants’ understanding of the body and how to prepare it to perform injury-free and energy efficiently. A dynamic and functional workout will kick-off the day followed by an in-depth discussion of the roles and relationships of the following fundamental elements of athletic performance: nutrition, joint mobility, flexibility, strength, stability, elasticity, cardio capacity and regeneration/recovery, as well as simple solutions on how to integrate them into daily training.

Each of the three sports will be addressed individually with an emphasis on the following:

Proper mechanics for movement efficiency
Common sport-specific biomechanical limitations
Functional and corrective exercises
You will understand better how to create and maintain injury resistance, energy efficiency and power in your performance. Go faster, with less effort, or get a lot more out of the effort you’re putting in.

The workshop will conclude with a regeneration and recovery session followed by Q + A.

Post-workout nutrition, refreshments AND homemade, fresh, mostly organic lunch will be served.


8:30 AM WORKOUT // Dynamic performance warm-up + workout
9:30 AM POST-WORKOUT // Recovery + Nutrition
10:00 AM LECTURE // Fundamental Elements of Performance
11:00 PM MOVEMENT SESSION // Movement Preparation
11:45 PM MOVEMENT SESSION // Running
1:30 PM MOVEMENT SESSION // Swimming
4:00 PM Q + A // WRAP-UP

Again, if you’re interested, leave a comment below. I’m hoping for some time between April & June for the session.

Date selectors for Capybara November 04th, 2010 by Rick Salsa, 1 Comment

If you’ve used webrat with cucumber-rails, you’ll know that you have access to steps like:

[ruby gutter=”false”]
When I select "[time]" as the date and time
When I select "[datetime]" as the "[datetime_label]" date and time
When I select "[time]" as the time
When I select "[time]" as the "[time_label]" time
When I select "[date]" as the date
When I select "[date]" as the "[date_label]" date

Cucumber doesn’t have these steps available for Capybara (** as far as I can see) at this point. Some quick googling led me to creating the following step_definitions file:

[ruby gutter=”false”]
When /^(?:|I )select "([^\"]*)" as the date$/ do |date|
date = Chronic.parse(date)
prefix = "date"

select date.year.to_s, :from => "#{prefix}_#{dt_suffix[:year]}"
select date.strftime(‘%B’), :from => "#{prefix}_#{dt_suffix[:month]}"
select date.day.to_s, :from => "#{prefix}_#{dt_suffix[:day]}"

When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" date$/ do |date, prefix|
date = Chronic.parse(date)

select date.year.to_s, :from => "#{prefix}_#{dt_suffix[:year]}"
select date.strftime(‘%B’), :from => "#{prefix}_#{dt_suffix[:month]}"
select date.day.to_s, :from => "#{prefix}_#{dt_suffix[:day]}"

When /^(?:|I )select "([^\"]*)" as the date and time$/ do |date|
date = Chronic.parse(date)
prefix = "date"

select date.year.to_s, :from => "#{prefix}_#{dt_suffix[:year]}"
select date.strftime(‘%B’), :from => "#{prefix}_#{dt_suffix[:month]}"
select date.day.to_s, :from => "#{prefix}_#{dt_suffix[:day]}"
select date.hour.to_s, :from => "#{prefix}_#{dt_suffix[:hour]}"
select date.min.to_s, :from => "#{prefix}_#{dt_suffix[:minute]}"

When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" date and time$/ do |date, prefix|
date = Chronic.parse(date)

select date.year.to_s, :from => "#{prefix}_#{dt_suffix[:year]}"
select date.strftime(‘%B’), :from => "#{prefix}_#{dt_suffix[:month]}"
select date.day.to_s, :from => "#{prefix}_#{dt_suffix[:day]}"
select date.hour.to_s, :from => "#{prefix}_#{dt_suffix[:hour]}"
select date.min.to_s, :from => "#{prefix}_#{dt_suffix[:minute]}"

def dt_suffix
:year => ‘1i’,
:month => ‘2i’,
:day => ‘3i’,
:hour => ‘4i’,
:minute => ‘5i’

So now you can test the rails date-time select helpers with the above. I’m sure there is probably a better way, but this works and was easy to implement. You’ll need to add the Chronic gem to your test group in Bundler for it to work.

It was inspired by jdfren’s code on github.

New Year’s Resolutions for 2010 January 04th, 2010 by Rick Salsa, No Comments

So far, 2010 is off to a good start. I always like to start the new year off reflecting back on the previous one. For me, I’ve dubbed 2009 the year of learning. I’ve met a lot of smart people and learned a lot of things about life, business, and so much more. For 2010, its going to be the year of doing. To quote a wise warrior, Yoda:

Do or do not. There is no try.

With that said, I thought I’d do something a little different. This year I’m posting my resolutions online, for all to see and call me on. I’ve always come up with a few resolutions in my head. Then I’d never go back and review how well I’ve done. I believe goal setting is an excellent motivation tool, but to be effective, you have to write them down and review them regularly. So, this is my plan this year. So let’s get to it…

  1. Compete in my first triathlon

    I’ve wanted to do this for a few years now, but just haven’t committed to it. Now I feel I’m ready for it. The plan is do something late in the season (late summer, early fall). Not sure if it will be a road or off-road triathlon yet. Within the next few months I’ll decide which one I want to compete in.Along with this will come additional goals leading up to this one. Definitely need to drop some weight and work on my mobility  as well. Swimming is going to be my weakest sport, so I’ll most likely work with a coach on this one to help get my stroke down.

  2. Read more books

    Early in my career, I used to devour books monthly. They were mostly technical books at the time, but my knowledge base soared during that time. Lately I’ve been doing most of my reading online, but I’d like to read more books again.I’m shooting for a total of 10 books by year’s end. I also want to vary it a bit more and not only read tech books. There are a few I’ve got on my Amazon wish list, but I’m always looking for any good recommendations.

  3. Eat out less Make healthier food choices

    I love to eat out! Weekends are usually when I fall off the wagon. Running around with the family, being too lazy to cook, too many excuses to just pick something up or stop into a restaurant.

    This really ties into my first resolution. In addition to cutting down on eating out, this also means less designer coffee and more tea if I’m working at a coffee shop (and no desserts!). I’d also like to add some variety to my diet, and explore some more vegetarian options for my proteins (instead of the usual chicken, meat, etc…)

  4. Increase net worth by at least 10%

    2009 was a good year. The markets started to recover and the strategy my financial planner and I had in place worked well. Some tech stocks paid off really well last year and I see those continuing on their run for a while still. I’m young, not too overly aggressive with my picks, and with the economy on the stateside soon to pick up, I think 10% for the year is reasonable.

  5. Blog more often

    Enough said.

Well, that’s it for now. I’m sure I’ll come up with more as the year goes on, but for now I think I’m off to a good start. All the best in 2010. Now let’s all go out there and crush it!

Not off to a good start… August 19th, 2009 by Rick Salsa, 2 Comments

Ok, so its been over a month since first post promising that I needed to post more. Well, that hasn’t gone so well, but I am gathering some thoughts and will be posting shortly.

Just ordered a Flip Ultra HD the other day, so I’m eagerly waiting for that to come in. Will definitely need to do an un-boxing and a review…

Thanks for stopping by!

Let’s try this again… July 09th, 2009 by Rick Salsa, No Comments

In an attempt to organize my thoughts and share my views of the world with those that care, I’ve realized its time once again to start a blog . So here it is. Links are a work in progress. Enjoy!