SlideShare ist ein Scribd-Unternehmen logo
1 von 80
Downloaden Sie, um offline zu lesen
Anatomy of a large
   Django site

Andy McKay Mozilla

                     mozilla
Vancouver
            mozilla
Python
Zope and Plone
...now at Mozilla

                    mozilla
Using Django
         http://www.djangoproject.com




Credit: http://www.flickr.com/photos/abiavati/3110357974/
                                                           mozilla
1. About the site
2. Performance
3. Localisation
4. Reuse

                    mozilla
1. About the site



                    mozilla
mozilla
All code is open:
https://github.com/jbalogh/zamboni




                                     mozilla
All* bugs are open:
 https://bugzilla.mozilla.org




                                mozilla
Convert from
 CakePHP (remora)
to Django (zamboni)



                      mozilla
Credit: http://www.flickr.com/photos/improbcat/4177702580/
                                                            mozilla
Changing one URL at a time
 from CakePHP to Django
            General trend to move
            away from PHP and do
            more Python and Django




                                     mozilla
How large?
   250k+ addons
150 mn views month
500 mn API hits day

                      mozilla
Lines of code
   PHP 40k
Python 18k


                mozilla
Lines of code
      PHP 40k
  Python 18k
Unit tests 15k

                 mozilla
running both php and
             python side by side. a
             few issues on that




No pages go out until
   they are faster


                                      mozilla
3 zeus load balancers
                                 24 django (and php)
                                 1 mysql + 4 slaves
                                 3 memcached
                                 3 sphinx
                                 1 rabbitmq + 2 celeryd
                                 1 redis master + 1 slave
Credit: http://www.flickr.com/photos/tbridge/15300843/
                                                            mozilla
2. Performance



                 mozilla
As usual, database bottleneck




                            mozilla
Cache machine
   http://bit.ly/cache-machine




Credit: http://www.flickr.com/photos/mwichary/4063534688/
                                                           mozilla
from django.db import models
import caching.base

class Addon(caching.base.CachingMixin,
            models.Model):
    ...
    status = models.IntegerField()
    objects = caching.base.CachingManager()
                      available as a mixin

                      need to addin the custom
                      manager




                                                 mozilla
>>> Addon.objects.filter(status=public)
>>> len(connection.queries)
    13




                                          mozilla
>>> Addon.objects.filter(status=public)
>>> len(connection.queries)
    13

>>> Addon.objects.filter(status=public)
>>> len(connection.queries)
    13




                                          mozilla
Invalidation




               mozilla
md5(‘select... a’)   [addon 3615]




                                    mozilla
md5(‘select... a’)      [addon 3615]



    addon 3615       md5(‘select... a’)




                                          mozilla
md5(‘select... a’)         [addon 3615]



md5(‘select... b’)   [addon 3615, addon 1685]



                        md5(‘select... a’)
    addon 3615
                        md5(‘select... b’)




                                                mozilla
Memcached
rules = cache.get(3615)
rules.add('select...')
cache.set(3615, rules)




                          mozilla
Redis
redis.SADD(3615, ‘select...’)




                           mozilla
Home page
  20+ addons
400+ sql queries



                   mozilla
add-on                     version

                              version

                                     version   files
standard answer in
django is select-related

                                                      files

                                                             files




                                                                    mozilla
django: select_related()
http://bit.ly/select-related




                               mozilla
simonw




Transformer
http://bit.ly/queryset-transform




                                      mozilla
