By using a single organizational principle, developers can easily make their project structure more predictable, extensible, and modular. The talk will discuss this one lesson, how it can be discovered from researching publicly available PHP projects, how to apply it, and how it is used (or not used) in well-known applications and frameworks.
The Solar Framework for PHP 5 (2010 Confoo)Paul Jones
This presentation is a whirlwind tour of the Solar framework for PHP 5. After a short bit of background, the presentation will outline the major concepts in Solar: everything is a library, the unified constructor, unified configuration, inherited configuration and localization, unified factory and adapter systems, lazy-loading registry, and the dependency-injection system. Next is an overview of how the dynamic dispatch cycle works in Solar, and how it compares to other framework dispatch cycles. From there we will move on to the SQL system, including the MysqlReplicated adapter, and lead into the ORM system. The ORM overview will briefly cover models, collections, records, automated filters, automated form generation, and more. After discussing the authentication layer, CLI tooling, and command-line controllers, it will wrap up with a brief discussion of Solar project architecture, and a short note on Solar's performance in relation to other popular frameworks.
Action-Domain-Responder: A Refinement of MVCPaul Jones
Using Model-View-Controller as a pattern to describe stateless HTTP interactions has always been a bit of a kludge. There simply hasn't been a better pattern web applications -- until now.
ADR (Action-Domain-Responder) represents a refinement of generic MVC as an application architecture specifically tuned to the web. In this talk, we will discuss various patterns of overall application architecture, including MVC, MVP, PAC, DCI, RMR, and others. We will find out how the ADR pattern arises from generic MVC, and how it provides a better description of how web applications actually work. Finally, we will go over examples of how to architect an ADR application, as well as how to convert from an MVC architecture to an ADR one.
Using Zend_Tool to Establish Your Project's SkeletonJeremy Brown
User Group presentation titled "Using Zend_Tool to Establish Your Project's Skeleton"
Event information can be found at: http://www.meetup.com/DFW-Apache-LAMP/calendar/11819226/
The Solar Framework for PHP 5 (2010 Confoo)Paul Jones
This presentation is a whirlwind tour of the Solar framework for PHP 5. After a short bit of background, the presentation will outline the major concepts in Solar: everything is a library, the unified constructor, unified configuration, inherited configuration and localization, unified factory and adapter systems, lazy-loading registry, and the dependency-injection system. Next is an overview of how the dynamic dispatch cycle works in Solar, and how it compares to other framework dispatch cycles. From there we will move on to the SQL system, including the MysqlReplicated adapter, and lead into the ORM system. The ORM overview will briefly cover models, collections, records, automated filters, automated form generation, and more. After discussing the authentication layer, CLI tooling, and command-line controllers, it will wrap up with a brief discussion of Solar project architecture, and a short note on Solar's performance in relation to other popular frameworks.
Action-Domain-Responder: A Refinement of MVCPaul Jones
Using Model-View-Controller as a pattern to describe stateless HTTP interactions has always been a bit of a kludge. There simply hasn't been a better pattern web applications -- until now.
ADR (Action-Domain-Responder) represents a refinement of generic MVC as an application architecture specifically tuned to the web. In this talk, we will discuss various patterns of overall application architecture, including MVC, MVP, PAC, DCI, RMR, and others. We will find out how the ADR pattern arises from generic MVC, and how it provides a better description of how web applications actually work. Finally, we will go over examples of how to architect an ADR application, as well as how to convert from an MVC architecture to an ADR one.
Using Zend_Tool to Establish Your Project's SkeletonJeremy Brown
User Group presentation titled "Using Zend_Tool to Establish Your Project's Skeleton"
Event information can be found at: http://www.meetup.com/DFW-Apache-LAMP/calendar/11819226/
This presentation was delivered on 11th May, 2014 in Drupal Camp Pakistan held in DatumSquare IT Services Islamabad. Contents of the presentation contains some basics stuff for designers, themers and coders.
Mobile applications Development - Lecture 10
HTML5 Refresher
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
Staying Sane with Drupal (A Develper's Survival Guide)Oscar Merida
Drupal is a powerful content management framework and among the most succesful PHP projects out there. Working with Drupal's modules and theme layer means that for any problem there's more than one way to that that. Picking a good solution, or dealing with the choices of previous developers will make you pull your hair out. I'll look at what you can do to make working with Drupal, shall we say, enjoyable? We'll look at how to evaluate contributed modules, what modules should be in all your installations, examine coding conventions in Drupal, and talk about development best practices for Drupal sites.
Zend Framework appears to be a gargantuan beast to the outsider looking in. Finding where to start and picking up the basic principals can be a real headache and a time consuming business for those new to the framework.
I'm going to break down that learning curve, with a few simple principals to get you started knowing where to look, so you can progress under your own steam with greater ease.
This presentation was delivered on 11th May, 2014 in Drupal Camp Pakistan held in DatumSquare IT Services Islamabad. Contents of the presentation contains some basics stuff for designers, themers and coders.
Mobile applications Development - Lecture 10
HTML5 Refresher
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
Staying Sane with Drupal (A Develper's Survival Guide)Oscar Merida
Drupal is a powerful content management framework and among the most succesful PHP projects out there. Working with Drupal's modules and theme layer means that for any problem there's more than one way to that that. Picking a good solution, or dealing with the choices of previous developers will make you pull your hair out. I'll look at what you can do to make working with Drupal, shall we say, enjoyable? We'll look at how to evaluate contributed modules, what modules should be in all your installations, examine coding conventions in Drupal, and talk about development best practices for Drupal sites.
Zend Framework appears to be a gargantuan beast to the outsider looking in. Finding where to start and picking up the basic principals can be a real headache and a time consuming business for those new to the framework.
I'm going to break down that learning curve, with a few simple principals to get you started knowing where to look, so you can progress under your own steam with greater ease.
One definition of insanity is "doing the same thing over and over, expecting different results." In this talk, Paul will discuss how organizations keep treating developers poorly, especially by demanding overtime, and why it is crazy for developers to expect their organizations to change. Paul will show how you can change the way your organization treats you, to your own benefit and (hopefully) the benefit of the organization.
Action-Domain-Responder: A Web-Specific Refinement of Model-View-ControllerPaul Jones
Using Model-View-Controller as a pattern to describe stateless HTTP interactions has always been a bit of a kludge. There simply hasn't been a better pattern web applications -- until now.
ADR (Action-Domain-Responder) represents a refinement of generic MVC as an application architecture specifically tuned to the web. In this talk, we will discuss various patterns of overall application architecture, including MVC, MVP, PAC, DCI, RMR, and others. We will find out how the ADR pattern arises from generic MVC, and how it provides a better description of how web applications actually work. Finally, we will go over examples of how to architect an ADR application, as well as how to convert from an MVC architcture to an ADR one.
В продолжение темы непрерывной интеграции, Макс расскажет о своем подходе организации непрерывной интеграции и деплоймента в Symfony проектах. Рассказ включает следующие темы:
- Управления зависимостями
- Процесс и инструменты для сборки
- Сервера непрерывной интеграции и в частности Jenkins, плагины к нему, jobs
- Процесс разработки в git
- Процесс выгрузки релиза
- Миграция БД
- Откат релиза
Zend Framework is widely known as having a "use-at-will" architecture, but what does that really mean? We'll explore two scenarios: one where developers use Zend Framework as a base and extend various components to suite their needs and another where developers can extend nonZF code with ZF components. On conclusion, developers will have a necessary enough understanding to extend with and for ZF.
The presentation is related to the firm where I rebuilt an existing non-maven project to the maven-based project with the best willingness of a proper modularity designs.
The Demos in this presentation are related to source code which is not attached.
This talk will give attendees details on how to set up their directory layout in larger PHP/ExtJS applications, along with hints to build processing and deployment. In the second part the talk will cover context based applications, how to detect context and how to utilize it with ExtJS. The third and last part will show how developers can use Ext.direct.* with an already existing Zend Framework backend, including merged requests and how to set up sandboxes for processing merged requests.
Symfony CMF: un nuovo paradigma per la gestione dei contenutiMichele Orselli
Presentation from phpday2011. La modellazione e gestione dei contenuti costituisce un dominio complesso. Soluzioni standard come Drupal, Joomla o Wordpress si adattano con difficoltà sul dominio di uno specifico cliente; d'altro canto soluzioni fatte in casa costano in termini di tempi di sviluppo e riusabilità. Non esiste allora ""one cms to rule them all""?
Nel talk verrà introdotto il progetto Symfony CMF discutendo tra l'altro di:
- standard per la modellazione dei contenuti
- modellazione ed organizzazione dei contenuti
- scelte architetturali
- linee guida per l'utlizzo del cmf
Symfony CMF: un nuovo paradigma per la gestione dei contenutiManuel Baldassarri
Presentation from phpday2011. La modellazione e gestione dei contenuti costituisce un dominio complesso. Soluzioni standard come Drupal, Joomla o Wordpress si adattano con difficoltà sul dominio di uno specifico cliente; d’altro canto soluzioni fatte in casa costano in termini di tempi di sviluppo e riusabilità. Non esiste allora "one cms to rule them all"?
Nel talk verrà introdotto il progetto Symfony CMF discutendo tra l’altro di:
- standard per la modellazione dei contenuti
- modellazione ed organizzazione dei contenuti
- scelte architetturali
- linee guida per l’utlizzo del cmf
This is a low-level, and philosophical discussion on the act of compiling data out of your PHP applications using Zend\Code: Scanning, Generating, Annotating code in PHP.
One Drupal to rule them all - Drupalcamp Londonhernanibf
Dries famous sentence (http://buytaert.net/one-drupal-to-rule-them-all) is becoming a reality for many organisations from small shops to the enterprise space. More and more stakeholders are following the idea of standardising their online presence in Drupal and leverage the same code and infrastructure amongst their different sites. What they are seeking is a drastic reduction in the time needed to create, launch and configure a Drupal site at the same time that they reduce the maintenance effort of the whole sites' network.
To achieve it, a drastic change needs to happen on the standardisation of development processes, more strict control of the overall architecture while supporting new changes and requirements, and repeatable and trustable deployment process to avoid the opposite pitfall of "one site to break them all".
In this session we will look to what needs to be thought when creating such an architecture from the development process to the infrastructure to host the different environments needed. We will look at different solutions that allow maintain these sites factories and walk you through several architectures explaining their advantages and differences.
Finally, we will look in detail to Acquia's Cloud Site Factory, a fully-hosted SaaS solution that allows organisations to quickly deploy and manage websites by the hundreds. Pre-define site templates, create new sites in a single click, manage roles and permissions across sites and connect to existing analytics and data systems.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
1. Organizing Your
PHP Projects
Paul M. Jones
VP Engineering, Company 52
Memphis PHP
26 Aug 2010
2. Read These
• “Mythical Man-Month”, Brooks
• “Art of Project Management”, Berkun
• “Peopleware”, DeMarco and Lister
2
3. Project Planning
in One Lesson
• Examine real-world projects
• The One Lesson for
organizing your project
• Elements of The One Lesson
• The One Lesson in practice
3
4. About Me
• Web Architect
• PHP since 1999 (PHP 3)
• Solar Framework (lead)
• Savant Template System (lead)
• Zend Framework (found. contrib.)
• PEAR Group (2007-2008)
• Web framework benchmarks
4
5. About You
• Project lead/manager?
• Improve team consistency?
• Want to share your code
with others?
• Want to use code from
others?
• Want to reduce recurring
integration issues?
5
6. Goals for Organizing
• Security
• Integration and extension
• Adaptable to change
• Predictable and maintainable
• Teamwork consistency
• Re-use rules on multiple projects
6
9. One-Off Heap
• No discernible architecture
• Browse directly to the scripts
• Add to it piece by piece
• Little to no separation of concerns
• All variables are global
• Unmanageable, difficult to extend
9
10. Standalone Application
• One-off heap ++
• Series of separate page
scripts and common includes
• Installed in web root
• Each responsible for global
execution environment
• Script variables still global
10
16. Modular Application
• Standalone application ++
• Same file structure and script style
• One additional directory:
“modules”, “plugins”, etc
• Hooks in the “main” scripts for
additional behaviors
• Use global variables to coordinate
between modules
16
17. CMS
• Modular application ++
• General-purpose application
broker
• All "main" scripts become
sub-applications
• Still in the web root, still
using globals to coordinate
17
20. Library Collection
• Specific, limited logic extracted
from an app
• Re-used directly in unrelated
applications and other libraries
• No global variables
• Class-oriented
• Can exist anywhere in the file
system
20
27. Elements of
The One Lesson
• Stop using globals
• Namespace everything
• Class-to-file naming
27
28. 1. Stop Using Globals
• Stop using
register_globals
• Stop using $GLOBALS
• Stop using global
28
29. 2. Namespace Everything
• Automatic deconfliction of identifiers
• Classes (“vendor”)
• Functions, variables, constants
• Use with $_SESSION,
$_COOKIE, etc. keys
29
30. Choosing a Namespace
• Project, client, brand, channel
• A short word or acronym,
not a letter (“Z”)
• A unique name, not a generic
name related to a task
(Date, HTML, RSS, Table, User)
30
37. Extended Effects of
The One Lesson
• Can be used anywhere
(app, module, lib, CMS, framework)
• Structure for refactoring and additions
• Testing, profiling, and public files can
parallel the same structure
• Intuitive for new developers
• No more include-path woes
37
43. Solar Apps Are Libraries Too
include/
Solar/
Vendor/
App/
Page.php
Page/
Layout/
Locale/
Public/
View/
Model/
Gir.php
Gir/
Zim.php
Zim/
43
44. Refactoring
• Move from existing include-based architecture
to class-based architecture ...
• ... by functionality
• ... by script
• Then build scripts out of classes, not includes
• Then build apps out of classes, not scripts
• Leads to MVC / MVP / PAC architecture
44
46. The One Lesson
• Organize your project as if it will be part of
a library collection
• Avoid globals
• Use namespaces for deconfliction
• Use class-to-file naming convention
46
47. Goals for Organizing
• Security
• Integration and extension
• Adaptable to change
• Predictable and maintainable
• Teamwork consistency
• Re-use rules on multiple projects
47