PM is a command line tool that can be used to speed up development processes. It provides shortcuts and aliases for common commands, packages code, generates code templates, and loads external dependencies. PM works with all types of PHP projects, including those not using PHP 5.3+. It can customize commands for specific users, environments, and based on conditional logic. Some features of PM include unit testing execution, database migration scripts, and code auditing.
An introduction to PHP, covering topics from history of the platform and personalities involved, to strengths/weaknesses of the language and how to best use it.
Available under the Creative Commons Attribution Share-Alike Non-Commercial Unported 3.0 license.
DNN Upgrades Made Simple (DNN Summit 2019)Will Strohl
If you've ever even read about upgrading DNN, you know that any number of things can go wrong. There's no shortage of horror stories, for sure. Did you know that nearly 100% of those horror stories were avoidable, though? After maintaining DNN websites for over 15 years, you'll learn the approaches I take to upgrading DNN websites. Following this session, you'll learn the processes, tips, tricks, and methods that help me upgrade client websites flawlessly.
An introduction to PHP, covering topics from history of the platform and personalities involved, to strengths/weaknesses of the language and how to best use it.
Available under the Creative Commons Attribution Share-Alike Non-Commercial Unported 3.0 license.
DNN Upgrades Made Simple (DNN Summit 2019)Will Strohl
If you've ever even read about upgrading DNN, you know that any number of things can go wrong. There's no shortage of horror stories, for sure. Did you know that nearly 100% of those horror stories were avoidable, though? After maintaining DNN websites for over 15 years, you'll learn the approaches I take to upgrading DNN websites. Following this session, you'll learn the processes, tips, tricks, and methods that help me upgrade client websites flawlessly.
Professional Help for PowerShell ModulesJune Blender
Slides from talk at PowerShell Conference Europe 2016 (@PSConfEu). In this deck:
-- Why write PowerShell help?
-- How help for modules differs from cmdlet help
-- Mechanics:
---- Comment-based help vs. XML help
---- About topic format requirements and best practices
-- About Help Content
---- How to start an About topic
---- How to organize an About topic.
---- About topic checklist
-- How to support online help
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, PuppetPuppet
Here are the slides from Nick Fagerlund's PuppetConf 2016 presentation called PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa
A presentation covering some of the interesting things going on with Powershell in the Infosec community. I give a brief overview of what powershell is, then go over some interesting aspects of three different offensive powershell frameworks and finally give a demo of how a local user can escalate to domain admin privileges using just these frameworks.
Basic commands for powershell : Configuring Windows PowerShell and working wi...Hitesh Mohapatra
Configuring Windows PowerShell and working with basic commands
• Configuring the Windows PowerShell console
• Configuring the Windows PowerShell ISE application
• Finding commands
• Running commands
• Using the About files
Vagrant + Rouster at salesforce.com - PuppetConf 2013Puppet
"Vagrant + Rouster at salesforce.com" by Conor Horan-Kates
Senior Member of the Technical Staff, Quality Engineering, salesforce.com.
Speaker Presentation: Rouster is an abstraction layer between you and Vagrant. At salesforce.com, we're using it to assist in running functional tests of the Puppet code we've written. While RSpec is significantly faster, it really only tells you whether the catalog contains what you expect it to - not whether those things can/will be applied successfully - and that's where Rouster comes in.
Currently the library contains many hooks for system level testing and information gathering (is_file?(), is_user_in_group?(), is_service?()) and puppet related functionality (get_catalog(), parse_catalog(), run_puppet()), but we're looking to expand.
Speaker Bio: Conor Horan-Kates is a Senior Member of the Technical Staff in the Quality Engineering organization supporting Data Center Automation. In this role, Conor has planned and implemented test environments, created testing and development best practices and developed applications, automated tests, and test frameworks. Most recently, Rouster, an abstraction layer for Vagrant. At salesforce.com, Conor has been involved in many aspects of building the infrastructure, from initial contributions to a CMDB, testing of switch/load balancer/ACL creation automation and now, bringing the build and maintenance lifecycle into Puppet. Additionally, he has written a testing framework that interfaces with salesforce.com records, Test::More::Salesforce, and a learn-by-testing project called Perl::Koans. Prior to salesforce.com, Conor worked in QA at the antimalware company Webroot.
This presentation introduces Microsoft Powershell version 5. It defines what are commands and how can you use them to write scripts and classes in Powershell.
The session will provide an Introduction to PowerShell for IT professional to automate Windows Server 2008 and Windows Vista client administrative activities. The session will explore the features and capabilities of PowerShell, customer scenarios to manage day-to-day server and client administration activities, and Command Line syntax usage.
Linux Commands mentioned here includes basic as well advanced linux commands which we use on a daily basis. These commands can also help you to crack interview.
More info at http://blog.carlossanchez.eu/tag/devops
Video en español: http://youtu.be/E_OE4l3t5BA
The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.
Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.
In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.
Puppet for Java developers - JavaZone NO 2012Carlos Sanchez
Example code at https://github.com/carlossg/puppet-for-java-devs
More info at http://blog.carlossanchez.eu/tag/devops
Video at http://vimeo.com/49483627
Puppet is an infrastructure-as-code tool that allows easy and automated provisioning of servers, defining the packages, configuration, services,... in code. Enabling DevOps culture, tools like Puppet help drive Agile development all the way to operations and systems administration, and along with continuous integration tools like Jenkins, it is a key piece to accomplish repeatability and continuous delivery, automating the operations side during development, QA or production, and enabling testing of systems configuration.
Traditionally a field for system administrators, Puppet can empower developers, allowing both to collaborate coding the infrastructure needed for their developments, whether it runs in hardware, virtual machines or cloud. Developers and sysadmins can define what JDK version must be installed, application server, version, configuration files, war and jar files,... and easily make changes that propagate across all nodes.
Using Vagrant, a command line automation layer for VirtualBox, they can also spin off virtual machines in their local box, easily from scratch with the same configuration as production servers, do development or testing and tear them down afterwards.
We’ll show how to install and manage Puppet nodes with JDK, multiple application server instances with installed web applications, database, configuration files and all the supporting services. Including getting up and running with Vagrant and VirtualBox for quickstart and Puppet experiments, as well as setting up automated testing of the Puppet code.
Professional Help for PowerShell ModulesJune Blender
Slides from talk at PowerShell Conference Europe 2016 (@PSConfEu). In this deck:
-- Why write PowerShell help?
-- How help for modules differs from cmdlet help
-- Mechanics:
---- Comment-based help vs. XML help
---- About topic format requirements and best practices
-- About Help Content
---- How to start an About topic
---- How to organize an About topic.
---- About topic checklist
-- How to support online help
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, PuppetPuppet
Here are the slides from Nick Fagerlund's PuppetConf 2016 presentation called PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa
A presentation covering some of the interesting things going on with Powershell in the Infosec community. I give a brief overview of what powershell is, then go over some interesting aspects of three different offensive powershell frameworks and finally give a demo of how a local user can escalate to domain admin privileges using just these frameworks.
Basic commands for powershell : Configuring Windows PowerShell and working wi...Hitesh Mohapatra
Configuring Windows PowerShell and working with basic commands
• Configuring the Windows PowerShell console
• Configuring the Windows PowerShell ISE application
• Finding commands
• Running commands
• Using the About files
Vagrant + Rouster at salesforce.com - PuppetConf 2013Puppet
"Vagrant + Rouster at salesforce.com" by Conor Horan-Kates
Senior Member of the Technical Staff, Quality Engineering, salesforce.com.
Speaker Presentation: Rouster is an abstraction layer between you and Vagrant. At salesforce.com, we're using it to assist in running functional tests of the Puppet code we've written. While RSpec is significantly faster, it really only tells you whether the catalog contains what you expect it to - not whether those things can/will be applied successfully - and that's where Rouster comes in.
Currently the library contains many hooks for system level testing and information gathering (is_file?(), is_user_in_group?(), is_service?()) and puppet related functionality (get_catalog(), parse_catalog(), run_puppet()), but we're looking to expand.
Speaker Bio: Conor Horan-Kates is a Senior Member of the Technical Staff in the Quality Engineering organization supporting Data Center Automation. In this role, Conor has planned and implemented test environments, created testing and development best practices and developed applications, automated tests, and test frameworks. Most recently, Rouster, an abstraction layer for Vagrant. At salesforce.com, Conor has been involved in many aspects of building the infrastructure, from initial contributions to a CMDB, testing of switch/load balancer/ACL creation automation and now, bringing the build and maintenance lifecycle into Puppet. Additionally, he has written a testing framework that interfaces with salesforce.com records, Test::More::Salesforce, and a learn-by-testing project called Perl::Koans. Prior to salesforce.com, Conor worked in QA at the antimalware company Webroot.
This presentation introduces Microsoft Powershell version 5. It defines what are commands and how can you use them to write scripts and classes in Powershell.
The session will provide an Introduction to PowerShell for IT professional to automate Windows Server 2008 and Windows Vista client administrative activities. The session will explore the features and capabilities of PowerShell, customer scenarios to manage day-to-day server and client administration activities, and Command Line syntax usage.
Linux Commands mentioned here includes basic as well advanced linux commands which we use on a daily basis. These commands can also help you to crack interview.
More info at http://blog.carlossanchez.eu/tag/devops
Video en español: http://youtu.be/E_OE4l3t5BA
The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.
Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.
In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.
Puppet for Java developers - JavaZone NO 2012Carlos Sanchez
Example code at https://github.com/carlossg/puppet-for-java-devs
More info at http://blog.carlossanchez.eu/tag/devops
Video at http://vimeo.com/49483627
Puppet is an infrastructure-as-code tool that allows easy and automated provisioning of servers, defining the packages, configuration, services,... in code. Enabling DevOps culture, tools like Puppet help drive Agile development all the way to operations and systems administration, and along with continuous integration tools like Jenkins, it is a key piece to accomplish repeatability and continuous delivery, automating the operations side during development, QA or production, and enabling testing of systems configuration.
Traditionally a field for system administrators, Puppet can empower developers, allowing both to collaborate coding the infrastructure needed for their developments, whether it runs in hardware, virtual machines or cloud. Developers and sysadmins can define what JDK version must be installed, application server, version, configuration files, war and jar files,... and easily make changes that propagate across all nodes.
Using Vagrant, a command line automation layer for VirtualBox, they can also spin off virtual machines in their local box, easily from scratch with the same configuration as production servers, do development or testing and tear them down afterwards.
We’ll show how to install and manage Puppet nodes with JDK, multiple application server instances with installed web applications, database, configuration files and all the supporting services. Including getting up and running with Vagrant and VirtualBox for quickstart and Puppet experiments, as well as setting up automated testing of the Puppet code.
More info at http://blog.carlossanchez.eu/2011/11/15/from-dev-to-devops-slides-from-apachecon-na-vancouver-2011/
The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.
Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.
In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.
Slides from DevOps Pro, Vilnius, Lithuania.
Abstract: The wide adoption of configuration management and the increasing size and complexity of the associated code, prompt for assessing, maintaining, and improving the configuration code’s quality. We can leverage traditional software engineering knowledge and best practices to develop and maintain high quality configuration code. This talk brings the smell metaphor to configuration domain. This talk introduces configuration smells, their types with various examples, tools to detect them, and suggestions to refactor them.
Puppi is a Puppet modules that drives Puppet's knowledge of the Systems to a command line tool that you can use to check services availability, gather info on the system and deploy application with a single command.
More info at http://blog.carlossanchez.eu/tag/devops
The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.
Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.
In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.
Introduction to WP-CLI: Manage WordPress from the command lineBehzod Saidov
These are the slides from a talk given at WordCamp Riverside 2017:
https://2017.riverside.wordcamp.org/session/introduction-to-wp-cli-manage-wordpress-from-the-command-line/
The topic is about powerful tool WP-CLI than can help WordPress developers or power users a lot.
If you manage multiple WordPress websites or multiple environments of a WordPress website, you probably have experienced situations where you need to go through exact same steps on multiple websites. Clicking through wp-admin screens to change settings becomes time consuming. WP-CLI can be used to automate those tasks with ease.
During my presentation I’ll introduce the audience with the command line and WP-CLI, then I’ll go through some of the tasks that can be easily done using this tool. I’ll demonstrate some tasks running them on a sample WordPress website running in local development environment. Demonstrations will include tasks like pulling back the database to lower environments (qa/staging) and rewriting it, managing users, plugins, etc.
Custom deployments with sbt-native-packagerGaryCoady
sbt-native-packager offers a comprehensive approach to packaging artifacts with SBT. The user describes a generic layout, which can then be extended for different types of software and deployments. For example, it is flexible enough to describe both a Zip-based archive format, and an RPM package with appropriate Systemd configuration for a service.
This talk will cover the essentials needed to understand the design of sbt-native-packager, and how to extend its structure to create custom layouts and deployments.
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Carlos Sanchez
Continuous Integration, with Apache Continuum or Jenkins, can be extended to fully manage deployments and production environments, running in Tomcat for instance, in a full Continuous Delivery cycle using infrastructure-as-code tools like Puppet, allowing to manage multiple servers and their configurations.
Puppet is an infrastructure-as-code tool that allows easy and automated provisioning of servers, defining the packages, configuration, services,... in code. Enabling DevOps culture, tools like Puppet help drive Agile development all the way to operations and systems administration, and along with continuous integration tools like Apache Continuum or Jenkins, it is a key piece to accomplish repeatability and continuous delivery, automating the operations side during development, QA or production, and enabling testing of systems configuration.
Traditionally a field for system administrators, Puppet can empower developers, allowing both to collaborate coding the infrastructure needed for their developments, whether it runs in hardware, virtual machines or cloud. Developers and sysadmins can define what JDK version must be installed, application server, version, configuration files, war and jar files,... and easily make changes that propagate across all nodes.
Using Vagrant, a command line automation layer for VirtualBox, they can also spin off virtual machines in their local box, easily from scratch with the same configuration as production servers, do development or testing and tear them down afterwards.
We will show how to install and manage Puppet nodes with JDK, multiple Tomcat instances with installed web applications, database, configuration files and all the supporting services. Including getting up and running with Vagrant and VirtualBox for quickstart and Puppet experiments, as well as setting up automated testing of the Puppet code.
Depuis quelques temps j'ai mis en place une activité spéciale que je propose à mes clients : Le Marathon de l'Industrialisation.%%%
L'idée: focaliser toute l'équipe de développement au même moment sur un temps court, pour améliorer significativement les pratiques, et ce grâce à l'adoption de nouveaux (variable en fonction des clients) outils et techniques de développement. Je vous livre ici un de mes supports utilisé en Juin 2009 chez un de mes clients.
AFUP Forum PHP 2009 : Oui ! PHP est industriel !PHPPRO
Support de présentation utilisé lors de la session "Oui ! PHP est industriel !" le 13 novembre 2009 à Paris Cité des Sciences pour le forum PHP organisé par l'AFUP
PHP : Une Plateforme Industrialisable Au Service De L'AgilitéPHPPRO
Puisque je suis dans les présentations en ce moment, j'ai décidé de refactorer un draft de présentation que j'avais réalisé pour l'Université du Système d'Information et que finalement j'avais abandonné pour une version plus "light". Attention, c'est une histoire, beaucoup de texte, pressé s'abstenir... ou presque ;)
Présentation donnée en septembre 2009 à un acteur informatique à Bordeaux. J'explique ma vision de l'agilité, des tests et de l'industrialisation au travers de l'exemple PHP.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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/
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
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
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!
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
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.
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.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
1. PM* : « code faster »
PHP User Group – Bordeaux, France
2011-04-13
Olivier HOAREAU, PHPPRO
* = « Project Manager » or « PHP Metaframework »
PM v0.1.0
2. What is PM ?
# PM seems to be a basic command line tool …
$ pm <command>
ok, but, it’s also …
• … a generic command line “shortcuts / aliases” maker / runner
• … a generic packager (.tgz / .zip / .phar / pear) for your app
• … a generic custom code generator using your templates
• … a set of predefined popular commands based on project type detection
• … an external dependencies loader (.tgz / .phar / .zip)
• … a “use it in your language” tool (at least, not only English ;) )
• … an extensible tool based on PHP 5.3+
• … the best friend of Hudson/Jenkins and others for PHP Projects ;)
• … and a lot more (i.e. use it for your custom needs) !
3. OK, but I am already using <whatever>
framework, so why switch to PM ?
• PM is not a conventional framework, you don’t need to switch :
– Designed to work with all kind of projects :
• No framework projects
• Zend Framework projects
• Symfony projects
• CakePHP, and others !
– Designed to « alias » your framework’s commands for you to keep your
popular « commands » from one framework to an other (ex: from ZF to
SF !) and to « map » your source tree layout
– Designed to work out of the box (almost !) on any PHP project, even PHP
projects not using PHP 5.3+ !*
* = you will need to have the PHP 5.3+ cli available on your system at least
4. Interested ? Start using PM !
# go to your existing project directory or create one
$ cd my-existing-project
# download pm.phar file at (or github.com/phppro/pm and’ download’)
https://github.com/downloads/phppro/pm/pm.phar
# enable pm support on your project
$ php pm.phar enable
# execute pm for the first time on your project !
$ pm
# begin customizing with your needs !
$ vi project.php
5. Not using PHP 5.3+ on your app ?
# install PHP 5.3+ as an extra version (recompile on linux)
# enable pm support on your project
$ <path/to/php/5.3>php pm.phar enable
# edit ‘pm’ or ‘pm.bat’ shell script to replace full path for php
# use pm !
$ pm
6. Linux users or others, install system-wide
to avoid ./pm instead of pm
# put ‘pm’ (or pm.bat on windows) in some central directory
$ sudo mkdir /opt/pm
$ sudo cp pm /opt/pm/
$ sudo chmod +x /opt/pm/pm
# optional: put pm.phar in some central directory
$ sudo cp pm.phar /opt/pm/
# then replace pm.phar in ‘pm’ or ‘pm.bat’ by ‘/opt/pm/pm.phar’
# update your $PATH system variable to add /opt/pm directory
# use pm !
$ pm
7. List available commands
# list your bookmarked commands
$ pm
# list all available commands
$ pm -h
# get help on how to use command « tpl »
$ pm -h tpl
# list all available commands that are prefixed with « t »
$ pm -h t
8. Execute an existing command / alias
# Syntax: pm [common-options] <action> [action-options]
$ pm pkg
$ pm -d display_errors=On audit:cpd
$ pm tu MyClass
$ pm tpl mytemplate --my.variable=theValue
$ pm -o new
9. Use interactive mode (aka « pm shell »)
# open PM in interactive mode
$ pm -i
PM> -h
PM> tu
…
# quit PM in interactive mode
PM> quit
10. Add a custom command alias
# edit your configuration file
$ vi project.php
---
<?php
return array(
‘aliases.list’ => array(
‘co’ => ‘!svn commit’,
),
);
# use your new alias now !
$ pm co
11. Create a new custom command
# create an new command called ‘my:personal-action’ with some example of primitive you can use inside
$ pm new my:personal-action --example
#read the example provided in the generated class and customize your logic
$ vi _pm/actions/My/PersonalAction.php
---
<?php
…
class PersonalAction extends PMAction {
public function run() {
if (false === $this->confirm(‘Are your sure’) ) return;
$feature = new MyClass($this->cfg (‘some.config.key’));
$feature->doSomething($this->arg());
}
}
# use your new command now !
$ pm my:personal-action
$ pm -o my:personal-action
12. Create a new inline (closure) command
# add directly your inline command to your project.php
$ vi project.php
---
<?php
return array(
‘aliases.list’ => array(
‘replace’ => function ($args) {
echo str_replace($args[0], $args[1], $args[2]);
},
),
);
# use your new command now !
$ pm replace ab cd abcdef
13. Bookmark popular project commands
# add your popular project commands to the list
$ vi project.php
---
<?php
return array(
‘bookmarks.list’ => array(
‘unit tests’ => ‘pm tu’,
‘commit’ => ‘pm co’,
‘the very important command to keep in mind’ => ‘do-something’,
…
),
);
# at anytime, list your bookmarked commands easily !
$ pm
14. Create a new code template
# create an new empty template called ‘my-tpl’ using example
$ pm tpl:new my-tpl --example
# … read generated example in _pm/templates/my-tpl
# … customize your template content
$ mkdir _pm/templates/my-tpl/sources
$ vi _pm/templates/my-tpl/sources/%{pm.ucfirst@class.name}.php
---
<?php
class %{pm.ucfirst@class.name} { … }
# use your new template now ! (--class.name=… is optional)
$ pm tpl my-tpl --class.name=MyClass
15. Executing unit tests
(using installed PHPUnit tool)
# customizing the location of your unit tests (PHPUnit)
$ vi project.php
---
<?php
return array(
…
‘paths.list’ => array(
‘tests/unit/php’ => ‘test/library’,
…
),
);
# execute unit tests in test/library/MyClassTest.php now !
$ pm tu
$ pm tu MyClass
16. Customizing an existing command
# replace existing command by yours
$ vi project.php
---
<?php
return array(
‘aliases.list’ => array(
‘tu’ => ‘atoum %{0|.}’,
…
),
);
# execute your customized command now ! (« atoum MyClass »)
$ pm tu MyClass
17. Enabling logging/trace for a command
# execute your command with debug log enabled
$ pm -o tu
# execute your command with hard-core log enabled
$ pm -e tu
# execute your command by tracing all io.* as info
$ pm -t io=info tu
# execute your command by logging all notice (and above)
$ pm --verbose=notice tu
18. Use PM in your language (if exists ;))
# execute your command in french (if translated…)
$ pm -l=fr-fr tu
# force using french for all team member of the project
$ vi project.php
---
<?php
return array(
…
‘lang’ => ‘fr-fr’,
…
);
$ pm tu
19. Upgrade your database using scripts
# create repository for your differentials scripts
$ pm db:repo:create configs/mysql
# creates differentials scripts for your database
$ vi configs/mysql/2/01_all_schema_create_products_table.sql
---
-- dump the content of your differential script here
# set your database credentials and location in your configuration
$ vi project.php
---
<?php
return array(
‘databases.list’ => …
…
Soon available …
);
# upgrade your database using differential scripts
$ pm db:up
20. Audit your code
# first, index your source code
$ pm source:index
Soon available …
# then, request the index …
# … to list biggest method (in lines) using predefined queries …
$ pm source:query methods.biggest
# … or using pure sql
$ pm source:query "SELECT name FROM methods ORDER BY DESC lines LIMIT 0,10"
# … to get the size per file extension
$ pm source:query "SELECT size FROM files GROUP BY extension"
# … same but exported in CSV
$ pm source:query "SELECT size FROM files GROUP BY extension" --format=csv
21. Adds conditional features
# example: add ‘co’ alias to commit only if svn client available
$ vi project.php
---
…
‘conditional.sets.list’ => array( assertTreeContains
… assertTreeNotContains
'svn' => 'assertTreeContains:.svn', assertSystemPathContainsOne
… assertContextFlagExists
), assertContextContains
‘svn.sets.list’ => array( …
‘aliases.list’ => array(
‘co’ => ‘!svn commit’,
),
),
…
# if your project is « subversionned » (i.e. you have a .svn directory), use :
$ pm co
22. Adds environment specific features
# example: add ‘cache:clean’ alias only on your integration server
$ vi project.php
---
…
‘environments.list’ => array(
…
‘integ-01‘ => array(
‘aliases.list’ => array(
‘cache:clean’ => ‘!rm –rf /tmp/myapp/cache’,
),
),
…
),
# on your integration server ‘integ-01’, you can now use your command:
$ pm --env=integ-01 cache:clean
# to autodetect the environment, use the ‘COMPUTERNAME’ environment variable
$ export COMPUTERNAME=integ-01
$ pm cache:clean
23. Adds user specific features
# example: replaces an existing ‘co’ alias by yours only for the user ‘ohoareau‘:
$ vi project.php
---
‘users.list’ => array(
‘ohoareau‘ => array(
‘aliases.list’ => array(
‘co’ => ‘!my-specific-co-command’,
),
‘user.name’ => ‘Olivier Hoareau’,
‘user.email’ => ‘something@example.com’,
‘company.name’ => ‘PHPPRO’,
‘company.website’ => ‘http://www.phppro.fr’,
‘lang’ => ‘fr-fr’,
),
),
# you can now use your command:
$ pm --user=ohoareau co
# to autodetect the current user, use the ‘USERNAME’ environment variable
$ export USERNAME=ohoareau
$ pm co
24. Translates (pm) messages
in your language
# generates a stub for your translation file
$ pm :i18n:new de-de --from=fr-fr
# edit your locale file and translate messages
$ vi _pm/i18n/de-de.php
# send us your locale file _pm/i18n/de-de.php !
26. As a developer, I want to maintain « textual »
specification of my application and distribute
it in PDF
# example: using latex (or markdown, or some other transformable text format) :
$ vi project.php
---
‘aliases.list’ => array(
‘spec:gen‘ => ‘!pdflatex %{/docs/latex}/%{0}.tex --output-
directory=%{/docs/generated}’,
),
),
# then, edit your latex files…
# then « generate » pdf from your latex file
$ pm spec:gen feature-xyz
# then send it by mail !
$ pm email:file docs/generated/feature-xyz.pdf boss@mycompany.com
27. As a developer, I want to svn update, execute
unit tests before committing in one single
command
# add your custom « sequence » command to your project
$ vi project.php
---
‘aliases.list’ => array(
‘c‘ => array(‘up’, ‘tu’, ‘co’),
),
# then use your alias to code faster !
$ pm c
28. As an open source project lead developer, I
want to package my development into a PEAR-
compatible package in one single command
# specify the list of directories to include
$ vi project.php
---
‘includepaths.list’ => array(
Beta
‘library’,
),
# then package !
$ pm pkg --format=pear --version=1.12.3-RC3
# then install / distribute your PEAR compatible package
$ pear install builds/zend-framework-1.12.3-RC3.tgz
29. Other real life examples …
• Generate empty controller / model using default comments
and current user info
• Generate model classes using an existing database (tables)
using custom tree template
• Update local database directly after a svn update (post-
update script)
• List all available useful commands on the project for new
incoming developers
• Use same commands on local desktop and on integration
server (maintenance purpose)
• …
31. Todo
• Full support for popular frameworks (ZF, Symfony, CakePHP…)
• Standalone pm.exe containing PHP 5.3 (+dlls) !
• Hard core unit test coverage (code is designed for that)
• Debian package + repository for PM
• PEAR package for PM (80% done)
• Plugin support + Plugin development kit
• Ability to share your alias / command with others
• Windows installer optionally installing PHP 5.3
• PM documentation online
• PM web hub
• XML / Ini configuration file format (project.xml / project.ini)
• Ability to manage project using other technology than PHP
• Non regression tests on PM core features
• Provide Jenkins (Hudson) plugin for PM