Cascadia Ruby 2013 - Day Two
Note: This post is an un-contexualized, un-edited, & un-proofed bunch of notes taken during Cascadia Ruby 2013.
Andy Delcambre Cascadia Ruby 2013: Ruby Systems Programming
The kernal
- Runs in kernal mode.
- Not your code.
- Can do anything and everything.
Your Code
- Runs in user mode.
- Math.
- Access memory.
System calls
- Ask the kernal nicely to do things.
- Api to kenal mode.
- If it is not in the syscall_table you can not call it.
- Unix has 261 syscalls implemented.
- Windows has thousands listed (implemented/unimplemented).
Resources
- Linux System Programming by Robert Love
- Unix Network Programming by Richard Stevens
- Advanced Programming in the UNIX Environment by Richard Stevens
Davy Stevenson Ruby as Art; Ruby as Science; Ruby as Craft
- Analyses and study of algorithms.
- Algorithm: A set of instructions that will solve a particular problem.
- Fuctional programming in ruby.
- The best code is no code. The best code is code that already exists.
- There is a difference between being correct and being right.
Kerri Miller Cascadia Ruby 2013: Gambling for Rubyists
Every decision is a compromise. We pick postgres over mysql because we feel we are getting a benefeit.
“You are the best” + Be Humble
Jerry D’Antonio code Advanced Multithreading in Ruby
Concurrency
- Blocking IO is one of the first reasons to use concurrency.
- Shared muteable data is bad.
- Future represents actions that take effect at a future time and return a specific value.
- mutex.sychronize.
- Do not block the reactor.
Tools
- Concurrent
- Hamster
- Threadsafe
- Eventmachine
- AMQP
- Celluloid
Sam Livingston-Gray, slides Fluent Refactoring
Definitions
Refactoring
A language that describes ways to make your code suck less.
Fluency
What you can say when you are woken up in the middle of the night with a flashlight in your face.
Levels of Proficiency
- Level 1; Tarzan at a Party; “Beer!” “Good party.”
- Level 2; Going to the party; “Where is the party?” “How do I get to the party”
- Level 3; Discussing the party; “What happened at the party last night?”
- Level 4; Charlie Rose; “Should parties be illegal?”
Patterns
- Guard Clause; Best practices in small talk.
- Flatten Nested Conditionals.
- SRP (Single Responsibility Prinicpal).
- Replace Conditional With Polymorphism.
Read
- Practical Object-Oriented Ruby
- Refactoring
Lightning Talks Apologies if I misspelled anyones names below.
Rex lexer generator
by: Ryan Davis
- ruby_parser lexer - Unmaintainable.
- Oedipus Lex - “This is not your fathers lexer.”
- Massive extensions.
- Self-bootstrapping.
- Uses ruby more directly.
- Predicate methods.
- Action methods.
- Clean state changes.
Focus on the Custard
by: Bethany Rentz
- Put the customer first in the designs.
- You != Your customer.
The Surfers Rule
by: Milan Loveless
- Have Passion.
- No Dare / No Flair. Try things and be innovative.
- Always look outside. Look where you can learn.
- Move before it moves you.
- Never turn your back on the ocean.
- Expect to wipe out.
- Never surf alone.
Speed up your tests with rspec-set
by: Philippe Creux
- FactoryGirl is sloooow.
- rspec-set creates records in the db prior to running transactions.
Seattle.rb
by: Pete Higgins
First Tuesday of every month. Presentation oriented social occasion with “Show and tell.”
All other Tuesdays are hack nights.
seattlerb.org
Regional Conferences
by: Koby Ranquest
Los Angelos Ruby Conference
- Feb 8th.
- Very newbie friendly.
Ruby on Ales 2014
- Bend Oregon.
- The tower theatre.
- March 6th - 7th.
A Cautionary Tale
by: Jason Clark
- Forks not alaways an exact copy.
- Only the thread that calls fork goes to the new thread.
- Locks cause problems.
- Lock doesn’t always release on child process.
pdx.rb
by: Audrie Eschright
- Calagator for pdx meetups.
- ePDX.org.
- PDX employer graph.
Woodshop
by: Scott Windsor
- Build your own Code Climate inside vim.
- Flog inside vim.
- Simplecov inside vim.
- Hack your tools.
- https://github.com/sentientmonkey/vimfiles
Ruby is Broken
by: Nathan Zook
- No one is perfect.
- Should not be able to not use namespaces.
- Method resolution order.
2 Talks omitted (I missed them)
A Game in ruby
by: Robby Clements
- Gosu
- Chungu?
Centralized Logging
by: Ashlegh Baumgardner
- Logstash.
- Logstash sleeps and retrys causes problems.
- Sparsify.
Ruby Testing
by: Amiel Martin
- Testing notifications via led lights.
- DigiSpark.
Sara Blackthorne The Client is Always Right {But Sometimes They Need a Little Help}
Who?
- Who is the intended user group?
- What are their usability needs?
- Who will we test our product with before release?
How?
- How do we determine the best platform?
- Is this a major change or a change in usage?
- How is this product going to best be used?
What?
- What are the key features of this product?
- How do we maintain our usability?
- What do we build to keep our products story consistent with our core vision?
Carl Alviani Not Created Equal: The History and Discernment of Plastics in Product Design
How recyclable are the following products. (Due to processing methods):
- Glass — 34%
- paper — 60%
- Polymer — 90%
1962 — Parkseine was developed to replace Ivory as the elephants were dying off.
1894 — Rayon developed to replace Silk.
1909 — Bakelite developed to replace Shalak. Used for things like telephones, appliances, & pencil sharpeners.
1933 — PVC & Acrylic
1939 — Polythylene & Nylon
1941 — PET & ABS
Real silicone is identifiable by bending it and verifying there is no visible difference with it.
#7 Recycling symbol “Other” is not recyclable.
core77.com & Search: “Not created Equal: A Long (Loving) Plastics Primer”