@staticmethod
def transformer(addons):
    addon_dict = dict((a.id, a) for a in addons)
    vs = filter(None, (a.current_version_id for a in addons)
    versions = list(Version.objects.filter(id__in=vs))
    for version in versions:
        addon_dict[version.addon_id].current_version = version



                                         slightly outdated
                                         example




                                                             mozilla
big SQL statements... :(

                  14313 character




Home page
 20+ addons
~14 sql queries



                                  mozilla
Update
   Called on startup
about:config   extensions.update.url




                                      mozilla
Incoming 8,000 req/sec
Uncached 1,600 req/sec
           Im used to Plone in the
           bad old days




                                     mozilla
Incoming 8,000 req/sec
Uncached 1,600 req/sec
     PHP 550 req/sec
           Im used to Plone in the
           bad old days




                                     mozilla
v1
                 Plain
               Django

PHP   Python




                   mozilla
v2
               Min. SQL
                queries

PHP   Python




                    mozilla
oh god


         mozilla
v3
               Django and
                  raw SQL
               max-requests 200,
               actually we hit 210



PHP   Python




                                     mozilla
v4
                   WSGI
               no Django

PHP   Python




                     mozilla
v5
                             Pooling,
                           optimised
                             queries
               Thats 700 req/sec
PHP   Python   which translates into




                                       mozilla
Reducing the SQL queries...
   doesn’t always help



                          mozilla
mySQL query cache is fast



                        mozilla
Celery
                                                       http://celeryproject.org


Credit: http://www.flickr.com/photos/chiotsrun/3843988392/
                                                                          mozilla
Push things async
       email
  image processing
  add-on validation
                      specifically fixing data
                      changes bet ween php
                      and python




                                           mozilla
from celeryutils import task

@task
def update_tag(tag, **kw):
    tag.update_stat()




                             mozilla
from celeryutils import task

@task(rate_limit='60/h')
def update_tag(tag, **kw):
    tag.update_stat()




                             mozilla
from tasks import update_tag

update_tag.delay(tag)




                          mozilla
Measurement




              mozilla
Timing Middleware
                                                         http://bit.ly/timing-ware




Credit: http://www.flickr.com/photos/wwarby/3297205226/
                                                                             mozilla
mozilla
3. Localization



                  mozilla
show site in arabic?




40+ languages
 including rtl


                               mozilla
content translated

          and

          templates




Database strings



                               mozilla
class Addon(caching.base.CachingMixin,
            models.Model):
    ...
    name = models.ForeignKey(Translation)




                                       mozilla
addon.name = 'name'
addon.save()




                      mozilla
addon.name = 'name'
addon.save()


addon.name = {'fr': 'la nomme'}
addon.save()




                                  mozilla
Templates



            mozilla
Django
{% blocktrans with app=request.APP %}
        Add-ons for {{ app }}
         {% endblocktrans %}




                                   mozilla
Jinja2
          http://jinja.pocoo.org/
{{ _('Add-ons for {0}')|f(request.APP) }}




                                     mozilla
Python Unicode hell
UnicodeDecodeError: 'ascii' codec can't
decode byte 0xd0 in position 16: ordinal
            not in range(128)




                                     mozilla
4. Reuse



           mozilla
Bleach
 http://pypi.python.org/pypi/




Credit: http://www.flickr.com/photos/maisonbisson/3350954463/
                                                               mozilla
>>> bleach.clean('an
<script>evil()</script>
example')

'an &lt;script&gt;evil()&lt;/
script&gt; example'



                           mozilla
>>> bleach.linkify('an http://
ex.com url')

'an <a href="http://ex.com"
rel="nofollow">http://ex.com</
a> url'



                           mozilla
Javascript tests



                   mozilla
django-qunit
http://bit.ly/django-qunit



                             kumar




                                     mozilla
test('English', function() {
    z.refreshL10n('en-us');
    equals($('textarea:visible', this.sandbox).text().trim(),
           'Firebug integrates with Firefox to put ' +
           'a wealth of development tools...');
});




                                                         mozilla
test('Japanese', function() {
    z.refreshL10n('ja');
    equals($('textarea:visible', this.sandbox).text().trim(),
           'Firebug    Web                          ' +

           '                       Firefox' +
           '                         ');
});




                                                         mozilla
So we use hudson for CI,
                but haven’t got the
                automated tests in yet

                Hoping to do this via
                jstestnet




Use HudsonJenkins
    http://bit.ly/jstestnet




                                           mozilla
pep 8
                                                          py flakes
                                                          MacCabe




    Flake8
    http://bit.ly/flake8
Credit: http://www.flickr.com/photos/nebarnix/357779131/
                                                                      mozilla
~/sandboxes/zamboni(632719) $ flake8 apps/editors/tasks.py
apps/editors/tasks.py:1: 'datetime' imported but unused
apps/editors/tasks.py:3: 'stat' imported but unused




                                                             mozilla
Playdoh
                                       http://bit.ly/mozilla-playdoh

                                                                   fred wenzel




Credit: http://www.flickr.com/photos/ahmee/97960570/
                                                                                 mozilla
Basis for new projects


                     mozilla
Celery support
Jinja2 support
Simple migrations

By default:
		 SHA-512 password hashing
		 X-Frame-Options: DENY
		 secure and httponly flags on cookies
                               fred wenzel




                                             mozilla
Take inspiration from...
but not the best for you
                  for example jinja2 which
                  makes integration with
                  lots of django addons
                  possible, but a bit harder




                                         mozilla
Questions?
              @andymckay
         andym@mozilla.com
andym on irc.freenode.net, irc.mozilla.org



                                        mozilla

Weitere ähnliche Inhalte

Ähnlich wie Anatomy of a large Django site

Python在豆瓣的应用
Python在豆瓣的应用Python在豆瓣的应用
Python在豆瓣的应用Qiangning Hong
 
Intro to Web Components, Polymer & Vaadin Elements
Intro to Web Components, Polymer & Vaadin ElementsIntro to Web Components, Polymer & Vaadin Elements
Intro to Web Components, Polymer & Vaadin ElementsManuel Carrasco Moñino
 
Mozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nMozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nHenrik Skupin
 
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser WorkshopTaro Matsuzawa
 
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!MongoDB
 
2013 lecture-01-introduction
2013 lecture-01-introduction2013 lecture-01-introduction
2013 lecture-01-introductionPharo
 
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)Igalia
 
Finding target for hacking on internet is now easier
Finding target for hacking on internet is now easierFinding target for hacking on internet is now easier
Finding target for hacking on internet is now easierDavid Thomas
 
Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)Fred Lin
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB
 
MoSKito at Silpion Solutionscamp 2014
MoSKito at Silpion Solutionscamp 2014MoSKito at Silpion Solutionscamp 2014
MoSKito at Silpion Solutionscamp 2014Leon Rosenberg
 
Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongoDB
 
Change by HTML5
Change by HTML5Change by HTML5
Change by HTML5dynamis
 
HTML5 & Web Platform
HTML5 & Web PlatformHTML5 & Web Platform
HTML5 & Web PlatformSwapSkills
 
Performance Of Web Applications On Client Machines
Performance Of Web Applications On Client MachinesPerformance Of Web Applications On Client Machines
Performance Of Web Applications On Client MachinesCurelet Marius
 
Openmind magnolia modules 2010
Openmind magnolia modules 2010Openmind magnolia modules 2010
Openmind magnolia modules 2010fabrizio giustina
 
Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).Roberto Polli
 

Ähnlich wie Anatomy of a large Django site (20)

Python在豆瓣的应用
Python在豆瓣的应用Python在豆瓣的应用
Python在豆瓣的应用
 
Intro to Web Components, Polymer & Vaadin Elements
Intro to Web Components, Polymer & Vaadin ElementsIntro to Web Components, Polymer & Vaadin Elements
Intro to Web Components, Polymer & Vaadin Elements
 
Mozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nMozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10n
 
MongoDB and Python
MongoDB and PythonMongoDB and Python
MongoDB and Python
 
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
 
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
 
2013 lecture-01-introduction
2013 lecture-01-introduction2013 lecture-01-introduction
2013 lecture-01-introduction
 
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
Improving Chromium's code health: Onion Soup and beyond (BlinkOn 11)
 
Finding target for hacking on internet is now easier
Finding target for hacking on internet is now easierFinding target for hacking on internet is now easier
Finding target for hacking on internet is now easier
 
Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt Groupe
 
MoSKito at Silpion Solutionscamp 2014
MoSKito at Silpion Solutionscamp 2014MoSKito at Silpion Solutionscamp 2014
MoSKito at Silpion Solutionscamp 2014
 
Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-final
 
Change by HTML5
Change by HTML5Change by HTML5
Change by HTML5
 
HTML5 & Web Platform
HTML5 & Web PlatformHTML5 & Web Platform
HTML5 & Web Platform
 
Performance Of Web Applications On Client Machines
Performance Of Web Applications On Client MachinesPerformance Of Web Applications On Client Machines
Performance Of Web Applications On Client Machines
 
mozilla_browser
mozilla_browsermozilla_browser
mozilla_browser
 
Openmind magnolia modules 2010
Openmind magnolia modules 2010Openmind magnolia modules 2010
Openmind magnolia modules 2010
 
Openmind modules 2010
Openmind modules 2010Openmind modules 2010
Openmind modules 2010
 
Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).Scaling mysql with python (and Docker).
Scaling mysql with python (and Docker).
 

