SObjectizer is a framework for building robust multithreaded applications based on the actor model. It uses asynchronous message passing and high-level abstractions like actors, publish-subscribe, and communicating sequential processes. SObjectizer has been in development since the 1990s and is mature, stable, cross-platform, easy to use, and free. It provides features like multiple dispatcher types, hierarchical state machines, and message chains. Developers can build entire applications on SObjectizer or integrate it into other applications.
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
Recently, our iOS team has prepared a report on the Combine Framework. We’ve discussed using the Combine framework, announced by Apple in 2019, while working with asynchronous code and how to use the delegate-pattern and callbacks as an alternative.
We’ve covered the following:
▪️ The comparison of Combine with other reactive paradigms, such as Rx and ReactiveSwift
▪️ Such entities as Publisher, Subscriber, Subject, Subscription, Scheduler
Lifecycle subscription and Backpressure work
▪️ Operators work
▪️ Debugging of the Reactive approach
▪️ Error handling
▪️ Usage of Combine with Foundation
▪️ Practical usage of Combine in typical situations
The report will be useful to those who:
▪️ Wants to stop using third-party dependencies such as Rx and ReactiveSwift
▪️ Wants to follow a declarative approach to programming in the future, but with a native framework.
Getting Started with Angular 4 and TypeScript
Slides:
1- What is TypeScript.
2- TypeScript Content
3- Why TypeScript
4- TypeScript Interfaces
5- TypeScript Decorators
6- TypeScript Import and Export
7- What is Angular JS
8- Angular Architecture Overview
9- Anatomy of an Angular Application
10- Setting up an Angular Application
11- Angular CLI
12- Running your application
13- Modules
14- Components
15- Templates
16- Metadata
17- Data binding
18- Pipes
19- Services and Service Creation
"Angular 2 : le réveil de la force" est un talk co-présenté par Grégory HOULLIER et Nicolas PENNEC, lors du BreizhCamp 2015 à Rennes (France).
Cette présentation a pour but de faire le point sur les nouveautés du framework AngularJS 2.
http://www.breizhcamp.org/
Introduction to Angular for .NET DevelopersLaurent Duveau
Technical presentation given by Laurent Duveau at the Ottawa IT Community meetup on January 10, 2017.
https://www.meetup.com/ottawaitcommunity/events/235519260/
Migrating an Application from Angular 1 to Angular 2 Ross Dederer
Migrating Angular 1 to Angular 2: I can summarize my experience in migration in one phrase: Angular 1 and Angular 2 are very different. To help navigate through these differences, I have chosen an existing Angular 1 application and ported it over to Angular 2. This is not any old existing application but an application that has been around for almost a decade originally developed my Microsoft in Silverlight.
I will walk you through the steps of migration as well as sharing insights and problems I faced along the way. Additionally, with Google recommending developers use TypeScript, I will walk you through core concepts such as type safety, encapsulation, and MVVM development patterns. You will find side by side code comparisons for each topic.
About me : As a Developer Relations Engineer at ComponentOne, a division of GrapeCity, Ross Dederer has spent his entire professional life helping others navigate the complex technology environment. Ross works closely with clients and developer teams to provide solutions that impact software development experiences. Traveling to code camps, conferences and meeting with corporate clients, Ross is able to pursue his passion of helping the community grow.
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
Recently, our iOS team has prepared a report on the Combine Framework. We’ve discussed using the Combine framework, announced by Apple in 2019, while working with asynchronous code and how to use the delegate-pattern and callbacks as an alternative.
We’ve covered the following:
▪️ The comparison of Combine with other reactive paradigms, such as Rx and ReactiveSwift
▪️ Such entities as Publisher, Subscriber, Subject, Subscription, Scheduler
Lifecycle subscription and Backpressure work
▪️ Operators work
▪️ Debugging of the Reactive approach
▪️ Error handling
▪️ Usage of Combine with Foundation
▪️ Practical usage of Combine in typical situations
The report will be useful to those who:
▪️ Wants to stop using third-party dependencies such as Rx and ReactiveSwift
▪️ Wants to follow a declarative approach to programming in the future, but with a native framework.
Getting Started with Angular 4 and TypeScript
Slides:
1- What is TypeScript.
2- TypeScript Content
3- Why TypeScript
4- TypeScript Interfaces
5- TypeScript Decorators
6- TypeScript Import and Export
7- What is Angular JS
8- Angular Architecture Overview
9- Anatomy of an Angular Application
10- Setting up an Angular Application
11- Angular CLI
12- Running your application
13- Modules
14- Components
15- Templates
16- Metadata
17- Data binding
18- Pipes
19- Services and Service Creation
"Angular 2 : le réveil de la force" est un talk co-présenté par Grégory HOULLIER et Nicolas PENNEC, lors du BreizhCamp 2015 à Rennes (France).
Cette présentation a pour but de faire le point sur les nouveautés du framework AngularJS 2.
http://www.breizhcamp.org/
Introduction to Angular for .NET DevelopersLaurent Duveau
Technical presentation given by Laurent Duveau at the Ottawa IT Community meetup on January 10, 2017.
https://www.meetup.com/ottawaitcommunity/events/235519260/
Migrating an Application from Angular 1 to Angular 2 Ross Dederer
Migrating Angular 1 to Angular 2: I can summarize my experience in migration in one phrase: Angular 1 and Angular 2 are very different. To help navigate through these differences, I have chosen an existing Angular 1 application and ported it over to Angular 2. This is not any old existing application but an application that has been around for almost a decade originally developed my Microsoft in Silverlight.
I will walk you through the steps of migration as well as sharing insights and problems I faced along the way. Additionally, with Google recommending developers use TypeScript, I will walk you through core concepts such as type safety, encapsulation, and MVVM development patterns. You will find side by side code comparisons for each topic.
About me : As a Developer Relations Engineer at ComponentOne, a division of GrapeCity, Ross Dederer has spent his entire professional life helping others navigate the complex technology environment. Ross works closely with clients and developer teams to provide solutions that impact software development experiences. Traveling to code camps, conferences and meeting with corporate clients, Ross is able to pursue his passion of helping the community grow.
ROS Based Programming and Visualization of Quadrotor HelicoptersAtılay Mayadağ
ROS Based Programming and Visualization of Quadrotor Helicopters
Contents
Purpose of Thesis
Robot Operating System ( ROS )
What is Robot Operating System ( ROS ) ?
ROS structure
HOW does ROS work ?
Navigation of Robot with ROS
URDF : Unified Robot Description Format
ROS with 3D Modelling and Simulation
Quadrotor Simulation on Rviz and Gazebo with ROS
Conclusion and Recommendation
ROS publish / subscribe method
unmanned air vehicle
Robot Operating System
ATILAY MAYADAG
Get started with meteor | designveloper software agency meteor prime partnerDesignveloper
You’ve heard people talk about Meteor recently. So here are a few things you should know about Meteor. Be careful when reading this because you will fall in love with it immediately:
....
Spring boot is a suite, pre-configured, pre-sugared set of frameworks/technologies to reduce boilerplate configuration providing you the shortest way to have a Spring web application up and running with smallest line of code/configuration out-of-the-box.
Dive into SObjectizer 5.5. Seventh part: Message LimitsYauheni Akhotnikau
Next part of serie with deep dive into SObjectizer-5.5. A brief explanation of message limits feature. This feature allows to protect agents from overloading in simple situations and can be used as building blocks for more complex and domain-specific overload control schemes.
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTreeBosnia Agile
Building a software product is a dream of every software development company but it also comes with many challenges. How do you properly define and set your versions? How to implement large new features and release smaller ones at the same time? What to do when your new features are halfway complete and you need to deliver an urgent hotfix? What if you upgrade to the new technology but you still have to provide long-term support for your old product versions?
This presentation is about how implementing a good practice of GitFlow process with Visual Studio Team Services and Atlassian SourceTree as a tool of choice can significantly simplify your product versioning and delivery processes.
arataga. SObjectizer and RESTinio in action: a real-world exampleYauheni Akhotnikau
Slides about the usage of SObjectizer and RESTinio in implementation of performant socks5/http1.1 proxy server that has to deal with thousands of entry points.
Actor Model and C++: what, why and how? (March 2020 Edition)Yauheni Akhotnikau
This is an updated version of slides from my talk on the C++ CoreHard Autumn 2016 conference.
The Actor Model which is currently trending in software development is a popular design approach when it comes to complex applications. Many systems are written in Erlang (Akka framework) are designed with the Actor Model in their core. But Erlang and Akka are managed environments and safe programming languages. Is it worth using the Actor Model in C++? If yes, where to look and what to use? The talk will cover all these topics.
ROS Based Programming and Visualization of Quadrotor HelicoptersAtılay Mayadağ
ROS Based Programming and Visualization of Quadrotor Helicopters
Contents
Purpose of Thesis
Robot Operating System ( ROS )
What is Robot Operating System ( ROS ) ?
ROS structure
HOW does ROS work ?
Navigation of Robot with ROS
URDF : Unified Robot Description Format
ROS with 3D Modelling and Simulation
Quadrotor Simulation on Rviz and Gazebo with ROS
Conclusion and Recommendation
ROS publish / subscribe method
unmanned air vehicle
Robot Operating System
ATILAY MAYADAG
Get started with meteor | designveloper software agency meteor prime partnerDesignveloper
You’ve heard people talk about Meteor recently. So here are a few things you should know about Meteor. Be careful when reading this because you will fall in love with it immediately:
....
Spring boot is a suite, pre-configured, pre-sugared set of frameworks/technologies to reduce boilerplate configuration providing you the shortest way to have a Spring web application up and running with smallest line of code/configuration out-of-the-box.
Dive into SObjectizer 5.5. Seventh part: Message LimitsYauheni Akhotnikau
Next part of serie with deep dive into SObjectizer-5.5. A brief explanation of message limits feature. This feature allows to protect agents from overloading in simple situations and can be used as building blocks for more complex and domain-specific overload control schemes.
Managing software product versioning with Gitflow, VSTS and Atlassian SourceTreeBosnia Agile
Building a software product is a dream of every software development company but it also comes with many challenges. How do you properly define and set your versions? How to implement large new features and release smaller ones at the same time? What to do when your new features are halfway complete and you need to deliver an urgent hotfix? What if you upgrade to the new technology but you still have to provide long-term support for your old product versions?
This presentation is about how implementing a good practice of GitFlow process with Visual Studio Team Services and Atlassian SourceTree as a tool of choice can significantly simplify your product versioning and delivery processes.
arataga. SObjectizer and RESTinio in action: a real-world exampleYauheni Akhotnikau
Slides about the usage of SObjectizer and RESTinio in implementation of performant socks5/http1.1 proxy server that has to deal with thousands of entry points.
Actor Model and C++: what, why and how? (March 2020 Edition)Yauheni Akhotnikau
This is an updated version of slides from my talk on the C++ CoreHard Autumn 2016 conference.
The Actor Model which is currently trending in software development is a popular design approach when it comes to complex applications. Many systems are written in Erlang (Akka framework) are designed with the Actor Model in their core. But Erlang and Akka are managed environments and safe programming languages. Is it worth using the Actor Model in C++? If yes, where to look and what to use? The talk will cover all these topics.
Слайды одноименного доклада с конференции C++ CoreHard Autumn 2018 (г.Минск, 2018.11.03).
Краткое описание доклада:
На предыдущих конференциях C++ CoreHard автор доклада рассказывал про Модель Акторов и опыт ее использования в C++. Но Модель Акторов -- это далеко не единственный способ борьбы со сложностью при работе с многопоточностью. Давайте попробуем поговорить о том, что еще можно применить и как это может выглядеть в C++.
Shrimp: A Rather Practical Example Of Application Development With RESTinio a...Yauheni Akhotnikau
Description of a demo project for serving images by using Actor Model and embedded HTTP-server. This project is implemented in C++17 with SObjectizer and RESTinio (OpenSource products from stiffstream).
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...Yauheni Akhotnikau
Автор доклада более 16 лет отвечает за развитие Open-Source фреймворка SObjectizer -- одного из немногих живых, эволюционирующих, кросс-платформенных фреймворков для C++, базирующихся на Модели Акторов. При этом SObjectizer никогда не был исследовательским экспериментом и с самого начала использовался в ряде business-critical проектов.
За годы разработки и эксплуатации SObjectizer накопился некоторый практический опыт использования акторов в С++, которым докладчик поделится со слушателями. Речь пойдет о том, почему Модель Акторов выглядит привлекательной, где и когда ее выгодно использовать. Какие особенности накладывает именно С++ и разумно ли использовать Модель Акторов в C++? Почему реализации Модели Акторов для C++ настолько разные и почему SObjectizer получился именно таким?
Слайды одноименного доклада с конференции "C++ Russia 2018". В докладе речь идет о том, насколько C++ мешает и насколько C++ помогает в разработке акторного фреймворка для C++.
GECon 2017: C++ - a Monster that no one likes but that will outlast them allYauheni Akhotnikau
Slides from my presentation from GECon-2017 conference: https://events.epam.com/events/gecon-2017
It covers the following topics:
A bit of C++ evolution history.
Why C++ became popular and why C++ started to lose its popularity.
Why C++ is a Monster? If C ++ is a monster, then why does someone need C++?
How to use C++ safely and efficiently?
Where and when C++ can be used. If it can...
Pressure to C++ from competitors. Real and imaginary.
Dive into SObjectizer 5.5. Tenth part: Mutable MessagesYauheni Akhotnikau
This part describes a feature which was introduced in v.5.5.19: an ability to send mutable messages with guarantees that it will be delivered to at most one receiver.
Actor model which is currently trending in software development is a popular design approach when it comes to complex applications. Many systems written in Erlang (Akka framework) are designed with actor model in their core. But Erlang and Akka are managed environments and safe programming languages. Is it worth using actor model in C++? If yes, where to look and what to use? The talk will cover all these topics.
Слайды доклада на конференции C++ Corehard Winter 2017 (г.Минск).
Автор доклада давно и успешно использует Модель Акторов при разработке приложений на C++. В основном это был положительный опыт. Но есть некоторые неочевидные моменты, про которые было бы хорошо узнать заранее. О том, где использование Модели Акторов уместно, а где нет, на какие грабли довелось наступить, какие шишки были набиты, как можно упростить себе жизнь и пойдет речь в докладе.
This is the next part of the serie of presentations with deep introduction into features of SObjectizer-5.5.
This part is dedicated to such important feature as cooperations.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
2. SObjectizer is a framework for building robust multithreaded
applications.
It is based on async message exchange and uses a mixture of
high-level abstractions:
● Actor-Model
● Publish-Subscribe
● Communicating Sequential Processes
SObjectizer Team, May 2019
3. SObjectizer’s main ideas and principles were formulated in the
middle of 1990s, during the development of SCADA Objectizer
project in Development Bureau of System Programming in
Homyel, Belarus (1996-2000).
SCADA Objectizer’s ideas were reused in the new project
SObjectizer-4 in 2002.
Evolution of SObjectizer-4 was stopped in 2010 and the
development of SObjectizer-5 started.
SObjectizer Team, May 2019
4. SObjectizer was an in-house project of Intervale*
for the long
time.
Since 2013 SObjectizer is an independent project which a
totally separated from Intervale.
Since 2016 the SObjectizer's development and support is
performed by stiffstream**
.
*
www.intervale.ru
**
stiffstream.com SObjectizer Team, May 2019
5. SObjectizer was used for:
● SMS/USSD traffic service;
● financial transaction handling;
● software parameters monitoring;
● automatic control of the theatre's scenery*
;
● machine learning;
● prototyping of distributed data-acquisition software;
● components of DMP in an advertising platform;
● components of an online game.
SObjectizer Team, May 2019*
https://habr.com/en/post/452464/
6. SObjectizer can be used for the development of a large,
distributed and highly loaded software systems.
SObjectizer can also be used for small utilities and
quick-and-dirty prototypes.
The whole application can be built upon SObjectizer.
Or SObjectizer can be used only for a small part of an
application developed on the top of Qt, wxWidgets, ACE, Boost,
etc.
SObjectizer Team, May 2019
8. Maturity
SObjectizer is based on ideas that have been put forward in
1995-2000.
And SObjectizer itself is being developed since 2002.
SObjectizer-5 is continuously evolved since 2010.
SObjectizer Team, May 2019
9. Stability
From the very beginning SObjectizer was used for
business-critical applications, and some of them are still being
used in production.
Breaking changes in SObjectizer are rare and we approach to
them very carefully.
For example, branch 5.5 respects compatibility for more that
four years.
SObjectizer Team, May 2019
11. Easy-to-use
SObjectizer provides easy to understand and easy to use API
with a lot of examples in the SObjectizer's distributive and a
plenty of information in the project's Wiki*
.
SObjectizer Team, May 2019*
https://bitbucket.org/sobjectizerteam/sobjectizer/wiki/
12. Free
SObjectizer is distributed under BSD-3-CLAUSE license, so it
can be used in development of proprietary commercial software
for free.
SObjectizer Team, May 2019
13. It's not dead!
SObjectizer is one of a few live and evolving OpenSource actor
frameworks for C++.
There are more that 30 releases on SObjectizer-5 since it was
open-sourced in May 2013.
SObjectizer Team, May 2019
14. It evolves
SObjectizer-5.6 has much more features than the first public
release of SObjectizer-5 had in 2013.
During the evolution, SObjectizer incorporated several features
that can be called game-changers...
SObjectizer Team, May 2019
15. Some of new features since 2013:
● agents as hierarchical state machines;
● mutability for messages;
● message chains;
● environment infrastructures;
● enveloped messages;
● dead-letter handlers;
● message-tracing;
● stop-guards;
● run-time monitoring;
● ...
SObjectizer Team, May 2019
17. Using SObjectizer-5.6 a programmer must define
messages/signals and implement agents for processing them.
Agents are created by the programmer and are bound to
dispatchers. Dispatchers are responsible for message
dispatching and providing of working thread on which agents
handle messages.
SObjectizer Team, May 2019
18. A programmer can create as many agents as needed.
Agent is a lightweight entity.
There could be thousands, millions and hundreds of millions of
agents.
Number of agents is limited only by amount of RAM and the
common sense of a programmer.
SObjectizer Team, May 2019
19. A traditional "Hello, World" example. This is the main agent:
#include <so_5/all.hpp>
class hello_actor final : public so_5::agent_t {
public:
using so_5::agent_t::agent_t;
void so_evt_start() override {
std::cout << "Hello, World!" << std::endl;
// Finish work of example.
so_deregister_agent_coop_normally();
}
};
SObjectizer Team, May 2019
20. And this is the main() function:
int main() {
// Launch SObjectizer.
so_5::launch([](so_5::environment_t & env) {
// Add a hello_actor instance in a new cooperation.
env.register_agent_as_coop( env.make_agent<hello_actor>() );
});
return 0;
}
SObjectizer Team, May 2019
21. Let's see an example of timers and Publish/Subscribe.
There will be a producer agent that will distribute new values on a
periodic basis.
And there will be a couple of consumers on that data.
SObjectizer Team, May 2019
22. Define a message with new data:
#include <so_5/all.hpp>
using namespace std::literals;
// This message will be published to a multi-consumer message box on a periodic basis.
struct acquired_value {
std::chrono::steady_clock::time_point acquired_at_;
int value_;
};
SObjectizer Team, May 2019
23. Agent-producer (fields and the constructor):
class producer final : public so_5::agent_t {
const so_5::mbox_t board_; // The destination for acquired_value.
so_5::timer_id_t timer_;
int counter_{};
// This signal will be sent by the timer.
struct acquisition_time final : public so_5::signal_t {};
public:
producer(context_t ctx, so_5::mbox_t board)
: so_5::agent_t{std::move(ctx)}, board_{std::move(board)}
{}
SObjectizer Team, May 2019
24. Agent-producer (the main methods):
void so_define_agent() override {
// A subscription to periodic signal.
so_subscribe_self().event( [this](mhood_t<acquisition_time>) {
// Publish the next value for all consumers.
so_5::send<acquired_value>(
board_, std::chrono::steady_clock::now(), ++counter_);
} );
}
void so_evt_start() override {
// Agent will periodically recive acquisition_time signal
// without initial delay and with period of 750ms.
timer_ = so_5::send_periodic<acquisition_time>(*this, 0ms, 750ms);
}
};
SObjectizer Team, May 2019
26. The main() function:
int main() {
so_5::launch([](so_5::environment_t & env) {
auto board = env.create_mbox();
env.introduce_coop([board](so_5::coop_t & coop) {
coop.make_agent<producer>(board);
coop.make_agent<consumer>(board, "first"s);
coop.make_agent<consumer>(board, "second"s);
});
std::this_thread::sleep_for(4s);
env.stop();
});
return 0;
}
SObjectizer Team, May 2019
27. All agents in the example above works on the same default
dispatcher.
Let's bind them to different dispatchers...
SObjectizer Team, May 2019
28. so_5::launch([](so_5::environment_t & env) {
auto board = env.create_mbox();
env.introduce_coop([&](so_5::coop_t & coop) {
// A separate dispatcher for producer.
coop.make_agent_with_binder<producer>(
so_5::disp::one_thread::make_dispatcher(env).binder(), board);
// And a separate dispatcher for consumers.
auto disp = so_5::disp::active_obj::make_dispatcher(env);
coop.make_agent_with_binder<consumer>(disp.binder(), board, "first"s);
coop.make_agent_with_binder<consumer>(disp.binder(), board, "second"s);
});
...
});
SObjectizer Team, May 2019
29. SObjectizer has several ready-to-use dispatchers:
● one_thread. All agents work on a single working thread;
● active_obj. Every agent works on a single dedicated working thread;
● active_group. A single dedicated working thread is allocated for a group of
agents;
● thread_pool. A working thread is selected from thread pool. Agents can be moved
from one working thread to another. But an agent can’t work on two threads at the
same time;
● adv_thread_pool. A working thread is selected from thread pool. Agents can be
moved from one working thread to another. Moreover an agent can work on
several threads at the same time (if the agent’s event handlers are marked as
thread safe);
● prio_one_thread (strictly_ordered and quoted_round_robin). One working
thread and dispatching with respect to agent’s priorities;
● prio_dedicated_threads::one_per_prio. One working thread per a priority.
SObjectizer Team, May 2019
30. A programmer can create any number of dispatchers needed. This
allows to bind agents to different context in such a way that the impact
of one agent on another will be minimal. For example:
● one one_thread dispatcher for AMQP-client agent;
● one thread_pool dispatcher for handling requests from AMQP-queues;
● one active_obj dispatcher for DBMS-related agents;
● yet another active_obj dispatcher for agents whose work with HSMs
connected to the computer;
● and yet another thread_pool dispatcher for agents for managing all the
stuff described above.
SObjectizer Team, May 2019
32. You can write a multithreaded application using only plain
std::thread and SObjectizer's mchains.
mchain in SObjectizer is an analog of CSP-channel.
Let's see a ping-pong between worker threads via mchains...
SObjectizer Team, May 2019
33. Ping-pong on plain threads and mchains (1)
#include <so_5/all.hpp>
struct ping {
int counter_;
};
struct pong {
int counter_;
};
SObjectizer Team, May 2019
34. Ping-pong on plain threads and mchains (2)
void pinger_proc(so_5::mchain_t self_ch, so_5::mchain_t ping_ch) {
so_5::send<ping>(ping_ch, 1000); // The initial "ping".
// Read all message until channel will be closed.
so_5::receive( so_5::from(self_ch).handle_all(),
[&](so_5::mhood_t<pong> cmd) {
if(cmd->counter_ > 0)
so_5::send<ping>(ping_ch, cmd->counter_ - 1);
else {
// Channels have to be closed to break `receive` calls.
so_5::close_drop_content(self_ch);
so_5::close_drop_content(ping_ch);
}
});
}
SObjectizer Team, May 2019
35. Ping-pong on plain threads and mchains (3)
void ponger_proc(so_5::mchain_t self_ch, so_5::mchain_t pong_ch) {
int pings_received{};
// Read all message until channel will be closed.
so_5::receive( so_5::from(self_ch).handle_all(),
[&](so_5::mhood_t<ping> cmd) {
++pings_received;
so_5::send<pong>(pong_ch, cmd->counter_);
});
std::cout << "pings received: " << pings_received << std::endl;
}
SObjectizer Team, May 2019
36. Ping-pong on plain threads and mchains (4)
int main() {
so_5::wrapped_env_t sobj;
auto pinger_ch = so_5::create_mchain(sobj);
auto ponger_ch = so_5::create_mchain(sobj);
std::thread pinger{pinger_proc, pinger_ch, ponger_ch};
std::thread ponger{ponger_proc, ponger_ch, pinger_ch};
ponger.join();
pinger.join();
return 0;
}
SObjectizer Team, May 2019
38. SObjectizer supports several concurrency models.
SObjectizer makes the development of complex multithreaded
applications easier.
It's proved by 17 years of usage "in production".
But SObjectizer doesn't solve all the problems...
SObjectizer Team, May 2019
39. SObjectizer is responsible for:
● in-process message dispatching;
● providing working thread for message processing;
● SObjectizer Run-Time’s parameters tuning;
● collecting of run-time stats (if enabled);
● message delivery process tracing (if enabled).
SObjectizer Team, May 2019
40. And SObjectizer-5 doesn't support development of distributed
application just "out of box".
Additional libraries and tools should be used for that.
SObjectizer Team, May 2019
41. Some more info about
SObjectizer-5.6.0
SObjectizer Team, May 2019
42. SObjectizer-5.6 is developed using C++17.
Supported compilers and platforms:
● Visual Studio 2017-2019, GCC 7.1-9.1, clang 6.0-8.0
● Windows, Linux, FreeBSD and MacOS.
Support of other platforms is possible in the case when
SObjectizer’s developers will have an access to those platforms.
SObjectizer Team, May 2019
43. Version 5.6.0 is ~30 KLOC of SObjectizer core.
Plus ~35 KLOC of tests.
Plus ~8 KLOC of samples.
Plus SObjectizer’s core documentation*.
Plus articles and presentations** (some of them in Russian).
*
https://bitbucket.org/sobjectizerteam/sobjectizer/wiki
**
http://sourceforge.net/p/sobjectizer/wiki/Articles/ SObjectizer Team, May 2019