Invited Speaker at the first "Deep into Smalltalk" spring school. 7-11 march 2011. The pdf of this slides is also available onlie at: http://car.mines-douai.fr/noury/docs/deepIntoSmalltalk2011
(Video available at http://fsharpforfunandprofit.com/monadster/)
You've got a pile of assorted functions lying around. Each one is useful and reliable, but they just don't fit together properly. How can you assemble them into a complete system that can stand on its own two feet and terrorize the local villagers?
In this session, I'll show how functional programming can transform all sorts of existing code into shapes that are plug-compatible and which can be bolted together effortlessly.
SAFETY NOTE: The techniques demonstrated are perfectly harmless and can even be used at your workplace -- no lightning bolts required.
Pharo foreign function interface (FFI) by example by Esteban LorenzanoFAST
Since Pharo 5 we have been developing a new framework for communicate with external libraries called UnifiedFFI (or UFFI) that has opened the doors to perform a huge step in our support for mainstream necessities. In this talk I will talk about the intrinsic problems of developing such frameworks and put it in practice through the example of the newest tool in the Pharo family: Iceberg (the git client).
As the API Integrations Specialist at iQmetrix, I’m a frequent user of Postman. Postman has helped me streamline our onboarding and integration processes. Working with pre-request scripts, I can create environment templates that can be quickly updated with the environment variables required for the rest of the flow. I have designed Postman Collections that include both iQmetrix and partner APIs, allowing me to work with the Postman Collection Runner. With these processes in place, tasks that once took hours now only take a few minutes to complete. Using these sharable tools, I am able to create resources, share them with other teams, and create clear documentation with examples for use in client training scenarios.
(Video and code at http://fsharpforfunandprofit.com/composition)
Composition is a fundamental principle of functional programming, but how is it different from an object-oriented approach, and how do you use it in practice?
In this talk for beginners, we'll start by going over the basic concepts of functional programming, and then look at some different ways that composition can be used to build large things from small things.
After that, we'll see how composition is used in practice, beginning with a simple FizzBuzz example, and ending with a complete (object-free!) web application.
The Functional Programming Toolkit (NDC Oslo 2019)Scott Wlaschin
(slides and video at https://fsharpforfunandprofit.com/fptoolkit)
The techniques and patterns used in functional programming are very different from object-oriented programming, and when you are just starting out it can be hard to know how they all fit together.
In this big picture talk for FP beginners, I'll present some of the common tools that can be found in a functional programmer's toolbelt; tools such as "map", "apply", "bind", and "sequence". What are they? Why are they important? How are they used in practice? And how do they relate to scary sounding concepts like functors, monads, and applicatives?
(Video and code at https://fsharpforfunandprofit.com/pipeline/)
Passing data through a pipeline of transformations is an alternative approach to classic OOP. The LINQ methods in .NET are designed around this, but the pipeline approach can be used for so much more than manipulating collections.
In this talk, I'll look at pipeline-oriented programming and how it relates to functional programming, the open-closed principle, unit testing, the onion architecture, and more. I'll finish up by showing how you can build a complete web app using only this approach.
Rocky Rickaby is a rum-runner and violinist in the 1920s who is 22 years old and vagrant. He is always grinning with exaggerated facial expressions and uses dramatic hand gestures while speaking. He wears a large feathered fedora, zoot suit, and tie with a lucky "R". His clothing and behavior are often described as "ridiculous". He invades personal space and touches others frequently. His body language and constant movement reflect his reckless and impulsive personality.
Composition is a fundamental principle of functional programming, but how is it different from an object-oriented approach, and how do you use it in practice?
In this talk for beginners, we'll start by going over the basic concepts of functional programming, and then look at some different ways that composition can be used to build large things from small things.
After that, we'll see how composition is used in practice, beginning with a simple FizzBuzz example, and ending with a complete (object-free!) web application.
(Video available at http://fsharpforfunandprofit.com/monadster/)
You've got a pile of assorted functions lying around. Each one is useful and reliable, but they just don't fit together properly. How can you assemble them into a complete system that can stand on its own two feet and terrorize the local villagers?
In this session, I'll show how functional programming can transform all sorts of existing code into shapes that are plug-compatible and which can be bolted together effortlessly.
SAFETY NOTE: The techniques demonstrated are perfectly harmless and can even be used at your workplace -- no lightning bolts required.
Pharo foreign function interface (FFI) by example by Esteban LorenzanoFAST
Since Pharo 5 we have been developing a new framework for communicate with external libraries called UnifiedFFI (or UFFI) that has opened the doors to perform a huge step in our support for mainstream necessities. In this talk I will talk about the intrinsic problems of developing such frameworks and put it in practice through the example of the newest tool in the Pharo family: Iceberg (the git client).
As the API Integrations Specialist at iQmetrix, I’m a frequent user of Postman. Postman has helped me streamline our onboarding and integration processes. Working with pre-request scripts, I can create environment templates that can be quickly updated with the environment variables required for the rest of the flow. I have designed Postman Collections that include both iQmetrix and partner APIs, allowing me to work with the Postman Collection Runner. With these processes in place, tasks that once took hours now only take a few minutes to complete. Using these sharable tools, I am able to create resources, share them with other teams, and create clear documentation with examples for use in client training scenarios.
(Video and code at http://fsharpforfunandprofit.com/composition)
Composition is a fundamental principle of functional programming, but how is it different from an object-oriented approach, and how do you use it in practice?
In this talk for beginners, we'll start by going over the basic concepts of functional programming, and then look at some different ways that composition can be used to build large things from small things.
After that, we'll see how composition is used in practice, beginning with a simple FizzBuzz example, and ending with a complete (object-free!) web application.
The Functional Programming Toolkit (NDC Oslo 2019)Scott Wlaschin
(slides and video at https://fsharpforfunandprofit.com/fptoolkit)
The techniques and patterns used in functional programming are very different from object-oriented programming, and when you are just starting out it can be hard to know how they all fit together.
In this big picture talk for FP beginners, I'll present some of the common tools that can be found in a functional programmer's toolbelt; tools such as "map", "apply", "bind", and "sequence". What are they? Why are they important? How are they used in practice? And how do they relate to scary sounding concepts like functors, monads, and applicatives?
(Video and code at https://fsharpforfunandprofit.com/pipeline/)
Passing data through a pipeline of transformations is an alternative approach to classic OOP. The LINQ methods in .NET are designed around this, but the pipeline approach can be used for so much more than manipulating collections.
In this talk, I'll look at pipeline-oriented programming and how it relates to functional programming, the open-closed principle, unit testing, the onion architecture, and more. I'll finish up by showing how you can build a complete web app using only this approach.
Rocky Rickaby is a rum-runner and violinist in the 1920s who is 22 years old and vagrant. He is always grinning with exaggerated facial expressions and uses dramatic hand gestures while speaking. He wears a large feathered fedora, zoot suit, and tie with a lucky "R". His clothing and behavior are often described as "ridiculous". He invades personal space and touches others frequently. His body language and constant movement reflect his reckless and impulsive personality.
Composition is a fundamental principle of functional programming, but how is it different from an object-oriented approach, and how do you use it in practice?
In this talk for beginners, we'll start by going over the basic concepts of functional programming, and then look at some different ways that composition can be used to build large things from small things.
After that, we'll see how composition is used in practice, beginning with a simple FizzBuzz example, and ending with a complete (object-free!) web application.
A Top Down Approach to End-to-End TestingSmartBear
Whether you are doing it or not, end-to-end testing is something we all should be engaging – especially in the day and age of more and more systems becoming integrated. This discussion includes:
What is end-to-end testing?
Who is doing end-to-end testing and why?
Common mistakes to avoid with end-to-end testing
Real stories from the fire-side
Using Selenium for Automated testing - basic level: short introduction into the selectors and basic methods used in writing a simple script with Selenium Webdriver.
В длительной перспективе ретроспективы – самая важная часть гибких процессов. Но очень часто у команд не получается запустить процесс непрерывного улучшения, либо через некоторое время этот процесс обрывается, когда команда думает, что все проблемы решены. Я расскажу не только теоритическую часть, которая позволит преодолеть эти проблемы, но и дам несколько десятков примеров конкретных практик, которые применяются на эффективных ретроспективах. Доклад рассчитан, как на начинающих ретроспективы, так и практиков гибких методологий.
This document summarizes a presentation on continuous quality testing with Postman. The presentation introduced continuous quality as a systematic approach to finding and fixing defects during development. It covered recommended testing practices like running tests locally and automating tests. The presentation demonstrated how to extend Postman with libraries, use monitors for regression testing, and automate testing in CI/CD pipelines with Newman. Additional resources on testing with Postman were provided.
The document discusses ZeroMQ for publishing and subscribing to messages, ZooKeeper for leader election to ensure only one publisher, and FlatBuffers for fast serialization. It provides an overview of each technology, sample code, and compares them to similar messaging, coordination, and serialization systems. The presentation includes a weather application demo that uses these three components together, with ZeroMQ for messaging, ZooKeeper for leader election of the publisher, and FlatBuffers for serialization.
Functional Programming Patterns (NDC London 2014)Scott Wlaschin
(video of these slides available here http://fsharpforfunandprofit.com/fppatterns/)
In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID.
The functional programming community has design patterns and principles as well.
This talk will provide an overview of some of these, and present some demonstrations of FP design in practice.
Join us for an intermediate-level, one-hour Postman training tailored specifically for API testers, developers, and other stakeholders invested in the health of your APIs. If you already know how to write and run tests in Postman, this session takes it to the next level. Learn advanced testing workflows and recommended practices for testing in Postman.
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
INCLUDE AUTOMATED RESTFUL API TESTING USING POSTMAN, NEWMAN, AND JENKINS
If you’re going to automate one kind of tests at your company, API testing is the perfect place to start! It’s fast and simple to write as well as fast to execute. If your company writes an API for its software, then you understand the need and importance of testing it. In this webinar, we’ll do a live demonstration of how you can use free tools, such as Postman, Newman, and Jenkins, to enhance your software quality and security.
Elise Carmichael will cover:
Why your API tests should be included with your CI
Real examples using Postman, Newman and Jenkins + Newman
An active Q&A where you can get your automated testing questions answered, live!
To get the most out of this session:
Download these free tools prior to the webinar: Postman, Newman (along with node and npm) and Jenkins
Read up on how to parse JSON objects using javascript
*Can’t attend the webinar live? Register and we will send the recording after the webinar is over.
Pharo 11 is a stabilization release that focuses on fixes, tests, documentation and performance improvements rather than major new features. It includes over 1400 pull requests integrated and close to 1000 issues addressed. Improvements were made to tools, systems, compilers and virtual machines. Documentation is now standardized in Microdown format. Spec was improved and stabilization, and Toplo was introduced as a new widget library. Pharo 12 will continue work on optimizations and new graphics systems.
Join us for an hour-long introductory-level API design basics learning session where we talk about what makes a good API. This session is oriented towards designers and developers and takes a look into industry best practices and standards, how to design APIs in Postman, and how we can prepare our workspace for the Postman Public API Network. In this Postman learning session, we specifically dive into the design experiences for OpenAPI.
Testing and Mocking Object - The Art of Mocking.Deepak Singhvi
The document provides an overview of mocking objects for unit testing. It discusses the problems with testing, such as dependencies on external objects. Mocking objects allows creating test doubles that simulate real objects' behavior for testing in isolation. The document outlines best practices for mocking, such as mocking interfaces rather than concrete classes and verifying expectations. It provides examples of using EasyMock to define mock objects and expected behavior.
Postman is a collaboration platform that simplifies each step of building an API and streamlining collaboration to create better APIs faster. It is a popular API client that allows users to send HTTP/HTTPS requests to services and view responses. Postman offers features like a community forum, integration with CI/CD tools, extensibility, the ability to make any type of API call, and is freely available and easy to use.
Introduction To Appium With RobotframeworkSyam Sasi
This document provides an introduction to Appium, a cross-platform solution for automating tests on native, hybrid and mobile web apps. It discusses Appium's philosophy of using the same code across platforms and leveraging existing knowledge of WebDriver APIs. Requirements for iOS and Android are listed. Advantages of Appium include using favorite programming languages, testing on real devices and simulators, supporting multiple frameworks, and integrating with CI/CD pipelines. Initial setup can be challenging and image recognition is still a work in progress. Source code for an Appium workshop is provided.
The document discusses market drivers for an unnamed company. It includes forecasts that the laser market will reach $3.5 billion by 2021 and trends toward smart cities and increased internet of things adoption. Charts show the global DR market growth from 2016-2018 was $5.4 billion and key figures for hardware/software and industrial sector market shares in 2017. Other slides discuss population data, sales force access issues, and strategies for different market drivers and regions.
O documento discute o papel do QA na transformação ágil, identificando anti-patters como realizar testes em fases separadas e focar em testes manuais. Propõe que QA trabalhe em conjunto com outros papéis desde o início, com teste automático, feedback rápido e treinamento para apoiar a transformação.
If You Think You Can Stay Away from Functional Programming, You Are WrongMario Fusco
The document discusses several key concepts in functional programming including:
- Immutable data and pure functions avoid side effects and allow for referential transparency.
- Higher order functions and avoiding mutable state enable concurrency and parallelism without data races.
- Programs can be designed with a pure functional core and push side effects to the outer layers for modularity.
The document discusses inter-process communication and network protocols. It describes two forms of IPC - local and network IPC. Local IPC allows communication between processes on the same host using mechanisms like pipes, FIFOs, message queues and shared memory. Network IPC allows communication between processes on different hosts using sockets. It provides examples of client-server communication over a local Ethernet network and across different LANs connected by a WAN. It also discusses TCP and UDP protocols, and how TCP establishes and terminates connections using three-way and four-way handshakes.
This document provides an overview of socket programming in Java. It discusses how client-server applications use sockets to communicate over a network. Sockets are identified by an IP address and port number. The document explains TCP and UDP socket programming in Java. For TCP, it describes how the server creates a welcoming socket to accept client connections. For both TCP and UDP, it outlines the basic interactions between client and server sockets. The document concludes by noting that socket programming is easy in Java and real-time applications typically use threads to handle each socket.
A Top Down Approach to End-to-End TestingSmartBear
Whether you are doing it or not, end-to-end testing is something we all should be engaging – especially in the day and age of more and more systems becoming integrated. This discussion includes:
What is end-to-end testing?
Who is doing end-to-end testing and why?
Common mistakes to avoid with end-to-end testing
Real stories from the fire-side
Using Selenium for Automated testing - basic level: short introduction into the selectors and basic methods used in writing a simple script with Selenium Webdriver.
В длительной перспективе ретроспективы – самая важная часть гибких процессов. Но очень часто у команд не получается запустить процесс непрерывного улучшения, либо через некоторое время этот процесс обрывается, когда команда думает, что все проблемы решены. Я расскажу не только теоритическую часть, которая позволит преодолеть эти проблемы, но и дам несколько десятков примеров конкретных практик, которые применяются на эффективных ретроспективах. Доклад рассчитан, как на начинающих ретроспективы, так и практиков гибких методологий.
This document summarizes a presentation on continuous quality testing with Postman. The presentation introduced continuous quality as a systematic approach to finding and fixing defects during development. It covered recommended testing practices like running tests locally and automating tests. The presentation demonstrated how to extend Postman with libraries, use monitors for regression testing, and automate testing in CI/CD pipelines with Newman. Additional resources on testing with Postman were provided.
The document discusses ZeroMQ for publishing and subscribing to messages, ZooKeeper for leader election to ensure only one publisher, and FlatBuffers for fast serialization. It provides an overview of each technology, sample code, and compares them to similar messaging, coordination, and serialization systems. The presentation includes a weather application demo that uses these three components together, with ZeroMQ for messaging, ZooKeeper for leader election of the publisher, and FlatBuffers for serialization.
Functional Programming Patterns (NDC London 2014)Scott Wlaschin
(video of these slides available here http://fsharpforfunandprofit.com/fppatterns/)
In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID.
The functional programming community has design patterns and principles as well.
This talk will provide an overview of some of these, and present some demonstrations of FP design in practice.
Join us for an intermediate-level, one-hour Postman training tailored specifically for API testers, developers, and other stakeholders invested in the health of your APIs. If you already know how to write and run tests in Postman, this session takes it to the next level. Learn advanced testing workflows and recommended practices for testing in Postman.
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
INCLUDE AUTOMATED RESTFUL API TESTING USING POSTMAN, NEWMAN, AND JENKINS
If you’re going to automate one kind of tests at your company, API testing is the perfect place to start! It’s fast and simple to write as well as fast to execute. If your company writes an API for its software, then you understand the need and importance of testing it. In this webinar, we’ll do a live demonstration of how you can use free tools, such as Postman, Newman, and Jenkins, to enhance your software quality and security.
Elise Carmichael will cover:
Why your API tests should be included with your CI
Real examples using Postman, Newman and Jenkins + Newman
An active Q&A where you can get your automated testing questions answered, live!
To get the most out of this session:
Download these free tools prior to the webinar: Postman, Newman (along with node and npm) and Jenkins
Read up on how to parse JSON objects using javascript
*Can’t attend the webinar live? Register and we will send the recording after the webinar is over.
Pharo 11 is a stabilization release that focuses on fixes, tests, documentation and performance improvements rather than major new features. It includes over 1400 pull requests integrated and close to 1000 issues addressed. Improvements were made to tools, systems, compilers and virtual machines. Documentation is now standardized in Microdown format. Spec was improved and stabilization, and Toplo was introduced as a new widget library. Pharo 12 will continue work on optimizations and new graphics systems.
Join us for an hour-long introductory-level API design basics learning session where we talk about what makes a good API. This session is oriented towards designers and developers and takes a look into industry best practices and standards, how to design APIs in Postman, and how we can prepare our workspace for the Postman Public API Network. In this Postman learning session, we specifically dive into the design experiences for OpenAPI.
Testing and Mocking Object - The Art of Mocking.Deepak Singhvi
The document provides an overview of mocking objects for unit testing. It discusses the problems with testing, such as dependencies on external objects. Mocking objects allows creating test doubles that simulate real objects' behavior for testing in isolation. The document outlines best practices for mocking, such as mocking interfaces rather than concrete classes and verifying expectations. It provides examples of using EasyMock to define mock objects and expected behavior.
Postman is a collaboration platform that simplifies each step of building an API and streamlining collaboration to create better APIs faster. It is a popular API client that allows users to send HTTP/HTTPS requests to services and view responses. Postman offers features like a community forum, integration with CI/CD tools, extensibility, the ability to make any type of API call, and is freely available and easy to use.
Introduction To Appium With RobotframeworkSyam Sasi
This document provides an introduction to Appium, a cross-platform solution for automating tests on native, hybrid and mobile web apps. It discusses Appium's philosophy of using the same code across platforms and leveraging existing knowledge of WebDriver APIs. Requirements for iOS and Android are listed. Advantages of Appium include using favorite programming languages, testing on real devices and simulators, supporting multiple frameworks, and integrating with CI/CD pipelines. Initial setup can be challenging and image recognition is still a work in progress. Source code for an Appium workshop is provided.
The document discusses market drivers for an unnamed company. It includes forecasts that the laser market will reach $3.5 billion by 2021 and trends toward smart cities and increased internet of things adoption. Charts show the global DR market growth from 2016-2018 was $5.4 billion and key figures for hardware/software and industrial sector market shares in 2017. Other slides discuss population data, sales force access issues, and strategies for different market drivers and regions.
O documento discute o papel do QA na transformação ágil, identificando anti-patters como realizar testes em fases separadas e focar em testes manuais. Propõe que QA trabalhe em conjunto com outros papéis desde o início, com teste automático, feedback rápido e treinamento para apoiar a transformação.
If You Think You Can Stay Away from Functional Programming, You Are WrongMario Fusco
The document discusses several key concepts in functional programming including:
- Immutable data and pure functions avoid side effects and allow for referential transparency.
- Higher order functions and avoiding mutable state enable concurrency and parallelism without data races.
- Programs can be designed with a pure functional core and push side effects to the outer layers for modularity.
The document discusses inter-process communication and network protocols. It describes two forms of IPC - local and network IPC. Local IPC allows communication between processes on the same host using mechanisms like pipes, FIFOs, message queues and shared memory. Network IPC allows communication between processes on different hosts using sockets. It provides examples of client-server communication over a local Ethernet network and across different LANs connected by a WAN. It also discusses TCP and UDP protocols, and how TCP establishes and terminates connections using three-way and four-way handshakes.
This document provides an overview of socket programming in Java. It discusses how client-server applications use sockets to communicate over a network. Sockets are identified by an IP address and port number. The document explains TCP and UDP socket programming in Java. For TCP, it describes how the server creates a welcoming socket to accept client connections. For both TCP and UDP, it outlines the basic interactions between client and server sockets. The document concludes by noting that socket programming is easy in Java and real-time applications typically use threads to handle each socket.
The document discusses transport layer protocols. It provides an overview of process-to-process delivery and addressing at the transport layer. Key points covered include connection-oriented vs connectionless services, reliable vs unreliable protocols, User Datagram Protocol (UDP), and Transmission Control Protocol (TCP). UDP is described as a connectionless and unreliable protocol, while TCP provides connection-oriented and reliable data transfer with features like flow control, error control, and numbering systems.
Hungary Usergroup - Midonet overlay programmingMarton Kiss
The document discusses distributed programming for overlay networks. It describes scaling to support massive numbers of virtual ports, servers, virtual machines, and network connections. Key aspects summarized are:
1. The system uses Scala, Akka, Zookeeper for distributed state management and achieves massive scaling of layer 2, 3, and 4 network functions as well as distributed service chaining and flow tracing.
2. The logical code design includes a state cluster storing the virtual topology, MidoNet agents caching data and interfacing with controllers, and clients interfacing through APIs.
3. The distributed flow state design forwards flow state to possible interested hosts for high performance without simulating packet ingress at other hosts, with state backed
Deep dive into Quantum
1. Quantum is the network connectivity service for OpenStack that provides an API to dynamically request and configure virtual networks. It integrates virtual networks with other OpenStack services.
2. The Open vSwitch plugin uses a quantum agent to poll the local Open vSwitch instance and configure flows to implement the logical network model defined in the central database.
3. Plugins hide the backend network technology and provide a generic tenant API for creating and configuring virtual networks, while agents perform the actual network configuration on each physical host.
This document provides an introduction to software-defined networking (SDN) concepts. It defines SDN as separating the control plane and data plane in network devices to make network implementation, scalability, and management easier. The document discusses SDN architectures using OpenFlow to define communication between the control and forwarding layers. It also covers SDN implementations using overlays like VXLAN and challenges around SDN protocols, scalability, and performance.
The document discusses OpenStack Quantum and OpenFlow/SDN. It provides an overview of Quantum, which allows network connectivity as a service in OpenStack. It describes how Quantum works by creating networks and ports and plugging interface devices. It also lists several Quantum plugins that can be used, such as plugins for Cisco, Linux bridge, NVP, and Open vSwitch. Finally, it introduces OpenFlow/SDN and provides basics on the OpenFlow protocol and how OpenFlow switching works.
Network and Service Virtualization tutorial at ONUG Spring 2015SDN Hub
Tutorial at ONUG Spring 2015 on Network and Service Virtualization. The tutorial covers three converging trends 1) Network virtualization, 2) Service virtualization, 3) overlay networking for Docker and OpenStack. The talk concludes with pointers to the hands-on portion of the tutorial that uses LorisPack, and the operational lessons learned.
This document provides an overview of software-defined networking (SDN). It defines SDN as a concept that separates the control plane and data plane in network devices to make network implementation, scalability, and management easier. The document discusses SDN concepts like the OpenFlow protocol, SDN controllers, network applications, and SDN architectures. It also covers SDN use cases and challenges, such as scalability issues and ensuring security in SDN environments.
The transport layer is responsible for process-to-process delivery in computer networks. It provides services like multiplexing, demultiplexing, error checking, and flow control. The two main transport layer protocols are TCP and UDP. TCP provides reliable, connection-oriented services using three-way handshake and acknowledgments. UDP provides unreliable datagram services with no handshaking or acknowledgments, making it faster but less reliable than TCP.
This document discusses various issues in client/server programming and network server design. It covers topics like identifying servers, UDP and TCP client design, specifying local addresses, partial socket closes, concurrent vs iterative servers, and design alternatives like one process per client, preforked servers, and prethreaded servers. The best design depends on factors like expected client load, transaction sizes, and available system resources. Understanding these issues and testing alternatives is important for choosing an optimal server architecture.
Here are the key steps of reverse path broadcasting/multicasting using the example network:
1. Router S sends the multicast packet and all routers know the shortest path to S is directly through S.
2. Router directly connected to S forwards the packet to all other ports except the port it arrived on (parent port).
3. Subsequent routers forward the packet to all ports except the parent port, following the shortest path to S in reverse.
4. This process continues until all destinations are reached, with each router forwarding only once.
The end result is an efficient multicast distribution tree is built to reach all destinations.
SDN & NFV Introduction - Open Source Data Center NetworkingThomas Graf
This document introduces software defined networking (SDN) and network functions virtualization (NFV) concepts. It discusses challenges with traditional networking and how SDN and NFV address these by decoupling the control and data planes, centralizing network intelligence, and abstracting the underlying network infrastructure. It then provides examples of open source SDN technologies like OpenDaylight, Open vSwitch, and OpenStack that can be used to build programmable software-defined networks and virtualized network functions.
This document introduces software defined networking (SDN) and network functions virtualization (NFV) concepts. It discusses challenges with traditional networking and how SDN and NFV address these by decoupling the control and data planes, making the network programmable through APIs, and virtualizing network functions. It then provides examples of open source SDN platforms like OpenDaylight, Open vSwitch, and OpenStack that enable building virtual networks and service chains.
Leveraging Machine Learning Approach to Setup Software Defined Network(SDN) C...Kishor Datta Gupta
A machine learning based Distributed Denial of Service (DDoS) attack detection system, implemented in a virtual SDN environ-ment testbed, has been presented in this paper. This system identi es whether any incoming tra c in a network is a DDoS type or not. To implement this approach, we applied AdaBoosting with decision stump as a weak classi er to train our model on a private network dataset in SDN environment. Our model showed up to 93% detection accuracy with a low false-positive rate. We have also tested and compared our model's accuracy with di erent machine learning algorithms and presented the result.
Keywords: Software Defined Network Machine Learning Network Intrusion Detection System Distributed Denial of Service
Leveraging Machine Learning Approach to Setup Software Defined Network(SDN) C...Sajib Sen
1) The document discusses setting up a virtual SDN network using Mininet and Open vSwitch to study DDoS attack detection using machine learning. It creates a 3-switch topology and configures basic flow rules.
2) A DDoS ping flood attack is launched on the network from multiple hosts. Network traffic data is collected using sFlow for both normal and attack scenarios.
3) Different machine learning classifiers including Bayes Net, Naive Bayes, and AdaBoost are trained on the data and their performance is compared based on metrics like precision, recall and F-measure. AdaBoost performed the best with 0.934 precision and recall.
Networking is NOT Free: Lessons in Network DesignRandy Bias
An in-depth critique of the existing OpenStack networking approach, with a focus on how the Nova network controller is more of a hindrance than a help. Discusses the gap in Quantum's functionality required to close the gap, and alternative solutions. How can we make networking in OpenStack robust, high performance, and fault tolerant? What do typical large scale networks look like and what lessons can we learn from them? Is there an approach to networking we can take that is the same with a handful of servers as it is with hundreds of racks?
JDO 2019: Service mesh with Istio - Mariusz GilPROIDEA
Architektura mikroserwisowa niesie ze sobą wiele wyzwań, zarówno w kwestii kodu i odpowiedzialności realizowanych przez poszczególne usługi jak i komunikacji pomiędzy nimi. Ta sieć powiązanych ze sobą aplikacji, nieustannie komunikujących się z użyciem różnych protokołów staje się zwykle wraz z upływem czasu coraz bardziej skomplikowana i trudniejsza w codziennym zarządzaniu. Istio jest jednym z narzędzi pomagających zapanować nad skomplikowanym service meshem, oferującym szereg funkcjonalności związanych choćby z load balancingiem ruchu sieciowego, autentykacji, monitoringu, trackowania… W trakcie prezentacji zapoznasz się więc zarówno z architekturą Istio jak i typowymi przypadkami użycia tego rozwiązania.
Chapter 3 - Transport Layer for VN Studentsalberttochiro
The document discusses concepts related to the transport layer, including transport services and protocols, multiplexing and demultiplexing, reliable data transfer, UDP and TCP. It provides details on TCP and UDP protocols, covering topics such as connection-oriented vs connectionless transport, TCP and UDP segment structure, TCP reliable data transfer using sequence numbers and acknowledgments, TCP connection establishment and closing processes. Examples are provided to illustrate TCP and UDP functionality.
The document discusses the application layer in computer networks, including common network application architectures like client-server and peer-to-peer, as well as protocols like HTTP that are used to enable applications to communicate over the network. It also covers how processes communicate with each other using sockets, and how applications map processes to addresses using the Domain Name System (DNS).
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
The document announces a Smalltalk meetup happening on November 10th 2023 that will feature a talk about PharoJS, a framework that allows developers to write code in Pharo and run it on JavaScript. PharoJS provides a transpiler to convert Pharo code to JavaScript, libraries to extend JavaScript objects with Pharo behaviors, and tools like a playground and inspector for JavaScript objects. Examples of projects using PharoJS include mobile apps built with HTML/CSS and web apps like PLC3000.com which has over 1000 tests and classes for its client and server code.
PharoJS dates back to 2015. True to Pharo's philosophy, it was started to build real world software.
Actually, the initial motivation behind PharoJS was building mobile applications based Web technologies using Cordova (formaly PhoneGap).
This means that for production, Pharo code is transpiled to Javascript to benefit from JS's portability and speed.
But, for development, we wanted to benefit from Pharo's unique set of features and IDE.
To do so, PharoJS provides a framework and a toolset that supports integrating Pharo code with third-party JS libraries.
It also enables testing and debugging applications running on a JS interpreter.
We'll discuss these features, and how they were successfully used to produce real world software.
The document discusses the results of a study on the effects of a new drug on memory and cognitive function in older adults. The double-blind study involved giving either the new drug or a placebo to 100 volunteers aged 65-80 over a 6 month period. Testing showed those receiving the drug experienced statistically significant improvements in short-term memory retention and processing speed compared to the placebo group.
ALPAGA : An AeriaL Platform for sampling Atmospheric Gases and AerosolsNoury Bouraqadi
The ALPAGA project proposes the construction of an AeriaL Platform for sampling Atmospheric Gases and Aerosols. It involves a drone-based solution to make 3 dimensional maps of Volatile Organic Compounds (VOCs) and aerosol particles. Such atmospheric species have well-documented impacts on both health, leading to millions of premature deaths yearly, and climate, nowadays estimated to compensate (at least for aerosols) some of the greenhouse gas effect.
We present the current status of the architecture we have been developing as part of the ALPAGA project. The solution under development involves both hardware and software parts, built on top of a commercial DJI M600 Pro hexarotor drone. On the hardware side we are building a nacelle that will store air samples in containers carried by the drone. Using a Raspberry-pi running ROS, we remotely control a vacuum suction pump to suck air into inert teflon bags. We discuss challenges we have faced so far, solutions we have implemented, and how we plan to automate map construction by geolocalizing samples collected at different locations.
PharoJS allows developing applications in Pharo that run on JavaScript. It has been ported to Pharo 7 and has over 300 commits on GitHub. The project aims to improve stability, add mobile app tutorials, better integrate third party JS libraries, and fix bugs. Within a year they plan to rebuild the middleware, improve WebSocket support, add more mobile apps, and explore integration with Seaside, desktop apps, and porting to other platforms. Collaborators are welcome on GitHub, their website, Slack, and Twitter.
UbiquiTalk - An Infrastructure for Ubiquitous Computing (ESUG 2006)Noury Bouraqadi
These slides were presented at the 14th International Smalltalk Conference, organized by the European Smalltalk Users Group (ESUG). Prague, Czech Republic, 2006.
--- Abstract
UbiquiTalk is an open P2P platform that supports automatic peer interaction without requiring any infrastructure or prior knowledge on interacting peers. Hence, UbiquiTalk can be used either within a network infrastructure or an adhoc network (e.g. Wifi).
Each UbiquiTalk peer, named "host", can act either as a service provider or as a client or both. Users are provided an administration graphical interface to customize their respective hosts, and choose to export or import some services or none. The client part of UbiquiTalk GUI allows user to watch host detection and disappearing. Moreover, it allows users to use some service provided by a particular host. Currently, we have two GUIs one for PDAs and the other for laptops and desktop computers.
UbiquiTalk has been implemented on top of Squeak. It relies on rST (Remote Smalltalk) for remote message sending. Regarding host discovery, We used IP Group Multicast. Therefore, UbiquiTalk can be used through the Internet.
On 2D SLAM for Large Indoor Spaces: A Polygon-Based SolutionNoury Bouraqadi
Slides + comments + appendices of the PhD defense of Johann Dichtl. The validation relied on ROS and Pharo. More info and demo video at: https://noury.tech/projects/polygon-based-slam/
Towards Live Programming in ROS with PhaROS and LRPNoury Bouraqadi
The document proposes a live programming approach for the Robot Operating System (ROS) using PhaROS and LRP. It identifies limitations of ROS for live programming like static launch files and lack of hot code swapping. The approach integrates a domain specific language for hierarchical state machines called LRP with PhaROS, a ROS client for the Pharo programming language. This allows ROS nodes to be developed in Pharo and everything to happen at runtime, enabling live parameter changes, code updates, and connection changes for ROS applications. Examples of using this approach include a robot that stops on obstacles and an obstacle avoider behavior.
First Tests of a Helper Robot in a Shopping MallNoury Bouraqadi
First experiments of a helper robot for shopping mall as announced in the 2013 edition of the European Smalltalk Users Group conference. This robot is developped using the PhaROS client of the ROS middleware.
Towards Test-Driven Development for Mobile RobotsNoury Bouraqadi
Slides of the presentation given at the ICRA 2013 workshop on Software Development and Integration in Robotics (SDIRIII) http://robotics.unibg.it/tcsoft/sdir2013/index.html
This is a quick update on some of our recent projects where we use Smalltalk for driving robots at Ecole des Mines de Douai. This presentation was given at ESUG 2012 conference in Gent, Belgium.
OCEAN is a networking library that provides a clean API for socket programming. It aims to abstract low-level socket details and support multiple protocols and backends. The library contains classes for sockets, servers, conversations and more. It has been tested for TCP, UDP, HTTP, and SOCKS sockets. The current status shows 17 classes, 188 methods, and unit tests cover around 44% of the methods. The document requests help in writing additional tests and improving the library code.
Autonomous Mobile Robots with Pharo Smalltalk. Presentation given at the JM2L (Journées Méditérrannéennes des logiciels libres). 27 nov 2010.
First introduce mobile robotics and robotic software architectures. Then presents Pharo using robotic examples.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
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.
“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.
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.
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.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
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.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
National Security Agency - NSA mobile device best practices
Pharo Networking by Example
1. Networking
by Example!
Noury Bouraqadi
http://car.mines-douai.fr/noury
"Deep Into Smalltalk" Spring School
8 march 2011 - Lille, France
2. 2
Agenda
• Networking Basics
– Sockets and protocols
– Client vs. Server
– Hands-on with SocketStream
• Serving
– Connection vs. communication
– Hands-on Concurrency!
• Complex interactions
– Exchanging objects over a network
– Remote messaging Hands-on
3. 3
Software Software
Nework
Process Process
Soc
ke oc ket
t S
Bi-directional communication
4. 4
Device A Device B
Software Software
Nework
Process Process
Soc
ke oc ket
t S
5. 5
Device Z
Software Software
Nework
Process Process
Soc
ke oc ket
t S
6. 6
2 Main
Transport
Protocols
TCP UDP
Transmission User
Control Datagram
Protocol Protocol
9. 9
Connection
Handling
Process
Server
Client A
Communication
Process
10. 10
Connection
Handling
Process
Server
Client A
Communication Communication
Process Process
11. 11
Connection
Handling
Process
Server Client B
Communication
Process
Client A
Communication Communication
Process Process
12. 12
Connection
Handling
Process
Server Client B
Communication Communication
Process Process
Client A
Communication Communication
Process Process
13. 13
Connection
Handling
Process Client C
Communication
Process
Server Client B
Communication Communication
Process Process
Client A
Communication Communication
Process Process
14. 14
Connection
Handling
Process Client C
Communication Communication
Process Process
Server Client B
Communication Communication
Process Process
Client A
Communication Communication
Process Process
15. 15
Client Socket
So cketS tream!
1. Connect to a server
2. Send a String
3. Receive a String
4. Close
16. 16
Server for Tests
Serve
Unix!
echo "Smalltalk" | nc –lk 12345
Multiple
Port
connections
number
21. 21
Tw itter
Luc: I’m struggling with the robots
----------
Noury: Which robots? WifiBots or
Robulabs?
----------
like
Luc: I need to setup the internal board of
Robulab #2
----------
22. 22
Multi-threaded
Server
1 process
for connections
1 process
for each client
Sycnrhonization
is needed
23. 23
Multi-threaded
fork
Server
1 process
for connections
1 process
for each client Mutex
Sycnrhonization
is needed
critical: