Ruby Midwest 2011 - 11/4/11
- http://olabini.com/
- http://j.mp/rate-rubymidwest
- http://blog.therubymug.com/blog/2011/07/26/the-install-osx-lion.html
- https://github.com/vlandham/ruby_midwest_2010_notes
- https://github.com/search?authenticity_token=45bdd08f181e986ff3d0ea4b4abe480be350e0b8&q=rubymidwest&type=Everything&repo=&langOverride=&start_value=1
- samuelmullen.com
- myceps.com
- https://docs.google.com/document/d/18KLBp9JwZ7XXKz1D7-gqvmLQZlGUocarNk9XKDWPYOc/edit?pli=1
- http://j.mp/survey-rubymidwest
- http://www.flickr.com/photos/lodestone/
- http://www.flickr.com/photos/lodestone/6315485750/sizes/l/in/photostream/
- http://mbleigh.com/rails-is-the-new-rails
- Personal asset gem -- a nice bundle of repeatedly used stuff
- http://ethangunderson.com/
- Groupon: Average size to ginormous
- https://github.com/dsboulder/query_reviewer
- https://github.com/trptcolin/consistency_fail
- vertica for large reporting on mysql
- roboto - ruby mobile dev
- http://rubyrogues.com/
- github uses their main repo with branches for pull requests (particularly simplifies perms)
- github uses oauth for access to things
- ex. cucumber will get you highlevel view of tests
def crazy_insane_method
return clean_tested_method if condition
#crazy shit here
end
- @bscofield
- ISOLATE apps!!!
- running the full stack ends in many services
- foreman (seems to run on one machine)
- specialization -- should only run on their own..
- redundancy
- moar extraction
- sharing datamodel between apps
- leandog - company on a boat
- bus number = number of people to get hit by a bus before you are screwed...
- pair programming - helps share info
- why dont we pair?
- ...
- follow GeePawHill ?
- @AngelaHarms
- http://myAgileEducation.com
- Dec. 3 - code retreat
- run events, grow user groups...
- Intentional communities!
- minaswan = Motts (sp?) is nice and so we are nice
- Community template: warm fuzzy...
- http://bit.ly/event-organizing-101
- http://headrush.typepad.com
- @mghaught
- http://bit.ly/rate-rmw-community
- coding coffee (centered around "same place, same time")
- http://martyhaught.com/articles/2011/11/02/event-organizing-101/
- Architecture "The Lost Years"
- High level architecture should scream its intent (e.g. look at blueprints for different building types)
- Ivar Jakobson
- User <-> Delivery Mechanism -> Boundaries (Interfaces) -> Interactor <- Entities
- For testing: Delivery mechanism can be replaced...
- Trigsby Ringscaller (sp??) - Creator of MVC
- Controller -> Model <= (Observer relationship) View
- Fitnesse ?
- Wikis - invented by Ward Cunningham
- "A good architecture allows major decisions to be deferred!"
- "An architecture diagram is where you can draw lines where all crossing dependencies go in the same direction"
- TDD: Tests are there to help refactor, they should be fast!
- 8thlight.com
- http://matt-oncloud.rhcloud.com
- Cloud foundry: similar to: heroku, orchestrate, phpfog, ...
- https://github.com/openshift
- Headless selenium webdriver
- @davetron5000
- optionparser and gli (https://github.com/davetron5000)
- ronn == manpages in markdown
- http://bit.ly/gli-gh
- http://bit.ly/cli-slides
- http://naildrivin5.com/blog
- http://awesome-cli-ruby.heroku.com/
- Avdi Grimm @avdi avdi.org
- https://github.com/avdi/cowsay
- Eric Redmond @coderoshi crudcomic.com
- http://twitter.com/#!/coderoshi
- http://mongohq-blog.heroku.com/blog/2011/11/03/ruby-midwest-conference-and-mongohq/
- natural language mapping to sentiement... library?
- libsvm -- svm lib written in C
- source on github: https://github.com/hexgnu/rmw-svm
- http://matthewkirk.com
- Array object in ruby, to java (symbol int (or type you want))...
- tell bad news quickly (e.g. dont keep it held in...)
- dont sugar coat anything
- hunt out edge cases first... the rest of the work should be easier
- https://github.com/JEG2
- faraday + typhoeus (have to wrap the whole thing
in_parallel
) - VCR ? turning off dependencies on the net
- http://speakerdeck.com/u/jeg2/p/life-on-the-edge
- @drnic
- engineyard todo.rb --> trinidad
- http://speakerdeck.com/u/drnic/p/high-performance-ruby-threading-versus-evented-ruby-midwest-edition
- David Czanecki @czarneckid
- @agoragames
- @mlg => MLB, NBA, etc. of e-sports
- Ola Bini: "Just add scaling"
- Early: Deploy early in the day, early in the week
- Documentation: make steps to follow! e.g. "Creating a new guitar hero title.txt"
- "Overhead" (e.g. managers) - valuable for managing the client
- Data: (e.g. Game integration): Queues!!! (guitar hero uses sparrow) (and workers?)
- Rescue - (killer app: rescue web - monitor and understand what is going on)
- Optimize for ... (e.g. games: school, vacations/holidays, ...)
- Not all queues are equal - understanding the heavy use can let you prepare for heavy usage
- https://github.com/agoragames/leaderboard
- External services: integration!!
- impose limits!! (they can be artificial, but they serve a point!)
- rate limits
- timeouts (60s is too much, 10s and ramp back!)
- impose limits!! (they can be artificial, but they serve a point!)
- Monitoring and infrastucture
- monit -> runit
- Munin
- Infrastructure validation
- using cucumber: e.g. mysql running, slave running (how far behind?)
- Named services! (dont use the machine name directly - use DNS to retarget machines)
- Redundancy - e.g. backup infrastructure
- Stack smashing - rackspace VMs --> down to 2 (24 core) physical boxes
- http://speakerdeck.com/u/czarneckid/p/rails-in-the-video-game-industry
- Pragmattic Programmer
- Agile Alliance
- Agility Undefined
- Context Matters
- the way the world works: its messy (many interconnected systems)
- Practices werent discussed... what did they mean by agile:
- ever shifting, changing, responding
- Emergence: complex behavior from simple interactions
- Kaizen: Continuous changes based on continuous feedback
- Risk mitigation: (risk from programming comes from writing code)
- Cognative biases: what as humans drive us away from something like logical agile practices
- Driving need for closure: (e.g. when will this project be done? we dont know... just tell me.)
- Postpone major decisions as long as you can (know the least at the beginning, most at the end, when do you want to make decisions?)
- Funcamental attribution error: context (e.g. why are they being a real creep as a client...)
- Planning Fallacy / Optimism Bias: Underestimate tasks all the time...
- Hawthorne Effect: when someone is watching we change our actions
- Dunning-Kruger Effect: "2nd order incompetence" - you dont know what you dont know -- argument to formulate a test
- Un-Agile warning signs:
- sloganization
- follow rules vs. exercize judgement (if you dont let experts exercize judgement on team you are not getting value for the expert)
- confusing the model with reality
- demanding conformity
- spelling out too much detail
- oversimplification of complex solutions
- Agile development uses feedback to make constant asjustments in a highly collaborative environment
- must have:
- continuous meaningful feedback and be able to evaluate
- ability to change the code, process, team, etc...
- must have:
- try. fail. learn. repeat.