SlideShare a Scribd company logo
PHP Reset
                         Jordi Boggiano @seldaek
                              http://nelm.io/

Jordi Boggiano                                     Company http://nelm.io
http://twitter.com/seldaek                             Blog http://seld.be
Disclaimer
                             This is not about REST




Jordi Boggiano                                        Company http://nelm.io
http://twitter.com/seldaek                                Blog http://seld.be
About Me
               Belgian living in Zürich
               Weby stuff for 10 years
               http://seld.be
               Symfony2 core dev and other OSS contributions
               http://github.com/Seldaek
               Recently started Nelmio
               http://nelm.io
               We do Symfony2 & Frontend Performance consulting




Jordi Boggiano                                               Company http://nelm.io
http://twitter.com/seldaek                                       Blog http://seld.be
Planning
                       Small Rant
                       New Frameworks & Libraries
                       GitHub Commercial Break
                       Best Practices
                       Composer
                       Wishful Thinking




Jordi Boggiano                                      Company http://nelm.io
http://twitter.com/seldaek                              Blog http://seld.be

Recommended for you

Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches

OSGi tales from the trenches discusses Day Software's experience using Apache Felix for a major rewrite of their content management products. Some of the benefits discussed include modularity, dynamic loading/unloading of bundles, and using OSGi services and declarative services. Challenges include determining the proper granularity of bundles, separating interface and implementation packages, and the need for integration testing across multiple versions.

slingapacheconosgi
Building and deploying Cocoa applications with ChocTop
Building and deploying Cocoa applications with ChocTopBuilding and deploying Cocoa applications with ChocTop
Building and deploying Cocoa applications with ChocTop

Introduction to ChocTop presented at a rug berlin user metting. ChocTop is a set of tasks to build and deploy cocoa applications.

choctop rugb berlin
Zero To Dojo
Zero To DojoZero To Dojo
Zero To Dojo

This document provides an overview of the Dojo toolkit, including its core features and components. It describes Dojo's modular structure, base library, widgets framework, theming, internationalization, accessibility support, and unit testing. It also covers Dojo patterns, custom widgets, extensions, and tools for production usage including its build system and resources.

dojospringonetoolkit
A bit of history




Jordi Boggiano                                  Company http://nelm.io
http://twitter.com/seldaek                          Blog http://seld.be
PHP4 - 22-May-2000
               01 class Foo_Bar_Baz
               02 {
               03     var $foo;
               04
               05     function Foo_Bar_Baz()
               06     {
               07     }
               08
               09     function bar()
               10     {
               11     }
               12 }




Jordi Boggiano                                             Company http://nelm.io
http://twitter.com/seldaek                                     Blog http://seld.be
PHP5 - 13-Jul-2004
               01 class Foo_Bar_Baz
               02 {
               03     public $foo;
               04
               05     public function __construct()
               06     {
               07     }
               08
               09     private function bar()
               10     {
               11     }
               12 }




Jordi Boggiano                                              Company http://nelm.io
http://twitter.com/seldaek                                      Blog http://seld.be
Could you spot the differences?




Jordi Boggiano                              Company http://nelm.io
http://twitter.com/seldaek                      Blog http://seld.be

Recommended for you

LeapMotion for Web with React and Flux
LeapMotion for Web with React and FluxLeapMotion for Web with React and Flux
LeapMotion for Web with React and Flux

Introduction to LeapJS the Javascript API for LeapMoiton and building a UI to respond to hands in space with React and Flux. Presented at ConnectJS 2015

javascript reactjs leapmotion connect_js
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...

While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the antipatterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.

artifactorydockerjfrog
Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000

This is my presentation for the "Ultrabootstrapping: launching a startup for less than 1000$" talk at Cooley on 2/23/10.

Yet seven years later
                ~20% of servers still run PHP4




                             Source: @iliaa's PHP Advent article, December 2010.




Jordi Boggiano                                                                     Company http://nelm.io
http://twitter.com/seldaek                                                             Blog http://seld.be
PHP5.3 - 30-Jun-2009
               01   namespace FooBar;
               02
               03   class Baz
               04   {
               05       public $foo;
               06
               07            public function __construct()
               08            {
               09            }
               10
               11            private function bar()
               12            {
               13            }
               14   }




