SlideShare a Scribd company logo
PATELLA
MEMOIZATION INTO MEMCACHED DONE IN RESQUE




JEFF DWYER
PATIENTSLIKEME
@JDWYAH
TODAY




Engineers will never be successful if we are the brake on
innovation.
Technique for innovating safely
Learn a bit about meta-programming
TODAY
Setup the problem
Sketch the solution
Nitty Gritty Details
TODAY
Setup the problem
Sketch the solution
Nitty Gritty Details
1) NIH PRESENTATION
IN 4 WEEKS!
Integrate clinicaltrials.gov into our site
Search by trial type
Search by trial phase
Search by trial conditions mapped from Mesh to Meddra
Search by trial facility locations…
  • Location search…
WE HAVE A CHOICE
WHAT IS RIGHT
PostGIS spatial database extensions for PostgreSQL
MongoDB built in support for two dimensional geospatial indexes
AND WHAT IS EASY
sqrt(pow(69.1 * (clinical_trial_locations.lat - 40.948073),2)
  + pow(53.0 * (clinical_trial_locations.lng - -90.36871),2)) AS distance
CHOOSE THE EASY!
CHOOSE THE EASY!
Who knows if location is even important?
Who knows if this project is even important?
MongoDB requires dev setup, automated staging
setup, production setup, monitoring.
BUT, OH GOD THE
HUMANITY
<query plan pic>
BUT, OH GOD THE
HUMANITY
<query plan pic>
2) PATIENT LIKE ME SEARCH
2) PATIENT LIKE ME SEARCH
PATIENT SEARCH RANKING
Very basic search
Plus very complex ordering
Not as many great solutions in this space
N^2 similarity matrix @ 100k patients about 4 TB
And did I mention it’s N^2?
Postgres is an amazingly viable solution.
ELEGANT CODE…
LOVELY SQL…
BUT IT’S JUST THIS
SIDE OF ‘REAL-TIME’
One second queries just don’t fly.
And oh, yeah 16 people hitting it at the same time would
clobber the servers.
3) A FORWARD LOOKING
TIME MACHINE
Maybe those were aberrations?
Crazy right?
A FORWARD LOOKING
TIME MACHINE
AND HERE’S MY CEO PROMISING IT
AT TED
A FORWARD LOOKING
TIME MACHINE
STEPPING BACK
Conflict
  • Relational data is most easily queried relationally.
        • Relational queries don’t necessarily scale and stay in the
          millisecond range
  • Denormalized queries & special solutions scale
        • But take longer to implement
 • (note) This isn’t just SQL, I’m talking about anything slow
We want to experiment/fail fast
  • But we don’t want…
DON’T WANT TO LET THIS:
TURN INTO:
TURN INTO:   :-C
TURN INTO:   :-C
TODAY
Setup the problem
Sketch the solution
Nitty Gritty Details
WHAT WE WANT
Trivially easy way for developers to declare that some
methods are not to be run without adult supervision.




Consistent framework so that ops doesn’t need to be afraid
of new, sometimes expensive experiments.
SOLUTION SPACE
Doing it right all the time
  • Too slow and expensive
  • Slows innovation
SOLUTION SPACE
Memoization
 • Brilliant
 • Functional Programming Nirvana
 • No cache-key shenanagins
      • But also no expiry…
 • There’s just one thing…
      • It only works in a single request
SOLUTION SPACE
Memcached
 • Great
 • Simple to setup.
      • Could be simpler. Handmade cache keys feels wrong.
 • But it doesn’t solve our :-C problem.
      • The first request still slams the server.
 • So you do some cache warming thing…
      • But this is a PITA again.
WHAT COULD MAKE
THIS SIMPLER?
Remove one constraint.
A basic Rails.cache.fetch guarantees you a result
   • But no performance guarantee
Flip that deal around.
  • Guarantee performance
  • Don’t guarantee a result
  • It’s ok not to know the answer!
