Developing event-driven microservices with event sourcing and CQRS (svcc, sv...Chris Richardson
Modern, cloud-native applications typically use a microservices architecture in conjunction with NoSQL and/or sharded relational databases. However, in order to successfully use this approach you need to solve some distributed data management problems including how to maintain consistency between multiple databases without using 2PC.
In this talk you will learn more about these issues and how to solve them by using an event-driven architecture. We will describe how event sourcing and Command Query Responsibility Segregation (CQRS) are a great way to realize an event-driven architecture. You will learn about a simple yet powerful approach for building, modern, scalable applications.
Software Test automation tools are available under several categories such as commercial, free software, open source software and etc. In this paper Open Source Software Testing Tools will be discussed.
Open source software test automation tools may be practical alternatives to popular closed-source commercial applications and some open source tools offers features or performance benefits that exceed their commercial counterparts. The source code is openly published for use and/or modification from its original design, free of charge. And these are usually available under a license defined by the Open Source Initiative.
The document provides information about manual testing processes and concepts. It discusses 1) why manual testing is chosen as a career, 2) the skills needed to get a manual testing job, 3) when testing occurs in the software development lifecycle, and 4) the different types and levels of testing. It also defines key terms like requirements documents, test cases, defects, environments, and software development process models.
Kotlin Coroutines provide a new way to write asynchronous and concurrent code using suspending functions and structured concurrency. Coroutines avoid callbacks and allow sequencing of asynchronous code using async/await. Coroutines are lightweight threads that can be suspended and resumed. Channels allow coroutines to communicate and share data. Flows provide a reactive streams API for coroutines. Kotlin coroutines offer improvements over other asynchronous programming models like callbacks and RxJava.
Data-driven testing is a methodology where test input and output values are read from external data sources like files or databases. A single test script can be used to execute multiple test cases by varying the test data. Maveryx is a tool that supports data-driven testing through features like intelligent object recognition, separation of test logic from data, and reading test data from sources like Excel. The document provides an overview of data-driven testing and examples of how to create a data-driven test script using Maveryx.
Spring Framework 4 is an open source application framework for Java. It was created to make enterprise Java development easier by promoting best practices. Some key features of Spring include dependency injection for loose coupling, declarative transactions, and aspect oriented programming for separation of concerns. The Spring framework uses an inversion of control container and aspect-oriented programming to configure and manage objects.
Conformiq is a company that provides automated test design software. Their flagship product, Conformiq Designer, automatically generates test cases from system models. The tutorial discusses automated test design and how it addresses challenges with manual test design such as missed tests and redundant tests. It then provides an overview of Conformiq Designer, how it works by generating tests from models of the system specification, and the benefits this approach provides such as improved productivity, quality, and maintenance of tests. A walkthrough example is given of using Conformiq Designer to automatically generate tests for a SIP user agent from a model based on the relevant RFC standard.
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...Chris Richardson
Modern, cloud-native applications typically use a microservices architecture in conjunction with NoSQL and/or sharded relational databases. However, in order to successfully use this approach you need to solve some distributed data management problems including how to maintain consistency between multiple databases without using 2PC.
In this talk you will learn more about these issues and how to solve them by using an event-driven architecture. We will describe how event sourcing and Command Query Responsibility Segregation (CQRS) are a great way to realize an event-driven architecture. You will learn about a simple yet powerful approach for building, modern, scalable applications.
Software Test automation tools are available under several categories such as commercial, free software, open source software and etc. In this paper Open Source Software Testing Tools will be discussed.
Open source software test automation tools may be practical alternatives to popular closed-source commercial applications and some open source tools offers features or performance benefits that exceed their commercial counterparts. The source code is openly published for use and/or modification from its original design, free of charge. And these are usually available under a license defined by the Open Source Initiative.
The document provides information about manual testing processes and concepts. It discusses 1) why manual testing is chosen as a career, 2) the skills needed to get a manual testing job, 3) when testing occurs in the software development lifecycle, and 4) the different types and levels of testing. It also defines key terms like requirements documents, test cases, defects, environments, and software development process models.
Kotlin Coroutines provide a new way to write asynchronous and concurrent code using suspending functions and structured concurrency. Coroutines avoid callbacks and allow sequencing of asynchronous code using async/await. Coroutines are lightweight threads that can be suspended and resumed. Channels allow coroutines to communicate and share data. Flows provide a reactive streams API for coroutines. Kotlin coroutines offer improvements over other asynchronous programming models like callbacks and RxJava.
Data-driven testing is a methodology where test input and output values are read from external data sources like files or databases. A single test script can be used to execute multiple test cases by varying the test data. Maveryx is a tool that supports data-driven testing through features like intelligent object recognition, separation of test logic from data, and reading test data from sources like Excel. The document provides an overview of data-driven testing and examples of how to create a data-driven test script using Maveryx.
Spring Framework 4 is an open source application framework for Java. It was created to make enterprise Java development easier by promoting best practices. Some key features of Spring include dependency injection for loose coupling, declarative transactions, and aspect oriented programming for separation of concerns. The Spring framework uses an inversion of control container and aspect-oriented programming to configure and manage objects.
Conformiq is a company that provides automated test design software. Their flagship product, Conformiq Designer, automatically generates test cases from system models. The tutorial discusses automated test design and how it addresses challenges with manual test design such as missed tests and redundant tests. It then provides an overview of Conformiq Designer, how it works by generating tests from models of the system specification, and the benefits this approach provides such as improved productivity, quality, and maintenance of tests. A walkthrough example is given of using Conformiq Designer to automatically generate tests for a SIP user agent from a model based on the relevant RFC standard.
Under certain conditions, Symfony can be used successfully in a microservices architecture. Symfony works best when services start large and decompose over time into bounded contexts, rather than starting with many small services. Key considerations include using minimal Symfony configurations, domain-driven design principles to map services to contexts, handling failures through circuit breakers, and focusing on behavior-driven development and integration testing between services. While Symfony introduces more complexity than micro frameworks, these strategies can help address issues of over-decomposition when applying it to microservices.
This document discusses the importance of testing in Django and provides examples of how to write tests. It describes how the Pinax project added tests after users were able to incorrectly edit ticket statuses. It recommends writing unit tests using the Django testing framework and provides a pattern for organizing and writing tests, including setting up test data and individual test methods. The document emphasizes that code without tests is "broken by design" and that writing tests improves code quality and avoids embarrassment.
This document provides an introduction to unit testing and mocking. It discusses the benefits of unit testing such as safer refactoring and value that increases over time. It provides a recipe for setting up a unit test project with test classes and methods using AAA syntax. It also covers what mocking is and how to use mocking frameworks to create fake dependencies and check interactions. Resources for learning more about unit testing and related tools are provided.
This document discusses Single Page Applications (SPAs) and the JavaScript framework Backbone.js. It defines SPAs as web apps that handle interactions on the client-side without needing to reach the server. The document discusses why SPAs are useful for providing a fluid user experience but can increase code complexity. It introduces Backbone components like Models, Collections, Views and the Router that help manage this complexity by enforcing structure and separating concerns. Examples are provided of how to decompose user interfaces into Views and use Backbone to encapsulate state, add routing, and follow best practices like view-model associations and event-driven communication between components.
This document discusses the flyweight design pattern. It begins by defining design patterns as reusable solutions to common software design problems. It then defines the flyweight pattern specifically as a structural pattern that reuses similar objects by storing them and creating new objects only when no match is found. Key advantages are reducing the number of objects and memory usage. The flyweight pattern should be used when there are many objects and storage costs are high. It separates object state into intrinsic and extrinsic parts.
This document provides an overview of SoapUI, an open source functional testing tool for API testing. SoapUI was developed in 2005 and acquired by SmartBear in 2011. It is a cross-platform desktop application used for functional testing, security testing, load testing, and more of web services. Key features include support for protocols like HTTP and HTTPS, service mocking, functional testing, performance testing, security testing, and integrations with IDEs. Advantages listed are its simple interface, cost effectiveness, support for standards, and ability to generate many tests. Disadvantages include some additional work required and differences between live and mocked environments. Competitors include FitNesse and QTP.
The document contains responses to questions about software testing terms and concepts. Key points discussed include:
- Cyclomatic complexity is a white box testing type that analyzes the complexity of code.
- Monkey testing tests software without test cases by randomly interacting with screens and inputs to find bugs.
- Severity refers to a bug's seriousness while priority refers to which bug should be fixed first.
- A login screen bug example is provided where severity is low but priority is high due to usability issues.
- System testing is a type of black box testing that tests the full application and includes functionality, regression, and performance testing.
This document provides an overview of unit testing and isolation frameworks. It defines key concepts like units, unit tests, stubs, mocks and isolation frameworks. It explains that the goal of unit tests is to test individual units of code in isolation by replacing dependencies with stubs or mocks. It also discusses different isolation frameworks like Rhino Mocks and Moq that make it easier to dynamically create stubs and mocks without writing implementation code. The document covers different styles of isolation like record-and-replay and arrange-act-assert. It emphasizes best practices like having one mock per test and using stubs for other dependencies being tested.
Science and Engineering
Discover
Relationships that exist but are not found
Formulas; chemical composition, d=r*t; calories in fats, carbohydrates, proteins; experimentation;
Astrophysics – origins of the universe
Build
Apply principles of science and mathematics to real needs, commodities, structures, products, etc.
Software Engineering; Software Development
The document provides an overview of .NET, including:
1) .NET is a platform and vision for software development that includes frameworks, languages and services.
2) The .NET Framework includes common language runtime, libraries and compilers that support multiple languages.
3) Web services are programmable application components accessible via standard web protocols that are central to .NET.
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
Slides da palestra de introdução ao Robot Framework - Framework de automação de testes baseado em keyword-driven. Apresentado no evento 6º GUTS-SC em 28/11/2017.
This document discusses object-oriented programming in JavaScript. It covers built-in objects like Object, Function, and Array. It also discusses creating custom objects using constructor functions and prototypes. Constructor functions allow initializing object state, while prototypes allow defining shared object behavior. JavaScript uses prototypal inheritance, where an object inherits directly from another object instance.
Nowadays we all seem to be working with small independent services that need to talk with numerous other services. This is a problem because when developing your service, you need to have a working environment—but bringing up all your dependencies is often not an option.
In this talk, I will take you through our journey of creating a mock server to increase dev speed, and how it allowed us to write better tests.
This document discusses Command Query Responsibility Segregation (CQRS), a pattern for building scalable, multi-user systems. CQRS separates commands and queries by using different models for updates and reads. This allows optimization of read and write operations independently to improve scalability. The document outlines common CQRS components like commands, events, and persistent view models, and provides guidelines for when to use CQRS, such as for large, distributed systems with complex business logic.
Thread allows running code on a background thread but cannot directly update the UI. Handler allows scheduling messages and runnables to execute on a thread's message queue. AsyncTask simplifies background threading by running background work on a separate thread and publishing results on the UI thread.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
John Beyler's .NET portfolio includes several projects building out layers for a retail business including interfaces, classes, and entity models. He developed a library management system in phases, first creating a Windows frontend with basic functions then adding features like validation, stored procedures, and converting the frontend to web. Security was added to restrict access by user role. The portfolio outlined 6 projects totaling over 240 hours of work and 13,000+ lines of C# code.
Developing A Real World Logistic Application With Oracle Application - UKOUG ...Roel Hartman
This document summarizes the development of a real-world logistic application using Oracle Application Express (APEX) for a client. It describes enhancing the existing application by replacing forms with APEX, including adding direct validation, replacing the calendar with jQuery, showing descriptions for codes, and improving the list of values functionality. The presentation provides examples of implementing these enhancements in APEX.
Under certain conditions, Symfony can be used successfully in a microservices architecture. Symfony works best when services start large and decompose over time into bounded contexts, rather than starting with many small services. Key considerations include using minimal Symfony configurations, domain-driven design principles to map services to contexts, handling failures through circuit breakers, and focusing on behavior-driven development and integration testing between services. While Symfony introduces more complexity than micro frameworks, these strategies can help address issues of over-decomposition when applying it to microservices.
This document discusses the importance of testing in Django and provides examples of how to write tests. It describes how the Pinax project added tests after users were able to incorrectly edit ticket statuses. It recommends writing unit tests using the Django testing framework and provides a pattern for organizing and writing tests, including setting up test data and individual test methods. The document emphasizes that code without tests is "broken by design" and that writing tests improves code quality and avoids embarrassment.
This document provides an introduction to unit testing and mocking. It discusses the benefits of unit testing such as safer refactoring and value that increases over time. It provides a recipe for setting up a unit test project with test classes and methods using AAA syntax. It also covers what mocking is and how to use mocking frameworks to create fake dependencies and check interactions. Resources for learning more about unit testing and related tools are provided.
This document discusses Single Page Applications (SPAs) and the JavaScript framework Backbone.js. It defines SPAs as web apps that handle interactions on the client-side without needing to reach the server. The document discusses why SPAs are useful for providing a fluid user experience but can increase code complexity. It introduces Backbone components like Models, Collections, Views and the Router that help manage this complexity by enforcing structure and separating concerns. Examples are provided of how to decompose user interfaces into Views and use Backbone to encapsulate state, add routing, and follow best practices like view-model associations and event-driven communication between components.
This document discusses the flyweight design pattern. It begins by defining design patterns as reusable solutions to common software design problems. It then defines the flyweight pattern specifically as a structural pattern that reuses similar objects by storing them and creating new objects only when no match is found. Key advantages are reducing the number of objects and memory usage. The flyweight pattern should be used when there are many objects and storage costs are high. It separates object state into intrinsic and extrinsic parts.
This document provides an overview of SoapUI, an open source functional testing tool for API testing. SoapUI was developed in 2005 and acquired by SmartBear in 2011. It is a cross-platform desktop application used for functional testing, security testing, load testing, and more of web services. Key features include support for protocols like HTTP and HTTPS, service mocking, functional testing, performance testing, security testing, and integrations with IDEs. Advantages listed are its simple interface, cost effectiveness, support for standards, and ability to generate many tests. Disadvantages include some additional work required and differences between live and mocked environments. Competitors include FitNesse and QTP.
The document contains responses to questions about software testing terms and concepts. Key points discussed include:
- Cyclomatic complexity is a white box testing type that analyzes the complexity of code.
- Monkey testing tests software without test cases by randomly interacting with screens and inputs to find bugs.
- Severity refers to a bug's seriousness while priority refers to which bug should be fixed first.
- A login screen bug example is provided where severity is low but priority is high due to usability issues.
- System testing is a type of black box testing that tests the full application and includes functionality, regression, and performance testing.
This document provides an overview of unit testing and isolation frameworks. It defines key concepts like units, unit tests, stubs, mocks and isolation frameworks. It explains that the goal of unit tests is to test individual units of code in isolation by replacing dependencies with stubs or mocks. It also discusses different isolation frameworks like Rhino Mocks and Moq that make it easier to dynamically create stubs and mocks without writing implementation code. The document covers different styles of isolation like record-and-replay and arrange-act-assert. It emphasizes best practices like having one mock per test and using stubs for other dependencies being tested.
Science and Engineering
Discover
Relationships that exist but are not found
Formulas; chemical composition, d=r*t; calories in fats, carbohydrates, proteins; experimentation;
Astrophysics – origins of the universe
Build
Apply principles of science and mathematics to real needs, commodities, structures, products, etc.
Software Engineering; Software Development
The document provides an overview of .NET, including:
1) .NET is a platform and vision for software development that includes frameworks, languages and services.
2) The .NET Framework includes common language runtime, libraries and compilers that support multiple languages.
3) Web services are programmable application components accessible via standard web protocols that are central to .NET.
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
Slides da palestra de introdução ao Robot Framework - Framework de automação de testes baseado em keyword-driven. Apresentado no evento 6º GUTS-SC em 28/11/2017.
This document discusses object-oriented programming in JavaScript. It covers built-in objects like Object, Function, and Array. It also discusses creating custom objects using constructor functions and prototypes. Constructor functions allow initializing object state, while prototypes allow defining shared object behavior. JavaScript uses prototypal inheritance, where an object inherits directly from another object instance.
Nowadays we all seem to be working with small independent services that need to talk with numerous other services. This is a problem because when developing your service, you need to have a working environment—but bringing up all your dependencies is often not an option.
In this talk, I will take you through our journey of creating a mock server to increase dev speed, and how it allowed us to write better tests.
This document discusses Command Query Responsibility Segregation (CQRS), a pattern for building scalable, multi-user systems. CQRS separates commands and queries by using different models for updates and reads. This allows optimization of read and write operations independently to improve scalability. The document outlines common CQRS components like commands, events, and persistent view models, and provides guidelines for when to use CQRS, such as for large, distributed systems with complex business logic.
Thread allows running code on a background thread but cannot directly update the UI. Handler allows scheduling messages and runnables to execute on a thread's message queue. AsyncTask simplifies background threading by running background work on a separate thread and publishing results on the UI thread.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
John Beyler's .NET portfolio includes several projects building out layers for a retail business including interfaces, classes, and entity models. He developed a library management system in phases, first creating a Windows frontend with basic functions then adding features like validation, stored procedures, and converting the frontend to web. Security was added to restrict access by user role. The portfolio outlined 6 projects totaling over 240 hours of work and 13,000+ lines of C# code.
Developing A Real World Logistic Application With Oracle Application - UKOUG ...Roel Hartman
This document summarizes the development of a real-world logistic application using Oracle Application Express (APEX) for a client. It describes enhancing the existing application by replacing forms with APEX, including adding direct validation, replacing the calendar with jQuery, showing descriptions for codes, and improving the list of values functionality. The presentation provides examples of implementing these enhancements in APEX.
Flink Forward San Francisco 2022.
The Table API is one of the most actively developed components of Flink in recent time. Inspired by databases and SQL, it encapsulates concepts many developers are familiar with. It can be used with both bounded and unbounded streams in a unified way. But from afar it can be difficult to keep track of what this API is capable of and how it relates to Flink's other APIs. In this talk, we will explore the current state of Table API. We will show how it can be used as a batch processor, a changelog processor, or a streaming ETL tool with many built-in functions and operators for deduplicating, joining, and aggregating data. By comparing it to the DataStream API we will highlight differences and elaborate on when to use which API. We will demonstrate hybrid pipelines in which both APIs interact with one another and contribute their unique strengths. Finally, we will take a look at some of the most recent additions as a first step to stateful upgrades.
by
David Andreson
MongoDB Days UK: Using MongoDB and Python for Data Analysis PipelinesMongoDB
This document describes using MongoDB and Python for data analysis pipelines. It discusses using MongoDB for data storage and aggregation, connecting to MongoDB from Python using Monary and PyMongo, and using Python for data processing, analysis and visualization. It provides an example MongoDB aggregation query in Python to sum the population by state using Monary. It also shows an example Airflow DAG for running the aggregation query as part of a scheduled data pipeline with monitoring and dependencies.
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
From micro to macro-coordination through domain-centric DDL pipeline
Alex Khilko, CTO of PlayQ Inc.
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...apidays
apidays Paris 2022 - APIs the next 10 years: Software, Society, Sovereignty, Sustainability
December 14, 15 & 16, 2022
France Televisions : How we leverage API Platform for our content APIs
Georges-King Njock-Bôt, Freelance Symfony PHP Backend Developer
------
Check out our conferences at https://www.apidays.global/
Do you want to sponsor or talk at one of our conferences?
https://apidays.typeform.com/to/ILJeAaV8
Learn more on APIscene, the global media made by the community for the community:
https://www.apiscene.io
Explore the API ecosystem with the API Landscape:
https://apilandscape.apiscene.io/
Deep dive into the API industry with our reports:
https://www.apidays.global/industry-reports/
Subscribe to our global newsletter:
https://apidays.typeform.com/to/i1MPEW
What we learnt at carousell tw for golang gathering #31Ronald Hsu
The document discusses the architecture and design of a payment and shipping system built using Golang. It covers topics like code structure, dependency injection, microservices communication using gRPC, gRPC status codes, and some gRPC tricks. The system includes features like payment methods, address preferences, order requests, delivery tracking, and wallet/bank integration. It also discusses responsibilities of the payment system, potential issues to watch out for like import cycles and decoupling services, and concludes with recommendations on service design and performance.
How to grow GraphQL and remove SQLAlchemy and REST API from a high-load Pytho...Oleksandr Tarasenko
GraphQL is a new black, a hype over the Internet with a very few real-life examples of how to use it in big in-house projects. I’d like to show the real example of GraphQL Evolution from a small mobile API to a cross-services integration in a high-load Python project that took us 3 years to develop.
Description:
Intro to GraphQL in the Python world.
Step-by-step GraphQL evolution in a big high-load python project:
Step 1. Mobile App API with GraphQL
Step 2. Separate Frontend from Backend in high-load python project using GraphQL
Step 3. Graph services as Proxy via different Graph APIs
Step 4. Replace SqlAlchemy models via Graph
Step 5. Mutations in Graph API
Step 6. A brave new world with GraphQL
For every step, I will provide real examples (metrics, graphics, numbers), problems and solutions that we had during the years 2015 - 2019.
O365 Saturday - Deepdive SharePoint Client Side RenderingRiwut Libinuko
This document provides an agenda for a presentation on Client Side Rendering in SharePoint. It will include an introduction to CSR, a deep dive, and a demo. It discusses how CSR allows developers to modify specific areas of lists, forms, and views using JavaScript and UI templating, rather than having to redevelop entire features. This avoids issues like previous requests requiring full new features and redevelopment. The demo will cover overriding fields in views and forms, applying validation, and using JavaScript templating to modify display forms.
GraphQL - when REST API is not enough - lessons learnedMarcinStachniuk
This document discusses lessons learned from implementing GraphQL APIs. It begins by describing some limitations of REST APIs, such as requiring multiple roundtrips to fetch nested data. GraphQL is introduced as an alternative that allows clients to specify exactly what data they need in a single request. The document then covers various GraphQL concepts like queries, mutations, and type systems. It also discusses best practices like using a schema-first approach, pagination support, and the DataLoader library to solve the N+1 problem. Testing GraphQL APIs and integrating with Relay are also briefly outlined. The overall message is that GraphQL is a good alternative to REST when clients have complex data needs.
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
- GraphQL is an alternative to REST APIs that allows clients to specify exactly what data they need from the server in a single request.
- With REST, multiple roundtrips are often needed to fetch nested or related data, but GraphQL allows fetching this data in one request.
- The document discusses implementing GraphQL APIs with Java, including defining the schema, writing data fetchers, and supporting queries, mutations, and other GraphQL features. It also covers lessons learned about understanding abstractions and updating libraries.
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestJarek Potiuk
Apache Airflow is a platform to programmatically author, schedule and monitor workflows. Airflow is not a data streaming solution. Tasks do not move data from one to the other (though tasks can exchange metadata!). Airflow is not in the Spark Streaming or Storm space, it is more comparable to Oozie or Azkaban. It's primary goal is to solve problem nicely described in this XKCD comic (https://xkcd.com/2054/) What's unique about Airflow is that it brings "infrastructure as a code" concept to building scalable, manageable and elegant workflows. Workflows are defined as Python code - thus making dynamic workflow possible. It provides hundreds of out-of-the-box Operators that allow your pipeline to tap into pretty much any resource possible - starting from resources from multiple cloud providers as well as on-the-premises systems of yours. It's super-easy to write your own operators and leverage the power of data pipeline infrastructure provided by Airflow. This talk will be about general concepts behind Airflow - how you can author your workflow, write your own operators and run and monitor your pipelines. It will also explain how you can leverage Kubernetes (in recent release of Airflow) to make use of your on-premises or in-the-cloud infrastructure efficiently. You leave the talk armed with enough knowledge to evaluate if Airflow is good for you to solve your data pipeline problems and get some insight from Airflow contributors in case you are already an Airflow user.
This document discusses LINQ and the ADO.NET Entity Framework. It describes how LINQ provides a unified approach for accessing heterogeneous data sources like objects, XML, relational data, and more. The ADO.NET Entity Framework is the conceptual model for developing applications with LINQ to Entities, which uses LINQ to access Entity Framework data. LINQ to SQL and LINQ to Entities are designed for different scenarios when querying and updating data.
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Creating sub zero dashboard plugin for apex with googleRoel Hartman
Presentation about how to create a Google Visualization PlugIn for Oracle Application Express. Presentation given at ODTUG 2010, APEXPosed 2010 and UKOUG 2010.
Stanfy MadCode Meetup #11: Why do you need to switch from Obj-C to Swift, or ...Stanfy
MadCode Meetup is a monthly webinar held by Stanfy Team for knowledge sharing about mobile development.
This time Vitalii Malakhovskyi (@VitaliyMal), iOS Engineer at Stanfy, explains why do we need to switch from Obj-C to Swift, and talks about new features of ReactiveCocoa v4.
- what has been changed since ReactiveCocoa v2
- how to make CocoaTouch reactive
- a few words about MVVM architecture designed with ReactiveCocoa v4
Video from the presentation (rus): https://youtu.be/S-D04dz1tR4
Join our MadCode group on FB (rus): https://www.facebook.com/MadCodeMeetup/
Find more videos from MadCode Meetups (rus) : https://www.youtube.com/playlist?list=PLrplqd3YJvBvUygFkx4Xvx1p3zyiCgB9Q
Agile without technical practices isn't agilekevin_yeung
An conference talk I gave at AgileTour Bangkok 2013 on what agile really is, what agile isn't about, and how agile is possible only with technical practices.
ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V...Ortus Solutions, Corp
For a long time, some frontend Javascript frameworks have helped you with one or two styles of Apps, but Quasar is an amazing new VueJS framework that allows you to build Single Page Apps (SPA), Server-side Rendered Apps (SSR), Progressive Web Apps (PWA), Mobile Apps (Android and IOS) through Cordova as well as Multi-platform Desktop Apps using Electron. With the Quasar CLI, you can quickly start a project, and have a single code base that can output multiple formats, as needed. Come to this session and find out how.
The document discusses the importance of unit testing and describes how developers are returning to write good tests after cutting corners during economic difficulties. It provides examples of unit tests being written for an order management system using PHPUnit to test the createOrder method by mocking dependencies and asserting the return value.
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
This document discusses the limitations of REST APIs and how GraphQL addresses those limitations. It begins with examples of how REST APIs can result in underfetching or overfetching data and require multiple roundtrips. It then covers how GraphQL allows clients to specify exactly what data they need in a single request. The document also provides examples of GraphQL queries, mutations, variables, fragments and aliases that simplify data fetching compared to REST APIs.
User story slicing exercise, September 2020, at Cork Software Crafters.
Learn and practice how to break user stories into really thin vertical slices.
https://www.meetup.com/Cork-Software-Craftsmanship-Meetup/events/273188357/
The document describes an upcoming meetup by Cork Software Crafters on continuous delivery of non-breaking changes. It includes an agenda for the event with an introduction, hands-on exercise in groups, and retrospective. The exercise will involve discussing different scenarios for breaking code changes and steps to integrate them non-breakingly, such as UI, API, database changes. Advice is provided on approaches like feature toggles, parallel changes, and database evolution.
The document describes a meetup organized by Cork Software Crafters on breaking dependencies in legacy code. The meetup agenda includes a welcome from 6:15-6:30pm, an introduction from 6:30-6:45pm, hands-on time from 6:45-8:00pm, and a retrospective from 8:00pm to discuss solutions. The facilitator is Paulo Clavijo and participants are encouraged to suggest new topics and hands-on sessions for future meetups.
Legacy Code and Refactoring Workshop - Session 1 - October 2019Paulo Clavijo
The document discusses refactoring code to improve its structure and design. It provides examples of code with conditional logic based on an object's type. The examples show moving this conditional logic into subclass methods to better distribute the responsibilities. This polymorphic approach removes the need for conditionals and centralizes the logic with each object type. The author also shares references for further reading on refactoring techniques and code smells.
In this session, we discussed approaches for working with legacy untested code in a safe way.
We saw how Approval Testing and Mutation Testing techniques can be combined to quickly build a robust suite of characterization tests that enables us to refactor with confidence.
https://www.meetup.com/Cork-Software-Craftsmanship-Meetup/events/262255659/
TDD and Simple Design Workshop - Session 1 - March 2019Paulo Clavijo
The document discusses test-driven development (TDD) and simple design. It introduces TDD and some of its core practices, including test-driven development, simple design, refactoring, and pair programming. It provides an agenda for a workshop that will cover these topics over three sessions, including extreme programming (XP), the four elements of simple design, test doubles, outside-in TDD, and SOLID principles. The workshop aims to communicate best practices for using technical practices to succeed with agile development.
TDD and Simple Design Workshop - Session 1 - November 2018Paulo Clavijo
The document contains snippets of code and discussions around test-driven development (TDD) best practices. It discusses principles of TDD like writing tests first, keeping tests independent and self-contained, and refactoring code. It also provides examples of refactoring Java and Kotlin test code, including using custom assertions and organizing tests in arrange-act-assert blocks. Pair programming and software design principles like YAGNI, DRY and SOLID are also briefly mentioned.
A Test-Driven Development Refresher.
- Types of test doubles.
- How to create a test double manually or using a framework.
- Classic TDD vs Mockist TDD.
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018Paulo Clavijo
This document provides an introduction to context maps in domain-driven design. It discusses that while a single unified domain model is ideal, models typically fragment into multiple bounded contexts. Context maps identify each model and define the bounded context and points of contact between contexts. The document outlines several types of relationships between bounded contexts like shared kernel, customer/supplier, and anticorruption layer. It emphasizes that context maps should reflect the true practice of development teams.
ATDD - Desarrollo Dirigido por Test de AceptaciónPaulo Clavijo
Este documento introduce el concepto de Desarrollo Dirigido por Pruebas de Aceptación (ATDD). Explica que el ATDD implica discutir los criterios de aceptación con ejemplos y convertirlos en pruebas de aceptación concretas antes del desarrollo. También describe cómo Cucumber puede usarse para automatizar las pruebas de aceptación escritas en un lenguaje de dominio entendible para el cliente. Finalmente, resalta algunos beneficios del ATDD como reducir el tiempo perdido reprogramando.
Este documento presenta una introducción a los tests unitarios con JUnit 4. Explica conceptos como las clases de test, métodos de test, afirmaciones, métodos de configuración, runners de test y buenas prácticas. También incluye un ejemplo de cómo escribir tests unitarios para probar una clase Calculadora de Impuestos que implementa diferentes reglas de negocio.
Este documento introduce Spring Roo, una herramienta que mejora la productividad del desarrollo Java EE. Spring Roo permite generar rápidamente aplicaciones que siguen las mejores prácticas mediante una consola interactiva. El documento explica características como la generación de código, arquitectura, add-ons y provee un ejemplo demostrativo.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, 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.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Angular and Redux
1. Angular and Redux
Managing the state of your application with the Redux pattern
Paulo Clavijo Esteban
@pclavijo
Dell-EMC - May 2018
2. From AngularJS to Angular
- MVC Architecture
- Controllers
- Scope horrors
- Two-way binding
- Directives for each event
- Wrappers for libraries
- Component-Based Architecture
- Components
- @Inputs and @Outputs
- TypeScript
- Reactive with Observables RxJS
- CLI
- MVC Architecture
- Controllers
- Scope horrors
- Two-way binding
- Directives for each event
- Wrappers for libraries
Paulo Clavijo @pclavijo - May 2018
3. Container Component
Component-based Architecture
Container Component
Presentational Component
@Input/@Output
Presentational Component
@Input/@Output
Container
Component
Service
Service
Service
Service
Service
Container Component
Presentational Component
@Input/@Output
Presentational Component
@Input/@Output
Service
Paulo Clavijo @pclavijo - May 2018
4. Container Component
Component-based Architecture + Redux
Container Component
Presentational Component
@Input/@Output
Presentational Component
@Input/@Output
Container
Component
StoreContainer Component
Presentational Component
@Input/@Output
Presentational Component
@Input/@Output
ke l he l a n
Sta on g e l
Paulo Clavijo @pclavijo - May 2018
5. Store
Redux data flow
New State
Provider
Contract
Tests
Provider
Contract
Tests
ReducersActions
Paulo Clavijo @pclavijo - May 2018
Component
1) co n di t s
ac
2) re r a c e n t e
Selectors
3) s o p es d a
7. Reducers
homepageReducer(state, action) {
switch (action.type) {
case 'SHOW_SIDE_NAV':
return { ...state, showSideNav: true };
case 'HIDE_SIDE_NAV':
return { ...state, showSideNav: false };
default:
return state;
}
Paulo Clavijo @pclavijo - May 2018
8. State
Paulo Clavijo @pclavijo - May 2018
{
header: {
user: {
id: 'id-u1',
name: 'John Doe'
},
notifications: [ ]
},
tasksBoard: {
tasks: [
{ id: 'id-t1', name: 'Buy bread', done: false },
{ id: 'id-t2', name: 'Go to the gym', done: false }
],
isLoading: false
},
sideNav: {
show: false
}
}
Mod g o p ic o
s a n i t if n e
be n u n an p
mo s