Google Cloud Endpoints provides tools and libraries to easily create shared backends for web and mobile clients. It generates API and client libraries from App Engine applications, simplifying client access. Endpoints supports services like authentication and handles scalability. Developers annotate their backend code, then generate clients using Maven or other tools. This allows writing clients that call the backend through the generated library.
Versioning strategy for a complex internal API (Konstantin Yakushev)Nordic APIs
This is a session given by Konstantin Yakushev at Nordic APIs 2016 Platform Summit on October 25th, in Stockholm Sweden.
Description:
API versioning is a very heated topic in API design world. Common approaches are passing version number explicitly (with a lot of fairly useless discussion on where exactly to put that number) or only introducing backwards-compatible changes.
When creating internal API for Badoo applications we found those approaches to be too limiting. Passing version number requires implementers to accommodate for all breaking changes when bumping version – even when it’s not required for business goals of that application at the time. Instead of driving value for business, application developers are in constant race to keep up with the API.
Never introducing incompatible changes is also not an option. After several feature redesigns (something that may happen at Badoo once every few weeks) protocol becomes bloated and half of the fields transmitted over the wire start being useless.
This talk is about our approach to versioning as part of client-server component negotiation. Client announces features and capabilities it supports and server replies with features status: whether they are enabled or disabled and whether they can be enabled by some user action (e. g. by buying some paid product).
Beside those componentized features, client also sends support flags such as SUPPORT_IMAGE_SIZE_VIA_URL which affects how API works. We use those flags where in typical API a version number bump would be required.
This approach allows both server and client to understand their current state and adjust their code accordingly – essentially, a tailor-made API for every client. Gathering data on feature and flag support among clients allows us to remove old code branches while continuing to evolve the API.
As a result, we are not afraid to change something when that change is required. Old clients continue to work while protocol rot is kept at low level.
In this talk I will give details on how exactly this versioning scheme work, how we test those changes, how and when we deprecate our old clients and note some stats and insights from using this scheme at Badoo for several years.
On Sept. 1, Google announced the open beta release of the newest set of features and open source components in Google Cloud Endpoints. Find out why Google is committed to leveraging the OpenAPI Specification. - presented by Dan Ciruli, API infrastructure and Cloud Product Manager, Google
Versioning strategy for a complex internal API (Konstantin Yakushev)Nordic APIs
This is a session given by Konstantin Yakushev at Nordic APIs 2016 Platform Summit on October 25th, in Stockholm Sweden.
Description:
API versioning is a very heated topic in API design world. Common approaches are passing version number explicitly (with a lot of fairly useless discussion on where exactly to put that number) or only introducing backwards-compatible changes.
When creating internal API for Badoo applications we found those approaches to be too limiting. Passing version number requires implementers to accommodate for all breaking changes when bumping version – even when it’s not required for business goals of that application at the time. Instead of driving value for business, application developers are in constant race to keep up with the API.
Never introducing incompatible changes is also not an option. After several feature redesigns (something that may happen at Badoo once every few weeks) protocol becomes bloated and half of the fields transmitted over the wire start being useless.
This talk is about our approach to versioning as part of client-server component negotiation. Client announces features and capabilities it supports and server replies with features status: whether they are enabled or disabled and whether they can be enabled by some user action (e. g. by buying some paid product).
Beside those componentized features, client also sends support flags such as SUPPORT_IMAGE_SIZE_VIA_URL which affects how API works. We use those flags where in typical API a version number bump would be required.
This approach allows both server and client to understand their current state and adjust their code accordingly – essentially, a tailor-made API for every client. Gathering data on feature and flag support among clients allows us to remove old code branches while continuing to evolve the API.
As a result, we are not afraid to change something when that change is required. Old clients continue to work while protocol rot is kept at low level.
In this talk I will give details on how exactly this versioning scheme work, how we test those changes, how and when we deprecate our old clients and note some stats and insights from using this scheme at Badoo for several years.
On Sept. 1, Google announced the open beta release of the newest set of features and open source components in Google Cloud Endpoints. Find out why Google is committed to leveraging the OpenAPI Specification. - presented by Dan Ciruli, API infrastructure and Cloud Product Manager, Google
Redux and context api with react native app introduction, use cases, implemen...Katy Slemon
Learn how to build an app using Redux and Context API with React Native. In this tutorial, we will compare and learn how to Implement both these techs.
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20CodeValue
So, you have a mature development process, and you also embrace DevOps. Your development team uses agile methodology. You use Git, and you have a continuous dev, test, and deployment process. But do you sleep well at night? Do you know that your services are up and running? That there are no availability, performance, and stability problems? Do you know if your customers are happy? The answer to all of those questions is precisely what APM systems provide.
Application Performance Monitoring systems have become the IDE of the Site Reliability Engineers (SRE) and, as a matter of fact, for the all DevOps team, including the Dev part. In this session, you will get to know the essence of the APM systems, the good, the bad, and the vision about their future.
ExactTarget Fuel offers a comprehensive set of APIs that enable you to automate your marketing campaigns and seamlessly integrate your marketing, analytics, and other business software. In this session, we'll provide an overview of Fuel's APIs with an emphasis on the latest and greatest additions to the REST API. We'll also highlight several examples of how to use these APIs to address core platform use cases such as automation and integration.
This is an introduction to Angular with answers to common questions. We’ll see what Angular is, the various versions of Angular and the new features of version 9
In this session we will be learning how to start using ContentBox, and from the beginning, setup your site to be containerized and deployed with Continuous Integration to a Cloud Provider on a Docker Swarm. You will learn about Ortus Solution's ( Docker Partner ) docker images for CommandBox and ContentBox, and how to build your site, dockerize, and then deploy (using only free tools), to the cloud of your choice. If the live demo gods are on our side, I will deploy a new site to Digital Ocean at the end of this session.
Presented at Into the Box 2019
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsSashko Stubailo
These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.
We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.
Learn Angular 4 using your basic knowledge of HTML & JavaScript. Master Angular 4 course & build an advance application using firebase integration. This Angular 4 tutorial covers basic topics that allows users to develop an advance application using firebase integration
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
Have your cake and eat it too: GraphQL? REST? Why not have both!
Roy Mor, Technical Lead at Sisense
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSbrtechnosoft2018
BENEFIT OF FLUTTER APP DEVELOPMENT - We are Trusted Flutter App Development Company India provide complete mobile App development in iPhone, Android, React Native platform with complete customizable solutions - Hire Flutter Developer with cost-effective prices.
Presentation about new Angular 9.
It gives introduction about angular framework.
Provides information about why we use angular,
additional features and fixes from old versions. It will clearly explain how to create a new angular project and how to use angular commands and their usages.
It will also explain about the key components like angular architecture, routing, dependency injection etc.,
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLEGavin Pickin
We’ve all had those projects, the salvage project, the legacy project that we picked up, and wished we never had.
Was it written 5 years ago by that young dev with lots of passion but no big picture vision.
Was it written 6 months ago by another team, by a top gun developer who knows all the design patterns, and tried to future proof the app, only succeeding in making it impossible for anyone else to understand.
Or was it you, 2 years ago, before you joined the community and learned more about best (better) practices and you almost cannot comprehend how you used to code.
Long story short, we have all been there, but the past is history, how do we proceed from here, that’s the key. We’ll look at some of the ways you can clean up your code, and walk through some examples, and walk the journey to software craftsmanship
5 main points
What is clean code
Reading vs Writing Code
Don’t suffocate your code, let it breathe
Simple & Self Documenting Code
Lower the Cognitive Load
Angular is an open source JavaScript framework that is used to build single page based web applications.A detailed overview of Angular 4, Its features, development environment and components.
RESHMI KRISHNA SENIOR CLOUD APPLICATION & PLATFORM ARCHITECT, PIVOTAL
VINAY UPADHYA ADVISORY PLATFORM ARCHITECT, PIVOTAL
TDD introduced many improvements into the development process with the biggest advantage relating to code design. As we move to a microservices based architecture, TDD becomes hard to implement across teams building different codebases. Consumer driven contracts (CDC) is like TDD but applied at the API level and is becoming more relevant in the world of microservices. It is a pattern for specifying and verifying interactions between different modules of an application. Spring Cloud Contract provides support for Consumer Driven Contracts and service schemas in Spring applications, covering a range of options for writing tests, publishing them as assets, asserting that a contract is kept by producers and consumers, for HTTP and message-based interactions. In this session, you will learn how we can implement TDD in microservices based architecture using Spring Cloud Contracts.
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays
apidays LIVE Helsinki - APIs, Platforms, And Ecosystems - Transforming Industries And Experiences
Implementing OpenAPI and GraphQL Services with gRPC
Tim Burks, Software Engineer at Google
This course teaches participants the following skills:
Design and build data processing systems on Google Cloud Platform
Process batch and streaming data by implementing autoscaling data pipelines on Cloud Dataflow
Derive business insights from extremely large datasets using Google BigQuery
Train, evaluate and predict using machine learning models using Tensorflow and Cloud ML
Leverage unstructured data using Spark and ML APIs on Cloud Dataproc
Enable instant insights from streaming data
Redux and context api with react native app introduction, use cases, implemen...Katy Slemon
Learn how to build an app using Redux and Context API with React Native. In this tutorial, we will compare and learn how to Implement both these techs.
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20CodeValue
So, you have a mature development process, and you also embrace DevOps. Your development team uses agile methodology. You use Git, and you have a continuous dev, test, and deployment process. But do you sleep well at night? Do you know that your services are up and running? That there are no availability, performance, and stability problems? Do you know if your customers are happy? The answer to all of those questions is precisely what APM systems provide.
Application Performance Monitoring systems have become the IDE of the Site Reliability Engineers (SRE) and, as a matter of fact, for the all DevOps team, including the Dev part. In this session, you will get to know the essence of the APM systems, the good, the bad, and the vision about their future.
ExactTarget Fuel offers a comprehensive set of APIs that enable you to automate your marketing campaigns and seamlessly integrate your marketing, analytics, and other business software. In this session, we'll provide an overview of Fuel's APIs with an emphasis on the latest and greatest additions to the REST API. We'll also highlight several examples of how to use these APIs to address core platform use cases such as automation and integration.
This is an introduction to Angular with answers to common questions. We’ll see what Angular is, the various versions of Angular and the new features of version 9
In this session we will be learning how to start using ContentBox, and from the beginning, setup your site to be containerized and deployed with Continuous Integration to a Cloud Provider on a Docker Swarm. You will learn about Ortus Solution's ( Docker Partner ) docker images for CommandBox and ContentBox, and how to build your site, dockerize, and then deploy (using only free tools), to the cloud of your choice. If the live demo gods are on our side, I will deploy a new site to Digital Ocean at the end of this session.
Presented at Into the Box 2019
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsSashko Stubailo
These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.
We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.
Learn Angular 4 using your basic knowledge of HTML & JavaScript. Master Angular 4 course & build an advance application using firebase integration. This Angular 4 tutorial covers basic topics that allows users to develop an advance application using firebase integration
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
Have your cake and eat it too: GraphQL? REST? Why not have both!
Roy Mor, Technical Lead at Sisense
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSbrtechnosoft2018
BENEFIT OF FLUTTER APP DEVELOPMENT - We are Trusted Flutter App Development Company India provide complete mobile App development in iPhone, Android, React Native platform with complete customizable solutions - Hire Flutter Developer with cost-effective prices.
Presentation about new Angular 9.
It gives introduction about angular framework.
Provides information about why we use angular,
additional features and fixes from old versions. It will clearly explain how to create a new angular project and how to use angular commands and their usages.
It will also explain about the key components like angular architecture, routing, dependency injection etc.,
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLEGavin Pickin
We’ve all had those projects, the salvage project, the legacy project that we picked up, and wished we never had.
Was it written 5 years ago by that young dev with lots of passion but no big picture vision.
Was it written 6 months ago by another team, by a top gun developer who knows all the design patterns, and tried to future proof the app, only succeeding in making it impossible for anyone else to understand.
Or was it you, 2 years ago, before you joined the community and learned more about best (better) practices and you almost cannot comprehend how you used to code.
Long story short, we have all been there, but the past is history, how do we proceed from here, that’s the key. We’ll look at some of the ways you can clean up your code, and walk through some examples, and walk the journey to software craftsmanship
5 main points
What is clean code
Reading vs Writing Code
Don’t suffocate your code, let it breathe
Simple & Self Documenting Code
Lower the Cognitive Load
Angular is an open source JavaScript framework that is used to build single page based web applications.A detailed overview of Angular 4, Its features, development environment and components.
RESHMI KRISHNA SENIOR CLOUD APPLICATION & PLATFORM ARCHITECT, PIVOTAL
VINAY UPADHYA ADVISORY PLATFORM ARCHITECT, PIVOTAL
TDD introduced many improvements into the development process with the biggest advantage relating to code design. As we move to a microservices based architecture, TDD becomes hard to implement across teams building different codebases. Consumer driven contracts (CDC) is like TDD but applied at the API level and is becoming more relevant in the world of microservices. It is a pattern for specifying and verifying interactions between different modules of an application. Spring Cloud Contract provides support for Consumer Driven Contracts and service schemas in Spring applications, covering a range of options for writing tests, publishing them as assets, asserting that a contract is kept by producers and consumers, for HTTP and message-based interactions. In this session, you will learn how we can implement TDD in microservices based architecture using Spring Cloud Contracts.
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays
apidays LIVE Helsinki - APIs, Platforms, And Ecosystems - Transforming Industries And Experiences
Implementing OpenAPI and GraphQL Services with gRPC
Tim Burks, Software Engineer at Google
This course teaches participants the following skills:
Design and build data processing systems on Google Cloud Platform
Process batch and streaming data by implementing autoscaling data pipelines on Cloud Dataflow
Derive business insights from extremely large datasets using Google BigQuery
Train, evaluate and predict using machine learning models using Tensorflow and Cloud ML
Leverage unstructured data using Spark and ML APIs on Cloud Dataproc
Enable instant insights from streaming data
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...Serdal Kepil
AWS Amplify
The fastest way to build mobile and web apps that scale
Full stack demo app built with Vue.js, GraphQL API, Authentication, Deployment
This webinar is recorded at 4/20/2021 03:00 (GMT).
https://www.youtube.com/watch?v=4Fpzrxs1v0Y
Powering your Apps via Google Cloud PlatformRomin Irani
Presentation at Google DevFest Ahmedabad, December 2014. This talk gives an overview of Google Cloud Platform and then goes into Cloud Endpoints and building out a simple IoT Project
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architectureBen Wilcock
Devoxx Belgium 2018 - Let Pivotal and AxonIQ take you on a journey into Axon Trader. Axon Trader is a new open-source reference architecture that demonstrates how to use Spring, Axon and Pivotal Cloud Foundry to deliver evolutionary microservice applications to prod in minutes.
The accompanying YouTube video can be found here: https://www.youtube.com/watch?v=15hzHUI4WNA
Itb 2021 - Bulding Quick APIs by Gavin PickinGavin Pickin
In this session we will use ColdBox’s built in REST BaseHandler, and with CBSecurity and Quick ORM we will setup a secure API using fluent query language - and you’ll see how Quick Quick development can be!
Managing the deployment of code to multiple AWS Lambda functions and updating your API Gateway methods can be manual and time consuming.
In this session, we will show you how to build a deployment pipeline to AWS Lambda using AWS CodePipeline, a continuous delivery service based on Amazon’s internal release automation tooling. We will discuss how to use versioning, which enables you to better manage the different variations of your Lambda functions and API Gateway methods in your development workflow (e.g., development, staging, and production). We will walk through how to automate the entire release process of your application from development, to staging, and finally to production; performing automated integration tests at each stage.
AWS DevDay San Francisco, June 21, 2016.
Presenter: Andrew Baird, Solutions Architecture
How to generate a rest application - DevFest Vienna 2016johannes_fiala
Demo of Swagger-Codegen CXF server stub generator including coverage of the Swagger-Toolchain (Swagger-UI/Swagger-Editor/Swagger2Markup) and demo of how to customize a language in Swagger-Codegen
@DevFest Vienna 2016
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesAmazon Web Services
Managing the deployment of code to multiple AWS Lambda functions and updating your API Gateway methods can be manual and time consuming.
In this webinar, we will show you how to build a deployment pipeline to AWS Lambda using AWS CodePipeline. We will discuss how to use versioning, allowing you to better manage the different variations of your Lambda function and API Gateway methods in your development workflow, such as development, staging, and production. We will walk through how to automate the entire release process of your application from development to staging and finally to production, performing automated integration tests at each stage.
Learning Objectives:
Understand the basics of AWS CodePipeline
Learn how to version AWS Lambda functions and API Gateway methods
Build a deployment pipeline to AWS Lambda
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android hybrid application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Get the session recording from SoundCloud:
http://tinyurl.com/cordova2014
This presentation by Morris Kleiner (University of Minnesota), was made during the discussion “Competition and Regulation in Professions and Occupations” held at the Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found out at oe.cd/crps.
This presentation was uploaded with the author’s consent.
Acorn Recovery: Restore IT infra within minutesIP ServerOne
Introducing Acorn Recovery as a Service, a simple, fast, and secure managed disaster recovery (DRaaS) by IP ServerOne. A DR solution that helps restore your IT infra within minutes.
Have you ever wondered how search works while visiting an e-commerce site, internal website, or searching through other types of online resources? Look no further than this informative session on the ways that taxonomies help end-users navigate the internet! Hear from taxonomists and other information professionals who have first-hand experience creating and working with taxonomies that aid in navigation, search, and discovery across a range of disciplines.
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...Orkestra
UIIN Conference, Madrid, 27-29 May 2024
James Wilson, Orkestra and Deusto Business School
Emily Wise, Lund University
Madeline Smith, The Glasgow School of Art
This presentation, created by Syed Faiz ul Hassan, explores the profound influence of media on public perception and behavior. It delves into the evolution of media from oral traditions to modern digital and social media platforms. Key topics include the role of media in information propagation, socialization, crisis awareness, globalization, and education. The presentation also examines media influence through agenda setting, propaganda, and manipulative techniques used by advertisers and marketers. Furthermore, it highlights the impact of surveillance enabled by media technologies on personal behavior and preferences. Through this comprehensive overview, the presentation aims to shed light on how media shapes collective consciousness and public opinion.
0x01 - Newton's Third Law: Static vs. Dynamic AbusersOWASP Beja
f you offer a service on the web, odds are that someone will abuse it. Be it an API, a SaaS, a PaaS, or even a static website, someone somewhere will try to figure out a way to use it to their own needs. In this talk we'll compare measures that are effective against static attackers and how to battle a dynamic attacker who adapts to your counter-measures.
About the Speaker
===============
Diogo Sousa, Engineering Manager @ Canonical
An opinionated individual with an interest in cryptography and its intersection with secure software development.
3. • How to create a shared backend for the
web and mobile clients?
• How to handle the scalability and
availability?
• How to migrate the current backend
version to all the clients?
4. Endpoints provides a simple way to develop a shared web
backend and also provides critical infrastructures, such as OAuth
2.0 authentication, eliminating a great deal of work that would
otherwise be needed.
5. Google Cloud Endpoints consists of tools, libraries and capabilities that
allow you to generate APIs and client libraries from an App Engine
application, referred to as an API backend, to simplify client access to
data from other applications
6. Google Cloud Endpoints
Cloud Endpoints makes it easy to expose
your code via RESTful API & RPC services
that can easily be consumed by web and
mobile applications.
7. V1 V2
API Burgeoning support by Cloud Endpoints
Different Api versions can
co-exist and you can do a
gradual stage of roll out of
these changes.
New clients can talk to V2
where as the older ones
can slowly move over until
we deprecate the V1
10. With App Engine comes the ability to scale very easily.
As we get more traffic
Google automatically
spins up more app
engine instances.
When the traffic levels
are off the peak it kills
off instances that are
not needed anymore
11. Endpoints libraries, tools, and samples
Google Cloud Endpoints
Google Cloud Endpoints provide the following libraries and tools:
• The Endpoints library in the SDK.
• Maven artifacts for creating new backend API projects,
generating client libraries and discovery docs
• Alternatively to Maven, the endpoints.sh command line tool (for
Linux), or endpoints.cmd (for Windows) that you can use to
generate client libraries and discovery documents.
• Another alternative to Maven is Endpoints support in the Google
Plugin for Eclipse.
12. Google Cloud Endpoints
• To use Endpoints, be sure you're using the latest version of the
Google App Engine Java SDK.
• If you are using the Google Plugin for Eclipse (GPE) to generate
endpoints and client libraries, you'll need the latest GPE version.
• You'll also need to be familiar with development using Google
App Engine and the Java runtime.
• And finally, you'll need to know how to develop the client of your
choice, such as JavaScript web clients, or mobile clients of your
choice, such as Android or iOS.
Requirements
13. Google Cloud Endpoints
• Create your backend API project (using Maven to do this is the
easiest method), then write your API backend code.
• Annotate your API backend code, so classes and client libraries
can be generated from it. (Alternatively, use the Google Plugin
for Eclipse, which can annotate for you.)
• Generate the client library using Maven, or alternatively, the
endpoints.sh command line tool. (Another alternative is to use
the Google Plugin for Eclipse to generate the client library.)
• Write your client app, using the client library when making calls
to the API backend.
The development process
18. Running and testing API
backends locally
• Start the API backend by invoking the development app
server.
• In your browser, visit the URL
• Double-click the API you created to display the list of its
methods.
mvn appengine:devserver
Wait till...
INFO: Dev App Server is now running.
http://localhost:8080/_ah/api/explorer
19. Deploying an API backend
• Change directory to your project main directory
containing the pom.xml file.
• Invoke Maven as follows:
• After you deploy, you can use the API Explorer to
experiment with your API without using a client app by
visiting.
mvn appengine:update
https://your_app_id.appspot.com/_ah/api/explorer
24. Enabling a JavaScript client for Endpoints
• Add the script that includes the Google-hosted JavaScript client
library to your HTML:
• Notice that the JavaScript line above includes an onload property
specifying the function to be used as a callback after the library
loads. Replace "init" with the name of your page initialization
function if you did not name it init.
• Inside your callback function, load your Endpoint:
<script src="https://apis.google.com/js/client.js?onload=init">
</script>
<script src="https://apis.google.com/js/client.js?onload=init">
</script>
<script src="https://apis.google.com/js/client.js?onload=init">
</script>
function init() {
gapi.client.load('conference', 'v1', null, '//' + window.location.host +'/_ah/api');
gapi.client.load('oauth2', 'v2', function () {
angular.bootstrap(document, ['conferenceApp']);
});
};