Jordi Boggiano                                                     Company http://nelm.io
http://twitter.com/seldaek                                             Blog http://seld.be
Again, not much has changed.
                   But it changes everything.
                             BackslashMeansNoBackwardsCompatibility




Jordi Boggiano                                                            Company http://nelm.io
http://twitter.com/seldaek                                                    Blog http://seld.be
We've been sitting on our asses
                          for too long.
                    It's time for a change.




Jordi Boggiano                              Company http://nelm.io
http://twitter.com/seldaek                      Blog http://seld.be

Recommended for you

Dojo: Getting Started Today
Dojo: Getting Started TodayDojo: Getting Started Today
Dojo: Getting Started Today

Introduction to the Dojo Javascript Toolkit, http://dojotoolkit.org. Originally presented at the Denver Open Source User's Group, http://www.denveropensource.org

dojo javascript saas ajax
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial

This document provides a tutorial on the Dojo JavaScript framework. It introduces Dojo, describes its key features like widgets, utilities and AJAX libraries. It covers loading and installing Dojo, creating a basic "Hello World" button widget, and compares Dojo to other frameworks like jQuery and YUI.

20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver

This document discusses the development of the B2G (open source version of Firefox OS) embedded board called CHIRIMEN. It describes installing the B2G image on the board, controlling the GPIO pins via a web app, and demonstrating lantern devices running B2G at the Mobile World Congress 2015. Future plans include exhibiting lantern demos at Maker Faires around the world.

New Frameworks




Jordi Boggiano                                Company http://nelm.io
http://twitter.com/seldaek                        Blog http://seld.be
Symfony2
                              Lithium
                               Silex
                                ZF2
                                 ...
                                  .


Jordi Boggiano                          Company http://nelm.io
http://twitter.com/seldaek                  Blog http://seld.be
New Libraries




Jordi Boggiano                               Company http://nelm.io
http://twitter.com/seldaek                       Blog http://seld.be
Assetic
               Asset management & processing
                       Combine & Compress JS, CSS
                       Compile CoffeeScript, SASS, LESS, ..
                       Re-encode images
                       All on the fly with cache or pre-processed
                       Inspired by Python's WebAssets
                       Shipped with Symfony2
               http://github.com/kriswallsmith/assetic




Jordi Boggiano                                                Company http://nelm.io
http://twitter.com/seldaek                                        Blog http://seld.be

Recommended for you

Tales from the OSGi Trenches - Bertrand Delacretaz
Tales from the OSGi Trenches - Bertrand DelacretazTales from the OSGi Trenches - Bertrand Delacretaz
Tales from the OSGi Trenches - Bertrand Delacretaz

This document summarizes Bertrand Delacrétaz's presentation on Adobe's experience using OSGi as the foundation for its CQ5 content management system. Some key points included: - OSGi provided strong modularity and dynamic loading/unloading of bundles that enabled many plugins and extensions. Declarative services and clean OSGi APIs made development easier. - Testing and unpredictable bundle startup order presented challenges. Integration between many bundles was difficult to test. - While OSGi enabled many benefits, it also brought complexity due to its asynchronous nature and requirement for strict version management between bundles. Tooling has improved but OSGi concepts remain unfamiliar to many.

eclipsecon europeosgi community event 2012osgi
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin

GitHub pull request model and Gerrit Code Review, which one is best for you ? What are the plus and minuses of both models ? See how it make sense to use one or the other or even both together. The GitHub plugin for Gerrit Code Review allows the existing developers community to start exploring code review without loosing contact with the github.com presence.

github gerrit code review plugin pull-request chan
JavaScript Power Tools
JavaScript Power ToolsJavaScript Power Tools
JavaScript Power Tools

Questa presentazione descrive l’esperienza di uno sviluppatore Java che vuole affrontare lo sviluppo frontend di un’applicazione web moderna nel migliore dei modi senza rinunciare alle comodità cui è abituato. Vedremo una serie di strumenti, dei veri e propri JavaScript Power Tools come Bower per la gestione delle dipendenze, Grunt per le build e Yeoman per la gestione dei progetti, che permettono di creare applicazioni javascript ben strutturate e funzionali in modo semplice e rapido.

javascriptcodemotionframework
Doctrine2
               DBAL, ORM, ODMs
                       Document stores (MongoDB, CouchDB,
                       PHPCR, XML)
                       Common interfaces allow for interop and
                       knowledge re-use
                       Propel2 builds on top of it
                       Shipped with Symfony2
               http://github.com/doctrine




Jordi Boggiano                                              Company http://nelm.io
http://twitter.com/seldaek                                      Blog http://seld.be
Monolog
               Logging
                       FingersCrossedHandler for production
                       Log to files, FirePHP, emails, etc.
                       Inspired by Python's Logbook
                       Shipped with Symfony2
               http://github.com/Seldaek/monolog




Jordi Boggiano                                                Company http://nelm.io
http://twitter.com/seldaek                                        Blog http://seld.be
Twig
               Template engine
                       Automatic escaping
                       Separation of concerns
                       (Readability)
                       Inspired by Python's Jinja2
                       Shipped with Symfony2
               http://github.com/fabpot/Twig




Jordi Boggiano                                       Company http://nelm.io
http://twitter.com/seldaek                               Blog http://seld.be
Gaufrette
               Filesystem abstraction
                       Code once, store files anywhere
                       S3, Memory, FTP, Rackspace, ..
                       Transparently cache calls to slow backends
               http://github.com/knplabs/Gaufrette




Jordi Boggiano                                               Company http://nelm.io
http://twitter.com/seldaek                                       Blog http://seld.be

Recommended for you

Pyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wildPyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wild

Steve Piercy, https://2020.ploneconf.org/speakers/steve-piercy Length: Short Talk Target Level: Beginner Target Audience: Developer Freelancers, small development shops, and large business teams appreciate how Pyramid serves their needs. Pyramid is a web framework for Python and one of many projects under the Pylons Project. We will discuss the latest developments in Pyramid and other Pylons Project projects. We will then demonstrate a recently developed Pyramid application used by public electric utilities to analyze and reduce costs associated with injury and illness. The Pyramid application integrates with OAuth and Django REST Framework providers. It was a collaboration with a small team, with one person taking the lead, and serves as a good example of what a one-person shop with a little help can do with Pyramid. When: From 12/9/20 5:30 PM to 12/9/20 6:00 PM CET

ploneconf2020ploneconfpyramid
Encode polkadot club
Encode polkadot club  Encode polkadot club
Encode polkadot club

The document is a presentation on Substrate and building blockchains. It introduces Substrate and its benefits like modularity and forkless upgrades. It discusses building a forum blockchain as an example, including storing posts, authors, and contents. It outlines the steps to build the first blockchain using Substrate, launching it and connecting to Polkadot.js. Finally, it discusses next steps like pallets, cryptography, and deploying to production as a parachain on Polkadot.

Make Your Own Charting Library with d3
Make Your Own Charting Library with d3Make Your Own Charting Library with d3
Make Your Own Charting Library with d3

This document outlines a talk about making reusable charting libraries with D3.js. It will show an example of wrapping D3 code into a jQuery plugin and discuss the relevant technologies. Attendees will learn steps to set up a sample project, see code examples, and get references for further learning. The goal is to remove barriers to reusing D3 visualizations.

datad3javascript
Snappy
               Generates PDF/images from webpages
                       Uses wkhtmltopdf/wkhtmltoimage
                       Good example of a small single-purpose
                       library
               http://github.com/knplabs/snappy




Jordi Boggiano                                              Company http://nelm.io
http://twitter.com/seldaek                                      Blog http://seld.be
Imagine
               Image manipulation
                       API that doesn't suck
                       Supports GD2, Imagick, Gmagick
                       Easily resize, crop, and more
                       Inspired by Python's PIL & others
               http://github.com/avalanche123/Imagine




Jordi Boggiano                                             Company http://nelm.io
http://twitter.com/seldaek                                     Blog http://seld.be
Buzz
               HTTP requests
                       API that doesn't suck
                       Wraps around CURL
               http://github.com/kriswallsmith/Buzz




Jordi Boggiano                                        Company http://nelm.io
http://twitter.com/seldaek                                Blog http://seld.be
Goutte
               Web Crawler
                       Supports CSS3 selectors to extract content
                       Easily follow links, submit forms, etc.
                       Good example of code re-use (Sf2/ZF2
                       components)
               http://github.com/fabpot/Goutte




Jordi Boggiano                                               Company http://nelm.io
http://twitter.com/seldaek                                       Blog http://seld.be

Recommended for you

Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRA

Building web applications? Thinking about auto-updater? Need to document your releases? Then look at this presentation. You'll likely discover another point of view on these questions.