BUT IT NEEDS A NAME!
TECHNOLOGIES!
Memoization into Memcached with everything calculated in
Resque.
TODAY
Setup the problem
Sketch the solution
Nitty Gritty Details
PATELLA DEVELOPER
INTERFACE
SEND LATER
Super easy way to just do something later while in the same
context.
Most workers are real boring.
Single worker for suffices for many background jobs.
Makes testing/development easier by bypassing Resque in
configuration.
AR extension. Coordinates logging / monitoring.
SENDLATER
   User.send_later :expensive, arg1, arag2
SENDLATER RESQUE
WORKER
MEMOIZATION
SendLater gets things calculated in Resque, but that’s step 1.


We still need:
Memoization.
Stored in memcached.
THIS IS NOT A GOOD SLIDE
PATELLA RESULT
THE METHOD
WITH PATELLA
THE REPLACEMENT
THE ONE THAT DOES
THE WORK
MAYBE IT’S BETTER NOW?
DOG PILE
THE REPLACEMENT
DOG PILE
LONG ARGUMENTS
LONG ARGUMENTS
LONG ARGUMENTS
SOFT EXPIRATION
Memcached is great, but it doesn’t tell you when something
expires.
Our strategy was to add a ‘soft_expiry’
This gets stored along with the result.
Then recalculate if soft_expiry < now()
ABJ
ALWAYS BE JSON
Beware putting not JSON in memcached
You really don’t want to know
META IS MAGIC
REAL LIFE
PRETTY BORING
Except that it works.
       Round 1: Major Pain Points
       Round 2: Magic Scaling Sprinkles
Super alpha gem here:
       https://github.com/kbrock/patella




Alternative https://github.com/csquared/rack-worker
       Very REST-ish, request based.
JOE
@JOERODRIGUEZ
AMY
@AMYNEWELL
KEENAN
@KBROCK
WINFIELD
@WPETERSON

More Related Content

What's hot

Visualizing Work: If you can't see it, you can't manage it
Visualizing Work: If you can't see it, you can't manage itVisualizing Work: If you can't see it, you can't manage it
Visualizing Work: If you can't see it, you can't manage it
Fernando Cuenca
 
DevOps By The Numbers
DevOps By The NumbersDevOps By The Numbers
DevOps By The Numbers
XebiaLabs
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf
 
DevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with MagentoDevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with Magento
Luis Tineo
 
Lean Kanban India 2017 | Damn… we missed the date again! | Sudipta Lahiri
Lean Kanban India 2017 | Damn… we missed the date again! | Sudipta LahiriLean Kanban India 2017 | Damn… we missed the date again! | Sudipta Lahiri
Lean Kanban India 2017 | Damn… we missed the date again! | Sudipta Lahiri
LeanKanbanIndia
 
NextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionNextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Software Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionSoftware Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
What not to do when adopting Agile
What not to do when adopting AgileWhat not to do when adopting Agile
What not to do when adopting Agile
Killick Agile Consulting Services
 
MeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionMeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHubSOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
DevOpsDays Tel Aviv
 

What's hot (10)

Visualizing Work: If you can't see it, you can't manage it
Visualizing Work: If you can't see it, you can't manage itVisualizing Work: If you can't see it, you can't manage it
Visualizing Work: If you can't see it, you can't manage it
 
DevOps By The Numbers
DevOps By The NumbersDevOps By The Numbers
DevOps By The Numbers
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
 
DevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with MagentoDevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with Magento
 
Lean Kanban India 2017 | Damn… we missed the date again! | Sudipta Lahiri
Lean Kanban India 2017 | Damn… we missed the date again! | Sudipta LahiriLean Kanban India 2017 | Damn… we missed the date again! | Sudipta Lahiri
Lean Kanban India 2017 | Damn… we missed the date again! | Sudipta Lahiri
 
NextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionNextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolution
 
Software Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionSoftware Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolution
 
What not to do when adopting Agile
What not to do when adopting AgileWhat not to do when adopting Agile
What not to do when adopting Agile
 
MeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionMeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolution
 
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHubSOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
SOLVING MLOPS FROM FIRST PRINCIPLES, DEAN PLEBAN, DagsHub
 

