The Ruby Rogues show

The Ruby Rogues

Summary: Rubyist.where(:rogue => true).limit(6).all.talk(:about => Topics.where(:awesome => true))

Join Now to Subscribe to this Podcast
  • Visit Website
  • RSS
  • Artist: DevChat.tv
  • Copyright: 2014 Intentional Excellence Productions, LLC

Podcasts:

 034 RR Benchmarking and Profiling | File Type: audio/mpeg | Duration: 1:03:55

Panel Aaron Patterson (twitter github blog) Avdi Grimm (twitter github blog book) Charles Max Wood (twitter  github Teach Me To Code Rails Summer Camp) David Brady (blog twitter github ADDcasts) Josh Susser (twitter github blog) Discussion Benchmarking Ruby's Benchmark library Measuring speed Managing maintainability Startup and test speed Evan Phoenix's benchmark suite gem Benchmark accuracy What are you measuring? What else is happening? Wet stones and dry stones Don't build toward your benchmarks. Let your benchmarks tell you what's going on. Printing benchmarks to the terminal - measures the write to the terminal too rubyprof code coverage tangent require 'coverage' for code coverage simple_cov perf tools dtrace New Relic Scout sampling profiling Test the benchmarks you're given Communicate the process Aaron goes into Rails' startup time profiling (blog post) to_s sub-shells (shelling out to find or run commands) finding javascript runtimes using the gemspec.erb method (from Dave) Picks Divvy (Josh) How the Universe Works (Josh) Freakonomics (Dave) Predictably Irrational (Dave) Freakonomics 2 (Dave) Size-up (Dave) The Dave Ramsey Show (Chuck) The Entreleadership Podcast (Chuck) The Adventures of Merlin (Chuck) George Foreman Grill (Aaron) Pragmatic Thinking and Learning (Aaron) Fantastical (Aaron) Reg Braithwaite's Combinators in Ruby (Avdi) Burn Notice(Avdi)

 033 RR Book Club – Eloquent Ruby | File Type: audio/mpeg | Duration: 42:51

Panel Russ Olsen (twitter russolsen.com eloquentruby.com designpatternsinruby.com) Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussion Eloquent Ruby Design Patterns in Ruby until Eloquent Ruby is aimed at being your second Ruby book metaprogramming Beginner vs. Advanced Method length Explicit returns The Weirich rule Design Patterns closures around filter metaphor dragging along scope variables Picks think like a git (Avdi) weekly standup with non-team members (Avdi) e-mealz.com (Chuck) iWork (Chuck) The art of speaking (James) Green Day Blue Grass Zoe Keating (James) Once Cello X 16: Natoma(James) Marian Call: Got to Fly (James) Balsamiq Mockups (Josh) Skitch (Josh) Drag to Pivotal Tracker (Josh) Get out with people who are trying to learn Ruby (Russ) WriteRoom (Russ) Ukulele (Russ)

 032 RR Ruby Antipatterns | File Type: audio/mpeg | Duration: Unknown

Panel Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) David Brady (blog twitter github ADDcasts) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussion rescue nil Exceptional Ruby terniary operator as a guard clause Law of Demeter andand turtles! unless...else... method_missing respond_to? super mixin modules subclassing/inheritance defined? "Never use a symbol to do a method's job!" inheritance from Core classes inherit from Struct.new(...) terniary operators that cause side effect methods rather than simply returning values test ? true : false !! for boolean Don't override #nil? Picks Pretty JSON (chrome plugin) (David) simpleform gem (Josh) netti pot (Josh) Pragmatic Thinking and Learning (James) Getting Things Done (James) Pomodoro Technique (James) Pomodoro Technique Illustrated (James) Star Wars Moleskine (James) Evernote (James) yojimbo (James) Simple Note (James) workflowy (James) totalfinder (Chuck) Business Tech Weekly (Chuck) 48 Days Show (Chuck) No More Mondays Show (Chuck) Obi Wan Kenobi (David)

 031 RR Code Reading | File Type: audio/mpeg | Duration: Unknown