Mehr von ConFoo

Debugging applications with network security tools
Debugging applications with network security toolsDebugging applications with network security tools
Debugging applications with network security toolsConFoo
 
The business behind open source
The business behind open sourceThe business behind open source
The business behind open sourceConFoo
 
Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?ConFoo
 
OWASP Enterprise Security API
OWASP Enterprise Security APIOWASP Enterprise Security API
OWASP Enterprise Security APIConFoo
 
Introduction à la sécurité des WebServices
Introduction à la sécurité des WebServicesIntroduction à la sécurité des WebServices
Introduction à la sécurité des WebServicesConFoo
 
Le bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuagesLe bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuagesConFoo
 
The Solar Framework for PHP
The Solar Framework for PHPThe Solar Framework for PHP
The Solar Framework for PHPConFoo
 
Décrire un projet PHP dans des rapports
Décrire un projet PHP dans des rapportsDécrire un projet PHP dans des rapports
Décrire un projet PHP dans des rapportsConFoo
 
Server Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and WatchdogServer Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and WatchdogConFoo
 
Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+ConFoo
 
Think Mobile First, Then Enhance
Think Mobile First, Then EnhanceThink Mobile First, Then Enhance
Think Mobile First, Then EnhanceConFoo
 
Metaprogramming in Ruby
Metaprogramming in RubyMetaprogramming in Ruby
Metaprogramming in RubyConFoo
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101ConFoo
 
