Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Do The Work - ScotRuby

Do The Work - ScotRuby

Have you ever run into that problem you are trying to solve, that is tangential to your core business? It’s easy to run off, look for a gem, and use it.

What is harder, is when that gem … isn’t quite right. Maybe you should look for an alternative. Maybe you should fix the gem. Or if your problem is different enough, you can fork the gem

Or maybe you should just stop wasting so much time looking for the “easy” solution, and just DO THE WORK.

Lori M Olson

May 13, 2014

More Decks by Lori M Olson

Other Decks in Programming



    into the trap of avoiding the work, looking for the easy way out.
  2. WRITE A RUBYMOTION APP As a side project, to learn

    more about RubyMotion and iOS Development
  3. WIMBY Wells In My Back Yard So I picked WIMBY,

    or Wells in My Back Yard. That’s a play on NIMBY, or Not In My Back Yard. ! You might call that a garden….
  4. CALMAR, ALBERTA, CANADA • "According to the records, they believed

    that somewhere in that vicinity was a well site," recalled Ms. Beaudry, 45, a mother of two. They guessed right. In her backyard, a metre from her house, crews found a broken, leaking, 50-year-old natural gas well.
  5. BUT WHY? HOW? How is it even possible for people

    to not know they have an abandoned well on their property? ! Once the wells were abandoned, Imperial/Texaco Canada surrendered the lease back to the landowner and consequently no longer had an interest in the lands. Caveats were later removed from the land titles because there was no regulatory requirement that provided for registration of well locations on land titles once activity had ceased.
  6. WELLS ABANDONED IMPROPERLY It was only in the mid 60’s

    that rules and regulations acquired some teeth, and wells had to be abandoned according to well-established, well-regulated procedures.
  7. HOMES TORN DOWN • The re-abandonment of the 1-36 wellbore

    required the acquisition and removal of five Evergreen Crescent properties to accommodate the safe operation of a drilling rig. A quote from the Imperial Oil website, w.r.t. the Calmar incident.
  8. I MUST DO SOMETHING So, having encounter this story, I

    felt I must do something. But what?
  9. DATA. GOT THAT In fact, I spent the better part

    of 7 years immersed in the Oil & Gas data used by most of the Canadian oil industry, and provided by 2 of the biggest data vendors in the business.
  10. LOADS OF DATA There are over 750,000 oil and gas

    wells in Canada, and of those, over 244,000 are abandoned.
  11. YOU SHOULD USE CORE DATA All of my research let

    me to the conclusion that I needed to use Core Data.
  12. CORE DATA in RubyMotion And there-in lies the problem. Not

    just using Core Data, where there are books and tutorials galore, but using it in RubyMotion, not so much.
  13. –@topfunky @charliesome You must be new to Ruby. We write

    16 different independent gems for everything here. ;-)
  14. SO MANY GEMS • motion-sqlite • Nitreon • Magical Record

    • Superbox • Motiondata • MotionModel • CDQ Why yes, in fact, there are a lot of gems. And where there are many options there are so many opportunities to become lost in analysis paralysis.
  15. MAP

  16. PART TIME But I was only doing this little project

    on the side. Part time. Evenings & weekends.
  17. RESEARCH a.k.a. Yak Shaving And so it went. I researched,

    and I researched some more. And then so more. And so it went.
  18. NOTHING WORKS Eventually, I came to a CONCLUSION. Nothing works.

    At least, not for the specific requirements that my application had.
  19. –@scottdavis99 Young C is expending an extraordinary amount of energy

    finding shortcuts rather than just doing the work. Future #convict or #programmer? I saw this and thought… this is me. Instead of just buckling down, and doing the work of figuring out Core Data for myself, I wasted all that time trying to use other people’s code that was not suited to my core requirements.
  20. DIDN'T UNDERSTAND THE GEMS And because I didn’t know enough

    about Core Data, I didn’t really understand how the gems worked
  21. COULDN'T MODIFY THE GEMS And because I didn’t understand how

    they worked, I couldn’t really modify them easily, either.
  22. THE IRONY I tried to use gems as a shortcut,

    only to end up wasting more time than just DOING THE WORK.
  23. –@bketelsen spent 6 hours researching a way to do it

    the easy way, when I could have written it in 3, the hard way. Yup, I resembled this guy too. I wasted 3 weeks of part time efforts, digging into all those gems, so I wouldn’t have to learn Core Data for myself.
  24. DO THE WORK back to the basics So, after all

    that, I needed to go back, and actually spend time figuring out Core Data in RubyMotion for myself.
  25. LEARN THE SDK Because RubyMotion, for all it lets you

    code in Ruby, does not relieve you of the need to learn the Apple iOS SDK’s.
  26. READ THE API And what does that mean? Learn the

    SDK. It meant going back, and actually reading the Apple documentation for Core Data.
  27. READ THE EXAMPLES It meant downloading and reading the example

    code that comes with the API documentation.
  28. FIND MORE EXAMPLES It meant finding some Objective C posts

    about using Core Data (on Ray Wenderlich’s fab site).
  29. HARD PROBLEMS ARE HARD Along the way I (re)discovered… hard

    problems are hard. Most of my requirements turned out to be fairly challenging problems, in and of themselves. Most gems are make tedious things simple. But they don’t really tackle the hard problems.
  30. @SERIOUSPONY On expertise and just how deep the rabbit hole

    goes Most of the gems stop at the “Turns out it’s quite simple”. ! Most of my requirements drove me all the way into “OMG complex!” ! * https://twitter.com/seriouspony/status/419887010388537344/photo/1
  31. Turns out, I was sort of glad that none of

    those gems worked for me. I learned SO MUCH.
  32. I KNOW! I’LL WRITE A BOOK NOW! So much in

    fact, that I ended up with enough material to write a whole book on the subject of Core Data in Ruby Motion.
  33. DOING THE WORK The moral of this long and involved

    tale that is somewhat embarrassing and somewhat uplifting is that when the problem you are attempting to solve is core to your application, sometimes what you need to do is just sit down, and do the work.
  34. EXPERT BEGINNER How Developers Stop Learning: Rise of the Expert

    Beginner This is where you learn just enough to think you are proficient, but really, you never get to be an expert at anything. Lots of developers fall into this trap. We need to dig a little deeper, avoid the easy solutions, and do the work. ! http://www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner
  35. @SERIOUSPONY On expertise and just how deep the rabbit hole

    goes The expert beginner gets stuck in that trough, and never realizes there is more to learn ! * https://twitter.com/seriouspony/status/419887010388537344/photo/1
  36. LEARNING IS ITS OWN REWARD Ok, sure it’s a cliche,

    but that doesn’t make it less true. There is deep satisfaction in deep diving into learning, and becoming truly expert in something.
  37. BELONG BY DOING This is a great quote. I wish

    I could track down where it came from. ! Do the work.
  38. CORE DATA IN MOTION http://coredatainmotion.com And of course, maybe you

    too, will some day discover that you have learned enough about a difficult topic that you have enough material at your fingertips to write a book.