Panel Avdi Grimm (twitter github blog book) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussion Wittgenstein's ladder Software Archaeology with Dave Thomas The Rubygems.org source Picks Apple Store Personal Pickup  (Josh) Build Awesome Command-Line Applications in Ruby  (Avdi) Test-drive the development of your command-line applications  (Josh) GALAXY Tab 10.1  (Avdi) Alfred  (James)  

 030 RR Software Craftsmanship with Noel Rappin | File Type: audio/mpeg | Duration: Unknown

Panel Noel Rappin (twitter blog) Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussion Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman Software Craftsmanship SCNA Glenn Vanderburg's RailsConf talk Apprenticeship Programs Groupon Obtiva Code Retreats Global Code Retreat day Software Craftsmanship Manifesto Dave Hoover's Apprenticeship Patterns book Capability Maturity Model omphaloskepsis: the contemplation of one's navel (Thanks, Josh) Picks Our Troops! (James) Math (James) Innumeracy (James) Proofiness (James) 101 things everyone should know about math (James) Danica McKellar Rails Test Prescriptions (Pragmatic Programmers) (Avdi) Olbas Tea (Avdi) MailCatcher (Avdi) Bootstrap (Josh) Star Trek The Animated Series - The Animated Adventures of Gene Roddenberry's Star Trek (Josh) Diane Duane (Josh) Diane Duane's blog post about the Door into Starlight? (Josh) Textastic (Noel) The Middleman: The Complete Series (Noel) Crossword Light (Chuck) USA Today Crossword (Chuck) LA Times Crossword (Chuck) Acorn (Chuck)

 029 RR Keeping Up with Gowalla | File Type: audio/mpeg | Duration: Unknown

Panel Adam Keys (twitter github therealadam.com) Charles Max Wood (twitter github Teach Me To Code) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussion Gowalla Ruby on Rails Amazon EC2 Postgres Memcached Resque Redis Cassandra Solr Deploy several times a day Anyone with commit rights can `cap deploy production` Feature toggles James Golick's rollout gem Pride in your work Empathy for users Feature branches Adam's blog posts Relentless Shipping Your FriEnemy the ORM The Current and Future Ruby Platform Chronologic - You Put Your Feeds in it Minimum Viable Product Streamlining your feature set Measurements/Statistics Double writes and dark reads New Relic Graphite statsd Eager Loading "Log profusely and get handy with grep, sed, and awk" Picks Quicklook (Josh) qlmarkdown (Josh) Occupy Wall Street (Josh) Learn of the command line tools in linux (James) grep (James) bc (James) bc article (James) xxd (James) command line magic on Twitter (James) backbone.js (Chuck) Apache Software Foundation (Chuck) Classic Albums - Stevie Wonder: Songs in the Key of Life (Adam) The Promise (Adam) EconTalk (Adam) NPR: Planet Money (Adam) Evan Weaver's Distributed Systems Primer (Adam) Java Concurrency in Practice (Adam) iTunes U: Econ 113 from UC Berkeley (James)

 028 RR Beyond the Web | File Type: audio/mpeg | Duration: Unknown

This episode was recorded at the Ruby Midwest Conference.

 027 RR Teaching Ruby | File Type: audio/mpeg | Duration: Unknown

