SlideShare a Scribd company logo
1 of 56
Download to read offline
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

More Related Content

Viewers also liked

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
 

Viewers also liked (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 to 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
 
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
 
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
 
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 to 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
 
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
 
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
 
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
 

Recently uploaded

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

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