The document is a presentation on asynchronous programming in Scala. It covers differences between synchronous and asynchronous programming, futures and promises in Scala.concurrent, and the Monix library. It discusses using futures, promises, callbacks and transformations. The presentation concludes with best practices for debugging asynchronous programs, including using await, printing, ScalaTest and asynchronous debuggers.
WordPress Development: Tracking Your Code With Version ControlSterling Hamilton
?
際際滷s from the 2011 Reno-Tahoe WordCamp covering why developers should be using some kind of Version Control System and what models are currently being used in the industry.
The document discusses writing plugins for RabbitMQ using Erlang. It begins with background on the presenters and why RabbitMQ and AMQP are useful. It then covers broker infrastructure, various RabbitMQ clients, reasons for writing plugins, and examples of stable and experimental plugins. One example plugin presented pulls RSS feeds using the RabbitMQ broker. The document concludes with a discussion of building plugins, OTP design principles, and potential future work on machine learning classifiers for RSS content.
The document discusses the new features of Angular 4 and the Angular CLI. It provides an overview of updates in Angular 4 including improvements to NgIf and NgFor, form validations, and new animations and universal modules. It also discusses changes in TypeScript and the Angular CLI, including performance improvements and support for Progressive Web Apps. Finally, it provides instructions for migrating projects from Angular 2 to Angular 4.
Hundreds of projects, thousands of jobs, each generating data about the status, commit, change logs and quality reports of your projects. How can you restore order in this amount of data and use it to gather useful information about your projects?
> In this talk, I will explain how I collect the data over thousands of jobs, commit after commit, build after build, how he stored it and used it in turn to extract useful information and to inject this data as feedback into our pipelines.
The document discusses debugging tips and techniques in Java. It covers:
1. Always launching applications in debug mode for flexibility.
2. Techniques for evaluating code, controlling execution steps and breaks, and manipulating code flow while debugging.
3. Tracking classes, objects, and references to understand object relationships and behavior.
How I¨ve met .NET Core and a little story about my drama with the framework. This talk will reveal some of my projects and experience with .NET Core and what we can learn from them. We will take a look of some interesting features from .NET Core 3.0 and in the end why I love this framework and the way Microsoft is going.
Tale of the journey of an agile team - From dependency to freedomIgnazio Dadduzio
?
This is a journey of an Agile Team within Hotels.com (Expedia Group). The journey departs from the prison of the dependency to the freedom of the autonomy. We're not talking about a type of drug... We're talking about Continuous Delivery.
We'll take you through our experience of nearly a decade, narrating joys and sorrows of our road, what we've done to reach happiness and because we never have enough, what we have in plan for the future.
Spring helps developers adapt to change by providing tools and frameworks that make code easy to modify. Reactor brings asynchronous non-blocking I/O capabilities to Spring while maintaining familiar programming models. Spring Tools 4 and Boot 2.0 further enhance developer productivity with improved tooling and new features.
During one of my personal projects I decided to study the internals of Android and the potential of altering the Dalvik VM (e.g. Xposed framework and Cydia) and application behaviour. Not going into detail about runtime hooking of constructors and classes like these two tools provide, I also explored the possibility of reverse engineering and modifying existing applications.
In the web you can find multiple tutorials on Android reverse engineering of applications but not many that do it with real applications that are often subject to obfuscation or with complex execution flows. So in order to learn I decided to pick a common application such as Skype and do the following:
decompile it
study contents and completely remove some functionality (e.g. ads)
change some resources (not described in presentation bellow)
recompile, sign and install.
Used tools include :
apktool C for (de)compiling android applications
jarsigner C for signing android applications
xposed C for intercepting runtime execution flow (will make public in future)
The following presentation describes the steps taken in order to completely remove the ads from skype. This includes any computation or data plan usage the ads consume. Please note the disclaimer of the presentation as this information is for educational purposes only.
Check my website : www.marioalmeida.eu
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Christian Catalan
?
Presented at the STLJS Meetup (St Louis, MO)
We dive into a Vue application used in semiconductor labs for transistor measurements. We discuss how get started with E2E testing with Cypress.io. And give a crash course into Vue applications.
Video: https://www.youtube.com/watch?v=dpB0YgnFyZQ
Configure active directory & trust domainTola LENG
?
The document outlines steps for configuring an Active Directory environment, including:
1. Creating OUs and user accounts
2. Adding users to security groups
3. Joining a Windows client to the domain
4. Setting user profile and login restrictions
5. Configuring a trust between two domains with either a two-way or one-way trust relationship
The prepared by line indicates the tasks were completed by LENG Tola from the SNA15-B class.
This document discusses various testing strategies for voice applications built with the Adhearsion framework. It begins by describing unit testing with RSpec to test call controllers and prevent regressions. It then discusses functional testing tools like SIPp and the ahn-loadbot plugin that can simulate calls and interactions. Finally, it covers load testing to evaluate system performance under high call volumes and ensure calls don't fail or experience long wait times. The goal is to build stable voice applications through rigorous testing at multiple levels.
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
?
In the realm of Android development, the main thread is our stage, but too often, it becomes a battleground where performance issues arise, leading to ANRs, frozen frames, and sluggish Uls. As we strive for excellence in user experience, understanding and optimizing the main thread becomes essential to prevent these common performance bottlenecks.
We have strategies and best practices for keeping the main thread uncluttered. We'll examine the root causes of performance issues and techniques for monitoring and improving main thread health as well as app performance.
In this talk, participants will walk away with practical knowledge on enhancing app performance by mastering the main thread. We'll share proven approaches to eliminate real-life ANRs and frozen frames to build apps that deliver butter smooth experience.
Supporting Java? 9 in Eclipse - A critical perspective - Stephan HerrmannEclipse Day India
?
The document discusses supporting Java 9 in Eclipse through 4 acts. Act 1 introduces Java modules and demonstrates them in Eclipse. Act 2 discusses issues with existing Eclipse APIs due to Java 9 changes. Act 3 explores complexities around split packages and package references between modules. Act 4 discusses representing Java 9 module options in the Eclipse UI. The conclusion reflects on encapsulation, isolation and compatibility challenges with Java 9.
Why scala is not my ideal language and what I can do with thisRuslan Shevchenko
?
- The document discusses some of the author's criticisms of Scala, including its use of implicit parameters to configure runtime behavior, and lack of good support for asynchronous programming.
- The author proposes some workarounds, like annotating imports to avoid implicit conflicts, and patching the compiler to add more information to Future exceptions. However, the ideal solution would be language changes or improvements to asynchronous abstractions like Async.
- Overall, the author argues that Scala is not ideal for some use cases like asynchronous programming, but provides some workarounds people can use in the meantime. The best solutions require changes to the language and standard library.
The document discusses improvements made to Apache Flink by Alibaba, called Blink. Blink provides a unified SQL layer for both batch and streaming processes. It supports features like UDF/UDTF/UDAGG, stream-stream joins, windowing, and retraction. Blink also improves Flink's runtime to be more reliable and production-quality when running on large YARN clusters. It has a new architecture using a JobMaster and TaskExecutors. Checkpointing and state management were optimized for incremental backups. Blink has been running in production supporting many of Alibaba's critical systems and processing massive amounts of data.
The document discusses consensus algorithms for distributed systems. It provides an overview of the challenges in achieving consensus in a distributed system due to lack of global knowledge, clock skew, failures, and more. It then describes the Paxos and Raft consensus algorithms, explaining their phases, processes, and how they address the challenges to achieve consensus across multiple servers.
Consensus Algorithms in Distributed Systems LambdaWorld2018Yifan Xing
?
This document discusses consensus algorithms for distributed systems. It begins with an overview of challenges in distributed systems like lack of global knowledge, clock skew, handling concurrent operations and failures. It then covers the consensus algorithms Paxos and Raft in detail. For Paxos, it explains the basic algorithm, proposals, multi-Paxos and the role of leaders. For Raft, it outlines the phases of leader election and log replication, and how it guarantees log consistency even after failures.
Building a social network in under 4 weeks with Serverless and GraphQLYan Cui
?
This document discusses how a social network was built in under 4 weeks using serverless architecture and GraphQL. A small team including 1 full-time front-end developer for mobile, 1 full-time front-end developer for CMS, and 1 part-time back-end developer completed the project in approximately 7, 3, and 4 weeks respectively. AWS services like Cognito, AppSync, DynamoDB, Lambda, S3, and CloudFront were used to build the backend. An AWS organization structure was also implemented for production, staging, and development environments.
This document provides an overview of a hackathon being held by Spryker Systems GmbH from March 16-17, 2016. It introduces Fabian Wesner, a Spryker employee, and provides his contact information. The rest of the document consists of a presentation about Spryker's architecture, programming principles, and key concepts like bundles, layers, and plugins.
David Arcos presented tips for improving Django performance and scalability. He began with basic concepts like the Pareto principle and database performance. He stressed the importance of measuring performance to identify bottlenecks. Specific tips included adding database indexes, bulk operations, caching, and using queues to run slow tasks asynchronously. Arcos concluded by emphasizing the need to measure, optimize bottlenecks, and measure again to verify improvements.
Serverless technologies drastically simplify the task of building modern, scalable APIs in the cloud, and GraphQL makes it easy for frontend teams to consume these APIs and to iterate quickly on your product idea. Together, they are a perfect combination for a product-focused, full-stack team to deliver customer values quickly.
In this talk, see how we built a new social network mobile app in under 4 weeks using Lambda, AppSync, DynamoDB and Algolia. How we approached CI/CD, testing, authentication and lessons we learnt along the way.
Real-world serverless podcast: https://realworldserverless.com
Learn Lambda best practices: https://lambdabestpractice.com
Blog: https://theburningmonk.com
Consulting services: https://theburningmonk.com/hire-me
Production-Ready Serverless workshop: https://productionreadyserverless.com
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"LogeekNightUkraine
?
This document discusses macro vs micro benchmarking in .NET. It defines macro benchmarking as measuring the performance of whole applications or parts of applications from a user's perspective, while micro benchmarking involves repeatable measurement of specific sections of code isolated from virtual machine effects. The document also covers topics like when optimization is needed, profiling tools available for .NET like dotTrace and dotMemory, and concludes that profiling can help identify performance bottlenecks and memory leaks, and forecast potential performance gains.
Caffe - A deep learning framework (Ramin Fahimi)irpycon
?
Caffe is a deep learning framework. It is used for tasks like visual recognition using neural networks and deep learning techniques. Caffe uses plain text configuration files called prototxt to define neural network architectures and hyperparameters. It also supports distributed training on GPUs for large datasets. Caffe provides pre-trained models and tools to load, fine-tune, and publish new models for tasks like image classification and object detection.
This document summarizes a group project to parallelize the solving of Nonograms puzzles.
The group explored several approaches to parallelization including optimizing code structure to take advantage of SIMD instructions, improving memory access, and implementing various MPI versions for distributed processing. Evaluation showed the MPI version with dynamic scheduling and asynchronous communication achieved the best speedup of around 5x on 10 cores. Further optimization of load balancing and addressing data dependencies could provide additional gains but parallelizing the inherently sequential nature of the problem proves challenging.
How Telemedicine App Development is Revolutionizing Virtual Care.pptxDash Technologies Inc
?
Telemedicine app development builds software for remote doctor consultations and patient check-ups. These apps bridge healthcare professionals with patients via video calls, secure messages, and interactive interfaces. That helps practitioners to provide care without immediate face-to-face interactions; hence, simplifying access to medical care. Telemedicine applications also manage appointment scheduling, e-prescribing, and sending reminders.
Telemedicine apps do not only conduct remote consultations. They also integrate with entire healthcare platforms, such as patient forums, insurance claims processing, and providing medical information libraries. Remote patient monitoring enables providers to keep track of patients' vital signs. This helps them intervene and provide care whenever necessary. Telehealth app development eliminates geographical boundaries and facilitates easier communication.
In this blog, we will explore its market growth, essential features, and benefits for both patients and providers.
Packaging your App for AppExchange C Managed Vs Unmanaged.pptxmohayyudin7826
?
Learn how to package your app for Salesforce AppExchange with a deep dive into managed vs. unmanaged packages. Understand the best strategies for ISV success and choosing the right approach for your app development goals.
Spring helps developers adapt to change by providing tools and frameworks that make code easy to modify. Reactor brings asynchronous non-blocking I/O capabilities to Spring while maintaining familiar programming models. Spring Tools 4 and Boot 2.0 further enhance developer productivity with improved tooling and new features.
During one of my personal projects I decided to study the internals of Android and the potential of altering the Dalvik VM (e.g. Xposed framework and Cydia) and application behaviour. Not going into detail about runtime hooking of constructors and classes like these two tools provide, I also explored the possibility of reverse engineering and modifying existing applications.
In the web you can find multiple tutorials on Android reverse engineering of applications but not many that do it with real applications that are often subject to obfuscation or with complex execution flows. So in order to learn I decided to pick a common application such as Skype and do the following:
decompile it
study contents and completely remove some functionality (e.g. ads)
change some resources (not described in presentation bellow)
recompile, sign and install.
Used tools include :
apktool C for (de)compiling android applications
jarsigner C for signing android applications
xposed C for intercepting runtime execution flow (will make public in future)
The following presentation describes the steps taken in order to completely remove the ads from skype. This includes any computation or data plan usage the ads consume. Please note the disclaimer of the presentation as this information is for educational purposes only.
Check my website : www.marioalmeida.eu
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Christian Catalan
?
Presented at the STLJS Meetup (St Louis, MO)
We dive into a Vue application used in semiconductor labs for transistor measurements. We discuss how get started with E2E testing with Cypress.io. And give a crash course into Vue applications.
Video: https://www.youtube.com/watch?v=dpB0YgnFyZQ
Configure active directory & trust domainTola LENG
?
The document outlines steps for configuring an Active Directory environment, including:
1. Creating OUs and user accounts
2. Adding users to security groups
3. Joining a Windows client to the domain
4. Setting user profile and login restrictions
5. Configuring a trust between two domains with either a two-way or one-way trust relationship
The prepared by line indicates the tasks were completed by LENG Tola from the SNA15-B class.
This document discusses various testing strategies for voice applications built with the Adhearsion framework. It begins by describing unit testing with RSpec to test call controllers and prevent regressions. It then discusses functional testing tools like SIPp and the ahn-loadbot plugin that can simulate calls and interactions. Finally, it covers load testing to evaluate system performance under high call volumes and ensure calls don't fail or experience long wait times. The goal is to build stable voice applications through rigorous testing at multiple levels.
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
?
In the realm of Android development, the main thread is our stage, but too often, it becomes a battleground where performance issues arise, leading to ANRs, frozen frames, and sluggish Uls. As we strive for excellence in user experience, understanding and optimizing the main thread becomes essential to prevent these common performance bottlenecks.
We have strategies and best practices for keeping the main thread uncluttered. We'll examine the root causes of performance issues and techniques for monitoring and improving main thread health as well as app performance.
In this talk, participants will walk away with practical knowledge on enhancing app performance by mastering the main thread. We'll share proven approaches to eliminate real-life ANRs and frozen frames to build apps that deliver butter smooth experience.
Supporting Java? 9 in Eclipse - A critical perspective - Stephan HerrmannEclipse Day India
?
The document discusses supporting Java 9 in Eclipse through 4 acts. Act 1 introduces Java modules and demonstrates them in Eclipse. Act 2 discusses issues with existing Eclipse APIs due to Java 9 changes. Act 3 explores complexities around split packages and package references between modules. Act 4 discusses representing Java 9 module options in the Eclipse UI. The conclusion reflects on encapsulation, isolation and compatibility challenges with Java 9.
Why scala is not my ideal language and what I can do with thisRuslan Shevchenko
?
- The document discusses some of the author's criticisms of Scala, including its use of implicit parameters to configure runtime behavior, and lack of good support for asynchronous programming.
- The author proposes some workarounds, like annotating imports to avoid implicit conflicts, and patching the compiler to add more information to Future exceptions. However, the ideal solution would be language changes or improvements to asynchronous abstractions like Async.
- Overall, the author argues that Scala is not ideal for some use cases like asynchronous programming, but provides some workarounds people can use in the meantime. The best solutions require changes to the language and standard library.
The document discusses improvements made to Apache Flink by Alibaba, called Blink. Blink provides a unified SQL layer for both batch and streaming processes. It supports features like UDF/UDTF/UDAGG, stream-stream joins, windowing, and retraction. Blink also improves Flink's runtime to be more reliable and production-quality when running on large YARN clusters. It has a new architecture using a JobMaster and TaskExecutors. Checkpointing and state management were optimized for incremental backups. Blink has been running in production supporting many of Alibaba's critical systems and processing massive amounts of data.
The document discusses consensus algorithms for distributed systems. It provides an overview of the challenges in achieving consensus in a distributed system due to lack of global knowledge, clock skew, failures, and more. It then describes the Paxos and Raft consensus algorithms, explaining their phases, processes, and how they address the challenges to achieve consensus across multiple servers.
Consensus Algorithms in Distributed Systems LambdaWorld2018Yifan Xing
?
This document discusses consensus algorithms for distributed systems. It begins with an overview of challenges in distributed systems like lack of global knowledge, clock skew, handling concurrent operations and failures. It then covers the consensus algorithms Paxos and Raft in detail. For Paxos, it explains the basic algorithm, proposals, multi-Paxos and the role of leaders. For Raft, it outlines the phases of leader election and log replication, and how it guarantees log consistency even after failures.
Building a social network in under 4 weeks with Serverless and GraphQLYan Cui
?
This document discusses how a social network was built in under 4 weeks using serverless architecture and GraphQL. A small team including 1 full-time front-end developer for mobile, 1 full-time front-end developer for CMS, and 1 part-time back-end developer completed the project in approximately 7, 3, and 4 weeks respectively. AWS services like Cognito, AppSync, DynamoDB, Lambda, S3, and CloudFront were used to build the backend. An AWS organization structure was also implemented for production, staging, and development environments.
This document provides an overview of a hackathon being held by Spryker Systems GmbH from March 16-17, 2016. It introduces Fabian Wesner, a Spryker employee, and provides his contact information. The rest of the document consists of a presentation about Spryker's architecture, programming principles, and key concepts like bundles, layers, and plugins.
David Arcos presented tips for improving Django performance and scalability. He began with basic concepts like the Pareto principle and database performance. He stressed the importance of measuring performance to identify bottlenecks. Specific tips included adding database indexes, bulk operations, caching, and using queues to run slow tasks asynchronously. Arcos concluded by emphasizing the need to measure, optimize bottlenecks, and measure again to verify improvements.
Serverless technologies drastically simplify the task of building modern, scalable APIs in the cloud, and GraphQL makes it easy for frontend teams to consume these APIs and to iterate quickly on your product idea. Together, they are a perfect combination for a product-focused, full-stack team to deliver customer values quickly.
In this talk, see how we built a new social network mobile app in under 4 weeks using Lambda, AppSync, DynamoDB and Algolia. How we approached CI/CD, testing, authentication and lessons we learnt along the way.
Real-world serverless podcast: https://realworldserverless.com
Learn Lambda best practices: https://lambdabestpractice.com
Blog: https://theburningmonk.com
Consulting services: https://theburningmonk.com/hire-me
Production-Ready Serverless workshop: https://productionreadyserverless.com
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"LogeekNightUkraine
?
This document discusses macro vs micro benchmarking in .NET. It defines macro benchmarking as measuring the performance of whole applications or parts of applications from a user's perspective, while micro benchmarking involves repeatable measurement of specific sections of code isolated from virtual machine effects. The document also covers topics like when optimization is needed, profiling tools available for .NET like dotTrace and dotMemory, and concludes that profiling can help identify performance bottlenecks and memory leaks, and forecast potential performance gains.
Caffe - A deep learning framework (Ramin Fahimi)irpycon
?
Caffe is a deep learning framework. It is used for tasks like visual recognition using neural networks and deep learning techniques. Caffe uses plain text configuration files called prototxt to define neural network architectures and hyperparameters. It also supports distributed training on GPUs for large datasets. Caffe provides pre-trained models and tools to load, fine-tune, and publish new models for tasks like image classification and object detection.
This document summarizes a group project to parallelize the solving of Nonograms puzzles.
The group explored several approaches to parallelization including optimizing code structure to take advantage of SIMD instructions, improving memory access, and implementing various MPI versions for distributed processing. Evaluation showed the MPI version with dynamic scheduling and asynchronous communication achieved the best speedup of around 5x on 10 cores. Further optimization of load balancing and addressing data dependencies could provide additional gains but parallelizing the inherently sequential nature of the problem proves challenging.
How Telemedicine App Development is Revolutionizing Virtual Care.pptxDash Technologies Inc
?
Telemedicine app development builds software for remote doctor consultations and patient check-ups. These apps bridge healthcare professionals with patients via video calls, secure messages, and interactive interfaces. That helps practitioners to provide care without immediate face-to-face interactions; hence, simplifying access to medical care. Telemedicine applications also manage appointment scheduling, e-prescribing, and sending reminders.
Telemedicine apps do not only conduct remote consultations. They also integrate with entire healthcare platforms, such as patient forums, insurance claims processing, and providing medical information libraries. Remote patient monitoring enables providers to keep track of patients' vital signs. This helps them intervene and provide care whenever necessary. Telehealth app development eliminates geographical boundaries and facilitates easier communication.
In this blog, we will explore its market growth, essential features, and benefits for both patients and providers.
Packaging your App for AppExchange C Managed Vs Unmanaged.pptxmohayyudin7826
?
Learn how to package your app for Salesforce AppExchange with a deep dive into managed vs. unmanaged packages. Understand the best strategies for ISV success and choosing the right approach for your app development goals.
Research Data Management (RDM): the management of dat in the research processHeilaPienaar
?
Presented as part of the M.IT degree at the Department of Information Science, University of Pretoria, South Africa. Module: Data management. 2023, 2024.
Next.js Development: The Ultimate Solution for High-Performance Web Appsrwinfotech31
?
The key benefits of Next.js development, including blazing-fast performance, enhanced SEO, seamless API and database integration, scalability, and expert support. It showcases how Next.js leverages Server-Side Rendering (SSR), Static Site Generation (SSG), and other advanced technologies to optimize web applications. RW Infotech offers custom solutions, migration services, and 24/7 expert support for seamless Next.js operations. Explore more :- https://www.rwit.io/technologies/next-js
AI in Talent Acquisition: Boosting HiringBeyond Chiefs
?
AI is transforming talent acquisition by streamlining recruitment processes, enhancing decision-making, and delivering personalized candidate experiences. By automating repetitive tasks such as resume screening and interview scheduling, AI significantly reduces hiring costs and improves efficiency, allowing HR teams to focus on strategic initiatives. Additionally, AI-driven analytics help recruiters identify top talent more accurately, leading to better hiring decisions. However, despite these advantages, organizations must address challenges such as AI bias, integration complexities, and resistance to adoption to fully realize its potential. Embracing AI in recruitment can provide a competitive edge, but success depends on aligning technology with business goals and ensuring ethical, unbiased implementation.
Testing Tools for Accessibility Enhancement Part II.pptxJulia Undeutsch
?
Automatic Testing Tools will help you get a first understanding of the accessibility of your website or web application. If you are new to accessibility, it will also help you learn more about the topic and the different issues that are occurring on the web when code is not properly written.
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025David Brossard
?
Today, the authorization world is fractured - each vendor supports its own APIs & protocols. But this is about to change: OpenID AuthZEN was created in late 2023 to establish much-needed modern authorization standards. As of late 2024, AuthZEN has a stable Implementers Draft, and is expected to reach Final Specification in 2025.
With AuthZEN, IAM teams can confidently externalize and standardize authorization across their application estate without being locked in to a proprietary API.
This session will describe the state of modern authorization, review the AuthZEN API, and demo our 15 interoperable implementations.
Least Privilege AWS IAM Role PermissionsChris Wahl
?
RECORDING: https://youtu.be/hKepiNhtWSo
Hello innovators! Welcome to the latest episode of My Essentials Course series. In this video, we'll delve into the concept of least privilege for IAM roles, ensuring roles have the minimum permissions needed for success. Learn strategies to create read-only, developer, and admin roles. Discover tools like IAM Access Analyzer, Pike, and Policy Sentry for generating efficient IAM policies. Follow along as we automate role and policy creation using Pike with Terraform, and test our permissions using GitHub Actions. Enhance your security practices by integrating these powerful tools. Enjoy the video and leave your feedback in the comments!
Scot-Secure is Scotland¨s largest annual cyber security conference. The event brings together senior InfoSec personnel, IT leaders, academics, security researchers and law enforcement, providing a unique forum for knowledge exchange, discussion and high-level networking.
The programme is focussed on improving awareness and best practice through shared learning: highlighting emerging threats, new research and changing adversarial tactics, and examining practical ways to improve resilience, detection and response.
All-Data, Any-AI Integration: FME & Amazon Bedrock in the Real-WorldSafe Software
?
Join us for an exclusive webinar featuring special guest speakers from Amazon, Amberside Energy, and Avineon-Tensing as we explore the power of Amazon Bedrock and FME in AI-driven geospatial workflows.
Discover how Avineon-Tensing is using AWS Bedrock to support Amberside Energy in automating image classification and streamlining site reporting. By integrating Bedrock¨s generative AI capabilities with FME, image processing and categorization become faster and more efficient, ensuring accurate and organized filing of site imagery. Learn how this approach reduces manual effort, standardizes reporting, and leverages AWS¨s secure AI tooling to optimize their workflows.
If you¨re looking to enhance geospatial workflows with AI, automate image processing, or simply explore the potential of FME and Bedrock, this webinar is for you!
Why Outsource Accounting to India A Smart Business Move!.pdfanjelinajones6811
?
Outsource Accounting to India to reduce costs, access skilled professionals, and streamline financial operations. Indian accounting firms offer expert services, advanced technology, and round-the-clock support, making it a smart choice for businesses looking to improve efficiency and focus on growth.
Automating Behavior-Driven Development: Boosting Productivity with Template-D...DOCOMO Innovations, Inc.
?
https://bit.ly/4ciP3mZ
We have successfully established our development process for Drupal custom modules, including automated testing using PHPUnit, all managed through our own GitLab CI/CD pipeline. This setup mirrors the automated testing process used by Drupal.org, which was our goal to emulate.
Building on this success, we have taken the next step by learning Behavior-Driven Development (BDD) using Behat. This approach allows us to automate the execution of acceptance tests for our Cloud Orchestration modules. Our upcoming session will provide a thorough explanation of the practical application of Behat, demonstrating how to effectively use this tool to write and execute comprehensive test scenarios.
In this session, we will cover:
1. Introduction to Behavior-Driven Development (BDD):
- Understanding the principles of BDD and its advantages in the software development lifecycle.
- How BDD aligns with agile methodologies and enhances collaboration between developers, testers, and stakeholders.
2. Overview of Behat:
- Introduction to Behat as a testing framework for BDD.
- Key features of Behat and its integration with other tools and platforms.
3. Automating Acceptance Tests:
- Running Behat tests in our GitLab CI/CD pipeline.
- Techniques for ensuring that automated tests are reliable and maintainable.
- Strategies for continuous improvement and scaling the test suite.
4. Template-Based Test Scenario Reusability:
- How to create reusable test scenario templates in Behat.
- Methods for parameterizing test scenarios to enhance reusability and reduce redundancy.
- Practical examples of how to implement and manage these templates within your testing framework.
By the end of the session, attendees will have a comprehensive understanding of how to leverage Behat for BDD in their own projects, particularly within the context of Drupal and cloud orchestration. They will gain practical knowledge on writing and running automated acceptance tests, ultimately enhancing the quality and efficiency of their development processes.
Top Tips to Get Your Data AI-Ready? ? ?? ?Precisely
?
Asynchronous programming 20180607
1. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
YIFAN XING?- 2018
ASYNCHRONOUS
PROGRAMMING
Yifan Xing
SCALA.CONCURRENT AND
MONIX!
@yifan_xing_e
2. 01 Synchronous vs. Asynchronous
Differences
Futures & Promises
Debugging Async Programs
Monix
A TOUR OF ASYNCHRONOUS
PROGRAMMING IN SCALA
02
03
04
05Overview
ASYNCHRONOUS
PROGRAMMING:
SCALA.CONCURRENT
AND MONIX!
3. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Concurrency
Synchronous
Asynchronous
Single-threaded
Multi-threaded
YIFAN XING?- 2018 @yifan_xing_e
4. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Synchronous: Single-threaded
YIFAN XING?- 2018
Task 1 Task 2 Task 3
@yifan_xing_e
5. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Synchronous: Multi-threaded
YIFAN XING?- 2018
Task 1
Task 2
Task 3
@yifan_xing_e
6. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Asynchronous: Single-threaded
YIFAN XING?- 2018
Task 1
Task 2
Task 3
@yifan_xing_e
7. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Asynchronous: Multi-threaded
YIFAN XING?- 2018
Task 1
Task 2
Task 3
@yifan_xing_e
9. YIFAN XING?- 2018
Scala.concurrent: Future
Computation Incomplete:
Computation Completed:
Future is not completed
Future is completed: with a Value => Success
Future is completed: with an Exception => Failure
An object holding a value which may become available at some point
Immutable
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALAA TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
Future
11. YIFAN XING?- 2018
Example:?Callbacks
Chain callbacks
Allow one to enforce
callbacks to be
executed in a
specified order.
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
12. YIFAN XING?- 2018
Example:?Callbacks
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
Exception in
callback:
NOT propagated
to the
subsequent
andThen
callbacks.
15. YIFAN XING?- 2018
Example:?Transformations
If no match
cases or original future
contains a valid result:
New future will contain
the same result as the
original one.
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALAA TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
Evaluated only after
a Failure
16. YIFAN XING?- 2018
Example:?Transformations
If both futures failed,
the resulting future
holds the throwable
object of the first
future.
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
17. YIFAN XING?- 2018
Scala.concurrent: Promises
A writable, single-assignment container
Can create a Future
Can complete a Future, only ONCE
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
Promise:
18. YIFAN XING?- 2018
Example: Promises
A Promise can be
completed at most ONCE.
If the promise has already
been fulfilled, failed or
has timed out, calling this
method will throw an
IllegalStateException.
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
19. YIFAN XING?- 2018
Example: Promises
If the promise has
already been
completed returns
false, or true
otherwise.
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
@yifan_xing_e
20. YIFAN XING?- 2018
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Problem in A Client-facing Interface
@yifan_xing_e
21. YIFAN XING?- 2018
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
p.future
Problem in A Client-facing Interface
@yifan_xing_e
23. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
What is Monix?
Asynchronous, event-based programs
Data type: Task, etc.
"Factory" of Future instances
Lazy & asynchronous computations
YIFAN XING?- 2018 @yifan_xing_e
24. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Monix: Task
YIFAN XING?- 2018
Lazily evaluated
Evaluated when
call runAsync
Trigger side effects
@yifan_xing_e
25. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Monix: Task Callback
YIFAN XING?- 2018
Eagerly evaluate task
Register callbacks
Similar to
Future#onComplete
@yifan_xing_e
26. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Monix:?Eager/ Lazy
YIFAN XING?- 2018
Evaluate eagerly
Equivalent to Future#successful
Defer eager evaluation
Similar to Task#eval
@yifan_xing_e
27. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Monix:?Memoization
YIFAN XING?- 2018
Evaluated lazily
Not memoized, recompute each
time the Task is executed.
Evaluate lazily
Evaluated exactly ONCE
Result is memoized
@yifan_xing_e
28. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Monix:?MemoizeOnSuccess
YIFAN XING?- 2018
Exceptions are not cached.
Only cache the first
successful result
@yifan_xing_e
29. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Monix:?Alternative Thread Pool
YIFAN XING?- 2018
Overrides default scheduler
Overriding the "default"
scheduler can only happen
ONCE
Task is immutable
@yifan_xing_e
30. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Monix:?CancelableFuture
YIFAN XING?- 2018
Calling it multiple
times has the same side-
effect as calling it only once.
@yifan_xing_e
31. - A value
- Executed when constructed
- Eager evaluation
- ExecutionContext needed whenever use? ?
? ?operators
A function -?
Execution controllable by user?-?
Lazy evaluation -?
ExecutionScheduler needed whenever -?
?use runAsync? ?
MonixFuture
Eager/Lazy
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
32. - Memoized by default
- Evaluated once
- Store result
Explicitly use memoization operators -?
Evaluated whenever needed -?
Referential transparency -?
MonixFuture
Memoization
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
33. - Sometimes errors are? ? ? ? ? ? ? ? ? ? ? ? ?
? ?not?propagated
Scheduler.reportFailure -?
Defaults to System.err -?
Allow customized logging tools -?
MonixFuture
ErrorHandling
A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
38. Writing Async Code
1. Rethink before
adding more code
2. Adding more code to
fix problems will
usually add more bugs
D e b u g
1. Test code in isolation
2. Observe what is
happening
3. Confirm behavior
before moving on
T e s t
39. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Using Await & Print
YIFAN XING?- 2018 @yifan_xing_e
TimeoutException if after
waiting for the specified
time awaitable is still not
ready
atMost may be:
A finite positive duration
Negative (no waiting is
done)
Duration.Inf for
unbounded waiting
40. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
ScalaTest: ScalaFutures
YIFAN XING?- 2018 @yifan_xing_e
Default timeout
150ms
TestFailedException
if not finished after
timeout
41. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Resources: Async Debugger & Capture
YIFAN XING?- 2018 @yifan_xing_e
IntelliJ Capture (2017):
Iulian Dragos - Async Debugger in Scala IDE
IntelliJ IDEA 2017.1 EAP Extends Debugger with Async Stacktraces
Developer's Explanation
Debugging Tutorial
Async Stacktraces
Stack Retention
Scala IDE Doc
Demo: Jamie Allen
Rethink the Debugger: Scala Days 2014
42. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
Using?Async Debugger / Capture
YIFAN XING?- 2018 @yifan_xing_e
Substituting its parts related
to the asynchronous code
execution with where it was
called
Sender: Async code executor
Receiver: executed code
Config exact signatures of
methods of the async code
Stores the stack and
variables info in a map
(1000 stacks), where the
key is a parameter with
the specified number.
43. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
YIFAN XING?- 2018 @yifan_xing_e
( Sorry Alex :P )
44. A TOUR OF ASYNCHRONOUS PROGRAMMING IN SCALA
YIFAN XING?- 2018 @yifan_xing_e