Tracing Micro Services with OpenTracingHemant Kumar
Tracing in the world of micro services has become a standard with people using distributed tracers like Zipkin, Jaeger, Appdash etc. But, with so many different tracers, its confusing to choose one tracer and then painful to replace a tracer. That's where OpenTracing comes in. OT provides a consistent, vendor-neutral API to allow users to choose whatever distributed tracer they need and can change the tracer with just an O(1) operation.
Web technology is undergoing one of the biggest advancements; the proliferation of front-end JavaScript frameworks. From bettering user experience to improving performance and productivity, front-end frameworks are transforming web and mobile app development. How to choose a front-end framework for your application? The answer is a click away.
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkTimothy Spann
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
20-Feb-2024
In this talk, I will walk through how someone can set up and run continuous SQL queries against Kafka topics utilizing Apache Flink. We will walk through creating Kafka topics, schemas, and publishing data.
We will then cover consuming Kafka data, joining Kafka topics, and inserting new events into Kafka topics as they arrive. This basic overview will show hands-on techniques, tips, and examples of how to do this.
Tim Spann
Tim Spann is the Principal Developer Advocate for Data in Motion @ Cloudera where he works with Apache Kafka, Apache Flink, Apache NiFi, Apache Iceberg, TensorFlow, Apache Spark, big data, the IoT, machine learning, and deep learning. Tim has over a decade of experience with the IoT, big data, distributed computing, streaming technologies, and Java programming. Previously, he was a Developer Advocate at StreamNative, Principal Field Engineer at Cloudera, a Senior Solutions Architect at AirisData and a senior field engineer at Pivotal. He blogs for DZone, where he is the Big Data Zone leader, and runs a popular meetup in Princeton on big data, the IoT, deep learning, streaming, NiFi, the blockchain, and Spark. Tim is a frequent speaker at conferences such as IoT Fusion, Strata, ApacheCon, Data Works Summit Berlin, DataWorks Summit Sydney, and Oracle Code NYC. He holds a BS and MS in computer science.
Tracing Micro Services with OpenTracingHemant Kumar
Tracing in the world of micro services has become a standard with people using distributed tracers like Zipkin, Jaeger, Appdash etc. But, with so many different tracers, its confusing to choose one tracer and then painful to replace a tracer. That's where OpenTracing comes in. OT provides a consistent, vendor-neutral API to allow users to choose whatever distributed tracer they need and can change the tracer with just an O(1) operation.
Web technology is undergoing one of the biggest advancements; the proliferation of front-end JavaScript frameworks. From bettering user experience to improving performance and productivity, front-end frameworks are transforming web and mobile app development. How to choose a front-end framework for your application? The answer is a click away.
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkTimothy Spann
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
20-Feb-2024
In this talk, I will walk through how someone can set up and run continuous SQL queries against Kafka topics utilizing Apache Flink. We will walk through creating Kafka topics, schemas, and publishing data.
We will then cover consuming Kafka data, joining Kafka topics, and inserting new events into Kafka topics as they arrive. This basic overview will show hands-on techniques, tips, and examples of how to do this.
Tim Spann
Tim Spann is the Principal Developer Advocate for Data in Motion @ Cloudera where he works with Apache Kafka, Apache Flink, Apache NiFi, Apache Iceberg, TensorFlow, Apache Spark, big data, the IoT, machine learning, and deep learning. Tim has over a decade of experience with the IoT, big data, distributed computing, streaming technologies, and Java programming. Previously, he was a Developer Advocate at StreamNative, Principal Field Engineer at Cloudera, a Senior Solutions Architect at AirisData and a senior field engineer at Pivotal. He blogs for DZone, where he is the Big Data Zone leader, and runs a popular meetup in Princeton on big data, the IoT, deep learning, streaming, NiFi, the blockchain, and Spark. Tim is a frequent speaker at conferences such as IoT Fusion, Strata, ApacheCon, Data Works Summit Berlin, DataWorks Summit Sydney, and Oracle Code NYC. He holds a BS and MS in computer science.
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red HatHostedbyConfluent
Apache Kafka is getting used as an event backbone in new organizations everyday. We would love to send every byte of data through the event bus. Like traditional REST APIs a contract-first approach is very useful when designing event-driven architectures. In the case of asynchronous APIs, we have the AsynAPI specification to document the endpoints where the schema of the records become the main part of the contract payload. Microcks allows us to deploy a testing and mocking platform to have a unified view of the endpoints to speed-up application delivery.
Python/Flask is one of the most popular choices for Developers when it comes to creating a Web Application. Learn how you can get started with making your Web Application using Python and Flask in this presentation.
Here are Github links for Sample Application that we Demonstrated -
https://github.com/mohanrohit/reading-list-api
https://github.com/mohanrohit/reading-list-web
(Powered by www.DeepDiveEducation.com)
ChatGPT and not only: how can you use the power of Generative AI at scaleMaxim Salnikov
Join this session to get all the answers about how ChatGPT and other LLM models can be applied to your current or future project. We'll start by putting in order all the terms - OpenAI, GPT-3, ChatGPT, Codex, Dall-E, etc. - and explain why Microsoft and Azure are often mentioned in this context. Then, we'll go through the main capabilities of the Azure OpenAI and respective usecases that might inspire you to either optimize your product or build a completely new one.
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingVMware Tanzu
SpringOne 2021
Session Title: Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Speakers: Marc DiPasquale, Developer Advocate at Solace; Mark Sailes, Specialist Solutions Architect, Serverless at Amazon Web Services; Oleg Zhurakousky, Developer at VMware
This talk shares the various techniques I found whilst building the XSS cheat sheet. It contains auto executing vectors, AngularJS CSP bypasses and dangling markup attacks.
Swagger is an open source software framework backed by
a large ecosystem of tools that helps developers
design, build, document and consume RESTful Web
services.
Spring Weblfux. I have given this talk several times but in San Antonio JUG is where I think I have explained better this topic. An introduction to the reactive concepts on how Spring and Project Reactor implement them for Reactive web with Spring Webflux.
Build an LLM-powered application using LangChain.pdfAnastasiaSteele10
LangChain is an advanced framework that allows developers to create language model-powered applications. It provides a set of tools, components, and interfaces that make building LLM-based applications easier. With LangChain, managing interactions with language models, chaining together various components, and integrating resources like APIs and databases is a breeze. The platform includes a set of APIs that can be integrated into applications, allowing developers to add language processing capabilities without having to start from scratch.
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
It's quite ironic that to interact with the most advanced AI in our history - Large Language Models: ChatGPT, etc. - we must use human language, not programming one. But how to get the most out of this dialogue i.e. how to create robust and efficient prompts so AI returns exactly what's needed for your solution on the first try? After my session, you can add the Junior (at least) Prompt Engineer skill to your CV: I will introduce Prompt Engineering as an emerging discipline with its own methodologies, tools, and best practices. Expect lots of examples that will help you to write ideal prompts for all occasions.
This session is based on my research and experiments in Prompt Engineering and is 100% relevant for cloud developers who investigate adding some LLM-powered features to their solutions. It's a guide to building proper prompts for AI to get desired results fast and cost-efficient.
QuickStart your Sumo Logic service with this exclusive webinar. At these monthly live events you will learn how to capitalize on critical capabilities that can amplify your log analytics and monitoring experience while providing you with meaningful business and IT insights.
Live Webinar is found here: https://youtu.be/Q1yWlInxWVs
about mutation testing and demonstration of muJava. muJava is automated tool for mutation testing of java programs. It tests the test cases. hence good to enhance and checking effectiveness of your test suites.
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red HatHostedbyConfluent
Apache Kafka is getting used as an event backbone in new organizations everyday. We would love to send every byte of data through the event bus. Like traditional REST APIs a contract-first approach is very useful when designing event-driven architectures. In the case of asynchronous APIs, we have the AsynAPI specification to document the endpoints where the schema of the records become the main part of the contract payload. Microcks allows us to deploy a testing and mocking platform to have a unified view of the endpoints to speed-up application delivery.
Python/Flask is one of the most popular choices for Developers when it comes to creating a Web Application. Learn how you can get started with making your Web Application using Python and Flask in this presentation.
Here are Github links for Sample Application that we Demonstrated -
https://github.com/mohanrohit/reading-list-api
https://github.com/mohanrohit/reading-list-web
(Powered by www.DeepDiveEducation.com)
ChatGPT and not only: how can you use the power of Generative AI at scaleMaxim Salnikov
Join this session to get all the answers about how ChatGPT and other LLM models can be applied to your current or future project. We'll start by putting in order all the terms - OpenAI, GPT-3, ChatGPT, Codex, Dall-E, etc. - and explain why Microsoft and Azure are often mentioned in this context. Then, we'll go through the main capabilities of the Azure OpenAI and respective usecases that might inspire you to either optimize your product or build a completely new one.
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingVMware Tanzu
SpringOne 2021
Session Title: Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Speakers: Marc DiPasquale, Developer Advocate at Solace; Mark Sailes, Specialist Solutions Architect, Serverless at Amazon Web Services; Oleg Zhurakousky, Developer at VMware
This talk shares the various techniques I found whilst building the XSS cheat sheet. It contains auto executing vectors, AngularJS CSP bypasses and dangling markup attacks.
Swagger is an open source software framework backed by
a large ecosystem of tools that helps developers
design, build, document and consume RESTful Web
services.
Spring Weblfux. I have given this talk several times but in San Antonio JUG is where I think I have explained better this topic. An introduction to the reactive concepts on how Spring and Project Reactor implement them for Reactive web with Spring Webflux.
Build an LLM-powered application using LangChain.pdfAnastasiaSteele10
LangChain is an advanced framework that allows developers to create language model-powered applications. It provides a set of tools, components, and interfaces that make building LLM-based applications easier. With LangChain, managing interactions with language models, chaining together various components, and integrating resources like APIs and databases is a breeze. The platform includes a set of APIs that can be integrated into applications, allowing developers to add language processing capabilities without having to start from scratch.
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
It's quite ironic that to interact with the most advanced AI in our history - Large Language Models: ChatGPT, etc. - we must use human language, not programming one. But how to get the most out of this dialogue i.e. how to create robust and efficient prompts so AI returns exactly what's needed for your solution on the first try? After my session, you can add the Junior (at least) Prompt Engineer skill to your CV: I will introduce Prompt Engineering as an emerging discipline with its own methodologies, tools, and best practices. Expect lots of examples that will help you to write ideal prompts for all occasions.
This session is based on my research and experiments in Prompt Engineering and is 100% relevant for cloud developers who investigate adding some LLM-powered features to their solutions. It's a guide to building proper prompts for AI to get desired results fast and cost-efficient.
QuickStart your Sumo Logic service with this exclusive webinar. At these monthly live events you will learn how to capitalize on critical capabilities that can amplify your log analytics and monitoring experience while providing you with meaningful business and IT insights.
Live Webinar is found here: https://youtu.be/Q1yWlInxWVs
about mutation testing and demonstration of muJava. muJava is automated tool for mutation testing of java programs. It tests the test cases. hence good to enhance and checking effectiveness of your test suites.
Must.kill.mutants. TopConf Tallinn 2016Gerald Muecke
Mutation Testing has been around for almost 20 years. Originated in academic research it has found its way into the developer’s toolbox being easy to setup, use and producing valuable results. But what is mutation testing? It’s a practice to determine the actual value of an automated test suite and automatically explore parts of the code that have yet been untested, unveiling surprises even to experienced test automation developers. Given a test suite that runs successfully, mutation testing will inject changes to the production code based on a set of rules and reruns the test to determine if the test will fail. Depending on the size of the code base the execution time increases exponentially due to the sheer amount of permutations, requiring thorough planning, focus and prioritization.
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...TEST Huddle
We often claim the purpose of testing is to verify that software meets a desired level of quality. Frequently, the term “testing” is associated with checking for functional correctness. However, in large, complex software systems with an established user-base, it is also important to verify system constraints such as backward compatibility, reliability, security, accessibility, usability. Kim Herzig from Microsoft explores these issues with the latest webinar on test Huddle.
Making the Unstable Stable - An Intro To TestingCameron Presley
Does it always seem like bugs you've fixed keep coming back? Does it seem like when you fix one bug, two more crop up? What if I were to tell you there's a better way?
In this presentation, we're going to explore how to make a code base more stable by using automated testing. To start, we'll explore the business case of why you should be writing tests by looking at industry studies and personal experience. From there, we'll look at the fundamentals of testing by talking about the pros/cons of unit, integration, and UI testing. Finally, we'll look at some resources to learn how to write tests.
Intended for developers who are new to testing, by the end of this presentation, you will understand why you should write tests, and will have the concepts and tools to get started.
Prerequisites
Some knowledge with an Object-Oriented language would be beneficial, but not required.
Mutation testing has been evolving into a real candidate to become the de facto metric for assessing the quality of a test suite, defying the throne that has been occupied by code coverage until now.
The concept of mutation testing is quite simple: mutations are introduced on the codebase and the test suite is run against the mutated code. If your test suite is strong, then it should catch the mutation, by having at least one test failing.
In this talk I plan to show how coverage by itself doesn't guarantee quality on the test suite, and how mutation testing can effectively find bugs on your code and tests.
Kill the mutants and test your tests - Roy van RijnNLJUG
Quis custodiet ipsos custodes? Better known as: *Who watches the watchmen?* We are all writing tests, doing TDD, BDD. We measure the quality of the tests with line coverage or (even better) branch coverage. This gives you a false sense of security. I've seen projects with tests which have 100% branch coverage but not a single assertion! This is where mutation testing helps out. By creating broken mutated instances of your codebase (mutants) this should result in failing unit tests. This way we can verify that slight code changes (like real life bugs) actually break your tests. In this talk I'll explain what mutation testing is and how it works. We'll also compare some Java frameworks (PIT, Jester, Jumble) that enable automatic mutation testing in your continuous build and how you can start doing mutation testing *right now*.
Unit testing and test-driven development are practices that makes it easy and efficient to create well-structured and well-working code. However, many software projects didn't create unit tests from the beginning.
In this presentation I will show a test automation strategy that works well for legacy code, and how to implement such a strategy on a project. The strategy focuses on characterization tests and refactoring, and the slides contain a detailed example of how to carry through a major refactoring in many tiny steps
London Salesforce Developer January 2022Keir Bowden
Slide deck from the London Salesforce Developers January 2022 get together to showcase and discuss developer features in the upcoming Salesforce Spring 22 release.
London Salesforce Developers TDX 20 Global GatheringKeir Bowden
Slide deck from the London Salesforce Developers Virtual TrailheaDX 2020 Global Gathering, covering the key announcements from a developer perspective.
Slide deck from my talk at the London Salesforce Developers March meetup on using the Salesforce CLI to retrieve and deploy metadata, run tests, retrieve and update data and create metadata.
London's Calling 2018 - No Connection, No ProblemKeir Bowden
Slide deck from my talk at London's Calling 2018 on mobile application development with offline access to data, including the Salesforce Mobile SDK and SmartStore.
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfFlorence Consulting
Quattordicesimo Meetup di Milano, tenutosi a Milano il 23 Maggio 2024 dalle ore 17:00 alle ore 18:30 in presenza e da remoto.
Abbiamo parlato di come Axpo Italia S.p.A. ha ridotto il technical debt migrando le proprie APIs da Mule 3.9 a Mule 4.4 passando anche da on-premises a CloudHub 1.0.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
Understanding User Behavior with Google Analytics.pdfSEO Article Boost
Unlocking the full potential of Google Analytics is crucial for understanding and optimizing your website’s performance. This guide dives deep into the essential aspects of Google Analytics, from analyzing traffic sources to understanding user demographics and tracking user engagement.
Traffic Sources Analysis:
Discover where your website traffic originates. By examining the Acquisition section, you can identify whether visitors come from organic search, paid campaigns, direct visits, social media, or referral links. This knowledge helps in refining marketing strategies and optimizing resource allocation.
User Demographics Insights:
Gain a comprehensive view of your audience by exploring demographic data in the Audience section. Understand age, gender, and interests to tailor your marketing strategies effectively. Leverage this information to create personalized content and improve user engagement and conversion rates.
Tracking User Engagement:
Learn how to measure user interaction with your site through key metrics like bounce rate, average session duration, and pages per session. Enhance user experience by analyzing engagement metrics and implementing strategies to keep visitors engaged.
Conversion Rate Optimization:
Understand the importance of conversion rates and how to track them using Google Analytics. Set up Goals, analyze conversion funnels, segment your audience, and employ A/B testing to optimize your website for higher conversions. Utilize ecommerce tracking and multi-channel funnels for a detailed view of your sales performance and marketing channel contributions.
Custom Reports and Dashboards:
Create custom reports and dashboards to visualize and interpret data relevant to your business goals. Use advanced filters, segments, and visualization options to gain deeper insights. Incorporate custom dimensions and metrics for tailored data analysis. Integrate external data sources to enrich your analytics and make well-informed decisions.
This guide is designed to help you harness the power of Google Analytics for making data-driven decisions that enhance website performance and achieve your digital marketing objectives. Whether you are looking to improve SEO, refine your social media strategy, or boost conversion rates, understanding and utilizing Google Analytics is essential for your success.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
12. Quis custodiet ipsos custodes?
Who will guard the guards themselves?
How do you tests your tests?
Changing code should cause test failures
Enter the mutants!
14. 1. Competent Programmer
● Code is close to correct
● Most faults are simple mistakes
2. Coupling Effects
● Simple faults are coupled to complex faults
● Fixing simple faults will fix complex faults
● Tests that detect mutants would also detect real bugs
Two Hypotheses
15. Fault based testing - intentionally break code
1. Test original class
2. Create mutant class - change one aspect
3. Test mutant class
4. Compare test results
“Open Box” testing - knows about internals
Mutation testing
R. Lipton, “Fault Diagnosis of Computer Programs”, Student Report, Carnegie Mellon University, 1971
17. Mutant Killed
● Changing code breaks tests
● Mutant is covered by test case
Mutant Survived
● Changing code did not break test
● Mutant is not covered by test case, or
● Mutant is equivalent to original class
Mutation Testing
21. One change per mutant
Avoid multiple mutations of the same line
Limit mutations of a single class
Large test suite means fewer mutants
● Target specific classes
Generating Mutants
22. Generate new mutants for each cycle
● They can’t get any deader
● Avoids maintenance overhead
Chance of regenerating identical mutants
● Change tactics
● Target only updated files
Generating Mutants
23. Computationally expensive
For each mutant
● Replace original code
● Deploy mutant
● Run entire test suite
● Restore original code
Execute, evaluate, repeat
● Execute every mutant, every time
Executing Mutants
24. Some mutants will not deploy
● Not a weakness of tests
● Developers should spot this!
● Continuous integration will catch this
Suppress (aka delete) them
Executing Mutants
25. Expensive
● Human Oracle required
● Manual checks for all survivors
Suppress equivalents
Calculate mutation score
● Indicator of test quality
Fix tests
● Ensure original code is still green
Evaluating, or Counting the Bodies
killed mutants
total mutants
Mutation Score
* 100
26. Well suited to automation
● What changes is less important than something changed
● Simple “mistakes” introduced
● Coupling effect says real bugs would be found
Repeated deploy/execute tests
Automation
27. New scratch org for cycle
Source tracking detects changes
● Replace production class with mutant on filesystem
● Reverse after testing
CLI to push source and run tests
SFDX is Key
34. Allow sufficient time
Easier with smaller files
● Fewer mutants
Mutation scores won’t surprise you!
● Lots of test effort = high score
● Focus on coverage = low score
Key Learnings
35. Mutation test at the end of development
Automatically generated perform as well as hand crafted
Constants are less helpful than expected
● Tests typically reference production values
Removing DML didn’t break tests
● Tendency to check returned value over database contents
Key Learnings
36. Key Learnings
Pros Cons
Detect untested code Vast number of potential mutants
Measurable mutation score Manual verification of surviving mutants
Improve test suite quality Full test run for each mutant
Tests how the code doesn’t work Knowledge of code internals required
37. CLI Plug-in on NPM - https://bobbuzz.me.uk/mutationplugin
sfdx plugins:install bbmutation
Source on Github - https://bobbuzz.me.uk/mutationsrc
Resources