際際滷shows by User: ArnaudBouchez1 / http://www.slideshare.net/images/logo.gif 際際滷shows by User: ArnaudBouchez1 / Wed, 13 Nov 2024 17:55:00 GMT 際際滷Share feed for 際際滷shows by User: ArnaudBouchez1 EKON28 - Beyond Legacy Apps with mORMot 2 /slideshow/ekon28-beyond-legacy-apps-with-mormot-2/273282063 ekon28-beyondlegacyapps-241113175500-cff45338
Working on legacy applications is very demanding, because with legacy comes the so-called technical debt. There are patterns to try and reduce this debt. In this workshop, we will propose some of those patterns, and see how third party libraries like our mORMot 2 Open Source framework could help in this evolutionary process. The main idea is to not reinvent the wheel, but iterate over the existing solution to make it expandable, not expendable. Depending on the audience, we will adapt and focus on your actual needs and questions.]]>

Working on legacy applications is very demanding, because with legacy comes the so-called technical debt. There are patterns to try and reduce this debt. In this workshop, we will propose some of those patterns, and see how third party libraries like our mORMot 2 Open Source framework could help in this evolutionary process. The main idea is to not reinvent the wheel, but iterate over the existing solution to make it expandable, not expendable. Depending on the audience, we will adapt and focus on your actual needs and questions.]]>
Wed, 13 Nov 2024 17:55:00 GMT /slideshow/ekon28-beyond-legacy-apps-with-mormot-2/273282063 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) EKON28 - Beyond Legacy Apps with mORMot 2 ArnaudBouchez1 Working on legacy applications is very demanding, because with legacy comes the so-called technical debt. There are patterns to try and reduce this debt. In this workshop, we will propose some of those patterns, and see how third party libraries like our mORMot 2 Open Source framework could help in this evolutionary process. The main idea is to not reinvent the wheel, but iterate over the existing solution to make it expandable, not expendable. Depending on the audience, we will adapt and focus on your actual needs and questions. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-beyondlegacyapps-241113175500-cff45338-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Working on legacy applications is very demanding, because with legacy comes the so-called technical debt. There are patterns to try and reduce this debt. In this workshop, we will propose some of those patterns, and see how third party libraries like our mORMot 2 Open Source framework could help in this evolutionary process. The main idea is to not reinvent the wheel, but iterate over the existing solution to make it expandable, not expendable. Depending on the audience, we will adapt and focus on your actual needs and questions.
EKON28 - Beyond Legacy Apps with mORMot 2 from Arnaud Bouchez
]]>
73 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-beyondlegacyapps-241113175500-cff45338-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
EKON28 - Winning the 1BRC Challenge In Pascal /slideshow/ekon28-winning-the-1brc-challenge-in-pascal/273282042 ekon28-1brcinpascal-241113175259-5cf1b35b
The One Billion Row Challenge (1BRC) is a fun exploration of how far modern Object Pascal can be pushed for aggregating one billion rows from a text file, more precisely a 16GB csv file. During two months of 2024, more than a dozen entries were proposed to fulfill this challenge. In this session, we will show our own proposals, which ended to be the fastest, even faster than the winners of the original 1BRC in the Java world. You will certainly learn something about CPU caches, syscalls, branchless coding, parallel computing, and eventually be able to brag how modern pascal is still in the race!]]>