.net frameworksoftware development processpackaging
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017

While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the antipatterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.

jfrogdockerartifactory
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing

Invited Remote Lecture to SC21 The International Conference for High Performance Computing, Networking, Storage, and Analysis St. Louis, Missouri November 18, 2021

distributed supercomputerdistributed machine learning
I can't list them all.




Jordi Boggiano                                        Company http://nelm.io
http://twitter.com/seldaek                                Blog http://seld.be
GitHub




Jordi Boggiano                        Company http://nelm.io
http://twitter.com/seldaek                Blog http://seld.be
Git will hurt you
                             Read http://progit.org - it's free.




Jordi Boggiano                                                     Company http://nelm.io
http://twitter.com/seldaek                                             Blog http://seld.be
GitHub is your friend
                       No need to track down a developer's
                       email. Hit fork, create a branch, then send
                       a pull request
                       Push code, get immediate attention and
                       contributors
                       README.mdown in every repository
                       200 Symfony2 contributors, still in beta!




Jordi Boggiano                                                Company http://nelm.io
http://twitter.com/seldaek                                        Blog http://seld.be

Recommended for you

Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation

Java Servlet programs

INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf

These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.

air force fighter planebiggest submarinezambia port
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops

This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization. Key Takeaways: * Understand why connection pooling is essential for high-traffic applications * Explore various connection poolers available for PostgreSQL, including pgbouncer * Learn the configuration options and functionalities of pgbouncer * Discover best practices for monitoring and troubleshooting connection pooling setups * Gain insights into real-world use cases and considerations for production environments This presentation is ideal for: * Database administrators (DBAs) * Developers working with PostgreSQL * DevOps engineers * Anyone interested in optimizing PostgreSQL performance Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services

postgresqlpgsqldatabase
Best Practices




Jordi Boggiano                                Company http://nelm.io
http://twitter.com/seldaek                        Blog http://seld.be
MIT License
               Free as in free.




Jordi Boggiano                                  Company http://nelm.io
http://twitter.com/seldaek                          Blog http://seld.be
Autoload with PSR-0
               01   //   One class per file
               02   //   First bit should be a vendor name (your project, company, ..)
               03   //   This should sit in <project>/Nelmio/Bar/Baz.php
               04   //   WATCH THE CASE!
               05
               06   namespace NelmioBar;
               07
               08   class Baz
               09   {
               10   }

               http://tinyurl.com/psr0-standard




Jordi Boggiano                                                                           Company http://nelm.io
http://twitter.com/seldaek                                                                   Blog http://seld.be
PEAR-style Coding Standards
               01   namespace FooBar;
               02
               03   class Baz
               04   {
               05       public $foo;
               06
               07            public function __construct()
               08            {
               09                $stuff = array('Coding Style');
               10                if (true) {
               11                    foreach ($stuff as $blob) {
               12                        echo "happy $blob!";
               13                    }
               14                } else {
               15                    echo "dead kittens";
               16                }
               17            }
               18   }

               http://pear.php.net/manual/en/standards.php



Jordi Boggiano                                                     Company http://nelm.io
http://twitter.com/seldaek                                             Blog http://seld.be

Recommended for you

UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference

We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner! We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too! Check out our proposed agenda below 👇👇 08:30 ☕ Welcome coffee (30') 09:00 Opening note/ Intro to UiPath Community (10') Cristina Vidu, Global Manager, Marketing Community @UiPath Dawid Kot, Digital Transformation Lead @Proservartner 09:10 Cloud migration - Proservartner & DOVISTA case study (30') Marcin Drozdowski, Automation CoE Manager @DOVISTA Pawel Kamiński, RPA developer @DOVISTA Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 09:40 From bottlenecks to breakthroughs: Citizen Development in action (25') Pawel Poplawski, Director, Improvement and Automation @McCormick & Company Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company 10:05 Next-level bots: API integration in UiPath Studio (30') Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 10:35 ☕ Coffee Break (15') 10:50 Document Understanding with my RPA Companion (45') Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath 11:35 Power up your Robots: GenAI and GPT in REFramework (45') Krzysztof Karaszewski, Global RPA Product Manager 12:20 🍕 Lunch Break (1hr) 13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30') Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance 13:50 Communications Mining - focus on AI capabilities (30') Thomasz Wierzbicki, Business Analyst @Office Samurai 14:20 Polish MVP panel: Insights on MVP award achievements and career profiling

