An introduction to Google Apps Script. It is a technology that allows you to write in JavaScript and HTML, and execute the code within Google's Cloud. It revolves around the Google Account.
In this presentation, we go through a demo app called Good Morning World. This app goes through the current day's Calendar events, puts a summary of those events to a Google Document, shortens the URL to the Document, and emails it to you. It also covers how to schedule it to run every morning.
For more details, go to:
http://www.modmonstr.com/search/label/code
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析Simon Su
This is a short training for introduce Pi to use fluentd to collect data and use Google Cloud Logging and BigQuery as backend and then use Apps Script and Google Sheet as presentation layer.
More Data, More Problems: Evolving big data machine learning pipelines with S...Alex Sadovsky
These are the slides from the Denver/Boulder Spark meet-up on February 24th, 2016. (deck build animations are all broken here... sorry!)
This talk provides an evaluation of existing machine learning pipelines in the eyes of different key stakeholders in the data science ecosystem. Focus is be placed upon the entire process from data to product (and keeping everyone in-between happy). Ultimately I explore how to utilize Spotify’s Luigi pipeline tool in combination with Spark to produce batch processing machine learning pipelines that have operational insights and redundancy built in.
JavaScript client API for Google Apps Script API primerBruce McPherson
An API for JavaScript/jQuery client webapps providing CRUD access to Google Apps Script scriptDB - a free noSQL databases. This adds to a VBA API for Excel already published. Now Excel, Google Apps Script and JavaScript clients can share the same noSQL database and data.
Interview with Developer Jose Luis Arenas regarding Google App Engine & Geosp...Rif Kiamil
Interview with Developer Jose Luis Arenas regarding Google App Engine & Geospatial Data search. Plus detail about opensource project on using Search API & Google Datastore with Geospatial Datas from UK Government.
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析Simon Su
This is a short training for introduce Pi to use fluentd to collect data and use Google Cloud Logging and BigQuery as backend and then use Apps Script and Google Sheet as presentation layer.
More Data, More Problems: Evolving big data machine learning pipelines with S...Alex Sadovsky
These are the slides from the Denver/Boulder Spark meet-up on February 24th, 2016. (deck build animations are all broken here... sorry!)
This talk provides an evaluation of existing machine learning pipelines in the eyes of different key stakeholders in the data science ecosystem. Focus is be placed upon the entire process from data to product (and keeping everyone in-between happy). Ultimately I explore how to utilize Spotify’s Luigi pipeline tool in combination with Spark to produce batch processing machine learning pipelines that have operational insights and redundancy built in.
JavaScript client API for Google Apps Script API primerBruce McPherson
An API for JavaScript/jQuery client webapps providing CRUD access to Google Apps Script scriptDB - a free noSQL databases. This adds to a VBA API for Excel already published. Now Excel, Google Apps Script and JavaScript clients can share the same noSQL database and data.
Interview with Developer Jose Luis Arenas regarding Google App Engine & Geosp...Rif Kiamil
Interview with Developer Jose Luis Arenas regarding Google App Engine & Geospatial Data search. Plus detail about opensource project on using Search API & Google Datastore with Geospatial Datas from UK Government.
In this talk, we provide an introduction to Python Luigi via real life case studies showing you how you can break large, multi-step data processing task into a graph of smaller sub-tasks that are aware of the state of their interdependencies.
Growth Intelligence tracks the performance and activity of all the companies in the UK economy using their data ‘footprint’. This involves tracking numerous unstructured data points from multiple sources in a variety of formats and transforming them into a standardised feature set we can use for building predictive models for our clients.
In the past, this data was collected by in a somewhat haphazard fashion: combining manual effort, ad hoc scripting and processing which was difficult to maintain. In order to streamline the data flows, we’re using an open-source Python framework from Spotify called Luigi. Luigi was created for managing task dependencies, monitoring the progress of the data pipeline and providing frameworks for common batch processing tasks.
Altitude San Francisco 2018: Logging at the Edge Fastly
Fastly delivers more than a million log events per second. Our Real-Time Log Streaming is easy to set up, but there are many features you might not be using to their full extent.
This workshop will cover setting up logging to various endpoints, dealing with structured data, and getting real-time insights into your customers’ behavior.
This presentation will demonstrate how you can use the aggregation pipeline with MongoDB similar to how you would use GROUP BY in SQL and the new stage operators coming 3.4. MongoDB’s Aggregation Framework has many operators that give you the ability to get more value out of your data, discover usage patterns within your data, or use the Aggregation Framework to power your application. Considerations regarding version, indexing, operators, and saving the output will be reviewed.
Slides from presentation, I've made on the BuildStuff LT 2018. Here I'm talking about issues, many people have found when using RESTful APIs and how GraphQL addresses them. Also I'm trying to cover the tradeoffs made by the standard, solutions proposed by different implementations and some ideas for the future.
You may know Google for search, YouTube, Android, Chrome, and Gmail, but that's only as an end-user of OUR apps. Did you know you can also integrate Google technologies into YOUR apps? We have many APIs and open source libraries that help you do that! If you have tried and found it challenging, didn't find not enough examples, run into roadblocks, got confused, or just curious about what Google APIs can offer, join us to resolve any blockers. Code samples will be in Python and/or Node.js/JavaScript. This session focuses on showing you how to access Google Cloud APIs from one of Google Cloud's compute platforms, whether serverless or otherwise.
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Runwesley chun
Many people ask, "Which one is better for me: App Engine, Cloud Functions, or Cloud Run?" To help you learn more about them, understand their differences, appropriate use cases, etc., why not deploy the same app to all 3? With this "test drive," you only need to make minor config changes between platforms. You'll also learn one of Google Cloud's AI/ML "building block" APIs as a bonus as the sample app is a simple "mini" Google Translate "MVP". This is a 45- 60-minute talk that reviews the Google Cloud serverless compute platforms then walks through the same app and its deployments. The code is maintained at https://github.com/googlecodelabs/cloud-nebulous-serverless-python
In this talk, we provide an introduction to Python Luigi via real life case studies showing you how you can break large, multi-step data processing task into a graph of smaller sub-tasks that are aware of the state of their interdependencies.
Growth Intelligence tracks the performance and activity of all the companies in the UK economy using their data ‘footprint’. This involves tracking numerous unstructured data points from multiple sources in a variety of formats and transforming them into a standardised feature set we can use for building predictive models for our clients.
In the past, this data was collected by in a somewhat haphazard fashion: combining manual effort, ad hoc scripting and processing which was difficult to maintain. In order to streamline the data flows, we’re using an open-source Python framework from Spotify called Luigi. Luigi was created for managing task dependencies, monitoring the progress of the data pipeline and providing frameworks for common batch processing tasks.
Altitude San Francisco 2018: Logging at the Edge Fastly
Fastly delivers more than a million log events per second. Our Real-Time Log Streaming is easy to set up, but there are many features you might not be using to their full extent.
This workshop will cover setting up logging to various endpoints, dealing with structured data, and getting real-time insights into your customers’ behavior.
This presentation will demonstrate how you can use the aggregation pipeline with MongoDB similar to how you would use GROUP BY in SQL and the new stage operators coming 3.4. MongoDB’s Aggregation Framework has many operators that give you the ability to get more value out of your data, discover usage patterns within your data, or use the Aggregation Framework to power your application. Considerations regarding version, indexing, operators, and saving the output will be reviewed.
Slides from presentation, I've made on the BuildStuff LT 2018. Here I'm talking about issues, many people have found when using RESTful APIs and how GraphQL addresses them. Also I'm trying to cover the tradeoffs made by the standard, solutions proposed by different implementations and some ideas for the future.
You may know Google for search, YouTube, Android, Chrome, and Gmail, but that's only as an end-user of OUR apps. Did you know you can also integrate Google technologies into YOUR apps? We have many APIs and open source libraries that help you do that! If you have tried and found it challenging, didn't find not enough examples, run into roadblocks, got confused, or just curious about what Google APIs can offer, join us to resolve any blockers. Code samples will be in Python and/or Node.js/JavaScript. This session focuses on showing you how to access Google Cloud APIs from one of Google Cloud's compute platforms, whether serverless or otherwise.
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Runwesley chun
Many people ask, "Which one is better for me: App Engine, Cloud Functions, or Cloud Run?" To help you learn more about them, understand their differences, appropriate use cases, etc., why not deploy the same app to all 3? With this "test drive," you only need to make minor config changes between platforms. You'll also learn one of Google Cloud's AI/ML "building block" APIs as a bonus as the sample app is a simple "mini" Google Translate "MVP". This is a 45- 60-minute talk that reviews the Google Cloud serverless compute platforms then walks through the same app and its deployments. The code is maintained at https://github.com/googlecodelabs/cloud-nebulous-serverless-python
Image archive, analysis & report generation with Google Cloudwesley chun
Google Cloud provides a diverse array of services to realize the ambition of solving real business problems, like constrained resources. An image archive & analysis plus report generation use-case can be realized with just Google Workspace & GCP APIs. The principle of mixing-and-matching Google technologies is applicable to many other challenges faced by you, your organization, or your customers. These slides are from a half- to 1-hour presentation about this case study.
Takeaway Points
1) Identify the productive period and do the hardest task in that time
2) Schedule important task and be on time
3) Utilize the meeting time efficiently
4) Developer should use developer checklist for improving work quality
5) Identify the productive tools which help to you for increase productivity
6) Organize the important reference link in Bookmarks and organize the email
7) Knowledge sharing with team weekly basis
The slides introduce the concept of delegating user tasks in applications through messaging and app resolution of the application platform. The concept was implemented in the first version of the Android platform as is now becoming popular on other platforms as well. The W3C is discussing a draft for web intents, Mozilla proposed a document about web activities and windows provides contracts for certain user tasks.
The most popular task is "sharing". The user has a huge selection of available services from social medias, to email, from printing services to online storage. No application can ever implement all possibilities. Therefore, the application framework provides a selection of the user's preferred services. The different approaches are compared and code examples are given.
This is an inspirational lightning talk on how developers can take on the future with Google Cloud and other non-Cloud Google tools. It presents various application ideas that are meant to both inspire what's possible as well as show what some of those tools could be.
An understanding of how modern browsers work is essential as it helps in optimizing perfromance and the rendering of each page; be it HTML, CSS or JS.
The session was hosted by Daliya and Sneha, our UI Engineers and members Google's Women Techmakers Trivandrum chapter since it's inception.
This is a 15-20 minute tech talk designed for those who wish to use Google APIs, but don't know how to get started quickly. This session introduces developers to two distinct ways of accessing our APIs, the standard HTTP-based REST APIs or Google Apps Script, a customized JS environment which provides Google API access via objects. It concludes with some inspirational app ideas of what you can build using Google Cloud APIs (covering both GCP & G Suite).
OpenCms 9.5 introduces the concept of “User Generated Content” (UGC). This new option allows front-end users to easily create or modify content elements in the OpenCms repository without access to the editor interface. The so generated XML contents can then be used with the standard template system to build web pages.
To enable UGC for your website, OpenCms 9.5 provides a simple to use JavaScript API. In addition to that, you just need to provide a schema for the XML content, a UGC configuration file, and a web form. No server side programming is required. Contents created with UGC can be edited in the standard editor interface and vice versa. Of course, UGC comes with build in security features.
Daniel and Alexander show how to create a UGC application in OpenCms. They explain common use cases and point out the advantages of the new API compared to the traditional approaches.
2. What is Google Apps Script?
● A Google Cloud-based scripting technology
used in the Google Apps/Drive ecosystem
● Write code in JavaScript and HTML
● Has native APIs to most Google services,
except Google+, Blogger, and YouTube
● Has Web Service support
● Has App Engine integration support
3. Script Execution
● Invocation Methods:
○ Google Drive
○ Google Spreadsheet
○ Web (Sites or Web App)
● Scheduling Capabilities
○ By Specific Times
○ By Time Interval
● Quotas
○ Goes against the executor's Google Account
4. Container-Bound vs Standalone
● Container-Bound scripts
○ Resides within a Google Spreadsheet
○ Goes away with the spreadsheet
● Standalone scripts
○ Resides in Google Drive
○ Can be scheduled to execute
○ As a Web App, it can be deployed to the Chrome
App Store
7. Experimental Google APIs
These APIs need to be enabled by going to the
Resources>Use Google APIs menu
● AdSense
● Analytics
● BigQuery
● Prediction
● Tasks
● UrlShortener
9. About Good Morning World
1. Gathers Calendar events for the current day
2. Write them in a Google Document
3. Shorten the URL of the Document via goo.gl
4. Email the shortened URL
5. Schedule the script
10. Create the Script
1. Go to Google Drive
2. Click Create>More>Script
3. Click Blank Project
4. Rename Untitled project to your
project's name 1
2
3
2
2 4
11. Initialize
function myFunction() {
//Get current Date and format as a string
var today = new Date();
var todayString = today.getFullYear().toString() + lPad
(1+today.getMonth())+lPad(today.getDate());
}
function lPad(i){
return i<10?"0"+i:i;
}
● The current date is obtained and saved as a
string in yyyymmdd format for file naming
● The lPad function pads a zero to the left if
the input is a single-digit number
12. Step 1. Gather Today's Calendar Events
var cal = CalendarApp.
getDefaultCalendar().
getEventsForDay(today);
● CalendarApp is used to reference the end-
user's Calendar
● getDefaultCalendar() obtains the end-
user's default calendar
● getEventsForDay(Date) obtains all
events for the specified date
● today is the current date from previous slide
13. Step 2. Write them in a Document
//Create a Google Document,
//filename starts with the current date
var doc = DocumentApp.create(todayString+'-Good Morning');
● Create the Google Document
● The filename begins with the current date in
yyyymmdd format
● Doing so enables the Document filenames to
sort naturally
14. Step 2. Write them in a Document
//Header part of the document
doc.appendParagraph("Good Morning World");
doc.appendParagraph("Below are the activities for today, "
+ today);
doc.appendHorizontalRule()
● The header is composed of three parts:
○ A greeting
○ Language to indicate today's events
○ A horizontal rule to delineate the Calendar Events
from the header
15. Step 2. Write them in a Document
//Iterate through the Calendar and write to the Document
var i = 0;
for(i = 0;i<cal.length;i++){
doc.appendParagraph(basicTime(cal[i].getStartTime()) + '
to ' + basicTime(cal[i].getEndTime()) + ' - ' + cal[i].
getTitle() + ' in ' + cal[i].getLocation());
}
● The Calendar events are stored as an array
of CalendarEvent objects
● Iterate via a for loop
● Inside, add a paragraph to the Document
with the time range, title, and location of the
event
16. Step 2. Write them in a Document
function basicTime(t){
var output = lPad(t.getHours()) + ":" +
lPad(t.getMinutes());
return output;
}
● basicTime formats the input time in hh:mm
format
● This function is called in the previous slide to
format the Start and End time of the
calendar event
17. Step 2. Write them in a Document
//Save and close the Document
doc.saveAndClose();
● We are done with the Google Document
● Save changes and Close it
18. Step 3. Shorten Document URL
// Get the URL of the document
var url = doc.getUrl();
// Shorten the URL
var toShorten = UrlShortener.newUrl().setLongUrl(url)
var shortUrl = UrlShortener.Url.insert(toShorten);
● getUrl() gets the Document's URL
● toShorten gets a url object by converting
from getUrl's output (string)
● shortUrl contains the shortened Url
19. Step 4. Email the shortened URL
// Get the email address of the active user - that's you
var emailAddress = Session.getActiveUser().getEmail();
// Send yourself an email with a link to the document
GmailApp.sendEmail(emailAddress,
'Today's Calendar Events',
'Attached is a link to Document containing ' +
'today's activities ' +
shortUrl.getId());
● emailAddress contains the end-user's
email address
● sendEmail sends the email
● the ' results in a ' character
20. Step 4. Email the shortened URL
● We need to enable the URL Shortener API
● Click Resources
● Click User Google APIs...
21. Step 4. Email the shortened URL
1. Set URL Shortener API to on
2. Click OK
1
2
22. Step 5. Schedule
1. Go to Resources
2. Click Current script's triggers...
1
2