Tips and criteria for selecting a web presentation framework. The focus is on Java-based frameworks, but the criteria are valid for any platform. From a panel discussion at the Seattle Java User Group (SeaJUG)
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...Matt Raible
Microservices are all the rage and being deployed by many Java Hipsters. If you’re working with a large team that needs different release cycles for product components, microservices can be a blessing. If you’re working at your VW Restoration Shop and running its online store with your own software, having five services to manage and deploy can be a real pain.
Share your knowledge and experience about microservices in this informative and code-heavy talk. We’ll use JHipster (a Yeoman generator) to create Angular + Spring Boot apps on separate instances with a unified front-end. I’ll also show you options for securing your API gateway and individual applications using JWT. Heroku, Kubernetes, Docker, ELK, Spring Cloud, Okta; there will be plenty of interesting demos to see!
Front End Development for Backend Developers - GIDS 2019Matt Raible
Are you a backend developer that's being pushed into front-end development? Are you frustrated with all JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We'll explore the tools for frontend development and frameworks too!
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Matt Raible
This document summarizes Matt Raible's presentation on mobile development with Ionic, React Native, and JHipster. It introduces JHipster and how it can be used to generate Spring Boot and Angular/React applications. It then discusses using JHipster to create progressive web apps and how Ignite CLI and Ionic can be used to generate mobile apps from JHipster projects. The presentation concludes by covering JHipster's roadmap and encouraging attendees to try out JHipster.
Bootiful Development with Spring Boot and React - RWX 2017Matt Raible
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create an React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
Blog post: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
Demo app: https://github.com/oktadeveloper/spring-boot-react-example
Bootiful Development with Spring Boot and React - UberConf 2018Matt Raible
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create a React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
Blog: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
GitHub: https://github.com/oktadeveloper/spring-boot-react-example
Java REST API Framework Comparison - PWX 2021Matt Raible
Use Spring Boot! No, use Micronaut!! Nooooo, Quarkus is the best!!!
There's a lot of developers praising the hottest, and fastest, Java REST frameworks: Micronaut, Quarkus, and Spring Boot. In this session, you'll learn how to do the following with each framework:
✅ Build a REST API
✅ Secure your API with OAuth 2.0
✅ Optimize for production with Docker and GraalVM
I'll also share some performance numbers and pretty graphs to compare community metrics.
Related blog post: https://developer.okta.com/blog/2021/06/18/native-java-framework-comparison
Bootiful Development with Spring Boot and React - SpringOne 2017Matt Raible
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create an React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
Blog post: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
Demo app: https://github.com/oktadeveloper/spring-boot-react-example
This document provides an overview of developing RESTful web services with JAX-RS. It defines REST and compares it to SOAP, describes the principles of REST including giving resources IDs, standard methods, linking resources, content negotiation, and stateless communication. Code samples are provided to demonstrate JAX-RS annotations for resources, content negotiation, and processing form posts.
Spark IT 2011 - Developing RESTful Web services with JAX-RSArun Gupta
JAX-RS is a Java API for building RESTful web services. It uses annotations to simplify development of RESTful resources and defines standards for request/response formats and links between resources. JAX-RS services can be deployed to Java EE servers or standalone using implementations like Jersey. The future of JAX-RS includes enhancements to the client API, support for hypermedia formats, and tighter integration with Java EE technologies.
Bootiful Development with Spring Boot and React - Richmond JUG 2018Matt Raible
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create a React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
Blog: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
YouTube: https://youtu.be/P6rwKHnXUJI
A Gentle Introduction to Angular Schematics - Angular SF 2019Matt Raible
You might’ve heard of Angular Schematics, but do you know what they do? Learn how you can use this powerful tool to develop workflows and simplify configurations for your Angular projects.
Blog post: https://developer.okta.com/blog/2019/02/13/angular-schematics
Source code: https://github.com/oktadeveloper/okta-angular-schematics-example
Screencast: https://youtu.be/ANwZIt3Ni2s
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
This document summarizes a presentation about Google Web Toolkit (GWT). It discusses how GWT can help developers create apps by allowing them to use Java to build AJAX apps that run on any modern browser, highlights of GWT features like widgets, libraries, compiler optimizations for performance and code size, and resources for learning more about GWT.
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
This document discusses hybrid apps that combine native and web technologies using QtWebKit. It provides an overview of QtWebKit and how it can be used to embed web content in native apps. It describes various tools, technologies and frameworks that can be used to build hybrid apps, including JavaScript, CSS, Canvas, WebGL, and tools for debugging, testing, and designing hybrid apps. It concludes that web technologies are advancing rapidly and hybrid approaches can help migration, while tools still need to catch up to support building high quality hybrid apps.
The document discusses the capabilities of the Spring Framework component model and how it can be used to add functionality to POJO-based applications. It provides an overview of the Spring component model, services, patterns, integration capabilities, and portability. It describes how technologies like dependency injection and AOP enable simple POJO-based programming. It highlights several value adds provided out of the box by Spring, including exporting remote endpoints, JMX support, auditing with aspects, and user extension points. It also discusses XML configuration extensions introduced in Spring 2.0 for higher level abstraction and grouping related beans.
How to Win at UI Development in the World of Microservices - THAT Conference ...Matt Raible
You've figured out how to split up your backend services into microservices and scale your teams to the moon! But what about the front-end? Are you still building monoliths for your UI? This session will talk about the history of web frameworks, the microservices explosion, and techniques + frameworks for complementing your microservices with micro frontends. It'll include developer stories from folks implementing micro frontends and recommendations for learning more about them.
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019Matt Raible
The document discusses using Angular Schematics to simplify development tasks. It covers creating a basic schematic, adding templates, testing schematics, publishing to NPM, and integrating with Angular CLI. Schematics can generate code and files and are useful for tasks like authentication, routing, and application shell generation. The document provides examples of building schematics that generate components and applications.
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
The document is a presentation about front end development for back end Java developers. It discusses topics like JavaScript, TypeScript, build tools, CSS frameworks, front end performance, and progressive web apps. It also provides introductions and comparisons of popular JavaScript frameworks like Angular, React, and Vue. The presentation encourages attendees to learn new front end skills and try building something with a front end framework.
Comparing JVM Web Frameworks - Rich Web Experience 2010Matt Raible
Comparing JVM Web Frameworks Presentation from The Rich Web Experience 2010. Compares many different JVM-based web frameworks, ranks them based on 20 different criteria and compares the Pros, Cons and other stats of the top 5.
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020Matt Raible
Mobile development offers a lot of options. To develop native apps, you can use Java or Kotlin on Android. On iOS, you can use Objective C or Swift. There are other options, too. You can build hybrid mobile apps and Progressive Web Apps (PWAs). Hybrid mobile apps are those created with web technologies (HTML, JavaScript, and CSS) that look like native apps. PWAs have the ability to work offline and act like mobile apps.
In this talk, we'll explore a few different mobile technologies: Ionic 4 (with Angular), React Native, and PWAs. You'll walk away with knowledge of how to build mobile + Spring Boot apps in minutes with JHipster.
* GitHub repo: https://github.com/mraible/mobile-jhipster
* Demo script: https://github.com/mraible/mobile-jhipster/blob/master/demo.adoc
Amazing vue.js projects that are open source and free.Katy Slemon
This document lists and summarizes 21 popular open source Vue.js projects. It describes projects like Vuemmerce, an e-commerce template, VuePress, a static site generator, and Faviator, an icon library. Other notable projects mentioned include iView, a UI component library, Prettier, a code formatter, and Koel, a music streaming server. The document provides links to the GitHub pages for each project so readers can explore them further.
AppFuse is an open source project/application that uses best-of-breed Java open source tools to help you develop web applications quickly and efficiently. Not only does it provide documentation on how to develop light-weight POJO-based applications, it includes features that many applications need out-of-the-box: authentication and authorization, remember me, password hint, skinnability, file upload, Ajax libraries, signup and SSL switching. This is one of the main features in AppFuse that separates it from the other "CRUD Generation" frameworks like Ruby on Rails, Trails and Grails. AppFuse is already an application when you start using it, which means code examples are already in your project. Furthermore, because features already exist, the amount of boiler-plate code that most projects need will be eliminated.
In this session, you will learn Seven Simple Reasons to Use AppFuse. If you don't use it to start your own projects, hopefully you will see that it provides much of the boiler-plate code that can be used in Java-based web applications. Since it's Apache Licensed, you're more than welcome to copy/paste any code from it into your own applications.
Also see article published at:
http://www.ibm.com/developerworks/java/library/j-appfuse/index.html
Wicket in Action is the introduction I gave at the Øredev conference in Malmö, Sweden in November 2008. You'll learn about Wicket, Components, Models, Integrating Spring, Testing, and deploying your Wicket application.
Unfortunately slideshare doesn't work with accented letters in the URL, so I had to change the title.
The document discusses Java EE 6 and its evolution over time. It outlines key features of Java EE 6 including lightweight profiles, annotations, managed beans, interceptors, and Servlets 3.0. It provides examples of using managed beans, interceptors, and the new annotations-based approach in Servlets 3.0. The document aims to educate developers on the nuts and bolts of Java EE 6.
What the Heck is OAuth and OpenID Connect - RWX 2017Matt Raible
This document provides an overview of OAuth 2.0 and OpenID Connect (OIDC) for authentication and authorization. It begins with introducing the speaker, Matt Raible, and his background. It then discusses direct authentication vs federated identity and standards like SAML and OAuth. The document explains the key concepts of OAuth including actors, scopes and consent, tokens, flows, and common security issues. It outlines some enterprise use cases for OAuth and key facts about it being an authorization framework rather than protocol.
Building Mobile Applications with IonicMorris Singer
The document provides an introduction and overview of the Ionic framework for building mobile apps. It discusses that Ionic builds on existing technologies like AngularJS, Cordova plugins, and a layout engine. It reviews Ionic's technology stack including AngularJS, UI Router for routing, and Ionic components. It demonstrates how to generate a starter app, and shows examples of lists, buttons, icons, and touch gestures in Ionic.
This document summarizes major web technology milestones from the first half of 2008 and previews developments to watch for in 2009. Some key points covered include:
- The first beta release of Internet Explorer 8 in March 2008 was a major milestone.
- CSS support is now largely consistent across major browsers, including support for CSS Selectors and the Selectors API in IE8.
- HTML5 offline applications and client-side storage are implemented in multiple browsers.
- SVG support continues to improve with the Tiny 1.2 recommendation and plans to add support to IE via behaviors.
- The Geolocation API specification was published and implemented in several browsers in 2008.
- Newly developed JavaScript
GDD Brazil 2010 - What's new in Google App Engine and Google App Engine For B...Patrick Chanezon
Learn what's new with App Engine. We'll take a whirlwind tour through the changes since last year.
We'll top it off with a glimpse into some new features that we've planned for the year ahead. This session will include an overview of Google App Engine for Business.
Bootiful Development with Spring Boot and React - SpringOne 2017Matt Raible
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create an React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
Blog post: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
Demo app: https://github.com/oktadeveloper/spring-boot-react-example
This document provides an overview of developing RESTful web services with JAX-RS. It defines REST and compares it to SOAP, describes the principles of REST including giving resources IDs, standard methods, linking resources, content negotiation, and stateless communication. Code samples are provided to demonstrate JAX-RS annotations for resources, content negotiation, and processing form posts.
Spark IT 2011 - Developing RESTful Web services with JAX-RSArun Gupta
JAX-RS is a Java API for building RESTful web services. It uses annotations to simplify development of RESTful resources and defines standards for request/response formats and links between resources. JAX-RS services can be deployed to Java EE servers or standalone using implementations like Jersey. The future of JAX-RS includes enhancements to the client API, support for hypermedia formats, and tighter integration with Java EE technologies.
Bootiful Development with Spring Boot and React - Richmond JUG 2018Matt Raible
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create a React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
Blog: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
YouTube: https://youtu.be/P6rwKHnXUJI
A Gentle Introduction to Angular Schematics - Angular SF 2019Matt Raible
You might’ve heard of Angular Schematics, but do you know what they do? Learn how you can use this powerful tool to develop workflows and simplify configurations for your Angular projects.
Blog post: https://developer.okta.com/blog/2019/02/13/angular-schematics
Source code: https://github.com/oktadeveloper/okta-angular-schematics-example
Screencast: https://youtu.be/ANwZIt3Ni2s
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
This document summarizes a presentation about Google Web Toolkit (GWT). It discusses how GWT can help developers create apps by allowing them to use Java to build AJAX apps that run on any modern browser, highlights of GWT features like widgets, libraries, compiler optimizations for performance and code size, and resources for learning more about GWT.
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
This document discusses hybrid apps that combine native and web technologies using QtWebKit. It provides an overview of QtWebKit and how it can be used to embed web content in native apps. It describes various tools, technologies and frameworks that can be used to build hybrid apps, including JavaScript, CSS, Canvas, WebGL, and tools for debugging, testing, and designing hybrid apps. It concludes that web technologies are advancing rapidly and hybrid approaches can help migration, while tools still need to catch up to support building high quality hybrid apps.
The document discusses the capabilities of the Spring Framework component model and how it can be used to add functionality to POJO-based applications. It provides an overview of the Spring component model, services, patterns, integration capabilities, and portability. It describes how technologies like dependency injection and AOP enable simple POJO-based programming. It highlights several value adds provided out of the box by Spring, including exporting remote endpoints, JMX support, auditing with aspects, and user extension points. It also discusses XML configuration extensions introduced in Spring 2.0 for higher level abstraction and grouping related beans.
How to Win at UI Development in the World of Microservices - THAT Conference ...Matt Raible
You've figured out how to split up your backend services into microservices and scale your teams to the moon! But what about the front-end? Are you still building monoliths for your UI? This session will talk about the history of web frameworks, the microservices explosion, and techniques + frameworks for complementing your microservices with micro frontends. It'll include developer stories from folks implementing micro frontends and recommendations for learning more about them.
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019Matt Raible
The document discusses using Angular Schematics to simplify development tasks. It covers creating a basic schematic, adding templates, testing schematics, publishing to NPM, and integrating with Angular CLI. Schematics can generate code and files and are useful for tasks like authentication, routing, and application shell generation. The document provides examples of building schematics that generate components and applications.
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
The document is a presentation about front end development for back end Java developers. It discusses topics like JavaScript, TypeScript, build tools, CSS frameworks, front end performance, and progressive web apps. It also provides introductions and comparisons of popular JavaScript frameworks like Angular, React, and Vue. The presentation encourages attendees to learn new front end skills and try building something with a front end framework.
Comparing JVM Web Frameworks - Rich Web Experience 2010Matt Raible
Comparing JVM Web Frameworks Presentation from The Rich Web Experience 2010. Compares many different JVM-based web frameworks, ranks them based on 20 different criteria and compares the Pros, Cons and other stats of the top 5.
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020Matt Raible
Mobile development offers a lot of options. To develop native apps, you can use Java or Kotlin on Android. On iOS, you can use Objective C or Swift. There are other options, too. You can build hybrid mobile apps and Progressive Web Apps (PWAs). Hybrid mobile apps are those created with web technologies (HTML, JavaScript, and CSS) that look like native apps. PWAs have the ability to work offline and act like mobile apps.
In this talk, we'll explore a few different mobile technologies: Ionic 4 (with Angular), React Native, and PWAs. You'll walk away with knowledge of how to build mobile + Spring Boot apps in minutes with JHipster.
* GitHub repo: https://github.com/mraible/mobile-jhipster
* Demo script: https://github.com/mraible/mobile-jhipster/blob/master/demo.adoc
Amazing vue.js projects that are open source and free.Katy Slemon
This document lists and summarizes 21 popular open source Vue.js projects. It describes projects like Vuemmerce, an e-commerce template, VuePress, a static site generator, and Faviator, an icon library. Other notable projects mentioned include iView, a UI component library, Prettier, a code formatter, and Koel, a music streaming server. The document provides links to the GitHub pages for each project so readers can explore them further.
AppFuse is an open source project/application that uses best-of-breed Java open source tools to help you develop web applications quickly and efficiently. Not only does it provide documentation on how to develop light-weight POJO-based applications, it includes features that many applications need out-of-the-box: authentication and authorization, remember me, password hint, skinnability, file upload, Ajax libraries, signup and SSL switching. This is one of the main features in AppFuse that separates it from the other "CRUD Generation" frameworks like Ruby on Rails, Trails and Grails. AppFuse is already an application when you start using it, which means code examples are already in your project. Furthermore, because features already exist, the amount of boiler-plate code that most projects need will be eliminated.
In this session, you will learn Seven Simple Reasons to Use AppFuse. If you don't use it to start your own projects, hopefully you will see that it provides much of the boiler-plate code that can be used in Java-based web applications. Since it's Apache Licensed, you're more than welcome to copy/paste any code from it into your own applications.
Also see article published at:
http://www.ibm.com/developerworks/java/library/j-appfuse/index.html
Wicket in Action is the introduction I gave at the Øredev conference in Malmö, Sweden in November 2008. You'll learn about Wicket, Components, Models, Integrating Spring, Testing, and deploying your Wicket application.
Unfortunately slideshare doesn't work with accented letters in the URL, so I had to change the title.
The document discusses Java EE 6 and its evolution over time. It outlines key features of Java EE 6 including lightweight profiles, annotations, managed beans, interceptors, and Servlets 3.0. It provides examples of using managed beans, interceptors, and the new annotations-based approach in Servlets 3.0. The document aims to educate developers on the nuts and bolts of Java EE 6.
What the Heck is OAuth and OpenID Connect - RWX 2017Matt Raible
This document provides an overview of OAuth 2.0 and OpenID Connect (OIDC) for authentication and authorization. It begins with introducing the speaker, Matt Raible, and his background. It then discusses direct authentication vs federated identity and standards like SAML and OAuth. The document explains the key concepts of OAuth including actors, scopes and consent, tokens, flows, and common security issues. It outlines some enterprise use cases for OAuth and key facts about it being an authorization framework rather than protocol.
Building Mobile Applications with IonicMorris Singer
The document provides an introduction and overview of the Ionic framework for building mobile apps. It discusses that Ionic builds on existing technologies like AngularJS, Cordova plugins, and a layout engine. It reviews Ionic's technology stack including AngularJS, UI Router for routing, and Ionic components. It demonstrates how to generate a starter app, and shows examples of lists, buttons, icons, and touch gestures in Ionic.
This document summarizes major web technology milestones from the first half of 2008 and previews developments to watch for in 2009. Some key points covered include:
- The first beta release of Internet Explorer 8 in March 2008 was a major milestone.
- CSS support is now largely consistent across major browsers, including support for CSS Selectors and the Selectors API in IE8.
- HTML5 offline applications and client-side storage are implemented in multiple browsers.
- SVG support continues to improve with the Tiny 1.2 recommendation and plans to add support to IE via behaviors.
- The Geolocation API specification was published and implemented in several browsers in 2008.
- Newly developed JavaScript
GDD Brazil 2010 - What's new in Google App Engine and Google App Engine For B...Patrick Chanezon
Learn what's new with App Engine. We'll take a whirlwind tour through the changes since last year.
We'll top it off with a glimpse into some new features that we've planned for the year ahead. This session will include an overview of Google App Engine for Business.
This ppt contains a laconic description of HTML history and development and application of HTML5. Some of most frequent and useful tags are also covered.
Build mini - Windows 10 Dev & Cross platform DevIan Chen
This document provides an overview and summary of a presentation about Universal Windows Platform (UWP), Microsoft Edge, Visual Studio, and Cordova. It discusses UWP allowing developers to build apps that work across Windows 10 devices. It also summarizes that Edge is the new web browser replacing Internet Explorer, and has a new rendering engine. Visual Studio 2015 and Visual Studio Code are presented as tools for UWP and Cordova app development. Cordova is introduced as a tool for building cross-platform apps using HTML, CSS, and JavaScript that can be deployed to iOS, Android, and Windows devices.
Best Practices in Widget Development - Examples and CounterexamplesROLE Project
The document provides best practices and guidelines for developing widgets. It discusses design principles like focusing on a single task, providing self-explanatory interfaces, and using space effectively. It also covers development topics such as using an Apache Shindig server, features of the gadget API, caching, performance optimization, and testing. The overall document aims to help developers create user-friendly and high-performing widgets.
This document discusses adapting the BoofCV computer vision library for use in GWT applications in the browser. It describes BoofCV and its dependencies like EJML, DDogLeg, and GeoRegression. It details the process of creating GWT adapters for these libraries by adding .gwt.xml files and supersourcing classes to modify them for GWT. Examples are given of using the adapted libraries for interest point detection and association in browser-based applications.
This document discusses adapting the BoofCV computer vision library for use in GWT applications in the browser. It describes BoofCV and its dependencies like EJML, DDogLeg, and GeoRegression. It details the process of creating GWT adapters for these libraries by adding .gwt.xml files and using super-sourcing to modify classes as needed to work in GWT. Examples are given of using the adapted libraries for interest point detection and association in browser-based applications.
John O'Keefe presented on the history and future of VA Smalltalk. He discussed VA Smalltalk 8.0's new features including Seaside integration, browser enhancements, and web services improvements. Future plans include further Seaside and IDE work. The presentation concluded with information on the upcoming VA Forum Europe event.
Part 1: App Engine for Business によって、Google のアプリケーションを支えているのと同じスケーラブルなシステムを使ってエンタープライズアプリケーションを作成する事ができます。このセッションではエンタープライズの要求に答えるために用意されている API, 分かりやすい課金体系, SLA とサポートについて紹介します。 Part 2: Google がリリースしようとしている新しい Cloud サービス群の紹介をします。1) Google Storage for Developers は Google のインフラストラクチャ上にデータを保存,アクセスするための RESTful なサービスです。2) BigQuery は大規模なデータセットに対してインタラクティブな分析を行う Web サービスです。3) Prediction API はデータから機械学習により予測を行うための API です。
W3C Widgets: Apps made with Web Standardsbrucelawson
W3C Widgets are applications developed with web standards that can run across different mobile platforms using the browser engine. A widget consists of an index.html file, assets, and a config.xml file packaged into a .wgt file. Widgets take advantage of HTML5 features like the Application Cache, WebSQL storage, and local storage. They can run on browser runtimes including Opera Mobile, Widgeon, Windows Mobile 6.5, Nokia Qt Web Runtime, and Apache Wookie. The W3C is working to define JavaScript APIs for contacts, calendar, media capture, and messaging to provide more capabilities to widgets.
Silverlight 4 provides support for business applications by:
1. Supporting a plugin-based architecture through the Managed Extensibility Framework.
2. Enabling efficient development through features of WCF RIA Services.
3. Supporting best practices like test-driven development, MVVM, and design data.
It also introduces new functionality for out-of-browser applications, printing, webcam/microphone access, drag and drop, rich text, and improved performance. Silverlight 4 is clearly ready for building business applications.
Node Webkit allows you to create desktop applications using HTML, CSS, JavaScript and Node.js modules. It combines the Chromium browser and Node.js framework. This allows building cross-platform desktop apps that can include Node functionality and access system resources. Examples are given of apps built with Node Webkit. Key aspects covered include how it integrates Chromium and Node.js, building a basic app, window rendering options, menus, tray apps, and the developer tools. Benefits for a medical conference app replacement are discussed.
jQuery released new versions 1.4.3 and 1.4.4 with improvements to modularity, CSS, performance, and support for HTML5 data attributes. A JSLint tool was integrated to improve code quality. jQuery Mobile was introduced as a new official plugin to build websites and applications for multiple mobile platforms using progressive enhancement. Testing strategies were discussed including using simulators, TestSwarm for automation, and drawing a line to determine which browsers to support.
So what's a web app? introduction to the chrome web storeEric Bidelman
This document summarizes Eric Bidelman's presentation at Google DevFest in Buenos Aires, Argentina on November 2, 2010. The presentation discussed building web apps for the Chrome Web Store, including an overview of Chrome and HTML5, how to think like a web app, the anatomy of hosted vs packaged apps, and compatibility. Examples of web apps were shown and steps provided on how to create a basic hosted app and prepare it for the Chrome Web Store.
10 Jahre Webentwicklung - am Beispiel des Frameworks qooxdooMartin Wittemann
Die Möglichkeiten, welche Webtechnologien heutzutage und in naher Zukunft bieten, sind beeindruckend. Anwendungen unterschiedlichster Art lassen sich damit realisieren, sei es für traditionelle Desktoprechner oder Mobilgeräte wie Tablets und Smartphones.
Doch die Ausgangssituation dafür war nicht immer so vielversprechend. Die fundamentalen Technologien wie auch die geeigneten Frameworks mußten dafür geschaffen erst werden bzw. sich entsprechend fortentwickeln.
Wir begeben uns auf eine Reise durch die letzten 10 Jahre Webentwicklung und beleuchten wesentliche Meilensteine. Exemplarisch verwenden wir hierzu das JavaScript Framework qooxdoo, welches als Open-Source-Projekt der 1&1 Internet AG die Entwicklung moderner Enterpriseanwendungen ermöglicht. Der Rückblick auf 10 Jahre Webentwicklung hilft zu verstehen, worin aktuelle Herausforderungen liegen und wie Konzepte und Frameworks auch in Zukunft die vorhandenen Basistechnologien ergänzen.
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
This is an overview video that shows the scope of work and technology used within the Red Hat JBoss BRMS and BPMS platforms.
The technology presented builds with GWT, Errai and UberFire as the foundation. Over 2015 we'll be working to make it for end users to consume the bits they need, paying for only what they use, so others can make power web platforms like BRMS and BPMS.
Slides from my Feature Bits presentation at the 2010 Lean Software and Systems conference in Atlanta. See http://atlanta2010.leanssc.org/home/erik-sowa/ and http://www.leanssc.org/files/201004/videos/20100421_Sowa_EnabilingFlowWithinAndAcrossTeams/20100421_Sowa_EnabilingFlowWithinAndAcrossTeams.html
- The document summarizes HTML5 trends and developments in 2014, providing updates from various sources each month.
- Key developments include improved browser support for HTML5 features like WebGL, Web Audio, service workers, and responsive images.
- Mobile browser updates from Apple and Google improved HTML5 support, helping close the gap between native and web performance.
- Web Components and new APIs advanced the componentization of the web.
Nick Hodge is a professional geek at Microsoft Australia who has been actively involved in the open source community in Australia over the last 12 months, speaking at and sponsoring various conferences focused on Python, PHP, Drupal, and WordPress. He works on contributions to open source codebases and tools to support HTML5, Internet Explorer 10, and Windows Azure. Hodge advocates for cross-platform communication tools like Skype.
Mr. Arif Shaik is a Senior Software Release Engineer with over 7 years of experience in software build and release management. He has expertise in build, release, continuous integration and configuration management tools like Jenkins, Maven, Ant, Subversion, and Git. He is skilled at automating build processes, integrating testing and code quality tools, and deploying software releases. He currently works as a Senior Software Release Engineer at United Health Group, where he manages builds, releases software to various environments, and automates processes using scripts.
Voice Search アプリは Android 上での音声入力による Web 検索を可能にしました。さらに、このアプリが提供しているシンプルな API を利用することで、アプリ開発者は自分の Android アプリに、この音声認識機能を組み込むことができます。このセッションでは、音声認識技術の詳細を簡単にご紹介し、実際に Voice Search API を利用したアプリのデモ、コードの解説を行ないます。
プログラミング言語 Go は Google が 2009 年秋にオープンソースで公開した新しいプログラミング言語です。C や C++ のようなコンパイル言語の良さをもちつつ、Python のような動的言語でのプログラムの書き易さを兼ねそなえた特徴をもっています。クラスを使わないオブジェクト指向の言語で、コンカレントに実行するための仕組みもそなえています。 プログラミングをより速く、より生産的に、そしてより楽しくしてくれる新しいプログラミング言語 Go について説明します。
Bay Area Apache Spark ™ Meetup: Upcoming Apache Spark 4.0.0 Releasecarlyakerly1
Covering new features and enhancements in the upcoming Apache Spark™ 4.0 release. This deck has an overview of the following features:
✅ Spark Connect: The future of Spark extensibility
✅ ANSI Mode: For better ANSI SQL compatibility
✅ Variant data types for semi-structured data
✅ String collation support
✅ Python UDTF functions
✅ SQL and UDTF functions
✅ PySpark UDF Unified Profiler
real time ai agent examples | AI agent developmentybobbyyoung
🚀 10 Real-World AI Agent Examples That Are Changing How We Work in 2025
Discover how AI agents are simplifying workflows, boosting productivity, and transforming industries — from customer support to HR, IT, finance, and more!
This presentation breaks down real-world use cases of AI agents and shows how your business can benefit from custom-built AI solutions.
🎯 Built by Shamla Tech – Your Trusted AI Agent Development Partner
✅ Easy Integration
✅ One-Time Ownership
✅ Tailored for Your Business
✅ Free Demo & Consultation
Monitor Kafka Clients Centrally with KIP-714Kumar Keshav
Apache Kafka introduced KIP-714 in 3.7 release, which allows the Kafka brokers to centrally track client metrics on behalf of applications. The broker can subsequently relay these metrics to a remote monitoring system, facilitating the effective monitoring of Kafka client health and the identification of any problems.
KIP-714 is useful to Kafka operators because it introduces a way for Kafka brokers to collect and expose client-side metrics via a plugin-based system. This significantly enhances observability by allowing operators to monitor client behavior (including producers, consumers, and admin clients) directly from the broker side.
Before KIP-714, client metrics were only available within the client applications themselves, making centralized monitoring difficult. With this improvement, operators can now access client performance data, detect anomalies, and troubleshoot issues more effectively. It also simplifies integrating Kafka with external monitoring systems like Prometheus or Grafana.
This talk covers setting up ClientOtlpMetricsReporter that aggregates OpenTelemetry Protocol (OTLP) metrics received from the client, enhances them with additional client labels and forwards them via gRPC client to an external OTLP receiver. The plugin is implemented in Java and requires the JAR to be added to the Kafka broker libs.
Be it a kafka operator or a client application developer, this talk is designed to enhance your knowledge of efficiently tracking the health of client applications.
Beginners: Radio Frequency, Band and Spectrum (V3)3G4G
Welcome to this tutorial where we break down the complex topic of radio spectrum in a clear and accessible way.
In this video, we explore:
✅ What is spectrum, frequency, and bandwidth?
✅ How does wavelength affect antenna design?
✅ The difference between FDD and TDD
✅ 5G spectrum ranges – FR1 and FR2
✅ The role of mmWave, and why it's misunderstood
✅ What makes 5G Non-Standalone (NSA) different from 5G Standalone (SA)
✅ Concepts like Carrier Aggregation, Dual Connectivity, and Dynamic Spectrum Sharing (DSS)
✅ Why spectrum refarming is critical for modern mobile networks
✅ Evolution of antennas from legacy networks to Massive MIMO
Whether you're just getting started with wireless technology or brushing up on the latest in 5G and beyond, this video is designed to help you learn and stay up to date.
👍 Like the video if you find it helpful
🔔 Subscribe for more tutorials on 5G, 6G, and mobile technology
💬 Drop your questions or comments below—we’d love to hear from you!
All our #3G4G5G slides, videos, blogs and tutorials are available at:
Tutorials: https://www.3g4g.co.uk/Training/
Videos: https://www.youtube.com/3G4G5G
Slides: https://www.slideshare.net/3G4GLtd
Our channels:
3G4G Website – https://www.3g4g.co.uk/
The 3G4G Blog – https://blog.3g4g.co.uk/
Telecoms Infrastructure Blog – https://www.telecomsinfrastructure.com/
Operator Watch Blog – https://www.operatorwatch.com/
Connectivity Technology Blog – https://www.connectivity.technology/
Free 5G Training – https://www.free5gtraining.com/
Free 6G Training – https://www.free6gtraining.com/
Private Networks Technology Blog - https://blog.privatenetworks.technology/
Low-velocity penetration impact behavior of Triply Periodic Minimal Surface s...Javier García Molleja
Authors: Lucía Doyle, Javier García-Molleja, Carlos González
Published in: Advanced Engineering Materials, 2025, 24002999
Because of copyright transfer to Wiley-VCH only the first page is provided. Available at:
https://doi.org/10.1002/adem.202402999
Jeremy Millul - A Junior Software DeveloperJeremy Millul
Jeremy Millul is a junior software developer specializing in scalable applications. With expertise in databases like MySQL and MongoDB, Jeremy ensures efficient performance and seamless user experiences. A graduate of NYU, and living in Rochester, NY, with a degree in Computer Science, he also excels in frameworks such as React and Node.js. Jeremy’s commitment to delivering robust, high-quality solutions is matched by his dedication to staying ahead in the ever-evolving tech landscape.
How to Add Kaspersky to Another Computer?Kevin Pierce
Users may need to add Kaspersky to another computer for several reasons. They might need to protect their device from online threats like ransomware, malware, and phishing. Adding Kaspersky to another computer can help enhance security features, ensuring your device is protected from various cyber threats.
An introductory presentation of a short paper with same name in the ICUFN2022: The 13th International Conference on Ubiquitous and Future Networks in Barcelona, Spain. The presentation and paper describes our (Karri Huhtanen, Antti Kolehmainen) initial proposal for distributed multi-factor AAA architecture capable of surviving connectivity disruptions. Together with Tampere University we intended to design, implement and deploy the proposed architecture in practice to ensure its validity, but did not have time to do it.
Are you spending too much time pulling data, fixing AP delays, and manually processing reports in QuickBooks?
You’re not alone. Many finance teams hit a point where QuickBooks holds them back more than it helps.
The good news – there’s a better way.
Those who moved off QuickBooks instantly noticed how fast they can close the books, automate their cumbersome practices, and be able to create custom reports.
Join us for a 30-minute virtual Lunch & Learn where we’ll break down what it really means to outgrow QuickBooks, and how to take the next step with confidence.
During this session, you’ll learn:
The top signs it’s time to graduate from QuickBooks
Common challenges finance teams face and how modern ERPs solve them
Tips to evaluate and select a more comprehensive ERP system
QuickBooks vs. Cloud ERPs: A side-by-side look
Live Q&A to get all your questions answered
Ready to take the first step toward more automation, faster close, and better reporting?
Transcript - Delta Lake Tips, Tricks & Best Practices (1).pdfcarlyakerly1
This session takes you back to the core principles for for successfully utilizing and operating Delta Lake. We break down the fundamentals—Delta Lake’s structure, transaction management, and data retention strategies—while showcasing its powerful features like time travel for seamless rollback and vacuuming for efficient cleanup.
Demonstrations will teach you how to create and manage tables, execute transactions, and optimize performance with proven techniques. Walk away with a clear understanding of how to harness Delta Lake’s full potential for scalable, reliable data management.
Speakers: Scott Haines (Nike) & Youssef Mirini (Databricks)
YouTube video: https://www.youtube.com/live/O8_82Cu6NBw?si=--4iJL1NkzEPCBgd
Slide deck from presentation: https://www.slideshare.net/slideshow/delta-lake-tips-tricks-and-best-practices-wip-pptx/277984087
This vibrant Medium blog post explores **Doctronic**, a New York-based healthcare AI startup that raised **$5 million in seed funding** to revolutionize medical advice. Founded by Matt Pavelle and Adam Oskowitz, Doctronic uses **specialized AI agents** and 24/7 telehealth to deliver fast, accurate, and anonymous health guidance, challenging “Dr. Google.” Backed by Union Square Ventures, the startup stands out with its consumer-first approach and multi-agent AI system. The post highlights Doctronic’s mission, technology, competitive edge, and future plans, making it a must-read for healthcare and tech enthusiasts.
ISTQB Foundation Level – Chapter 4: Test Design Techniqueszubair khan
This presentation covers Chapter 4: Test Design Techniques from the ISTQB Foundation Level syllabus. It breaks down core concepts in a simple, visual, and easy-to-understand format — perfect for beginners and those preparing for the ISTQB exam.
✅ Topics covered:
Static and dynamic test techniques
Black-box testing (Equivalence Partitioning, Boundary Value Analysis, Decision Tables, State Transition Testing, etc.)
White-box testing (Statement and Decision coverage)
Experience-based techniques (Exploratory Testing, Error Guessing, Checklists)
Choosing appropriate test design techniques based on context
🎓 Whether you're studying for the ISTQB certification or looking to strengthen your software testing fundamentals, these slides will guide you through the essential test design techniques with clarity and real-world relevance.
Autopilot for Everyone Series - Session 3: Exploring Real-World Use CasesUiPathCommunity
Welcome to 'Autopilot for Everyone Series' - Session 3: Exploring Real-World Use Cases!
Join us for an interactive session where we explore real-world use cases of UiPath Autopilot, the AI-powered automation assistant.
📕 In this engaging event, we will:
- demonstrate how UiPath Autopilot enhances productivity by combining generative AI, machine learning, and automation to streamline business processes
- discover how UiPath Autopilot enables intelligent task automation with natural language inputs and AI-powered decision-making for smarter workflows
Whether you're new to automation or a seasoned professional, don't miss out on this opportunity to transform your approach to business automation.
Register now and step into the future of efficient work processes!
Autopilot for Everyone Series Session 2: Elevate Your Automation SkillsUiPathCommunity
📕 This engaging session will include:
Quick recap of Session 1: refresh your knowledge and get ready for what's next
Hands-on experience: import prebuilt automations to fast-track your automation journey with practical insights
Build your own tools: dive into creating tailored automation solutions that meet your specific needs
Live Q&A with experts: engage directly with industry experts and get your burning questions answered
👉 Register to our next Autopilot for Everyone Series - Session 3: Exploring Real-World Use Cases: https://bit.ly/4cMgC8F
Don't miss this unique opportunity to enhance your skills and connect with fellow automation enthusiasts. RSVP now to secure your spot and bring a friend along! Let's make automation accessible and exciting for everyone.
This session streamed live on April 17, 2025, 18:00 GST.
Check out our upcoming UiPath Community sessions at https://community.uipath.com/events/.
The History of Artificial Intelligence: From Ancient Ideas to Modern Algorithmsisoftreview8
The history of Artificial Intelligence: From Ancient Ideas to Modern Algorithms is a remarkable journey through time—one that blends human curiosity with technological breakthroughs. While the dream of intelligent machines dates back to ancient civilizations, it wasn’t until the 20th century that the idea began to take scientific shape.
In 1950, British mathematician Alan Turing introduced a revolutionary concept: that machines could imitate human thought. His creation of the "Turing Test" provided a framework for measuring machine intelligence. This milestone was one of the first major chapters in the history of Artificial Intelligence: From Ancient Ideas to Modern Algorithms.
By 1956, the term "Artificial Intelligence" had been officially coined during the Dartmouth Conference, igniting decades of innovation. From symbolic AI in the 1960s to expert systems in the 1980s, and the rise of machine learning and neural networks in the 1990s and 2000s, each era brought us closer to what we now recognize as modern AI. Technologies like deep learning, real-time automation, and natural language processing have turned AI into a powerful tool used in everyday life.
The ongoing evolution in the history of Artificial Intelligence: From Ancient Ideas to Modern Algorithms reveals how ancient visions are becoming today’s realities—and tomorrow’s possibilities.
4. Developer
Day
Google
2010
CSS3 vertical text?
• WebKit bug 46123
• https://bugs.webkit.org/show_bug.cgi?id=46123
• “Implement block-flow support for all of layout”
• master bug for vertical-text support
• Dave Hyatt
2010年9月27日月曜日
6. Developer
Day
Google
2010
Why is vertical text important?
• market for e-books in Japan and Taiwan
• devices with browser engines that have
vertical-text support will have more
market value
• other e-book publishing platforms
already have vertical text support
• bring feature parity to the Web platform
for this feature
2010年9月27日月曜日
7. Developer
Day
Google
2010
New group: Web Notifications
• http://www.w3.org/2010/web-notifications/
• Chair: Anne van Kesteren (Opera)
• Editor: John Gregg (Google)
• http://dev.w3.org/2006/webapi/WebNotifications/publish/
• http://lists.w3.org/Archives/Public/public-web-notification/
2010年9月27日月曜日
8. Developer
Day
Google
2010
What are Web notifications?
• OS-independent API for exposing platform-level
notification mechanisms to Web applications
• useful for any Web application where real-time
notifications are useful
• Web-based e-mail client, instant-messaging
clients, auction sites, etc., can integrate their
Web app behavior with the notification features
of the operating systems of their end usersText
2010年9月27日月曜日
9. Developer
Day
Google
2010
Notification interface (DRAFT)
interface Notification : EventTarget {
void show();
void cancel();
attribute Function onclick;
attribute Function ondisplay;
attribute Function onerror;
attribute Function onclose;
attribute DOMString replaceId;
attribute DOMString dir;
};
2010年9月27日月曜日
10. Developer
Day
Google
2010
NotificationCenter interface
the interface
interface NotificationCenter {
// permission values
const unsigned long PERMISSION_ALLOWED = 0;
const unsigned long PERMISSION_UNKNOWN = 1;
const unsigned long PERMISSION_DENIED = 2;
attribute unsigned long permissionLevel;
void requestPermission(in Function
callback)
raises(Exception);
Notification createNotification(in DOMString
iconUrl, in DOMString title, in DOMString body);
};
2010年9月27日月曜日
11. Developer
Day
Google
2010
Examples
var notification =
window.notifications.createNotification("mail.png"
, "New Email Received");
notification.ondisplay = function()
{ setTimeout(notification.cancel(), 15000); }
notification.show();
var notification =
window.notifications.createWebNotification(
"/reminder.html?eventId=" + event.id);
notification.onclose = function()
{ cancelReminders(event); }
notification.show();
2010年9月27日月曜日
12. Developer
Day
Google
2010
New group: Web Performance
• charter: http://www.w3.org/2010/06/webperf.html
• chair: Arvind Jain (Google), Jason Weber (Microsoft)
• editor: Zhiheng Wang (Google)
• draft: Navigation Timing
• http://dev.w3.org/2006/webapi/WebTiming/
2010年9月27日月曜日
13. Developer
Day
Google
2010
What is “Navigation Timing”?
• Current JavaScript-based mechanisms
cannot provide complete end-to-end
user-latency data for a Web app
• allow JavaScript mechanisms to
provide complete client-side latency
measurements within Web apps, for
the purpose of evaluating user's
perceived page load time
2010年9月27日月曜日
17. Developer
Day
Google
2010
Example
var t = performance.timing;
var n = performance.navigation;
if (t.loadEnd > 0) {
var page_load_time = t.loadEnd - t.navigationStart;
if (n.type == n.TYPE_LINK) {
alert (page_load_time);
}
}
2010年9月27日月曜日
18. Developer
Day
Google
2010
Web Audio Incubator Group
• http://w3.org/2005/Incubator/audio/wiki/
• programatically read and write raw audio data
2010年9月27日月曜日
19. Developer
Day
Google
2010
Web Audio APIs
• experimental APIs from Google, Mozilla
• Google Audio API in Chrome beta/dev-channel
• Mozilla Audio API now in Firefox 4 beta
• http://chromium.googlecode.com/svn/trunk/
samples/audio/specification/specification.html
• Mozilla Audio API now in Firefox 4 beta
• https://wiki.mozilla.org/Audio_Data_API
2010年9月27日月曜日
20. Developer
Day
Google
2010
Mozilla Audio Data API
interface nsIDOMNotifyAudioAvailableEvent : nsIDOMEvent
{
readonly attribute jsval frameBuffer;
readonly attribute float time;
};
HTMLMediaElement additions
readonly attribute unsigned long mozChannels;
readonly attribute unsigned long mozSampleRate;
attribute unsigned long mozFrameBufferLength;
HTMLAudioElement additions
void mozSetup(in long channels, in long rate);
unsigned long mozWriteAudio(array);
unsigned long long mozCurrentSampleOffset();
2010年9月27日月曜日
21. Developer
Day
Google
2010
Example: Reading audio
<audio id="audio" src="song.ogg"></audio>
<script>
var audio = document.getElementById("audio");
audio.addEventListener('MozAudioAvailable',
audioAvailableFunction, false);
audio.addEventListener('loadedmetadata',
loadedMetadataFunction, false);
</script>
2010年9月27日月曜日
22. Developer
Day
Google
2010
Example: Writing audio
// Create a new audio element
var audioOutput = new Audio();
// Set up audio element with 2 channel, 44.1KHz audio stream.
audioOutput.mozSetup(2, 44100);
// Write samples using a Typed Array
var samples = new Float32Array([0.242, 0.127, 0.0, -0.058,
-0.242, ...]);
var numberSamplesWritten =
audioOutput.mozWriteAudio(samples);
2010年9月27日月曜日
23. Developer
Day
Google
2010
Google AudioNode API
interface AudioNode {
void connect(in AudioNode destination, in unsigned
long output = 0, in unsigned long input = 0);
void disconnect(in int output = 0);
readonly attribute AudioContext context;
readonly attribute unsigned long numberOfInputs;
readonly attribute unsigned long numberOfOutputs;
}
2010年9月27日月曜日
24. Developer
Day
Google
2010
Example
function setupAudioContext() {
context = new AudioContext();
compressor = context.createCompressor();
gainNode1 = context.createGainNode();
streamingAudio = document.getElementById('audioTagID');
streamingAudio.audioSource.connect(gainNode1);
gainNode1.connect(compressor);
compressor.connect(context.destination);
}
2010年9月27日月曜日
25. Developer
Day
Google
2010
Example
function playSound() {
var oneShotSound = context.createBufferSource();
oneShotSound.buffer = dogBarkingBuffer;
// Create a filter, panner, and gain node.
var lowpass = context.createLowPass2Filter();
var panner = context.createPanner();
var gainNode2 = context.createGainNode();
// Make connections
oneShotSound.connect(lowpass);
lowpass.connect(panner);
panner.connect(gainNode2);
gainNode2.connect(compressor);
// Play 0.75 seconds from now
oneShotSound.noteOn(context.currentTime + 0.75);
}
2010年9月27日月曜日
26. Developer
Day
Google
2010
new HTML5 parsers
• conform to parsing algorithm in HTML5 spec
• ensure same DOM for any given byte stream
• Mozilla was first to implement and ship
(Henri Sivonen); now in Firefox 4
• WebKit now has HTML5 parser too (Adam
Barth and Eric Seidel); now in Chrome, WebKit
• IE9 parser does not conform to the HTML5
spec but uses some aspects of it
2010年9月27日月曜日
27. Developer
Day
Google
2010
WebSocket status
• two parts: (1) client-side API, (2) protocol
• client-side API is simple
• WebSocket protocol spec is still unstable
• WebSocket protocol will become more complex,
not backward-compatible
• Ian Fette is now editor of protocol spec
• all server libraries will change; browsers too
2010年9月27日月曜日
28. Developer
Day
Google
2010
Other new APIs
• Contacts API: read access to a user's
unified address book (useful on mobile,
etc.)
• Media Capture API: “camera” API;
HTML form enhancements to provide
access to device image, audio, video
capture capabilities of device (useful on
mobile, etc.)
2010年9月27日月曜日
30. Developer
Day
Google
2010
Contacts API example
function successContactFindCallback(contacts) {
// do something with resulting contact objects
for (var i in contacts) alert(contacts[i].displayName);
// ...
}
function generalErrorCB(error) {
// do something with resulting errors
alert(error.code);
// ...
}
// Perform address book search. Obtain 'name' and 'emails' properties
// and initially filter the list to Contact records containing 'Bob':
navigator.service.contacts.find(['name', 'emails'],
successContactFindCallback,
generalErrorCB,
{filter: 'Bob'}
);
2010年9月27日月曜日
32. Developer
Day
Google
2010
Example
var captureInput = document.getElementById('capture');
var file = captureInput.files[0];
if (file) {
file.getFormatData(displayFormatData, errorHandler); //asynch
}
// success callback when getting format data
function displayFormatData(formatData) {
var mainType = file.type.split("/")[0]; // "image", "video" or "audio"
var mediaDescriptionNode = document.createElement("p");
if (mainType === "image") {
mediaDescriptionNode.appendChild(document.createTextNode(
"Dimensions " + formatData.width + "x" + formatData.height);
} else {
mediaDescriptionNode.appendChild(document.createTextNode(
"Duration: " + formatData.duration + "s");
}
captureInput.parentNode.insertBefore(mediaDescriptionNode,
captureInput);
2010年9月27日月曜日
33. Developer
Day
Google
2010
HTML5 features unimplemented
• HTML5 forms (Web Forms 2) still only
completely implemented in Opera; other
browsers still like many of the UI parts
• HTML5 <details> element; expandable
view of detail info, as in, e.g., OS “Get Info”
• HTML5 context-menu mechanism;
enables a Web app to customize browser
context menu (menu shown by right-
clicking)
2010年9月27日月曜日