The document discusses Ample SDK, a standards-based GUI framework for building client-side applications. Ample SDK runs transparently between the browser and application, providing standard cross-browser access to the user interface. It allows building application UIs using XML languages like XHTML, XUL and SVG. Styling is done with CSS. Logic is implemented with JavaScript. The programming model is similar to building applications directly in the browser.
This document discusses HTML5 and how it can be used to enhance JavaServer Faces (JSF) 2.0 components. It provides an overview of HTML5 features such as new semantic elements, form controls, media elements, graphics with canvas, and JavaScript APIs. It also describes JSF 2.0's composite component model and how components can leverage HTML5 features like media playback and JavaScript integration. The document demonstrates a composite audio component that uses HTML5's audio element and JavaScript to control audio playback from JSF. It encourages leveraging HTML5 to promote rich user interfaces and future-proof JSF applications.
The document summarizes WebSphere sMash, an agile web application platform from IBM that leverages dynamic scripting languages like Groovy and PHP. It discusses key features of WebSphere sMash including the event-driven programming model, use of a global context for state management, deployment and tooling. The document also provides an overview of building RESTful applications with WebSphere sMash and using PHP within the platform.
The document discusses HTML5 game development. It covers various topics like game concepts, HTML5 components for games, developing a game step-by-step and advanced topics. It focuses on HTML5 canvas for graphics, local storage for data, and describes functions for animations, interactions, controls and other elements needed for game development. The document provides examples for drawing, colors, images and text on the canvas.
Introduction to the Eclipse scripting tool Groovy Monkey. Groovy Monkey allows for you to engage in API exploration, Task Automation, Plugin prototyping and collaboration in a lightweight and simple way.
Here are the 4 main ways to define routes in Symfony:
1. Annotations: Put routing information directly in controllers as annotations.
2. YAML configuration: Define routes in the routing.yml configuration file.
3. XML configuration: Define routes in the routing.xml configuration file.
4. PHP configuration: Define routes by creating and returning RouteCollection instances from routing.php files.
The YAML configuration method is most commonly used. It keeps routing separated from code and allows defining multiple routes in one centralized configuration file for better organization. Annotations can also be useful for simple applications. XML is not used much. And PHP configuration is only needed if routes need to be dynamically generated.
This document provides an introduction and overview of Ruby on Rails (RoR), including its background, key features like MVC architecture and ActiveRecord ORM, and how it delivers business value through rapid application development. Rails simplifies and speeds up the web development process using conventions over configurations and Don't Repeat Yourself principles. It also includes examples of popular websites built with Rails and concludes with a discussion of actions, controllers and templates in the MVC framework.
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
HTML5 and the dawn of rich mobile web applications pt 1
Mobile applications are evolving to leverage HTML5 and rich web technologies. While native mobile applications currently have advantages in terms of performance and access to device features, HTML5 allows building applications that work across mobile devices and platforms using web standards. Frameworks like jQuery Mobile and Sencha Touch demonstrate how to build mobile-optimized interfaces using HTML, CSS, and JavaScript. HTML5 applications have the potential for broader reach and less development effort compared to building separate native apps, though performance compromises remain versus truly native apps.
Mozilla Firefox Extension Development, Course 1: Basic
This document provides an overview and examples of creating user interfaces with XML User Interface Language (XUL) in Mozilla Firefox extensions. It discusses XUL elements like boxes, buttons, menus and layout attributes. Code snippets demonstrate how to use these elements to build interfaces with labels, text boxes, checkboxes and nested menus. The document also explains how JavaScript and CSS can be used to add interactivity and styles to XUL interfaces.
- The document provides an overview of key concepts for developing Android user interfaces (UIs), including activities, tasks, views, layouts, menus, and event handling.
- It explains how to define and populate UIs using XML layout resources or programmatically in Java code, and how to move between activities using intents.
- The document emphasizes that threading behavior differs in Android and blocking or UI modifications on non-UI threads can cause problems.
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
In this session we are going to know the Xamarin Community Toolkit (XCT) along with all the options it offers like controls, converters, behaviors, etc.
- The document discusses AngularJS and single page applications. It provides an introduction and overview of key AngularJS concepts including modules, controllers, views, services, dependency injection, and filters.
- Code samples and demos are referenced to illustrate concepts in more depth. Challenges with SEO and the benefits of TypeScript for adding type safety to JavaScript are also mentioned.
Tommy Williams Jr is a full stack developer with a primary focus on Angular 2, Ionic 2, Node JS, and JavaScript. He has over 10 years of experience building both front-end and back-end applications. Currently he works as a lead UI developer at Office Depot, where he helped modernize their codebase and transition websites during an acquisition. In previous roles, he has developed on additional technologies like PHP, ColdFusion, and C++. He also runs his own company called Location Over Time LLC and works on personal projects involving new technologies like web components.
Chapter 16 2 Air Masses, Fronts And Weather Maps Andie
An air mass is a large volume of air that acquires consistent temperature and humidity characteristics based on the region over which it travels. There are four main types of air masses: maritime tropical, continental tropical, maritime polar, and continental polar. Weather fronts occur when different air masses meet, with the denser air mass pushing the less dense air mass. A cold front moves more quickly than a warm front and can produce severe weather like thunderstorms.
This document discusses the human sensory and nervous systems. It explains that humans have various sense organs like skin, eyes, ears, taste buds and nose that collect information about the environment. This information is detected by sensory receptors and transmitted via sensory neurons and nerves to either trigger instant reflex responses or alert the conscious brain. It also describes the endocrine system and how hormones released by glands produce longer-lasting responses than the nervous system to control various bodily functions and maintain homeostasis.
The document discusses the key factors that influence weather and climate on Earth, including heat from the sun, atmospheric gases, and their interactions. It explains that the sun provides visible light, ultraviolet radiation, and infrared radiation that warm the Earth's surface and atmosphere. Gases like carbon dioxide in the atmosphere contribute to the greenhouse effect by trapping heat. The amount of solar energy reaching different locations on Earth depends on latitude and time of year due to variations in the sun's angle and the spread of its energy across larger areas.
This document discusses WebSockets in Ruby in 5 minutes. It introduces WebSockets and the WebSocket API. It then summarizes how to implement a Ruby WebSocket server using the EM-WebSocket library and a Ruby WebSocket client using the Web-Socket-Ruby library. It also discusses how to implement a JavaScript WebSocket client. Finally, it discusses some use cases for WebSockets like chat, games, and real-time notifications and encourages experimenting with building a chat, whiteboard, or todo list application.
A Software Testing Professional
Qualified, Experienced, Responsible, Dependable
Software Test Engineer Seeking assignments for Testing Software, MANUAL/AUTOMATION, SECURITY Testing Comprehensive Knowledge of the SDLC (Software Development life cycle) and STLC (Software Testing Life Cycle), Spiral and V-MODEL activities within a leading organization.
El documento proporciona una tabla con las formas del verbo TO BE (ser o estar) en inglés para las personas singulares y plurales en las formas afirmativa, negativa e interrogativa. Se incluyen ejemplos de cada forma con los pronombres correspondientes.
Pada tugas DDP MIPA T.A 2014/2015 dapat memilih KD yang ada pada kurikulum K-13 sebagai berikut. Cantumkan nomor KD yang telah dipilih, pada kolom KD yang ada pada tabel identifikasi.
This document discusses methods for determining the age of objects, including radioactive dating using carbon-14. Radioactive elements like carbon-14 decay at a steady rate, allowing scientists to calculate an object's age by comparing the amounts of stable and unstable atoms. Specifically, carbon dating works because carbon-14 is absorbed by plants and animals while alive but then decreases after death, following the radioactive half-life. By measuring carbon-14 and carbon-12 levels, the time since a plant or animal died can be estimated.
Trend Report July 2011: Facebook, Brands & TV in Germany
Whereas in the spring of 2010 only about a quarter of the top-100 TV advertisers were identified as having an official (German-language) Facebook presence, just one year later it was evident that the world's largest social network had attracted a far greater proportion of those companies. Working with the same selection method, in April 2011 we identified that half (75) of the companies and brands serving as our basis had official fan pages, of which almost half (30) were less than a year old. This was based on the top 150 TV advertising spenders in the first quarter of the year.
Key issues for the second Trend Report:
- Review and improvement of the benchmarks identified in 2010:
- Re-evaluation of the different strategic patterns in the use of Facebook as a communication channel.
- Review of the following hypotheses:
1. Fan pages for brands and companies show declining interaction rates in 2011.
2. The typology of communication strategies displays a shift towards dialogue-oriented forms.
3. The differences in the interaction rates are industry- and size-specific.
4. Brands communicate their Facebook presence more frequently in other communications channels such as TV commercials and corporate web sites than was the case a year ago.
The document discusses the rules for changing direct speech into reported or indirect speech. It explains that verbs must change to past tense, pronouns and place/time references are adjusted, and that reporting verbs like "said" are used to indicate an statement was made indirectly. Indirect questions use "asked" and change word order. Indirect orders/requests use "told" or "asked" followed by an infinitive verb.
Presentation to the San Francisco transmedia meetup group - Transmedia SF. Thanks to everyone who came out and for the passionate discussion afterwards. It was a huge pleasure!
Conditional sentences contain two clauses: an if-clause expressing a condition and a consequence clause. The first conditional is used for probable present conditions and their likely future consequences, such as "If it rains tomorrow, we shall cancel the picnic" or "You will be tired if you do a lot of exercises." It typically uses the present simple in the if-clause and the future simple with will/won't in the consequence clause. Conditional sentences express possible outcomes based on stated conditions.
Fast and easy to construct, environmental timber frame homes are precision engineered, energy efficient and warm.
OFP timber frame homes are carefully fabricated in our own workshops in kent and the South East of England, using timber from managed resources. Each stage of production is carefully monitored to ensure that our customers receive a quality product, with delivery arranged to suit their build programme.
1) The document discusses using SVG cross-browser with the Ample SDK JavaScript GUI framework. It describes implementing SVG in Ample SDK and how to embed, modify, and style SVG fragments.
2) When implementing SVG, Ample SDK aims to equalize browser APIs without introducing new ones, extend browser UI technologies, and create reusable UI components. It virtualizes native technologies like SVG and VML.
3) Embedding SVG in HTML, dynamically modifying fragments via DOM or SMIL APIs, and styling with CSS classes, elements, or inline styles are demonstrated. Problems with VML performance and attributes in IE are also noted.
HTML 5 is a new version of HTML that is still being developed. It aims to evolve HTML instead of reinventing it. Key features include new form elements, input types, semantic elements, APIs for offline apps, and standardized video and audio embedding. Browser support is growing but the specification may not be finalized until 2022. However, many features are already implemented and can be used today through emulation if needed.
Declarative and standards-based web application development with the Ample SDK
UI development in the browser can be done declaratively or programmatically. Declarative development uses markup languages like XUL to define UI layout and behavior separately from logic, improving readability, reusability, and team collaboration. The Ample SDK provides a declarative approach, generating a shadow DOM that normalizes browser APIs while allowing the use of standards-based markup languages to build reusable, modular UIs. It provides object models for documents, elements and other interfaces that wrap native browser APIs for cross-browser compatibility.
WebNet Conference 2012 - Designing complex applications using html5 and knock...
This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.
This presentation has been presented at the Flex User Group in Berlin [1] on July 5th, 2012. I basically tried to cover the current state of Apache Flex, its possible future role in 2050 and compared Apache Flex with other Web technologies. I also tried to summarise my current work at Apache Flex. Hopefully, you'll find this presentation inspiring, too ;)
[1] http://www.flash-kiez.de
Hyperion EPM APIs - Added value from HFM, Workspace, FDM, Smartview, and Shar...
Application Programming Interfaces allow developers to leverage existing program code in an effort to build additional functionality, automate processes or present existing functionality in a different format. APIs exist for many of Hyperion products; however, clear examples of how to use them are not always easy to find nor are applications for the API readily available. Proper application of the APIs for HFM, Workspace, FDM, Smartview and Shared Services can simplify the daily routines of end users and administrators.
This session will provide a high level overview of how each of the APIs work. Additionally, real-world examples for each API will be provided. Fully working code will be available for download from the ODTUG 12 site which attendees can use in their own environments.
AJAX is a web development technique that uses asynchronous JavaScript and XML to make web pages more interactive. It allows asynchronous data retrieval and manipulation of page elements without reloading the entire page. Several frameworks, toolkits, and libraries have been developed to help build AJAX applications and simplify development by providing reusable widgets and hiding complex functionality. These include both communication libraries that handle browser differences and user interface toolkits with common UI controls. Larger AJAX frameworks provide fully integrated shared libraries and development tools.
Multi modularized project setup with gulp, typescript and angular.jsDavid Amend
The document discusses setting up a multi-module build process for an Angular and TypeScript application with Gulp at DAB Bank. It describes challenges with their initial Grunt-based approach and outlines their new Gulp-based solution using a common setup module to define shared build tasks and provide a base configuration. It also covers managing dependencies between files and modules through Angular's module system and TypeScript's module syntax.
WordCamp ABQ 2013: Making the leap from Designer to Designer/Developermy easel
This document summarizes Ray Gulick's presentation at WordCamp Albuquerque 2013 about making the transition from designer to designer/developer. It discusses how coding skills are an essential part of design work. It provides an overview of key WordPress coding concepts like PHP, tags, custom fields, custom post types, and using WP_Query to manage listings. Code examples are provided to demonstrate how to display custom fields and create a custom post type listing with pagination. The goal is to illustrate that becoming a designer/developer is a process of learning by doing and mastering these foundational skills.
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...Mahbubur Rahman
JavaScript templates render and cache HTML client-side without server requests, improving page speed. They also allow abstracting UI logic into a JavaScript API. By pushing some processing to the client, templates decrease server load and improve scalability while providing a rich user experience. Templates use tags in HTML-like code to insert data values and control flow. Common template engines like Mustache support multiple languages and platforms.
This document discusses HTML5 and how it can be used to enhance JavaServer Faces (JSF) 2.0 components. It provides an overview of HTML5 features such as new semantic elements, form controls, media elements, graphics with canvas, and JavaScript APIs. It also describes JSF 2.0's composite component model and how components can leverage HTML5 features like media playback and JavaScript integration. The document demonstrates a composite audio component that uses HTML5's audio element and JavaScript to control audio playback from JSF. It encourages leveraging HTML5 to promote rich user interfaces and future-proof JSF applications.
The document summarizes WebSphere sMash, an agile web application platform from IBM that leverages dynamic scripting languages like Groovy and PHP. It discusses key features of WebSphere sMash including the event-driven programming model, use of a global context for state management, deployment and tooling. The document also provides an overview of building RESTful applications with WebSphere sMash and using PHP within the platform.
The document discusses HTML5 game development. It covers various topics like game concepts, HTML5 components for games, developing a game step-by-step and advanced topics. It focuses on HTML5 canvas for graphics, local storage for data, and describes functions for animations, interactions, controls and other elements needed for game development. The document provides examples for drawing, colors, images and text on the canvas.
Introduction to the Eclipse scripting tool Groovy Monkey. Groovy Monkey allows for you to engage in API exploration, Task Automation, Plugin prototyping and collaboration in a lightweight and simple way.
Here are the 4 main ways to define routes in Symfony:
1. Annotations: Put routing information directly in controllers as annotations.
2. YAML configuration: Define routes in the routing.yml configuration file.
3. XML configuration: Define routes in the routing.xml configuration file.
4. PHP configuration: Define routes by creating and returning RouteCollection instances from routing.php files.
The YAML configuration method is most commonly used. It keeps routing separated from code and allows defining multiple routes in one centralized configuration file for better organization. Annotations can also be useful for simple applications. XML is not used much. And PHP configuration is only needed if routes need to be dynamically generated.
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
This document provides an introduction and overview of Ruby on Rails (RoR), including its background, key features like MVC architecture and ActiveRecord ORM, and how it delivers business value through rapid application development. Rails simplifies and speeds up the web development process using conventions over configurations and Don't Repeat Yourself principles. It also includes examples of popular websites built with Rails and concludes with a discussion of actions, controllers and templates in the MVC framework.
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
HTML5 and the dawn of rich mobile web applications pt 1James Pearce
Mobile applications are evolving to leverage HTML5 and rich web technologies. While native mobile applications currently have advantages in terms of performance and access to device features, HTML5 allows building applications that work across mobile devices and platforms using web standards. Frameworks like jQuery Mobile and Sencha Touch demonstrate how to build mobile-optimized interfaces using HTML, CSS, and JavaScript. HTML5 applications have the potential for broader reach and less development effort compared to building separate native apps, though performance compromises remain versus truly native apps.
Mozilla Firefox Extension Development, Course 1: Basiclittlebtc
This document provides an overview and examples of creating user interfaces with XML User Interface Language (XUL) in Mozilla Firefox extensions. It discusses XUL elements like boxes, buttons, menus and layout attributes. Code snippets demonstrate how to use these elements to build interfaces with labels, text boxes, checkboxes and nested menus. The document also explains how JavaScript and CSS can be used to add interactivity and styles to XUL interfaces.
Android | Busy Java Developers Guide to Android: UI | Ted NewardJAX London
- The document provides an overview of key concepts for developing Android user interfaces (UIs), including activities, tasks, views, layouts, menus, and event handling.
- It explains how to define and populate UIs using XML layout resources or programmatically in Java code, and how to move between activities using intents.
- The document emphasizes that threading behavior differs in Android and blocking or UI modifications on non-UI threads can cause problems.
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Javier Suárez Ruiz
In this session we are going to know the Xamarin Community Toolkit (XCT) along with all the options it offers like controls, converters, behaviors, etc.
- The document discusses AngularJS and single page applications. It provides an introduction and overview of key AngularJS concepts including modules, controllers, views, services, dependency injection, and filters.
- Code samples and demos are referenced to illustrate concepts in more depth. Challenges with SEO and the benefits of TypeScript for adding type safety to JavaScript are also mentioned.
Tommy Williams Jr is a full stack developer with a primary focus on Angular 2, Ionic 2, Node JS, and JavaScript. He has over 10 years of experience building both front-end and back-end applications. Currently he works as a lead UI developer at Office Depot, where he helped modernize their codebase and transition websites during an acquisition. In previous roles, he has developed on additional technologies like PHP, ColdFusion, and C++. He also runs his own company called Location Over Time LLC and works on personal projects involving new technologies like web components.
Chapter 16 2 Air Masses, Fronts And Weather Maps Andiecharsh
An air mass is a large volume of air that acquires consistent temperature and humidity characteristics based on the region over which it travels. There are four main types of air masses: maritime tropical, continental tropical, maritime polar, and continental polar. Weather fronts occur when different air masses meet, with the denser air mass pushing the less dense air mass. A cold front moves more quickly than a warm front and can produce severe weather like thunderstorms.
This document discusses the human sensory and nervous systems. It explains that humans have various sense organs like skin, eyes, ears, taste buds and nose that collect information about the environment. This information is detected by sensory receptors and transmitted via sensory neurons and nerves to either trigger instant reflex responses or alert the conscious brain. It also describes the endocrine system and how hormones released by glands produce longer-lasting responses than the nervous system to control various bodily functions and maintain homeostasis.
The document discusses the key factors that influence weather and climate on Earth, including heat from the sun, atmospheric gases, and their interactions. It explains that the sun provides visible light, ultraviolet radiation, and infrared radiation that warm the Earth's surface and atmosphere. Gases like carbon dioxide in the atmosphere contribute to the greenhouse effect by trapping heat. The amount of solar energy reaching different locations on Earth depends on latitude and time of year due to variations in the sun's angle and the spread of its energy across larger areas.
This document discusses WebSockets in Ruby in 5 minutes. It introduces WebSockets and the WebSocket API. It then summarizes how to implement a Ruby WebSocket server using the EM-WebSocket library and a Ruby WebSocket client using the Web-Socket-Ruby library. It also discusses how to implement a JavaScript WebSocket client. Finally, it discusses some use cases for WebSockets like chat, games, and real-time notifications and encourages experimenting with building a chat, whiteboard, or todo list application.
Test Analyst 3 + Yrs Manual Automation Themeamitcitm
A Software Testing Professional
Qualified, Experienced, Responsible, Dependable
Software Test Engineer Seeking assignments for Testing Software, MANUAL/AUTOMATION, SECURITY Testing Comprehensive Knowledge of the SDLC (Software Development life cycle) and STLC (Software Testing Life Cycle), Spiral and V-MODEL activities within a leading organization.
El documento proporciona una tabla con las formas del verbo TO BE (ser o estar) en inglés para las personas singulares y plurales en las formas afirmativa, negativa e interrogativa. Se incluyen ejemplos de cada forma con los pronombres correspondientes.
Pada tugas DDP MIPA T.A 2014/2015 dapat memilih KD yang ada pada kurikulum K-13 sebagai berikut. Cantumkan nomor KD yang telah dipilih, pada kolom KD yang ada pada tabel identifikasi.
This document discusses methods for determining the age of objects, including radioactive dating using carbon-14. Radioactive elements like carbon-14 decay at a steady rate, allowing scientists to calculate an object's age by comparing the amounts of stable and unstable atoms. Specifically, carbon dating works because carbon-14 is absorbed by plants and animals while alive but then decreases after death, following the radioactive half-life. By measuring carbon-14 and carbon-12 levels, the time since a plant or animal died can be estimated.
Whereas in the spring of 2010 only about a quarter of the top-100 TV advertisers were identified as having an official (German-language) Facebook presence, just one year later it was evident that the world's largest social network had attracted a far greater proportion of those companies. Working with the same selection method, in April 2011 we identified that half (75) of the companies and brands serving as our basis had official fan pages, of which almost half (30) were less than a year old. This was based on the top 150 TV advertising spenders in the first quarter of the year.
Key issues for the second Trend Report:
- Review and improvement of the benchmarks identified in 2010:
- Re-evaluation of the different strategic patterns in the use of Facebook as a communication channel.
- Review of the following hypotheses:
1. Fan pages for brands and companies show declining interaction rates in 2011.
2. The typology of communication strategies displays a shift towards dialogue-oriented forms.
3. The differences in the interaction rates are industry- and size-specific.
4. Brands communicate their Facebook presence more frequently in other communications channels such as TV commercials and corporate web sites than was the case a year ago.
The document discusses the rules for changing direct speech into reported or indirect speech. It explains that verbs must change to past tense, pronouns and place/time references are adjusted, and that reporting verbs like "said" are used to indicate an statement was made indirectly. Indirect questions use "asked" and change word order. Indirect orders/requests use "told" or "asked" followed by an infinitive verb.
Presentation to the San Francisco transmedia meetup group - Transmedia SF. Thanks to everyone who came out and for the passionate discussion afterwards. It was a huge pleasure!
Conditional sentences contain two clauses: an if-clause expressing a condition and a consequence clause. The first conditional is used for probable present conditions and their likely future consequences, such as "If it rains tomorrow, we shall cancel the picnic" or "You will be tired if you do a lot of exercises." It typically uses the present simple in the if-clause and the future simple with will/won't in the consequence clause. Conditional sentences express possible outcomes based on stated conditions.
Fast and easy to construct, environmental timber frame homes are precision engineered, energy efficient and warm.
OFP timber frame homes are carefully fabricated in our own workshops in kent and the South East of England, using timber from managed resources. Each stage of production is carefully monitored to ensure that our customers receive a quality product, with delivery arranged to suit their build programme.
1) The document discusses using SVG cross-browser with the Ample SDK JavaScript GUI framework. It describes implementing SVG in Ample SDK and how to embed, modify, and style SVG fragments.
2) When implementing SVG, Ample SDK aims to equalize browser APIs without introducing new ones, extend browser UI technologies, and create reusable UI components. It virtualizes native technologies like SVG and VML.
3) Embedding SVG in HTML, dynamically modifying fragments via DOM or SMIL APIs, and styling with CSS classes, elements, or inline styles are demonstrated. Problems with VML performance and attributes in IE are also noted.
HTML 5 is a new version of HTML that is still being developed. It aims to evolve HTML instead of reinventing it. Key features include new form elements, input types, semantic elements, APIs for offline apps, and standardized video and audio embedding. Browser support is growing but the specification may not be finalized until 2022. However, many features are already implemented and can be used today through emulation if needed.
Declarative and standards-based web application development with the Ample SDKBéla Varga
UI development in the browser can be done declaratively or programmatically. Declarative development uses markup languages like XUL to define UI layout and behavior separately from logic, improving readability, reusability, and team collaboration. The Ample SDK provides a declarative approach, generating a shadow DOM that normalizes browser APIs while allowing the use of standards-based markup languages to build reusable, modular UIs. It provides object models for documents, elements and other interfaces that wrap native browser APIs for cross-browser compatibility.
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.
This presentation has been presented at the Flex User Group in Berlin [1] on July 5th, 2012. I basically tried to cover the current state of Apache Flex, its possible future role in 2050 and compared Apache Flex with other Web technologies. I also tried to summarise my current work at Apache Flex. Hopefully, you'll find this presentation inspiring, too ;)
[1] http://www.flash-kiez.de
Hyperion EPM APIs - Added value from HFM, Workspace, FDM, Smartview, and Shar...Charles Beyer
Application Programming Interfaces allow developers to leverage existing program code in an effort to build additional functionality, automate processes or present existing functionality in a different format. APIs exist for many of Hyperion products; however, clear examples of how to use them are not always easy to find nor are applications for the API readily available. Proper application of the APIs for HFM, Workspace, FDM, Smartview and Shared Services can simplify the daily routines of end users and administrators.
This session will provide a high level overview of how each of the APIs work. Additionally, real-world examples for each API will be provided. Fully working code will be available for download from the ODTUG 12 site which attendees can use in their own environments.
AJAX is a web development technique that uses asynchronous JavaScript and XML to make web pages more interactive. It allows asynchronous data retrieval and manipulation of page elements without reloading the entire page. Several frameworks, toolkits, and libraries have been developed to help build AJAX applications and simplify development by providing reusable widgets and hiding complex functionality. These include both communication libraries that handle browser differences and user interface toolkits with common UI controls. Larger AJAX frameworks provide fully integrated shared libraries and development tools.
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010Sergey Ilinsky
The document discusses the Ample SDK, a JavaScript GUI framework that aims to provide a consistent platform for building complex web applications. It virtualizes browser technologies to implement a standard programming model using XML for layout, CSS for styling, and JavaScript for logic. This allows developers to build reusable UI components. The framework also enables creation of domain-specific markup languages and extension of core technologies like SVG and XUL across browsers.
The document discusses the evolution from Web 1.0 to Web 2.0, including defining characteristics of Web 2.0 sites like user participation, reusable data, and improving functionality as more users engage with the site. It also provides an overview of important Web 2.0 technologies like AJAX, microformats, mashups and recommendations for skills needed by web developers, such as JavaScript libraries, debugging tools, and techniques to improve page load speeds.
HTML5 and CSS3 Techniques You Can Use TodayTodd Anglin
This document provides an overview of HTML5 and CSS3 techniques that can be used today, beginning with a brief history of HTML and CSS. It then discusses adoption strategies for new techniques, including using polyfills to enable support in older browsers. Specific techniques demonstrated include semantic HTML5 tags, video and audio, geolocation, local storage, HTML5 forms, and microdata. CSS3 techniques covered are selectors, color, fonts, borders and backgrounds, gradients, media queries, and animations. The document emphasizes that many new techniques can be used now across browsers with polyfills or alternate implementations for older browsers.
This document discusses Mono, an open source implementation of Microsoft's .NET Framework. It provides an overview of Mono's goals of compatibility with .NET and support for running .NET applications on non-Windows platforms. It also describes some of Mono's features like its C# compiler, LINQ support, code injection capabilities, and use in games to improve performance over scripting.
Angular 2.0 aims to build a complete platform for web applications by improving performance, developer productivity, and versatility compared to AngularJS 1.x. Key goals include making the framework faster, simpler, and more modular. It focuses on improved change detection, lazy loading of code, and support for features like universal rendering. Major companies like Capital One, The Weather Channel, and LucidChart adopted Angular 2.0 to build applications with better performance, collaboration, and maintenance. The framework saw contributions from an active open source community and remains one of the most popular JavaScript frameworks.
This document discusses considerations for load testing websites that utilize Ajax technology. It notes that testing at the HTTP layer allows for scalable testing but can miss client-side interactions. Challenges with HTTP layer testing include hard-coded URLs, recording issues, limitations testing JavaScript-heavy code, and properly handling states and timeouts. Browser-based load testing is an alternative that allows proper simulation of Ajax interactions but lacks scalability, though cloud-based options are improving. The document provides guidance on when each approach is best suited.
Chanhao Jiang And David Wei Presentation Quickling PagecacheAjax Experience 2009
Quickling and PageCache are two software abstractions at Facebook that improve front-end performance. Quickling makes the site faster by using AJAX to transparently load pages without reloading common elements. PageCache caches user-visited pages in the browser to improve latency and reduce server load when pages are revisited. Both have significantly reduced Facebook's page rendering times and improved the user experience.
The document summarizes the state of mobile web development and the advantages of using HTML5. It discusses how HTML5, CSS3, and JavaScript now allow mobile web apps to have native-like features without needing native app development. It also presents examples of using geolocation, CSS3 effects, transformations, web databases and offline caching to build powerful mobile web experiences. Finally, it discusses hybrid frameworks that combine mobile web delivery with native capabilities and app store deployment.
The document discusses the Yahoo User Interface (YUI) DataSource utility which provides abstraction for data retrieval and normalization from various sources and formats. It describes how DataSource works with different transports (local data, external sources) and formats (JSON, XML, text), and how it can be used to interface with widgets like AutoComplete and DataTable. Examples are provided for retrieving and parsing data from various endpoints and formats.
The document discusses building accessible user interfaces with jQuery and Fluid Infusion. It covers topics like the Fluid community, introducing the Infusion framework, developing accessible JavaScript, Infusion's architecture, and techniques for portals, mashups and content management systems. The document provides information on Infusion's components and tools for accessibility. It emphasizes that Infusion is designed to provide flexibility while preserving interoperability and accessibility is baked into its design.
Beyond IFrames:Web Sandboxes discusses a new approach called Web Sandbox that isolates and secures boundaries between trusted and untrusted content via composite host-defined security policies. It builds on existing knowledge and embraces existing programming patterns to provide browser equalization while securing user data and personal information as applications get richer through aggregation. The Web Sandbox uses a virtual machine and transformation process to execute untrusted code securely according to specified policies without redefining the web's security model. It allows sites to properly model and enforce trust relationships to protect themselves and users.
The document discusses the concept of a "Dissident Web" as an alternative to the traditional centralized web model. It proposes a distributed peer-to-peer model where network nodes collaboratively store, manage, and distribute web assets like files and data. This model spreads the workload across many nodes rather than consolidating it on centralized servers, making the web architecture more resilient and scalable. It also suggests leveraging technologies like BitTorrent, Gnutella, and NoSQL databases to enable this distributed "cloud" web architecture.
1) WAMI is a research project at MIT that allows voice recognition and audio recording capabilities to be added to web applications through a free web service API.
2) With WAMI, audio captured through a user's microphone is streamed to WAMI servers for processing in real-time, and the structured data of what was said is sent to the web application via JavaScript.
3) The founder provides examples of how WAMI can be implemented in a web app to allow voice control through JavaScript, including defining a grammar and receiving recognition results to trigger actions in the application.
This document discusses designing user interfaces to create "interesting moments" during interactions. It begins by examining the many events and actors involved even in simple interactions like dragging and dropping. It then analyzes 96 potential "interesting moments" that could occur. The document discusses principles for designing these moments, such as using animation carefully and maintaining symmetrical interactions. It provides examples of good and bad interface patterns related to drag and drop, overlays, navigation bars, and other interactions. The overall goal is to thoughtfully design moments that capture micro interactions and possibilities to create a pleasing user experience.
The document discusses how to simplify and automate testing of Ajax applications. It explores how Ajax works and why it complicates testing. It also covers when, where, and how to test Ajax components as well as how to test with continuous integration systems. The session will examine tools that can automate Ajax testing and integrate it into continuous integration workflows.
This document summarizes an upcoming session comparing the YUI Doc and JS Doc Toolkit API documentation generators. The session will discuss how API generators work and their role in documentation. Attendees will learn when to use YUI Doc versus JS Doc Toolkit, and about alternatives to comment-based documentation.
The document discusses design tips for building dynamic user interfaces that can handle heavy loads. It describes how asynchronous JavaScript and XML (AJAX) interfaces can have worse experiences than traditional interfaces when backends are slow or error-prone. It recommends injecting form data back into the interface representation, using load testing simultaneously with interface testing, and mocking failures in server code to reproduce issues under heavy loads.
The document discusses the challenges and rewards of developing a large JavaScript application with over 120,000 lines of code. It describes the Xopus XML editor framework, including its object-oriented architecture, class loading system, and techniques for improving performance like asynchronous execution and lazy loading of components. The framework aims to provide an application development structure for JavaScript applications in a similar way that Java and C# frameworks work.
Jon Trelfa Presentation From Desktop To Web – Getting It RightAjax Experience 2009
The document discusses migrating the Mediaflightplan desktop software to a web-based application in order to reduce piracy, lower maintenance costs, and allow for easier updating; key challenges in developing the web-based version included managing bandwidth usage, ensuring good performance for many simultaneous users, and addressing browser compatibility issues; subsequent versions improved on these issues and provided benefits like eliminating full page reloads and supporting more browsers.
This document discusses how ARIA (Accessible Rich Internet Applications) can push web accessibility even further. It provides an overview of what ARIA is technically, lists different ARIA roles and attributes, and how ARIA combined with modern browsers and screen readers improves usability for all users. It also encourages incorporating ARIA as a best practice and provides tips on how to convince management to support ARIA, including focusing on legal compliance and universal design benefits.
The document discusses JavaScript, describing it as a language of contrasts with both good and bad parts. It outlines some of the criticisms of JavaScript but argues there is an elegant language hidden underneath. It examines JavaScript's influences and features, identifying good parts like lambda functions, dynamic objects, and loose typing, as well as bad parts like global variables and confusing equality operators. The document also discusses prototypal inheritance, modules, closures, and style in JavaScript. It advocates following standards like JSLint to write more reliable code and avoiding future bad designs by using a safer JavaScript subset.
The document discusses the origins and development of JSON (JavaScript Object Notation). It describes how Douglas Crockford discovered JSON in 2001 and published the first JSON specification in 2002. It outlines some of the key decisions made in JSON's design, such as requiring quoted keys and allowing different programming languages to parse it.
This document summarizes Facebook's approach to adaptive static resource optimization. It describes how Facebook separates static resource declaration from delivery to allow for global optimization based on usage patterns. A packager analyzes usage logs offline to determine optimal packages that balance bandwidth and latency costs. It delivers optimized CSS and JavaScript packages weekly based on the previous week's usage. This adaptive approach allows packaging to scale with development and usage changes over time while improving page performance.
PhoneGap is a framework that allows developers to build native mobile apps using web technologies like HTML, CSS, and JavaScript. It addresses the problems of platform fragmentation and the difficulty of native mobile development. PhoneGap uses a plugin architecture to expose device capabilities like geolocation, camera, contacts, etc. through a consistent JavaScript API, allowing apps to work across platforms like iOS, Android, Blackberry and more. The goal of PhoneGap is to make the web a first-class development platform and standardize cross-platform mobile app development.
The document compares the YUI Test and QUnit JavaScript testing frameworks. YUI Test is bundled with the YUI library and has a large team supporting it, while QUnit is bundled with jQuery and is useful for testing jQuery plugins and user interfaces. The document provides an overview of the features of each framework and recommends when each one would be best to use.
The Rise of Supernetwork Data Intensive ComputingLarry Smarr
Invited Remote Lecture to SC21
The International Conference for High Performance Computing, Networking, Storage, and Analysis
St. Louis, Missouri
November 18, 2021
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...Toru Tamaki
Jindong Gu, Zhen Han, Shuo Chen, Ahmad Beirami, Bailan He, Gengyuan Zhang, Ruotong Liao, Yao Qin, Volker Tresp, Philip Torr "A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models" arXiv2023
https://arxiv.org/abs/2307.12980
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Bert Blevins
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
Best Practices for Effectively Running dbt in Airflow.pdfTatiana Al-Chueyr
As a popular open-source library for analytics engineering, dbt is often used in combination with Airflow. Orchestrating and executing dbt models as DAGs ensures an additional layer of control over tasks, observability, and provides a reliable, scalable environment to run dbt models.
This webinar will cover a step-by-step guide to Cosmos, an open source package from Astronomer that helps you easily run your dbt Core projects as Airflow DAGs and Task Groups, all with just a few lines of code. We’ll walk through:
- Standard ways of running dbt (and when to utilize other methods)
- How Cosmos can be used to run and visualize your dbt projects in Airflow
- Common challenges and how to address them, including performance, dependency conflicts, and more
- How running dbt projects in Airflow helps with cost optimization
Webinar given on 9 July 2024
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
Choose our Linux Web Hosting for a seamless and successful online presencerajancomputerfbd
Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently.
Visit- https://onliveserver.com/linux-web-hosting/
Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfNeo4j
Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
3. 1. The Landscape of Client-side GUI Technologies 2. Ample SDK: Das Experiment 3. Using Ample SDK: Basics 4. Extending on Ample SDK 5. Showcase 6. Resources 7. Q&A Agenda
4. October 17, 2007, Ajaxian.com Re-inventing XMLHttpRequest: Cross-browser implementation with sniffing capabilities
5. Highlights: Fully functional implementation of XHR for IE7- Some 20 issues fixed in native implementations. (New reports are still coming) Extended to support [transparent] request sniffing.
6. So I took on to re-inventing (re-implementing) web browser
7. 1. The Landscape of Client-Side GUI Technologies 1.1 Server-Side vs. Client-Side 1.2 Libraries vs. Frameworks 1.3 Web Browsers
8. 1.1 Server-Side vs. Client-Side Server-Side - app is orchestrated on the server - data and UI communicated to client combined - client-side hooks are not welcome Client-Side - app is orchestrated on the client (browser) - data communicated separately from UI
9. 1.2 GUI Libraries vs. Frameworks Libraries: - help executing smaller development tasks - often used to «pimp-up» web-pages Frameworks: - bring another abstraction level - used to build «rich applications»
10. 1.3 Web Browsers Two camps: Internet Explorer vs. Modern Browsers Problems: - Incompatible (sometimes incomplete) APIs - Too many versions, cool stuf in latest versions - Poor GUI facilities
11. Hm.. But don't many libraries and frameworks clean that mess successfully while adding missing glyphs?
14. 2.1 Objectives Do not have: - new programming model - new APIs Do have: - ease of use (eliminate learning curve if possible) - better GUI technologies - separation of concerns - extensible architecture
15. Meet Ample SDK Ample SDK is a piece of software that runs transparently in the layer between web browser and application. While running it provides the Logic of the application with standard cross-browser access to the User Interface.
17. 2.3 Browser-within-a-browser? Ample SDK is in a way a web-browser (GUI aspect) - understands MLs (XHTML, XUL, SVG..) - provides DOM APIs (Core, Events, Selectors APIs) - uses CSS for styling (pseudo-classes, pseudo-elemnts)
26. The Programming Model Programming against Ample SDK is as simple as doing it against... right, cross-browser browser!
27. 3.1 Laying out Application UI Application GUI is created with XML or JS staticly: XML (XHTML, XUL, SVG..) dynamicly: JavaScript (DOM) or XML + importNode
28. Embedding XML UI into a web page a) Inline, using a script tag with type="application/ample+xml" <body> <!-- other HTML code --> <script type="application/ample+xml"> <!-- Ample SDK inline XML markup --> </script> <!-- other HTML code --> </body> b) Referencing a resource, using a script tag with src attribute <body> <!-- other HTML code --> <script type="application/ample+xml" src="ui.xml"></script> <!-- other HTML code --> </body> c) Inline, using ample.open() and ample.close() <body> <!-- other HTML code --> <script type="text/javascript">ample.open()</script> <!-- Ample SDK inline XML markup --> <script type="text/javascript">ample.close()</script> <!-- other HTML code --> </body>
29. Using XHTML 1 and XHTML 5 <article> <header> <h1>Apples</h1> <p>Tasty, delicious fruit!</p> </header> <p>The apple is the pomaceous fruit of the apple tree.</p> <section> <h1>Red Delicious</h1> <p>These bright red apples are the most common found in many supermarkets.</p> </section> <section> <h1>Granny Smith</h1> <p>These juicy, green apples and make a great filling for apple pies.</p> </section> <footer> <h1>Apples</h1> <p>Tasty, delicious fruit!</p> </footer> </article>
35. Embedding CSS stylesheets in a web page a) Inline, using a style tag with type="text/ample+css" <style type="text/ample+css"> /* Ample SDK inline stylesheet */ </style> b) Referencing a resource, using a link tag with href attribute <link type="text/ample+css" rel="stylesheet" href="stylesheet.css"/>
36. Using CSS for styling UI 1) Namespaced selectors for styling component @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; xul|menulist { width: 200px; } 2) Pseudo-class selectors for styling component state @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; xul|datepicker:focus { background-color: pink; } 3) Pseudo-element selectors for styling component view @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; xul|colorpicker::input { border: solid 1px blue; } xul|colorpicker::button { background-image: url("colorpicker.png"); }
37. 3.3 Writing Application Logic Implementing application [View] logic is about receiving UI events and updating UI state appropriately. In Ample SDK the Application UI is represented by a DOM tree (mainly built with UI elements), that you can access or modify in a standard and consistent way. UI events are fired on elements in the tree with which the user interacts. Once dispatched they propagate through the tree and can be picked up for handling.
38. Embedding JavaScript GUI Logic into a web page a) Inline, using a script tag with type="text/javascript" <script type="text/javascript"> /* JavaScript UI Logic */ </script> b) Referencing a resource, using script tag with src attribute <script type="text/javascript" src="application.js"></script>
39. The ample scripting object The ample scripting object in the Ample SDK is similar to the document scripting object available in the browser
40. Navigating / Altering UI Document Tree a) Navigating the tree - firstChild, lastChild, previousSibling, nextSibling, childNodes, parentNode etc. - getElementById, getElementsByTagName and getElementsByTagNameNS - querySelector and querySelectorAll b) Altering the tree - setAttribute / setAttributeNS, getAttribute / getAttributeNS and removeAttribute / removeAttributeNS - createElement / createElementNS, createTextNode, appendChild, insertBefore, removeChild and replaceChild - importNode
41. Registering Event Handlers and Handling UI Events a) Dynamically, using the DOM Events API // Alert event current target tagName oElement.addEventListener("click", function(oEvent) { alert(oEvent.currentTarget.tagName) }, true ); // Cancel user selection (Also in IE) oElement.addEventListener("mousedown", function(oEvent) { oEvent.preventDefault(); }, false) b) Inline, using a on{event} attribute <xul:scale onchange="alert(this.getAttribute('value'))" min="0" max="100" value="50"/>
42. Using Drag And Drop Manager Events: dragstart, drag, dragend, dragenter, dragleave, drop Properties: $draggable, $droppable Pseudo-classes: drag, drop <div xmlns:aml="http://www.amplesdk.com/ns/aml" ondrop="if (event.relatedTarget.parentNode != event.target) event.target.appendChild(event.relatedTarget)"> <div aml:droppable="true" class="droppable"> <div aml:draggable="true" class="draggable"> Container 1: drag me and drop to another container </div> <div aml:draggable="true" class="draggable"> Container 2: drag me and drop to another container </div> </div> <div aml:droppable="true" class="droppable"> </div> </div> .draggable { width: 100px; height: 100px; background-color: pink; border: solid 1px red; cursor: move; } .droppable { width: 300px; height: 320px; padding: 10px; float: left; background-color: lightgreen; border: solid 1px green; } div:drag { border-color: black; position: relative; } div:drop { border-style: dashed; }
46. Using XML APIs Transforming XML document with XSL-T example // Load stylesheet document oXMLHttpRequest.open("GET", "stylesheet.xsl", false); oXMLHttpRequest.send(null); var oStylesheet = oXMLHttpRequest.responseXML; // Load input document oXMLHttpRequest.open("GET", "input.xml", false); oXMLHttpRequest.send(null); var oInput = oXMLHttpRequest.responseXML; // Create XSLTProcessor and import stylesheet into it var oXSLTProcessor = new XSLTProcessor; oXSLTProcessor.importStylesheet(oStylesheet); // Transform input document to output document and alert result var oOutput = oXSLTProcessor.transformToDocument(oInput); alert(new XMLSerializer().serializeToString(oOutput));
47. JSON vs. XML JSON/XML for data XML/JSON for UI Whatever you like!
48. 4. Extending on Ample SDK 4.1 Prototyping Objects / Creating new APIs 4.2 Creating Custom Markup Languages 4.3 Implementing Global UI Managers
50. 4.2 Creating Custom Markup Language // Create new Namespace object var MyNamespace = new AMLNamespace; // Register new Namespace with Ample SDK ample.domConfig.setNamespace("http://www.mysite.com/ns/ui");
51. Creating Custom Component // Define Component Constructor var MyButton = function() { // This is the constructor }; // Set Component Prototype MyButton.prototype = new AMLElement; // Register new Component with Namespace MyNamespace.setElement("button", MyButton);
54. Handling UI Events at the Component Level Event handlers defined on component classes are executed at the bubbling or target phase only if event default action was not prevented MyCombobox.handlers = { focus: function(oEvent) { // TODO: dispatch DOMActivate event } }
60. 4.3 Writing Global UI Managers A UI Manager is a plugin that reacts to primitive UI events and synthetizes other more enhanced ones Mouse Gesture UI Manager?
62. Implementation Aspects: Application Logic: PAC approach UI Technology: XHTML+XUL+Custom components Server-side — 2 services: - Static for UI - Dynamic for Data (JSON to SOAP)
63. Wrapping up: Why Ample SDK is relevant? - Natural programming model - Uses APIs that will stay - Better UI building bricks — XUL et alii - Enables quite a bit of SVG in Internet Explorer - Allows creating DS markup technologies
64. 6. Resources IRC Channels #amplesdk on irc.freenode.net #amplesdk-dev on irc.freenode.net (Framework Developers) Mailing Lists / Discussion Groups http://groups.google.com/group/amplesdk http://groups.google.com/group/amplesdk-dev (Framework Developers) Bugtracker http://www.amplesdk.com/bugtracker/ Documentation (online/offline) http://www.amplesdk.com/reference/ Developer Tools Aptana IDE plugin Firebug plugin (in development)