The document provides an overview of Arnaud Bouchez and his work on mORMot and SynPDF. It discusses mORMot version 1.18 and its features like being an ORM, supporting SOA, MVC, and REST. It then summarizes the results of a survey conducted on refactoring mORMot, including separating it into smaller units, using semantic versioning, dropping old compiler support, and moving to GitHub. It previews the structure and goals of the new mORMot 2 library.
The OpenSource mORMot framework has a strong set of cryptography features. It offers symmetric cryptography with hashing and encryption, together with asymmetric cryptography via private/public key pairs. Its optimized pascal and assembly engines can be embedded into your executable, but you could also call an external OpenSSL library if needed. This session will present mormot.crypt.* units, and apply them to some use cases, from low-level algorithms to high-level JWT or file encryption and signing.
The most powerful way of writing REST services is to define them via interfaces, then let the SOA/REST framework do all the routing, data marshalling and communication behind the scenes. One distinctive feature of mORMot is to define a method parameter as a notification interface, and let the server call back the client when needed, as with regular Delphi code. This session will present the benefit of defining REST services using interfaces, and how WebSockets can offer real-time notifications into your rich Delphi client applications.
During the continuous mORMot refactoring, some core part of the framework was rewritten. In this session, we propose a journey to a refactoring of a single loop. It will take us from a naïve but working approach, to a 10 times faster Pascal rewrite, and then introduce how SSE2 and AVX2 assembly could boost the process even further – to reach more than 30 times improvement! No previous knowledge of assembly is needed: we will try to introduce how modern CPUs work, and will have some fun with algorithms and SIMD parallelism.
EKON20 Conference, November 2016
Starting from Michael C. Feathers “Working Effectively with Legacy Code”, we will introduce the concept of “technical debt”, and some practical patterns to integrate testing, separation of concerns, structure, re-usability, to ease maintenance and evolution of existing projects. Don’t forget that even new projects will soon become legacy… Of course, we will introduce some mORMot features which were developed to reduce your pain in this process.
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMotArnaud Bouchez
Slides published for BeDelphi 2014 Event.
Create high performance Client Server ORM SOA REST MVC applications using Open Source Synopse mORMot framework and Delphi. Publish any SQL or NoSQL database content over JSON or XML: SQLite3, PostgreSQL, Oracle, MSSQL, FireBird, MongoDB. Define RESTful services using interfaces. Create MVC web applications, using Mustache templates. Running under Windows or Linux, with VCL/FMX clients on Mac OSX, Android or iOS/iPhone/iPad, or AJAX/PhoneGap.
Server side process does react to business events. User actions, timers, other services may trigger states of change, which should be tracked and propagated. A classical implementation is to define a shared database or centralized message queue, locally or in the cloud. When applied to Microservices, this monolithic approach will quickly appear as a limitation.
In this session, we will introduce how Microservices could have their own dedicated persistence layer (i.e. database), and how real-time callbacks could be used to leverage real-time propagation of events, without any centralized message queue. Both ORM and SOA features of the Open Source mORMot framework will illustrate how to write such stand-alone services.
Some slides, as presented during EKON20 conferences, about the mORMot Open Source project, a Delphi/FPC professional framework featuring highly integrated SOA, MVC, ORM, SOLID over SQL and NoSQL databases.
The OpenSource mORMot framework has a strong set of cryptography features. It offers symmetric cryptography with hashing and encryption, together with asymmetric cryptography via private/public key pairs. Its optimized pascal and assembly engines can be embedded into your executable, but you could also call an external OpenSSL library if needed. This session will present mormot.crypt.* units, and apply them to some use cases, from low-level algorithms to high-level JWT or file encryption and signing.
The most powerful way of writing REST services is to define them via interfaces, then let the SOA/REST framework do all the routing, data marshalling and communication behind the scenes. One distinctive feature of mORMot is to define a method parameter as a notification interface, and let the server call back the client when needed, as with regular Delphi code. This session will present the benefit of defining REST services using interfaces, and how WebSockets can offer real-time notifications into your rich Delphi client applications.
During the continuous mORMot refactoring, some core part of the framework was rewritten. In this session, we propose a journey to a refactoring of a single loop. It will take us from a naïve but working approach, to a 10 times faster Pascal rewrite, and then introduce how SSE2 and AVX2 assembly could boost the process even further – to reach more than 30 times improvement! No previous knowledge of assembly is needed: we will try to introduce how modern CPUs work, and will have some fun with algorithms and SIMD parallelism.
EKON20 Conference, November 2016
Starting from Michael C. Feathers “Working Effectively with Legacy Code”, we will introduce the concept of “technical debt”, and some practical patterns to integrate testing, separation of concerns, structure, re-usability, to ease maintenance and evolution of existing projects. Don’t forget that even new projects will soon become legacy… Of course, we will introduce some mORMot features which were developed to reduce your pain in this process.
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMotArnaud Bouchez
Slides published for BeDelphi 2014 Event.
Create high performance Client Server ORM SOA REST MVC applications using Open Source Synopse mORMot framework and Delphi. Publish any SQL or NoSQL database content over JSON or XML: SQLite3, PostgreSQL, Oracle, MSSQL, FireBird, MongoDB. Define RESTful services using interfaces. Create MVC web applications, using Mustache templates. Running under Windows or Linux, with VCL/FMX clients on Mac OSX, Android or iOS/iPhone/iPad, or AJAX/PhoneGap.
Server side process does react to business events. User actions, timers, other services may trigger states of change, which should be tracked and propagated. A classical implementation is to define a shared database or centralized message queue, locally or in the cloud. When applied to Microservices, this monolithic approach will quickly appear as a limitation.
In this session, we will introduce how Microservices could have their own dedicated persistence layer (i.e. database), and how real-time callbacks could be used to leverage real-time propagation of events, without any centralized message queue. Both ORM and SOA features of the Open Source mORMot framework will illustrate how to write such stand-alone services.
Some slides, as presented during EKON20 conferences, about the mORMot Open Source project, a Delphi/FPC professional framework featuring highly integrated SOA, MVC, ORM, SOLID over SQL and NoSQL databases.
Recently our team researched various ntos subsystem attack vectors, and one of the outputs we will present in our talk. DeathNote as our internal code name to this component, which resides in Microsoft Windows kernel, hiding behind different interfaces and exposed to user differently.
What can goes bad with it?
Basically two kinds of problems, one is syscall handling via direct user interaction. We will describe how to obtain basic understanding of what's going on, how it interacts with other components and what is its purpose. With those knowledge we will dig deeper how to make more complex fuzzing logic to cause enough chaos that will end up in unexpected behaviors in Windows kernel, and demonstrate some of them.
And as for second, as it hints from title, this module does bit of data parsing, so we will dive deep into internals, pointing out some available materials, and move on to reverse engineered structures and internal mechanism. We will show how some tricks can outcome with various results, and how structured approach can expose more problems than is expected.
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesPeter Hlavaty
In our recent work we targeted also win32k, what seems to be fruit giving target. @promised_lu made our own TTF-fuzzer which comes with bunch of results in form of gigabytes of crashes and various bugs. Fortunately windows make great work and in February most of our bugs was dead - patched, but not all of them…
Whats left were looking as seemingly unexploitable kernel bugs with ridiculous conditions. We decided to check it out, and finally combine it with our user mode bug & emet bypass. Through IE & flash we break down system and pointed out at weak points in defensive mechanism.
In this talk we will present our research dedicated for pwn2own event this year. We will describe kernel part of exploit in detail*, including bug description, resulting memory corruption conditions & caveats up to final pwn via one of our TTF bugs.
Throughout the talk we will describe how to break various exploit mitigations in windows kernel and why it is possible. We will introduce novel kernel exploitation techniques breaking all what stands { KASLR, SMEP, even imaginary SMAP or CFG } and bring you SYSTEM exec (from kernel driver to system calc).
* unfortunately bug was not fixed at the time of talk, so we do not exposed details about TTF vulnerability, and we skipped directly to some challenges during exploitation, and demonstrate how OS design can overpower introduced exploit mitigations.
Redis Developer Day TLV - Redis Stack & RedisInsightGuy Korland
A breakdown of Redis Stack capabilities and the enhanced developers experience it brings.
Starting from Redis Stack Server, the clients and the new RedisInsight UI for developers.
Working with JSON Data in PostgreSQL vs. MongoDBScaleGrid.io
In this post, we are going to show you tips and techniques on how to effectively store and index JSON data in PostgreSQL vs. MongoDB. Learn more in the blog post: https://scalegrid.io/blog/using-jsonb-in-postgresql-how-to-effectively-store-index-json-data-in-postgresql
This session will provide a guide to Alfresco truststores and keystores. Several live examples will be shown, including the replacement of existing cryptographic stores or certificates. Additionally, a troubleshooting configuration guide for mTLS communication will be provided.
Alfresco node lifecyle, services and zonesSanket Mehta
This ppt explains you the details about an alfresco node lifecycle (including which alfresco database tables are affected upon node operation-like node creation, deletion). Apart from it, it also explain which particular case-sensitive alfresco service should be used (nodeService vs NodeService, searchService vs SearchService) in order to maintain security in your application. Lastly it covers zones in alfresco (authentication-related zones and application-related zones)
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Nelson Calero
Each new version of the Oracle database includes improvements in the upgrade and patching utilities, forcing us to update our procedures to incorporate these changes.
The Fleet Provisioning & Patching (FPP, formerly RHP) utility, together with the change in its licensing announced at OOW 2019 that makes it free in RAC, now makes it possible to centrally manage the software life cycle.
This presentation shows examples of how to use FPP and different configuration options.
Kamailio is the leading Open Source SIP Server - a SIP proxy, registrar, location server, presence server, IMS server and much more. Find out more by viewing this quick presentation! (Updated June 2014)
Last year we tasted the very first bits of the NET Core platform. The RTM is out and we are close to the next 2.0 version. Is this the right moment to adopt the platform?
What are the changes of the new project system brought from Visual Studio 2017? What is new in the tools, sdk and packaging?
Adopting the new NET Core doesn’t necessarily mean migrating everything in a single step but mixing it with the regular .NET Framework thanks to the new net standard which is evolving to the 2.0 version as well.
During this code-first session, we will try to see the developer’s and architect’s perspectives in a variety of scenarios, including the cross-platform and Raspberry.
Recently our team researched various ntos subsystem attack vectors, and one of the outputs we will present in our talk. DeathNote as our internal code name to this component, which resides in Microsoft Windows kernel, hiding behind different interfaces and exposed to user differently.
What can goes bad with it?
Basically two kinds of problems, one is syscall handling via direct user interaction. We will describe how to obtain basic understanding of what's going on, how it interacts with other components and what is its purpose. With those knowledge we will dig deeper how to make more complex fuzzing logic to cause enough chaos that will end up in unexpected behaviors in Windows kernel, and demonstrate some of them.
And as for second, as it hints from title, this module does bit of data parsing, so we will dive deep into internals, pointing out some available materials, and move on to reverse engineered structures and internal mechanism. We will show how some tricks can outcome with various results, and how structured approach can expose more problems than is expected.
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesPeter Hlavaty
In our recent work we targeted also win32k, what seems to be fruit giving target. @promised_lu made our own TTF-fuzzer which comes with bunch of results in form of gigabytes of crashes and various bugs. Fortunately windows make great work and in February most of our bugs was dead - patched, but not all of them…
Whats left were looking as seemingly unexploitable kernel bugs with ridiculous conditions. We decided to check it out, and finally combine it with our user mode bug & emet bypass. Through IE & flash we break down system and pointed out at weak points in defensive mechanism.
In this talk we will present our research dedicated for pwn2own event this year. We will describe kernel part of exploit in detail*, including bug description, resulting memory corruption conditions & caveats up to final pwn via one of our TTF bugs.
Throughout the talk we will describe how to break various exploit mitigations in windows kernel and why it is possible. We will introduce novel kernel exploitation techniques breaking all what stands { KASLR, SMEP, even imaginary SMAP or CFG } and bring you SYSTEM exec (from kernel driver to system calc).
* unfortunately bug was not fixed at the time of talk, so we do not exposed details about TTF vulnerability, and we skipped directly to some challenges during exploitation, and demonstrate how OS design can overpower introduced exploit mitigations.
Redis Developer Day TLV - Redis Stack & RedisInsightGuy Korland
A breakdown of Redis Stack capabilities and the enhanced developers experience it brings.
Starting from Redis Stack Server, the clients and the new RedisInsight UI for developers.
Working with JSON Data in PostgreSQL vs. MongoDBScaleGrid.io
In this post, we are going to show you tips and techniques on how to effectively store and index JSON data in PostgreSQL vs. MongoDB. Learn more in the blog post: https://scalegrid.io/blog/using-jsonb-in-postgresql-how-to-effectively-store-index-json-data-in-postgresql
This session will provide a guide to Alfresco truststores and keystores. Several live examples will be shown, including the replacement of existing cryptographic stores or certificates. Additionally, a troubleshooting configuration guide for mTLS communication will be provided.
Alfresco node lifecyle, services and zonesSanket Mehta
This ppt explains you the details about an alfresco node lifecycle (including which alfresco database tables are affected upon node operation-like node creation, deletion). Apart from it, it also explain which particular case-sensitive alfresco service should be used (nodeService vs NodeService, searchService vs SearchService) in order to maintain security in your application. Lastly it covers zones in alfresco (authentication-related zones and application-related zones)
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Nelson Calero
Each new version of the Oracle database includes improvements in the upgrade and patching utilities, forcing us to update our procedures to incorporate these changes.
The Fleet Provisioning & Patching (FPP, formerly RHP) utility, together with the change in its licensing announced at OOW 2019 that makes it free in RAC, now makes it possible to centrally manage the software life cycle.
This presentation shows examples of how to use FPP and different configuration options.
Kamailio is the leading Open Source SIP Server - a SIP proxy, registrar, location server, presence server, IMS server and much more. Find out more by viewing this quick presentation! (Updated June 2014)
Last year we tasted the very first bits of the NET Core platform. The RTM is out and we are close to the next 2.0 version. Is this the right moment to adopt the platform?
What are the changes of the new project system brought from Visual Studio 2017? What is new in the tools, sdk and packaging?
Adopting the new NET Core doesn’t necessarily mean migrating everything in a single step but mixing it with the regular .NET Framework thanks to the new net standard which is evolving to the 2.0 version as well.
During this code-first session, we will try to see the developer’s and architect’s perspectives in a variety of scenarios, including the cross-platform and Raspberry.
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Fabrice Bernhard
PHP and its community has evolved really fast in the last few years to allow for professional architectures and solutions. However, there are thousands of existing PHP applications which have not evolved in the meantime and are now crippled and unmaintainable because of that. These applications represent a real threat to the competitiveness of the business that relies on them.
The best approach in terms of business to solve this problem is progressive rewrite. Symfony2 and its modular architecture make it possible. This talk covers the main technical difficulties of the progressive approach when rewriting legacy PHP applications, and the corresponding solutions, some of which rely on the modularity of Symfony2.
Gentoo Linux, or Why in the World You Should Compile EverythingDonnie Berkholz
Gentoo Linux is a special flavor of Linux that can be automatically optimized and customized for just about any application or need. Extreme performance, configurability and a top-notch user and developer community are all hallmarks of the Gentoo experience.
As a leader of Gentoo, I will provide an overview of how it works from a developer's and a user's point of view, and why you should be running it especially if you're:
- In need of an awesome development environment;
- Interested in learning what's inside the black box of Linux;
- OCD about having a perfectly configured setup; or
- Building an embedded, minimal system or a high-performance cluster.
If there's interest, I can also talk about future developments on the horizon for Gentoo, package management in general, etc.
Every day, sysadmins find the need to build tools that get the job done in a fast and efficient way. Go is a new and powerful—yet simple—language that is an excellent fit for the needs of the harried sysadmin. This tutorial provides an introduction to Go with a focus on using it for everday tooling.
Topics include:
Understanding of the applicability of Go to everyday work
The Go environment and toolset
Go language fundamentals:
Control Structures
Functions
Data Types
Methods and Interfaces
Goroutines
Channels
Examples in Go:
Email
Web Server
Directory Tools
Bringing WordPress to the front-end. o2 is the new P2Beau Lebens
See more at http://geto2.com/
o2 is the next generation of the P2 theme from Automattic, a Twitter/Yammer-style communication platform, based on WordPress. This version is all written in Backbone and brings distributed collaboration up to the cutting edge of web technology.
With Joomla 4.0 due to be released around the end of 2017, it's time to start looking at what is coming up. It's promising some transformational changes in engineering, style and features.
As a follow-up of the previous session about TFB, we will discuss what kind of tuning was made to the mORMot library, and its associated TFB sample implementation, to reach the top scores in charts. How can a pure Pascal project reach 7 millions of HTTP requests per seconds? How to scale and measure on high-end hardware? Are ORM frameworks damned to slow down everything? How to circumvent the lack of “async” programming at language level? How realistic is such a benchmark?
The TFB challenge is a performance comparison of many web app platforms, exercising JSON, database, ORM, HTML templates, all over HTTP. It compares the best frameworks written in C++, Rust, Go, JS, Java, C#… and now Pascal – thanks to mORMot. In this session, we will look and compare the source code of some frameworks samples, to distinguish their typical philosophy. We will see how modern Object Pascal is still relevant, and propose some ideas for the future of the language.
Ekon23 (2) Kingdom-Driven-Design applied to Social Media with mORMotArnaud Bouchez
To illustrate the “Kingdom Driven Design” session proposal, we will expose and comment upon the software core of a custom social media service. It will create a network of user-generated content, not only connected around people or topics, but unleashing some reference text material: literature, law, science, religion – you name it. We will discuss proper KDD architecture, data structures, and associated microservices, using mORMot’s ORM and SOA as toolbox. The code of this new social media system will be disclosed under a GPL agreement, and running on production for years to come. It should be able to scale from a few users to worldwide adoption.
After years working on Domain-Driven Design projects using Delphi for server-side processes, I eventually followed some kind of cut-back version of the DDD paradigms. Introducing Kingdom Driven Design (aka KDD) – since in biology “Kingdom” is the second highest taxonomic rank, just after “Domain”. We will present some principles to help writing not-database-centric code, without being bloated by all the DDD requirements.
Let your Kingdom come!
High Performance Object Pascal Code on Servers (at EKON 22)Arnaud Bouchez
This EKON 22 conference is about high performance on servers, written in the object pascal (Delphi / FPC) language. Profiling should be the first step to avoid premature optimization, which is the root of all evil (Knuth). But when some bottlenecks are identified, we introduce some simple architecture patterns (like caching or microservices), data structures and algorithms to make process actually faster, with minimal refactoring. It was a fun session about how to write faster code, ending up by looking at the Delphi CPU view – even if you don’t know assembly.
This EKON 22 conference was not about the code formatting - where we put the “begin” keyword is mostly a matter of taste and convention. But it shows how the object pascal strong typing system, and its language expressiveness may help writing clean(er) code. Abstract SOLID principles could help define the class and services hierarchy. After years of server-side coding, we propose some practical guidelines for cleaner object pascal programming, to reduce technical debt, and allow cross-platform/cross-compiler support.
SOLID principles should better be applied when designing business objects, as soon as maintainability and modularity are needed. They bring uncoupling, abstraction and clean design to Object Oriented Programming. Microservices could be seen as SOLID principles applied to the Service Oriented Architecture. In respect to a classical monolith server, thanks to uncoupling and better granularity, you may enhance deployment, ease cooperation between dev teams, introduce Domain Driven Design and/or Event Driven Design, scale horizontally and still incorporate existing code and services.
After a quick and practical review of SOLID principles, we will see how they may apply to SOA, and how Microservices could be defined using the Open Source mORMot framework interface-based services, on Windows or Linux.
EKON20 WorkShop, November 2016
The Open Source mORMot framework is a huge set of units, with a lot of features. It allows Delphi and FPC to eb true competitors for business projects. In this workshop, we will present how its ORM leverages SQL and NoSQL databases, and how interface-based services ease SOA development. We will show some several cross-cutting features, like SynTests (and stubs/mocks), SynLog, SynMustache, SynDB, SynMongoDB, SynSM, SynPDF, SynCrypto or SynEcc. High-level presentation of the involved concepts will always be followed by some sample code.
EKON20 Conference, November 2016
Monolithic rich Windows applications are not enough for our customers. We are often requested to provide a web front-end, or a REST server to be consumed by mobile or thin clients. Integrating n-Tier architecture to an existing project is challenging. Some good practices, based on industry standards and proven design patterns (like uncoupling or SOLID) can be mind-breaker for RAD developers. In this session, we will define some architectural aspects of SOA, ORM and MVC/MVVM, and what our Open Source mORMot framework offers to ease this transition.
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.
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/
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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
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.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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
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.
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
27. mORMot 2 Survey
After 10 years, we wanted to
• Switch to Semantic Versioning
• Split code into SOLID units
• Favor composition
• Get rid of Delphi 5/Kylix
• Focus on maintainability
29. mORMot 2 Survey
March-June 2020: Google Survey
• Which refactoring do you agree with?
• About source code management
• Which Delphi revision to support?
30. mORMot 2 Survey
March-June 2020: Google Survey
• Which refactoring do you agree with?
• About source code management
• Which Delphi revision to support?
• … is a full rewrite worth it?
31. mORMot 2 Survey
March-June 2020: Google Survey
• Which refactoring do you agree with?
• About source code management
• Which Delphi revision to support?
• … is a full rewrite worth it?
157 Responses
32. mORMot 2 Survey
Which refactoring ?
Switch to semantic versioning
Separate big units
Composition over inheritance
Avoid Delphi Internal Errors
Focus on FPC as main target
Drop Delphi 5 and Kylix support
Drop Delphi support but latest
Reformat HTML doc into small pages
34. mORMot 2 Survey
Which refactoring ?
Switch to semantic versioning 69%
Separate big units 78%
Composition over inheritance 59%
Avoid Delphi Internal Errors 56%
Focus on FPC as main target 41%
Drop Delphi 5 and Kylix support 84%
Drop Delphi support but latest 25%
Reformat HTML doc into small pages 42%
35. mORMot 2 Survey
Which refactoring ?
Switch to semantic versioning 69%
Separate big units 78%
Composition over inheritance 59%
Avoid Delphi Internal Errors 56%
Focus on FPC as main target 41%
Drop Delphi 5 and Kylix support 84%
Drop Delphi support but latest 25%
Reformat HTML doc into small pages 42%
36. mORMot 2 Survey
Source Code Management
Keep as-is: Fossil + GitHub mirror
Switch to GitHub and our blog/forum
Switch to GitHub only
43. mORMot 2 Survey
Which Delphi revision?
Focus on
Delphi 10.3 / latest 70%
Keep compatible with
Delphi 7 18%
Delphi 2007 13%
Maintain compatibility with others
44. mORMot 2 Survey
Other Wishes
• Delphi Linux Support
• Focus on FPC
• More real world examples (DDD)
• Separate OS specific
• Make SynLog easier to use
45. mORMot 2 Survey
What we agreed on
• Semantic Versioning and releases
• Separate big units
• Composition over inheritance
• GitHub + https://synopse.info
• Main Delphi targets: latest 10.x + 7/2007
• FPC 3.2 / trunk premium support
• Eventual Delphi Linux
46. mORMot 2 Survey
What we agreed on
• Naming should be more consistent
TSQLRecord TSQLTableJson TSQLRest
• First iteration should be
backward compatible
(with some PUREMORMOT2 conditional)
• Later on, we may move forward
54. Semantic Versioning 2.0.0
From https://semver.org
MAJOR.MINOR.PATCH
increment
• MAJOR version
when you make incompatible API changes,
• MINOR version
when you add functionality
in a backwards compatible manner, and
• PATCH version
when you make backwards compatible bug fixes
55. Semantic Versioning 2.0.0
From https://semver.org
MAJOR.MINOR.PATCH
Real releases for production code
mORMot stuck to 1.18 since years
61. Separate Big Units
• mormot.core.*.pas
• mormot.db.*.pas
• mormot.ddd.*.pas
• mormot.lib.*.pas
• mormot.net.*.pas
• mormot.orm.*.pas
• mormot.rest.*.pas
• mormot.soa.*.pas
62. Separate Big Units
• mormot.core.*.pas /src/core
• mormot.db.*.pas /src/db
• mormot.ddd.*.pas /src/ddd
• mormot.lib.*.pas /src/lib
• mormot.net.*.pas /src/net
• mormot.orm.*.pas /src/orm
• mormot.rest.*.pas /src/rest
• mormot.soa.*.pas /src/soa
63. Separate Big Units
SynCommons.pas SynTable.pas
• mormot.core.base.pas
• mormot.core.os.pas
• mormot.core.unicode.pas
• mormot.core.text.pas
64. Separate Big Units
SynCommons.pas SynTable.pas
• mormot.core.rtti.pas
• mormot.core.data.pas
• mormot.core.perf.pas
• mormot.core.json.pas
• mormot.core.buffers.pas
65. Separate Big Units
SynCommons.pas SynTable.pas
• mormot.core.datetime.pas
• mormot.core.variants.pas
• mormot.core.search.pas
• mormot.core.threads.pas
• mormot.db.core.pas
66. Separate Big Units
SynCrypto.pas SynEcc.pas
• mormot.core.crypto.pas
• mormot.core.jwt.pas
• mormot.core.ecc256r1.pas
• mormot.core.ecc.pas
67. Separate Big Units
Very Specific / Low-Level Code
• mormot.core.base.asmx64.inc
• mormot.core.base.asmx86.inc
• mormot.core.crypto.asmx64.inc
• mormot.core.crypto.asmx86.inc
68. Separate Big Units
Very Specific / Low-Level Code
• mormot.core.os.windows.inc
• mormot.core.os.posix.inc
• mormot.core.rtti.delphi.inc
• mormot.core.rtti.fpc.inc
69. Separate Big Units
SynCrtSock.pas SynBiDirSock.pas
• mormot.net.sock.pas
• mormot.net.http.pas
• mormot.net.client
• mormot.net.server
• mormot.net.asynch.pas
• mormot.net.websock.pas
70. Separate Big Units
Very Specific / Low-Level Code
• mormot.net.sock.windows.inc
• mormot.net.sock.posix.inc
74. Separate Big Units
mORMot.pas
• mormot.rest.core.pas
• mormot.rest.client.pas
• mormot.rest.server.pas
• mormot.rest.memserver.pas
75. Separate Big Units
SynDB*.pas SynMongoDB units
• mormot.db.sql.*.pas
• mormot.db.raw.*.pas
• mormot.db.rad.*.pas
• mormot.db.nosql.*.pas
• mormot.db.proxy.pas
76. Separate Big Units
SynDB*.pas units
• mormot.db.sql.odbc.pas
• mormot.db.sql.oledb.pas
• mormot.db.sql.oracle.pas
• mormot.db.sql.postgres.pas
• mormot.db.sql.sqlite3.pas
• mormot.db.sql.zeos.pas
High Level Direct SQL Access
77. Separate Big Units
SynDB*.pas units
• mormot.db.raw.odbc.pas
• mormot.db.raw.oledb.pas
• mormot.db.raw.oracle.pas
• mormot.db.raw.postgres.pas
• mormot.db.raw.sqlite3.pas
Low Level Raw SQL Access
78. Separate Big Units
SynDB*.pas units
• mormot.db.rad.pas
• mormot.db.rad.bde.pas
• mormot.db.rad.firedac.pas
• mormot.db.rad.unidac.pas
• mormot.db.rad.nexusdb.pas
Delphi DB.pas SQL Access
79. Separate Big Units
mORMotDB mORMotSQLite3
• mormot.orm.sqlite3.pas
• mormot.orm.sql.pas
• mormot.rest.sqlite3.pas
ORM for SQL
with a SQLite3 kernel
85. Separate Big Units
Work In Progress
• Refactoring into smaller units
takes a lot of time and efforts
• Some units are just about reformatting
• Full Rewrite of JSON, RTTI
• Eventually Secured by our Test Phase
86. Separate Big Units
Work In Progress
• /src/app MicroServices and Daemons
• /src/ddd Domain/Kingdom Driven Design
• /src/mvc MVC Web
• Full Unit and Regression Tests
Expected to be at mORMot 1.18 Feature Set
end of December 2020
87. Separate Big Units
Work In Progress
• /src/app MicroServices and Daemons
• /src/ddd Domain/Kingdom Driven Design
• /src/mvc MVC Web
• Full Unit and Regression Tests
Expected to be at mORMot 1.18 Feature Set
end of December 2020
88. mORMot 2 Units
• Separate Big Units
• Consistent Naming
• Composition over Inheritance
95. Composition Over Inheritance
To follow SOLID Principles
• Single Responsibility
• Open Close
• Liskov Substitution
• Interface Segregation
• Dependency Inversion
103. FPC Premium Support
Spent 95% of time in Lazarus
writing mORMot 2 units
Running 5% Delphi
• for integration tests on Delphi
mainly Delphi 7 / 2007 / XE4 / 10.3 CE
• for debugging
Delphi debugger is vastly superior than gdb
107. FPC Premium Support
100% Open Source Chain
• mORMot MPL / LGPL / GPL
• Lazarus or VSCode as IDE
• FPC as compiler
• Linux as Server and Dev OS
… continue to use Delphi on Windows
but you have alternatives
110. Roadmap
• Feature-equal to mORMot 1.18
But deprecating Delphi 5, Kylix, LVCL,
SynBigTable, RTTI-Gen UI, oldest SyNode
111. Roadmap
• Feature-equal to mORMot 1.18
eventual, with no priority order:
• WebSockets Event-Driven Server
• ORM Enhancements (attributes, PODO)
• mormot.core.os.pas for Delphi Linux
• TMS WebCore Client Support
112. Roadmap
• Feature-equal to mORMot 1.18
eventual, with no priority order:
• DDD Project Wizards
• Administration Remote UI
• Documentation Refactoring
113. Roadmap
• Feature-equal to mORMot 1.18
may be :
• Better VCL/FMX/LCL integration
• GraphQL Reporting/Query API
• mormot.core.os.pas for Delphi mobile
(not only as client, but with more features)
• Any external contribution