The One Billion Row Challenge (1BRC) is a fun exploration of how far modern Object Pascal can be pushed for aggregating one billion rows from a text file, more precisely a 16GB csv file. During two months of 2024, more than a dozen entries were proposed to fulfill this challenge. In this session, we will show our own proposals, which ended to be the fastest, even faster than the winners of the original 1BRC in the Java world. You will certainly learn something about CPU caches, syscalls, branchless coding, parallel computing, and eventually be able to brag how modern pascal is still in the race!]]>
Wed, 13 Nov 2024 17:52:59 GMT /slideshow/ekon28-winning-the-1brc-challenge-in-pascal/273282042 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) EKON28 - Winning the 1BRC Challenge In Pascal ArnaudBouchez1 The One Billion Row Challenge (1BRC) is a fun exploration of how far modern Object Pascal can be pushed for aggregating one billion rows from a text file, more precisely a 16GB csv file. During two months of 2024, more than a dozen entries were proposed to fulfill this challenge. In this session, we will show our own proposals, which ended to be the fastest, even faster than the winners of the original 1BRC in the Java world. You will certainly learn something about CPU caches, syscalls, branchless coding, parallel computing, and eventually be able to brag how modern pascal is still in the race! <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-1brcinpascal-241113175259-5cf1b35b-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The One Billion Row Challenge (1BRC) is a fun exploration of how far modern Object Pascal can be pushed for aggregating one billion rows from a text file, more precisely a 16GB csv file. During two months of 2024, more than a dozen entries were proposed to fulfill this challenge. In this session, we will show our own proposals, which ended to be the fastest, even faster than the winners of the original 1BRC in the Java world. You will certainly learn something about CPU caches, syscalls, branchless coding, parallel computing, and eventually be able to brag how modern pascal is still in the race!
EKON28 - Winning the 1BRC Challenge In Pascal from Arnaud Bouchez
]]>
60 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-1brcinpascal-241113175259-5cf1b35b-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
EKON28 - Diving Into X.509 Certificates with mORMot 2 /slideshow/ekon28-diving-into-x-509-certificates-with-mormot-2/273281847 ekon28-divingintocertificates-241113174316-1b3f896d
Prepare your snorkel and be ready to dive into X.509 certificates. They are everywhere, and validate everything, from websites to your Windows executables signature. Most of the time, we use them but touch them only with fear. This session will dive into their internals, debunk their jargon, show best practice patterns, and hack into their binary secrets. We will see how our mORMot 2 Open Source library tries to hide their complexity and offer a simple approach to bring modern security to your own applications. ]]>

Prepare your snorkel and be ready to dive into X.509 certificates. They are everywhere, and validate everything, from websites to your Windows executables signature. Most of the time, we use them but touch them only with fear. This session will dive into their internals, debunk their jargon, show best practice patterns, and hack into their binary secrets. We will see how our mORMot 2 Open Source library tries to hide their complexity and offer a simple approach to bring modern security to your own applications. ]]>
Wed, 13 Nov 2024 17:43:16 GMT /slideshow/ekon28-diving-into-x-509-certificates-with-mormot-2/273281847 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) EKON28 - Diving Into X.509 Certificates with mORMot 2 ArnaudBouchez1 Prepare your snorkel and be ready to dive into X.509 certificates. They are everywhere, and validate everything, from websites to your Windows executables signature. Most of the time, we use them but touch them only with fear. This session will dive into their internals, debunk their jargon, show best practice patterns, and hack into their binary secrets. We will see how our mORMot 2 Open Source library tries to hide their complexity and offer a simple approach to bring modern security to your own applications. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-divingintocertificates-241113174316-1b3f896d-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Prepare your snorkel and be ready to dive into X.509 certificates. They are everywhere, and validate everything, from websites to your Windows executables signature. Most of the time, we use them but touch them only with fear. This session will dive into their internals, debunk their jargon, show best practice patterns, and hack into their binary secrets. We will see how our mORMot 2 Open Source library tries to hide their complexity and offer a simple approach to bring modern security to your own applications.
EKON28 - Diving Into X.509 Certificates with mORMot 2 from Arnaud Bouchez
]]>
66 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-divingintocertificates-241113174316-1b3f896d-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez FPC and Lazarus /slideshow/2024-dapug-conference-arnaud-bouchez-fpc-and-lazarus/272671296 2024adug09-fpcandlazarus-241023195542-f9a565ce
We will see how Lazarus works in respect to Delphi, and discuss if you may consider it from some part of your code, especially for server-side coding on Linux.]]>

We will see how Lazarus works in respect to Delphi, and discuss if you may consider it from some part of your code, especially for server-side coding on Linux.]]>
Wed, 23 Oct 2024 19:55:42 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-fpc-and-lazarus/272671296 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez FPC and Lazarus ArnaudBouchez1 We will see how Lazarus works in respect to Delphi, and discuss if you may consider it from some part of your code, especially for server-side coding on Linux. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug09-fpcandlazarus-241023195542-f9a565ce-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> We will see how Lazarus works in respect to Delphi, and discuss if you may consider it from some part of your code, especially for server-side coding on Linux.
2024 DAPUG Conference Arnaud Bouchez FPC and Lazarus from Arnaud Bouchez
]]>
119 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug09-fpcandlazarus-241023195542-f9a565ce-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez mORMot Gems /slideshow/2024-dapug-conference-arnaud-bouchez-mormot-gems/272671295 2024adug08-mormotgems-241023195542-191ecf2b
We will present some unique aspects of mORMot 2: RTTI, collections, data structures, JSON, PDF, network, cryptography, cross-platform. ]]>

