Lambdas and Streams Master Class Part 2José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This second part covers the Stream API, reduction and the Collector API.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Kotlin Bytecode Generation and Runtime Performanceintelliyole
In this talk, we'll dive into the details of how various language features supported by Kotlin are translated to Java bytecode. We'll use the JMH microbenchmarking tool to study the relative performance of various constructs and to understand how we can ensure top performance of the Kotlin code that we write.
Lambdas and Streams Master Class Part 2José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This second part covers the Stream API, reduction and the Collector API.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
Kotlin Bytecode Generation and Runtime Performanceintelliyole
In this talk, we'll dive into the details of how various language features supported by Kotlin are translated to Java bytecode. We'll use the JMH microbenchmarking tool to study the relative performance of various constructs and to understand how we can ensure top performance of the Kotlin code that we write.
The slides of my talk at Devoxx BE 2017. This in depth talk is all about collectors: those available, because we need to know them, those that we can create, those we had no idea they could be created, and the others, as there is in fact no limit to what can be done with this API. The concept of downstream collector will be used to show how we can write entire data processing pipelines using collectors only, and pass them as parameters to other pipelines.
In this core java training session, you will learn Collections - Maps. Topics covered in this session are:
• Collections – Maps
• Map Interface
• Map methods
• Mapuse
• Hashmap
• Treemap
• Utilities
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
In this core java training session, you will learn Collections – Lists, Sets. Topics covered in this session are:
• List – ArrayList, LinkedList
• Set – HashSet, LinkedHashSet, TreeSet
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
Performance of Microservice frameworks on different JVMsMaarten Smeets
A lot is happening in world of JVMs lately. Oracle changed its support policy roadmap for the Oracle JDK. GraalVM has been open sourced. AdoptOpenJDK provides binaries and is supported by (among others) Azul Systems, IBM and Microsoft. Large software vendors provide their own supported OpenJDK distributions such as Amazon (Coretto), RedHat and SAP. Next to OpenJDK there are also different JVM implementations such as Eclipse OpenJ9, Azul Systems Zing and GraalVM (which allows creation of native images). Other variables include different versions of the JDK used and whether you are running the JDK directly on the OS or within a container. Next to that, JVMs support different garbage collection algorithms which influence your application behavior. There are many options for running your Java application and choosing the right ones matters! Performance is often an important factor to take into consideration when choosing your JVM. How do the different JVMs compare with respect to performance when running different Microservice implementations? Does a specific framework provide best performance on a specific JVM implementation? I've performed elaborate measures of (among other things) start-up times, response times, CPU usage, memory usage, garbage collection behavior for these different JVMs with several different frameworks such as Reactive Spring Boot, regular Spring Boot, MicroProfile, Quarkus, Vert.x, Akka. During this presentation I will describe the test setup used and will show you some remarkable differences between the different JVM implementations and Microservice frameworks. Also differences between running a JAR or a native image are shown and the effects of running inside a container. This will help choosing the JVM with the right characteristics for your specific use-case!
Let's get into several common types of queries that developers struggle with, showing SQL solutions, and then analyze them for optimal efficiency. I'll cover Exclusion Join, Random Selection, Greatest-Per-Group, Dynamic Pivot, and Relational Division.
My lecture slides in Advanced Programming with Java course in K.N. Toosi University of Technology about JavaFX.
In this slides I described the basic concept of JavaFX like Shapes, Observer Pattern, Even-Driven Programming and more.
In the Part II I'll describe more advanced topic like FXML applications and CSS styling and more... .
The slides of my talk at Devoxx BE 2017. This in depth talk is all about collectors: those available, because we need to know them, those that we can create, those we had no idea they could be created, and the others, as there is in fact no limit to what can be done with this API. The concept of downstream collector will be used to show how we can write entire data processing pipelines using collectors only, and pass them as parameters to other pipelines.
In this core java training session, you will learn Collections - Maps. Topics covered in this session are:
• Collections – Maps
• Map Interface
• Map methods
• Mapuse
• Hashmap
• Treemap
• Utilities
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
In this core java training session, you will learn Collections – Lists, Sets. Topics covered in this session are:
• List – ArrayList, LinkedList
• Set – HashSet, LinkedHashSet, TreeSet
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
Performance of Microservice frameworks on different JVMsMaarten Smeets
A lot is happening in world of JVMs lately. Oracle changed its support policy roadmap for the Oracle JDK. GraalVM has been open sourced. AdoptOpenJDK provides binaries and is supported by (among others) Azul Systems, IBM and Microsoft. Large software vendors provide their own supported OpenJDK distributions such as Amazon (Coretto), RedHat and SAP. Next to OpenJDK there are also different JVM implementations such as Eclipse OpenJ9, Azul Systems Zing and GraalVM (which allows creation of native images). Other variables include different versions of the JDK used and whether you are running the JDK directly on the OS or within a container. Next to that, JVMs support different garbage collection algorithms which influence your application behavior. There are many options for running your Java application and choosing the right ones matters! Performance is often an important factor to take into consideration when choosing your JVM. How do the different JVMs compare with respect to performance when running different Microservice implementations? Does a specific framework provide best performance on a specific JVM implementation? I've performed elaborate measures of (among other things) start-up times, response times, CPU usage, memory usage, garbage collection behavior for these different JVMs with several different frameworks such as Reactive Spring Boot, regular Spring Boot, MicroProfile, Quarkus, Vert.x, Akka. During this presentation I will describe the test setup used and will show you some remarkable differences between the different JVM implementations and Microservice frameworks. Also differences between running a JAR or a native image are shown and the effects of running inside a container. This will help choosing the JVM with the right characteristics for your specific use-case!
Let's get into several common types of queries that developers struggle with, showing SQL solutions, and then analyze them for optimal efficiency. I'll cover Exclusion Join, Random Selection, Greatest-Per-Group, Dynamic Pivot, and Relational Division.
My lecture slides in Advanced Programming with Java course in K.N. Toosi University of Technology about JavaFX.
In this slides I described the basic concept of JavaFX like Shapes, Observer Pattern, Even-Driven Programming and more.
In the Part II I'll describe more advanced topic like FXML applications and CSS styling and more... .
Cleaner APIs, Cleaner UIs with Visage (33rd Degrees)Stephen Chin
Visage is a JVM language designed specifically for UI development, with special syntax for hierarchically describing UIs, binding data and behavior, and representing UI specific concepts such as animation, layout, and styles. It also is a full-featured language with a full compiler tool-chain, static compilation to JVM bytecodes, and IDE plug-ins. This talk will demonstrate how to use the Visage language to build UIs for JavaFX 2.0, Vaadin, and Android. Find out how you can take control of your UI development by writing cleaner, more maintainable UI code using the Visage language in your existing Java projects.
JavaFX Your Way: Building JavaFX Applications with Alternative LanguagesStephen Chin
JavaFX is more than a language. It is also a platform for building immersive applications with graphics, animation, and rich media. In this session, you will see how you can leverage JavaFX from a host of different JVM languages, including Java, JRuby, Groovy, Scala, and Clojure.
Based on the core.async library Clojure allows a CSP programming style, so your system is made up of asynchronous, lightweight processes which communicate through channels.
The talk shows common pitfalls in classic OO GUI
approaches and shows how to tackle some of these problems in a fundamentally simpler way.
With Java 8 released in March 2014, Oracle Java Technology Ambassador James Weaver discusses many of its new features such as lambda expressions, the stream API, and client-side capabilities with the JavaFX library.
Programming Sideways: Asynchronous Techniques for AndroidEmanuele Di Saverio
Android apps need to respond fast, support highly parallel execution and multi component architecture.
Learn some tricks of the trade for these problems!
as presented at www.mobileconference.it (2013 edition)
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
There is no doubt that 2018 is the year when Progressive Web Apps will get the really broad adoption and recognition by all the involved parties: browser vendors (finally, all the major ones), developers, users. And the speed and smoothness of this process heavily depend on how correctly we, developers, use the power of new APIs. In my session based on the accumulated experience of developing and maintaining PWAs we go through the list of advanced tips & tricks, showcase best practices, learn how to avoid common pitfalls and have a look at the latest browser support and known limitations.
Node.js and microservices go hand in hand. This comes mainly from the design of Node.js. It is a specialised small platform with an enormous package environment. The NPM ecosystem provides a lot of packages you can use to build your microservice. The two most popular frameworks for this job are Express and Seneca. In this talk I will show you how you can communicate synchronously and asynchronously with your microservices and how easy it is to put your Node.js application into a docker container.
While compute becomes faster and cheaper we are tempted to abandon sanity and shield ourselves from reality and laws of physics. The resulting mess of monstrous Slack instances rampaging across our RAM should makes us stop (because our computers did it already) and wonder where did we go wrong? Rising developer salaries and time to market pace are tempting us to abandon all hope for optimising our code and understanding our systems.
Contrary to what casual reader could think this is a deeply technical presentation. We will gaze into hardware counters, NUMA nodes, vector registers and that darkness will stare back at us.
All this to get a taste of what is possible on current hardware, to learn the COST of scalability and forever change how you feel when accessing invoice list in your local utilities provider UI so that after 20s of waiting all 12 elements will be displayed (surely Cthulhu must be eating their compute because it is NOT possible Tauron hosts it’s billing services on FIRST GEN IPHONE).
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)Igor Bronovskyy
09 - Express Nodes on the right Angle - Vitaliy Basyuk - IT Event 2013 (5)
60 вузлів під правильним кутом - миттєва розробка програмних додатків використовуючи Node.js + Express + MongoDB + AngularJS.
Коли ми беремось за новий продукт, передусім ми думаємо про пристрасть, яка необхідна йому, щоб зробити користувача задоволеним і відданим нашому баченню. А що допомагає нам здобути прихильність користувачів? Очевидно, що окрім самої ідеї, також важлими будуть: зручний користувацький інтерфейс, взаємодія в реальному часі та прозора робота з даними. Ці три властивості ми можемо здобути використовучи ті чи інші засоби, проте, коли все лиш починається, набагато зручніше, якщо інструменти допомагають втілити бажане, а не відволікають від головної мети.
Ми розглянемо процес розробки, використовуючи Node.js, Express, MongoDB та AngularJS як найбільш корисного поєднання для отримання вагомої переваги вже на старті вашого продукту.
Віталій Басюк
http://itevent.if.ua/lecture/express-nodes-right-angle-rapid-application-development-using-nodejs-express-mongodb-angular
me ranting about the downsides of Spring Boot / Netflix OSS. Sorry that the slides are a little rare on text, so most likely hard to understand without the actual talk. feel free to send me any questions, though!
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav DukhinFwdays
Is it possible to write a program that significantly changes its behaviour during the runtime without changing its source code? Have you ever wondered about native TypeScript support in Node.js? Or whether it is possible to write JavaScript code that syntactically feels a lot different but is still valid? The answers to these and a lot of other questions will be discussed in detail in this talk. From the basics of metaprogramming theory to practical examples of its application in enterprise projects. We are going to talk about metalinguistic abstractions, domain-specific languages, and how they can help us solve software engineering problems. We will take a look at how popular frameworks and libraries like React.js, Express.js, Nest.js and Lodash use metaprogramming to develop systems that are used worldwide. Moreover, we will learn how to think in terms of metaprograms and broaden our outlook towards the great world of metasystems.
We have checked the Windows 8 Driver Samples pack with our analyzer PVS-Studio and found various bugs in its samples. There is nothing horrible about it - bugs can be found everywhere, so the title of this article may sound a bit high-flown. But these particular errors may be really dangerous, as it is a usual practice for developers to use demo samples as a basis for their own projects or borrow code fragments from them.
This ZCM update presentation was used for an audience of ZENworks administrators / VAI Brainforce customers which needed to be 'inspired' to move away from using the 'old' unsupported snAppShot packaging utility to using Windows Installer and ZENworks Software Packaging aka. AdminStudio ZENworks Edition.
"It’s open source. It’s highly opinionated.
Build greenfield microservices and decompose your Java EE monolith like a boss."
Lightbend (formerly Typesafe) has come up with their own framework, Lagom, for architecting microservices based systems. With Lagom, Lightbend wants to take up the competition with the Spring Cloud stack.
Lagom is built upon Akka and Play and focuses on reactive and message-driven APIs, distributed persistence with Event Sourcing and CQRS and high developer productivity. On the 10th of March a first MVP version has been released with a Java API, the Scala API is being worked on.
This workshop acts as an introduction to Lagom during which we will have a look at developing and deploying Lagom microservices.
As a warm-up, you could check out the newest blogpost on the JWorks Tech Blog: https://ordina-jworks.github.io/microservices/2016/04/22/Lagom-First-Impressions-and-Initial-Comparison-to-Spring-Cloud.html.
Github repo with presentation: https://github.com/yannickdeturck/lagom-shop
Blogpost Lagom: First Impressions and Initial Comparison to Spring Cloud: https://ordina-jworks.github.io/microservices/2016/04/22/Lagom-First-Impressions-and-Initial-Comparison-to-Spring-Cloud.html
Podcast Lightbend Podcast Ep. 09: Andreas Evers test drives Lagom in comparison with Spring Cloud: https://www.lightbend.com/blog/lightbend-podcast-ep-09-andreas-evers-test-drives-lagom-in-comparison-with-spring-cloud
From Web App Model Design to Production with WakandaAlexandre Morgaut
There is many interesting platforms out there to develop Web applications, like .NET, Spring, ruby on rails, Django, LAMP, Meteor, and so on.
In this presentation, you will discover Wakanda a Model driven NoSQL / SSJS platform built on Web standards.
You will see how a project starts, can be designed, tested, developed by a team, debugged, administrated, maintained, and then how to update it in the future.
We will compare to some existing platforms and why Wakanda could make you more efficient.
NestJS (https://nestjs.com/) is a Node.js framework for building server-side applications. This slide give you a brief introduction of Nest, and shows the examples like Service, Middleware, and Pipe, etc.
Mathilde Lemée & Romain Maton
La théorie, c’est bien, la pratique … aussi !
Venez nous rejoindre pour découvrir les profondeurs de Node.js !
Nous nous servirons d’un exemple pratique pour vous permettre d’avoir une premiere experience complete autour de Node.js et de vous permettre de vous forger un avis sur ce serveur Javascript qui fait parler de lui !
http://soft-shake.ch/2011/conference/sessions/incubator/2011/09/01/hands-on-nodejs.html
Improving android experience for both users and developersPavel Lahoda
Android UI and User Experience has changed dramatically in the recent version(s) and while users generally enjoy the new features, there are still several areas that are left to application-level-DIY-patterns. For developers, this is double challenge, they want to provide users with the bleeding edge UI patterns and at the same time, they have to deal with evolving API, that sometimes changes dramatically.
Presentation covers the gotchas developer might face dealing with ever-moving Android API, and how to utilize Java language and the tools it have to make the experience for developer more pleasant. Typical trends in the API will get analyzed and divided into several areas or "patterns", discussing typical scenarios how these components are designed and implemented.
This talk will propose several such UI patterns, that will compete to become "de facto" standards and details on the implementation, including possible impact on existing API as we have both end users and developers in mind.
The list of patterns/areas discussed in the talk include following :
ActionBar
ListView
TimePicker
KineticGestureComponent
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/
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.
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.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
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.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
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.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
3. Speaker
@sialcasa
Alexander Casall
Software Architect & Scrum Product Owner
Custom Software Development Company in Germany
Dresden, Munich, Berlin, Hamburg, Leipzig…
225 employees
3 Scrum Teams in JavaFX Projects
±7 consultants supporting JavaFX projects on customer side
alexander.casall@saxsys.de
4. Speaker
Andy Moncsek
Senior Consultant Application Development
Trivadis AG Switzerland - Zürich
600 employees in Switzerland, Germany and Austria
consulting, development, BI, infrastructure, operation
andy.moncsek@trivadis.com
@andyahcp
6. Before we start:
If you are looking for common performance tipps regarding JavaFX
https://wiki.openjdk.java.net/display/OpenJFX/Performance+Tips+and+Tricks
25. public class TemporaryView extends StackPane {
public TemporaryView(Car dataModel) {
dataModel.name.addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable,
String oldValue, String newValue) {
//Do Something
}
});
}
}
public class Car {
StringProperty name = new SimpleStringProperty("Audi");
}
Instances of anonymous inner
classes hold on to a reference
to their enclosing instances
even if these references are
never actually used.
references
26. @Override
public void start(Stage primaryStage) throws Exception {
this.longlivingData = new Car();
this.root = new VBox(new TemporaryView(longlivingData));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
} VBox in Stage
Temporary
View
long living
Data Model
41. @Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
CompletableFuture<String> future = new CompletableFuture<>();
service.valueProperty().addListener((b, o, n) -> {
if (n != null) {
future.complete(n);
}
});
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
Green or Red?
42.
43. java.lang.IllegalStateException:
Toolkit
not
initialized
at
com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:
at
com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:
at
javafx.application.Platform.runLater(Platform.java:83)
at
javafx.concurrent.Service.runLater(Service.java:913)
at
javafx.concurrent.Service.start(Service.java:676)
…
44. @Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
CompletableFuture<String> future = new CompletableFuture<>();
service.valueProperty().addListener((b, o, n) -> {
if (n != null) {
future.complete(n);
}
});
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
Green or Red?
Needs started FX-Toolkit
46. @RunWith(JfxRunner.class)
public class ServiceNotTestableTest {
@Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
CompletableFuture<String> future = new CompletableFuture<>();
service.valueProperty().addListener((b, o, n) -> {
if (n != null) {
future.complete(n);
}
});
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
<dependency>
<groupId>de.saxsys</groupId>
<artifactId>jfx-testrunner</artifactId>
<version>1.2-SNAPSHOT</version>
</dependency>
47.
48. But…
The Service has the intention
to be reused multiple times.
Let’s test this!
49. Let’s do a small refactoring
@RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
CompletableFuture<String> future = new CompletableFuture<>();
service.valueProperty().addListener((b, o, n) -> {
if (n != null) {
future.complete(n);
}
});
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
50. @RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
//refactored the Completable future stuff with the listeners in a method
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
}
51. @RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
//refactored the Completable future stuff with the listeners in a method
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
}
Green or Red?
52.
53. java.lang.IllegalStateException:
Service
must
only
be
used
from
the
FX
Application
Thread
at
javafx.concurrent.Service.checkThread(Service.java:906)
at
javafx.concurrent.Service.valueProperty(Service.java:205)
at
de.saxsys.pitfalls.services.ClassToTestTest.testLongLastingOperation(ClassToTestTest.java:
40)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
54. @RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
//refactored the Completable future stuff with the listeners in a method
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
}
Exception goes here
55. Let’s have a look on the Service Implementation
@Override public final V getValue() { checkThread(); return value.get(); }
@Override public final ReadOnlyObjectProperty<V> valueProperty() { checkThread(); return value;}
/**
* Cancels any currently running Task, if any, and restarts this Service. The state
* will be reset to READY prior to execution. This method should only be called on
* the FX application thread.
*/
public void restart() {
checkThread();
…
}
void checkThread() {
if (startedOnce && !isFxApplicationThread()) {
throw new IllegalStateException("Service must only be
used from the FX Application Thread");
}
}
60. @RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
public void testLongLastingOperation() throws … {
TestService service = new TestService();
//refactored the Completable future stuff with the listeners in a method
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
}
61. @RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
@TestInJfxThread
public void testLongLastingOperation() throws … {
TestService service = new TestService();
//refactored the Completable future stuff with the listeners in a method
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
}
jfx-testrunner annotation
62. @RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
@TestInJfxThread
public void testLongLastingOperation() throws … {
TestService service = new TestService();
//refactored the Completable future stuff with the listeners in a method
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
}
Green or Red?
63.
64. java.util.concurrent.TimeoutException
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1763)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1907)
at de.saxsys.pitfalls.services.nottestable.ServiceNotTestableTest.testLongLastingOperationInFXThread(
TestServiceTest.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at de.saxsys.javafx.test.JfxRunner.access$0(JfxRunner.java:1)
at de.saxsys.javafx.test.JfxRunner.lambda$0(JfxRunner.java:47)
at de.saxsys.javafx.test.JfxRunner$$Lambda$56/1865127310.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$170(PlatformImpl.java:295)
at com.sun.javafx.application.PlatformImpl$$Lambda$52/1724593206.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(PlatformImpl.java:294)
at com.sun.javafx.application.PlatformImpl$$Lambda$51/580016451.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
65. @RunWith(JfxRunner.class)
public class TestableServiceTest {
@Test
@TestInJfxThread
public void testLongLastingOperation() throws … {
TestService service = new TestService();
//refactored the Completable future stuff with the listeners in a method
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
CompletableFuture<String> future = createFutureWithListener(service);
service.restart();
assertEquals("I'm an expensive result.", future.get(5, TimeUnit.SECONDS));
}
}
Line 85: .get()
blocks the UI Thread
70. @Test
public void testLongLastingOperationSimple() throws … {
TestService service = new TestService();
CompletableFuture<String> future = new CompletableFuture<>();
Platform.runLater(() -> {
service.valueProperty().addListener((b, o, n) -> {
if (n != null) {
future.complete(n);
}
});
service.restart();
});
assertEquals("I'm an expensive result. 1", future.get(5, TimeUnit.SECONDS));
CompletableFuture<String> future = new CompletableFuture<>();
Platform.runLater(() -> {
service.valueProperty().addListener((b, o, n) -> {
if (n != null) {
future.complete(n);
}
});
service.restart();
});
assertEquals("I'm an expensive result. 1", future.get(5, TimeUnit.SECONDS));
}
For each execution of the Service you have to double the
amount of the (boilerplate)-code.
71. This is too much boilerplate code for testing Services
72. @RunWith(JfxRunner.class)
public class ServiceTestableTest {
@Test
public void startServiceMultipleTimesTest() throws …{
TestService service = new TestService();
ServiceWrapper wrapper = new ServiceWrapper(service);
wrapper.startAndWait(6000);
assertEquals("I'm an expensive result. 1", wrapper.getValue());
wrapper.restartAndWait(6000);
assertEquals("I'm an expensive result. 2", wrapper.getValue());
}
}
no more
checkThread()
problems for asserts
reduces
platform issues
get help with jfx-‐testrunner
https://github.com/sialcasa/jfx-testrunner
blocks test thread
74. Don’t create a complex node graph in the UI Thread!
Threading and Services
75. but you should create Nodes in background threads!
Attach Nodes to the scene graph on the UI Thread only,
76. Load Data
FX-Thread
ArrayList<String> data = getBigData();
Pane displayPane = new Pane();
for (int i = 0; i < data.size(); i++) {
Label label = new Label(data.get(i));
displayPane.getChildren().add(label);
}
root.getChildren().add(displayPane);
UI-Freezes until the
Graph has been build
Display Loaded Data
77. Load Data
FX-Thread
ArrayList<String> data = new ArrayList<>();
Pane displayPane = new Pane();
for (int i = 0; i < data.size(); i++) {
Label label = new Label(data.get(i));
displayPane.getChildren().add(label);
}
Platform.runLater(() -> root.getChildren().add(displayPane));
Build Graph
80. SimpleImageInfo
info
=
new
SimpleImageInfo(file);
double
width
=
info.getWidth();
double
height
=
info.getHeight();
Uses meta-data in header [1]
Loading the whole image to get the Metadata is bad.
Image
image
=
new
Image("/50mp.jpg",
true);
double
width
=
image.getWidth();
double
height
=
image.getHeight();
How to preprocess the Metadata of Images?
82. Read / Write
javafx.scene.image.PixelWriter
retrieving the pixel data from an Image
writing the pixel data of a WritableImage
javafx.scene.image.PixelReader
Read Pixels Process Pixels Write Pixels
83. Many methods, same result…
PixelReader getArgb(…) getColor(…) getPixels(…)
setArgb(…) setColor(…) setPixels(…)PixelWriter
e.g. cropping
86. What is the right pixel format for Quantum Toolkit?
BYTE_BGRA_PRE
myPixelReader.setPixels(…,pixelformat
,…);
myPixelReader.getPixels(…,pixelformat
,…);
@Override
public
PlatformImage
createPlatformImage(int
w,
int
h)
{
ByteBuffer
bytebuf
=
ByteBuffer.allocate(w
*
h
*
4);
return
com.sun.prism.Image.fromByteBgraPreData(bytebuf,
w,
h);
}
calls
87. Demo - Videoplayer using VLC & setPixels()
1. FX-Mediaplayer does not supports all codecs
2. there is no javafx.scene.media.* on ARM
VLC solves 2 additional pitfalls