Slides used in a presentation to introduce Google Apps Script and solve the problem of automatically creating new sheet for each user completing a form
Architects and Developers often go through lots of pain while loading external data into Salesforce during one-time deployments, as well as while copying data across different sandboxes and production environments. Google Apps Scripts presents an elegant solution to transform CSV data loaded within Google Sheets into appropriate formats required by the target org. Join us to learn to read data within Google Sheets, various mechanisms for transforming this data, and finally writing it to a target Sheet that can be loaded into Salesforce.
이성민 / Netflix - [특별 발표]<시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면">
"모든 엔지니어는 실패를 통해 성장하고 저 또한 그랬습니다.
제가 주니어 때 알았다면 좋았을 이야기들, 오늘 이 자리에서 나누어보고자 합니다."
영상: https://youtu.be/MXl_t1vjkyU
주최: https://www.facebook.com/groups/InfraEngineer
This presentation discusses the top 5 reasons as well as various technology updates to provide a reasonable answer to the rather common question: "Why should one use an Oracle Database?". This "2020 "C-Edition" was first presented during the IOUG / Quest Forum Digital Event: Database & tech Week in June 2020 and subsequently updated based on feedback received.
Slides used in a presentation to introduce Google Apps Script and solve the problem of automatically creating new sheet for each user completing a form
Architects and Developers often go through lots of pain while loading external data into Salesforce during one-time deployments, as well as while copying data across different sandboxes and production environments. Google Apps Scripts presents an elegant solution to transform CSV data loaded within Google Sheets into appropriate formats required by the target org. Join us to learn to read data within Google Sheets, various mechanisms for transforming this data, and finally writing it to a target Sheet that can be loaded into Salesforce.
이성민 / Netflix - [특별 발표]<시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면">
"모든 엔지니어는 실패를 통해 성장하고 저 또한 그랬습니다.
제가 주니어 때 알았다면 좋았을 이야기들, 오늘 이 자리에서 나누어보고자 합니다."
영상: https://youtu.be/MXl_t1vjkyU
주최: https://www.facebook.com/groups/InfraEngineer
This presentation discusses the top 5 reasons as well as various technology updates to provide a reasonable answer to the rather common question: "Why should one use an Oracle Database?". This "2020 "C-Edition" was first presented during the IOUG / Quest Forum Digital Event: Database & tech Week in June 2020 and subsequently updated based on feedback received.
Accelerating Data Ingestion with Databricks AutoloaderDatabricks
Tracking which incoming files have been processed has always required thought and design when implementing an ETL framework. The Autoloader feature of Databricks looks to simplify this, taking away the pain of file watching and queue management. However, there can also be a lot of nuance and complexity in setting up Autoloader and managing the process of ingesting data using it. After implementing an automated data loading process in a major US CPMG, Simon has some lessons to share from the experience.
This session will run through the initial setup and configuration of Autoloader in a Microsoft Azure environment, looking at the components used and what is created behind the scenes. We’ll then look at some of the limitations of the feature, before walking through the process of overcoming these limitations. We will build out a practical example that tackles evolving schemas, applying transformations to your stream, extracting telemetry from the process and finally, how to merge the incoming data into a Delta table.
After this session you will be better equipped to use Autoloader in a data ingestion platform, simplifying your production workloads and accelerating the time to realise value in your data!
Apache Atlas provides metadata services and a centralized metadata repository for Hadoop platforms. It aims to enable data governance across structured and unstructured data through hierarchical taxonomies. Upcoming features include expanded dataset lineage tracking and integration with Apache Kafka and Ranger for dynamic access policy management. Challenges of big data management include scaling traditional tools to handle large volumes of entities and metadata, and Atlas addresses this through its decentralized and metadata-driven approach.
The document provides configuration instructions and guidelines for setting up streaming replication between a PostgreSQL master and standby server, including setting parameter values for wal_level, max_wal_senders, wal_keep_segments, creating a dedicated replication role, using pg_basebackup to initialize the standby, and various recovery target options to control the standby's behavior. It also discusses synchronous replication using replication slots and monitoring the replication process on both the master and standby servers.
This document provides a checklist for preparing applications and environments for continuous availability using Oracle Database services. Key steps include:
1. Using database services and configuring connection strings for high availability.
2. Enabling Fast Application Notification (FAN) to interrupt applications during failures.
3. Using recommended practices like connection pools, tests, and draining to gracefully complete work during planned maintenance without requiring application restarts.
Fault Tolerance in Spark: Lessons Learned from Production: Spark Summit East ...Spark Summit
Spark is by its nature very fault tolerant. However, faults, and application failures, can and do happen, in production at scale.
In this talk, we’ll discuss the nuts and bolts of fault tolerance in Spark.
We will begin with a brief overview of the sorts of fault tolerance offered, and lead into a deep dive of the internals of fault tolerance. This will include a discussion of Spark on YARN, scheduling, and resource allocation.
We will then spend some time on a case study and discussing some tools used to find and verify fault tolerance issues. Our case study comes from a customer who experienced an application outage that was root caused to a scheduler bug. We discuss the analysis we did to reach this conclusion and the work that we did to reproduce it locally. We highlight some of the techniques used to simulate faults and find bugs.
At the end, we’ll discuss some future directions for fault tolerance improvements in Spark, such as scheduler and checkpointing changes.
OWASP에 대응할 수 있는 애플리케이션/웹 보안 솔루션 앱스캔(AppScan)의 Source Editin에 대한 자료입니다.
App Scan Standard Edition에 대한 자료는 이쪽으로!
☞https://www.slideshare.net/eunoakcho/appscan-standard
Relational RDBMS : MySQL, PostgreSQL and SQL SERVERDalila Chouaya
This document compares and contrasts three popular open-source relational database management systems (RDBMS): MySQL, PostgreSQL, and Microsoft SQL Server. It discusses each RDBMS's supported data types, advantages, disadvantages, and best use cases. MySQL is noted as the most popular with strengths in speed and ease of use, while PostgreSQL focuses on compliance and extensibility. SQL Server is suited for large enterprise systems but has higher costs. The document provides an overview of key factors to consider when selecting an RDBMS.
Continuous Integration & Continuous Delivery with GCPKAI CHU CHUNG
quick introduction to CI & CD with Google cloud platform
- App Engine Development
- Devops: CI & CD (Docker, gitlab, GCP)
- Tips & Study information
repo: https://gitlab.com/cage1016/gae-flask
TensorFlow 是由 Google 所公布的開源機器學習平台,根據 Github 的數據統計,TensorFlow 成為2016年最受關注的十大開源專案之一。此次分享將介紹,如何在 NAS 上整合TensorFlow 及相關 Open source project,以展示幾種相關的資料分析應用。
Accelerating Data Ingestion with Databricks AutoloaderDatabricks
Tracking which incoming files have been processed has always required thought and design when implementing an ETL framework. The Autoloader feature of Databricks looks to simplify this, taking away the pain of file watching and queue management. However, there can also be a lot of nuance and complexity in setting up Autoloader and managing the process of ingesting data using it. After implementing an automated data loading process in a major US CPMG, Simon has some lessons to share from the experience.
This session will run through the initial setup and configuration of Autoloader in a Microsoft Azure environment, looking at the components used and what is created behind the scenes. We’ll then look at some of the limitations of the feature, before walking through the process of overcoming these limitations. We will build out a practical example that tackles evolving schemas, applying transformations to your stream, extracting telemetry from the process and finally, how to merge the incoming data into a Delta table.
After this session you will be better equipped to use Autoloader in a data ingestion platform, simplifying your production workloads and accelerating the time to realise value in your data!
Apache Atlas provides metadata services and a centralized metadata repository for Hadoop platforms. It aims to enable data governance across structured and unstructured data through hierarchical taxonomies. Upcoming features include expanded dataset lineage tracking and integration with Apache Kafka and Ranger for dynamic access policy management. Challenges of big data management include scaling traditional tools to handle large volumes of entities and metadata, and Atlas addresses this through its decentralized and metadata-driven approach.
The document provides configuration instructions and guidelines for setting up streaming replication between a PostgreSQL master and standby server, including setting parameter values for wal_level, max_wal_senders, wal_keep_segments, creating a dedicated replication role, using pg_basebackup to initialize the standby, and various recovery target options to control the standby's behavior. It also discusses synchronous replication using replication slots and monitoring the replication process on both the master and standby servers.
This document provides a checklist for preparing applications and environments for continuous availability using Oracle Database services. Key steps include:
1. Using database services and configuring connection strings for high availability.
2. Enabling Fast Application Notification (FAN) to interrupt applications during failures.
3. Using recommended practices like connection pools, tests, and draining to gracefully complete work during planned maintenance without requiring application restarts.
Fault Tolerance in Spark: Lessons Learned from Production: Spark Summit East ...Spark Summit
Spark is by its nature very fault tolerant. However, faults, and application failures, can and do happen, in production at scale.
In this talk, we’ll discuss the nuts and bolts of fault tolerance in Spark.
We will begin with a brief overview of the sorts of fault tolerance offered, and lead into a deep dive of the internals of fault tolerance. This will include a discussion of Spark on YARN, scheduling, and resource allocation.
We will then spend some time on a case study and discussing some tools used to find and verify fault tolerance issues. Our case study comes from a customer who experienced an application outage that was root caused to a scheduler bug. We discuss the analysis we did to reach this conclusion and the work that we did to reproduce it locally. We highlight some of the techniques used to simulate faults and find bugs.
At the end, we’ll discuss some future directions for fault tolerance improvements in Spark, such as scheduler and checkpointing changes.
OWASP에 대응할 수 있는 애플리케이션/웹 보안 솔루션 앱스캔(AppScan)의 Source Editin에 대한 자료입니다.
App Scan Standard Edition에 대한 자료는 이쪽으로!
☞https://www.slideshare.net/eunoakcho/appscan-standard
Relational RDBMS : MySQL, PostgreSQL and SQL SERVERDalila Chouaya
This document compares and contrasts three popular open-source relational database management systems (RDBMS): MySQL, PostgreSQL, and Microsoft SQL Server. It discusses each RDBMS's supported data types, advantages, disadvantages, and best use cases. MySQL is noted as the most popular with strengths in speed and ease of use, while PostgreSQL focuses on compliance and extensibility. SQL Server is suited for large enterprise systems but has higher costs. The document provides an overview of key factors to consider when selecting an RDBMS.
Continuous Integration & Continuous Delivery with GCPKAI CHU CHUNG
quick introduction to CI & CD with Google cloud platform
- App Engine Development
- Devops: CI & CD (Docker, gitlab, GCP)
- Tips & Study information
repo: https://gitlab.com/cage1016/gae-flask
TensorFlow 是由 Google 所公布的開源機器學習平台,根據 Github 的數據統計,TensorFlow 成為2016年最受關注的十大開源專案之一。此次分享將介紹,如何在 NAS 上整合TensorFlow 及相關 Open source project,以展示幾種相關的資料分析應用。
The document discusses a travel service called Waldo-GCP that is built on Google Cloud Platform. It uses various GCP services like App Engine, Cloud Datastore, Cloud Storage, and Managed VMs. Waypoints for optimal road trips are stored in Cloud Datastore and Cloud Storage. Managed VMs run Python and Node.js services for computing optimal routes and generating screenshots. The architecture includes App Engine modules for processing notifications from Cloud Storage buckets and dispatching tasks to Managed VMs.
The document discusses features for a travel planning application including generating optimal itineraries from uploaded points of interest, obtaining hotel recommendations near a given location, and retrieving information on nearby bicycle rentals during a trip. It also mentions capabilities for recording experiences during a trip and reviewing past journeys. The application aims to support travelers through the various stages of planning, experiencing, and reminiscing about a vacation.
Managed VMs allow users to run Docker containers on Google App Engine. This extends App Engine's capabilities by enabling the use of custom containers beyond the standard runtimes. With Managed VMs, users can build Docker images containing their applications and dependencies, deploy them to App Engine, and manage them similarly to how standard App Engine apps are deployed and managed. Traffic can be routed to apps running in both standard and custom Docker containers on Managed VMs modules through the use of a dispatch file.
The document summarizes the evolution of Google App Engine (GAE). It discusses how GAE started by supporting Python but now supports additional languages like Java and Go. It also describes how GAE has expanded its capabilities from only supporting frontend instances to also offering backend instances and managed virtual machines that allow users to run custom Docker containers on GAE. The document provides an overview of key GAE concepts and features like runtimes, APIs, and integration with services like Cloud Storage, Cloud SQL, and Cloud Datastore.
Django-oscar is an e-commerce framework for Django that allows any part of the core functionality to be customized. It has over 1,900 stars on GitHub and supports a variety of e-commerce features out of the box, including multiple product types, a large catalog, order processing, payments, shipping, and promotions. While the documentation is good, there are not many examples and customizing is slightly difficult. The framework is open source with over 150 contributors and has been used to support millions of products on live e-commerce sites.
Introduction to chrome extension developmentKAI CHU CHUNG
This document provides an introduction and overview of how to build Chrome extensions and apps. It covers what Chrome extensions are, the different types (browser actions, page actions, popups), how to build the extension structure and logic using manifest files, permissions, and communication between parts. It also recommends using Yeoman generators and build tools like Grunt to quickly set up and develop Chrome extensions and apps.
This document provides an introduction and overview of Google Apps Script:
- Google Apps Script is a scripting language based on JavaScript that allows you to customize Google Apps functionality.
- It can be used to build add-ons for Google Sheets, Docs, Forms, and more and access advanced Google services like Gmail, Drive, and Calendar.
- There are different types of scripts including standalone scripts, scripts bound to Google documents, and web apps.
- The document discusses example uses like a coffee map app and internationalization helper and provides resources for learning more about Apps Script.
This document summarizes a presentation about deploying millions of emails per hour using cloud-based CI/CD practices. It discusses using App Engine and SendGrid for email delivery infrastructure, integrating CI (continuous integration) and CD (continuous delivery) with tools like Gitlab, Cloud Source Repositories, and Stackdriver Debugger. It also provides a demo of these practices and learning resources for email deliverability best practices, SendGrid documentation, and GCP services like Cloud Source Repositories and Stackdriver Debugger.
Hackathon opening ceremony 2-5 minute lightning talk introducing Google Cloud tools that students can use for their hacks, whetting their appetites for a more detailed longer tech talk later.
This 2-3 minute presentation is meant to give univeresity hackathoners a brief, high-level overview of Google Cloud and its developer APIs with the purpose of inspiring students to consider these products for their hacks. A longer, more descriptive tech talk comes later.
The document discusses Google Cloud Platform services for data science and machine learning. It summarizes Google Cloud services for data collection, storage, processing, analysis and machine learning including Cloud Pub/Sub, Cloud Storage, Cloud Dataflow, Cloud Dataproc, Cloud Datalab, BigQuery, Cloud ML Engine and TensorFlow. It provides examples of using Cloud Dataflow to perform word count on text data and using TensorFlow for image classification. The document emphasizes that Google Cloud Platform allows users to focus on insights rather than administration through serverless architectures and access to machine learning capabilities.
Cloud computing overview & running your code on Google Cloudwesley chun
This is a half-hr tech talk designed for developers to give a comprehensive, vendor-agnostic overview of cloud computing, primarily targeting educators in the higher education market but is open to any developer. This is followed by an introduction to products in Google Cloud, focusing on the serverless products. The talk ends with several inspirational examples of what can be built with Google Cloud.
Jeff Scudder, Eric Bidelman
The number of APIs made available for Google products has exploded from a handful to a slew! Get
the big picture on what is possible with the APIs for everything from YouTube, to Spreadsheets, to
Search, to Translate. We'll go over a few tools to help you get started and the things these APIs share
in common. After this session picking up new Google APIs will be a snap.
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesTikal Knowledge
The document discusses Django, an open-source web framework for Python. It highlights how Django can shorten development time for web applications by automating common tasks. It provides examples of how Django handles data modeling, views, templates, and other features out of the box. The document also lists many successful websites built with Django that demonstrate its performance, scalability, and popularity in the developer community.
Google: Drive, Documents and Apps Script - How to work efficiently and happilyAlessandra Santi
The document discusses Google Drive, Documents, and Apps Script. It provides an overview of Google Drive as a container for saving, organizing, manipulating and sharing files. It also discusses working with Google Documents, including Docs, Sheets, Slides and Forms. The document then covers Apps Script, explaining that it can be used to automate jobs by writing scripts that interact with Google Workspace documents and spreadsheets. It provides examples of formatting cells, adding charts, and calculating profits using Apps Script.
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).
How Google AppEngine deals with digital art? how about music? a few case studies developed by Stinkdigital with Google Creative Lab and how App Engine dealt with a considerable amount of visits
Talk given at JavaOne 2009 discussing how to build web applications using OSGi. The source for the demo found at http://github.com/mrdon/jforum-plugins/tree/master
Session Abstract: Enterprise Web applications tend to grow like weeds in monolithic complexity. OSGi, although more often associated with Java™ technology-based clients and application servers, can bring a new level of modularity, uptime, and stability that is needed with today's always-on hosted Web applications. OSGi gets really interesting when the pretty architecture diagrams meet the real world, because it consists of various deployment platforms, development environments, and application architectures. This presentation, for Java 2 Platform, Enterprise Edition (J2EE™ platform)-savvy architects and senior developers, provides a practical guide to the Web on OSGi, from integration approach to bundle development, to real-world code you can use today.
The session discusses
• What benefits OSGi brings to the J2EE platform
• Three integration strategies
• How to use Spring DM and Maven to ease development
• Lessons learned from Atlassian's recent OSGi deployment
• A production-ready example to use immediately
Google Apps Script: Accessing G Suite & other Google services with JavaScriptwesley chun
This document provides an overview of Google Apps Script, including its capabilities, use cases, and coding examples. Some key points:
- Google Apps Script is a JavaScript runtime that allows automation of G Suite applications and integration with other Google and external services.
- It can be used to extend functionality within G Suite editors like Sheets, Docs and Slides through add-ons, or to build standalone web apps and microservices.
- Examples demonstrate how to access APIs to integrate with services like Google Maps, Gmail, Calendar and Natural Language, as well as build bots for Hangouts Chat.
- The document also shows how Apps Script can be used to "glue" together Google Cloud Platform
This document provides an overview of Google Cloud Platform (GCP) services. It discusses computing services like App Engine and Compute Engine for hosting applications. It covers storage options like Cloud Storage, Cloud Datastore and Cloud SQL. It also mentions big data services like BigQuery and machine learning services like Prediction API. The document provides brief descriptions of each service and highlights their key features. It includes code samples for using Prediction API to train a model and make predictions on new data.
How to build unified Batch & Streaming Pipelines with Apache Beam and DataflowDaniel Zivkovic
Apache Beam is a beautiful framework that blurs the line between Batch and Streaming, so check out this interactive tutorial by Patrick Lecuyer - Head of Specialist Customer Engineering at Google Canada. His examples run on GCP Dataflow, but what you'll learn will be portable across clouds, and distributed processing engines like Apache Flink, Apache Samza, Apache Spark, IBM Streams... regardless of where you do your Big Data processing!
The meetup recording with TOC for easy navigation is at https://youtu.be/7pUYKX40RfA.
P.S. For more interactive lectures like this, go to http://youtube.serverlesstoronto.org/ or sign up for our upcoming live events at https://www.meetup.com/Serverless-Toronto/events/
This document discusses Google Big Query User Defined Functions (UDFs). It explains that UDFs allow users to extend queries with JavaScript functions. UDFs can modify the schema and are run against each row. The document then provides details on the components of a UDF, including the emitter function, helper functions, and registration function. It also provides an example of how to test and use UDFs with Google Big Query.
Cloud computing overview & running your code on Google Cloud (Jun 2019)wesley chun
This is a 1-hr tech talk designed for developers to give a comprehensive, vendor-agnostic overview of cloud computing, primarily targeting educators in the higher education market but is open to any developer. This is followed by an introduction to products in Google Cloud, focusing on the serverless products. The talk ends with several inspirational examples of what can be built with Google Cloud.
Powerful Google Cloud tools for your hack (2020)wesley chun
You may know Google for search, YouTube, Android, Chrome, and Gmail, but did you know Google has many other cloud services? This session takes hackathon participants on a deeper dive from the opening ceremony lightning intro. In this comprehensive yet still high-level overview of Google Cloud tools & APIs with the purpose of inspiring students for their hacks. We'll look closely at our serverless platforms & machine learning APIs, tools that have an immediate impact on projects, alleviating the need to think about computing infrastructure as well as dispensing with the need to have machine learning expertise. We'll wrap up w/online resources like videos & hands-on tutorials to get you started so you'll know what to do with those Cloud credits you got from MLH!
Lucene and Solr provide a number of options for query parsing, and these are valuable tools for creating powerful search applications. This presentation given at the 2013 Lucene Revolution will review the role that advanced query parsing can play in building systems, including: Relevancy customization, taking input from user interface variables such as the position on a website or geographical indicators, which sources are to be searched and 3rd party data sources. Query parsing can also enhance data security. Best practices for building and maintaining complex query parsing rules will be discussed and illustrated. Chief Architect Paul Nelson provides this compelling presentation.
Search Technologies provides relevancy tuning services for Solr. For further information, see http://www.searchtechnologies.com/solr-lucene-relevancy.html
http://www.searchtechnologies.com
This document introduces the Query Processing Language (QPL) developed by Search Technologies to provide a more flexible and powerful way to construct search queries in Solr. Some key points:
- QPL is a domain-specific language built on Groovy that allows constructing complex queries through scripting rather than string manipulation.
- It includes Solr plugins that integrate QPL scripts into query parsing and search components to build queries programmatically and access Solr functionality.
- Examples show how QPL can tokenize queries, apply a thesaurus expansion, implement different relevancy operators, and execute embedded searches to enhance queries.
- QPL aims to provide a "4GL for text search query expressions" and
Devfest 2023 - Service Weaver Introduction - Taipei.pdfKAI CHU CHUNG
In modern software development, decentralized applications are increasingly common. Decentralized applications can split applications into multiple independent services, each service can be developed, deployed and managed independently.
Service Weaver is a decentralized application development framework provided by Google Cloud. It helps you develop, deploy and manage decentralized applications easily.
In this session, Google Cloud developer expert Kai-Chu Chung will introduce the basic concepts and usage of Service Weaver.
Cloud Workstations provides preconfigured, customizable, and secure managed development environments on Google Cloud. Cloud Workstations is accessible through a browser-based IDE, from multiple local code editors (such as IntelliJ IDEA Ultimate or VS Code), or through SSH. Instead of manually setting up development environments, you can create a workstation configuration specifying your environment in a reproducible way
The document describes building a custom Cloud Native Buildpack (CNB) that includes the jq command line JSON processor. It includes details on:
1. The structure of the jq-cnb buildpack with its buildpack.toml metadata file, bin/detect script, and bin/build script
2. Running a build with the jq-cnb which downloads jq, detects and builds the application, and exports the final image
3. The phases of the build including detect, analyze, restore, build, and export
COSCUP 2020 Google 技術 x 公共參與 x 開源 口罩地圖技術開源KAI CHU CHUNG
這次台灣在防疫的表現上是亮眼的,其中最早的科技防疫「口罩地圖」扮演了拋磚引玉的作用,透過 Google Map 的結合,讓許多民眾可以很容易的找尋口罩物資,之後行政院也拍板釋出口罩存量的 open data,讓整個開放社群有更多資訊力量的投入。
介紹第一版「超商口罩地圖」的起源和概念,與第二版「藥局口罩地圖」的團隊組組成與技術應用,第二版口罩地圖是兩位 GDE 與三位 GDG organizer 的協同作業,在短短一個晚上時間內,使用 Google 雲端服務,做好能夠扛載第一天 80 萬次數的使用量。
GDG Cloud Taipei meetup #50 - Build go kit microservices at kubernetes with ...KAI CHU CHUNG
Gokit is microservice tookit and use Service/Endpoint/Transport to strict separation of concerns design. This talk to use go-kit develop microservice application integrate with istio, jaeger prometheus, etc service and deploy on Kubernetes.
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeKAI CHU CHUNG
Gokit is microservice tookit and use Service/Endpoint/Transport to strict separation of concerns design. This talk to use go-kit develop microservice application integrate with consul, zipkin, prometheus, etc service and deploy on Kubernetes.
Global GDG Leaders Summit, Google I/O 2018 經驗分享KAI CHU CHUNG
This document summarizes Cage Chung's experience sharing about Google I/O 2018. It provides details about the 3-day event, including 27 meetups, 163 sessions, and over 7,000 attendees. It lists the different sandboxes and sessions available, including those related to Google Cloud, Android, AR/VR, and machine learning. It also shares tips for transportation, accommodation, shopping, and bringing gifts from the event.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
HijackLoader Evolution: Interactive Process HollowingDonato Onofri
CrowdStrike researchers have identified a HijackLoader (aka IDAT Loader) sample that employs sophisticated evasion techniques to enhance the complexity of the threat. HijackLoader, an increasingly popular tool among adversaries for deploying additional payloads and tooling, continues to evolve as its developers experiment and enhance its capabilities.
In their analysis of a recent HijackLoader sample, CrowdStrike researchers discovered new techniques designed to increase the defense evasion capabilities of the loader. The malware developer used a standard process hollowing technique coupled with an additional trigger that was activated by the parent process writing to a pipe. This new approach, called "Interactive Process Hollowing", has the potential to make defense evasion stealthier.
Ready to Unlock the Power of Blockchain!Toptal Tech
Imagine a world where data flows freely, yet remains secure. A world where trust is built into the fabric of every transaction. This is the promise of blockchain, a revolutionary technology poised to reshape our digital landscape.
Toptal Tech is at the forefront of this innovation, connecting you with the brightest minds in blockchain development. Together, we can unlock the potential of this transformative technology, building a future of transparency, security, and endless possibilities.
12. Type of Scripts - Standalone
Standalone
is any script that is not bound to a Google Sheets, Docs, or Forms file
or Google Sites.
// Log the name of every file in the user's Drive that modified after February 28,
// 2013 whose name contains "untitled".
function doAction(){
var files = DriveApp.searchFiles(
'modifiedDate > "2015-01-01" and title contains "untitled"');
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
}
}
[iOS Taipei - Apps Script - Type of Scripts - Standalone](https://goo.gl/oj8WVO)
13. Bound to Google Apps
A script is bound to a Google Sheets, Docs, or Forms file.
Type of Scripts - Bound to Google Apps
function doAction(range) {
// Get the active spreadsheet and the active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
// Get the range of cells that store employee data.
var libraryDataRange = sheet.getRange(range);
var libraryObjects = getRowsData(sheet, libraryDataRange, 1);
libraryObjects.forEach(function (row, index) {
var latlng = getLatitudeLongitude(row.address)
if (latlng) {
sheet.getRange(index + 2, 5, 1, 1).setValue(latlng.lat);
sheet.getRange(index + 2, 6, 1, 1).setValue(latlng.lng);
}
});
}
14. Type of Scripts - Bound to Google Apps. continue
[coffeemap-testing-form - Google Sheets](https://goo.gl/ZAIOtT)
[coffeemap](https://goo.gl/Wb91tW) quick setup form
[Coffee Stores Map](https://goo.gl/Wg6mWu)
Trigger and Events
Triggers let Apps Script run a function automatically when a certain
event, like opening a document, occurs.
15. Web Apps and Site Gadgets
If you build a user interface for a script, you can publish the script as a
web app.
◎ It contains a doGet(e) and doPost(e) function.
◎ The function returns an HTML service HtmlOutput object or
a Content service TextOutput object.
Type of Scripts - Web Apps and Site Gadgets
16. Type of Scripts - Web Apps and Site Gadgets. continue
function doGet() {
var ss = SpreadsheetApp.openById('1QgsaX4Vn_lIwLFRC_iHs6gmJYIP4y-35nVqQOpz4B0s');
var sheet = ss.getSheets()[0];
// Get the range of cells that store employee data.
var employeeDataRange = ss.getRangeByName("employeeData");
// For every row of employee data, generate an employee object.
var employeeObjects = getRowsData(sheet, employeeDataRange);
return ContentService.createTextOutput(JSON.stringify(employeeObjects)).setMimeType(ContentService.
MimeType.JSON);
}
...
[iOS Taipei - employee Data](https://goo.gl/NpdIrQ)
$ curl -L https://script.google.com/macros/s/AKfycbz4Z2dm-MUidB98H5XbekL0LZnvPVRM3ekpG-NSrScc9tvI87A/exec
[{"level":1,"id":"A00","parent":"root","type":"D","title":"資訊研發處","email":"A00@aa.bb.cc"},{"level":2,"
id":"A10","parent":"A00","type":"D","title":"資訊研發部","email":"A10@aa.bb.cc"},{"level":3,"id":"SunnyHu","
parent":"A10","type":"U","title":"胡適 ...
23. orgtree-example-data
Level ID Parent Type * Title Email
1 A00 root D 資訊研發處 A00@aa.bb.cc
2 A10 A00 D 資訊研發部 A10@aa.bb.cc
3 SunnyHu A10 U 胡適 hushi@aa.bb.cc
3 SimonSu A10 U 蘇武 suwu@aa.bb.cc
2 EthanChang A00 U 張三 zhangshang@aa.bb.cc
1 B00 root D 技術支援處 B00@aa.bb.cc
2 BensonChen B00 U 陳班森 bensonchen@aa.bb.cc
[orgtree - sheet 2 json](https://goo.gl/WmaHmG)
24. Apps Script
function getSheetJSON(sheetId) {
var ss = SpreadsheetApp.openById(sheetId);
var sheets = ss.getSheets();
var json = sheets.map(function(sheet) {
return convertSheet2JsonText(sheet);
});
return JSON.stringify(json);
}
function convertSheet2JsonText(sheet) {
// read spreadsheet value to array
...
return jsonArray;
}
25. Apps Script - continue
◎ Files/Project properties/scopes - https://www.
googleapis.com/auth/spreadsheets
◎ Resources/Developers Console Project -
Link Google Console Project
○ Google Apps Script Execution API - Register OAuth
2.0 client IDs required.
26. Google Apps Script Execution API
/**
* Google apps script ID
*/
const SCRIPTID = 'M6_REvtEnxTdstkFPTpMBrkRmolM6jgKW';
/**
* Google apps script function name
*/
const EXECUTE_FUNCTION = 'getSheetJSON';
fetch(`https://script.googleapis.com/v1/scripts/${CONSTANTS.SCRIPTID}:run`, {
method: 'post',
headers: {
Authorization: 'Bearer ' + oauth.token,
},
body: JSON.stringify({
function: CONSTANTS.EXECUTE_FUNCTION,
parameters: [sheet.id],
devMode: true,
}),
})
.then(response => response.json())
.then(json => dispatch(receiveSheet(sheet, json)));
27. benefit
◎ No database management
◎ Each user can have their own orgree data in
private spreadsheet (grant oauth)
31. employee App - outline
◎ Data in Spreadsheet setup
◎ Content Service (JSON) - App Script
◎ iOS - calling restful API (react native)
32. employee spreadsheet Data
Level ID Parent Type * Title Email
1 A00 root D 資訊研發處 A00@aa.bb.cc
2 A10 A00 D 資訊研發部 A10@aa.bb.cc
3 SunnyHu A10 U 胡適 hushi@aa.bb.cc
3 SimonSu A10 U 蘇武 suwu@aa.bb.cc
2 EthanChang A00 U 張三 zhangshang@aa.bb.cc
1 B00 root D 技術支援處 B00@aa.bb.cc
2 BensonChen B00 U 陳班森 bensonchen@gov.tw
[iOS Taipei - employee Data - Google Sheets](https://goo.
gl/A1Hdqd)
33. Content Service (JSON) App Script
function doGet() {
var ss = SpreadsheetApp.openById('1QgsaX4Vn_lIwLFRC_iHs6gmJYIP4y-35nVqQOpz4B0s');
var sheet = ss.getSheets()[0];
// Get the range of cells that store employee data.
var employeeDataRange = ss.getRangeByName("employeeData");
// For every row of employee data, generate an employee object.
var employeeObjects = getRowsData(sheet, employeeDataRange);
return ContentService.createTextOutput(JSON.stringify(employeeObjects)).setMimeType(ContentService.
MimeType.JSON);
}
...
Read specific spreadsheet content
and return JSON string
[iOS Taipei - employee Data](https://goo.gl/NpdIrQ)
38. Let’s review some concepts
Content Service
Google Apps Script support
ContentService that allows for
data to be served from
Spreadsheet with your logic
Simple backend
store your data in Google
Spreadsheet without build another
database for small project
40. “
Google Apps Script function not
found: doGet.
You need to save a new version and publish
the new version to make sure your app gets
updated properly
File -> Manage versions...
[javascript - Google Apps Script function not found: doGet - Stack Overflow](http://goo.gl/CXxAOT)
41. “
[Script It! with Android - YouTube](https://www.youtube.com/watch?v=RSgMEtRl0sw&list=PL68F511F6E3C122EB)
42. Study information
◎ [Google apps script - simon su](http://www.slideshare.
net/peihsinsu/google-apps-script-24469585)
◎ [entaq/GoogleAppsScript](https://github.com/entaq/GoogleAppsScript)
○ [Script It! with Android - YouTube](https://www.youtube.com/watch?
v=RSgMEtRl0sw&list=PL68F511F6E3C122EB)
○ [Apps Script Crash Course: ContentService - YouTube](https://www.
youtube.com/watch?v=JRGzVdliQOQ&list=PL68F511F6E3C122EB)
◎ [Apps Script | Google Developers](https://developers.google.com/apps-
script/)
◎ [Google Apps Script 入門與應用 - 資訊學科中心](http://icerc.tnssh.tn.edu.
tw/download/rs/1030429_3.pdf)
43. Study information - examples
◎ [Generate EPUB file with Google Apps Scripts | blog.softapalvelin.com](http:
//blog.softapalvelin.com/2013/02/generate-epub-file-with-google-app.html)
○ [RSSToEPUB](https://goo.gl/YCDDBo)
◎ [google/google-apps-script-samples](https://github.com/google/google-
apps-script-samples)
◎ [Tutorials | Apps Script | Google Developers](https://developers.google.
com/apps-script/articles)
◎ [Parsing HTML - Google Apps Script Examples](https://sites.google.
com/site/scriptsexamples/learn-by-example/parsing-html)