This document summarizes a presentation about advanced effects in Java desktop applications using the Swing toolkit. The presentation discusses how to hook into the Swing painting pipeline using components like the RepaintManager and glass pane. It demonstrates how to play with opacity and layering to create transition effects. The Rainbow demo is shown as an example of using these techniques to add visual effects like translucency and ghosting.
Continuous Delivery refers to the process of releasing high quality software quickly and with confidence through the use of build, test and deployment automation. By applying Lean techniques to the development, test and deployment of software, waste is reduced and staff are freed up to work on more important tasks. By following a continuous delivery model, release cycles shift from a matter of months to weeks or days.
In this presentation, we will look at the key tools and processes involved in transitioning from a manual culture to one that embraces automation. We will look at real world examples, including the tools and architectural components. We will discuss organizational impacts, including the dramatic improvements in morale as team delivery commitments are met more easily through automation.
glideinWMS Frontend Internals - glideinWMS Training Jan 2012Igor Sfiligoi
This presentation provides a detailed insight on the internal working of the glideinWMS Frontend. Part of the glideinWMS Training session held in Jan 2012 at UCSD.
Modern applications are more and more moving away from static forms. In a modern interface, widgets and graphical elements are animated and transitioned smoothly. Those effects make your application look good but their main purpose should be to help end-users find out what's going on in their applications. In upcoming Qt versions we’re adding a new Animation Framework that relies upon Qt’s QObject-based architecture.
Presentation by Thierry Bastian held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Continuous Delivery refers to the process of releasing high quality software quickly and with confidence through the use of build, test and deployment automation. By applying Lean techniques to the development, test and deployment of software, waste is reduced and staff are freed up to work on more important tasks. By following a continuous delivery model, release cycles shift from a matter of months to weeks or days.
In this presentation, we will look at the key tools and processes involved in transitioning from a manual culture to one that embraces automation. We will look at real world examples, including the tools and architectural components. We will discuss organizational impacts, including the dramatic improvements in morale as team delivery commitments are met more easily through automation.
glideinWMS Frontend Internals - glideinWMS Training Jan 2012Igor Sfiligoi
This presentation provides a detailed insight on the internal working of the glideinWMS Frontend. Part of the glideinWMS Training session held in Jan 2012 at UCSD.
Modern applications are more and more moving away from static forms. In a modern interface, widgets and graphical elements are animated and transitioned smoothly. Those effects make your application look good but their main purpose should be to help end-users find out what's going on in their applications. In upcoming Qt versions we’re adding a new Animation Framework that relies upon Qt’s QObject-based architecture.
Presentation by Thierry Bastian held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Air Hockey Game with Google Cloud + NodeJS + NginX + Socket.io + HTML5
you can see gitlab repository: http://git.matthewlab.com/root/remote-web-airhockey
Graphics View becomes one of the prominent features of Qt these days, it also serves as the backbone for next-generation user-interface developments. This talk highlights several tips and tricks which you can employ to beautify your Graphics View-based application, in order to have much more exciting and interesting user interactions. In addition, a new addition in Qt 4.6, namely the graphics effect feature, will be introduced and demonstrated.
Presentation by Ariya Hidayat held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Glidein startup Internals and Glidein configuration - glideinWMS Training Jan...Igor Sfiligoi
This presentation provides a detailed insight on the internal working of the glideinWMS glidein startup script and the glideins in general . Part of the glideinWMS Training session held in Jan 2012 at UCSD.
OpenGL - point & line design
introduce the construction of displayers (CRT, Flat-panel, LCD, PDP, projector...)
those render is based on graphic skills (point & line)
About OpenGL and Vulkan interoperability (XDC 2020)Igalia
By Eleni Maria Stea.
EXT_external_objects and EXT_external_objects_fd are groups of OpenGL extensions that allow OpenGL and Vulkan interoperability. When enabled, Vulkan allocated resources can be accessed and re-used by OpenGL. This talk is about the implementation of the extensions in various drivers, and some common interoperability use cases and examples that have been added to piglit.
(c) X.Org Developers Conference (XDC) 2020
September 16-18
https://xdc2020.x.org
https://www.youtube.com/channel/UCXlH5v1PkEhjzLFTUTm_U7g
Learn how to use the Lightweight Render Pipeline to optimize for maximum performance on mobile platforms. After watching this, you will be ready to build an experience for standalone mobile VR headsets, like Oculus Go, and how to use 3-DOF controllers for interactions.
Speakers:
Dan Miller (Unity Technologies)
Air Hockey Game with Google Cloud + NodeJS + NginX + Socket.io + HTML5
you can see gitlab repository: http://git.matthewlab.com/root/remote-web-airhockey
Graphics View becomes one of the prominent features of Qt these days, it also serves as the backbone for next-generation user-interface developments. This talk highlights several tips and tricks which you can employ to beautify your Graphics View-based application, in order to have much more exciting and interesting user interactions. In addition, a new addition in Qt 4.6, namely the graphics effect feature, will be introduced and demonstrated.
Presentation by Ariya Hidayat held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Glidein startup Internals and Glidein configuration - glideinWMS Training Jan...Igor Sfiligoi
This presentation provides a detailed insight on the internal working of the glideinWMS glidein startup script and the glideins in general . Part of the glideinWMS Training session held in Jan 2012 at UCSD.
OpenGL - point & line design
introduce the construction of displayers (CRT, Flat-panel, LCD, PDP, projector...)
those render is based on graphic skills (point & line)
About OpenGL and Vulkan interoperability (XDC 2020)Igalia
By Eleni Maria Stea.
EXT_external_objects and EXT_external_objects_fd are groups of OpenGL extensions that allow OpenGL and Vulkan interoperability. When enabled, Vulkan allocated resources can be accessed and re-used by OpenGL. This talk is about the implementation of the extensions in various drivers, and some common interoperability use cases and examples that have been added to piglit.
(c) X.Org Developers Conference (XDC) 2020
September 16-18
https://xdc2020.x.org
https://www.youtube.com/channel/UCXlH5v1PkEhjzLFTUTm_U7g
Learn how to use the Lightweight Render Pipeline to optimize for maximum performance on mobile platforms. After watching this, you will be ready to build an experience for standalone mobile VR headsets, like Oculus Go, and how to use 3-DOF controllers for interactions.
Speakers:
Dan Miller (Unity Technologies)
The presentation first makes the case for modularity in modern JavaScript systems and the resulting need for a transitive dependency management solution. Later it covers the state of dependency management in JavaScript. Finally it describes the open-source Jingo JavaScript dependency manager (http://jingo.googlecode.com) and its approach to solving the dependency management problem.
Presentation given at ZendCon 08 and Web 2.0 Expo NYC 2008 by Ben Galbraith and Dion Almaer. The presentation includes a lot of embedded videos and transitions and the slides are meant to support a spoken narrative, not replace it. Still, these are provided by request and I hope they'll be of help.
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
2. Agenda
•Swing pipeline
•Hooking into the pipeline
•RepaintManager
•Playing with opacity
•Glass pane
•Layering in UI delegates
•Rainbow demo
•Q&A
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
3. Swing basics
- UI toolkit for Java applications
- What is a lightweight component?
- Very flexible
- Provides a lot of hooks for custom behavior
- Not trivial to implement
- Heavyweight counterparts – AWT and SWT
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
4. Swing painting pipeline
- Three major “participants”
- JComponent
- RepaintManager
- ComponentUI
- Provide various hooks to customize behavior
- Vary in flexibility, robustness and ease of use
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
5. Swing painting pipeline – part I
JComponent RepaintManager
repaint() addDirtyRegion()
•Coalesce repaints
•Create an event
•Queue event on EDT
paintImmediately() paintDirtyRegions() EDT gets to the
queued event
•Opacity checks
•Double-buffering
paint()
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
6. Swing painting pipeline – part II
JComponent ComponentUI
paint()
paintComponent()
update()
paint()
paintBorder()
paintChildren()
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
7. Swing pipeline hooks
- JComponent
- Override paint or paintComponent
- Or even repaint or paintImmediately
- RepaintManager
- Install a custom implementation (singleton)
- ComponentUI
- Provide custom painting for a specific component class
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
8. What we can achieve?
- Translucency
- Non-rectangular components
- Layering
- Image filtering
- Animation
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
9. Agenda
•Swing pipeline
•Hooking into the pipeline
•RepaintManager
•Playing with opacity
•Glass pane
•Layering in UI delegates
•Rainbow demo
•Q&A
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
10. Swing painting pipeline hooks
JComponent RepaintManager
repaint() addDirtyRegion()
•Coalesce repaints
•Create an event
•Queue event on EDT
paintImmediately() paintDirtyRegions() EDT gets to the
queued event
•Opacity checks
•Double-buffering
paint()
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
11. RepaintManager example
- SwingX project
- JXPanel that provides translucency
- setAlpha(float)
- using RepaintManagerX – see code
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
12. There can be only one (singleton)
class JXPanel {
public void setAlpha(float alpha) {
if (alpha > 0f && alpha < 1f) {
...
RepaintManager.setCurrentManager(
new RepaintManagerX());
}
}
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
13. Agenda
•Swing pipeline
•Hooking into the pipeline
•RepaintManager
•Playing with opacity
•Glass pane
•Layering in UI delegates
•Rainbow demo
•Q&A
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
14. Swing painting pipeline hooks
JComponent RepaintManager
repaint() addDirtyRegion()
•Coalesce repaints
•Create an event
•Queue event on EDT
paintImmediately() paintDirtyRegions() EDT gets to the
queued event
•Opacity checks
•Double-buffering
paint()
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
15. Opacity basics - setOpaque
- setOpaque(false) == “draw stuff behind me”
- Useful for translucent or non-rectangular
components
- setOpaque(true) == “I’ll handle it”
- During repainting of an opaque component
Swing does not repaint any components behind
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
16. Transition effects using opacity
- UIs changes are immediate
- Showing / hiding a control
- Moving a control to new location
- Tab switch
- Solution – use transitions (cross fades, fly-in / out)
- Making controls non-opaque to enable the transition effects
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
18. Transition layout manager
TransitionLayoutManager.getInstance().
track(myTabbedPane, true);
TransitionLayoutManager.getInstance().
track(myPanel, true);
- Play with opacity (set to false during animation cycle)
- Set translucency (for fades)
- Custom layout manager (for sliding effects)
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
19. Transition scenarios
- Remains visible and has the same bounds
- Remains visible and has different bounds
- Becomes invisible
- Added or becomes visible
- Remains invisible
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
20. Agenda
•Swing pipeline
•Hooking into the pipeline
•RepaintManager
•Playing with opacity
•Glass pane
•Layering in UI delegates
•Rainbow demo
•Q&A
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
22. Glass pane basics
- Painting over all the components
frame.setGlassPane(new CustomGlassPanel());
frame.getGlassPane().setVisible(true);
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
23. Glass pane
- Pros
- Does not affect component's state
- Cons
- Global resource (for a frame)
- Everything is repainted (performance)
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
24. JXLayer overview
- It is a component wrapper like JScrollPane
- You have access to the wrapped component's state
- It does not use glassPane from the frame
- It has its own a transparent panel on the top
- JXLayer.paint() delegates all painting to the painter
- A flexible way to modify component's appearance
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
30. Alternatives
- Repaint manager and glass pane - much higher level
- UI delegate can
- Add drop shadow to the button text
- And get all the rest from the core implementation
- Opens the field to a wide array of effects
- Ghost images / springs
- Ripples
- ...
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
34. Ghost effects eye candy
Icon ghosting over multiple components
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
35. Ghost effects
- Pros
- Minimal changes in the application code.
- No need for custom painting code
- Available under multiple look and feels (use
bytecode injection)
- Cons
- Custom paintComponent implementations
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
36. Agenda
•Swing pipeline
•Hooking into the pipeline
•RepaintManager
•Playing with opacity
•Glass pane
•Layering in UI delegates
•Rainbow demo
•Q&A
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
37. DEMO
Rainbow demo
https://rainbow.dev.java.net
Sources + WebStart link
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications
38. Links
- JXLayer project https://swinghelper.dev.java.net/
- Laf-Widget project http://laf-widget.dev.java.net
- SwingX project http://swingx.dev.java.net/
- Old blog http://weblogs.java.net/blog/kirillcool/
- New blog http://www.pushing-pixels.org
Kirill Grouchnikov, Advanced Effects in Java Desktop Applications