MWRC
Giles Bowkett - making some music with ruby Archaeopteryx
- Giles Bowkett: Archaeopteryx: A Ruby MIDI Generator
- learn probability matrix
- google is easy if you understand prob matrix
- google spell check in 21 lines of python
- wonder how easy OCR would seem in this context?
- don't understand python community.... why are there not more dick jokes about pythons?
- how is there not a web framework called trouser snake?
- oh yeah... better talk about lambdas
James Golick - Cooking with Chef - @jamesgolick github.com/jamesgolick
- Chef: Quick and Tasty Ruby Powered Server Configuration
- sysadmin work is boring
- too many config languages
- amazed if anyone can get nagios working on a consistent basis
- ues recipes to install packages
- recipes written in ruby
- create services -> status, restart, reload, etc.
- templates to create config files
- erb
- notifies restart if config changes
- autoreload on save very handy for things like dynamic lists of ips that change when you start a new EC2 instance
- makes setting up stuff like haproxy and heartbeat easier
- security
- easy to include iptables
- always turn off password ssh logins - easier to remember when part of your cookbook
- look into chef server and chef client
Joe Damato - RVM
- RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation
- RVM gemset - different gemsets for the same ruby version per project
- create rvmrc to switch env automatically when you cd into a project directory
- export gemsets?
- should you use gemsets or just bundler
Loren Segal - Documentation with YARD
- Yet Another Ruby Documentor
- Talk about documentation in general
- Documentation to help you think about your API
- What makes documentation good?
- consistency -> pick a style and stick with it
- correct -> it can be wrong and should be audited
- coherent
- YARD
- meta-data
- @param [Symbol] req_type :get or :post
- ....
- yard-respec
- shows rspec specs alongside method docs
- yard-sinatra
- shows your routes for api
Michael Jackson - Rack for web developers
- Rack: a Ruby Webserver Interface
- Read the Spec
- blah, blah, blah
- rack is cool in that it allows web frameworks to communicate with web servers, but not sure you care that much unless making a web framework
Yehuda Katz - Modularity - Lessons learned from Rails 3
- Try to become modular too soon and you will be wrong
- Become modular once lack of modularity is hurting you, then decouple
- Constants -> Globals
- router.url_for in rails 3
- easier to track down where instance variables came from than Globals
- eliminate things that are global
- tests are the canary in the coal mine
- instead of hard coding contants, pass things around
- be subspicious of Contant.foo
- stop caring about object allocations
- object allocations are essentially free
- Render
- Controller -> ViewPathSet -> ViewPath -> Template (on file system)
- Used to assume actual file path
- hard to cache
- Template.new takes a path
- Now
- Caller -> LookupContext -> ViewPaths -> PathResolver-> Resolver -> Template
- Template.new takes a source
- Could overide PathResolver to pull from database or S3 or something
- could be useful in making a CMS system with Rails
- Use Modules
- don't put methods you want people to be able to override in a class, make a module
- then you cna call super
- Use ActiveSupport::Concern
Paul Sadauskas - HTTP
- read the spec :-)
- prevent the requests that you don't have to answer
- Persistent Connections - so you don't have to create a new TCP connection for every request --- keepalive=onC
- Caching
- how do you decide when something is stale?
Jeff Casimir - Ruby Processing
- dynamically generate images in ruby app
- uses jruby
- first built to create verticle column headers
- Distributed Programming with Ruby -> to learn how to send jobs to ruby processing from rails
- Beanstalkd -> simple fast background processing -> brew install beanstalkdÂ