This document discusses Groovy and Grails for Java developers. It provides an overview of Groovy and Grails, including what Grails is (a rapid web application development framework for the JVM), its model-view-controller structure, and how it handles things like database access and internationalization out of the box. It also addresses how Grails integrates with tools like Gradle and how it can be used with different databases, including legacy databases. The document demonstrates some Groovy concepts and provides resources for learning more.
Dynamic Languages & Web Frameworks in GlassFishIndicThreads
“Dynamic languages such as JRuby, Groovy, and Jython are increasingly playing an important role in the web these days. The associated frameworks such as Rails, Grails, and Django are gaining importance because of the agility provided by them.
The GlassFish project provides an easy-to-use and robust development and deployment platform for hosting these web applications. It also enables the various languages to leverage the investment in your existing Java Platform, Enterprise Edition (Java EE platform) infrastructure. This session gives an overview of various Dynamic Languages and associated Web frameworks that can be used on the GlassFish project.
It starts with a brief introduction to JRuby and details on how the GlassFish project provides a robust development and deployment platform for Rails, Merb, Sinatra and other similar applications without pain. As a basis for further discussion, this presentation shows the complete lifycycle for JRuby-on-Rails applications on GlassFish v2 and v3. It discusses the various development options provided by GlassFish v3, demonstrates how popular Rails applications can be easily deployed on GlassFish without any modification, and shows how v3 Gem can be used as an effective alternative to WEBrick and Mongrel. It also demonstrates debugging of Rails applications using NetBeans IDE. For enterprise users, it shows how JMX and other mechanisms can be used to monitor Rails applications.
It also talks in detail about the Groovy/Grails and Python/Django development and deployment models in context of GlassFish v3. By following the simple deployment steps the presentation shows, developers will be able to deploy their existing web applications on the GlassFish project.The session also describes the known limitations and workarounds for each of them.
The talk will show a working sample created in different frameworks and deployed on GlassFish v3. The demo will show how different features of the underlying GlassFish runtime are easily accessible to the frameworks running on top of it.”
Dynamic Languages & Web Frameworks in GlassFishIndicThreads
“Dynamic languages such as JRuby, Groovy, and Jython are increasingly playing an important role in the web these days. The associated frameworks such as Rails, Grails, and Django are gaining importance because of the agility provided by them.
The GlassFish project provides an easy-to-use and robust development and deployment platform for hosting these web applications. It also enables the various languages to leverage the investment in your existing Java Platform, Enterprise Edition (Java EE platform) infrastructure. This session gives an overview of various Dynamic Languages and associated Web frameworks that can be used on the GlassFish project.
It starts with a brief introduction to JRuby and details on how the GlassFish project provides a robust development and deployment platform for Rails, Merb, Sinatra and other similar applications without pain. As a basis for further discussion, this presentation shows the complete lifycycle for JRuby-on-Rails applications on GlassFish v2 and v3. It discusses the various development options provided by GlassFish v3, demonstrates how popular Rails applications can be easily deployed on GlassFish without any modification, and shows how v3 Gem can be used as an effective alternative to WEBrick and Mongrel. It also demonstrates debugging of Rails applications using NetBeans IDE. For enterprise users, it shows how JMX and other mechanisms can be used to monitor Rails applications.
It also talks in detail about the Groovy/Grails and Python/Django development and deployment models in context of GlassFish v3. By following the simple deployment steps the presentation shows, developers will be able to deploy their existing web applications on the GlassFish project.The session also describes the known limitations and workarounds for each of them.
The talk will show a working sample created in different frameworks and deployed on GlassFish v3. The demo will show how different features of the underlying GlassFish runtime are easily accessible to the frameworks running on top of it.”
Node.js Development with Apache NetBeansRyan Cuprak
This session covers the basics of developing Node.js applications with NetBeans. NetBeans includes fully integrated support for both JavaScript and Node.js. You’ll get a tour of the features and learn how NetBeans can accelerate your projects. The presentation looks at basic code editing capabilities provided by the IDE, tool integration (npm/Grunt/Bower/Webpack), frameworks such as Express, and debugging capabilities. You’ll see why NetBeans is the best free JavaScript/Node.js IDE.
Java 9 ships in July, are you ready for Java 9 modules? Java 9 modules (aka Project Jigsaw) is the biggest fundamental change to the Java runtime. Code that use Oracle/Sun private APIs will break. This session will cover the basics of Java 9 modules and also the current state of tooling. The ramifications to existing and legacy applications will be covered along with the steps you’ll need to take to harness the power of modules and write more maintainable systems.
This talk was presented at CQCON 2013 in Basel.
Learn how to master development workflows combining the power of CQ with Apache Maven and Git. Sometimes it can be hard to get up and running with other developers' Adobe CQ projects. Where is the code? How can you build it once you have it? How do you get it into CQ? What do you do with it once it's there? Anyone should be able to quickly and easily perform a git clone of a CQ project, followed by doing a Maven build and install, and then immediately be able to try it out and work on it within CQ. This session will show developers how they can structure their projects so that they are buildable "out of the box". We will provide hints and tips on how to structure your application in git, and explain which maven plugins to use in a range of circumstances.
See the CQCON website http://www.cqcon.eu/2013/en/speakers/andrew-savory.html or the online version of the presentation at http://www.andrewsavory.com/presentations/CQCon_2013_CQ_Maven_Methods/index.html
The source of the presentation is in github at https://github.com/savs/CQCon_2013_CQ_Maven_Methods
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
Responsive Web Design - An Accessibility ToolGeorge Zamfir
Accessibility questions? Get in contact: george@goodwally.ca.
This is the newer & updated version of the "Responsive Web Design & Accessibility" presentation (http://slidesha.re/1awZEmT).
George Zamfir, Accessibility Specialist, goodwally.ca
Description: As we are moving away from traditional computers and towards mobile devices the question is: How do we build our web products to work for all these devices and more importantly, how do we do it accessibly?
In my experience, Responsive Web Design (RWD) is a good solution - not only that it doesn't impede accessibility but it promotes it.
We'll learn the basics of RWD and accessibility techniques.
Objectives: Throughout the different projects I worked on it became apparent to me that Responsive Web Design (RWD) is a good promoter for accessibility. In this session, I will be sharing the lessons learned and practical examples on implementing RWD and accessibility.
The objective is 2-fold:
A primer on Responsive Web Design (RWD); what it is and how to build responsive websites
Best practices cross-overs between RWD and accessibility.
Speaker Bio(s): My name is George Zamfir and I'm passionate about web accessibility.
I have been working in web accessibility since 2006 touching on the many facets of this field: performed academic research into learning technologies at Ryerson University, built assistive technologies, ran a web development business, developed technical accessibility solutions at Scotiabank working on complex web properties, but even more gratifying is organizing monthly accessibility meetups in Toronto.
Did I mention I also played the piano professionally at age 6?
Contact Information: George Zamfir: george@goodwally.ca , www.goodwally.ca, http://www.twitter.com/good_wally
Session Date: Tuesday, May 28, 2013
Accessibility of Common Web ApplicationsTomáš Muchka
An internal educational presentation on the theme of Accessibility of Web Applications, This presentation was created on the basis of an accessibility study for the HP Service Virtualization. See the slide notes for additional information.
A simple, step-by-step presentation on CSS line-height. Covers leading, how to apply various line-height values, as well as line-height and the inline box model. Hope you find it useful!
Node.js Development with Apache NetBeansRyan Cuprak
This session covers the basics of developing Node.js applications with NetBeans. NetBeans includes fully integrated support for both JavaScript and Node.js. You’ll get a tour of the features and learn how NetBeans can accelerate your projects. The presentation looks at basic code editing capabilities provided by the IDE, tool integration (npm/Grunt/Bower/Webpack), frameworks such as Express, and debugging capabilities. You’ll see why NetBeans is the best free JavaScript/Node.js IDE.
Java 9 ships in July, are you ready for Java 9 modules? Java 9 modules (aka Project Jigsaw) is the biggest fundamental change to the Java runtime. Code that use Oracle/Sun private APIs will break. This session will cover the basics of Java 9 modules and also the current state of tooling. The ramifications to existing and legacy applications will be covered along with the steps you’ll need to take to harness the power of modules and write more maintainable systems.
This talk was presented at CQCON 2013 in Basel.
Learn how to master development workflows combining the power of CQ with Apache Maven and Git. Sometimes it can be hard to get up and running with other developers' Adobe CQ projects. Where is the code? How can you build it once you have it? How do you get it into CQ? What do you do with it once it's there? Anyone should be able to quickly and easily perform a git clone of a CQ project, followed by doing a Maven build and install, and then immediately be able to try it out and work on it within CQ. This session will show developers how they can structure their projects so that they are buildable "out of the box". We will provide hints and tips on how to structure your application in git, and explain which maven plugins to use in a range of circumstances.
See the CQCON website http://www.cqcon.eu/2013/en/speakers/andrew-savory.html or the online version of the presentation at http://www.andrewsavory.com/presentations/CQCon_2013_CQ_Maven_Methods/index.html
The source of the presentation is in github at https://github.com/savs/CQCon_2013_CQ_Maven_Methods
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
Responsive Web Design - An Accessibility ToolGeorge Zamfir
Accessibility questions? Get in contact: george@goodwally.ca.
This is the newer & updated version of the "Responsive Web Design & Accessibility" presentation (http://slidesha.re/1awZEmT).
George Zamfir, Accessibility Specialist, goodwally.ca
Description: As we are moving away from traditional computers and towards mobile devices the question is: How do we build our web products to work for all these devices and more importantly, how do we do it accessibly?
In my experience, Responsive Web Design (RWD) is a good solution - not only that it doesn't impede accessibility but it promotes it.
We'll learn the basics of RWD and accessibility techniques.
Objectives: Throughout the different projects I worked on it became apparent to me that Responsive Web Design (RWD) is a good promoter for accessibility. In this session, I will be sharing the lessons learned and practical examples on implementing RWD and accessibility.
The objective is 2-fold:
A primer on Responsive Web Design (RWD); what it is and how to build responsive websites
Best practices cross-overs between RWD and accessibility.
Speaker Bio(s): My name is George Zamfir and I'm passionate about web accessibility.
I have been working in web accessibility since 2006 touching on the many facets of this field: performed academic research into learning technologies at Ryerson University, built assistive technologies, ran a web development business, developed technical accessibility solutions at Scotiabank working on complex web properties, but even more gratifying is organizing monthly accessibility meetups in Toronto.
Did I mention I also played the piano professionally at age 6?
Contact Information: George Zamfir: george@goodwally.ca , www.goodwally.ca, http://www.twitter.com/good_wally
Session Date: Tuesday, May 28, 2013
Accessibility of Common Web ApplicationsTomáš Muchka
An internal educational presentation on the theme of Accessibility of Web Applications, This presentation was created on the basis of an accessibility study for the HP Service Virtualization. See the slide notes for additional information.
A simple, step-by-step presentation on CSS line-height. Covers leading, how to apply various line-height values, as well as line-height and the inline box model. Hope you find it useful!
80% of the end-user response time is spent on the front-end. (YSlow Team)
By following these best practices we can have a great impact over the performance of our sites and applications.
In these slides we will go through some best practices related to performance, semantics & accessibility and patterns for better maintainability and readability which is gold when collaborating.
In the second part of the slideshow we will share some tips on how to pick the best layout available, create the slices with optimization in mind, master the basics and stay organized form the beginning with your CSS code.
Early prevention of accessibility issues with mockup & wireframe reviewsAidan Tierney
A mockup or wireframe review is an opportunity to identify interaction design elements which are not fully accessible and will require changes. It's also the best time to identify any items that will need additional requirements to avoid becoming accessibility defects later on. After demonstrating the technique we will practice on a sample mockup. You'll leave this session with skills to apply on your next sprint.
Java in 2019 was predicted to be business as usual by many. We have seen new Java releases coming out as planned, AdoptOpenJDK became the main trustful source of binaries and Oracle fighting for the trademark again by preventing the use of javax as namespace. Everything looks like it would be a silent year for Java. But one thing seems obvious. Java's popularity is not gaining any more traction. New language features keep it up to date but people are getting more selective when it comes to implementation choices. Especially in the age of containers and cloud infrastructures. This talk walks you through the why and how of Java in containers. We will talk about image size and development and deployment processes.
Make Your Build Great Again (DroidConSF 2017)Jared Burrows
Slow builds have been plaguing Android development since the very beginning, especially for large multi-dex projects. As libraries tend to grow in size and the more libraries an application consumes it will slow down the build, especially when an application goes over the mutli-dex limit. Libraries aren't the only thing that can slow down the build, adding many Gradle plugins and repositories can increase the time it takes to configure the Gradle build. This talk will be centered around how I was able to decrease Yammer for Android's Gradle build times by optimizing our use of the Android Gradle plugin and the Gradle setup of our multi-project build and will give several tools and tips on how to help you profile and decrease your build times as well.
Patrick Chanezon and Guillaume Laforge are presenting Google App Engine Java and Gaelyk, the lightweight groovy toolkit on top of the GAE SDK, at the Devoxx conference
Everything as a Code / Александр Тарасов (Одноклассники)Ontico
РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 5 июня, 11:00
Тезисы:
http://rootconf.ru/2017/abstracts/2627.html
Процесс разработки не начинается и не заканчивается на написании кода программного продукта. Мы пишем документацию, придумываем, как это всё оттестировать, и заботимся о том, чтобы доступность приложения была на высоком уровне.
Мы все делаем привычные вещи привычным для нас способом. Порой выполняя много ручной и неэффективной работы. Но что, если есть другой, радикальный подход. Можно ли формализовать свою деятельность и переложить её в код? Какие практики и инструменты для этого использовать?
В докладе будет представлен личный опыт автора по автоматизации различных элементов разработки ПО.
Процесс разработки не начинается и не заканчивается на написании кода программного продукта. Мы пишем документацию, придумываем, как это всё оттестировать, и заботимся о том, чтобы доступность приложения была на высоком уровне.
Мы все делаем привычные вещи привычным для нас способом. Порой выполняя много ручной и неэффективной работы. Но что, если есть другой, радикальный подход. Можно ли формализовать свою деятельность и переложить её в код? Какие практики и инструменты для этого использовать?
В докладе будет представлен личный опыт автора по автоматизации различных элементов разработки ПО.
Maven and Ant have dominated the build landscape in the Java world for more than a decade. Why on earth do we need or want another one? That’s a question many people ask themselves when hearing about Gradle. In this talk, I provide some context to what makes a good build and hence what you should expect from your build tools.
You will then learn how Gradle provides the features you need to solve any build problem, while still being easy to use for standard stuff. Afterwards, you’ll start to understand why Google picked Gradle for the new Android build system.
Gradle is easy to use for building standard Java projects, but it’s rare to find a project that is completely standard. Whenever you have some custom requirement, you need to start using Gradle’s power features. It’s at that point that you can find yourself producing an unmaintainable mess and a hard-to-use build.
This talk will start by explaining Gradle’s model, which you need to understand if you want to retain control over your builds. I will then introduce you to some simple but effective guidelines that will ensure that your builds stay clean and effective.
Explains why software builds are important and what build tools should offer to users in terms of features. It also looks at how Gradle satisfies these requirements.
This is the slide part of a talk that introduces the Groovy programming language to Java developers. The focus is on what you can do with it rather than the details of how to program in it. Most of the presentation is also live coding, so the slides aren't much use on their own.
This is the Grails WOT presentation delivered at SpringOne 2GX.
It looks at the current state of the development landscape, how Grails can help you work with all the new technologies, and what the future might hold.
A look at the changing development landscape and how we may have to rearchitect our Grails applications.
Also looks at existing, new, or potential Grails features that can help navigate this new world order.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
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.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
62. Gradle
• Build tool with built-in dependency management
• Conventions through plugins
• Multi-project support
• Full access to tasks and dependency tree
• Easy to write your own tasks
– either in the build file
– or via Groovy/Java classes
http://www.gradle.org/
62
62
63. • Parallel processing for Groovy
• Actors library making full use of closures
@Grab(group='org.codehaus.gpars', module='gpars', version='0.11')
import groovyx.gpars.GParsPool
GParsPool.withPool {
def animals = ['dog', 'ant', 'cat', 'whale']
println(animals.anyParallel {it ==~ /ant/} ?
'Found an ant' : 'No ants found')
println(animals.everyParallel {it.contains('a')} ?
'All animals contain a' : 'Some animals can live without an a')
}
http://gpars.codehaus.org/
63
63
64. Try it out!
http://groovyconsole.appspot.com/
64
64
65. What is Grails?
• Rapid Web Application Development Framework
– for the JVM
– with first-class Java integration
• Inspired by Ruby on Rails, Django and others
– Convention over Configuration
– Don’t Repeat Yourself (DRY)
65
65
66. What is Grails?
Grails
Servlet
Web MVC GSP (Views)
Container
GORM
Database I18n
(Data Access)
Build Test Support Doc Engine
66
66
68. What is Grails?
Web Controllers
The Domain Model
i18n bundles
Business Logic
Custom View Tags
Views & Layouts
Libraries (JARs)
Build Commands
Additional Sources
Tests
Web Resources
68
68
71. Enterprise requirements
Web App
Messaging JEE
Legacy
Services
Databases
Is this a problem for Grails apps?
71
71
72. Build
• Remember the Grails project structure?
– add in build events and...
Can’t build natively with other build tools!
Ant Maven Gradle
Grails Build System
72
72
75. ‘Legacy’ Databases
• Grails can create a database from your domain model...
• ...but what if you don’t own the database?
– DBA determines structure
– Company conventions
– Existing ‘legacy’ database
75
75
76. Option 1: Custom ORM mapping
• No existing domain model
• Schema not too far off the beaten track
class Book {
...
static mapping = {
table "books"
title type: "books"
author column: "author_ref"
}
}
76
76
78. Option 3: Hibernate XML Mappings
• You have Java model + Hibernate mapping files
• Schema is way off the beaten track
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ...>
<hibernate-configuration>
<session-factory>
<mapping resource="org.ex.Book.hbm.xml"/>
<mapping resource="org.ex.Author.hbm.xml"/>
...
</session-factory>
</hibernate-configuration>
grails-app/conf/hibernate/hibernate.cfg.xml
78
78
79. Constraints
Given domain class:
org.example.myapp.domain.Book
Then:
src/java/org/example/myapp/domain/BookConstraints.groovy
constraints = {
title blank: false, unique: true
...
}
79
79
80. Option 4: GORM JPA Plugin
• GORM layer over JPA
• Use your own JPA provider
• Useful for cloud services that only work with JPA, not
Hibernate
80
80
81. Database Migration Plugin
Pre-production, Hibernate ‘update’ or ‘create-drop’
dbm-generate-changelog
dbm-changelog-sync
Change domain model
dbm-gorm-diff
dbm-update
81
81
83. Grails is Spring
• Spring MVC under the hood
• Grails provides many useful beans
– e.g. grailsApplication
• Define your own beans!
– resources.xml/groovy
– In a plugin
83
83
85. Summary
• Various options for integrating Grails with:
– Development/build
– Deployment processes
• Works with many external systems
– Solid support for non-Grailsy DB schemas
– Flexible messaging & web service support
85
85
86. More info
• w: http://grails.org/
• f: http://grails.org/Mailing+Lists
• e: pledbrook@vmware.com
• t: pledbrook
• b: http://blog.springsource.com/author/peter-ledbrook/
86
86