The presentations will be put on the web by ConFreaks.
Day 1
(I missed the first few talks on Day 1)
Andrew Shafer
- Puppet
Notice EC2 reference - servers for $.10/hour
Jeremy Hinegardner
- FFI (Foreign Function Invocation)
Brian Marick
- TDD GUIs Ruby/Cocoa
David Richardson
- Machine Learning
Jeremy Mcanally
- DSLs
e.g. Puppet, Cucumber, ActiveRecord, Rails templates, RSpec
- Specific. "The whole universe" isn't really a specific language.
- Consider your audience
- I like terse. No Finglish allowed.
- Well-built library, separate DSL. To me, the DSL shouldn't be the only way to access the logic. (Makes testing more decoupled, anyway)
- Implementation patterns
- Method sequence. Simple, doesn't require a lot of context maintenance. Not very powerful. No strong context.
- Method chaining (Return new obj; return self). Pros: Easy, quite powerful, can keep state in single obj. Semantic (You don't know what order the methods are supposed to be called in). Can get unwieldy.
- Dynamic dispatch (method_missing). Excellent for DSLing another API. Easy to compose complex DSLs. Cons: Slooooow.
Closures & nested closures (e.g. RSpec, Ambition). Creates context easily. Cons: Extra syntax chrome.
- Proxy objects (Dynamic dispatch on crack)
- Macros (e.g. attr_accessor) even slower than dynamic dispatch, namespace junk.
- Composition (e.g. Rspec + Cucumber + Rails). Cons: namespace collisions.
Lightning Talk: GregoryBrown (Ruby Best Practices), L10n in Ruby 1.9 - Gibberish::Simple. (Notice Sinatra UI)
Lightning Talks
Simon ?, Tap - Task Application (Workflow, with forks & merges)
Jacques Crocker, AppConfig (Rails/Merb)
?, Log into my mailbox and delete all the emails that have microsoft-formatting in them
?, Redis (Key-value database; persists asynchronously). Smokin' fast.
- ? Ford, Rubinius
? Woolley, GemInstaller
- ?, text to speech cgi script. "say" is built into OS X.
Corey Donohoe, hancock Single Sign On for merb.
Day 2 Danny Blitz (Daniel Philpott)
- Herding Tigers - Software Development and the Art of War
- "You're not Agile just because you adopted a taxonomy"
- "Glorify the lower levels of the organization"
- Tiger team: 4 dev, 1 QA, 1 Automation, 1 product staff, + DBA, sysadmin, UI, etc
Recommended: Warfighting
Adam Blum
Rhodes - Building ruby applications for mobile phone platforms
Jay Phillips
Adhearsion - Creating telephony apps
- For example, control your XBox from afar by pressing phone buttons
Demo didn't work here at the conf - netwrk?
Competitors/similar FreeSwitch Asterisk
Adam Dunford and Jason Edwards
- Improving the usability of rails apps
- Gilb 1988 For every $1 you spend on usability, you reap a $10-$100 benefit.
Structure: organize, prioritize, group, separate, differentiate (e.g. Craig's list)
- "Choices are headaches" - Take responsibility; shift the headaches to you, not the user
Ben Mabey
- Cucumber, Outside-in development
This cat slide reinforces the point that these tests are in natural language
- No, we don't always need to do every single kind of test. But if you're asking "Should I do (this kind of) test?" then the answer is "yes" because if you're asking, then you don't know, and if you don't know, you should do them.
- You do not have to use the "As a... (etc etc)" BDD format.
Philippe Hanrigou
- What the ruby craftsman can learn from the Smalltalk master
Hackers and Painters Software creation is an artistic endeavor
- Example of Picasso, still studying the grand masters
Smalltalk master Kent Beck Smalltalk Best Practice Patterns
- Naming is crucial - Role Suggesting Name. Example, User and (blog) Post. Post.user. Instead, say Post.author.
- Cognitive Scalability - Example, to_f conversion. Look at String! We're stuffing the poor little String with things it doesn't really need to know about. If String is central to your code, go the other way. Like File.new "file/path"
- Reduce code to the essence - Example, haiku. Don't confuse "concise" with "terse" (thinking of Perl). Shortcut constructor method. Example, Point.new 45, 23 or 45.at 23
- Symmetry
Paul Sadauskas
DataMapper. ORM. Lightweight, eager loading, plugin architecture, adapters.
The ORM for Merb (instead of ActiveRecord)
James Britt
- Wii with Ruby
- Jruby. WiiUseJ. Get Bluetooth working however you can.
Alan Whitaker
- La Dolce Vita Rubyista, urug video. leadmediapartners.com
"Resistance hates it when we turn pro." The War of Art
"I wanted Ruby to be like clay in a child's hand" Matz Flow, Pomodoros
Engagement The Power of Full Engagement" Managing energy, not time, is the secret. Top tennis players have a way to relax in between points. Build renewal into your life.
- "Matz is nice and so we are nice" MINASWAN
Jim Weirich
- What technical books have you read recently? What do you look for in a good design?
- Rutherford and oatmeal... The oatmeal must have raisins?
- Four forces. Grand Unified theory?
- Design principles. SOLID, DRY, Law of Demeter, etc. Is there a GUT of sw dev?
Structured Design. In the 70's. Myers Composite/Structured Design Gave us the concept of three levels of coupling. control coupling - one of the parameters acts as a flag that chooses logic
90's OO. We get the concept connascence. What every programmer should know about object-oriented design the third part of the book. Rule of Locality: As the distance between software elements increases, use weaker forms of connascence.
Lightning Talks:
- Mike Moore, the book drawing lottery app
Aman Guptas, eventmachine Run pieces of your program asynchronously.
- Dana Gray, Tips for Regular Expressions.
Jake Cahoon, Twittirc. Using Feedzirra. Poll Twitter atom feed, parse out the mwrc entries, send them to irc chanel.
(some others)
- Brian Marick, Micro-Scale Retro-Futurist Anarcho-Syndicalism.
- LA Ruby Conf
- Justin Grammens, adhearsion demo
Jeremy McAnnally, ??
- Pat Eyler, Ruby brigades. James Gray called Pat "the Ruby den mother".
Others taking notes:
