Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Curator at RICON 2012
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
John Downey
October 10, 2012
Programming
17k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Curator at RICON 2012
John Downey
October 10, 2012
More Decks by John Downey
See All by John Downey
Cryptography Pitfalls at CactusCon 2019
jtdowney
0
210
Intro to Cybersecurity Workshop
jtdowney
0
160
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
210
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
220
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
380
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
170
Cryptography Pitfalls at LASCON 2016
jtdowney
0
230
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
310
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
390
Other Decks in Programming
See All in Programming
関数型プログラミングのメリットって何だろう?
wanko_it
0
180
act2-costs.pdf
sumedhbala
0
110
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
650
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
210
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
540
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
860
霧の中の代数的エフェクト
funnyycat
1
400
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
170
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
200
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
460
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
250
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
350
Balancing Empowerment & Direction
lara
6
1.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Crafting Experiences
bethany
1
220
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
New Earth Scene 8
popppiees
3
2.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
CURATOR John Downey | @jtdowney
joinbraintree.com
None
http://www.flickr.com/photos/uberculture/2058870277/ Curator
class Person include Curator::Model attr_accessor :id, :first_name, :last_name, :age end
class PersonRepository include Curator::Repository indexed_fields :age end
person = Person.new( :first_name => "John", :last_name => "Downey", :age
=> 25 ) PersonRepository.save(person)
PersonRepository.find_by_id(person.id) => #<Person:0x007fec3437d868 ...> PersonRepository.find_by_age(25) => [#<Person:0x007fec3437d868 ...>]
Lazy Migrations http://www.flickr.com/photos/themichaelsmith/4399654643/
class Person include Curator::Model attr_accessor :id, :age def name if
@name @name else "#{@first_name} #{@last_name}" end end end
class Person include Curator::Model version 1 attr_accessor :id, :name, :age
end
# db/migrate/people/0001_consolidate_name.rb class ConsolidateName < Curator::Migration def migrate(attributes) first_name =
attributes.delete(:first_name) last_name = attributes.delete(:last_name) attributes.merge(:name => "#{first_name} #{last_name}") end end
braintree/curator