#uipathcommunity#automation#automationdeveloper
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024

Everything that I found interesting about engineering leadership last month

quantumfaxmachine
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
Remember, kids, standards
                               are NOT about taste




Jordi Boggiano                                           Company http://nelm.io
http://twitter.com/seldaek                                   Blog http://seld.be
Testing
                       Tests are always good, but for libraries
                       they're a must.
                       Typing phpunit in <project>/ is all I want
                       to know.




Jordi Boggiano                                                Company http://nelm.io
http://twitter.com/seldaek                                        Blog http://seld.be
Composer




Jordi Boggiano                          Company http://nelm.io
http://twitter.com/seldaek                  Blog http://seld.be
Package Management for PHP
                       Mostly inspired by npm and bundler
                       Advanced dependency resolving
                       Install project dependencies locally




Jordi Boggiano                                                Company http://nelm.io
http://twitter.com/seldaek                                        Blog http://seld.be

Recommended for you

Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx

MuleSoft Meetup on APM and IDP

mulesoftai
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM

Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.

quantum communicationsshannon's channel theoremclassical theory
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time

Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality. Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality. Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality. Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank? ** Episode Overview ** In this first episode of our quality series, Kristen Hansen and the panel discuss: ⦿ What do we mean when we say patent quality? ⦿ Why is patent quality important? ⦿ How to balance quality and budget ⦿ The importance of searching, continuations, and draftsperson domain expertise ⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications https://www.aurorapatents.com/patently-strategic-podcast.html

patentspatent applicationpatent prosecution
Compose great things with small libraries
                       Rely on proven code to do common tasks
                       Simplify old APIs (e.g. Imagine, Buzz)




Jordi Boggiano                                                 Company http://nelm.io
http://twitter.com/seldaek                                         Blog http://seld.be
composer.json (lib)
               01 {
               02            "name": "Monolog",
               03            "description": "Logging for PHP 5.3",
               04            "keywords": ["log","logging"],
               05            "homepage": "http://github.com/Seldaek/monolog",
               06            "version": "1.0.0",
               07            "license": "MIT",
               08            "authors": [
               09                {
               10                    "name": "Jordi Boggiano",
               11                    "email": "j.boggiano@seld.be",
               12                    "homepage": "http://seld.be"
               13                }
               14            ],
               15            "require": {
               16                "php": ">=5.3.0"
               17            }
               18 }




Jordi Boggiano                                                                  Company http://nelm.io
http://twitter.com/seldaek                                                          Blog http://seld.be
composer.json (project)
               01 {
               02            "repositories": {
               03                "AwesomeLib": {
               04                    "git": "git://github.com/Jim/AwesomeLib.git"
               05                },
               06                "GreatLib": {
               07                    "git-bare": {
               08                        "url": "git://github.com/Bob/GreatLib.git",
               09                        "version": "1.0.0"
               10                    }
               11                }
               12            },
               13            "require": {
               14                "Twig": ">=1.0.0",
               15                "AwesomeLib": "latest",
               16                "GreatLib": "1.0.0",
               17                "Monolog": "latest"
               18            }
               19 }




Jordi Boggiano                                                                         Company http://nelm.io
http://twitter.com/seldaek                                                                 Blog http://seld.be
Demo, kind of.
                             (blame @naderman :)




Jordi Boggiano                                     Company http://nelm.io
http://twitter.com/seldaek                             Blog http://seld.be

Recommended for you

Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf

Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.

neo4jneo4j webinarsgraph database
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx

How do we build an IoT product, and make it profitable? Talk from the IoT meetup in March 2024. https://www.meetup.com/iot-sweden/events/299487375/

iot
Fear code re-use no more.




Jordi Boggiano                                       Company http://nelm.io
http://twitter.com/seldaek                               Blog http://seld.be
Last words




Jordi Boggiano                            Company http://nelm.io
http://twitter.com/seldaek                    Blog http://seld.be
Namespace adoption, in effect,
                     opens up a world of
                        possibilities.




Jordi Boggiano                               Company http://nelm.io
http://twitter.com/seldaek                       Blog http://seld.be
Open up your mind,
                              we're not alone.




Jordi Boggiano                                    Company http://nelm.io
http://twitter.com/seldaek                            Blog http://seld.be