Panelists Mike Clark (twitter github Pragmatic Studio) Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussed in this Episode Classroom teaching Pair Programming Mentoring Online Learning Build something Training at Conferences Rails Guidebook Programming Ruby by Dave Thomas Pragmatic Studio Training Ruby Talk mailing list Course preparation People coming to the language may not know how to program Are we beginner friendly? Why's poignant guide shoes learn to program book tryruby.org kids ruby Find a way that works for you to get started, then set a real goal Don't worry about learning syntax, learn to think about problems Syntax isn't something you can ignore, but it's not the most important part It's important to remember what you're doing and what it means Blow your mind pattern Enumeration protocol partition irb getting little wins REXML Picks Ruby 1.9.3 (Avdi) Plantronics 995 wireless headphones (anti-pick) (Avdi) testfirst.org (Josh) MagLev (twitter) (Josh) Ancient Inventions documentary series (Josh) sendgrid (James) gatling_gun gem (James) redcar ruby editor (Mike) instacast (Mike) Bloons Tower Defense 4 iPhone App (Chuck) Ruby Show (Chuck) Ruby5 (Chuck)

 026 RR Pair Programming | File Type: audio/mpeg | Duration: Unknown

Panelists Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) David Brady (blog twitter github ADDcasts) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussed in this Episode Driver/Navigator vs Driver/Driver One person writes a test, the other makes it pass (Ping-pong pairing) It can be more productive Code review Shortens code review cycle Higher engagement Raises the quality floor Pairing effectiveness Less likely to rabbit hole We learn from each other Better code quality Transmitting information Lowers your bus number Territoriality and knowledge silos Learning new things from people who know how to do them better Challenging peoples' assumptions Ability to roll new teams in Pass on programming practices and culture Lower defect rates Fewer failed launches Maintainability is higher To get started: Have a neutral setting for pairing. Location. Software. etc. Use a text editor you're both comfortable with. Use driver/navigator. Communicate well. Keep your partner apprised of where you're going Pair programming is a learned skill You have to get your ego in check Reduce barriers to collaboration Picks Google Plus Hangouts (Avdi) Wide Teams Podcast (Avdi) Qido (David) Dove Men's Care Products (David) Castle (On Amazon)(James) subtlepatterns.com (James) Lying by Sam Harris (James) RemotePairProgramming.com (Josh) How to do your own object creation methods (Josh) Adventures of Merlin (On Amazon) (Josh) Meeting People in the Community (Chuck)

 025 RR Logging – I Do Not Think It Means What You Think It Means | File Type: audio/mpeg | Duration: Unknown

Panel Avdi Grimm Charles Max Wood James Edward Gray Tim Pease Discussed in this Episode Any message of note generated by your application A message of note is something the conveys meaning or has importance to the developer Log4J Debugging "puts" debugging Debuggers puts Scroll blindness grep log levels logging log appenders Each object can have its own logger Set interesting classes to debug and everything else to info or warn Global loggers Do the simplest thing you need until it no longer works for you Set up rolling file appenders Ruby's core Logger class logrotate shared file locks exclusive file locks rotation notation by number or by date copy then truncate when rotating logs - maintains the file reference signal to change log level to debug Only send FATAL messages when I'm about to kill the program An ERROR is "something bad has happened, but I can work around it" WARN - "this problem occurred" INFO - "the program is still running. I'm doing this and this and this." DEBUG - "information on where things might be going wrong." You should be between every other line being a log message and having no logging We like seeing the SQL in the Rails logs. Track interactions and requests to other services Log formatting Never create your date stamp format. EVER. EVER! ISO8601 Datestamp format standard Format messages for the consumer. Pretty printed for users. JSON for software. Splunk Newlines in log messages? Log context (to keep track of where you are in the application) Include the process id (PID) in forked applications How do you group messages related to the same request? SASS How do you deal with logs from different applications in different formats? SLF4J Where should I log to? A flat file? database? Twitter? syslog servolux Picks repl.it (Avdi) screenr.com (Avdi) Freakonomics Radio (James) RadioLab (James) Apache Kafka (Tim) Community and Thanking People (Tim) Knowing your tools (Chuck) Linux (Chuck) Bash Shell (Chuck)

 024 RR Best Practice Patterns Follow Up | File Type: audio/mpeg | Duration: Unknown

