JEREMY WALKER @iHiD
- MonoRail - one huge app that tries to do everything
- Propono (https://github.com/meducation/propono)
- Pub/Sub pattern
- SNS to n SQS
require 'propono'
Propono.config do |config|
config.access_key = "AKIAIPE2MSOM5ZFGQBCQ"
config.secret_key = "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"
config.queue_region = "eu-west-1"
end
require 'twitter'
@twitter = Twitter::REST::Client.new do |config|
config.consumer_key = ""
config.consumer_secret = ""
config.access_token = ""
config.access_token_secret = ""
end
# publisher.rb
require_relative 'config'
...
# subscribers.rb
require_relative 'config'
...
YUKIHIRO MATSUMOTO (@yukihiro_matz)
- You-Key-Hero Matz-Motor
- Varioius Ruby VMs
- MRI - Matz’s Ruby Interpreter
- Opal - Ruby to JS
- mruby (https://github.com/mruby/mruby)
- 2-year project granted by METI
- Matsumoto’s, eMbedded, Minimalistic (generational incremental GC), Modular
MRB_USE_FLOAT
,MRB_NAN_BOXING
,MRB_USE_IV_SEG?
- Will work on any environment that can run a C99 compiler
- mrbgems -
gem install mgem
(https://github.com/mruby/mgem-list)- mruby-arduino
- etc.
- API design is something between Ruby & Lua
PIOTR SZOTKOWSKI @chastell http://talks.chastell.net/baruco-2014/
- Signore (https://github.com/chastell/signore)
signore prego [topic]
- yaml/store - transaction-based
- gserver (TCP server)
- Tom Dale - Rails Node Perl Lisp
- abbrev (https://github.com/rubysl/rubysl-abbrev)
- Levenshtein Distance - levenshtein gem
- drb/drb
- typo_finder?
- Summary
- use a few more bits of core ruby
- persist with pstore
- serve with webrick
- …
- do play around with Enumerable
- use stdlib (WeakRef!) and contribute to its docs
- check out the levenshtein gem
- End of Line (stdlib posts)
- stop reinventing the wheel and come to ArrrCamp
- …
# code snippets
module_function?
threads.flat_map(&:value)?
“One does not simply tag-complete to Mordor”
PAT SHAUGHNESSY @pat_shaughnessy http://patshaughnessy.net/2014/9/17/20000-leagues-under-activerecord http://patshaughnessy.net/2014/9/23/how-arel-converts-ruby-queries-into-sql-statements
- Jules Verne - Vingt Mille Lieues sous Les Mers
- http://en.wikipedia.org/wiki/Captain_Nemo
- ActiveRecord
- Agenda
- ActiveRecord::Relation
- all > where > order > limit
User.all.where(name: “Captain Nemo”)
.order(arel_table[primary_key].asc)
.limit(1).to_a
- Generating SQL
- https://github.com/rails/arel
- Visitor pattern
- PostgreSQL
- parse > Analyze and Rewrite > ? > ?
- Executing SQL
- byson (new version of yak?)
- The B-Tree Algorithm
- Balanced Tree Algorithm
Dive into the tools that you’re using
EMILY STOLFO @emstolfo http://www.slideshare.net/emstolfo/release-responsibly-maintaining-backwards-compatibility
- Innovation and Stability are in conflict in Ruby community
- Backwards compatibility
- Simple API
- Configurability and Stability are at odds
- Do
- Add arguments with default values, so old method calls still work
- Add methods
- Add subclasses
- Don’t
- Add arguments without default values
- …
- Have a Compatibility module
- Use Polymorphism instead of conditionals
- Backport only when necessary
- Simple API
- Clear communication
- Compatible with?
- Define the scope of what you support
- Test everything you support - MongoDB uses Jenkins to do this!
- Changelog is important (http://keepachangelog.com/)
- User trust should be a priority
- Have a deprecation strategy (http://www.mongodb.com/support-policy)
- Anticipate deprecations when designing
- Compatible with?
- Semantic versioning
JOSÉ TOMÁS ALBORNOZ @eljojo http://ajipirijou.com/
- Used Sinatra
- Problems
- simulating keystrokes
- requires desktop environment
- latency
- Built his own Gameboy emulator in Ruby
- Conference Driven Development
LEON GERSING @rubybuddha
- Dominant culture, subculture, etc.
- We simulate reality and we know it.
- We lose touch with our actual reality.
- The simulated reality becomes real.
- Scrum as an example
- Waterfall - dominant culture...
- Invent reality
- Perception is Reality
Morality is temporary, Wisdom is permanent Code is the representation of your current self at a point in time
RYAN LEVICK @itchyankles https://speakerdeck.com/rylev/a-dangerous-game-safety-in-ruby
- Static typing
Redis.fetch(key: String): String
Either...
- What is the best testing library ever invented?
- compiler?
- puts?
- Math!
- Curry-Howard correspondence (http://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)
- For all inputs a valid and correct output is given
- Always present and cannot be forgotten
- Cannot be erased
- The compiler is far less likely to be buggy than your tests
- Test business logic
def head(list)
if list.empty?
# argument error!
else
list.first
end
end
- Idris
# haskell
head : Vect (S n) a -> a
head (h::tail) = h
# ruby
x,y = [1,2]
- No more runtime errors!
- Erlang has this
- Ruby is a tool, not the end solution to every problem
https://github.com/yorickpeterse/oga
- 91% Ruby
- Supports MRI, Rubinius, Jruby
- Thread-safe
- XML/HTML parsing
- XMl namespaces
- XPath
- CSS selectors (planned)
- No system libraries
$ gem install oga
@malweene
- works at DaWanda (http://en.dawanda.com/)
- material/s - paper & pen
- done is better than perfect
Tobias Pfeiffer @PragTob
- GUI toolkit/DSL
- cross-platform
- packaging
- all Ruby all the time
- simple
- JRuby + SWT
@tomstuart
** Burrows-wheeler transform ** BANANA ANANAB NANABA ... ABANAN
- sort then get last character
- reversible
@philnash twilio
- @GuyBrushPirate
- Twitter bot?
- https://github.co/philnash/guybot
- @chuck_facts, @vindieselfacts
- Write code, have fun, beware
@arnvald
Lesson No. 1: Don't get burned out Lesson No. 2: You can do everything Lesson No. 3: You can work anywhere