Django community: Community blog posts RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Djangocon: Cardiff
(One of the summaries of a talk at the 2015 Djangocon EU conference). Conference introduction Some noteworthy items from the introduction: There's a creche! So people with small children also can come. No water bottles. Well, actually, everyone got a aluminium wateter bottle, hand-washed by the conference chair :-) You think I'm typing fast for these summaries? There were two live speach-to-text typists that provided live subtitles on a couple of monitors! Wow. Handy for those with hearing problems and for those whose first language isn't English. Cardiff University wellbeing service The cardiff university's wellbeing service offers help during the conference. For instance with managing stress and other common workplace difficulties. Also advice with physical and emotional wellbeing. Think about the top 5 most important items in your life. If you'd draw it as a pie chart, how much would you allocate for every one of them? Is there for instance a 'work' segment that takes up 70%, drowning out the rest? Wellbeing is linked to increased productivity in work and improved work performance. More than 40% of persons have problems that impact their work productivity! Work intruding on the rest of their lives, for instance. Or a sedentary lifestyle … -
Djangocon: Reaching out, Django in the social sciences - Lucie Daeye
(One of the summaries of a talk at the 2015 Djangocon EU conference). Lucie Daeye is a social scientist that just picked up django last year. But she already organized a django girls paris event and is busy getting a PyLadies Paris started. For her research, she has to keep all sorts of data on restaurants. Addresses, text from interviews, other data. She thought there would be already software for that. Something with automatic address import, perhaps automatic simple maps, easy way to add notes, etcetera. She asked her professor for the name of the software she needed to download and he said "use a spreadsheet". Ouch. No. Back to paper? All kinds of papers in multiple folders? No... She asked other PhDs for what they're using. Basically electronic files in lots of remote folders... She complained to a developer friend who pointed her at Django. She got something simple working with the django admin. A single "Restaurant" model. Now she wanted to have a map. Which meant she actually had to program. She saw that there would be a one-workshop for woman that wanted to learn programming (djangogirls). One one-day workshop and 10 hours of work afterwards and she … -
Djangocon: Salt for django developers - Yann Malet
(One of the summaries of a talk at the 2015 Djangocon EU conference). Yann Malet is a co-author of high performance django. He now talks about salt, a tool for configuration managament and remote server setup. First some terminology, which might not be clear for non-english speakers. Master: the main machine that steers the whole process. Minions: the "slaves", the machines that are managed by the master. You can run commands and so on those minions. You don't need to do it on all of them, you can target specific groups like "os.ubuntu" or "role:web". He showed a couple of commandline examples like adding users and keys to a fresh system. Pillar: a set of variables for one or more minions. Look at it as a python dict. Grain: where pillar is more for multiple minions, grains are for one specific minion. It is the static data collected from the minion, like the amount of memory in the machine. In the end, the various information for the minions is all squashed together, based on the roles the minion needs to have. The total state is then pushed to the minion and applied. The easiest way to do custom stuff, like … -
Djangocon: Switching from nose to py.test at Mozilla - Mathieu Agopian
(One of the summaries of a talk at the 2015 Djangocon EU conference). Mathieu Agopian likes py.test much more than regular python unittests or nose. A bit of terminology. A test is a piece of code written to assert that another piece of code is behaving as expected. Test runner: gathers test and runs them. Test suite (or "a built"): full collection of tests to run. py.test is already quite old and it is now maintained by a big team. One of the handy features is tests written without boilerplate. assert 1 + 1 == 2 works! No need for self.assertEquals(). There is a plugin system. Like nose, it doesn't show output if the test runs OK. If a test fails, py.test provides awesome error reports. "This item misses from the second dict" instead of only showing the two dicts, for instance. Test fixtures are done via dependency injection: you just pass a fixture to the test function. No need for testSetup() and testTeardown(). You can run the same test with multiple parameters. Plugins? For instance pytest-django, which runs createdb for you. pytest-cache is another good one. It allows you to run the tests with the --lf, "last failed", option. … -
Djangocon: A sincere tale of Django, developers and security - Erik Romijn
(One of the summaries of a talk at the 2015 Djangocon EU conference). Eric Romijn explains us about security. Computers work differently than humans. Two handy questions: How does it know it? A computer is deterministic. It does what you told it to do. How might someone implement it in software? Which corner cases would be likely to be forgotten? How would the programmer explain the program to a 6 year old? He showed an example of a 2006 PHP form at his university that, with a correct university-wide username/password combination, would create a user account with the same password on a linux machine. So... a php script wouldn't normally be able to do that. So there would be something somewhere on the system that could get root access from within the webserver's process. In the end he found it... So: relentlessly ask questions. Take things apart and think creatively. Now on to django. Django, by default, is quite secure. The good thing is that django reduces the number of things you yourself can screw up. For instance, there's a good login system in place. Once you write your own authentication, you can much more easily screw it up because … -
Djangocon: On privilege and moral duty - Maik Hoepfel
(One of the summaries of a talk at the 2015 Djangocon EU conference). Maik Hoepfel says we have superpowers. Just a few programmers can write a dating website that arranges thousands of relationships. We can write software that detects earthquake victims in an afternoon. We write software that make traffic lights safe. We are in demand. We are privileged. Very privileged. We don't have a dress code. We have flexible hours. Who else has this? We belong to the "1%". (Note that a commenter afterwards took issue with the 1%: we're very privileged, but we're not making the millions of Euros that would put us in the 1% in our countries.) On the other hand, companies pay hefty sums to get us to work for us. But still we're afraid to ask for things. Negotiating regular work hours instead of having to work 60 hours a week? Time for exercise and good sleep? Time for our families? We have the power to negotiate. Why don't we do that? We could use that extra time and money for other things. Teaching people. Being there for family. Maintaining open source projects. Note also: much of our work has little impact. How much … -
Djangocon: lightning talks day 1
(One of the summaries of a talk at the 2015 Djangocon EU conference). Note beforehand: it all goes by so quick that I'm bound to miss (or mangle) names. If you want something corrected, just send me a mail or comment below. URLs to projects are also welcome if I missed them :-) I am a doctor.... - Dr Russell Keith-Magee 10 year veteran of the django core team. He also started BeeWare, a set of IDE tools. He also started his own company. He's also a doctor in computer science. So what he's going to say isn't medical advice. He has his fingers in a lot of pies. He was an angry man in the recent years. He also had some health problems with his back and shoulders. A few months ago, he broke down and couldn't take it any more. He didn't have any energy anymore to do anything. Diagnosis: deep depression. He's started therapy and is fine now. He's just started, so it is too far off to declare victory yet. Why he goes public: he wants to tell us to not put off going to a therapist or doctor. He put it off for much too … -
Dreaming big?
Optional Reality's Dreaming Big Challenge has come to an end. This was a challenge about designing a "sales pitch" in 600 words or less for a text-based online roleplaying game. This is the kind of pitch you'd tease knowledgeable investors with - if investors cared about multiplayer text games and you ended up in an elevator with one, that is. There were 10 entries to the competition and as the results are now in (including very elaborate judge feedback!), I encourage you to go read all the entries. The focus was on originality and fresh ideas and maybe these short pitches represent a cross-section of the current trends or a whiff of where the wind is blowing for future games. Or maybe it will help inspire you to make a sales pitch of your own.You can find all the entries linked from the second post of this thread. Enjoy! -
Dynamic Models in Django-Part1 (adding new fields to models from admin)
Some times in the production level there may be a chance of adding new fields to our model.With the normal django models when we add new field to the model the database is not able to identify the new field.To make database identify the new field we have to drop the existing database from the database and sync our application again.During the time of production it is not possible to remove the existing data. The solution for this is Django-eav.With this we can add any no of fields to our models on fly. Steps To add New fields to the models Using django-eav: Step1:Install django-eav using the following command pip install -e git+git://github.com/mvpdev/django-eav.git#egg=django-eav Step2:Add 'eav' to your INSTALLED_APPS in your project’s settings.py file. Step3:Register your models with eav. To register any model with EAV, you simply need to add the registration line somewhere that will be executed when django starts: import eav eav.register(Patient) Keep the above lines any where in your models.py Step4:Configure your models so that you can create new fields from admin it self You can even have your eav attributes show up just like normal fields in your models admin pages. Just register using the eav admin class: from django.contrib import admin … -
E-commerce (paypal) integration with Django
E-commerce is integration is becoming almost essential for every web application now a days. There are so many payment gateways to integrate with our application. Some of them are Amazon payments, Asiapay, BPAY, Brain Tree, PayPal ...etc. Out of these now in this we'll see how to integrate Paypal with our django Application. Integrating Paypal with Django: Paypal provides two kinds of api for integrating any application with it. They are 1.PayPal REST api 2.PayPal CLASSIC api 1. Integrating with REST api: Integrting paypal with dajngo with REST api is some what easy and easy to understnad. Paypal provides a sdk for integrating PayPal with Django, that is 'paypal rest sdk'. For more about restsdk check this https://github.com/paypal/rest-api-sdk-python and https://developer.paypal.com/webapps/developer/docs/api/ 2.Integrating Paypal with classic api: First intialise the paypal urls for endpoint and paypal connection as follows. End_url = 'https://api-3t.sandbox.paypal.com/nvp' PAYPAL_URL = 'https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=' Buyers use Express Checkout to pay you on PayPal's secure site and return to your site to complete the transaction. 1.Setting express checkout for transaction: params = { 'USER' : 'xxxxxxxx', # Edit this to your API user name 'PWD' : 'xxxxxxxx', # Edit this to your API password 'SIGNATURE' : 'AFcWxV21C7fd0v3bYYYRCpSSRl31A0ltbCXAvF44j6B.kUqG3MePFr40', 'METHOD':'SetExpressCheckout', 'VERSION':86, 'PAYMENTREQUEST_0_PAYMENTACTION':'SALE', # type of payment 'PAYMENTREQUEST_0_AMT':50, # amount of … -
E-commerce (paypal) integration with Django
E-commerce is integration is becoming almost essential for every web application nowadays. There are so many payment gateways to integrate with our application. Some of them are Amazon payments, Asiapay, BPAY, Brain Tree, PayPal ...etc. Out of these now in this, we'll see how to integrate Paypal with our Django Application. Integrating Paypal with Django: Paypal provides two kinds of API for integrating any application with it. They are 1.PayPal REST API 2.PayPal CLASSIC API 1. Integrating with REST API: Integrating PayPal with Django with REST API is somewhat easy and easy to understand. Paypal provides an SDK for integrating PayPal with Django, that is 'PayPal rest SDK'. For more about restsdk check this https://github.com/paypal/rest-api-sdk-python and https://developer.paypal.com/webapps/developer/docs/api/ 2.Integrating Paypal with classic API: First, initialize the PayPal URLs for endpoint and PayPal connection as follows. End_url = 'https://api-3t.sandbox.paypal.com/nvp' PAYPAL_URL = 'https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=' Buyers use Express Checkout to pay you on PayPal's secure site and return to your site to complete the transaction. 1.Setting express checkout for the transaction: params = { 'USER' : 'xxxxxxxx', # Edit this to your API user name 'PWD' : 'xxxxxxxx', # Edit this to your API password 'SIGNATURE' : 'AFcWxV21C7fd0v3bYYYRCpSSRl31A0ltbCXAvF44j6B.kUqG3MePFr40', 'METHOD':'SetExpressCheckout', 'VERSION':86, 'PAYMENTREQUEST_0_PAYMENTACTION':'SALE', # type of payment 'PAYMENTREQUEST_0_AMT':50, # amount of transaction 'PAYMENTREQUEST_0_CURRENCYCODE':'USD', 'cancelUrl':"xxxxxxxxxxxxx", … -
Dynamic Models in Django-Part1 (adding new fields to models from admin)
Sometimes at the production level, there may be a chance of adding new fields to our model.With the normal Django models when we add a new field to the model, the database is not able to identify the new field.To make database identify the new field we have to drop the existing database from the database and sync our application again.During the time of production, it is not possible to remove the existing data. The solution for this is Django-eav.With this, we can add any no of fields to our models on fly. Steps To add New fields to the models Using Django-eav: Step1: Install Django-eav using the following command pip install -e git+git://github.com/mvpdev/django-eav.git#egg=django-eav Step2: Add 'eav' to your INSTALLED_APPS in your project’s settings.py file. Step3: Register your models with eav. To register any model with EAV, you simply need to add the registration line somewhere that will be executed when Django starts: import eav eav.register(Patient) Keep the above lines anywhere in your models.py Step4: Configure your models so that you can create new fields from admin itself You can even have your eav attributes show up just like normal fields in your model's admin pages. Just register using the eav admin class: from django.contrib … -
Djangocon by train (plus travel tips)
I'm busy packing my bags right now. One large backpack and my regular laptop backpack. And a small money belt. The laptop bag is what I use daily. Going to a conference practically forces me to empty it out completely. Only time during the year that it happens. So that's a good thing. During the conference, I use it for my laptop, power cable, the programme, a water bottle and my jacket. For conferences, you often walk quite a bit through a city, so a proper backpack is way preferrable. During travel, this is what I use for everything I need to have handy, like extra snacks, a book, earphones, the printed-out hotel booking, etc. The large backpack is for my spare clothes, spare book, tooth brush. The regular stuff. I much prefer a big backpack to some trolley on little wheels I have to drag behind me. It might not look so "standard", but that doesn't matter much to me. It is simply more practical. Though, I must confess, the combination of two backpacks naturally leaves a little bit to be desired :-) The money belt is actually not the belt-around-the-waist type, but a small flat bag that hangs … -
Newsletter #5
Welcome to the latest news about Two Scoops Press, Daniel Roy Greenfeld (pydanny), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 is in Print We're happy to announce that the print edition of Two Scoops of Django 1.8 is now available as a physical, printed book. We're taking pre-orders now, to begin shipping on Friday, June 5th (that's when the books begin arriving at our house). Purchase Two Scoops of Django 1.8 Print Paperback in our shop In addition to the print book, we've also added a print/ebook bundle that is US$24.95 cheaper than if you bought the book and PDF separately. If you purchased the Early Release PDF, you will be receiving an email containing a discount code that works in our store worth US$24.95 off the print edition. We couldn't have done this without the encouragement of friends from around the world, or the contributors who so diligently submitted changes and corrections. From the bottom of our hearts, we thank you. You can also purchase Two Scoops of Django 1.8 on Amazon. You should be able to purchase the printed book on Amazon.in and Flipkart soon. If you have any questions, please read the Two Scoops … -
Newsletter #5
Welcome to the latest news about Two Scoops Press, Daniel Roy Greenfeld (pydanny), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 is in Print We're happy to announce that the print edition of Two Scoops of Django 1.8 is now available as a physical, printed book. We're taking pre-orders now, to begin shipping on Friday, June 5th (that's when the books begin arriving at our house). Purchase Two Scoops of Django 1.8 Print Paperback in our shop In addition to the print book, we've also added a print/ebook bundle that is US$24.95 cheaper than if you bought the book and PDF separately. If you purchased the Early Release PDF, you will be receiving an email containing a discount code that works in our store worth US$24.95 off the print edition. We couldn't have done this without the encouragement of friends from around the world, or the contributors who so diligently submitted changes and corrections. From the bottom of our hearts, we thank you. You can also purchase Two Scoops of Django 1.8 on Amazon. You should be able to purchase the printed book on Amazon.in and Flipkart soon. If you have any questions, please read the Two Scoops … -
Newsletter #5
Welcome to the latest news about Two Scoops Press, Daniel Roy Greenfeld (pydanny), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 is in Print We're happy to announce that the print edition of Two Scoops of Django 1.8 is now available as a physical, printed book. We're taking pre-orders now, to begin shipping on Friday, June 5th (that's when the books begin arriving at our house). Purchase Two Scoops of Django 1.8 Print Paperback in our shop In addition to the print book, we've also added a print/ebook bundle that is US$24.95 cheaper than if you bought the book and PDF separately. If you purchased the Early Release PDF, you will be receiving an email containing a discount code that works in our store worth US$24.95 off the print edition. We couldn't have done this without the encouragement of friends from around the world, or the contributors who so diligently submitted changes and corrections. From the bottom of our hearts, we thank you. You can also purchase Two Scoops of Django 1.8 on Amazon. You should be able to purchase the printed book on Amazon.in and Flipkart soon. If you have any questions, please read the Two Scoops … -
Improved Django Tests
Improved Django Tests -
Celery With Supervisor
Celery: Celery is a task queue with focus on real-time processing,while also supports task scheduling. Task queues are used as mechanisms to distribute work across multiple threads or machines. A task queues input is a unit of work called a task,dedicated worker processes and constantly moniter the queue for new work to perform. Celery communicates via messages using a broker to mediate between workers and clients.To initiate a task client puts a message on the queue, then the broker delivers that message to a worker. Note: You can get more about celery http://celery.readthedocs.org/en/latest/django/first-steps-with-django.html To run celery in virtual environment need to type the following command in your virtual environment export C_FORCE_ROOT="true" Running the worker with supervisor In production you will want to run the worker in the background as a daemon and some times there may be a chance of stopping of celery worker automatically then it should be restarted automatically. To do thes tasks you need to use the tools provided like supervisord. First, you need to install supervisor in your virtualenv and generate a configuration file. $ pip install supervisor $ cd /path/to/your/project $ echo_supervisord_conf > supervisord.conf Next, just add the following section in configuration file: … -
My First Django Girls Event
Since the first Django Girls event I've watched the movement grow with a sense of of awe and inevitability. There is something about it that is both contagious and powerful, and in a very good way. This past weekend I had my first chance to attend one of their events in Ensenada, Mexico. This is what we saw. A room full of attendees with laser focus. The coaches were clearly inspired by the dedication of the women who had come to learn and grow. #djangogirls A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 7:42am PDT By the end of the day, the energy hadn't dwindled, it had accelerated. Saying goodbye to #djangogirls Ensenada. Everyone stayed until the very end. A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:10am PDT No one wanted the day to end. #djangogirls Ensenada attendees so dedicated they stayed after the event finished! :-) A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:14am PDT We did our small part. We coached and did our best to give an inspirational talk. Programming Gives You Superpowers from Audrey & Daniel Roy Greenfeld The Django Girls Ensenada … -
Django Girls Ensenada 2015
Since the first Django Girls event I've watched the movement grow with a sense of of awe and inevitability. There is something about it that is both contagious and powerful, and in a very good way. This past weekend I had my first chance to attend one of their events in Ensenada, Mexico. This is what we saw. A room full of attendees with laser focus. The coaches were clearly inspired by the dedication of the women who had come to learn and grow. #djangogirls A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 7:42am PDT By the end of the day, the energy hadn't dwindled, it had accelerated. Saying goodbye to #djangogirls Ensenada. Everyone stayed until the very end. A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:10am PDT No one wanted the day to end. #djangogirls Ensenada attendees so dedicated they stayed after the event finished! :-) A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:14am PDT We did our small part. We coached and did our best to give an invited inspirational talk. Programming Gives You Superpowers from Audrey & Daniel Roy Greenfeld The Django Girls … -
Django Girls Ensenada 2015
Since the first Django Girls event I've watched the movement grow with a sense of of awe and inevitability. There is something about it that is both contagious and powerful, and in a very good way. This past weekend I had my first chance to attend one of their events in Ensenada, Mexico. This is what we saw. A room full of attendees with laser focus. The coaches were clearly inspired by the dedication of the women who had come to learn and grow. #djangogirls A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 7:42am PDT By the end of the day, the energy hadn't dwindled, it had accelerated. Saying goodbye to #djangogirls Ensenada. Everyone stayed until the very end. A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:10am PDT No one wanted the day to end. #djangogirls Ensenada attendees so dedicated they stayed after the event finished! :-) A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:14am PDT We did our small part. We coached and did our best to give an invited inspirational talk. Programming Gives You Superpowers from Audrey & Daniel Roy Greenfeld The Django Girls … -
Cakti at CRS ICT4D 2015
This is Caktus’ first year taking part in the Catholic Relief Service’s (CRS) Information and Communication Technologies for Development (ICT4D) conference. The theme of this year’s conference is increasing the impact of aid and development tools through innovation. We’re especially looking forward to all of the speakers from organizations like the International Rescue Committee, USAID, World Vision, and the American Red Cross. In fact, the offerings are so vast, we thought we would provide a little cheat sheet to help you find Cakti throughout this year’s conference. Wednesday, May 27th How SMS Powers Democracy in Libya Vinod Kurup will explain how Caktus used Rapid SMS, a Django-based SMS framework, to build the world’s first voter registration system in Libya. Commodity Tracking System (CTS): Tracking Distribution of Commodities Jack Byrne of the International Rescue Committee(IRC) is the Syria Response Director. He will present on the Caktus-built system IRC uses to track humanitarian aid for Syrian refugees. Friday, May 29th Before the Pilot: Planning for Scale Caktus’ CTO Colin Copeland will be part of a panel discussion on what technology concepts matter most at the start of a project and the various challenges of pilot programs. Also on the panel will be … -
PyPy.js: What? How? Why? by Ryan Kelly (PyCon 2015 Must-See Talk: 5/6)
Part five of six in our PyCon 2015 Must-See Series, a weekly highlight of talks our staff enjoyed at PyCon. From Ryan Kelly's talk I learned that it is actually possible, today, to run Python in a web browser (not something that interprets Python-like syntax and translates it into JavaScript, but an actual Python interpreter!). PyPy.js combines two technologies, PyPy (the Python interpreter written in Python) and Emscripten (an LLVM-to-JavaScript converter, typically used for getting games running in the browser), to run PyPy in the browser. This talk is a must-see for anyone who's longed before to write client-side Python instead of JavaScript for a web app. While realistically being able to do this in production may still be a ways off, at least in part due to the multiple megabytes of JavaScript one needs to download to get it working, I enjoyed the view Ryan's talk provided into the internals of this project. PyPy itself is always fascinating, and this talk made it even more so. .embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } More in … -
My First Django Girls Event
Since the first Django Girls event I've watched the movement grow with a sense of of awe and inevitability. There is something about it that is both contagious and powerful, and in a very good way. This past weekend I had my first chance to attend one of their events in Ensenada, Mexico. This is what we saw. A room full of attendees with laser focus. The coaches were clearly inspired by the dedication of the women who had come to learn and grow. #djangogirls A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 7:42am PDT By the end of the day, the energy hadn't dwindled, it had accelerated. Saying goodbye to #djangogirls Ensenada. Everyone stayed until the very end. A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:10am PDT No one wanted the day to end. #djangogirls Ensenada attendees so dedicated they stayed after the event finished! :-) A photo posted by Daniel Greenfeld (@pydanny) on May 26, 2015 at 8:14am PDT We did our small part. We coached and did our best to give an inspirational talk. Programming Gives You Superpowers from Audrey & Daniel Roy Greenfeld -
Django interview questions ...
... and some answers Well I haven't conducted any interviews recently but this one has been laying in my drafts for a quite while so it is time to take it out of the dust and finish it. As I have said in Python Interview Question and Answers these are basic questions to establish the basic level of the candidates. Django's request response cycle You should be aware of the way Django handles the incoming requests - the execution of the middlewares, the work of the URL dispatcher and what should the views return. It is not necessary to know everything in the tiniest detail but you should be generally aware of the whole picture. For reference you can check "the live of the request" slide from my Introduction to Django presentation. Middlewares - what they are and how they work Middlewares are one of the most important parts in Django. Not only because they are quite powerfull and useful but also because the lack of knowledge about their work can lead to hours of debugging. From my experience the process_request and process_response hooks are the most frequently used and those are the one I always ask for. You should …