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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
John Downey
October 10, 2012
Programming
17k
1
Share
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
200
Intro to Cybersecurity Workshop
jtdowney
0
150
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
200
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
210
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
370
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
160
Cryptography Pitfalls at LASCON 2016
jtdowney
0
220
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
290
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
370
Other Decks in Programming
See All in Programming
Programming with a DJ Controller — not vibe coding
m_seki
3
100
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
370
ハンズオンで学ぶクラウドネイティブ
tatsukiminami
0
130
事業会社でのセキュリティ長期インターンについて
masachikaura
0
250
Coding as Prompting Since 2025
ragingwind
0
830
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
110
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
2
180
의존성 주입과 모듈화
fornewid
0
140
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
570
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
3
510
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
280
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
140
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
370
KATA
mclloyd
PRO
35
15k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Producing Creativity
orderedlist
PRO
348
40k
So, you think you're a good person
axbom
PRO
2
2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Thoughts on Productivity
jonyablonski
76
5.1k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
99
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
Become a Pro
speakerdeck
PRO
31
5.9k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
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