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
John Downey
October 10, 2012
Programming
1
17k
Curator at RICON 2012
John Downey
October 10, 2012
Tweet
Share
More Decks by John Downey
See All by John Downey
Cryptography Pitfalls at CactusCon 2019
jtdowney
0
190
Intro to Cybersecurity Workshop
jtdowney
0
140
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
190
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
200
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
360
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
160
Cryptography Pitfalls at LASCON 2016
jtdowney
0
210
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
270
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
360
Other Decks in Programming
See All in Programming
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
160
Package Management Learnings from Homebrew
mikemcquaid
0
230
AI巻き込み型コードレビューのススメ
nealle
2
430
並行開発のためのコードレビュー
miyukiw
0
290
Architectural Extensions
denyspoltorak
0
290
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
200
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.4k
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.1k
Technical Leadership for Architectural Decision Making
baasie
2
250
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Crafting Experiences
bethany
1
49
The Limits of Empathy - UXLibs8
cassininazir
1
220
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Being A Developer After 40
akosma
91
590k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Making Projects Easy
brettharned
120
6.6k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
97
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
100
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