As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?ConFoo
 
Pragmatic Guide to Git
Pragmatic Guide to GitPragmatic Guide to Git
Pragmatic Guide to GitConFoo
 
Building servers with Node.js
Building servers with Node.jsBuilding servers with Node.js
Building servers with Node.jsConFoo
 
An Overview of Flash Storage for Databases
An Overview of Flash Storage for DatabasesAn Overview of Flash Storage for Databases
An Overview of Flash Storage for DatabasesConFoo
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartConFoo
 
Develop mobile applications with Flex
Develop mobile applications with FlexDevelop mobile applications with Flex
Develop mobile applications with FlexConFoo
 
WordPress pour le développement d'aplications web
WordPress pour le développement d'aplications webWordPress pour le développement d'aplications web
WordPress pour le développement d'aplications webConFoo
 

Mehr von ConFoo (20)

Debugging applications with network security tools
Debugging applications with network security toolsDebugging applications with network security tools
Debugging applications with network security tools
 
The business behind open source
The business behind open sourceThe business behind open source
The business behind open source
 
Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?
 
OWASP Enterprise Security API
OWASP Enterprise Security APIOWASP Enterprise Security API
OWASP Enterprise Security API
 
Introduction à la sécurité des WebServices
Introduction à la sécurité des WebServicesIntroduction à la sécurité des WebServices
Introduction à la sécurité des WebServices
 
Le bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuagesLe bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuages
 
The Solar Framework for PHP
The Solar Framework for PHPThe Solar Framework for PHP
The Solar Framework for PHP
 
Décrire un projet PHP dans des rapports
Décrire un projet PHP dans des rapportsDécrire un projet PHP dans des rapports
Décrire un projet PHP dans des rapports
 
Server Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and WatchdogServer Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and Watchdog
 
Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+
 
Think Mobile First, Then Enhance
Think Mobile First, Then EnhanceThink Mobile First, Then Enhance
Think Mobile First, Then Enhance
 
Metaprogramming in Ruby
Metaprogramming in RubyMetaprogramming in Ruby
Metaprogramming in Ruby
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101
 
As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?As-t-on encore besoin d'un framework web ?
As-t-on encore besoin d'un framework web ?
 
Pragmatic Guide to Git
Pragmatic Guide to GitPragmatic Guide to Git
Pragmatic Guide to Git
 
Building servers with Node.js
Building servers with Node.jsBuilding servers with Node.js
Building servers with Node.js
 
An Overview of Flash Storage for Databases
An Overview of Flash Storage for DatabasesAn Overview of Flash Storage for Databases
An Overview of Flash Storage for Databases
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Develop mobile applications with Flex
Develop mobile applications with FlexDevelop mobile applications with Flex
Develop mobile applications with Flex
 
WordPress pour le développement d'aplications web
WordPress pour le développement d'aplications webWordPress pour le développement d'aplications web
WordPress pour le développement d'aplications web
 

Kürzlich hochgeladen

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Kürzlich hochgeladen (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Anatomy of a large Django site