Desktop Liberation aims to help you use cloud based APIS and services without being constrained by your desktop software. There's a particular emphasis on Google Workspace and Cloud APIs and JavaScript, but there's also plenty of Microsoft and other stuff here too. All code here is unprotected and free to re-use

To support my site, and if you find the material useful, you can buy my Google Apps Script and VBA titles published by O'Reilly media and Manning publications.

Most Recent Articles

apps script fake services on node

Apps Script environment on Node – more services

This is version 1.0.2 of A proof of concept implementation of Apps Script Environment on Node with to which I've added more Apps Script services, notably the Cache and Property services. Getting started Remains more or less the same as before - see A proof of concept implementation of Apps Script Environment on Node as well as the docs on github. gasfakes.json There is now a settings files to give you more flexibility in support file locations, including the cache and property files. It will create a default one if it doesn't exist. propertydefaultdescriptionmanifest./appsscript.jsonthe manifest path and name relative to your main moduleclasp ./clasp.jsonwhere to look for an optional clasp filedocumentIdnullan optional bound document id. This will allow testing of container bound script. The documentId will become your activeDocument (for the appropriate service)cache/tmp/gas-fakes/cache gas-fakes uses a local file to emulate apps script's CacheService. This is the folder in which it ...
errors unit testing

Unit test runner for both Node and Apps Script

I've added some new features to my Node/Apps Script, not least to fully document the API, but also to include the capability of reproducing the tested code in the summary results. I'm pretty pleased with the result, so I'm sharing some highlights here ...
code locator

Report current running Node and Apps Script code

Find currently (or further up the call stack) executing code, and retrieve and report on that code at line. Works on both Node and Google Apps Script ...
fake google apps script services

A proof of concept implementation of Apps Script Environment on Node

I use clasp/vscode to develop Google Apps Script (GAS) applications, but when using GAS native services, there's way too much back and fowards to the GAS IDE going on while testing. I set myself the ambition of implementing fake version of the GAS runtime environment on Node so I could ...
use the same test runner scripts on both node and Apps Script

Apps Script test runner library ported to Node

Normally I write about porting from Node to Apps Script, but today, we're going in the opposite direction. If you use my Simple but powerful Apps Script Unit Test library you may have noticed a few recent articles on updates to that to make it look a little more like ...
unit tester updat

Apps Script Unit tester now with ava style option

A few years I created a test runner for Apps Script and I've been using that ever since. However I've been using the rather wonderful ava for testing on Node for a while now. I figured it was about time to revise my GAS unit tester so I could minimize ...
waiting for tests to be resolved simultaneosly minimal sketchy cool tones

Apps Script Unit tester now supports promises

Apps Script supports Promises and await/async syntax. This is handy, because it makes it more feasible to share code with Node with minimal fiddling. It does not support generators but there is a workaround. See Paging large data sets and how to make Apps Script understand generators for more detail ...
gassypedia jan 2025

Gassypedia – January 2025 update

Time for the first, more or less quarterly, update on the shared bigquery dataset all about the Apps Script ecosystem on Github, with reports available on looker. For details of how it all works see Gassypedia – public Google Apps Script on Github. Note that this article is based only ...
emits , listens waits for and handles cool tones illustration

An event emitter for Apps Script

If you use Node or do any front end development you're probably already familiar with the idea of event emitters. You've assigned listeners handlers for interesting events that occur within your app. You most usually asociate event emitters with asynchronous events. For example, when a user clicks a mouse, an ...
managing gemini files

Manage Gemini uploads, schemas and prompts

I have thousands of pdf documents to analyze using Gemini - they are currently on Cloud storage. I've been playing around with prompts to get the structured output I'm looking for and I quickly found needed a way to easily upload and manage them to Gemini, and repeatedly fiddle around ...
developer scratching head over auth choices

Application Default Credentials with Google Cloud and Workspace APIs

Authentication and Authorization are probably the most confusing aspects of working with APIS. There are so many different options that it's hard to pick which one to use, and the examples and documentation often refer to one of the ways you haven't picked. It takes a lot of effort before ...
chunker and bulker

Paging large data sets and how to make Apps Script understand generators

We're all used to dealing with iterables such as Arrays, Maps and Sets. Creating a collection of input items, transforming then outputting is what we do all the time. However, sometimes that's not possible - for example, where we have a potentially large input data set of unknown size that ...
color strip deduplication

Color Vector embeddings vs Video Intelligence API labelling

In Making a film color DNA I described how I was using both color strips and labelled content to find videos that were duplicates or similar. I'm already using ElasticSearch to disambiguate films using labels and object tracking artefacts identified by the Google Video Intelligence API. The next step is ...
october 24 gassypedia

Gassypedia – October 2024 update

Time for an occassional update on the shared bigquery dataset all about the Apps Script ecosystem on Github, with reports available on looker. For details of how it all works see Gassypedia – public Google Apps Script on Github. Bear in mind that we are just looking at Apps Script ...
sharing files

Sharing content – not files – with Apps Script

My objective for a project I'm working on was to find a secure and simple way to publish ephemeral content without actually sharing files or hosting it anywhere. I'm not going to lie - this has been a super difficult problem to solve. Here's the Apps Script library I came ...

Or select a Tag in the below cloud

Your browser doesn't support the HTML5 CANVAS tag.

My YouTube Channel

My Publications

  • Going GAS Video

    Going GAS Video

    An accelerated video course over about 8 hours and 70 lessons taking you through JavaScript and Apps Script from start to finish. [...]
  • Going GAS Book

    Going GAS Book

    For those who prefer book and eBook formats, a 450+ page deep dive into Apps Script. Especially useful for those transitioning from another platform. [...]
  • Live Project

    Live Project

    Create, Implement and test a AI Powered Google Workspace Add-Ons. add functionality from a collection of Google Cloud APIs such as Cloud Storage, CardService, Drive and others [...]

Google developers expert program

The Google Developers Experts (GDE) Program is a community of outstanding professionals, developers, and thought leaders. Experts share their expertise and passion with other developers and tech communities.

My GDE profile - member since 2014

Support my research and site

Discover More Content

The most geeky things

  • Using promises in JavaScript and other languages is the preferred way to orchestrate the completion of asynchronous activities. Here’s a (not perfect but fun) Promise implementation in VBA. Example includes getting data from Google Fusion [...]
  • A whole bunch of front end platform libraries that go together really well, but that are hard to grasp and get started with. Here’s a bunch of snippets to help show how all these things [...]
  • The mathematics of color is a complex and interesting topic. Here you’ll find Google Apps Script, VBA and javascript examples of color manipulation including finding the closest match to a given color in a defined [...]
  • Automating document ,creating Google Visualization and static tables of VBA projects, serialize instances of VBA classes and generating Google Apps Script skeleton of VBA projects. […] Share with your network