Skip to content

Instantly share code, notes, and snippets.

View sbellware's full-sized avatar

Scott Bellware sbellware

View GitHub Profile
@sbellware
sbellware / tdd-in-tatters.md
Last active December 20, 2015 00:38
TDD in Tatters - My talk for Lone Star Ruby Conf, Sat Jul 20, 11:20am

TDD in Tatters

Description

TDD has been tattered, torn, twisted, stood on its head, and pounded into an pulp of techno-fetishism. TDD was a game-changer, but the focus in the interceding years has shifted from technique to tools, and TDD has been devolving into a lost art. By tearing TDD down to its bones, this presentation presents TDD in its essence, free of tools, and reinforcing the primary focus on design principles. It attempts to convince you to return to a simpler time when TDD was still about design, and software developers were dutifully steeped in the critical importance of design principles. To avoid being held to any particularly offensive positions, this talk liberally attacks the status quo of testing and contemporary tool-focused TDD in Ruby, while introducing yet-another testing library in Ruby :)

Bio

Scott Bellware was an early adopter of Agile and TDD in late-2000, and has since taught TDD to scores of developers in coaching gigs, workshops, and conferences around North America an

A Typically Bad Experience with Evernote's Support

Ticket Posted to Evernote on Nov 5

I purchased an Evernote Premium Annual plan on Jan 16, 2013. The order number is: [redacted].

My account type listed in my profile on evernote.com says that my account type is free, and there is an in-page offer to upgrade to Evernote Premium.

I expect that an annual plan that begins on Jan 16, 2013 would expire on Jan 15, 2014.

class SomeQuery
  include ModelQuery[User]
  
  ...
end

Note

  • ModelQuery is a module
module Calculate
attr_accessor :num1
attr_accessor :num2
def calculate
self.!
end
end
class Arithmetic < Module
require 'benchmark'
class Thing
end
module SomeMod
end
Benchmark.bm do |x|
x.report do

Abstracts Submited to NDC 2014 in Oslo

Agile Kaizen

Kaizen is the unstated, ever-present cornerstone of Agile Development, but it's if often seen as distant and abstract thing rather than one of the tangible Agile practices, like standups, testing, or estimation. Seen as a "soft skill", Kaizen is in fact it's the hard science, the central motivator, the justification, and the traffic cop of other Agile practices. This presentation delivers Kaizen without the typical esoteric language, and re-casts it as the tangible, central aspect of Agile Development that all other practices pivot around. It presents the tools and techniques of Kaizen that you can put to work in your team right now in the pursuit of ever higher levels of performance.

TDD in Tatters

TDD has been tattered, torn, twisted, stood on its head, and pounded into an pulp of techno-fetishism. TDD was a game-changer, but the focus in the interceding years has shifted from technique to tools, and TDD has been devolving into a lost art. By tea

@sbellware
sbellware / example.rb
Last active August 29, 2015 14:01
Declaring null object default dependencies using @avdi's Naught library, and templated modules
class Example
include NullDefault[:some_dependency]
include NullDefault[:some_other_dependency]
end
@sbellware
sbellware / convenience.rb
Last active August 29, 2015 14:02
Initializers only record parameters
def Connection
def initialize(connection_string)
@connection_string = connection_string
end
def self.connect(connection_string)
instance = build connection_string
instance.connect
instance
end
class Ops::Diag::InfoController < Ops::Diag::DiagController
def index
release_info_file = File.expand_path("#{Rails.root}/config/release_info.yml")
@build_number = '(unknown)'
@build_date = '(unknown)'
@gems = '(unknown)'
if File.exists?(release_info_file)
data = YAML.load_file(release_info_file)