We will present some unique aspects of mORMot 2: RTTI, collections, data structures, JSON, PDF, network, cryptography, cross-platform. ]]>
Wed, 23 Oct 2024 19:55:42 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-mormot-gems/272671295 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez mORMot Gems ArnaudBouchez1 We will present some unique aspects of mORMot 2: RTTI, collections, data structures, JSON, PDF, network, cryptography, cross-platform. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug08-mormotgems-241023195542-191ecf2b-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> We will present some unique aspects of mORMot 2: RTTI, collections, data structures, JSON, PDF, network, cryptography, cross-platform.
2024 DAPUG Conference Arnaud Bouchez mORMot Gems from Arnaud Bouchez
]]>
112 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug08-mormotgems-241023195542-191ecf2b-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez From RAD to REST and SOA /slideshow/2024-dapug-conference-arnaud-bouchez-from-rad-to-rest-and-soa/272671294 2024adug03-fromradtorestsoa-241023195542-930c60e9
Delphi favors the very efficient RAD/VCL approach since its beginning, especially via RAD DB components. Instead of directly accessing the database, REST/SOA proposes scenario-based client APIs, encapsulating the logic, decoupled from the UI.]]>

Delphi favors the very efficient RAD/VCL approach since its beginning, especially via RAD DB components. Instead of directly accessing the database, REST/SOA proposes scenario-based client APIs, encapsulating the logic, decoupled from the UI.]]>
Wed, 23 Oct 2024 19:55:41 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-from-rad-to-rest-and-soa/272671294 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez From RAD to REST and SOA ArnaudBouchez1 Delphi favors the very efficient RAD/VCL approach since its beginning, especially via RAD DB components. Instead of directly accessing the database, REST/SOA proposes scenario-based client APIs, encapsulating the logic, decoupled from the UI. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug03-fromradtorestsoa-241023195542-930c60e9-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Delphi favors the very efficient RAD/VCL approach since its beginning, especially via RAD DB components. Instead of directly accessing the database, REST/SOA proposes scenario-based client APIs, encapsulating the logic, decoupled from the UI.
2024 DAPUG Conference Arnaud Bouchez From RAD to REST and SOA from Arnaud Bouchez
]]>
117 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug03-fromradtorestsoa-241023195542-930c60e9-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez ORM ODM and mORMot /slideshow/2024-dapug-conference-arnaud-bouchez-orm-odm-and-mormot/272671293 2024adug07-orm-241023195542-3dc2a3cd
SQL is very powerful. But we will see in which cases ORM may help. Or other NoSQL database engines or solutions, locally or in the cloud.]]>

SQL is very powerful. But we will see in which cases ORM may help. Or other NoSQL database engines or solutions, locally or in the cloud.]]>
Wed, 23 Oct 2024 19:55:41 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-orm-odm-and-mormot/272671293 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez ORM ODM and mORMot ArnaudBouchez1 SQL is very powerful. But we will see in which cases ORM may help. Or other NoSQL database engines or solutions, locally or in the cloud. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug07-orm-241023195542-3dc2a3cd-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> SQL is very powerful. But we will see in which cases ORM may help. Or other NoSQL database engines or solutions, locally or in the cloud.
2024 DAPUG Conference Arnaud Bouchez ORM ODM and mORMot from Arnaud Bouchez
]]>
107 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug07-orm-241023195542-3dc2a3cd-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez From Classes to Interfaces /slideshow/2024-dapug-conference-arnaud-bouchez-from-classes-to-interfaces/272671292 2024adug02-fromclassestointerfaces-241023195541-9d7061b5
The Delphi "interface" keyword is a very efficient concept, not only to avoid manual memory management. We will review the SOLID principles, and how they help writing cleaner code.]]>