Recommended for you

WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck

YOUR RELIABLE WEB DESIGN & DEVELOPMENT TEAM — FOR LASTING SUCCESS WPRiders is a web development company specialized in WordPress and WooCommerce websites and plugins for customers around the world. The company is headquartered in Bucharest, Romania, but our team members are located all over the world. Our customers are primarily from the US and Western Europe, but we have clients from Australia, Canada and other areas as well. Some facts about WPRiders and why we are one of the best firms around: More than 700 five-star reviews! You can check them here. 1500 WordPress projects delivered. We respond 80% faster than other firms! Data provided by Freshdesk. We’ve been in business since 2015. We are located in 7 countries and have 22 team members. With so many projects delivered, our team knows what works and what doesn’t when it comes to WordPress and WooCommerce. Our team members are: - highly experienced developers (employees & contractors with 5 -10+ years of experience), - great designers with an eye for UX/UI with 10+ years of experience - project managers with development background who speak both tech and non-tech - QA specialists - Conversion Rate Optimisation - CRO experts They are all working together to provide you with the best possible service. We are passionate about WordPress, and we love creating custom solutions that help our clients achieve their goals. At WPRiders, we are committed to building long-term relationships with our clients. We believe in accountability, in doing the right thing, as well as in transparency and open communication. You can read more about WPRiders on the About us page.

web development agencywpriderswordpress development
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...

Jindong Gu, Zhen Han, Shuo Chen, Ahmad Beirami, Bailan He, Gengyuan Zhang, Ruotong Liao, Yao Qin, Volker Tresp, Philip Torr "A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models" arXiv2023 https://arxiv.org/abs/2307.12980

Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation

Manual Method of Product Research | Helium10 | MBS RETRIEVER

product researchhelium10 | mbs retriever
Share your code
                             and collaborate.




Jordi Boggiano                                  Company http://nelm.io
http://twitter.com/seldaek                          Blog http://seld.be
Thank you.




Jordi Boggiano                            Company http://nelm.io
http://twitter.com/seldaek                    Blog http://seld.be
Feedback please on:
                         http://joind.in/3489
                                Slides:
                         http://slides.seld.be
                             Contact me:
                       @seldaek || jordi@nelm.io


Jordi Boggiano                                 Company http://nelm.io
http://twitter.com/seldaek                         Blog http://seld.be

More Related Content

Similar to PHP Reset

Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへ
Ryunosuke SATO
 
Design of a BIOLOID Scorpion Report
Design of a BIOLOID Scorpion ReportDesign of a BIOLOID Scorpion Report
Design of a BIOLOID Scorpion Report
Bruno Chung
 
Jabber Bot
Jabber BotJabber Bot
Jabber Bot
Aizat Faiz
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
Bertrand Delacretaz
 
Building and deploying Cocoa applications with ChocTop
Building and deploying Cocoa applications with ChocTopBuilding and deploying Cocoa applications with ChocTop
Building and deploying Cocoa applications with ChocTop
Patrick Huesler
 
Zero To Dojo
Zero To DojoZero To Dojo
Zero To Dojo
Peter Higgins
 
LeapMotion for Web with React and Flux
LeapMotion for Web with React and FluxLeapMotion for Web with React and Flux
LeapMotion for Web with React and Flux
Laura Moore
 
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Baruch Sadogursky
 
Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000
Jon Boutelle
 
Dojo: Getting Started Today
Dojo: Getting Started TodayDojo: Getting Started Today
Dojo: Getting Started Today
Gabriel Hamilton
 
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial
Girish Srivastava
 
20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver
Naoki Sekiguchi
 
Tales from the OSGi Trenches - Bertrand Delacretaz
Tales from the OSGi Trenches - Bertrand DelacretazTales from the OSGi Trenches - Bertrand Delacretaz
Tales from the OSGi Trenches - Bertrand Delacretaz
mfrancis
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
Luca Milanesio
 
JavaScript Power Tools
JavaScript Power ToolsJavaScript Power Tools
JavaScript Power Tools
Codemotion
 
Pyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wildPyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wild
PloneFoundation
 
Encode polkadot club
Encode polkadot club  Encode polkadot club
Encode polkadot club
Vanessa Lošić
 