Viewers also liked

patellar dislocation
patellar dislocationpatellar dislocation
patellar dislocation
Waseem Khedr
 
Patellar Fracture
Patellar FracturePatellar Fracture
Patellar Fracture
Todd Peterson
 
Habitual dislocation of patella
Habitual dislocation of patellaHabitual dislocation of patella
Habitual dislocation of patella
sushilonlines
 
Slideshow: Patella
Slideshow: PatellaSlideshow: Patella
Slideshow: Patella
The Funky Professor
 
Questions: Patella
Questions: PatellaQuestions: Patella
Questions: Patella
The Funky Professor
 
Knee fractures
Knee fracturesKnee fractures
Knee fractures
Gromimd
 
Patellar fracture powerpoint
Patellar fracture powerpoint Patellar fracture powerpoint
Patellar fracture powerpoint
Karla Suzatte Dasargo
 
Patella fractures and extensor mechanism injuries
Patella fractures and extensor mechanism injuries Patella fractures and extensor mechanism injuries
Patella fractures and extensor mechanism injuries
Hamid Hejrati
 
Knee cap (Patella) fractures
Knee cap (Patella) fracturesKnee cap (Patella) fractures
Knee cap (Patella) fractures
Dr.A.Mohan krishna
 
Patella dislocation by DR.NAVEEN RATHOR
Patella dislocation by DR.NAVEEN RATHORPatella dislocation by DR.NAVEEN RATHOR
Patella dislocation by DR.NAVEEN RATHOR
DR.Naveen Rathor
 
Patella and tibial plateau fractures
Patella and tibial plateau fractures  Patella and tibial plateau fractures
Patella and tibial plateau fractures
MONTHER ALKHAWLANY
 
Mri anatomy of knee Dr. Muhammad Bin Zulfiqar
Mri anatomy of knee Dr. Muhammad Bin ZulfiqarMri anatomy of knee Dr. Muhammad Bin Zulfiqar
Mri anatomy of knee Dr. Muhammad Bin Zulfiqar
Dr. Muhammad Bin Zulfiqar
 

Viewers also liked (12)

patellar dislocation
patellar dislocationpatellar dislocation
patellar dislocation
 
Patellar Fracture
Patellar FracturePatellar Fracture
Patellar Fracture
 
Habitual dislocation of patella
Habitual dislocation of patellaHabitual dislocation of patella
Habitual dislocation of patella
 
Slideshow: Patella
Slideshow: PatellaSlideshow: Patella
Slideshow: Patella
 
Questions: Patella
Questions: PatellaQuestions: Patella
Questions: Patella
 
Knee fractures
Knee fracturesKnee fractures
Knee fractures
 
Patellar fracture powerpoint
Patellar fracture powerpoint Patellar fracture powerpoint
Patellar fracture powerpoint
 
Patella fractures and extensor mechanism injuries
Patella fractures and extensor mechanism injuries Patella fractures and extensor mechanism injuries
Patella fractures and extensor mechanism injuries
 
Knee cap (Patella) fractures
Knee cap (Patella) fracturesKnee cap (Patella) fractures
Knee cap (Patella) fractures
 
Patella dislocation by DR.NAVEEN RATHOR
Patella dislocation by DR.NAVEEN RATHORPatella dislocation by DR.NAVEEN RATHOR
Patella dislocation by DR.NAVEEN RATHOR
 
Patella and tibial plateau fractures
Patella and tibial plateau fractures  Patella and tibial plateau fractures
Patella and tibial plateau fractures
 
Mri anatomy of knee Dr. Muhammad Bin Zulfiqar
Mri anatomy of knee Dr. Muhammad Bin ZulfiqarMri anatomy of knee Dr. Muhammad Bin Zulfiqar
Mri anatomy of knee Dr. Muhammad Bin Zulfiqar
 

Similar to Patella railsconf 2012

Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
120bi
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
Achievers Tech
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the Seams
Concentric Sky
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE Applications
Jelastic Multi-Cloud PaaS
 
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible PipelineRsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Sanjana Chowdhury
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara Anjargolian
Hakka Labs
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every Team
Sven Peters
 
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Databricks
 
