This document discusses techniques for building hybrid web applications using PJAX and HATEOAS. PJAX uses AJAX and the History API to update parts of pages for a fluid user experience while retaining server-side rendering. Event delegation and element lifetime are important concepts for managing views. HATEOAS decouples clients from servers by having servers provide link URLs rather than clients hardcoding them. Animation and respecting the back button are also discussed. Staying in sync between the client and server by giving components URLs and using server-sent events is covered.
I've written a lot of Django code in my career, some slow, and some fast; my aim is to share a few of the techniques you can use to go from 300ms response times to 30ms. We'll travel up and down the stack, looking to identify, monitor and solve performance issues, while dodging those which just aren't worth solving.
Full video is available at: https://skillsmatter.com/skillscasts/6628-django-performance-recipes
This is the slides I used when I shared my humble insight on Django to the students in University of Taipei in 2016. Please feel free to correct me if there is anything wrong.
This was a talk given at Django District in March, 2016. It goes over the general gist of how to integrate Django Rest Framework with React and Redux. It also includes a github repo with working code, including using Webpack for Hot Reloading and Redux Dev Tools for time traveling state.
I've written a lot of Django code in my career, some slow, and some fast; my aim is to share a few of the techniques you can use to go from 300ms response times to 30ms. We'll travel up and down the stack, looking to identify, monitor and solve performance issues, while dodging those which just aren't worth solving.
Full video is available at: https://skillsmatter.com/skillscasts/6628-django-performance-recipes
This is the slides I used when I shared my humble insight on Django to the students in University of Taipei in 2016. Please feel free to correct me if there is anything wrong.
This was a talk given at Django District in March, 2016. It goes over the general gist of how to integrate Django Rest Framework with React and Redux. It also includes a github repo with working code, including using Webpack for Hot Reloading and Redux Dev Tools for time traveling state.
django forms are becoming disconnected form the frontend as we move towards API heavy systems. We attempt to bridge the gap by delivering form definition over API, render it in the frontend dynamically using Backbone & Handlebars, provide mechanism for submitting & validating forms over API.
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
Slides apresentados no 16 EDTED, edição Rio de Janeiro, em 21 de Maio de 2011.
Aqui não tem vídeos, animações e códigos apresentados, mas tem os links. Logo passo o link completo.
An overview of the Django rapid application development framework. Topics include the history of the framework, an architectural overview, how to get started, and a brief comparison to Ruby on Rails.
Slides from GeoDjango talk given by Eric Palakovich Carr. Last given in Washington, D.C. for django-district meetup on July 27th, 2011.
http://www.meetup.com/django-district/events/16015696/
Source code hosted on github:
https://github.com/bigsassy/geodjango_talk
Comprehensive Browser Automation Solution using Groovy, WebDriver & Obect ModelvodQA
Learn how to design, create, maintain, and re-factor an automation framework using the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modeling, and the expressiveness of the Groovy language. Gaurav introduces an open-source testing solution that provides all this, and can be integrated with testing frameworks such as Spock, JUnit & TestNG.
One of the main advantages of web applications is their ease of deployment. The same can't be said about desktop applications. However, desktop applications work without a network connection. While this used to be a deal breaker for web applications, recent developments in HTML 5 and browser plugins such as Flash and Silverlight allow developers to create web applications that work both online and offline. In this session, Matt will demonstrate how to create offline web applications in HTML 5, Silverlight and Air. Also, other factors for offline applications, such as client-side data storage, will be examined in detail.
django forms are becoming disconnected form the frontend as we move towards API heavy systems. We attempt to bridge the gap by delivering form definition over API, render it in the frontend dynamically using Backbone & Handlebars, provide mechanism for submitting & validating forms over API.
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
Slides apresentados no 16 EDTED, edição Rio de Janeiro, em 21 de Maio de 2011.
Aqui não tem vídeos, animações e códigos apresentados, mas tem os links. Logo passo o link completo.
An overview of the Django rapid application development framework. Topics include the history of the framework, an architectural overview, how to get started, and a brief comparison to Ruby on Rails.
Slides from GeoDjango talk given by Eric Palakovich Carr. Last given in Washington, D.C. for django-district meetup on July 27th, 2011.
http://www.meetup.com/django-district/events/16015696/
Source code hosted on github:
https://github.com/bigsassy/geodjango_talk
Comprehensive Browser Automation Solution using Groovy, WebDriver & Obect ModelvodQA
Learn how to design, create, maintain, and re-factor an automation framework using the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modeling, and the expressiveness of the Groovy language. Gaurav introduces an open-source testing solution that provides all this, and can be integrated with testing frameworks such as Spock, JUnit & TestNG.
One of the main advantages of web applications is their ease of deployment. The same can't be said about desktop applications. However, desktop applications work without a network connection. While this used to be a deal breaker for web applications, recent developments in HTML 5 and browser plugins such as Flash and Silverlight allow developers to create web applications that work both online and offline. In this session, Matt will demonstrate how to create offline web applications in HTML 5, Silverlight and Air. Also, other factors for offline applications, such as client-side data storage, will be examined in detail.
asp.net life cycle is very important and it guides you in various ways like to create dynamic pages and accumulation. crb tech reviews provided a dip working of asp dot net cycle.
Google Web Toolkit
Presentation by Assoc.Prof. Dr.Thanachart Numnonda & Asst.Prof. Thanisa Kruawaisayawan, Mini Master of Java Technology KMITL, July 2012
Developing java Web Applications Using Google Apps RJUG 2011Ted Husted
Introduced in April 2009, Google Apps Engine for Java has come a long way, and seems ready for primetime.
Google Apps Engine is a Platform as a Service cloud platform. Anyone can create and launch a GAE application at no charge, though resource utilization fees kick in when a site near the one million hits a month mark.
Vosao (www.vosao.org) is an open source content management system developed from the ground up on Google Apps Engine for Java over the last 18 months. Vosao CMS uses many familiar Java libraries, like Velocity templates, popular web libraries, like JQuery, and popular mashup partners, like Picasa and Disqus.
Adding a modern twist to legacy web applicationsJeff Durta
Avoid misery of working with legacy code
We will see how you can add independent and isolated components to existing pages; pages that may be difficult to change
React and Flux allow you to make self-contained additions that handle their own data access/persistence
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)Tech in Asia ID
Riza Fahmi is the Curriculum Director of Hacktiv8, a company he started with Ronald Ishak, in an attempt to solve the developer hiring crunch that has hindered the growth of many aspiring tech startups in Indonesia. Through a 12-week immersive curriculum offered through Hacktiv8, aims to raise the quality of web developers and connect them with the best tech companies in the country.
Knowledge sharing is deeply engrained with his passion and is evident through involvement in many initiatives such as becoming a lecturer at Universitas Budi Luhur; becoming an organizer for JakartaJS, Meteor Jakarta and React Indonesia; a speaker at Singapore Elixir Meetup, GeekCamp, Lambda Jakarta and much more to come.
***
This slide was shared at Tech in Asia Product Development Conference 2017 (PDC'17) on 9-10 August 2017.
Get more insightful updates from TIA by subscribing techin.asia/updateselalu
Push to the limit - rich and pro-active user interfaces with ADF (Oracle Ope...Lucas Jellema
Visual appeal and desktop-like reaction to user input were key elements in Web 2.0, powered by AJAX. The next generation user interface is active - presenting data and events in real time, driven by server push technology. This session demonstrates how ADF Active Data Service (ADS) and the BAM Data Control are leveraged to create an active UI. Messages arriving on JMS, through HTTP, from Complex Event Processing and from email servers are pushed to the browser, updating charts, tables and even causing popups to open. The session demonstrates a Chat implementation integrated in a Fusion Web application. It also shows how Database Query Result Change Notification and ADS allow events to be pushed from database all the way to user interface.
React is a UI library that is changing the way web applications are written. While there are many benefits to using React, managing an application's complexity as it scales is one of the most powerful.
ADF Gold Nuggets (Oracle Open World 2011)Lucas Jellema
Gold Nuggets in ADF Faces
ADF Faces is a superior User Interface technology. Just look at Fusion Applications to confirm that statement. Or look at one of the hundreds of ADF applications deployed around the world. ACE Directors Chris Muir and Lucas Jellema draw from the experiences on many of these application to demonstrate a number of the most useful, productive, surprising, even amusing and sometimes quite obscure features in ADF Faces. To offer more insight in the richness of the ADF framework in general and also provide very concrete examples that will immediately help you add advanced functionality or benefit from increased productivity. Topics include task flows, push, desktop integration, event handling, reuse, change persistence, UI Shell and more.
value: - learn about tricks and useful features in ADF Faces that will enable attendees to enhance their ADF applications (in term of visual richness and functionality) and to increase their productivity and improve their development process - get inspired about ADF (Faces)
At Yahoo, our Salesforce developers are thinking 'above and beyond' to create innovative solutions with Apex and Visualforce. Join us as we discuss patterns for deep clone, mass and bulk edit, and walk through the data import wizard we built to allow our sales team to synchronously modify 10,000 records at a time.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
3. Hybrid Web Applications
An approach to improving the user experience of
legacy web applications
Modernising applications in a way that doesn’t
ignore the fundamental tenets of the web
Borrowing ideas and techniques from the oldschool web and new technologies
4. Background
Needed to rewrite a server-side application and
wanted a better UX
Decided to learn about client side SPA
frameworks (Ember/Angular)
Realised there’s a steep learning curve
Big mindset shift from server-side to client-side
development
5. Is there another way?
Retain server-side development environment
Fluid & engaging UX (like modern SPAs)
Not learn a big client-side framework
16. PJAX Container
Identify where the partial HTML will be inserted
<div class="container" id="pjax-container">
Go to <a href=“/page/2" data-pjax>next page</a>.
</div>
$(document).pjax(a[data-pjax]', '#pjax-container')
17. PJAX Requests
Inform the server that you don’t want the full
page, just the partial
Could use a custom request header
If the browser doesn’t support the History API
fallback to normal request
18. PJAX Requests
If browser supports History API then intercept
links and make PJAX request
<a href=“/my-page/“ data-pjax>link</a>
and
XHR.setRequestHeader(‘X-PJAX’)
19. PJAX - Server
def myView(request):
if request.headers[‘X-PJAX’]:
return renderPartial()
else:
return renderLayout()
32. PopState Event
the popState event is fired when you go back
and forward in the browser history
the state object assigned to the url is returned
on a property of the event called state
this allows you to reconstruct the page without a
full reload
36. Visual Cues
Browsers have traditionally given visual cues
More power for developers (A JAX, History API)
Remember to keep the user in the loop
Slow down connection or put setTimeout in
jquery send
48. Event Delegation
Delegate events to elements with a long lifetime
Events fired on newly inserted HTML bubble up
to container (delegate)
Fewer event handlers
59. Animation
Feedback for the user is vital
Helps to suggest the behaviour of the back button
Helps to suggest available touch events
Native mobile/desktops rely on animation to help
the user feel in control of the application
UX is predictable
70. Push or Replace
history.pushState vs history.replaceState
Is this a new state or are we just altering the
existing state?
How are we presenting states? What will the
typical user want to do?
User Testing
71. ReplaceState
some potential use cases
Modal dialogues - users probably don't expect
the back button to undo the modal
Setting up the first page a user visits so we can
recreate state when they hit back
73. Staying In Sync
With The Server
PJAX makes updating a part of the page easy
What about other representations of the same
entity which already exist on the page?
Allow parts of the page to become stale or
occasionally refresh the page (jquery-idletimer)
Assign URL’s to components on the page
76. Staying In Sync
With The Server
Pros: Master and detail view stay in sync
Cons: making multiple requests for content
77. Staying In Sync
With The Server
How can we make a single request?
Server-Sent Events
Send HTML in JSON
Generic approach to updating content on the
client with JSON & HTML
78. Staying In Sync
With The Server
{
“content”: [
“div.thing”: “<p>content</p>”,
“div.related”: “<p>related content</p>”
]
}
79. Staying In Sync
With The Server
Sending HTML/JSON could work but lots of
benefits of using SSE:
Uses Traditional HTTP
Automatic reconnection
Send any type of event
80. Summary
PJAX - PushState+A JAX, URLs are important in modern JS heavy
apps
HATEOAS - decoupling client from server
Element Lifetime & Event Delegation - binding to long lived
element
Push or Replace - what should the back button do?
Animation - important for user feedback
Staying in Sync - giving components URLs