Make Your Own Charting Library with d3
Make Your Own Charting Library with d3Make Your Own Charting Library with d3
Make Your Own Charting Library with d3
yieldbot
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRA
Yaroslav Serhieiev
 
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Baruch Sadogursky
 

Similar to PHP Reset (20)

Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへ
 
Design of a BIOLOID Scorpion Report
Design of a BIOLOID Scorpion ReportDesign of a BIOLOID Scorpion Report
Design of a BIOLOID Scorpion Report
 
Jabber Bot
Jabber BotJabber Bot
Jabber Bot
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
 
Building and deploying Cocoa applications with ChocTop
Building and deploying Cocoa applications with ChocTopBuilding and deploying Cocoa applications with ChocTop
Building and deploying Cocoa applications with ChocTop
 
Zero To Dojo
Zero To DojoZero To Dojo
Zero To Dojo
 
LeapMotion for Web with React and Flux
LeapMotion for Web with React and FluxLeapMotion for Web with React and Flux
LeapMotion for Web with React and Flux
 
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
 
Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000Ultrabootstrapping: Launching a Startup for Less Than $1000
Ultrabootstrapping: Launching a Startup for Less Than $1000
 
Dojo: Getting Started Today
Dojo: Getting Started TodayDojo: Getting Started Today
Dojo: Getting Started Today
 
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial
 
20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver
 
Tales from the OSGi Trenches - Bertrand Delacretaz
Tales from the OSGi Trenches - Bertrand DelacretazTales from the OSGi Trenches - Bertrand Delacretaz
Tales from the OSGi Trenches - Bertrand Delacretaz
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
JavaScript Power Tools
JavaScript Power ToolsJavaScript Power Tools
JavaScript Power Tools
 
Pyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wildPyramid and the Pylons Project in the wild
Pyramid and the Pylons Project in the wild
 
Encode polkadot club
Encode polkadot club  Encode polkadot club
Encode polkadot club
 
Make Your Own Charting Library with d3
Make Your Own Charting Library with d3Make Your Own Charting Library with d3
Make Your Own Charting Library with d3
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRA
 
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
 

Recently uploaded

The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 

Recently uploaded (20)

The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 

