SlideShare a Scribd company logo
1 of 118
<?php
 echo ($AgileFramework == $HappyDeveloper) ?
           “Rasmus, think again!” : die(‘PHP’);




   delicious.com          bookmarks.yahoo.com             addons.mozilla.org




            All sites above were created using a PHP Framework.
Rasmus, Think Again! Agile Framework == Happy Php Developer
Who am I ?
Xinc - Lead Developer
Akelos Framework - Core Contributor
     BermiLabs.com - Partner
C, C++, C#
That’s not me!
Been there. Done that.
Got over it!
I am a Web Developer.

   Like you!
I am Pragmatic




 does the Job
  since 1995
1995
a star is
   born
Do you like Spaghetti?
Do you like Spaghetti?
                Warning:
The following slides contain spaghetti code.
The “Italian” Scripting Language




                                                                     * 1995
* Sample Snippet from 1995 (http://talks.php.net/show/froscon08/4)
The “Italian” Scripting Language
                                            ? ! ? ! ? ! ?!?!?!?




                                  ok, back then .. but now
                                  everything is better, no?
                                                                     * 1995
* Sample Snippet from 1995 (http://talks.php.net/show/froscon08/4)
Did I
grow up?
Did I
               grow up?


has grown up
But the manners?


                        Did I
                     grow up?


has grown up
“Spaghetti a la OOP” anyone?




                                                                     * 2005
* Sample Snippet from 2005 (http://talks.php.net/show/froscon08/5)
“Spaghetti a la OOP” anyone?

                                                                          at least stmts!


                                                                useless exception handling!




                                                                       wow! heredocs as
                                                                        view template!



                                                                             * 2005
* Sample Snippet from 2005 (http://talks.php.net/show/froscon08/5)
dont_get_me_wrong.php4
<?php
$dirty_coder = ‘Spaghetti coder’;
while ($iWasLearning /* in 1999 */) {
  echo “I was a $dirty_codern”;
}
I know what it’s like ...




              ... to maintain spaghetti code.
iChanged_in.php5
<?php
$everything /* became a */ = new Object();
$inPHP = ‘5’;
$andMixing = “<html>with $php was a sin</html>”;
$frameworks = “I created a lot of them!”;
Then I realized that ...
... knowing everything better
... reinventing the wheel
... organizing source code
... over and over again

is a pretty heavy load.
But there is help ...
... to make you a more relaxed,
more productive web developer.




                                  Disclaimer:
                                  The following slides are not the view of a sect
                                  or any kind of religion. Its just pragmatic!
If you could start fresh
               ... in a new job
       ... on a new project
If you could choose ...

         Don’t us               CAF*
                 e PHP?

                    Spaghetti
                                F rameworks




                                          * Create Another Framework
Don’t use PHP?
How much Spaghetti can you take?
Create Another Framework ?
Create Another Framework ?
Create Another Framework ?
Create Another Framework ?
Create Another Framework ?
Why should you use a Framework?




      You don’t need to reinvent the wheel
In fact, most of us should not ...
Not reinventing the wheel ...

                                      Framework                               No Framework
Lines of Code you need to write




                                                           Project Complexity


                                      ... makes you code less!
                                         Disclaimer: I do not trust any statistics, I did not invent myself.
                                              Graphs are representative to express a general fact.
But I am a coder! I want to code more!
Lines of Code you need to write   But writing more code ...




                                                                 Bugs


                                    ... results in more bugs!
                                      Disclaimer: I do not trust any statistics, I did not invent myself.
                                           Graphs are representative to express a general fact.
I (the developer)
need to be in control of everything.
Control the important stuff ...
                    Important                                       Basic




Without a framework                                             With a framework



  ... to create a useful application!
            Disclaimer: I do not trust any statistics, I did not invent myself.
                 Graphs are representative to express a general fact.
Good Frameworks ...
suspects
      you from the usual
  and a shield, which protects
Good Frameworks ...
     ... while leaving room
      for your creativity....

    ... provide a solid ...
        ... unit tested ...
             ... base ...
Let us have a look at some frameworks.
Rasmus, Think Again! Agile Framework == Happy Php Developer
Framework or Library?
Component Libraries   weaker MVC   MVC Frameworks   stronger




                                         ...           ...
Framework or Library?

               Which one doMVC Frameworks
Component Libraries         I choose?
                      weaker MVC            stronger




                                   ...         ...
Framework or Library?
Component Libraries   weaker MVC   MVC Frameworks   stronger



                      +
                                         ...           ...
Choose a solid
MVC Framework




... and reuse components from libraries.
I am not going to tell you ...
... to choose a specific framework.
     (This is not an advertisement for a specific framework)
It’s up to your needs and likes.
It’s up to your needs and likes.

  .. only one thing ... if you hate configuration...
             don’t choose Symfony!
What does
agile software development
  have to do with frameworks?
Manifesto for Agile Software Development
                 (http://www.agilemanifesto.org)




Individuals and interactions over processes and tools
  Working software over comprehensive documentation
  Customer collaboration over contract negotiation
    Responding to change over following a plan
Ready to be agile?
Be agile: Responding to change




Stop fearing change. Accept it. Welcome it.
Does your current development process
         allow change easily?
Be agile
Customer Collaboration




Be transparent. About work. About timing.
Can you collaborate transparently?
Or do you need strong contracts
         to cover you ?
Be agile
Working Software




Unit tests are the best developer documentation.
Is your current software testable?
Or do you need to test manually,
       with a browser ?
Be agile
Individuals and Interaction




      The right team will do the best job.
Do you have a good team work?
     Or are you still building
hierachies and departments ?
If you answered
        one+ question(s) with

              “No ... “
you are probably not ready to be agile.
How can a framework help me here?
Design first.

Enduser centric design - Only data that is needed for
           interaction is of importance.
Test your MODELS and
   CONTROLLERS.

Tests first. Frameworks make it easy to test.
Honesty and Trust
Welcome change
  If a change breaks something,
 the unit tests will alarm you.
... still doubts?
But Rasmus said that* ...
 ... frameworks are performing poorly
       * http://tinyurl.com/frameworks-think-again
Ok, let me tell
you something about
Rasmus Lerdorf
Rasmus’ view on PHP


a simple tool for non-developers
“to solve the web problem”

.. if you cannot solve it easily with
PHP - push it to another layer* ...
* (Not everyone wants/can code php extensions)




Did I get you right Rasmus?
I got a message for you
Rasmus


Graduated Computer Scientists
are developing in PHP ...


... not just script kiddies.
Let us have a look at
Rasmus way of testing
   PHP frameworks.
Who is running the following
 Application for Business?
I am going to show you the
          source code for this
           money machine.




You need to sign a NDA before though!
Disclosed
Hello World Business Core


              <html>
              <head>                        </title>
                         hp ech o “Test” ?>
              <title><?p
               </head>
               <body>                  rld” ?>
                          o “Hello Wo
               <?php ech
                </body>
                </html>
puuuuuuh ... give me a second.
Warning: Ugly Slides ahead



Rasmus does his statistics about performance.




       Remember? I don’t trust statistics, I did not invent myself.
Rasmus, Think Again! Agile Framework == Happy Php Developer
no comment.
Ok... maybe ONE.
Rasmus simplifies things ...
for the sake of understanding?
Rasmus simplifies things ...
for the sake of understanding?
         A bit too simple.
Rasmus, Think Again! Agile Framework == Happy Php Developer
Rasmus is right.
        Frameworks suck
       for Hello World
         Applications. ;-)

           We evolved a bit since 1995...
Could someone please start a “hello business” example?
We want to make money
   become rich and famous.

 So a hello world app would maybe be
my second best choice for that purpose.
Ok, now seriously.
Frameworks
are slower than static <HTML/>
Is your primary concern Performance?
So either ...
your Application   is already that   BIG
 OR your creativity is too small
Rasmus, Think Again! Agile Framework == Happy Php Developer
You reach the
limit of your Creativity
way before ...
... you reach the limit of




  Computing
  Power
Scaling is a problem all
 of us wish to have.
But let’s first
build that great application.
But let’s first
build that great application.

    ... which millions use!
Choose a
MVC Framework




     ... today
.. and concentrate on the creative part ...
.. let’s see a
   magic example
        of how easy
web application development
        can be!
A common problem: Search Engine




 Setting up a search engine in




    based on Hyperestraier
A common problem: Search Engine


The task       add a search feature
A common problem: Search Engine


Preparation
   Install hyperestraier:
   debian: #      apt-get install hyperestraier

   Setup / Start hyperestraier:
   debian: #      estmaster init /var/myindices
   debian: #      estmaster start /var/myindices
   Create API user and index at:
   http://admin:admin@localhost:1978
   Install search plugin:
   debian: akelos# ./script/plugin install acts_as_searchable
A common problem: Search Engine


Overview
  Step 1 - Model
  Enabling the search plugin on the model Video.
  Indexing existing videos.

  Step 2 - View
  Add a search form to the archives view.

  Step 3 - Controller
  Add a search action to the video’s archive.
  /archive/search
A common problem: Search Engine


Step 1    The MODEL and the Index
A common problem: Search Engine


Step 1    The MODEL and the Index
A common problem: Search Engine


Step 1    The MODEL and the Index
A common problem: Search Engine


Step 2        The Search VIEW
A common problem: Search Engine


Step 3      The CONTROLLER
A common problem: Search Engine


The result      searchable video blog
A common problem: Search Engine


Adding fulltext search ...


     on top of an existing application ...
A common problem: Search Engine


Adding fulltext search ...


       on top of an existing application ...
   ... will take you less than 20 min.
Easy, Pragmatic Solutions for your problems




              If you use a
         Framework!
If you are not already using a framework ...

     ... choose one and try it!
If you don’t want to choose a framework.
     Be ready for people joking
             about you .....
http://www.youtube.com/watch?v=p5EIrSM8dCA
Rasmus, Think Again! Agile Framework == Happy Php Developer
Now that              know.
Tell your ...


  Boss                 Colleagues   Friends   The World


                YOU
If you feel like it
tweet me gently | twitter.com/arnoschn
  drop me a line | arno at bermilabs.com
  read about me | bermilabs.com/arno

More Related Content

Similar to Rasmus, Think Again! Agile Framework == Happy Php Developer

Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdminsPuppet
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Ivo Jansch
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic RevisitedAdam Keys
 
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...Matthias Noback
 
3stages Wdn08 V3
3stages Wdn08 V33stages Wdn08 V3
3stages Wdn08 V3Boris Mann
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austinmatthewbrahms
 
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...Marco Cedaro
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming languageMarco Cedaro
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Nick Galbreath
 
Back to basics simple, elegant, beautiful code
Back to basics   simple, elegant, beautiful codeBack to basics   simple, elegant, beautiful code
Back to basics simple, elegant, beautiful codeAndrew Harcourt
 
Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)Jorge López-Lago
 
Docker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatternsDocker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatternsLenses.io
 
On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)Zoe Landon
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Ivo Jansch
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014michaelag1971
 
Adventures in Asymmetric Warfare
Adventures in Asymmetric WarfareAdventures in Asymmetric Warfare
Adventures in Asymmetric WarfareWill Schroeder
 
Trusting files (and their formats)
Trusting files (and their formats)Trusting files (and their formats)
Trusting files (and their formats)Ange Albertini
 

Similar to Rasmus, Think Again! Agile Framework == Happy Php Developer (20)

Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
 
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
 
3stages Wdn08 V3
3stages Wdn08 V33stages Wdn08 V3
3stages Wdn08 V3
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austin
 
Spaghetti gate
Spaghetti gateSpaghetti gate
Spaghetti gate
 
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013
 
Back to basics simple, elegant, beautiful code
Back to basics   simple, elegant, beautiful codeBack to basics   simple, elegant, beautiful code
Back to basics simple, elegant, beautiful code
 
Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)
 
Docker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatternsDocker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatterns
 
On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)On Selecting JavaScript Frameworks (Women Who Code 10/15)
On Selecting JavaScript Frameworks (Women Who Code 10/15)
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
Adventures in Asymmetric Warfare
Adventures in Asymmetric WarfareAdventures in Asymmetric Warfare
Adventures in Asymmetric Warfare
 
Trusting files (and their formats)
Trusting files (and their formats)Trusting files (and their formats)
Trusting files (and their formats)
 
Aug 2012 HUG: Hug BigTop
Aug 2012 HUG: Hug BigTopAug 2012 HUG: Hug BigTop
Aug 2012 HUG: Hug BigTop
 

Recently uploaded

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 

Recently uploaded (20)

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 

Rasmus, Think Again! Agile Framework == Happy Php Developer