What is spatial sql
What is spatial sqlWhat is spatial sql
What is spatial sql
shawty_ds
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
Docker, Inc.
 
Introducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationIntroducing LCS to Digital Design Verification
Introducing LCS to Digital Design Verification
Daniele Loiacono
 
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
DataWorks Summit
 
Building trust within the organization, first steps towards DevOps
Building trust within the organization, first steps towards DevOpsBuilding trust within the organization, first steps towards DevOps
Building trust within the organization, first steps towards DevOps
Guido Serra
 
InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)
Mark Voelker
 
The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
jClarity
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStack
Mark Voelker
 
Qardio experience with Core Data
Qardio experience with Core DataQardio experience with Core Data
Qardio experience with Core Data
Dmitrii Ivanov
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample application
Julien Dubois
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
Andreas Grabner
 

Similar to Patella railsconf 2012 (20)

Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the Seams
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE Applications
 
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible PipelineRsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara Anjargolian
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every Team
 
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
Behavior-Driven Development (BDD) Testing with Apache Spark with Aaron Colcor...
 
What is spatial sql
What is spatial sqlWhat is spatial sql
What is spatial sql
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
Introducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationIntroducing LCS to Digital Design Verification
Introducing LCS to Digital Design Verification
 
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
 
Building trust within the organization, first steps towards DevOps
Building trust within the organization, first steps towards DevOpsBuilding trust within the organization, first steps towards DevOps
Building trust within the organization, first steps towards DevOps
 
InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)
 
The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStack
 
Qardio experience with Core Data
Qardio experience with Core DataQardio experience with Core Data
Qardio experience with Core Data
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample application
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 

Patella railsconf 2012

Editor's Notes

  1. I have an axe to grind. Forming working teams. Makeup. Engineering described as the brake. Technique: I think it relates well to what Aaron was saying about concurrency. This needs to be easy.Dispel a little meta-programming fear
  2. Going to try to ramp up from problem statement to solution description, to general features of the solution to full blown meta programming analysis.There is a alpha gem, not actually in production. But I’m going to get into the meta programming that wrote it, because honestly it’s more there for display than for you to jump out and use.Moreover I think some people are scared of this stuff and I want to try to clear up a bit about that.
  3. Pattern identification. 3 examples
  4. Trials have centers every center has many recruiting locationsWe have a theory that distance to the center is a big deal. Differentiator.
  5. See! They can all live together happily. I bring you a message of joy and peace
  6. It’s one of those death star queries. It’s like your poor little server is Alderan.
  7. Company name, but we don’t do a great job
  8. Clear weighted factorsJaccard similarityDistance search without any new installsEasily extensible.
  9. Beautiful. Makes my heart sing.Postrgres CTEA partridge in a pear tree
  10. Third example. What kind of pattern is here?
  11. That’s a crazy idea, you can’t do that.
  12. The idea here is that we’re going to be able to predict the course of your disease progression based on everyone else who’s like you.It actually did work.
  13. I’m sure this doesn’t remind you of any of the entrepreneurs you work with.
  14. This is our ops guyThe guy with the pager
  15. Who here knows what memoization is?
  16. Note class method.Expiry. Soft expiration. Why soft? Memcache not super versatile. Good enough for us.No backgrounding. This lets us use the same pattern in places where we always want a result / don’t want to write an async UI.
  17. This is a nice general purpose queuing thing.ANY method in your app get’s auto backgrounding with no setup.
  18. NEXT: we’re going to do those two. Learn about meta-programming. Stick with me!
  19. This is not a good slide. So we’re just going to look at it for a long long time.Until you get it.
  20. Step 1: we have the interface, but what does it return?
  21. ----- Meeting Notes (4/24/12 08:05) -----need to look up in memcahce and return patella result
  22. This is what gets called from Resque
  23. This is not a real
  24. Who knows what this is?
  25. The fetch ALWAYS returns something but doesn’t always kick off a new job.