This talk was given in underscore meetup in Tel Aviv in 24/06
-------
There is no doubt that Unit tests are an essential part of the development process today.
However, writing unit tests is a tedious and repetitive job that is often unrewarding since bugs slip away.
Property-based testing addresses these issues by providing a way to define laws and properties on your data types and generate tests to verify them.
Dor Sever is a software developer at bigpanda.io
These program are helpful for the beginners who are learning swift .It is helpful for BCA,MCA and B.Tech student for learning the array programs in swift
I am Samuel H. I am a Python Homework Expert at pythonhomeworkhelp.com. I hold a Master's in Computer Science from, the University of Alberta Canada. I have been helping students with their homework for the past 7 years. I solve homework related to Python.
Visit pythonhomeworkhelp.com or email support@pythonhomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with Python Homework.
These program are helpful for the beginners who are learning swift .It is helpful for BCA,MCA and B.Tech student for learning the array programs in swift
I am Samuel H. I am a Python Homework Expert at pythonhomeworkhelp.com. I hold a Master's in Computer Science from, the University of Alberta Canada. I have been helping students with their homework for the past 7 years. I solve homework related to Python.
Visit pythonhomeworkhelp.com or email support@pythonhomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with Python Homework.
Example of using Kotlin lang features for writing DSL for Spark-Cassandra connector. Comparison Kotlin lang DSL features with similar features in others JVM languages (Scala, Groovy).
A tour of Python: slides from presentation given in 2012.
[Some slides are not properly rendered in SlideShare: the original is still available at http://www.aleksa.org/2015/04/python-presentation_7.html.]
This presentation takes you on a functional programming journey, it starts from basic Scala programming language design concepts and leads to a concept of Monads, how some of them designed in Scala and what is the purpose of them
Type classes 101 - classification beyond inheritanceAlexey Raga
Inheritance and interfaces implementation are often used in languages like Java in order to express "Is-a" and "Can-do" capabilities. In Scala we can do better by separating these concerns using the concept of type classes.
Using observability, logs, metrics and traces as a data source for supervised and reinforcement machine learning techniques with a goal to optimize large scale systems.
Example of using Kotlin lang features for writing DSL for Spark-Cassandra connector. Comparison Kotlin lang DSL features with similar features in others JVM languages (Scala, Groovy).
A tour of Python: slides from presentation given in 2012.
[Some slides are not properly rendered in SlideShare: the original is still available at http://www.aleksa.org/2015/04/python-presentation_7.html.]
This presentation takes you on a functional programming journey, it starts from basic Scala programming language design concepts and leads to a concept of Monads, how some of them designed in Scala and what is the purpose of them
Type classes 101 - classification beyond inheritanceAlexey Raga
Inheritance and interfaces implementation are often used in languages like Java in order to express "Is-a" and "Can-do" capabilities. In Scala we can do better by separating these concerns using the concept of type classes.
Using observability, logs, metrics and traces as a data source for supervised and reinforcement machine learning techniques with a goal to optimize large scale systems.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
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.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
19. class FolderCountersSpec extends TestSpec {
"addToCounters" should {
"increment the Active count by 1 when adding an Active alert" in {}
"increment the Shared count by 1 when adding a Shared alert" in {}
"increment the Resolved count by 1 when adding a Resolved alert" in {}
"increment all folders counts by 1 when adding alert that sits on all folders" in {}
}
"removeFromCounters" should {
"decrement the Active count by 1 when removing an Active alert" in {}
"decrement the Shared count by 1 when removing a Shared alert" in {}
"decrement all counts by 1 when removing an alert that sits on all folders" in {}
}
}
19
20. class FolderCountersSpec extends TestSpec {
val emptyCounters = Map[Folder,Int]()
"addToCounters" should {
"increment the Active count by 1 when adding an Active alert" in {
val activeAlert =
Alert("High CPU in elastic 11", Set(Active))
addToCounters(emptyCounters, activeAlert) shouldEqual Map(Active -> 1)
}
}
}
20
31. Property Based Tests
» Property based tests work by defining a property
which is a high-level specification of behavior
31
32. Property Based Tests
» Property based tests work by defining a property,
which is a high-level specification of behavior
that should hold for all values of the specific type.
32
33. Property Based Tests
» Property based tests work by defining a property,
which is a high-level specification of behavior
that should hold for all values of the specific type.
» ∀ value : T => property(value) == true
33
34. The white lie
» We can't really test all values.
» We generate 100 random inputs, and verify the property on
them.
34
35. my first property
» For all lists, if we reverse them twice, we should get the
original list.
35
57. class FolderCountersPropertySpec extends FolderPropertiesSpec {
"adding the empty alert should not change the counters" in forAll {
counters: Map[Folder, Int] =>
addToCounters(counters, Alert("",Set())) shouldEqual counters
}
}
57
63. Remove and Add are related!
» Removing and then adding an alert should keep the original
counters
class FolderCountersPropertySpecWorking extends FolderPropertiesSpec {
"Removing and then adding an alert should keep the original counters" in forAll {
(counters: Map[Folder, Int], alert: Alert) =>
addToCounters(removeFromCounters(counters, alert), alert) shouldEqual counters
}
}
63
64. class FolderCountersPropertySpecWorking extends FolderPropertiesSpec {
"Removing and then adding an alert should keep the original counters" in forAll {
(counters: Map[Folder, Int], alert: Alert) =>
addToCounters(removeFromCounters(counters, alert), alert) shouldEqual counters
}
}
64
65. class FolderCountersPropertySpecWorking extends FolderPropertiesSpec {
"Removing and then adding an alert should keep the original counters" in forAll {
(counters: Map[Folder, Int], alert: Alert) =>
addToCounters(removeFromCounters(counters, alert), alert) shouldEqual counters
}
}
65
68. Making it fail consistently
class FolderCountersPropertySpecWorking extends FolderPropertiesSpec {
"Removing and adding an alert should keep the original counters" in forAll(minSuccessful(1000)) {
(counters: Map[Folder, Int], alert: Alert) =>
addToCounters(removeFromCounters(counters, alert), alert) shouldEqual counters
}
}
68
70. The BUG in our property
scala> val removedCounters = removeFromCounters(emptyCounters,sharedAlert)
removedCounters: Counters = Map()
70
71. The BUG in our property
scala> val removedCounters = removeFromCounters(emptyCounters,sharedAlert)
removedCounters: Counters = Map()
scala> val result = addToCounters(removedCounters,sharedAlert)
result: Counters = Map(Shared -> 1)
71
72. The BUG in our property
scala> val removedCounters = removeFromCounters(emptyCounters,sharedAlert)
removedCounters: Counters = Map()
scala> val result = addToCounters(removedCounters,sharedAlert)
result: Counters = Map(Shared -> 1)
scala> result == emptyCounters
res0: Boolean = false
72
73. The BUG in our property
scala> val removedCounters = removeFromCounters(emptyCounters,sharedAlert)
removedCounters: Counters = Map()
scala> val result = addToCounters(removedCounters,sharedAlert)
result: Counters = Map(Shared -> 1)
scala> Map(Shared->1) == Map()
res1: Boolean = false
73
74. The Good property?
class FolderCountersPropertySpecWorking extends FolderPropertiesSpec {
"Adding and then removing an alert should keep the original counters" in forAll{
(counters: Map[Folder, Int], alert: Alert) =>
removeFromCounters(addToCounters(counters,alert),alert) shouldEqual counters
}
}
74
75. A different bug
scala> val addedAlerts = addToCounters(emptyCounters,sharedAlert)
addedAlerts: Counters = Map(Shared -> 1)
75
76. A different bug
scala> val addedAlerts = addToCounters(emptyCounters,sharedAlert)
addedAlerts: Counters = Map(Shared -> 1)
scala> val result = removeFromCounters(addedAlerts,sharedAlert)
result: Counters = Map(Shared -> 0)
76
77. A different bug
scala> val addedAlerts = addToCounters(emptyCounters,sharedAlert)
addedAlerts: Counters = Map(Shared -> 1)
scala> val result = removeFromCounters(addedAlerts,sharedAlert)
result: Counters = Map(Shared -> 0)
scala> result == emptyCounters
res2: Boolean = false
77
78. A different bug
scala> val addedAlerts = addToCounters(emptyCounters,sharedAlert)
addedAlerts: Counters = Map(Shared -> 1)
scala> val result = removeFromCounters(addedAlerts,sharedAlert)
result: Counters = Map(Shared -> 0)
scala> Map(Shared->0) == Map()
res3: Boolean = false
78
81. Group to the rescue
» Disclaimer:
» this is going to require a leap of faith
» this will not work at all times
» This is going to be fast and fun
81
91. Making the API polymorphic
trait CountersApi[A] {
def addToCounters(current: A, added: A): A
def removeFromCounters(current: A, removed: A): A
def identity : A
}
91
93. trait CountersApi[A] {
def addToCounters(current: A, added: A): A
def removeFromCounters(current: A, removed: A): A
def inverse(x: A) : A
def identity : A
}
93
94. trait CountersApi[A] {
def combine(current: A, added: A): A
def remove(current: A, removed: A): A =
combine(current,inverse(removed))
def inverse(x:A): A
def identity : A
}
94
100. Summary
» The missing unit test problem
» Property based tests
» Generators
» Properties, the missing properties problem
» Math to the rescue!
Killing the unit test - @dor_sever 100
101. Takeaways
» Try this at home !
» Huge payoff, and it's super fun
Killing the unit test - @dor_sever 101