Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
Functional Programming Past Present FutureIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
How to Think in RxJava Before ReactingIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
The slides from the talk I gave at Oracle III #JuevesTecnológicos in Madrid.
A review of how the ParallelStreams Work in Java 8 and some considerations we must know in order to get the better performance from the concurrent data processing in #Java8
Java 8 Stream API. A different way to process collections.David Gómez García
A look on one of the features of Java 8 hidden behind the lambdas. A different way to iterate Collections. You'll never see the Collecions the same way.
These are the slides I used on my talk at the "Tech Thursday" by Oracle in June in Madrid.
This is a beginner's guide to Java 8 Lambdas, accompnied with executable code examples which you can find at https://github.com/manvendrasinghkadam/java8streams. Java 8 Streams are based on Lambdas, so this presentation assumes you know Lambdas quite well. If don't then please let me know I'll create another presentation regarding it with code examples. Lambdas are relatively easy to use and with the power of stream api you can do functional programming in Java right from start. This is very cool to be a Java programmer now.
Functional Programming Past Present FutureIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
How to Think in RxJava Before ReactingIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
The slides from the talk I gave at Oracle III #JuevesTecnológicos in Madrid.
A review of how the ParallelStreams Work in Java 8 and some considerations we must know in order to get the better performance from the concurrent data processing in #Java8
Java 8 Stream API. A different way to process collections.David Gómez García
A look on one of the features of Java 8 hidden behind the lambdas. A different way to iterate Collections. You'll never see the Collecions the same way.
These are the slides I used on my talk at the "Tech Thursday" by Oracle in June in Madrid.
This is a beginner's guide to Java 8 Lambdas, accompnied with executable code examples which you can find at https://github.com/manvendrasinghkadam/java8streams. Java 8 Streams are based on Lambdas, so this presentation assumes you know Lambdas quite well. If don't then please let me know I'll create another presentation regarding it with code examples. Lambdas are relatively easy to use and with the power of stream api you can do functional programming in Java right from start. This is very cool to be a Java programmer now.
Slides for a lightning talk on Java 8 lambda expressions I gave at the Near Infinity (www.nearinfinity.com) 2013 spring conference.
The associated sample code is on GitHub at https://github.com/sleberknight/java8-lambda-samples
When embracing Java 8 we walk down the yellow brick road to the wizard of lambdas. That road usually starts from the fear and terror of learning their syntax until finally getting to understand them and opening our minds to the fruitful fields of functional programming. But this road eventually reaches a final stage: the lambda abuse.
To master the lambdas art means to know when to use them and when not to not damage your brain and, most importantly, other Java developers’. Keep your code readable and maintainable, avoid becoming a lambda addict!
The new Java 8 stream library is the most exciting addition to come to Java in a long time. It allows entire algorithms to be expressed in one line, parallelism to be obtained on-demand, and plumbing code to be flushed down the drain. This presentation will show you how to think in streams, effective parallelization, plus advanced concepts like mutable reduction and declarative collection. Write better code with streams. This presentation will show you how.
A presentation given to Overstock.com IT at annual conference. Twitter @TECHknO 2015. Goal of the presentation is to provide a good introduction to the reactive programming model with RxJava.
Spark schema for free with David SzakallasDatabricks
DataFrames are essential for high-performance code, but sadly lag behind in development experience in Scala. When we started migrating our existing Spark application from RDDs to DataFrames at Whitepages, we had to scratch our heads real hard to come up with a good solution. DataFrames come at a loss of compile-time type safety and there is limited support for encoding JVM types.
We wanted more descriptive types without the overhead of Dataset operations. The data binding API should be extendable. Schema for input files should be generated from classes when we don’t want inference. UDFs should be more type-safe. Spark does not provide these natively, but with the help of shapeless and type-level programming we found a solution to nearly all of our wishes. We migrated the RDD code without any of the following: changing our domain entities, writing schema description or breaking binary compatibility with our existing formats. Instead we derived schema, data binding and UDFs, and tried to sacrifice the least amount of type safety while still enjoying the performance of DataFrames.
Map(), flatmap() and reduce() are your new best friends: simpler collections,...Chris Richardson
Higher-order functions such as map(), flatmap(), filter() and reduce() have their origins in mathematics and ancient functional programming languages such as Lisp. But today they have entered the mainstream and are available in languages such as JavaScript, Scala and Java 8. They are well on their way to becoming an essential part of every developer’s toolbox.
In this talk you will learn how these and other higher-order functions enable you to write simple, expressive and concise code that solve problems in a diverse set of domains. We will describe how you use them to process collections in Java and Scala. You will learn how functional Futures and Rx (Reactive Extensions) Observables simplify concurrent code. We will even talk about how to write big data applications in a functional style using libraries such as Scalding.
Functional Programming in Java - Code for MaintainabilityMarcin Stepien
Functional Programming is nothing new to the JVM. But with Java 8 it was the big change in paradigm for Java developers. Learn how switching from imperative to functional results in more maintainable code.
The presentation was given at tech meetup KrkDataLink, The missing link between Functional Programming and Data Science.
Hierarchical free monads and software design in fpAlexander Granin
I invented the approach I call "Hierarchical Free Monads". It helps to build applications in Haskell with achieving all the needed code quality requirements. I tested this approach in several real world projects and companies, and it works very well.
Slides for a lightning talk on Java 8 lambda expressions I gave at the Near Infinity (www.nearinfinity.com) 2013 spring conference.
The associated sample code is on GitHub at https://github.com/sleberknight/java8-lambda-samples
When embracing Java 8 we walk down the yellow brick road to the wizard of lambdas. That road usually starts from the fear and terror of learning their syntax until finally getting to understand them and opening our minds to the fruitful fields of functional programming. But this road eventually reaches a final stage: the lambda abuse.
To master the lambdas art means to know when to use them and when not to not damage your brain and, most importantly, other Java developers’. Keep your code readable and maintainable, avoid becoming a lambda addict!
The new Java 8 stream library is the most exciting addition to come to Java in a long time. It allows entire algorithms to be expressed in one line, parallelism to be obtained on-demand, and plumbing code to be flushed down the drain. This presentation will show you how to think in streams, effective parallelization, plus advanced concepts like mutable reduction and declarative collection. Write better code with streams. This presentation will show you how.
A presentation given to Overstock.com IT at annual conference. Twitter @TECHknO 2015. Goal of the presentation is to provide a good introduction to the reactive programming model with RxJava.
Spark schema for free with David SzakallasDatabricks
DataFrames are essential for high-performance code, but sadly lag behind in development experience in Scala. When we started migrating our existing Spark application from RDDs to DataFrames at Whitepages, we had to scratch our heads real hard to come up with a good solution. DataFrames come at a loss of compile-time type safety and there is limited support for encoding JVM types.
We wanted more descriptive types without the overhead of Dataset operations. The data binding API should be extendable. Schema for input files should be generated from classes when we don’t want inference. UDFs should be more type-safe. Spark does not provide these natively, but with the help of shapeless and type-level programming we found a solution to nearly all of our wishes. We migrated the RDD code without any of the following: changing our domain entities, writing schema description or breaking binary compatibility with our existing formats. Instead we derived schema, data binding and UDFs, and tried to sacrifice the least amount of type safety while still enjoying the performance of DataFrames.
Map(), flatmap() and reduce() are your new best friends: simpler collections,...Chris Richardson
Higher-order functions such as map(), flatmap(), filter() and reduce() have their origins in mathematics and ancient functional programming languages such as Lisp. But today they have entered the mainstream and are available in languages such as JavaScript, Scala and Java 8. They are well on their way to becoming an essential part of every developer’s toolbox.
In this talk you will learn how these and other higher-order functions enable you to write simple, expressive and concise code that solve problems in a diverse set of domains. We will describe how you use them to process collections in Java and Scala. You will learn how functional Futures and Rx (Reactive Extensions) Observables simplify concurrent code. We will even talk about how to write big data applications in a functional style using libraries such as Scalding.
Functional Programming in Java - Code for MaintainabilityMarcin Stepien
Functional Programming is nothing new to the JVM. But with Java 8 it was the big change in paradigm for Java developers. Learn how switching from imperative to functional results in more maintainable code.
The presentation was given at tech meetup KrkDataLink, The missing link between Functional Programming and Data Science.
Hierarchical free monads and software design in fpAlexander Granin
I invented the approach I call "Hierarchical Free Monads". It helps to build applications in Haskell with achieving all the needed code quality requirements. I tested this approach in several real world projects and companies, and it works very well.
Java 8 Streams And Common Operations By Harmeet Singh(Taara)Harmeet Singh(Taara)
In this, we are discuss about Java 8 Streams. Common Operations . Java 8 Streams are huge topic, so i am not cover all the things, but try to cover the basics operations of Streams. Before this, please refer my previous presentation "Functional programming in java 8", because of clear some basic concept for functional programming. For the reference use Java 8 API docs.
Do you want to learn functional programming in Java using lambda expressions introduced in Java 8? Do you want to explore the foundational concepts to explore powerful stream API? This presentation provides an overview of lambda functions introduced in Java 8 through examples. Topics covered: What is functional programming, creating lambda expressions, functional interfaces, built-in functional interfaces, and method references.
Make sure you have JDK 8 installed for trying out the programs as you go through the self-contained programming examples.
On March 2014, Java 8 was released. These informal slides describe the new elements of the programming languages, focusing on those taken from the functional paradigm.
Development of a Distributed Stream Processing System (DSPS) in node.js and ZeroMQ and demonstration of an application of trending topics with a dataset from Twitter.
Gdg almaty. Функциональное программирование в Java 8Madina Kamzina
О функциональном программировании (ФП), преимуществах его использования и о том, какие возможности для него добавили в новом релизе Java. Слушатели также узнают, почему уже сейчас стоит начать изучать ФП.
Митап состоялся ->> https://plus.google.com/u/0/b/100893943920756626864/events/c0b2b1ih9ft0opcdnmdgp3453rk
Similar to Harnessing the Power of Java 8 Streams (20)
Http2 is here! And why the web needs itIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
Understanding Bitcoin (Blockchain) and its Potential for Disruptive ApplicationsIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
Go Programming Language - Learning The Go Lang wayIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
IoT testing and quality assurance indicthreadsIndicThreads
Presented at the IndicThreads.com Software Development Conference 2016 held in Pune, India. More at http://www.IndicThreads.com and http://Pune16.IndicThreads.com
--
Internet of things architecture perspective - IndicThreads ConferenceIndicThreads
Internet of Things is gaining unprecedented amount of traction across the globe. And the large organizations are making huge investments on IoT, which is going to change the shape of the 'Connected World'. Hence, it becomes necessarily important to understand the components, technologies and their interaction in the world of IoT.
The session would cover the Introduction of IoT, its components, the forces that have brought the ecosystem to mainstream and its adoption across industries. Then along with the Reference Architecture, I would discuss a few of industry implementations in IOT area with reference to the architecture. Next would be a comparative analysis of various IOT platforms available in the market and their architectures. And finally I would take up the challenges in making IOT as pervasive as it is believed to be.
A key take away would be the architectural appreciation of IOT landscape. As of now, any and every player in the market has begun to advertise their product as an IOT platform but a comprehensive review of fundamental design and architecture would bring this plethora of products (including open source ones) in the right purview. And that's the objective of this talk.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Cars and Computers: Building a Java CarputerIndicThreads
The average family car of today has significantly more computing power than got the first astronauts to the moon and back. Modern cars contain more and more computers to monitor and control every aspect of driving, from anti-lock brakes to engine management to satellite navigation.
This session will look at how Java can (and is) used in cars to add more data collection. This will cover a project that was written to collect a variety of data from a car whilst driving (including video) and then play it back later so driving style and performance could be evaluated. There will be plenty of demonstrations.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Remember the last time you tried to write a MapReduce job (obviously something non trivial than a word count)? It sure did the work, but has lot of pain points from getting an idea to implement it in terms of map reduce. Did you wonder how life will be much simple if you had to code like doing collection operations and hence being transparent* to its distributed nature? Did you want/hope for more performant/low latency jobs? Well, seems like you are in luck.
In this talk, we will be covering a different way to do MapReduce kind of operations without being just limited to map and reduce, yes, we will be talking about Apache Spark. We will compare and contrast Spark programming model with Map Reduce. We will see where it shines, and why to use it, how to use it. We’ll be covering aspects like testability, maintainability, conciseness of the code, and some features like iterative processing, optional in-memory caching and others. We will see how Spark, being just a cluster computing engine, abstracts the underlying distributed storage, and cluster management aspects, giving us a uniform interface to consume/process/query the data. We will explore the basic abstraction of RDD which gives us so many awesome features making Apache Spark a very good choice for your big data applications. We will see this through some non trivial code examples.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & DockerIndicThreads
Continuous Integration (CI) is one of the most important tenets of agile practices. And Continuous Delivery (CD) is impossible without continuous integration. All practices are good and enhance productivity when other good practices and tools back them. For example CI & CD without proper automation test cases can be a killer. It kills the team productivity and puts deliver on risk. Via this session I will try to share my experiences of how CI and CD can be done in optimized fashion (specifically for feature branch based development approach)
We will discuss the best practices and ways of ensuring proper CI and CD in feature branch based development approach.
I will showcase an automated Jenkins based setup, which is geared to ensure that all feature branches and master remain in cohesive harmony.
At the end we will conclude on what are the essential components for ensuring successful CI and CD. We will also discuss what are the associated must haves to make it a success.
Take away for participants
1. Understanding of CI and CD and how CI can lead to CD.
2. How a devops engineer can leverage Jenkins and scripting to automate the CI and CD for feature branch based development.
3. Demo of CI setup devloped on Jenkins.
4. Generic understanding and Q&A related to CI and CD.
5. Learning of how docker can be used in such scenarios.
Session at the IndicThreads.com Confence held in Pune India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Speed up your build pipeline for faster feedbackIndicThreads
In this talk I will share how we brought down our Jenkins build pipeline time down from over 90 minutes to under 12 minutes. I will share specific techniques which helped and also some, which logically made sense, but actually did not help. If your team is trying to optimize their build times, then this session might give you some ideas on how to approach the problem.
Development Impact – The number of builds in a day have increased over a period of time as the build time has reduced. Frequency of code check-in has increased; Wait time has reduced; failed test case faster to isolate and fix.
The sessions will look at: Why long running pipeline was hurting, Key Principles to Speed Up Your Build Pipeline, Bottlenecks , Disk IO examples and alternatives, Insights from CPU Profiling, Divide and Conquer, Fail Fast, Results
The talk will highlight: Importance of getting fast feedback, How to investigate long running tests, How to run Tests concurrently, RAM Disks, SSD, Hybrid disks, Why you should not assume; but validate your hypothesis.
Session at the IndicThreads.com Confence held in Pune India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
OpenStack – an open source initiative for cloud management – has become a sensation is today’s Infrastructure as a Service (IaaS) cloud space. With more than 10 subprojects to manage server, storage, network, security and monitoring of the cloud, OpenStack has provided a competitive and scalable open source solution in cloud space. Big giants in public and private cloud such as VMware, Amazon and IBM are actively investing into OpenStack and developing their products to integrate with it.
The session will talk about the architecture of OpenStack and will discuss why it has become a differentiating factor for business in cloud space through scalability, automation, intuitiveness and flexibility. The session will also discuss how it integrates with the Platform as a Service (PaaS) layer and scales to public and private cloud.
The session will also contain a live demo of how a simple private cloud can be set up using OpenStack. The demo will explain how OpenStack makes the cloud management easy even for universities and small enterprises to rapidly adapt to their business needs at almost no costs.
Finally, the session will discuss current challenges and trends in OpenStack community and how can one contribute to OpenStack as an enterprise or individual.
The speaker leads development of IBM’s new OpenStack based Infrastructure As A Service (IaaS) solution and will share his insights into OpenStack services and components.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Digital Transformation of the Enterprise. What IT leaders need to know!IndicThreads
This presentation will be about the changing times and nature of IT services delivered to the consumer. In the past, it used to be delivered through thick or thin clients on the desktop. Today, these are primarily delivered to the mobile in the form of a digital service.
While a lot of talk is about disruption that the smart phones have brought, the truth is, that the backend has to be more industrialised than ever before due to the massive number of transactions that terminate in the legacy IT infrastructure. Companies need both, industrial IT and innovation IT to be able to compete effectively in the digital marketplace. This presentation will be about the different imperatives the new IT leaders have to think about in the digital era.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Architectural Considerations For Complex Mobile And Web ApplicationsIndicThreads
As devices used by our customers are becoming powerful, we are driven to write applications which provide a rich experience. Thus, mobile and web applications today are much more complex compared to what we might have imagined in the Web 1.0 days. Some of this complexity is legitimate, but we end up adding logic on the client-side which can easily be shifted to the servers.
This talk will focus on the architectural considerations to keep as much of the complexity as possible on the server-side. This talk will focus on design considerations while building APIs to service applications running on multiple platforms.
The presenter will share his experience of building APIs servings multiple platforms (iPhone, Android and Web). Certain non-technical aspects will also be highlighted. Target audience are developers and architects who influence development of complex mobile and web applications.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Functional Programming With Lambdas and Streams in JDK8IndicThreads
The significant new language feature in Java SE 8 is the introduction of Lambda expressions, a way of defining and using anonymous functions. On its own this provides a great way to simplify situations where we would typically use an inner class today. However, Java SE 8 also introduces a range of new classes in the standard libraries that are designed specifically to take advantage of Lambdas. These are primarily included in two new packages: java.util.stream and java.util.function.
After a brief discussion of the syntax and use of Lambda expressions this session will focus on how to use Streams to greatly simplify the way bulk and aggregate operations are handled in Java. We will look at examples of how a more functional approach can be taken in Java using sources, intermediate operations and terminators. We will also discuss how this can lead to improvements in performance for many operations through the lazy evaluation of Streams and how code can easily be made parallel by changing the way the Stream is created.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Changing application demands: What developers need to knowIndicThreads
Due to the demands of our hyper-connected, Internet-driven economy, users expect speedy delivery of new features, highly engaging personalized user experiences, and smooth, streamlined performance. The result is that best practices for application development and architecture are rapidly changing.
Traditional approaches to development are no longer competitive, with the new focus on simplicity, usability, and large-scale DevOps agility. In order to thrive, development teams must adjust to deliver high-quality applications fast.
This keynote will discuss:
The traditional monolith application vs. the modern application.
Architectural considerations for the modern application.
How trends such as DevOps and microservices affect application design.
Tools, technologies, and techniques for building modern applications.
Session at the IndicThreads.com Confence held in Pune, India on 27-28 Feb 2015
http://www.indicthreads.com
http://pune15.indicthreads.com
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
3. helps to make a strategic decision about what
programming language should be adopted
when starting to build a new software system
Java 8 released on
Mar 18, 2014
4. –Robert C. Martin
“There are two parts to learning
craftsmanship: knowledge and work.
You must gain the knowledge of
principles, patterns, practices, and
heuristics that a craftsman knows,
and
you must also grind that knowledge
into your fingers, eyes, and gut by
working hard and
practicing..”
7. Harnessing the power Java 8 Streams
Declarative
Programming
Internal
Iteration
Programming Paradigm Concepts
8. Declarative
SELECT NAME FROM PERSON WHERE AGE > 18;
List<String> adults = group.stream()
.filter(p -> p.age() > 18)
.map(Person::name)
.collect(toList());
You declare what the program has to do
and the library takes care of how to do it
9. Declarative
Focuses on
What
List<String> adults = new ArrayList<>();
for (Person person: group)
if (person.age() > 18)
adults.add(person.name());
Focuses on
How and
What
vs Imperative
List<String> adults = group.stream()
.filter(p -> p.age() > 18)
.map(Person::name)
.collect(toList());
10. Old way vs New way
final List<String> names = new ArrayList<>();
for (Person p : group)
if (p.age() > 18)
names.add(p.name());
return names;
return group.stream()
.filter(p -> p.age() > 18)
.map(Person::name)
.collect(toList());
List<String> namesOfAdultsInTheGroup(List<Person> group) {
}
External Iteration
Internal Iteration
new declarative way
old imperative way
List<String> namesOfAdultsInTheGroup(List<Person> group) {
}
12. Application of Streams
interface CustomerRepository {
Stream<Customer> findByCity(String cityName);
}
try (Stream<String> stream =
repository.findByCity(“Pune")) {
return stream.filter(…).count();
}
API Definition
Usage of the API
Consume items as they arrive
Efficient memory usage
14. Stream
a read-only sequence of elements
computational operations that will be performed
in aggregate
Collection
efficient management of elements
efficient access to elements
17. names
group
Stream<Person>
Archer
(22 years)
Barbara
(17 years)
Daisy
(25 years)
is person’s age > 18 ?
Stream<Person>
Stream<String>
map to name of person
collect into a list
group.stream()
.filter(p ->
p.age() > 18)
.map(Person::name)
.collect(
Collectors.toList());
Archer
(22 years)
Barbara
(17 years)
Daisy
(25 years)
Archer
(22 years)
Daisy
(25 years)
Archer Daisy
Archer Daisy
19. Creating Stream
From an I/O Channel
try (Stream<Path> stream =
Files.list(Paths.get(“.”));) {
…
}
Stream interface extends AutoCloseable
20. Creating Stream
Using Generator Functions
Stream<Double> stream = Stream.generate(Math::random);
Stream<Integer> stream = Stream.iterate(0, n -> n + 3);
Both are unbounded
21. Parallel Stream
From Collection
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.parallelStream();
From another Stream
Stream<String> parallelStream = stream.parallel();
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.parallelStream();
Stream<String> parallelStream = stream.parallel();
23. Parallel Stream
Performance Impact
Always measure performance before using parallel
Stream size predictability & Amount of data
Decomposability of source data structure
Computational Cost
29. Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.filter(n -> n % 2 == 0);
Intermediate Operators
Laziness
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.filter(n -> n % 2 == 0)
.collect(toList());
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.filter(n -> n % 2 == 0);
Terminal operator is required to start stream processing
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.filter(n -> n % 2 == 0)
.collect(toList());
Peek will not print
anything
30. Intermediate Operators
Short-Circuiting
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.filter(n -> n % 2 == 0)
.findFirst();
Stream will get short-circuited
after the first element is found
Peek will print
only 1 & 2
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.filter(n -> n % 2 == 0)
.findFirst();
31. Intermediate Operators
Stateless
vs Stateful
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.filter(n -> n % 2 == 0)
.findFirst();
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.sorted(Comparator.reverseOrder())
.filter(n -> n % 2 == 0)
.findFirst();
Will cause the
whole stream
to be
traversed
All operations
are done on
current value
in stream
Stream.of(1, 2, 3, 4)
.peek(System.out::println)
.sorted(Comparator.reverseOrder())
.filter(n -> n % 2 == 0)
.findFirst();
34. Terminal Operators
reduce
<U> U reduce(U identity,
BiFunction<U, ? super T, U> accumulator,
BinaryOperator<U> combiner);
Stream.of(3, 2, 1).reduce(0, Integer::sum, Integer::sum);
Stream.of(3, 2, 1).reduce(0, Integer::sum);
Immutable Reduction Process
<U> U reduce(U identity,
BiFunction<U, ? super T, U> accumulator,
BinaryOperator<U> combiner);
<U> U reduce(U identity,
BiFunction<U, ? super T, U> accumulator,
BinaryOperator<U> combiner);
<U> U reduce(U identity,
BiFunction<U, ? super T, U> accumulator,
BinaryOperator<U> combiner);
35. Terminal Operators
reduce utility methods
Optional<Integer> max =
Stream.of(1, 2, 3)
.max(Comparator.naturalOrder());
boolean result = Stream.of(1, 2, 3)
.anyMatch(n -> n > 2);
Optional<Integer> max =
Stream.of(1, 2, 3)
.max(Comparator.naturalOrder());
boolean result = Stream.of(1, 2, 3)
.anyMatch(n -> n > 2);
36. Terminal Operators
collect
Mutable Reduction Process
Accumulates elements into a mutable result container
Stream.of("a", "b", "c").reduce("", String::concat);
String copying = Low Performance !!
37. Terminal Operators
collect
<R> R collect(Supplier<R> supplier,
BiConsumer<R, ? super T> accumulator,
BiConsumer<R, R> combiner);
StringBuilder builder = Stream.of("a", "b", "c").collect(
StringBuilder::new,
StringBuilder::append,
StringBuilder::append
);
StringBuilder is the mutable container here
39. Terminal Operators
Downstream Collectors
Map<Integer, List<Person>> result = group.stream()
.collect(Collectors.groupingBy(Person::age,
Collectors.toList()));
Map<Integer, List<Person>> result = group.stream()
.collect(groupingBy(Person::age));
Divide into different age groups
40. Terminal Operators
Downstream Collectors
Map<Integer, Long> result = group.stream()
.collect(groupingBy(Person::age, counting()));
Map<Integer, List<String>> result = group.stream()
.collect(groupingBy(Person::age,
mapping(Person::name, toList())));
Count of people in each age group
Names on people in each age group
43. Primitive Streams
Creating from factory methods
IntStream intStream = IntStream.range(1, 10);
DoubleStream doubleStream = DoubleStream.of(1.0, 2.0);
LongStream longStream =
LongStream.iterate(0L, n -> n + 4);
Generating a range of numbers
Stream of known set of numbers
Stream using iterative application of a function