SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
Technology in a startup
          @ 7syntax




                      Celso Pinto
Coder, headbanger, biker and founder
And Python lover
Then: 2 + 1 idea
Now: a 5 men army
Fighting the evil empire!
with
A tech startup lives by it's tech
TECH FAIL
From the very back end...




    http://flickr.com/photos/your_teacher/133262843/
Question time!
So, about data storage
Relational is dead... to me!

✔   Fast key based access
✔   Cheetah-fast list fetches
✔   Prefer to search with Lucene
Cheetah fast reads

✔   Fast key based access
✔   Cheetah-fast list fetches
✔   Prefer to search with Lucene
Stuff I actually considered

✔   Standard mailboxes, accessible via POP/SMTP
Stuff I actually considered

✔   Standard mailboxes, accessible via POP/SMTP
✔   Fixed block files
Stuff I actually considered

✔   Standard mailboxes, accessible via POP/SMTP
✔   Fixed block files
✔   MogileFS (plus Lucene for complete indexing)
But then...
Any day now
What we get from CouchDB

✔   Easy sharding
✔   Incredibly fast reads, faster than cheetahs!
✔   Develop views in a(ny) familiar language
✔   One instance can handle 500.000 databases
✔   Each database can easily store millions of records
✔   Online backups/snapshots and compaction
CouchDB has warts too :-(

✔   It's a “tad” slow on inserts
    ✔   50 inserts per second
    ✔   We can push it to 500 by dropping fsync's and using
        tmpfs



But it doesn't matter: we <3 CouchDB!
Any questions so far?
Programming language(s)
Programming languages
Programming languages
No!
No!
Programming languages
The Snake
 * you need Acme::Python to understand this


Hisssssssssssssssss
Hiss hiss Hiss hiss Hissss hiss Hisss hisss
Hissss hiss Hiss hiss Hiss hisss Hisss hisssssss
Hiss hisss Hiss hissssss Hiss hiss Hisss
hissss Hisss hiss Hiss hiss Hisss hiss Hisss
hiss Hiss hiss Hiss hisss Hisss hisss Hiss
hiss Hissss hissss Hiss hiss Hissss hisssssss
Hiss hiss Hiss hiss Hiss hisss Hisssss hissss
Hiss hiss Hissss hisssss Hiss hiss Hisss
hiss Hisssss hiss Hisss hisss Hissss hiss
Hisss hiss Hisss hiss Hissss hissssssss Hiss
hisssssss Hissss hisss Hiss hisss Hissss
hiss Hiss hisss Hiss hiss Hisss hisss Hissss
hiss Hisss hissss Hiss hiss Hissss hisssssss
Hiss hissss Hiss hissss Hiss hisss Hisss
hissss Hisss hiss Hiss hisssss Hisss hisss
Hissss hiss Hisss hisssssss Hiss hisss Hisss
hissss Hiss hisss Hiss hissssss Hiss hisss
Hissss hiss Hisss hiss Hiss hisss Hiss hiss
Hisss hissss Hiss hiss Hissss hiss Hiss hisssss
Hisss hisssssss Hiss hissss Hiss hisss Hissss
hiss Hiss hiss Hiss hiss Hissss hisss Hissss
hiss Hisss hisssssss Hiss hisssss Hisss hisss
Hiss hiss Hiss hisss Hiss hiss Hisss hisss
Hissss hiss Hisss hiss Hiss hiss Hiss hiss
Hissss hisssss Hisssss hiss Hisssssss hissss
Hiss hissss Hiss hisss Hisss hiss Hissss
hissss Hiss hiss Hiss hisssss
Only one restriction



4 space indents
 But you should be doing that already!
Other advantages

Here we have Python     Some other language
After one year

Still Python   Some other language
On the mobile
On the mobile
On the web front
On the web front
Any questions?
Frameworks vs. Libraries
Siza Vieira
The blue pill
Why Django?

✔   Modular: we can replace have replaced many parts
✔   Stable/solid: impressive # of tests, great docs!
✔   Easily hackable: it's Python after all
No, seriously...
Alright, you win
What we replaced

✔   Auth: we built our own from the start
✔   Sessions: in-house developed stateless sessions
✔   ORM: now on it's way to meet the dodo!
✔   By extension: we never got the chance to use the
    admin application
What we're keeping

✔   Templates: inheritance is great!
✔   Request handling/routing rules engine
✔   Forms: lots of validation there
✔   … other bits I can't really remember
How we're using Django
Any questions about Django?
Messaging
Why is it important to us?

✔   Throttling, balancing, loose coupling
✔   We can tap into any queues and experiment
✔   Remember CouchDB? MQ is the MDA for each
    “mailbox”
Lots of good stuff out there
Our choice

✔   ActiveMQ: stable, small and fast enough
✔   Many protocols: we chose STOMP, nice to debug
✔   Had to create AsyncIO Python lib
Final bits on messaging

✔   Does MDB mean anything to you?
✔   Python has no MDB container, had to create one
✔   Python + processing (new in Python 3000):
    ✔   Configuration similar to Django's
    ✔   1 process => 1 destination consumer
Any questions about messaging?
Wrapping up
Current architecture

                      mobile         web            ?



                                    perlbal



                      API
                                     static     Ct. adapter
                 (django apps)
            writes

                         reads                                S3
consumers


                                              CouchDB
accounts     User 1        User 2   User n
Any final questions?
Thank you very much!




Celso Pinto // cpinto@7syntax.com

Más contenido relacionado

Destacado

1315 estella ma_motorlearning
1315 estella ma_motorlearning1315 estella ma_motorlearning
1315 estella ma_motorlearningTian Stella
 
Audru Finantsiline Seisund
Audru Finantsiline SeisundAudru Finantsiline Seisund
Audru Finantsiline SeisundPunnpea
 
Value Co-Creation in Incubation Process
Value Co-Creation in Incubation ProcessValue Co-Creation in Incubation Process
Value Co-Creation in Incubation Processlodziko
 
Social Media - CONFR - Workshop Lebanon NH
Social Media - CONFR - Workshop Lebanon NHSocial Media - CONFR - Workshop Lebanon NH
Social Media - CONFR - Workshop Lebanon NHKelley-Sue LeBlanc
 
Open Source Meets Open Specifications
Open Source Meets Open SpecificationsOpen Source Meets Open Specifications
Open Source Meets Open SpecificationsKenn Hussey
 
20110601_MITEF_Opinno_Presentation
20110601_MITEF_Opinno_Presentation20110601_MITEF_Opinno_Presentation
20110601_MITEF_Opinno_PresentationPedro Moneo
 
Ξαστερια
ΞαστεριαΞαστερια
Ξαστεριαguest913466
 
1345 sk tse_variation
1345 sk tse_variation1345 sk tse_variation
1345 sk tse_variationTian Stella
 
Breastfeeding Slides Final
Breastfeeding Slides FinalBreastfeeding Slides Final
Breastfeeding Slides Finalsmiddles
 
EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t...
 EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t... EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t...
EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t...Keith.May
 
Architettura Di Reti Sicure
Architettura Di Reti SicureArchitettura Di Reti Sicure
Architettura Di Reti SicureRoberto Maggiora
 
Itil V3 The Begining
Itil V3 The BeginingItil V3 The Begining
Itil V3 The Beginingtmorisse
 
CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...
CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...
CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...Keith.May
 
1330 susan bridges_ohl
1330 susan bridges_ohl1330 susan bridges_ohl
1330 susan bridges_ohlTian Stella
 
Microsoft Office SpellCheck as an Assistive Technology
Microsoft Office SpellCheck as an Assistive TechnologyMicrosoft Office SpellCheck as an Assistive Technology
Microsoft Office SpellCheck as an Assistive Technologygueste114ea82
 
Teaching the teachers about social media.
Teaching the teachers about social media.Teaching the teachers about social media.
Teaching the teachers about social media.Kelley-Sue LeBlanc
 

Destacado (20)

1315 estella ma_motorlearning
1315 estella ma_motorlearning1315 estella ma_motorlearning
1315 estella ma_motorlearning
 
NFCB
NFCBNFCB
NFCB
 
Audru Finantsiline Seisund
Audru Finantsiline SeisundAudru Finantsiline Seisund
Audru Finantsiline Seisund
 
Effat 1234
Effat 1234Effat 1234
Effat 1234
 
Value Co-Creation in Incubation Process
Value Co-Creation in Incubation ProcessValue Co-Creation in Incubation Process
Value Co-Creation in Incubation Process
 
Social Media - CONFR - Workshop Lebanon NH
Social Media - CONFR - Workshop Lebanon NHSocial Media - CONFR - Workshop Lebanon NH
Social Media - CONFR - Workshop Lebanon NH
 
Open Source Meets Open Specifications
Open Source Meets Open SpecificationsOpen Source Meets Open Specifications
Open Source Meets Open Specifications
 
20110601_MITEF_Opinno_Presentation
20110601_MITEF_Opinno_Presentation20110601_MITEF_Opinno_Presentation
20110601_MITEF_Opinno_Presentation
 
Ξαστερια
ΞαστεριαΞαστερια
Ξαστερια
 
1345 sk tse_variation
1345 sk tse_variation1345 sk tse_variation
1345 sk tse_variation
 
Breastfeeding Slides Final
Breastfeeding Slides FinalBreastfeeding Slides Final
Breastfeeding Slides Final
 
EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t...
 EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t... EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t...
EAA2013 Archaeological Recording Methods - How Many Archaeologists does it t...
 
Sanchar Solutions
Sanchar SolutionsSanchar Solutions
Sanchar Solutions
 
Architettura Di Reti Sicure
Architettura Di Reti SicureArchitettura Di Reti Sicure
Architettura Di Reti Sicure
 
Graphicast Sales
Graphicast SalesGraphicast Sales
Graphicast Sales
 
Itil V3 The Begining
Itil V3 The BeginingItil V3 The Begining
Itil V3 The Begining
 
CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...
CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...
CAA 2014 - To Boldly or Bravely Go? Experiences of using Semantic Technologie...
 
1330 susan bridges_ohl
1330 susan bridges_ohl1330 susan bridges_ohl
1330 susan bridges_ohl
 
Microsoft Office SpellCheck as an Assistive Technology
Microsoft Office SpellCheck as an Assistive TechnologyMicrosoft Office SpellCheck as an Assistive Technology
Microsoft Office SpellCheck as an Assistive Technology
 
Teaching the teachers about social media.
Teaching the teachers about social media.Teaching the teachers about social media.
Teaching the teachers about social media.
 

Similar a Codebits Handivi

Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello WorldJosh Fischer
 
Harmonic Stack for Speed
Harmonic Stack for SpeedHarmonic Stack for Speed
Harmonic Stack for SpeedYung-Yu Chen
 
Realtime communication over a dual stack network
Realtime communication over a dual stack networkRealtime communication over a dual stack network
Realtime communication over a dual stack networkOlle E Johansson
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2ice799
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsUwe Korn
 
Scratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieScratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieESUG
 
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-BayesOSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-BayesNETWAYS
 
Bridging Ousterhout's Dichotomy
Bridging Ousterhout's DichotomyBridging Ousterhout's Dichotomy
Bridging Ousterhout's Dichotomyguest2838a0
 
From a student to an apache committer practice of apache io tdb
From a student to an apache committer  practice of apache io tdbFrom a student to an apache committer  practice of apache io tdb
From a student to an apache committer practice of apache io tdbjixuan1989
 
Pythonic doesn't mean slow!
Pythonic doesn't mean slow!Pythonic doesn't mean slow!
Pythonic doesn't mean slow!Ronan Lamy
 
Py4 inf 01-intro
Py4 inf 01-introPy4 inf 01-intro
Py4 inf 01-introIshaq Ali
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Docker, Inc.
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 KeynotePeter Wang
 
Talk at Bioinformatics Open Source Conference, 2012
Talk at Bioinformatics Open Source Conference, 2012Talk at Bioinformatics Open Source Conference, 2012
Talk at Bioinformatics Open Source Conference, 2012c.titus.brown
 
CT Brown - Doing next-gen sequencing analysis in the cloud
CT Brown - Doing next-gen sequencing analysis in the cloudCT Brown - Doing next-gen sequencing analysis in the cloud
CT Brown - Doing next-gen sequencing analysis in the cloudJan Aerts
 
Caring for file formats
Caring for file formatsCaring for file formats
Caring for file formatsAnge Albertini
 
STP201 Efficiency at Scale - AWS re: Invent 2012
STP201 Efficiency at Scale - AWS re: Invent 2012STP201 Efficiency at Scale - AWS re: Invent 2012
STP201 Efficiency at Scale - AWS re: Invent 2012Amazon Web Services
 
Developing The Web
Developing The WebDeveloping The Web
Developing The Webtimoh
 

Similar a Codebits Handivi (20)

Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello World
 
Harmonic Stack for Speed
Harmonic Stack for SpeedHarmonic Stack for Speed
Harmonic Stack for Speed
 
Realtime communication over a dual stack network
Realtime communication over a dual stack networkRealtime communication over a dual stack network
Realtime communication over a dual stack network
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
 
Scratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieScratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry Pie
 
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-BayesOSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
 
Bridging Ousterhout's Dichotomy
Bridging Ousterhout's DichotomyBridging Ousterhout's Dichotomy
Bridging Ousterhout's Dichotomy
 
From a student to an apache committer practice of apache io tdb
From a student to an apache committer  practice of apache io tdbFrom a student to an apache committer  practice of apache io tdb
From a student to an apache committer practice of apache io tdb
 
Pythonic doesn't mean slow!
Pythonic doesn't mean slow!Pythonic doesn't mean slow!
Pythonic doesn't mean slow!
 
PySide
PySidePySide
PySide
 
py4inf-01-intro.ppt
py4inf-01-intro.pptpy4inf-01-intro.ppt
py4inf-01-intro.ppt
 
Py4 inf 01-intro
Py4 inf 01-introPy4 inf 01-intro
Py4 inf 01-intro
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 Keynote
 
Talk at Bioinformatics Open Source Conference, 2012
Talk at Bioinformatics Open Source Conference, 2012Talk at Bioinformatics Open Source Conference, 2012
Talk at Bioinformatics Open Source Conference, 2012
 
CT Brown - Doing next-gen sequencing analysis in the cloud
CT Brown - Doing next-gen sequencing analysis in the cloudCT Brown - Doing next-gen sequencing analysis in the cloud
CT Brown - Doing next-gen sequencing analysis in the cloud
 
Caring for file formats
Caring for file formatsCaring for file formats
Caring for file formats
 
STP201 Efficiency at Scale - AWS re: Invent 2012
STP201 Efficiency at Scale - AWS re: Invent 2012STP201 Efficiency at Scale - AWS re: Invent 2012
STP201 Efficiency at Scale - AWS re: Invent 2012
 
Developing The Web
Developing The WebDeveloping The Web
Developing The Web
 

Último

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 

Último (20)

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 

Codebits Handivi

  • 1. Technology in a startup @ 7syntax Celso Pinto Coder, headbanger, biker and founder
  • 3. Then: 2 + 1 idea
  • 4. Now: a 5 men army
  • 7. A tech startup lives by it's tech
  • 9. From the very back end... http://flickr.com/photos/your_teacher/133262843/
  • 11. So, about data storage
  • 12. Relational is dead... to me! ✔ Fast key based access ✔ Cheetah-fast list fetches ✔ Prefer to search with Lucene
  • 13. Cheetah fast reads ✔ Fast key based access ✔ Cheetah-fast list fetches ✔ Prefer to search with Lucene
  • 14. Stuff I actually considered ✔ Standard mailboxes, accessible via POP/SMTP
  • 15. Stuff I actually considered ✔ Standard mailboxes, accessible via POP/SMTP ✔ Fixed block files
  • 16. Stuff I actually considered ✔ Standard mailboxes, accessible via POP/SMTP ✔ Fixed block files ✔ MogileFS (plus Lucene for complete indexing)
  • 19. What we get from CouchDB ✔ Easy sharding ✔ Incredibly fast reads, faster than cheetahs! ✔ Develop views in a(ny) familiar language ✔ One instance can handle 500.000 databases ✔ Each database can easily store millions of records ✔ Online backups/snapshots and compaction
  • 20. CouchDB has warts too :-( ✔ It's a “tad” slow on inserts ✔ 50 inserts per second ✔ We can push it to 500 by dropping fsync's and using tmpfs But it doesn't matter: we <3 CouchDB!
  • 25. No!
  • 26. No!
  • 28. The Snake * you need Acme::Python to understand this Hisssssssssssssssss Hiss hiss Hiss hiss Hissss hiss Hisss hisss Hissss hiss Hiss hiss Hiss hisss Hisss hisssssss Hiss hisss Hiss hissssss Hiss hiss Hisss hissss Hisss hiss Hiss hiss Hisss hiss Hisss hiss Hiss hiss Hiss hisss Hisss hisss Hiss hiss Hissss hissss Hiss hiss Hissss hisssssss Hiss hiss Hiss hiss Hiss hisss Hisssss hissss Hiss hiss Hissss hisssss Hiss hiss Hisss hiss Hisssss hiss Hisss hisss Hissss hiss Hisss hiss Hisss hiss Hissss hissssssss Hiss hisssssss Hissss hisss Hiss hisss Hissss hiss Hiss hisss Hiss hiss Hisss hisss Hissss hiss Hisss hissss Hiss hiss Hissss hisssssss Hiss hissss Hiss hissss Hiss hisss Hisss hissss Hisss hiss Hiss hisssss Hisss hisss Hissss hiss Hisss hisssssss Hiss hisss Hisss hissss Hiss hisss Hiss hissssss Hiss hisss Hissss hiss Hisss hiss Hiss hisss Hiss hiss Hisss hissss Hiss hiss Hissss hiss Hiss hisssss Hisss hisssssss Hiss hissss Hiss hisss Hissss hiss Hiss hiss Hiss hiss Hissss hisss Hissss hiss Hisss hisssssss Hiss hisssss Hisss hisss Hiss hiss Hiss hisss Hiss hiss Hisss hisss Hissss hiss Hisss hiss Hiss hiss Hiss hiss Hissss hisssss Hisssss hiss Hisssssss hissss Hiss hissss Hiss hisss Hisss hiss Hissss hissss Hiss hiss Hiss hisssss
  • 29. Only one restriction 4 space indents But you should be doing that already!
  • 30. Other advantages Here we have Python Some other language
  • 31. After one year Still Python Some other language
  • 34. On the web front
  • 35. On the web front
  • 40. Why Django? ✔ Modular: we can replace have replaced many parts ✔ Stable/solid: impressive # of tests, great docs! ✔ Easily hackable: it's Python after all
  • 43. What we replaced ✔ Auth: we built our own from the start ✔ Sessions: in-house developed stateless sessions ✔ ORM: now on it's way to meet the dodo! ✔ By extension: we never got the chance to use the admin application
  • 44. What we're keeping ✔ Templates: inheritance is great! ✔ Request handling/routing rules engine ✔ Forms: lots of validation there ✔ … other bits I can't really remember
  • 45. How we're using Django
  • 48. Why is it important to us? ✔ Throttling, balancing, loose coupling ✔ We can tap into any queues and experiment ✔ Remember CouchDB? MQ is the MDA for each “mailbox”
  • 49. Lots of good stuff out there
  • 50. Our choice ✔ ActiveMQ: stable, small and fast enough ✔ Many protocols: we chose STOMP, nice to debug ✔ Had to create AsyncIO Python lib
  • 51. Final bits on messaging ✔ Does MDB mean anything to you? ✔ Python has no MDB container, had to create one ✔ Python + processing (new in Python 3000): ✔ Configuration similar to Django's ✔ 1 process => 1 destination consumer
  • 52. Any questions about messaging?
  • 54. Current architecture mobile web ? perlbal API static Ct. adapter (django apps) writes reads S3 consumers CouchDB accounts User 1 User 2 User n
  • 56. Thank you very much! Celso Pinto // cpinto@7syntax.com