The Delphi "interface" keyword is a very efficient concept, not only to avoid manual memory management. We will review the SOLID principles, and how they help writing cleaner code.]]>
Wed, 23 Oct 2024 19:55:41 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-from-classes-to-interfaces/272671292 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez From Classes to Interfaces ArnaudBouchez1 The Delphi "interface" keyword is a very efficient concept, not only to avoid manual memory management. We will review the SOLID principles, and how they help writing cleaner code. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug02-fromclassestointerfaces-241023195541-9d7061b5-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The Delphi &quot;interface&quot; keyword is a very efficient concept, not only to avoid manual memory management. We will review the SOLID principles, and how they help writing cleaner code.
2024 DAPUG Conference Arnaud Bouchez From Classes to Interfaces from Arnaud Bouchez
]]>
116 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug02-fromclassestointerfaces-241023195541-9d7061b5-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez Technical Debt /slideshow/2024-dapug-conference-arnaud-bouchez-technical-debt/272671291 2024adug04-technicaldebt-241023195541-1fd8f432
Working from an existing code base, a solution with decade(s) of legacy but working code, may be a challenge. We will see some patterns to enhance maintainability and testing.]]>

Working from an existing code base, a solution with decade(s) of legacy but working code, may be a challenge. We will see some patterns to enhance maintainability and testing.]]>
Wed, 23 Oct 2024 19:55:41 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-technical-debt/272671291 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez Technical Debt ArnaudBouchez1 Working from an existing code base, a solution with decade(s) of legacy but working code, may be a challenge. We will see some patterns to enhance maintainability and testing. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug04-technicaldebt-241023195541-1fd8f432-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Working from an existing code base, a solution with decade(s) of legacy but working code, may be a challenge. We will see some patterns to enhance maintainability and testing.
2024 DAPUG Conference Arnaud Bouchez Technical Debt from Arnaud Bouchez
]]>
89 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug04-technicaldebt-241023195541-1fd8f432-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez Test Driven Design /slideshow/2024-dapug-conference-arnaud-bouchez-test-driven-design/272671290 2024adug06-testdrivendesign-241023195541-76744a2f
Testing is everything. We will share our own practical experience with testing, and see how may be come one step further, without losing too much productivity.]]>

Testing is everything. We will share our own practical experience with testing, and see how may be come one step further, without losing too much productivity.]]>
Wed, 23 Oct 2024 19:55:41 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-test-driven-design/272671290 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez Test Driven Design ArnaudBouchez1 Testing is everything. We will share our own practical experience with testing, and see how may be come one step further, without losing too much productivity. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug06-testdrivendesign-241023195541-76744a2f-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Testing is everything. We will share our own practical experience with testing, and see how may be come one step further, without losing too much productivity.
2024 DAPUG Conference Arnaud Bouchez Test Driven Design from Arnaud Bouchez
]]>
95 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug06-testdrivendesign-241023195541-76744a2f-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
2024 DAPUG Conference Arnaud Bouchez mORMot as a ToolBox /slideshow/2024-dapug-conference-arnaud-bouchez-mormot-as-a-toolbox/272671289 2024adug01-mormotasatoolbox-241023195541-8fc211b7
Our Open Source framework has a lot of features. We will detail its initial goal, and the current state of its main reusable bricks, and what makes it unique. We will also see how to find your way into its code base.]]>

Our Open Source framework has a lot of features. We will detail its initial goal, and the current state of its main reusable bricks, and what makes it unique. We will also see how to find your way into its code base.]]>
Wed, 23 Oct 2024 19:55:41 GMT /slideshow/2024-dapug-conference-arnaud-bouchez-mormot-as-a-toolbox/272671289 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) 2024 DAPUG Conference Arnaud Bouchez mORMot as a ToolBox ArnaudBouchez1 Our Open Source framework has a lot of features. We will detail its initial goal, and the current state of its main reusable bricks, and what makes it unique. We will also see how to find your way into its code base. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/2024adug01-mormotasatoolbox-241023195541-8fc211b7-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Our Open Source framework has a lot of features. We will detail its initial goal, and the current state of its main reusable bricks, and what makes it unique. We will also see how to find your way into its code base.
2024 DAPUG Conference Arnaud Bouchez mORMot as a ToolBox from Arnaud Bouchez
]]>
172 0 https://cdn.slidesharecdn.com/ss_thumbnails/2024adug01-mormotasatoolbox-241023195541-8fc211b7-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
EKON27-FrameworksTuning.pdf /slideshow/ekon27frameworkstuningpdf/265462280 ekon27-frameworkstuning-240116133029-d0876148
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?]]>

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?]]>
Tue, 16 Jan 2024 13:30:29 GMT /slideshow/ekon27frameworkstuningpdf/265462280 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) EKON27-FrameworksTuning.pdf ArnaudBouchez1 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? <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon27-frameworkstuning-240116133029-d0876148-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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?
EKON27-FrameworksTuning.pdf from Arnaud Bouchez
]]>
75 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon27-frameworkstuning-240116133029-d0876148-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
EKON27-FrameworksExpressiveness.pdf /slideshow/ekon27frameworksexpressivenesspdf/265462124 ekon27-frameworksexpressiveness-240116132636-355b2e41
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.]]>

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.]]>
Tue, 16 Jan 2024 13:26:36 GMT /slideshow/ekon27frameworksexpressivenesspdf/265462124 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) EKON27-FrameworksExpressiveness.pdf ArnaudBouchez1 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. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon27-frameworksexpressiveness-240116132636-355b2e41-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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.
EKON27-FrameworksExpressiveness.pdf from Arnaud Bouchez
]]>
109 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon27-frameworksexpressiveness-240116132636-355b2e41-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Ekon25 mORMot 2 Server-Side Notifications /slideshow/ekon25-mormot-2-serverside-notifications/250638537 ekon25-mormot2svrsidenotif-211112110538
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.]]>

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.]]>
Fri, 12 Nov 2021 11:05:37 GMT /slideshow/ekon25-mormot-2-serverside-notifications/250638537 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) Ekon25 mORMot 2 Server-Side Notifications ArnaudBouchez1 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. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon25-mormot2svrsidenotif-211112110538-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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.
Ekon25 mORMot 2 Server-Side Notifications from Arnaud Bouchez
]]>
1082 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon25-mormot2svrsidenotif-211112110538-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Ekon25 mORMot 2 Cryptography /slideshow/ekon25-mormot-2-cryptography/250638513 ekon25-mormot2cryptography-211112110201
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 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.]]>
Fri, 12 Nov 2021 11:02:00 GMT /slideshow/ekon25-mormot-2-cryptography/250638513 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) Ekon25 mORMot 2 Cryptography ArnaudBouchez1 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. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon25-mormot2cryptography-211112110201-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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.
Ekon25 mORMot 2 Cryptography from Arnaud Bouchez
]]>
787 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon25-mormot2cryptography-211112110201-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Ekon24 from Delphi to AVX2 /ArnaudBouchez1/ekon24-from-delphi-to-avx2 ekon24-fromdelphitoavx2-201104173354
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.]]>

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.]]>
Wed, 04 Nov 2020 17:33:54 GMT /ArnaudBouchez1/ekon24-from-delphi-to-avx2 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) Ekon24 from Delphi to AVX2 ArnaudBouchez1 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. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon24-fromdelphitoavx2-201104173354-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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.
Ekon24 from Delphi to AVX2 from Arnaud Bouchez
]]>
1287 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon24-fromdelphitoavx2-201104173354-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Ekon24 mORMot 2 /slideshow/ekon24-mormot-2/239087654 ekon24-mormot2-201104173242
The OpenSource mORMot is a RESTful ORM / MVC / SOA framework for Delphi and FreePascal. Some of its codebase is now about 10 years old, and it was time to clean and evolve. This year 2020 triggered a deep refactoring of the whole source code, with a full rewrite of some core components (JSON, RTTI). This session will present the version 2 of mORMot it its current state, the principles behind this refactoring, and how you may find useful gems for your own Delphi applications.]]>