Panel Avdi Grimm Charles Max Wood James Edward Gray Josh Susser Discussed in this Episode Smalltalk Best Practice Patterns Converter Pattern Converter Constructor Pattern to_s Date.parse Method Object Composed Method Working Effectively with Legacy Code each vs do Collections Ruby's Enumerable Iteration Method to_enum Constant Method Pluggable Selector Pluggable Block rbtree Ruby Set Ruby SortedSet Intention Revealing Message "A comment is a lie waiting to happen." Ruby's

 023 RR Book Club: Smalltalk Best Practice Patterns with Kent Beck | File Type: audio/mpeg | Duration: Unknown

What is the rule or pattern? Kent said, "I am in terror of not understanding stuff." Learn to feel good about ambiguous situations. "Most of the problems being dealt with by programmers are caused by programmers." Programming at its best is an act of empathy. "Patterns are what you get when you run out of language." Composed Method Double Dispatch coerce Collection management Know your language features Ruby and Smalltalk solve common problems. Shortcut Method Naming patterns Question: I recognize some ideas from SBPP in later works by other authors, e.g. I think “Clean Code” by Robert Martin can be seen as the heir to SBPP. Do you agree? Question: What’s your opinion about the future of Smalltalk? Question: Do you think the latest Smalltalk’s community efforts such as Pharo, Seaside, Amber (previously known as JTalk), etc. could put Smalltalk again in the limelight? Question:  Do you think Smalltalk is worth learning by current programmers? Objects are just an inch under the class. Question: I thought I heard a couple of years ago that you were working on a “Ruby Best Practice Patterns” book with one of the ex-Hashrocket guys. Any truth to this? Any plans for making a ruby version of this book? Question: Any chance of an e-book version of SBPP appearing? Question: How does he balance between learning new or current things versus going back to old (say more than 10 yrs old) publications? Picks SQL Cookbook(David) Trees and Hierarchies in SQL for Smarties, (The Morgan Kaufmann Series in Data Management Systems)(David) TDD Videos by Kent Beck on PragProg (James) keyword params for Ruby by Avdi Grimm (James) steampunk laptops (James) coderwall (Josh) pinktocat shirt (Josh) priceline.com (Avdi) Gregg Pollack screencast (Avdi) eXMP - rcodetools gem (Avdi) Rooibos tea (Kent) d3 project from Michael Bostock (Kent) Shapes, Flow, and Branches by Phillip Ball (Kent) railties Heil PR-40 Hivelogic Podcasting Recommendations PodcastAnswerMan.com

 022 RR When to Use Modules | File Type: audio/mpeg | Duration: Unknown