PHP Reset

  • 1. PHP Reset Jordi Boggiano @seldaek http://nelm.io/ Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 2. Disclaimer This is not about REST Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 3. About Me Belgian living in Zürich Weby stuff for 10 years http://seld.be Symfony2 core dev and other OSS contributions http://github.com/Seldaek Recently started Nelmio http://nelm.io We do Symfony2 & Frontend Performance consulting Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 4. Planning Small Rant New Frameworks & Libraries GitHub Commercial Break Best Practices Composer Wishful Thinking Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 5. A bit of history Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 6. PHP4 - 22-May-2000 01 class Foo_Bar_Baz 02 { 03 var $foo; 04 05 function Foo_Bar_Baz() 06 { 07 } 08 09 function bar() 10 { 11 } 12 } Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 7. PHP5 - 13-Jul-2004 01 class Foo_Bar_Baz 02 { 03 public $foo; 04 05 public function __construct() 06 { 07 } 08 09 private function bar() 10 { 11 } 12 } Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 8. Could you spot the differences? Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 9. Yet seven years later ~20% of servers still run PHP4 Source: @iliaa's PHP Advent article, December 2010. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 10. PHP5.3 - 30-Jun-2009 01 namespace FooBar; 02 03 class Baz 04 { 05 public $foo; 06 07 public function __construct() 08 { 09 } 10 11 private function bar() 12 { 13 } 14 } Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 11. Again, not much has changed. But it changes everything. BackslashMeansNoBackwardsCompatibility Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 12. We've been sitting on our asses for too long. It's time for a change. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 13. New Frameworks Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 14. Symfony2 Lithium Silex ZF2 ... . Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 15. New Libraries Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 16. Assetic Asset management & processing Combine & Compress JS, CSS Compile CoffeeScript, SASS, LESS, .. Re-encode images All on the fly with cache or pre-processed Inspired by Python's WebAssets Shipped with Symfony2 http://github.com/kriswallsmith/assetic Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 17. Doctrine2 DBAL, ORM, ODMs Document stores (MongoDB, CouchDB, PHPCR, XML) Common interfaces allow for interop and knowledge re-use Propel2 builds on top of it Shipped with Symfony2 http://github.com/doctrine Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 18. Monolog Logging FingersCrossedHandler for production Log to files, FirePHP, emails, etc. Inspired by Python's Logbook Shipped with Symfony2 http://github.com/Seldaek/monolog Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 19. Twig Template engine Automatic escaping Separation of concerns (Readability) Inspired by Python's Jinja2 Shipped with Symfony2 http://github.com/fabpot/Twig Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 20. Gaufrette Filesystem abstraction Code once, store files anywhere S3, Memory, FTP, Rackspace, .. Transparently cache calls to slow backends http://github.com/knplabs/Gaufrette Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 21. Snappy Generates PDF/images from webpages Uses wkhtmltopdf/wkhtmltoimage Good example of a small single-purpose library http://github.com/knplabs/snappy Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 22. Imagine Image manipulation API that doesn't suck Supports GD2, Imagick, Gmagick Easily resize, crop, and more Inspired by Python's PIL & others http://github.com/avalanche123/Imagine Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 23. Buzz HTTP requests API that doesn't suck Wraps around CURL http://github.com/kriswallsmith/Buzz Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 24. Goutte Web Crawler Supports CSS3 selectors to extract content Easily follow links, submit forms, etc. Good example of code re-use (Sf2/ZF2 components) http://github.com/fabpot/Goutte Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 25. I can't list them all. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 26. GitHub Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 27. Git will hurt you Read http://progit.org - it's free. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 28. GitHub is your friend No need to track down a developer's email. Hit fork, create a branch, then send a pull request Push code, get immediate attention and contributors README.mdown in every repository 200 Symfony2 contributors, still in beta! Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 29. Best Practices Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 30. MIT License Free as in free. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 31. Autoload with PSR-0 01 // One class per file 02 // First bit should be a vendor name (your project, company, ..) 03 // This should sit in <project>/Nelmio/Bar/Baz.php 04 // WATCH THE CASE! 05 06 namespace NelmioBar; 07 08 class Baz 09 { 10 } http://tinyurl.com/psr0-standard Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 32. PEAR-style Coding Standards 01 namespace FooBar; 02 03 class Baz 04 { 05 public $foo; 06 07 public function __construct() 08 { 09 $stuff = array('Coding Style'); 10 if (true) { 11 foreach ($stuff as $blob) { 12 echo "happy $blob!"; 13 } 14 } else { 15 echo "dead kittens"; 16 } 17 } 18 } http://pear.php.net/manual/en/standards.php Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 33. Remember, kids, standards are NOT about taste Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 34. Testing Tests are always good, but for libraries they're a must. Typing phpunit in <project>/ is all I want to know. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 35. Composer Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 36. Package Management for PHP Mostly inspired by npm and bundler Advanced dependency resolving Install project dependencies locally Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 37. Compose great things with small libraries Rely on proven code to do common tasks Simplify old APIs (e.g. Imagine, Buzz) Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 38. composer.json (lib) 01 { 02 "name": "Monolog", 03 "description": "Logging for PHP 5.3", 04 "keywords": ["log","logging"], 05 "homepage": "http://github.com/Seldaek/monolog", 06 "version": "1.0.0", 07 "license": "MIT", 08 "authors": [ 09 { 10 "name": "Jordi Boggiano", 11 "email": "j.boggiano@seld.be", 12 "homepage": "http://seld.be" 13 } 14 ], 15 "require": { 16 "php": ">=5.3.0" 17 } 18 } Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 39. composer.json (project) 01 { 02 "repositories": { 03 "AwesomeLib": { 04 "git": "git://github.com/Jim/AwesomeLib.git" 05 }, 06 "GreatLib": { 07 "git-bare": { 08 "url": "git://github.com/Bob/GreatLib.git", 09 "version": "1.0.0" 10 } 11 } 12 }, 13 "require": { 14 "Twig": ">=1.0.0", 15 "AwesomeLib": "latest", 16 "GreatLib": "1.0.0", 17 "Monolog": "latest" 18 } 19 } Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 40. Demo, kind of. (blame @naderman :) Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 41. Fear code re-use no more. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 42. Last words Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 43. Namespace adoption, in effect, opens up a world of possibilities. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 44. Open up your mind, we're not alone. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 45. Share your code and collaborate. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 46. Thank you. Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be
  • 47. Feedback please on: http://joind.in/3489 Slides: http://slides.seld.be Contact me: @seldaek || jordi@nelm.io Jordi Boggiano Company http://nelm.io http://twitter.com/seldaek Blog http://seld.be