An introduction to object oriented programming in PHP. This is applicable to WordPress and other CMS/frameworks as well. Note the last half of the slideshow contains the notes for the slides shown in the first half.
MySQL Tutorial For Beginners | Relational Database Management System | MySQL ...Edureka!
( ** MYSQL DBA Certification Training https://www.edureka.co/mysql-dba ** )
This Edureka tutorial PPT on MySQL explains all the fundamentals of MySQL with examples.
The following are the topics covered in this tutorial:
1. What is Database & DBMS?
2. Structured Query Language
3. MySQL & MySQL Workbench
4. Entity Relationship Diagram
5. Normalization
6. SQL Operations & Commands
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Microsoft SQL Server internals & architectureKevin Kline
From noted SQL Server expert and author Kevin Kline - Let’s face it. You can effectively do many IT jobs related to Microsoft SQL Server without knowing the internals of how SQL Server works. Many great developers, DBAs, and designers get their day-to-day work completed on time and with reasonable quality while never really knowing what’s happening behind the scenes. But if you want to take your skills to the next level, it’s critical to know SQL Server’s internal processes and architecture. This session will answer questions like:
- What are the various areas of memory inside of SQL Server?
- How are queries handled behind the scenes?
- What does SQL Server do with procedural code, like functions, procedures, and triggers?
- What happens during checkpoints? Lazywrites?
- How are IOs handled with regards to transaction logs and database?
- What happens when transaction logs and databases grow or shrinks?
This fast paced session will take you through many aspects of the internal operations of SQL Server and, for those topics we don’t cover, will point you to resources where you can get more information.
Automate document generation from SysML models with Rational Rhapsody Reporte...Bill Duncan
This article explains techniques to generate documents from IBM® Rational® Rhapsody SysML models, using the Rhapsody ReporterPLUS feature. Automated document generation from existing models enhances consistency between the different representations of the system used throughout system development. Using the right techniques, it is possible to produce publication-ready, human-readable documents that support engineering processes.
MySQL Tutorial For Beginners | Relational Database Management System | MySQL ...Edureka!
( ** MYSQL DBA Certification Training https://www.edureka.co/mysql-dba ** )
This Edureka tutorial PPT on MySQL explains all the fundamentals of MySQL with examples.
The following are the topics covered in this tutorial:
1. What is Database & DBMS?
2. Structured Query Language
3. MySQL & MySQL Workbench
4. Entity Relationship Diagram
5. Normalization
6. SQL Operations & Commands
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Microsoft SQL Server internals & architectureKevin Kline
From noted SQL Server expert and author Kevin Kline - Let’s face it. You can effectively do many IT jobs related to Microsoft SQL Server without knowing the internals of how SQL Server works. Many great developers, DBAs, and designers get their day-to-day work completed on time and with reasonable quality while never really knowing what’s happening behind the scenes. But if you want to take your skills to the next level, it’s critical to know SQL Server’s internal processes and architecture. This session will answer questions like:
- What are the various areas of memory inside of SQL Server?
- How are queries handled behind the scenes?
- What does SQL Server do with procedural code, like functions, procedures, and triggers?
- What happens during checkpoints? Lazywrites?
- How are IOs handled with regards to transaction logs and database?
- What happens when transaction logs and databases grow or shrinks?
This fast paced session will take you through many aspects of the internal operations of SQL Server and, for those topics we don’t cover, will point you to resources where you can get more information.
Automate document generation from SysML models with Rational Rhapsody Reporte...Bill Duncan
This article explains techniques to generate documents from IBM® Rational® Rhapsody SysML models, using the Rhapsody ReporterPLUS feature. Automated document generation from existing models enhances consistency between the different representations of the system used throughout system development. Using the right techniques, it is possible to produce publication-ready, human-readable documents that support engineering processes.
YouTube Link: https://youtu.be/zbMHLJ0dY4w
** MySQL DBA Certification Training: https://www.edureka.co/mysql-dba **
This Edureka video on 'SQL Basics for Beginners' will help you understand the basics of SQL and also sql queries which are very popular and essential.. In this SQL Tutorial for Beginners you will learn SQL from scratch with examples. Following topics have been covered in this sql tutorial.
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
MySQL Workbench Tutorial | Introduction To MySQL Workbench | MySQL DBA Traini...Edureka!
** MYSQL DBA Certification Training https://www.edureka.co/mysql-dba **
This Edureka tutorial on MySQL Workbench explains all the fundamentals of MySQL Workbench with examples.
The following are the topics covered in this tutorial:
What is MySQL Workbench?
MySQL Workbench Functionaltites
MySQL Workbench Editions
The Three Modules of Workbench
1. SQL Development
2. Data Modelling
3. Migration Wizard
Data Import & Export
Subscribe to our Edureka YouTube channel and hit the bell icon to get video updates: https://goo.gl/6ohpT
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
This presentation deals with the fundamentals of SQL, Installation and Database concepts. Presented by our team in Alphalogic Inc: https://www.alphalogicinc.com/
This presentation contains:
Definition of the group by, having and order by clauses
Examples with tables of the group by, having and order by clauses
SQL queries for the group by, having and order by clauses
How do you measure the quality of your code? Performance and testing are just one aspect of code, in order to meet deadlines and make maintenance quicker you also need your code to be readable, decoupled and generally easier to comprehend and work with. This talk will go over tips and exercises to help you identify trouble areas, refactor them and train you to write better code in future projects. Come make your code look and function better.
Dare to build vertical design with relational data (Entity-Attribute-Value)Ivo Andreev
Entity-Attribute-Value model is often called “anti-pattern” by the criticism. And probably they would be right if one misses to read the “Handle with Care” label on it. Enthusiastic inexperienced developers would easily compromise the benefits of relational DB but the coin has yet another side. Hierarchical object with thousands of properties, unknown schema, flexibility and millions of records. As always – we have to sacrifice one thing in order to win another. Then all it comes to priorities and ability for decision making. At this lecture you will not get a step-by-step manual but instead get ideas for how to build one for you. A challenge, a proof of concept, hard work and successful project for millions – that is the story to share.
(Demo code and video available at http://fsharpforfunandprofit.com/cap/)
We all want to produce modular and robust code that is easy to test and refactor, and we have design principles such as SOLID that help us do that.
In this talk I'll look at a very different approach to design using "capabilities" and the principle of least authority. I'll show how using these design techniques throughout your core domain (and not just at your API boundary) also leads to well-designed and modular code.
I'll demonstrate how to design and use a capability based approach, how capabilities can be quickly combined and restricted easily, and how capabilities are a natural fit with a REST API that uses HATEAOS.
How to Make SEO Audits That Matter & Get Implemented for SEO Success - The Ex...Aleyda Solís
Maximize cost-effective SEO implementation and achieve SEO success with SEO audits that get implemented:
* Make your SEO audits solutions focused to develop action driven recommendations
* Prioritize your SEO recommendations based on impact and effort, with SEO low-hanging fruits
* Establish ongoing actions to prevent new SEO issues & leverage opportunities during the process
* Connect each of your SEO recommendations to SMARTER SEO goals
* Format SEO recommendations to facilitate actionability and collaboration
* Develop frequent recommendations reviews & tests to keep them relevant and impactful
The Spring Expression Language (SpEL for short) is a powerful expression language that supports querying and manipulating an object graph at runtime. The language syntax is similar to Unified EL but offers additional features, most notably method invocation and basic string templating functionality.
Using 'page importance' in ongoing conversation with Googlebot to get just a bit more crawl budget as part of technical SEO strategy for ecommerce and enterprise SEO website projects
The Art of Unit Testing - Towards a Testable DesignVictor Rentea
Slides of the Talk I gave at Devoxx Belgium 2019.
=== Abstract ===
Focusing on the creative work without being terrified of breaking the existing behavior can make software development very addictive! Good automated tests can buy you that!
However, if your tests are not maintainable they may end up slowing you down and causing you painful headaches, compilation errors and spurious failures. To avoid that, your unit tests should be significant; expressive; clean; DRY; non-overlapping; and blazing fast. Writing good tests becomes the toughest challenge for any developer, no matter how battle-hardened: you need to balance risk with test maintenance costs, while looking out for test design smells that call for [risky] refactoring to drive your design towards a set of key principles (included:).
Principles that will end up shaping the way you craft the Production code itself. Because in the end, a good, clean design is more important than coverage%.
But testing gives you the best feedback to get there.
Grab a black coffee and join this snippet from Victor’s Pro Unit Testing #training, to learn about testing priorities, buggy tests, the shared @Before, Mocks vs Stubs and how to reduce them by "purifying" your logic, testing Legacy Code and refactoring @Spy-es out.
All of that in an entertaining, dynamic and memorable session.
YouTube Link: https://youtu.be/zbMHLJ0dY4w
** MySQL DBA Certification Training: https://www.edureka.co/mysql-dba **
This Edureka video on 'SQL Basics for Beginners' will help you understand the basics of SQL and also sql queries which are very popular and essential.. In this SQL Tutorial for Beginners you will learn SQL from scratch with examples. Following topics have been covered in this sql tutorial.
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
MySQL Workbench Tutorial | Introduction To MySQL Workbench | MySQL DBA Traini...Edureka!
** MYSQL DBA Certification Training https://www.edureka.co/mysql-dba **
This Edureka tutorial on MySQL Workbench explains all the fundamentals of MySQL Workbench with examples.
The following are the topics covered in this tutorial:
What is MySQL Workbench?
MySQL Workbench Functionaltites
MySQL Workbench Editions
The Three Modules of Workbench
1. SQL Development
2. Data Modelling
3. Migration Wizard
Data Import & Export
Subscribe to our Edureka YouTube channel and hit the bell icon to get video updates: https://goo.gl/6ohpT
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
This presentation deals with the fundamentals of SQL, Installation and Database concepts. Presented by our team in Alphalogic Inc: https://www.alphalogicinc.com/
This presentation contains:
Definition of the group by, having and order by clauses
Examples with tables of the group by, having and order by clauses
SQL queries for the group by, having and order by clauses
How do you measure the quality of your code? Performance and testing are just one aspect of code, in order to meet deadlines and make maintenance quicker you also need your code to be readable, decoupled and generally easier to comprehend and work with. This talk will go over tips and exercises to help you identify trouble areas, refactor them and train you to write better code in future projects. Come make your code look and function better.
Dare to build vertical design with relational data (Entity-Attribute-Value)Ivo Andreev
Entity-Attribute-Value model is often called “anti-pattern” by the criticism. And probably they would be right if one misses to read the “Handle with Care” label on it. Enthusiastic inexperienced developers would easily compromise the benefits of relational DB but the coin has yet another side. Hierarchical object with thousands of properties, unknown schema, flexibility and millions of records. As always – we have to sacrifice one thing in order to win another. Then all it comes to priorities and ability for decision making. At this lecture you will not get a step-by-step manual but instead get ideas for how to build one for you. A challenge, a proof of concept, hard work and successful project for millions – that is the story to share.
(Demo code and video available at http://fsharpforfunandprofit.com/cap/)
We all want to produce modular and robust code that is easy to test and refactor, and we have design principles such as SOLID that help us do that.
In this talk I'll look at a very different approach to design using "capabilities" and the principle of least authority. I'll show how using these design techniques throughout your core domain (and not just at your API boundary) also leads to well-designed and modular code.
I'll demonstrate how to design and use a capability based approach, how capabilities can be quickly combined and restricted easily, and how capabilities are a natural fit with a REST API that uses HATEAOS.
How to Make SEO Audits That Matter & Get Implemented for SEO Success - The Ex...Aleyda Solís
Maximize cost-effective SEO implementation and achieve SEO success with SEO audits that get implemented:
* Make your SEO audits solutions focused to develop action driven recommendations
* Prioritize your SEO recommendations based on impact and effort, with SEO low-hanging fruits
* Establish ongoing actions to prevent new SEO issues & leverage opportunities during the process
* Connect each of your SEO recommendations to SMARTER SEO goals
* Format SEO recommendations to facilitate actionability and collaboration
* Develop frequent recommendations reviews & tests to keep them relevant and impactful
The Spring Expression Language (SpEL for short) is a powerful expression language that supports querying and manipulating an object graph at runtime. The language syntax is similar to Unified EL but offers additional features, most notably method invocation and basic string templating functionality.
Using 'page importance' in ongoing conversation with Googlebot to get just a bit more crawl budget as part of technical SEO strategy for ecommerce and enterprise SEO website projects
The Art of Unit Testing - Towards a Testable DesignVictor Rentea
Slides of the Talk I gave at Devoxx Belgium 2019.
=== Abstract ===
Focusing on the creative work without being terrified of breaking the existing behavior can make software development very addictive! Good automated tests can buy you that!
However, if your tests are not maintainable they may end up slowing you down and causing you painful headaches, compilation errors and spurious failures. To avoid that, your unit tests should be significant; expressive; clean; DRY; non-overlapping; and blazing fast. Writing good tests becomes the toughest challenge for any developer, no matter how battle-hardened: you need to balance risk with test maintenance costs, while looking out for test design smells that call for [risky] refactoring to drive your design towards a set of key principles (included:).
Principles that will end up shaping the way you craft the Production code itself. Because in the end, a good, clean design is more important than coverage%.
But testing gives you the best feedback to get there.
Grab a black coffee and join this snippet from Victor’s Pro Unit Testing #training, to learn about testing priorities, buggy tests, the shared @Before, Mocks vs Stubs and how to reduce them by "purifying" your logic, testing Legacy Code and refactoring @Spy-es out.
All of that in an entertaining, dynamic and memorable session.
This DrupalCon 2019 Amsterdam talk provides a look beyond the world of PHP and Javascript. It explores how other languages such as Ruby, Java, Rust and Perl handle things and highlights some interesting features of those languages. Not all the things that other languages can do can be done in PHP or Javascript but the concepts and ideas can still be used.
When developers are introduced to Object Oriented Programming, one of the first things that happens is that they are taught that nouns turn into objects, verbs into methods, and Dog is a subclass of Animal. OOP is more than just turning things into classes and objects and showing that both Boats and Cars have motors, and that Dogs and Cats both speak(). Let's look at OOP in real world settings and go beyond cars and dogs, and see how to use Object Oriented Programming properly in PHP. Traits, Composition, Inheritance, none of it is off limits!
WebCamp: Developer Day: DDD in PHP on example of Symfony - Олег ЗинченкоGeeksLab Odessa
DDD in PHP on example of Symfony
Олег Зинченко
В докладе речь пойдет о том, что такое DDD и почему MVC годами вводит нас в заблуждение. Как автор пришёл к мысли о том, что просто писать структурированный код недостаточно. Будут описаны слои приложения DDD, как они взаимодействуют между собой. Какие архитектурные паттерны стоят за DDD и почему они облегчают жизнь разработчика. Когда лучше использовать DDD, какие достоинства и недостатки есть у этого подхода. Примеры использованиея DDD подхода в Symfony приложениях.
This presentation is about how to write tests faster, how to use real objects in tests which allow us to refactor a lot of code without worrying about "refactoring" other tests.
When developers are introduced to Object Oriented Programming, one of the first things that happens is that they are taught that nouns turn into objects, verbs into methods, and Dog is a subclass of Animal. OOP is more than just turning things into classes and objects and showing that both Boats and Cars have motors, and that Dogs and Cats both speak(). Let's look at OOP in real world settings and go beyond cars and dogs, and see how to use Object Oriented Programming properly in PHP. Traits, Composition, Inheritance, none of it is off limits! (No animals were harmed in preparation for this talk, though there was mention of showing how a dog can have wheels. And yes, the title is supposed to be Cars and Dogs.)
Coming to Terms with OOP In Drupal - php[world] 2016Chris Tankersley
Drupal 8 has not only brought to the table a much improved admin experience, but has now moved on from its procedural roots into the realm of Object Oriented Programming. While this is a great thing for developers, many Drupal developers have never been introduced to OOP. This talk will explore a very high-level overview of objects, inheritance, composition, and how to architect your code as it relates to Drupal 8.
RubyConf 2022 - From beginner to expert, and back againmtoppa
"In the beginner's mind there are many possibilities, in the expert's mind there are few."
- Shunryu Suzuki, from "Zen Mind, Beginner's Mind"
The Japanese Zen term shoshin translates as “beginner’s mind” and refers to a paradox: the more you know about a subject, the more likely you are to close your mind to further learning. In contrast, the beginner’s state of mind is judgment free. It’s open, curious, available, and present. We’ll draw on examples of these mindsets from fields as varied as aviation and geology, and discover lessons we can apply to the world of software development.
RailsConf 2022 - Upgrading Rails: The Dual Boot Waymtoppa
Upgrading Rails is easy, right? Sure, as long as you are upgrading your patch version. A Rails upgrade for a big application is not a trivial project: It took GitHub a year and a half to upgrade from Rails 3.2 to 5.2.
While upgrades have become easier with every new Rails version, your application has only become more complicated with every new dependency you added.
In this workshop you will learn a proven Rails upgrade process for major and minor version changes of Rails. You will leave this workshop with a roadmap to upgrade your Rails application.
Applying Omotenashi (Japanese customer service) to your workmtoppa
“There is customer service, and then there is Japanese customer service.” - Tadashi Yanai, CEO, Uniqlo
Americans visiting Japan are often dazzled by the quality of customer service they experience, but usually mistakenly perceive it as a well-executed form of customer service as they understand it from Western culture. The American notion of “the customer is always right,” does not apply in Japan, yet customer dissatisfaction is much less common. We’ll explore why this is, with some entertaining real-life examples, and discover lessons from it that we can apply to our work in the software industry.
I gave this as a lightning talk at Boston.rb on 7/14//2015. It's a discussion of the challenges of applying the Law of Demeter to Rails programming.
I gave an older, simpler version of this talk at Philly.rb on 1/15/2013. I've replaced those older slides.
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...mtoppa
Web accessibility (A11Y) is about making the web usable for people with disabilities, and it also benefits others with changing abilities, such as older people. Internationalization (I18N) and localization (L10N) are about translating web sites into other languages. UTF8 is a Unicode character set, which is now the dominant one used on the web, and it’s designed to include characters from just about every written language. Each of these topics are typically discussed in isolation from each other, but in this talk – after a gentle introduction to each of them – we’ll explore their interconnections. We’ll also take a look at what WordPress provides for supporting them in your work creating sites, themes, or plugins.
The promise and peril of Agile and Lean practicesmtoppa
Why you may to consider adopting Agile or Lean practices, how they differ from each other, what benefits you can expect, and what obstacles you may face.
Boston Ruby Meetup: The promise and peril of Agile and Lean practicesmtoppa
Why you may to consider adopting Agile or Lean practices, how they differ from each other, what benefits you can expect, and what obstacles you may face
WordCamp Nashville 2016: The promise and peril of Agile and Lean practicesmtoppa
Why you may to consider adopting Agile or Lean practices, how they differ from each other, what benefits you can expect, and what obstacles you may face
We want code that is easy to understand, re-usable, and flexible. But we are always up against deadlines, so we rush, and end up with code that is messy, buggy, hard to maintain, and makes us go slower even though we’re trying to go faster.
What is clean code? In this talk I’ll provide some answers to this question, and introduce you to 10 good habits that will help keep your code clean, such as the use of meaningful names for your variables and functions, and following the “Boy Scout Rule” (leave the code cleaner than you found it). I will even try to persuade you that using a lot of code comments is a sign that there are problems with your code.
WordCamp Boston 2015: Agile Contracts for WordPress Consultantsmtoppa
Before going out on my own to start Poka Yoke Design this June, I worked at PromptWorks, where we signed over 30 Time & Materials (T&M) contracts with clients over the past 2 years, from local businesses to nationally known media companies. This is in contrast to traditional Fixed Scope, Fixed Cost (FS-FC) contracts.
Prospective clients typically have an initial preference for FS-FC contracts: they’re familiar, and at first glance, seem to guarantee the client will get what they want (by spelling out business requirements in detail), and place the business risk on the contractor. However, traditional contracts fail to recognize that web application development is more like an R&D project than a construction project. In the fast paced world of the web, business requirements can grow and change rapidly, technical challenges and opportunities can arise, and both parties benefit from being able to respond to these changes in a teamwork fashion, instead of spending time on lengthy contract re-negotiations.
In this talk we’ll explore what goes into a T&M contract, how to persuade a prospective client to sign one, and how to live up to the expectations you create in the persuasion process, to deliver a successful project.
WordCamp Nashville 2015: Agile Contracts for WordPress Consultantsmtoppa
When you develop a WordPress based project for a client in an Agile way, you deliver working features on a frequent basis, such as weekly, as you build out the project. This allows for review, feedback, and adapting to change. Evolving business requirements are welcome in an Agile process, instead of a source of frustration.
The problem is, even if clients think an Agile approach sounds good, they almost always have a preference for traditional Fixed Price, Fixed Scope contracts. These contracts, with detailed specifications, costs, and delivery dates, contradict the Agile approach, but they provide clients them with a sense of security and confidence that they will get what they want.
How do you convince them a traditional contract is actually riskier than they think, and persuade them to instead sign a contract that facilities Agile development? This is the most significant challenge facing consultants who want to follow Agile practices. At PromptWorks we use Time & Materials contracts with our clients, and we have signed over 30 of them in the past 2 years. In this talk we’ll discuss:
* What different types of contracts imply about the nature of the relationship with your client, and what it means for it to be a professional relationship of equals. Risk and reward should be shared, and the relationship should feel like a partnership.
* The persuasion and negotiation process for getting your prospective clients to sign a Time & Materials contract. We’ll discuss real-life situations from our experience at PromptWorks.
* PromptWorks’ typical project proposal, Master Service Agreement, and Scope of Work documents. We’ll highlight key aspects of our approach, and things to look out for if you have to use contract documents provided by your client.
WordCamp Nashville: Clean Code for WordPressmtoppa
Slides from my talk at WordCamp Nashville, including notes. Covers why clean code is important, and provides 10 tips to make your code cleaner, for WordPress and beyond
An overview of Agile and Scrum practices, and a comparison of 2 different, real-life Agile adoption experiences in a University setting. Presented at the Wharton Web Conference, July 2011
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
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.
3. Mike Toppa
● Director of Development, WebDevStudios
● 17 years of experience in web development,
project management, and team management
● Universities: Georgetown, Stanford, Penn
● Dot coms: E*Trade, Ask Jeeves
● Start-ups: Finexa, Kai's Candy Co
● WordPress development for non-profits
www.toppa.com @mtoppa
4. Overview
● Nuts and bolts of classes and objects in PHP
● The single responsibility principle
● The dependency inversion principle
● When to prefer OO to procedural programming
www.toppa.com @mtoppa
6. Simple example
class Lamp {
// property declaration
private $maxSafeWatts = 100;
// method declaration
public function getMaxSafeWatts() {
return $this->maxSafeWatts;
}
}
---------------------------------------------------------------
// instantiate and assign
$myLamp = new Lamp();
echo $myLamp->getMaxSafeWatts();
7. Rule of thumb:
avoid public properties
class Lamp {
public $maxSafeWatts = 100;
}
---------------------------------------------
$myLamp = new Lamp();
// dangerous to allow this!
$myLamp->maxSafeWatts = 'a string to wreck your math';
8. Prefer private properties
class Lamp {
private $maxSafeWatts = 100;
public setMaxSafeWatts($watts) {
if (!is_numeric($watts) || $watts > 125 || $watts < 1) {
throw New Exception('invalid value for watts');
}
$this->maxSafeWatts = $watts;
return $this->maxSafeWatts;
}
}
-------------------------------------------------------------------
$myLamp = new Lamp();
$myLamp->setMaxSafeWatts(75);
9. Constructors
class Lamp {
private $bulb;
public function __construct($bulb) {
$this->bulb = $bulb;
}
}
---------------------------------------------
$myLamp = new Lamp('3 way');
10. Type Hinting
class Lamp {
private $bulb;
public function __construct(Bulb $bulb) {
$this->bulb = $bulb;
}
}
---------------------------------------------
$myBulb = new Bulb();
$myLamp = new Lamp($bulb);
12. Initializing your OO plugin
// this is the start.php file for a “Lamp” WP plugin...
// require or autoload the “main” class file for your plugin
// and then...
$lamp = new Lamp();
$lamp->run();
// that's it!
14. Abstract classes and methods
abstract class Lamp {
protected $color;
protected $maxSafeWatts;
public function setColor($color) {
$this->color = $color;
return $this->color;
}
abstract public function setMaxSafeWatts($watts);
}
15. Implementing abstract classes
class FloorLamp extends Lamp {
public function setMaxSafeWatts($watts) {
/* if numeric and less than 150... */
$this->maxSafeWatts = $watts;
return $this->maxSafeWatts;
}
}
------------------------------------------------------------------
class DeskLamp extends Lamp {
public function setMaxSafeWatts($watts) {
/* if numeric and less than 100... */
$this->maxSafeWatts = $watts;
return $this->maxSafeWatts;
}
}
17. Using interfaces: the facade pattern
Functions
A PHP
facade
application
interface
WordPress Drupal Some other
facade facade facade
implementation implementation implementation
18. Interface Example
interface FunctionsFacade {
public function enqueueStylesheet($handle);
}
------------------------------------------------------------------------
class FunctionsFacadeWp implements FunctionsFacade {
public function enqueueStylesheet($handle) {
return wp_enqueue_style($handle);
}
}
// we'll look at how to actually use the interface in a few minutes...
28. Naïve model of a button and lamp
Lamp
Button
+ turnOn()
+ poll()
+ turnOff()
class Button {
private $lamp;
public function __construct(Lamp $lamp) {
$this->lamp = $lamp;
}
public function poll() {
if (/* some condition */) {
$this->lamp->turnOn();
}
} Example from “Agile Software Development”
}
29. Dependency inversion applied
<<interface>>
Button SwitchableDevice
+ poll() + turnOn()
+ turnOff()
Lamp
This is the Abstract Server pattern
30. SwitchableDevice and Lamp
interface SwitchableDevice {
public function turnOn();
public function turnOff();
}
--------------------------------------------------------------
class Lamp implements SwitchableDevice {
public function turnOn() {
// code
}
public function turnOff() {
// code
}
}
31. Button
class Button {
private $switchableDevice;
public function __construct(SwitchableDevice
$switchableDevice) {
$this->switchableDevice = $switchableDevice;
}
public function poll() {
if (/* some condition */) {
$this->switchableDevice->turnOn();
}
}
}
32. Using the Button
// require or autoload the class files, then...
$lamp = new Lamp();
$buttonForLamp = new Button($lamp);
$buttonforLamp->poll();
$motor = new Motor();
$buttonForMotor = new Button($motor);
$buttonForMotor->poll();
33. Dependency Chains
If class A depends on class B,
and class B depends on class C,
class A should be blissfully unaware of class C
www.toppa.com @mtoppa
34. To do this without going insane,
you need an injection container
www.toppa.com @mtoppa
35. A web of collaborating objects
● The SRP and DIP together drive a
“composition” approach to OO design
● From Growing Object Oriented Software,
Guided by Tests:
"An object oriented system is a web of
collaborating objects... The behavior of
the system is an emergent property of
the composition of the objects - the
choice of objects and how they are
connected... Thinking of a system in
terms of its dynamic communication
structure is a significant mental shift from
the static classification that most of us
learn when being introduced to objects."
37. When to prefer OOP to procedural programming
www.toppa.com @mtoppa
38. Object oriented programming
for WordPress plugin
development
Mike Toppa
WordCamp NYC
June 9, 2012
www.toppa.com @mtoppa
Skill level
Theory and practice
Won't be an expert
We will be looking at code
39. www.toppa.com @mtoppa
What I'll cover is not specific to WordPress
When you write a plugin you are writing software
Your software should be organized around its use
cases, it should not be organized around WordPress'
architecture
That is, you should not start with something like a
“plugin” class. Your classes should be organized
around the business problem they are trying to
solved, not around the details of WordPress.
40. Mike Toppa
● Director of Development, WebDevStudios
● 17 years of experience in web development,
project management, and team management
● Universities: Georgetown, Stanford, Penn
● Dot coms: E*Trade, Ask Jeeves
● Start-ups: Finexa, Kai's Candy Co
● WordPress development for non-profits
www.toppa.com @mtoppa
41. Overview
● Nuts and bolts of classes and objects in PHP
● The single responsibility principle
● The dependency inversion principle
● When to prefer OO to procedural programming
www.toppa.com @mtoppa
43. Simple example
class Lamp {
// property declaration
private $maxSafeWatts = 100;
// method declaration
public function getMaxSafeWatts() {
return $this->maxSafeWatts;
}
}
---------------------------------------------------------------
// instantiate and assign
$myLamp = new Lamp();
echo $myLamp->getMaxSafeWatts();
A class consists of properties, and methods which
perform actions, by manipulating those properties
Encapsulation of related methods and properties. This
is what a class really is.
Properties and methods have a visibility (public,
private, or protected)
An object is created by instantiating a class (calling
new). Then you typically, assign it to a variable, and
call its methods as needed
44. Rule of thumb:
avoid public properties
class Lamp {
public $maxSafeWatts = 100;
}
---------------------------------------------
$myLamp = new Lamp();
// dangerous to allow this!
$myLamp->maxSafeWatts = 'a string to wreck your math';
Public properties can be used and abused by external
code at any time.
45. Prefer private properties
class Lamp {
private $maxSafeWatts = 100;
public setMaxSafeWatts($watts) {
if (!is_numeric($watts) || $watts > 125 || $watts < 1) {
throw New Exception('invalid value for watts');
}
$this->maxSafeWatts = $watts;
return $this->maxSafeWatts;
}
}
-------------------------------------------------------------------
$myLamp = new Lamp();
$myLamp->setMaxSafeWatts(75);
By requiring them to be set through a method call, you
can control what types of values are valid, and what
ranges are valid.
46. Constructors
class Lamp {
private $bulb;
public function __construct($bulb) {
$this->bulb = $bulb;
}
}
---------------------------------------------
$myLamp = new Lamp('3 way');
The constructor is a special method, used for
initializing a class.
It's optional – is called when you call “new”
A constructor does not return anything
It should be used for getting a class into a valid initial
state
A common design mistake is to put a lot of complex
logic in the constructor, or call it to execute the
object's functionality.
47. Type Hinting
class Lamp {
private $bulb;
public function __construct(Bulb $bulb) {
$this->bulb = $bulb;
}
}
---------------------------------------------
$myBulb = new Bulb();
$myLamp = new Lamp($bulb);
48. Organizing your classes
www.toppa.com @mtoppa
One class per file, and the file name should match the
class name
Give the class a meaningful name and its methods
meaningful names
Class names and property names should be nouns or
noun phrases
Method names should be verbs or verb phrases
Get a real IDE that autocompletes variable names and
method names
49. Initializing your OO plugin
// this is the start.php file for a “Lamp” WP plugin...
// require or autoload the “main” class file for your plugin
// and then...
$lamp = new Lamp();
$lamp->run();
// that's it!
51. Abstract classes and methods
abstract class Lamp {
protected $color;
protected $maxSafeWatts;
public function setColor($color) {
$this->color = $color;
return $this->color;
}
abstract public function setMaxSafeWatts($watts);
}
An abstract class cannot be implemented directly
It can also have abstract methods, which must be
implemented by the child class
Protected methods and properties are essentially
private, but can be used by child classes
52. Implementing abstract classes
class FloorLamp extends Lamp {
public function setMaxSafeWatts($watts) {
/* if numeric and less than 150... */
$this->maxSafeWatts = $watts;
return $this->maxSafeWatts;
}
}
------------------------------------------------------------------
class DeskLamp extends Lamp {
public function setMaxSafeWatts($watts) {
/* if numeric and less than 100... */
$this->maxSafeWatts = $watts;
return $this->maxSafeWatts;
}
}
53. Interfaces
An electrical outlet is a great example of an interface. It
can power anything designed to plug into it. It doesn't
need to know or care about exactly what it's
connected to.
Interfaces define a set of methods a class must
implement. It's similar to abstract classes in this way,
but there is no inheritance.
54. Using interfaces: the facade pattern
Functions
A PHP
facade
application
interface
WordPress Drupal Some other
facade facade facade
implementation implementation implementation
A different implementation of the facade would allow
the PHP application to work outside of WordPress,
without touching the application's code
When you write a class to implement an interface, it
can interact with other classes that know how to talk
to that interface, without those other classes having
to know anything about your particular
implementation of the interface
55. Interface Example
interface FunctionsFacade {
public function enqueueStylesheet($handle);
}
------------------------------------------------------------------------
class FunctionsFacadeWp implements FunctionsFacade {
public function enqueueStylesheet($handle) {
return wp_enqueue_style($handle);
}
}
// we'll look at how to actually use the interface in a few minutes...
56. The SOLID Principles
● Single Responsibility (SRP)
● Open-Closed (OCP)
● Liskov Substitution (LSP)
● Interface Segregation (ISP)
● Dependency Inversion (DIP)
www.toppa.com @mtoppa
Introduced by Bob Martin in his book “Agile Software
Development”
57. From LosTechies.com
Applied to classes and methods
Do one thing, do it well, do it only
For methods, this typically means changing the value
of only one variable
If you are passing more than 2 or 3 arguments into a
method, you are probably doing more than one thing
For classes, it means having a single conceptual
responsibility
58. The purpose is to reduce the
complexity and fragility
of a class
www.toppa.com @mtoppa
We want code that is flexible and easy to understand,
not brittle and mind-numbing to read
When a method is manipulating multiple properties and
invoking lots of other methods, it can be very hard to
test, debug, and change. This is a common reason
why developers feel fear when making a change –
they don't know what might break
When a class has many methods and multiple
responsibilities, it can be hard to understand and
difficult to refactor
59. But what does it mean to do “one thing”?
www.toppa.com @mtoppa
61. Only one reason to change
www.toppa.com @mtoppa
A typical example is when business logic is entangled
with the user interface. If you want to develop an
RSS feed for a web page, and can't create the feed
without tearing apart or copying-and-pasting code
that's woven into your HTML, then you've got code
that has more than one reason to change.
62. Classes Example
ShashinDisplayer.php
ShashinAlbumDisplayer.php
ShashinAlbumDisplayerPicasa.php
ShashinAlbumDisplayerTwitpic.php
ShashinAlbumDisplayerFlickr.php
ShashinPhotoDisplayer.php
ShashinPhotoDisplayerPicasa.php
ShashinPhotoDisplayerTwitpic.php
ShashinPhotoDisplayerFlickr.php
You can start to see the power of the OO approach
here
I can add support for a new photos service by creating
a new subclass, instead of having to touch code all
over the place, adding a bunch of “if” statements
63. Methods Example
class ShashinInstall {
public function run() {
$this->createAlbumTable();
$this->verifyAlbumTable();
$this->createPhotoTable();
$this->verifyPhotoTable();
$this->updateSettings();
return true;
}
// ...
}
64. From LosTechies.com
It's common to see code that hard-wires together all
the parts, when those connections could be made
more flexible and extensible
65. Naïve model of a button and lamp
Lamp
Button
+ turnOn()
+ poll()
+ turnOff()
class Button {
private $lamp;
public function __construct(Lamp $lamp) {
$this->lamp = $lamp;
}
public function poll() {
if (/* some condition */) {
$this->lamp->turnOn();
}
} Example from “Agile Software Development”
}
This solution violates the DIP
● Button depends directly on Lamp
● Button is not reusable
● It can't control, for example, a Motor
66. Dependency inversion applied
<<interface>>
Button SwitchableDevice
+ poll() + turnOn()
+ turnOff()
Lamp
This is the Abstract Server pattern
What it means
Neither Button nor Lamp “own” the interface
Buttons can now control any device that implements
SwitchableDevice
Lamps and other SwitchableDevices can now be
controlled by any object that accepts a
SwitchableDevice
67. SwitchableDevice and Lamp
interface SwitchableDevice {
public function turnOn();
public function turnOff();
}
--------------------------------------------------------------
class Lamp implements SwitchableDevice {
public function turnOn() {
// code
}
public function turnOff() {
// code
}
}
68. Button
class Button {
private $switchableDevice;
public function __construct(SwitchableDevice
$switchableDevice) {
$this->switchableDevice = $switchableDevice;
}
public function poll() {
if (/* some condition */) {
$this->switchableDevice->turnOn();
}
}
}
69. Using the Button
// require or autoload the class files, then...
$lamp = new Lamp();
$buttonForLamp = new Button($lamp);
$buttonforLamp->poll();
$motor = new Motor();
$buttonForMotor = new Button($motor);
$buttonForMotor->poll();
70. Dependency Chains
If class A depends on class B,
and class B depends on class C,
class A should be blissfully unaware of class C
www.toppa.com @mtoppa
71. To do this without going insane,
you need an injection container
www.toppa.com @mtoppa
72. A web of collaborating objects
● The SRP and DIP together drive a
“composition” approach to OO design
● From Growing Object Oriented Software,
Guided by Tests:
"An object oriented system is a web of
collaborating objects... The behavior of
the system is an emergent property of
the composition of the objects - the
choice of objects and how they are
connected... Thinking of a system in
terms of its dynamic communication
structure is a significant mental shift from
the static classification that most of us
learn when being introduced to objects."
Author: Steve Freeman and Nat Pryce
73. But don't overdo it:
avoid needless complexity
The complexity of having 44 classes in Shashin is
justified by its need for flexibility
You can support a new viewer or a new photo service
simply by creating a new subclass. This is much
more maintainable and extensible than a single huge
file with deeply nested conditionals and unclear
dependencies
But if I knew I would never need that kind of flexibility,
there would be no justification for creating these
layers of abstraction – they would just be needless
complexity
74. When to prefer OOP to procedural programming
www.toppa.com @mtoppa
This can be subjective. For me, it hurts my brain to
program procedurally, even for small projects.
For a very small project, OO will usually involve more
code
If you can classify the components of an application
into objects with properties and methods, and you
have an idea of what kind of changes will come in
the future, an OO approach is very powerful.
Also, if you want to do unit testing, you need OO code