Profile cover photo
Profile photo
Azadi Saryev
IT Specialist [in all styles]
IT Specialist [in all styles]

Azadi's posts

Post has attachment
Google Play Store and Android apps are now available on Asus C300 Chromebooks (on dev channel only for now). 

K-5 student Google Apps accounts - what are your policies/requirements regarding student profile photos?

Do you allow students to set their own? Have admins set official school photo as profile pic? Restrict use of real photos and require a generic image instead?

Looking to get a feel for what others are doing.


Post has attachment
Hehe. Very clever.

Post has attachment
Added photos to EdTechTeam Singapore Summit featuring Future Ready and Google for Education.

Post has attachment

Post has shared content
I recently tested a small JS library for handling the recording and download of audio files in Chrome and it uses an HTML web "Worker," which fails in Apps Script due to cross domain issues (it seems a Worker js file needs to live on a path relative to the current page).

Everything else seems to work -- e.g. access to Chrome's audio recording methods, etc... except the "Worker" portion of this library.

I want to build this in Apps Script so the audio files can be easily stored and hosted on the user's Drive and integrated with Add-ons.

Any ideas on how to work around this?

I tried:

1) Remotely hosting the worker.js file in Drive (failed due to cross-site issues)

2) Hosting the worker.js on as a content service (still failed, due to same reason)

Post has attachment
Great news for HTMLService!
Not so good news for UiApp and DocsList… If you have scripts using those two services, you better start rewriting them. 

Post has attachment
Bulk Renamer for Google Drive™

I have recently polished off and published my Bulk Renamer web app. Will very much appreciate if you could take it for a quick spin when you have a minute, and give some feedback!

Bulk Renamer is a web application written in Google Apps Script that can help you rename multiple files in a selected folder. You can choose between simple find/replace and advanced rename (adding prefix/suffix to file names) and select various options for renaming. Could be handy in those cases when you need to rename lots of files and would rather not sync them to desktop to use OS-specific tools to rename them.

The app is available in Chrome Web Store at or can be directly accessed at 

If you do not have any files to test the app with in your Drive, I have shared 2 folders that you can copy to your Drive. (all files in the folders are 0 bytes in size and won't take up any space in Drive):
200 files:
500 files: (for some reason web view of this folder reports it having, and shows, only 500 files while the folder actually contains 1000 files...)

Will very much appreciate your feedback!

On the heels of my previous post (, another question about exception handling in general and +Bruce Mcpherson 's rateLimitExpBackoff() function specifically:

How would one internationalize exception handling?  To my understanding, Apps Script exceptions are displayed in the language of the user executing the script.  [Not sure about published GAS-based web apps - will it be language of active of effective user? Does anyone know?]  So how can one account for all possible wordings of exceptions in all different languages? As far as I can see, Google does not include any exception number in the messages, so there is no way to know that a thrown exception is "User rate limit exceeded", for example, if the wording is not in English language.

Is there some resource available that lists all GAS exceptions in all languages? That could be a start...

+Bruce Mcpherson  - your wonderful rateLimitExpBackoff() function started throwing "User rate limit exceeded" error for me today...
Looks like Google has changed the wording of exception message from "Rate limit exceeded" to "User rate limit exceeded". Adding "Exception: User rate limit exceeded" to errors array in errorQualifies() function did solve the issue. Time to update rateLimitExpBackoff() code?
Wait while more posts are being loaded