This is a presentation on Google Web Toolkit given at Devfest 2009 in Buenos Aires Argentina on Nov 17, 2009 by Google Developer Advocate, Chris Schalk
In this presentation, you’ll explore the new Series 40 web app APIs and features of Nokia Web Tools 2.0. Expert Michael Samarin from Futurice will show you how to develop for new Nokia Asha phones with a full-touch UI and will give you an overview of new templates and code samples.
Troubleshooting Java applications has the reputation of a dark art and is often compared to finding the needle in a haystack. Using tools bundled with the JDK and the OS, a few open source packages and lightweight approaches can help you zero in on a some common scenarios. We will explore working with local and remote JVMs, the myriad of startup flags, analyzing and correlating thread dumps with cpu consumption, system vs application level instrumentation, considerations for multi-tenant JVMs, getting around in an unfamiliar production environment and if we don’t forget, memory games.
If you could use more visibility into your Java application during development and production runs this talk is filled with practical tips, from the high level to the gritty details.
Webpack Encore - Asset Management for the rest of usStefan Adolf
Dealing assets from within monolithic project that even come with a legacy is mostly hard. Encore paves the way for your migration to the "modern" world of frontend technology. It provides an opinonated and very condensed interface to the almighty webpack bundler that just does what you expect from it. Including entry points, tree shaking, code splitting and lazy loading. This talk and its supporting git repo show some of the Encore concepts and comes with a fully working dockerized Symfony 4.2 application utilizing a combined Vue.js and jQuery (sic) frontend. https://github.com/elmariachi111/encore-demo/tree/2019-encore-vue-components (use the 2019- branches)
In this presentation, you’ll explore the new Series 40 web app APIs and features of Nokia Web Tools 2.0. Expert Michael Samarin from Futurice will show you how to develop for new Nokia Asha phones with a full-touch UI and will give you an overview of new templates and code samples.
Troubleshooting Java applications has the reputation of a dark art and is often compared to finding the needle in a haystack. Using tools bundled with the JDK and the OS, a few open source packages and lightweight approaches can help you zero in on a some common scenarios. We will explore working with local and remote JVMs, the myriad of startup flags, analyzing and correlating thread dumps with cpu consumption, system vs application level instrumentation, considerations for multi-tenant JVMs, getting around in an unfamiliar production environment and if we don’t forget, memory games.
If you could use more visibility into your Java application during development and production runs this talk is filled with practical tips, from the high level to the gritty details.
Webpack Encore - Asset Management for the rest of usStefan Adolf
Dealing assets from within monolithic project that even come with a legacy is mostly hard. Encore paves the way for your migration to the "modern" world of frontend technology. It provides an opinonated and very condensed interface to the almighty webpack bundler that just does what you expect from it. Including entry points, tree shaking, code splitting and lazy loading. This talk and its supporting git repo show some of the Encore concepts and comes with a fully working dockerized Symfony 4.2 application utilizing a combined Vue.js and jQuery (sic) frontend. https://github.com/elmariachi111/encore-demo/tree/2019-encore-vue-components (use the 2019- branches)
Java script nirvana in netbeans [con5679]Ryan Cuprak
JavaOne 2016
NetBeans is not just a Java IDE. It supports JavaScript as a first-class citizen and provides a complete integrated development environment. It also provides project types for server-side JavaScript (Node.js) as well as web browsers and mobile (Apache Cordova). In addition, it supports Grunt, Mocha and Selenium, Angular and Knockout, and more. This session provides an update on NetBeans 8.1 and demonstrates the top new JavaScript features. You will see a Node.js application in action, look at the support for JavaScript unit testing, and also see how easy it is to debug an Apache Cordova application running on a tethered iPhone.
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
This slideshow provides an introduction to HTML5. The target audience should have an understanding of web development, javascript, and previous standards of HTML. This tutorial contains a brief background on the language and an overview of the most popular features. Features covered include native audio/video support, geolocation, canvas, drawing API, web forms 2.0, drag and drop, and more. Also covered is backwards compatibility and section 508 compliance. Extras include polyfills, modernizr, and a brief introduction to CSS3. Enjoy!
Spring Boot Revisited with KoFu and JaFuVMware Tanzu
SpringOne 2020
Spring Boot Revisited with KoFu and JaFu
Audrey Neveu, Software Engineer on Reactor at VMware
Sébastien Deleuze, Spring Framework Committer at VMware
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJAX London
2011-11-01 | 03:00 PM - 03:50 PM
With all the buzz around rapid web application development frameworks, are enterprise developers left looking on enviously? Not at all. Grails brings the same benefits to Java developers while providing many options for enterprise integration. This talk shows you how to build Grails projects with Ant and Maven; what's involved in talking to legacy databases; and how to talk to Java components.
Full stack development with Node and NoSQL - Austin Node.JS Group - October ...Matthew Groves
In this session, we will talk about what is different about this generation of web applications and how a solid development approach must consider the latency, throughput and interactivity demand by users across both mobile devices, web browsers, and IoT. We will demonstrate how to include Couchbase in such applications to support a flexible data model and easy scalability required for modern development. We will demonstrate how to create a full stack application focusing on the CEAN stack which is composed of Couchbase, Express Framework, AngularJS, and Node.js.
About Matt:
Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Developer Advocate for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET (published by Manning), and is also a Microsoft MVP.
For more information on Couchbase, check out http://developer.couchbase.com
Presentation on how Meetup tackles web performance. Given on:
- Nov 17th, 2009 for the NY Web Performance Group (http://www.meetup.com/Web-Performance-NY/)
- Jan 26th, 2010 for NYC Tech Talks Meetup Group (http://www.meetup.com/NYC-Tech-Talks/)
Java script nirvana in netbeans [con5679]Ryan Cuprak
JavaOne 2016
NetBeans is not just a Java IDE. It supports JavaScript as a first-class citizen and provides a complete integrated development environment. It also provides project types for server-side JavaScript (Node.js) as well as web browsers and mobile (Apache Cordova). In addition, it supports Grunt, Mocha and Selenium, Angular and Knockout, and more. This session provides an update on NetBeans 8.1 and demonstrates the top new JavaScript features. You will see a Node.js application in action, look at the support for JavaScript unit testing, and also see how easy it is to debug an Apache Cordova application running on a tethered iPhone.
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
This slideshow provides an introduction to HTML5. The target audience should have an understanding of web development, javascript, and previous standards of HTML. This tutorial contains a brief background on the language and an overview of the most popular features. Features covered include native audio/video support, geolocation, canvas, drawing API, web forms 2.0, drag and drop, and more. Also covered is backwards compatibility and section 508 compliance. Extras include polyfills, modernizr, and a brief introduction to CSS3. Enjoy!
Spring Boot Revisited with KoFu and JaFuVMware Tanzu
SpringOne 2020
Spring Boot Revisited with KoFu and JaFu
Audrey Neveu, Software Engineer on Reactor at VMware
Sébastien Deleuze, Spring Framework Committer at VMware
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJAX London
2011-11-01 | 03:00 PM - 03:50 PM
With all the buzz around rapid web application development frameworks, are enterprise developers left looking on enviously? Not at all. Grails brings the same benefits to Java developers while providing many options for enterprise integration. This talk shows you how to build Grails projects with Ant and Maven; what's involved in talking to legacy databases; and how to talk to Java components.
Full stack development with Node and NoSQL - Austin Node.JS Group - October ...Matthew Groves
In this session, we will talk about what is different about this generation of web applications and how a solid development approach must consider the latency, throughput and interactivity demand by users across both mobile devices, web browsers, and IoT. We will demonstrate how to include Couchbase in such applications to support a flexible data model and easy scalability required for modern development. We will demonstrate how to create a full stack application focusing on the CEAN stack which is composed of Couchbase, Express Framework, AngularJS, and Node.js.
About Matt:
Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Developer Advocate for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET (published by Manning), and is also a Microsoft MVP.
For more information on Couchbase, check out http://developer.couchbase.com
Presentation on how Meetup tackles web performance. Given on:
- Nov 17th, 2009 for the NY Web Performance Group (http://www.meetup.com/Web-Performance-NY/)
- Jan 26th, 2010 for NYC Tech Talks Meetup Group (http://www.meetup.com/NYC-Tech-Talks/)
Acceptance and Commitment Therapy for People with MSMS Trust
Dr Sarah Gillanders and Dr David Gillanders introduce acceptance and commitment therapy for people with MS, a form of cognitive behavioural therapy that focuses on how we live with difficult things. It blends behaviourism, mindfulness, values, compassion and perspective taking.
The ISG Index™ provides a quarterly review of the latest sourcing industry data and trends for clients, service providers, analysts and the media. For more than a decade, it has been the authoritative source for marketplace intelligence related to outsourcing transaction structures and terms, industry adoption, geographic prevalence and service provider performance.
As you begin to move out of your data center and develop a cloud-first strategy, you'll need support for large-scale migrations to AWS. In this session, CSC shares details about the journey to AWS by some of our largest enterprise customers. We provide best practices for planning your large-scale migrations and focus on business processes in addition to technology. We show how CSC used this approach to migrate to AWS as part of our separation last year into two publicly traded companies: CSC and CSRA. In less than six months, CSC took our 56-year-old company and broke it into two companies, one of which was brand new and without any infrastructure or enterprise applications. We explain how we leveraged the AWS Partner ecosystem to achieve this incredible IT challenge. Session sponsored by CSC.
AWS Competency Partner
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5David Voyles
The video for this talk can be found here:https://channel9.msdn.com/Blogs/raw-tech/Getting-started-with-Emscripten--Transpiling-C--C-to-JavaScript--HTML5
I cover how to transpile code from C/C++ to HTML5/JS using Emscripten, an open source compiler tool from Mozilla and Alon Zakai.
Madrid JUG Conferences, Apr 2013.
Development of mobile applications has became complex, and Companies need teams with specialists in very different platforms. With GWT + Apache Cordova, you can develop reliable applications using a unique code base written in java.
Easing offline web application development with GWTArnaud Tournier
At this current time, HTML5 APIs are mature enough so that the web browser can now be a very good platform for applications that were before only implemented as native applications : offline applications with locally stored data, embedded SQL engines, etc. Although there are many good Javascript frameworks out there, the Java language allows to build, maintain, debug and work with ease on really big applications (> 100,000 LOC).
You'll discover in this presentation all the tools we assembled to make an application available with its data 100% of the time, even without internet!
An overview and update presentation on Google App Engine given by Google Developer Advocate Christian Schalk at the 2011 DevFest Singapore and Jakarta events. Developer Advocate Wesley Chun also participated in the Q&A.
How to build Kick Ass Games in the CloudChris Schalk
This is a presentation given by Googlers Chris Schalk and Johan Euphrosine (Proppy) at GDD Sydney 2011 on how to build multi-platform video games using PlayN.
Building Kick Ass Video Games for the CloudChris Schalk
This is a presentation that covers how to use PlayN to build kick ass games for the cloud. It was delivered at GDC Online 2011, by Google Developer Advocate, Chris Schalk
Building Integrated Applications on Google's Cloud TechnologiesChris Schalk
This is the presentation "Building Integrated Applications on Google's Cloud Technologies" that was given at GDD 2011 #gdd11 in Sao Paulo and Buenos Aires by Google Developer Advocate Chris Schalk @cschalk.
GDD 2011 - How to build kick ass video games for the cloudChris Schalk
This is the Google Developer Day 2011 "How to build kick ass games in the cloud" presentation that was given in Sao Paulo and Buenos Aires. (The title is in Spanish since it was last given in Argentina - the content is the same as Sao Paulo though)
It was given by Google Developer Advocate, Chris Schalk in Sept 2011. @cschalk
Quick Intro to Google Cloud TechnologiesChris Schalk
This is the "Lightning Presentation" given at DreamForce 2011 on Google's Cloud Technologies. It covers, App Engine, Google Storage and BigQuery. #df11
An overview of the different Google Cloud Technologies. Includes coverage of Google App Engine, Google Storage, Google Prediction Api, and BigQuery.
This presentation was given to the San Diego GTUG on Aug 26th, 2011.
Introduction to Google's Cloud TechnologiesChris Schalk
An overview of the different Cloud technologies available from Google including App Engine, Google Storage, Google Prediction API, and BigQuery.
This presentation was given to the San Diego GTUG on Aug 26th, 2011.
A review and update presentation on Google App Engine's latest features up through version 1.5.3 and including new experimental features. This presentation was given to the San Diego GTUG on Aug 26, 2011.
Building Apps on Google Cloud TechnologiesChris Schalk
This is a presentation on how to use the different Google Cloud technologies to build applications.
It was delivered in Mexico City at the "EstoEsGoogle" aka Devfest Mexico event on Aug 9th, 2011 in Mexico City by Google Developer Advocate Chris Schalk.
This is a presentation on Google App Engine's Latest Features.
It was delivered in Mexico City at the "EstoEsGoogle" aka Devfest Mexico event on Aug 9th, 2011 in Mexico City by Google Developer Advocate Chris Schalk.
Building Multi-platform Video Games for the CloudChris Schalk
This is a presentation on how to build multi-platform (HTML5, Flash, Java/Android) video games using an open source technology known as Forplay (PlayN).
This presentation was delivered in Mexico City on Aug 9th, 2011 at the "EstoEsGoogle" aka Devfest Mexico event on Aug 9th in Mexico City by Google Developer Advocate Chris Schalk
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Chris Schalk
This is a presentation given by Google Developer Advocate Chris Schalk at Cloud Expo in NYC on June 8th 2011 on building enterprise applications with Google's Cloud Platform.
This is an introduction presentation on App Engine for Business given by Chris Schalk, Google Developer Advocate on Oct 26, 2010 at the PayPal Innovate conference.
Introduction to Google Cloud platform technologiesChris Schalk
This is a presentation given by Google Developer Advocate Chris Schalk at Spring One 2GX on Oct 21st, 2010. It introduces Google Storage for Developers, Prediction API, and BigQuery.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
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.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
By Design, not by Accident - Agile Venture Bolzano 2024
Devfest09 Cschalk Gwt
1.
2. Google Web Toolkit: A technical overview
Chris Schalk
Con: Gabriel Praino
DevFest 2009
November 17th, 2009
3. Agenda
• AJAX: what it is and why it's important
• Introducing GWT
• GWT advantages
• GWT 2.0 features
• Who’s using GWT
• Q&A
3
4. AJAX... uh... what?
• Also known as Asynchronous JavaScript And XML
• JavaScript can issue asynchronous server requests
• JavaScript can manipulate the user interface
4
6. The AJAX slippery slope
• Experiment with “a bit of script”
• Everybody loves it! More!
• When did we became an AJAX shop?
• Attempt to port to something other than Internet Explorer
• Wait... this is hard!
• Result: “A tangled mess!”
6
7. GWT’s Mission
"GWT's mission is to radically improve
the web experience for users by
enabling developers to use existing
Java tools to build no-compromise
AJAX for any modern browser."
7
8. Google Web Toolkit at a glance
• Write code in the JavaTM language using your favorite Java
IDE
• Debug as bytecode against a special browser (hosted mode)
• Cross-compile into standalone optimized JavaScript (web
mode)
• No browser plugins / no obligatory server-side machinery
• Includes extensive cross-browser libraries
• User interface (DOM, widgets, ...)
• Client/server communication (XHR, RPC, JSON, ...)
• App infrastructure (history, timers, unit testing, i18n, a11y, ...)
• External services (Gadgets, Gears, Google Maps, ...)
• JavaScript integration
• JavaScript Native Interface (JSNI)
• Fully open source under Apache 2.0
8
10. How it works
Google Web Toolkit Weekly Report 09/01/2008 - 09/08/200
Code against Java UI libraries
10
11. How it works
Code against Java UI libraries
The compiler translates Java source to highly-optimized JS
11
12. How it works
Generates browser-compliant JS + HTML files
Code against Java UI libraries
The compiler translates Java source to highly-optimized JS
12
17. GWT Advantages – Faster Ajax applications
Faster-than-you-would-write-by-hand code
• The efficient code you wish you could write, but will get
slammed by cross-browser issues for trying to run it
E.g.
public static void onModuleLoad(){
Button b = (new Button()).Button();
b.setText("Click me!");
}
– a variation for IE6 would be:
public static final void onModuleLoad(){
final Button b = Button.$Button(new Button());
DOMImplIE6.$setInnerText(b.element, ”Click me!");
}
17
18. GWT Advantages – Faster Ajax applications
Faster-than-you-would-write-by-hand code
– Another variation:
function onModuleLoad(){
var b;
b = $Button(new Button());
$setInnerText(b.element, 'Click me!');
}
18
19. GWT Advantages – Faster Ajax applications
Faster-than-you-would-write-by-hand code
– Another variation
function onModuleLoad(){
var b;
b = $Button(new Button());
$setInnerText(b.element, ’Click me!');
}
• You could have written this by hand, but:
– You would have to change it for every other browser
19
20. GWT Advantages – Faster Ajax applications
Deferred binding
• Why give the user more than they asked for?
• Users only download what they need to run your
application
• Made possible through the technique of deferred
binding
20
21. GWT Advantages – Faster Ajax applications
Deferred binding
• A technique that lets the compiler make different
bindings for your application at compile-time and choose
the right one later
• The application bootstrap process selects the correct
binding when loading your application
21
23. GWT Advantages – No more memory leaks
Preventing memory leaks
• Provided you only code in GWT
• Chances are, you may need to write a small bit of
JavaScript Native Interface (JSNI) or interoperate
with JavaScript code
• In those cases, you can prevent memory
leaks by being careful
– See Joel Webber’s
article on “DOM events, memory leaks, and you”
– http://code.google.com/p/google-web-toolkit/wiki/DomEventsAndMemoryLeaks
• In every other case, GWT has got your back
23
24. GWT Advantages – History support
History support for your GWT applications
• GWT offers History support (RSH implementation)
E.g.
tabPanel.add(new HTML("<h1>Page 1 Content</h1>"), " Page 1 ");
tabPanel.add(new HTML("<h1>Page 2 Content</h1>"), " Page 2 ");
tabPanel.addTabListener(new TabListener() {
@Override
public void onTabSelected(SourcesTabEvents sender, int tabIndex) {
// Push an item onto the history stack
History.newItem("page" + tabIndex);
}
History.addHistoryListener(new HistoryListener() {
public void onHistoryChanged(String historyToken) {
if(tokenIsValid(historyToken)) {
tabPanel.selectTab(getTabIndex(historyToken));
}
}
};
24
25. GWT Advantages – Faster development
Faster development with IDEs and code support
• Code refactoring with IDE tools greatly improve
developer speed!
Google Plugin for Eclipse – Support both GWT and
App Engine
25
26. GWT Advantages – Faster development
Faster development with IDEs and code support
• You can also thoroughly test your Ajax application using
a combination of:
– Standard JUnit TestCase
– GWTTestCase
– HTMLUnit tests
– Selenium tests
26
27. GWT Advantages – Debugging in bytecode
Debugging with hosted mode
• Debugging in hosted mode allows for rapid testing
• Running against JS bytecode in memory
27
28. Summary of development advantages
• Optimized, high performance Ajax applications
• As a developer, you don’t have to worry about:
– Browser quirk headaches
– Memory leaks
– History support
• Code reuse through design patterns
• Faster development using IDEs and other Java tools
• Debugging in bytecode
28
33. GWT 2.0: More advantages
• Hosted mode becomes “development mode”
• Code splitting
• Client bundle
• Declarative UI in XML (UiBinder)
• … and much more
33
34. Code Splitting: Big scripts, big problems
• Problem: Initial download can be slooooow
– Some apps becomes bigger over time
– Parsing through initial script can cause UI to hang
– Current day browsers have a two connection limit
• Solution: Split up the script!
34
35. Developer-guided code splitting with runAsync
public void onMySettingsLinkClicked() {
Split point GWT.runAsync(new RunAsyncCallback() {
Runs after a short
(but improbable) delay public void onSuccess() {
new MySettingsDialog().show();
}
Runs if required script public void onFailure(Throwable ohNo) {
cannot be downloaded // indicate that something went wrong,
// usually a connectivity or server problem
}
35
36. runAsync() Helps Apps Startup More
Quickly
1500
1400 KB
Size of Initial JavaScript Download (KB)
1125
1125
750
7x Decrease In
Initial Download Size
with runAsync()
375
200 KB
0
26-Nov 29-Apr 18-Jun 28-Jul 12-Sep 27-Oct 24-Dec 16-Mar
37. ImageBundle revisited
• Each <img> tag is one HTTP roundtrip
• Bundle them up!
• 11 HTTP roundtrips become 1
37
38. Declarative UIs with UiBinder
• Build your UI in declarative XML
<!-- UserDashboard.ui.xml -->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:my='urn:import:com.my.app.widgets' >
<g:HTMLPanel>
<my:WeatherReport ui:field='weather'/>
<my:Stocks ui:field='stocks'/>
<my:CricketScores ui:field='scores' />
</g:HTMLPanel>
</ui:UiBinder>
38