2014 has been an eventful year for Google Apps Script with some great new capabilities arriving (add-ons), as well some useful ones (ScriptDB) being deprecated. In this post I'll cover my highlights and lowlights of the Apps Script year, and would love to have your opinions on
* did I miss anything significant this year, and do you agree with my comments?
* what do you think the best thing that happened this year in Apps Script?
* .. and the worst ?
* what an 'apps script bucket list' should contain.
A while back, Android added the ability for some of its notifications to be directly acted upon from the notification shade, such as archiving a Gmail message. More recently, this same functionality came to Android Wear.
"If you like to deploy your GAS project with command line tools, you can check the tool, gdcmdtools. It supports the GAS project import and export. After that you can manage your GAS project easily with version control system(ex: git)."
Today, we are introducing an update to HTML service — IFRAME sandbox mode. Using this sandbox mode, you can significantly improve the performance. There are three key benefits.
1. Your UI loads up much faster
3. It requires very few code changes: just set the SandboxMode to IFRAME:
Martin Hawksey's insight:
Post also notes UI and DocsList service is deprecated.
"For a few of my answers on Web Applications, I’m constantly busy finding a solution to retrieve all information via the GmailApp.search() method. As explained in the text, this method is only usable for small amounts of threads. If you query a label containing 1000 emails for example, you will only get 500 items back.
In the meantime, Bruce McPherson, was hitting the road with his awesome posts, starting with the Running things in parallel using HTML service. ... made me think of a way to incorporate some sort of while loop. Basically, I'm re-starting the script to continue working on retrieving the information untill all information is fetched. Read below to find out how I did that""
"When developing Database abstraction with google apps script I had real trouble simulating multiuser interactions, especially when there wasn't a real database behind (like sheets and drive). I had a mechanism in Using named locks with Google Apps Scripts to be able to lock from updating, but it was really hard to get a good multiuser test going.
Using this parallel running mechanism is of course perfect - since it executes as many threads as I want in parallel with each other. If I get then all to hit the same back end at once, then I have a pretty intensive multi user test. "
You can imagine the scenario, you’ve got a Google Form perhaps setup as a booking form and a select option for picking timeslots. As the slots fill up you’d like the option to be removed. I was surprised not to find an example of this so here is a rough sketch of some code that might do the job.
"If you are new to Google Apps script this post will give you the information you need to get started. Writing a Google Apps Script can be an intimidating process for those who have not done programming before so be patient and take your time getting comfortable with this incredible tool for educators."
"Release notes for update to Apps Script DbAbstraction libraries.
Lots of changes - a brief summary of the highlights.. * transactions now implemented, with rollback for selected drivers * a new driver - scratchDB - this is a transient database that sticks around for as long as you use it, otherwise it cleans itself away * updates to Orchestrate to be able to same complex queries as other back ends"
"You are probably familiar with the Google Apps Script Lock Service, which is a way of preventing concurrent access to sections of code. It works well, but the problem is that it's a fairly blunt instrument.
Let's say that you want to use the same code to deal with multiple resources - say a spreadsheet tab. With lock service you'd lock all spreadsheet tabs that were accessed by that code. This is especially a problem if you are using shared libraries which may be accessed by many people accessing many resources."
"In Flattening an object with dot syntax I showed how to take a an object of more than 1 level deep and flatten it so it could be represented in a two dimensional object like a spreadsheet. Now here's the opposite, unflattening an object created that way. I also provide a library you can use for flattening and unflattening, as well as processing objects to and from spreadsheets"
"ScriptDB was officially shut down on November 20th, but we decided to wait until after Thanksgiving to pull the plug. We're going to start by making the service read-only tomorrow, perhaps for a couple of hours to start but eventually permanently. This should help ferret out any places you are still using the service and give you time to export your data" - Eric Koleda – Google+
"The integration to Virtual PBX is a custom gateway designed to harvest PBX call data logs and filter them based on calls associated with reservations extensions. I used Google Apps Script to automate the update of call data in near-real-time despite the fact that a formal API is not available from this PBX provider.
The data is stored into a 13 column spreadsheet capable of handling approximately 25,000 calls per month with a ceiling of about two years worth of data. All processes and integration with Virtual PBX is handled by Google Apps Scripts (GAS) and available as an installable service"
Martin Hawksey's insight:
Bill French, Founder and Editor at iPadCTO outlines how they use Google Apps Script for custom data collection and reporting
Sharing your scoops to your social media accounts is a must to distribute your curated content. Not only will it drive traffic and leads through your content, but it will help show your expertise with your followers.
How to integrate my topics' content to my website?
Integrating your curated content to your website or blog will allow you to increase your website visitors’ engagement, boost SEO and acquire new visitors. By redirecting your social media traffic to your website, Scoop.it will also help you generate more qualified traffic and leads from your curation work.
Distributing your curated content through a newsletter is a great way to nurture and engage your email subscribers will developing your traffic and visibility.
Creating engaging newsletters with your curated content is really easy.