The OpenSource mORMot is a RESTful ORM / MVC / SOA framework for Delphi and FreePascal. Some of its codebase is now about 10 years old, and it was time to clean and evolve. This year 2020 triggered a deep refactoring of the whole source code, with a full rewrite of some core components (JSON, RTTI). This session will present the version 2 of mORMot it its current state, the principles behind this refactoring, and how you may find useful gems for your own Delphi applications.]]>
Wed, 04 Nov 2020 17:32:42 GMT /slideshow/ekon24-mormot-2/239087654 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) Ekon24 mORMot 2 ArnaudBouchez1 The OpenSource mORMot is a RESTful ORM / MVC / SOA framework for Delphi and FreePascal. Some of its codebase is now about 10 years old, and it was time to clean and evolve. This year 2020 triggered a deep refactoring of the whole source code, with a full rewrite of some core components (JSON, RTTI). This session will present the version 2 of mORMot it its current state, the principles behind this refactoring, and how you may find useful gems for your own Delphi applications. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon24-mormot2-201104173242-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The OpenSource mORMot is a RESTful ORM / MVC / SOA framework for Delphi and FreePascal. Some of its codebase is now about 10 years old, and it was time to clean and evolve. This year 2020 triggered a deep refactoring of the whole source code, with a full rewrite of some core components (JSON, RTTI). This session will present the version 2 of mORMot it its current state, the principles behind this refactoring, and how you may find useful gems for your own Delphi applications.
Ekon24 mORMot 2 from Arnaud Bouchez
]]>
1603 0 https://cdn.slidesharecdn.com/ss_thumbnails/ekon24-mormot2-201104173242-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Ekon23 (2) Kingdom-Driven-Design applied to Social Media with mORMot /slideshow/ekon23-2-kingdomdrivendesign-applied-to-social-media-with-mormot/188577496 ekon232kddsocialmedia-191030131225
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 mORMots 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. ]]>

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 mORMots 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. ]]>
Wed, 30 Oct 2019 13:12:25 GMT /slideshow/ekon23-2-kingdomdrivendesign-applied-to-social-media-with-mormot/188577496 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) Ekon23 (2) Kingdom-Driven-Design applied to Social Media with mORMot ArnaudBouchez1 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 mORMots 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. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon232kddsocialmedia-191030131225-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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 mORMots 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.
Ekon23 (2) Kingdom-Driven-Design applied to Social Media with mORMot from Arnaud Bouchez
]]>
705 5 https://cdn.slidesharecdn.com/ss_thumbnails/ekon232kddsocialmedia-191030131225-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Ekon23 (1) Kingdom-Driven-Design /slideshow/ekon23-1-kingdomdrivendesign/188577260 ekon231kingdomdrivendesign-191030131011
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!]]>

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!]]>
Wed, 30 Oct 2019 13:10:11 GMT /slideshow/ekon23-1-kingdomdrivendesign/188577260 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) Ekon23 (1) Kingdom-Driven-Design ArnaudBouchez1 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! <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon231kingdomdrivendesign-191030131011-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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!
Ekon23 (1) Kingdom-Driven-Design from Arnaud Bouchez
]]>
720 2 https://cdn.slidesharecdn.com/ss_thumbnails/ekon231kingdomdrivendesign-191030131011-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
High Performance Object Pascal Code on Servers (at EKON 22) /slideshow/high-performance-object-pascal-code-on-servers-at-ekon-22/122775025 ekon222highperformancepascalcodeonservers-181112090032
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 dont know assembly. ]]>

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 dont know assembly. ]]>
Mon, 12 Nov 2018 09:00:32 GMT /slideshow/high-performance-object-pascal-code-on-servers-at-ekon-22/122775025 ArnaudBouchez1@slideshare.net(ArnaudBouchez1) High Performance Object Pascal Code on Servers (at EKON 22) ArnaudBouchez1 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 dont know assembly. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/ekon222highperformancepascalcodeonservers-181112090032-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> 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 dont know assembly.
High Performance Object Pascal Code on Servers (at EKON 22) from Arnaud Bouchez
]]>
2951 5 https://cdn.slidesharecdn.com/ss_thumbnails/ekon222highperformancepascalcodeonservers-181112090032-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
https://cdn.slidesharecdn.com/profile-photo-ArnaudBouchez1-48x48.jpg?cb=1731519300 Experienced Senior Software Engineer with a demonstrated history of working in the software industry. Strong engineering professional skilled in Domain Driven Design, high-performance server solutions for IoT/monitoring, SQL/NoSQL, FPC/Delphi. Founder of several OpenSource projects, like mORMot or SynPDF. synopse.info https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-beyondlegacyapps-241113175500-cff45338-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/ekon28-beyond-legacy-apps-with-mormot-2/273282063 EKON28 - Beyond Legacy... https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-1brcinpascal-241113175259-5cf1b35b-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/ekon28-winning-the-1brc-challenge-in-pascal/273282042 EKON28 - Winning the 1... https://cdn.slidesharecdn.com/ss_thumbnails/ekon28-divingintocertificates-241113174316-1b3f896d-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/ekon28-diving-into-x-509-certificates-with-mormot-2/273281847 EKON28 - Diving Into X...