How to boost performance Doctrine2 with Symfony2. How to configure metadata caching? How to optimize DQL queries for caching. How to properly setup transaction demarcation with EntityManager. How to deal with EntityManager and Listeners with Symfony2 container.
New Symfony Tips & Tricks (SymfonyCon Paris 2015)Javier Eguiluz
This talk included tens of tips and tricks, new features and rarely used options for Symfony and its ecosystem. Besides the full-stack Symfony framework, other related technologies were mentioned, like Doctrine, Composer, Twig, PHPUnit and Monolog.
A quick overview of tips, tricks and code snippets for developers using Symfony and all its ecosystem, from Monolog to Doctrine. Learn how to become more productive and discover some rarely used options and features.
New Symfony Tips & Tricks (SymfonyCon Paris 2015)Javier Eguiluz
This talk included tens of tips and tricks, new features and rarely used options for Symfony and its ecosystem. Besides the full-stack Symfony framework, other related technologies were mentioned, like Doctrine, Composer, Twig, PHPUnit and Monolog.
A quick overview of tips, tricks and code snippets for developers using Symfony and all its ecosystem, from Monolog to Doctrine. Learn how to become more productive and discover some rarely used options and features.
Video presentation: https://www.youtube.com/watch?v=jLAFXQ1Av50
Most applications written in Ruby are great, but also exists evil code applying WOP techniques. There are many workarounds in several programming languages, but in Ruby, when it happens, the proportion is bigger. It's very easy to write Ruby code with collateral damage.
You will see a collection of bad Ruby codes, with a description of how these codes affected negatively their applications and the solutions to fix and avoid them. Long classes, coupling, misapplication of OO, illegible code, tangled flows, naming issues and other things you can ever imagine are examples what you'll get.
A presentation with tips and tools on how to integrate batch and asynchronous operations in a generic ruby on rails application.
Did this at rubyday.it 2011
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017Ryan Weaver
What is Symfony *really*? It's a collection of *35* independent libraries, and
Drupal uses less than *half* of them! That means that there's a *ton* of other
good stuff that you can bring into your project to solve common problems... as
long as you know how, and what those components do!
In this talk, we'll have some fun: taking a tour of the Symfony components, how
to install them (into Drupal, or anywhere) and how to use some of my *favorite*,
lesser-known components. By the end, you'll have a better appreciation of what
Symfony *really* is, and some new tools to use immediately.
Symfony: Your Next Microframework (SymfonyCon 2015)Ryan Weaver
Microservices are a huge trend, and microframeworks are perfect for them: put together just a few files, write some code, and your done!
But Symfony is a big framework, right? Wrong! Symfony can be as small as a single file!
In this talk, we'll learn how to use Symfony as a micro-framework for your next project. Your app will stay small and clear, but without needing to give up the features or third-party bundles that you love. And if the project grows, it can evolve naturally into a full Symfony project.
So yes, Symfony can also be a microframework. Tell the world!
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and moreRyan Weaver
There are so many interesting ways to authenticate a user: via an API token, social login, a traditional HTML form or anything else you can dream up.
But until now, creating a custom authentication system in Symfony has meant a lot of files and a lot of complexity.
Introducing Guard: a simple, but expandable authentication system built on top of Symfony's security component. Want to authenticate via an API token? Great - that's just one class. Social login? Easy! Have some crazy legacy central authentication system? In this talk, we'll show you how you'd implement any of these in your application today.
Don't get me wrong - you'll still need to do some work. But finally, the path will be clear and joyful.
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterHaehnchen
In 2013 the "Symfony Plugin" for PhpStorm was born. Today we see over 1 million downloads and several other plugins for projects like Laravel, Drupal, Shopware, ... that help to improve your productivity.
I will talk about Symfony related features and will give you some tips and tricks. Also, we take a look at the infrastructure behind these plugins and how I maintain all of them.
A year ago, I was a committed VPS and dedicated-machine deployer. I thought the cloud imposed silly restrictions - how dare you take away my shell account! Whaddya mean I can't save files locally? Since then, I've had some interesting experiences. I've worked on big cloud-deployed systems, and certain large traditionally-deployed systems, and I've seen how a lot of the decisions that you're ... encouraged to make when designing an app to run in the cloud. Most interestingly, I've discovered how those same decisions can make for a much better app regardless of where it'll end up. In this talk, I'll share those architectural patterns with you, and show why they work. Hopefully, I'll convince all of you to build cloud castles -- even if you've got your foundation firmly on the ground.
An introduction to message queues with PHP. We'll focus on RabbitMQ and how to leverage queuing scenarios in your applications. The talk will cover the main concepts of RabbitMQ server and AMQP protocol and show how to use it in PHP. The RabbitMqBundle for Symfony2 will be presented and we'll see how easy you can start to use message queuing in minutes.
Presented at Symfony User Group Belgium: http://www.meetup.com/Symfony-User-Group-Belgium/events/169953362/
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
Learn what the big deal is about PHP micro frameworks by taking a tour through an application written in Slim PHP. I'll briefly introduce you to some high level concepts, show how those concepts can be implemented in Slim, and see how powerful and elegant micro framework can be.
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
Redis is an extremely fast data structure server that can be easily added to your existing stack and act like a Swiss army knife to help solve many problems that would be extremely difficult to workaround with the traditional RDBMS. In this session we will focus on what Redis is, how it works, what awesome features we can build with it and how we can use it with PHP and integrate it with Symfony2 applications making them blazing fast.
Rationally boost your symfony2 application with caching tips and monitoringGiulio De Donato
Turin SymfonyDay, 5th October 2012 by @liuggio - I will try to keep the tips updated, I suggest you put this talk to your favorites. - Any comment or feedback are really appreciated.
Video presentation: https://www.youtube.com/watch?v=jLAFXQ1Av50
Most applications written in Ruby are great, but also exists evil code applying WOP techniques. There are many workarounds in several programming languages, but in Ruby, when it happens, the proportion is bigger. It's very easy to write Ruby code with collateral damage.
You will see a collection of bad Ruby codes, with a description of how these codes affected negatively their applications and the solutions to fix and avoid them. Long classes, coupling, misapplication of OO, illegible code, tangled flows, naming issues and other things you can ever imagine are examples what you'll get.
A presentation with tips and tools on how to integrate batch and asynchronous operations in a generic ruby on rails application.
Did this at rubyday.it 2011
The Coolest Symfony Components you’ve never heard of - DrupalCon 2017Ryan Weaver
What is Symfony *really*? It's a collection of *35* independent libraries, and
Drupal uses less than *half* of them! That means that there's a *ton* of other
good stuff that you can bring into your project to solve common problems... as
long as you know how, and what those components do!
In this talk, we'll have some fun: taking a tour of the Symfony components, how
to install them (into Drupal, or anywhere) and how to use some of my *favorite*,
lesser-known components. By the end, you'll have a better appreciation of what
Symfony *really* is, and some new tools to use immediately.
Symfony: Your Next Microframework (SymfonyCon 2015)Ryan Weaver
Microservices are a huge trend, and microframeworks are perfect for them: put together just a few files, write some code, and your done!
But Symfony is a big framework, right? Wrong! Symfony can be as small as a single file!
In this talk, we'll learn how to use Symfony as a micro-framework for your next project. Your app will stay small and clear, but without needing to give up the features or third-party bundles that you love. And if the project grows, it can evolve naturally into a full Symfony project.
So yes, Symfony can also be a microframework. Tell the world!
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and moreRyan Weaver
There are so many interesting ways to authenticate a user: via an API token, social login, a traditional HTML form or anything else you can dream up.
But until now, creating a custom authentication system in Symfony has meant a lot of files and a lot of complexity.
Introducing Guard: a simple, but expandable authentication system built on top of Symfony's security component. Want to authenticate via an API token? Great - that's just one class. Social login? Easy! Have some crazy legacy central authentication system? In this talk, we'll show you how you'd implement any of these in your application today.
Don't get me wrong - you'll still need to do some work. But finally, the path will be clear and joyful.
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterHaehnchen
In 2013 the "Symfony Plugin" for PhpStorm was born. Today we see over 1 million downloads and several other plugins for projects like Laravel, Drupal, Shopware, ... that help to improve your productivity.
I will talk about Symfony related features and will give you some tips and tricks. Also, we take a look at the infrastructure behind these plugins and how I maintain all of them.
A year ago, I was a committed VPS and dedicated-machine deployer. I thought the cloud imposed silly restrictions - how dare you take away my shell account! Whaddya mean I can't save files locally? Since then, I've had some interesting experiences. I've worked on big cloud-deployed systems, and certain large traditionally-deployed systems, and I've seen how a lot of the decisions that you're ... encouraged to make when designing an app to run in the cloud. Most interestingly, I've discovered how those same decisions can make for a much better app regardless of where it'll end up. In this talk, I'll share those architectural patterns with you, and show why they work. Hopefully, I'll convince all of you to build cloud castles -- even if you've got your foundation firmly on the ground.
An introduction to message queues with PHP. We'll focus on RabbitMQ and how to leverage queuing scenarios in your applications. The talk will cover the main concepts of RabbitMQ server and AMQP protocol and show how to use it in PHP. The RabbitMqBundle for Symfony2 will be presented and we'll see how easy you can start to use message queuing in minutes.
Presented at Symfony User Group Belgium: http://www.meetup.com/Symfony-User-Group-Belgium/events/169953362/
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
Learn what the big deal is about PHP micro frameworks by taking a tour through an application written in Slim PHP. I'll briefly introduce you to some high level concepts, show how those concepts can be implemented in Slim, and see how powerful and elegant micro framework can be.
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
Redis is an extremely fast data structure server that can be easily added to your existing stack and act like a Swiss army knife to help solve many problems that would be extremely difficult to workaround with the traditional RDBMS. In this session we will focus on what Redis is, how it works, what awesome features we can build with it and how we can use it with PHP and integrate it with Symfony2 applications making them blazing fast.
Rationally boost your symfony2 application with caching tips and monitoringGiulio De Donato
Turin SymfonyDay, 5th October 2012 by @liuggio - I will try to keep the tips updated, I suggest you put this talk to your favorites. - Any comment or feedback are really appreciated.
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupKacper Gunia
Slides from my talk at Symfony UK Meetup. London, 20 Aug 2014. http://twitter.com/cakper
Video: https://www.youtube.com/watch?v=cha92Og9M5A
More Domain-Driven Design related content at: https://domaincentric.net/
Asynchronous processing with PHP and Symfony2. Do it simpleKirill Chebunin
The presentation for Symfony Camp UA 2013 about asynchronous processing.
We will talk about a near real-time processing of a business logic which does not require synchronous actions.
How to do it fast.
How to do it simple.
And how to do not ask PHP to struggle through alone.
We will analyze our experience, bad decisions and will try to get Zen of simplicity.
$kernel->infect(): Creating a cryptovirus for Symfony2 appsRaul Fraile
Slides for my presentation at the Symfony Valencia meetup on creating a cryptovirus for Symfony2 apps.
Video (in Spanish): http://www.youtube.com/watch?v=rLHzmA0UuIw
A brief run through of the various APIs Google offers for creating free interactive and static data visualizations.
Links mentioned in this presentation: http://dev.kingkool68.com/google-charting-api/list-o-links.html
This talk is about how my company took a broken e-commerce and LMS site written in an older style MVC framework and re-wrote a significant portion of it in Symfony and related tools (Doctrine, FOS Bundles, Sonata) over 6 months and created a stable, well-tested application.
Beware the potholes on the road to serverlessYan Cui
Looking in from the outside, serverless seems so simple! And yet, many companies are struggling on their journey to serverless. In this talk, I highlight a number of mistakes companies are making when they adopt serverless.
Looking in from the outside, serverless seems so simple! And yet, many companies are struggling on their journey to serverless. In this talk, I highlight a number of mistakes companies are making when they adopt serverless.
Know your platform. 7 things every scala developer should know about jvmPawel Szulc
Your Scala code can be cohesive, beautiful and fully functional. But at the end of the day, it runs on the JVM - powerful platform which also has its limits.
Is this fact fully transparent to a Scala developer or does basic understanding of the platform can be beneficial? Can we squeeze full potential out of our code? Are we aware of limits of our runtime environment? This talk will try to answer those questions.
we will show how Scala code is transformed to bytecode and what that implies
we will try to answer the question why @tailrec matters
we will look at the organization of the JVM memory
we will understand how different GC algorithms work
we will see if different GC algorithm can change performance of our code
we will look at toolkits located at JAVA_HOME/bin/
we will try to scratch a surface of JIT :)
This is basic introduction to the topic. We will not show you how compiler works internally :) But we will try to give you general overview of internals of the platform that you use on a daily basis.
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
At the beginning of a project, the database is just a single MySQL instance (maybe not even running on its own hardware)... but with the evolution of the business requirements, the database must change to also meet the new targets of data loss and uptime. During this session we will follow the journey of a single MySQL server from the simple instance to a High Available Architecture with multi-site Disaster Recovery. We will discover easy manageable native solutions like MySQL InnoDB ReplicaSet, MySQL InnoDB Cluster and MySQL InnoDB ClusterSet. The session is also illustrated with commands and examples.
ZF2 Modular Architecture - Taking advantage of itSteve Maraspin
Zend Framework 1 had modules. Their name is pretty much everything Zend Framework 2 modules share with them, though. The whole framework architecture has been rewritten to encourage software reuse and extension. In this talk I’ll share our experiences on ZF2 module creation and usage.
Fast Data: Parallel Processing on the Grid.
You may think of in-memory datagrids as a big cache, a key value store accessed using put and get. However to really reap the power and scale of modern data grids you need to move beyond cache semantics and turn your architecture on its head. Moving the processing to the data rather than pulling the data across the grid massively increases parallelism and reduces network latency, leading to huge increases in throughput. In this session, we will explore why traditional cache semantics sometimes struggles to scale and how through using parallel processing and event processing on the grid we can rearchitect our systems for massive scalability and utilise all our grid cores for parallel processing.
Doctrine 2: Enterprise Persistence Layer for PHPJonathan Wage
Doctrine 2 is an object relational mapper (ORM) for PHP 5.3+ that sits on top of a powerful database abstraction layer (DBAL). One of its key features is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains flexibility without requiring unnecessary code duplication.
Software Define your Current Storage with OpensourceAntonio Romeo
While Software Defined Storage is becoming one of the major trend topics in the Data Center, what do you do with your current “legacy” arrays?
Learn how with ViPR Controller, or its Open Source counterpart, CoprHD, you can automate and make your datacenter “software defined” with your current infrastructure.
Content from my Brighttalk webinar available here: https://www.brighttalk.com/webcast/10739/169959
During one of my personal projects I decided to study the internals of Android and the potential of altering the Dalvik VM (e.g. Xposed framework and Cydia) and application behaviour. Not going into detail about runtime hooking of constructors and classes like these two tools provide, I also explored the possibility of reverse engineering and modifying existing applications.
In the web you can find multiple tutorials on Android reverse engineering of applications but not many that do it with real applications that are often subject to obfuscation or with complex execution flows. So in order to learn I decided to pick a common application such as Skype and do the following:
decompile it
study contents and completely remove some functionality (e.g. ads)
change some resources (not described in presentation bellow)
recompile, sign and install.
Used tools include :
apktool – for (de)compiling android applications
jarsigner – for signing android applications
xposed – for intercepting runtime execution flow (will make public in future)
The following presentation describes the steps taken in order to completely remove the ads from skype. This includes any computation or data plan usage the ads consume. Please note the disclaimer of the presentation as this information is for educational purposes only.
Check my website : www.marioalmeida.eu
Testing Persistent Storage Performance in Kubernetes with SherlockScyllaDB
Getting to understand your Kubernetes storage capabilities is important in order to run a proper cluster in production. In this session I will demonstrate how to use Sherlock, an open source platform written to test persistent NVMe/TCP storage in Kubernetes, either via synthetic workload or via variety of databases, all easily done and summarized to give you an estimate of what your IOPS, Latency and Throughput your storage can provide to the Kubernetes cluster.
Review unknown code with static analysis - bredaphpDamien Seguy
Code quality is not just for christmas, it is a daily part of the job. So, what do you do when you're handed with a five feet long pole a million lines of code that must be vetted ? You call static analysis to the rescue. During one hour, we'll be reviewing totally unknown code code : no name, no usage, not a clue. We'll apply a wide range of tools, reaching for anything that helps us understand the code and form an opinion on it. Can we break this mystery and learn how everyone else is looking at our code ?
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.
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.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
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.
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/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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
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.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
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.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
5. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
plus things that can go wrong while working with Symfony2
107 queries executed in 17.25 seconds
6. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
While working with databases,
the most important strategy is
to avoid querying a database.
13. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Metadata
What can be effectively cached?
Query Result
14. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Parsing model metadata from different sources with
each request can have a serious impact on your
application’s performance. It is a good practice to
cache it.
15. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Each time you write a DQL query or use the
QueryBuilder to create one, Doctrine has to
transform that query to SQL. This is an unnecessary
waste of available resources.
16. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Usually, there is no special reason to hit a database
for rarely modified data. Configure Result Cache
strategy to make sure that your database is not
swamped with such queries.
17. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Be aware!
Make sure you properly create your queries.
18. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
# Fetch expired subscriptions (non-cachable)
SELECT s
FROM ASBillingBundle:Subscription s
WHERE s.validTo < ?
[1397855248]
!
# Fetch expired subscriptions (cachable)
SELECT s
FROM ASBillingBundle:Subscription s
WHERE s.validTo < CURRENT_TIMESTAMP()
You can cache both DQL and Native SQL queries.
28. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Setting caching driver for Query Result Cache is not
sufficient for enabling the strategy. You need to
explicitly enable it for each and every query you’re
interested in.
30. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
With great power comes great responsibility.
Voltaire (1694-1778)
31. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Be aware that high traffic websites can generate
races while accessing cached data. This situation is
called cache slam. When implementing own cache
driver, please refer to your backend’s documentation
regarding races avoidance.
32. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
If anything goes wrong, you can manually clear the
cache without restarting/flushing the storage.
php app/console doctrine:cache:clear-metadata
php app/console doctrine:cache:clear-query
php app/console doctrine:cache:clear-result
34. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
You can begin your journey with code optimization
while using Doctrine2 with properly set up domain
models.
Please be aware that the following guidelines are for
use with Doctrine2, not necessarily with database
design in general.
36. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
If you really need bidirectional associations, try to
use lazy fetching strategy, but in most cases
bidirectional relations are not necessary and should
be avoided.
37. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Be aware that lazy fetching strategy creates
dynamic proxy objects (class is generated on the
fly).
Fortunately, Symfony2 handles proxy generation
with cache warmup task.
38. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
For aggregations (with Collections) you can use
EXTRA LAZY strategy which will not load the whole
collection on first access, as it is done in LAZY
strategy.
39. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Dropping such relations does not mean that you
can’t use JOIN with your DQL / Native SQL queries.
40. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
namespace ASBillingBundleEntity;
!
class Subscription
{
/**
* @ORMManyToOne(targetEntity="User")
* @ORMJoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
}
!
!
!
class User
{
// ...
}
41. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
SELECT u
FROM ASBillingBundle:User u
JOIN ASBillingBundle:Subscription s WITH s.user = u
WHERE s.validTo <= CURRENT_DATE()
43. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
1. Do not configure cascade operations on every
association you have in your domain.
2. Unless required (e.g. additional file removal), use
DBMS cascades instead of ORM ones.
44. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Remember that you do not setup ORM cascades on
target entites but on the triggering ones. Opposite
to DBMS configuration.
45. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
namespace ASBillingBundleEntity;
!
class Subscription
{
/**
* @ORMOneToOne(targetEntity="User", cascade={"remove"})
* @ORMJoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
}
This is wrong:
46. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
namespace ASBillingBundleEntity;
!
class Subscription
{
/**
* @ORMManyToOne(targetEntity="User")
* @ORMJoinColumn(
* name="user_id",
* referencedColumnName="id",
* onDelete="CASCADE"
* )
*/
protected $user;
}
This is correct:
48. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Be smart about listening to lifecycle events like
persist, update, or remove. Know the difference
between Listener and Subscriber.
Do not identify Doctrine2 event subscribers with
Symfony2 subscribers, which are more dynamic!
49. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Avoid requiring EntityManager in your event
listeners (it will just not work).
50. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
namespace ASBillingBundleListener;
!
use SymfonyBridgeDoctrineRegistryInterface;
!
abstract class LifecycleListener
{
protected $doctrine;
protected $manager;
!
public function __construct(
RegistryInterface $doctrine,
$manager = 'default'
) {
$this->doctrine = $doctrine;
$this->manager = $manager;
}
!
protected function getEntityManager()
{
return $this->doctrine->getEntityManager($this->manager);
}
}
52. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Fetch
Modes
Return only data you are in need of.
Hydration
Modes
Partial
Objects
53. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
When dealing with one-to-one and many-to-one
relations, you can switch between EAGER and LAZY
fetching modes right in your Query object.
<?php
!
$query = $em->createQuery(
"SELECT s FROM ASBillingBundle:Subscription s"
)
->setFetchMode(
"ASBillingBundle:Subscription",
"user",
DoctrineORMMappingClassMetadata::FETCH_EAGER
);
54. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
If not necessary, do not fetch a whole object (with
relations) to just get its „validTo” field value.
<?php
!
$expirationDate = $em->createQuery(
"SELECT s.validTo " .
"FROM ASBillingBundle:Subscription s " .
"WHERE s.user = ?1"
)
->setParameter(1, $user)
->getSingleScalarResult();
55. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Unless you can deal with scalar values or arrays, you
may need to wrap data in your model’s class. Use
Partial Objects for this purpose.
<?php
!
$reference = $em->createQuery(
"SELECT PARTIAL s.{plan,validTo} " .
"FROM ASBillingBundle:Subscription s " .
"WHERE s.id = ?1"
)->setParameter(1, $id)->getResult();
!
$reference->getPartialReference("ASBillingBundle:Subscription", $id);
57. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
If you have to process data for large result sets,
think about using DQL UPDATE/DELETE queries or
Iterable Result.
When using Iterable Result always remember to
detach all existing and not required anymore objects
from Doctrine!
58. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
$batch = 50;
$i = 0;
!
$iterableResult = $em->createQuery(
"SELECT s FROM ASBillingBundle:Subscription s"
)->iterate();
!
foreach ($iterableResult as $row) {
$subscription = $row[0];
$subscription->renew();
if (($i % $batch) === 0) {
$em->flush(); // Execute queued updates
$em->clear(); // Detach objects and GC them
}
++$i;
}
!
$em->flush(); // Execute remainig updates
$em->clear(); // Detach remaining objects and GC them
59. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
$iterableResult = $em->createQuery(
"SELECT s FROM ASBillingBundle:Subscription s " .
"WHERE s.validTo = CURRENT_DATE() AND s.trialing = TRUE"
)->iterate();
!
foreach ($iterableResult as $row) {
$mailer->notifyTrialExpiration($row[0]);
$em->detach($row[0]); // Detach and GC immediately
}
61. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
Proper transaction boundary definition can have
positive impact on your application’s performance.
Doctrine2 takes care of proper implicit demarcation
for UnitOfWork–handled objects and queue all
operations until EntityManager#flush() is invoked.
62. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
However, Doctrine2 encourages developers to take
over and control transaction demarcation tasks
themselves.
Please remember to flush the EntityManager prior to
transaction commit. In case of any exceptions,
always close the EntityManager.
63. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
$em->getConnection()->beginTransaction();
!
try {
$user = new User;
$subscription = new Subscription;
$subscription->setUser($user);
!
// ... do some work
!
$em->persist($user);
$em->persist($subscription);
$em->flush();
$em->getConnection()->commit();
} catch (Exception $e) {
$em->getConnection()->rollback();
$em->close();
!
// ... do something about the exception
}
64. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
$em->transactional(function($em) {
$user = new User;
$subscription = new Subscription;
$subscription->setUser($user);
!
// ... do some work
!
$em->persist($user);
$em->persist($subscription);
});
Using EntityManager#transactional() will automatically flush the
manager prior to commit.
65. Effective Doctrine2: Performance Tips for Symfony2 Developers marcin.chwedziak
<?php
!
$em->getConnection()->transactional(function($em) {
$user = new User;
$subscription = new Subscription;
$subscription->setUser($user);
!
// ... do some work
!
$em->persist($user);
$em->persist($subscription);
$em->flush();
});
Warning! This will not close EntityManager on exception.