This Week's Panel  Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Discussed in this Episode Articles mentioned by James: http://twitter.com/#!/rbates/status/105705683751669761 http://twitter.com/#!/rbates/status/105706035548930048 http://blog.steveklabnik.com/2011/09/22/extracting-domain-models-a-practical-example.html http://blog.steveklabnik.com/2011/09/23/more-rstat-dot-us-refatoring.html Destroy All Software Cheating Multiple Inheritance Namespacing Mix-ins Code Organization DRY Principle ActiveRecord's create and create! methods Code's primary purpose is the conversation it has with the reader Put methods in a place where we can look at related methods together method_locator using Module included hook include extend to_enum method_missing delegation and forwardable libraries delgate objects When to use modules shared functionality managing delegation grouping like functionality only including a module when you need the functionality limit my black magic namespacing replace a method breaking down into more granular business objects Destroy All Software There is a performance tradeoff when you include a module (it flushes the method cache) Picks Speakerdeck.com (Josh) greplin.com (Josh) A Fire Upon The Deep (Josh) A Deepness in the Sky (Josh) The Children of the Sky (Josh) Peter Cooper's Ruby 1.9 Walkthrough Video (James) KdenLive (Avdi) Org2Blog (Avdi) Instructure Canvas (open source version) (Chuck) Vimeo (Chuck)

 021 RR REST Done Right with Steve Klabnik | File Type: audio/mpeg | Duration: 1:11:46

 Panelists Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) David Brady (blog twitter github ADDcasts) James Edward Gray (blog twitter github) Steve Klabnik (blog twitter github) Josh Susser (twitter github blog) Discussed in this Episode What is REST? Addressability AJAX Architectural style for building systems Fielding's REST Paper Client/Server Stateless Caching Uniform Interface Code on Demand HATEOAS HTML yields a larger payload than a binary protocol Stateless enables scaling because with all required information in the request it can go to any server prepared to handle it. Cookie-based sessions lean more toward stateless The PUT HTTP verb is misconstrued by Rails PUT does not mean "edit" it's an "upsert" (create or update) PUT is idempotent POST is more generic and non-idempotent Powerful Caching You are supposed to PUT the entire resource rather than the delta. Picks Confreaks (Josh) Klout (Josh) Ruby Koans (Avdi) Ruby Dcamp (Avdi) barcamp (Avdi) rails camp (Avdi) Execution in the Kingdom of Nouns (Steve) Haters gonna HATEOAS (Steve) Destroy All Software (Steve) Yahoo - REST-Discuss (Steve) Stevey's Drunken Blog Rants™ (Steve) Representational State Transfer (REST) (David) Untangled (Steve) Class Construction in C and C++ (David) Structure and Interpretation of Computer Programs (David) Structure and Interpretation of Computer Programs, Second Edition (David) Restful Web Services (James) Open Courseware of SICP: Structure and Interpretation of Computer Programs (David) Google Docs version: Structure and Interpretation of Computer Programs (David) PDF: Structure and Interpretation of Computer Programs (David) Jim Weirich on SICP at Gogaruco 2010 (Josh) Stack Overflow (Charles) Battlestar Galactica (Charles)

 020 RR Object Oriented Programming in Rails with Jim Weirich | File Type: audio/mpeg | Duration: 1:09:13

Panelists Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code) David Brady (blog twitter github ADDcasts) James Edward Gray (blog twitter github) Josh Susser (twitter github blog) Jim Weirich (twitter github blog) Discussed in this Episode What is Object Oriented Programming? If Ruby or Rails programmers aren't programming in an object oriented way does it matter? The goal isn't to do OO for OO's sake. Polymorphism Tell, don't ask Encapsulation Case switching on the object's class can be refactored to take advantage of Polymorphism Law of Demeter: Am I allowed to know this? Single Responsibility Principle Ask "What does this object do?" rather than building around the data contained in the object. Presenters (The Presenter Pattern) Steven Kabnik's Post on Object Oriented Programming and the Presenter Pattern in Rails The problem with Helpers In OO, you're allowed to add more Objects (or Classes) Building your models without referencing ActiveRecord Business objects that reference ActiveRecord data access objects Object Thinking The database is the last bastion of non-object oriented thinking Behavior centric vs data centric design The impedance mismatch between the database and the object oriented designs Inheritance Object Oriented Design centers around maintainability and complexity Don't use generators Create classes and evolve them into models as you need the persistence Rather than asking for data, tell a class to do something for you Three small things to watch out for: Switch/case on class Arrays and hashes or arrays of hashes of arrays (Primitive Obsession) Subclassing Array or Hash forwardable delegate Don't inherit from String Enumerable module Rake's FileList Skinny Controllers Is REST simply a way of pulling the impedance mismatch from the database all the way up to URL's? Picks RailsBridge workshops (Josh) Ryan Tomayko's blog post on Unicorn (James) The Unix System Programming with Ruby list (James) awesome_print gem (David) vimcasts.org (David) hub (Avdi) AeroPress Coffee and Espresso Maker (Avdi) Institute of Awesome (Chuck) Bloons Tower Defense 4 (Chuck) World of Goo (Chuck) Writing Solid Code (Jim) Ukuleles (Jim) Jake Shimabukuro

Comments

Login or signup comment.