Sunday, February 14, 2021

Developing apps for airtable using Airtable Blocks

The airtable smart sheets now has an app platform called Airtable Blocks, which allows developers to add custom code, and build apps quickly. 

For example, one cool demo is quickly create Google Street view for real estate housing addresses. This could be useful for real estate agents to quickly present a view of the listing to prospective buyers. Perfect for COVID virtual tours.

See the platform manager, engineer explain Airtable Blocks.

You can also fork existing apps by using the Remix functionality, to quickly build on top of sample apps.

Monday, January 18, 2021

Debug Google Cloud Error - Failed to enable API please make sure you have the IAM permission to enable API

 If you are not expecting this message,  and think you have the permission to enable API read on. Before using Google Cloud services, generally we will have to enable the API by searching for it and toggle enable. This is great for permission and cost management. 

Failed to enable API please make sure you have the IAM permission to enable API

If you have the right permissions but still run into this issue, these problems could be the culprit:

  • Your account does not have billing enabled yet. Set up billing. And often Google offers a generous free quota or trial. This may change though.
  • Select the right project to work on. Double check top left of the Cloud console shows the project you are expecting.
  • Your access needs to be owner role or have the ability to create resources.
  • You can check this in the IAM dashboard. 

Friday, January 8, 2021

Modern JavaScript ECMAScript ES6

 ES6, modern JavaScript in year 2020 and 2021, is short for ECMAScript version 6. It is pronounced Ehk, Ma, Script 6. It is a standard, spec drafted by an European consortium for web technology and advancement, by convention. Developers call modern javascript ES6 to distinguish from the old ways, and signal that new conventions are involved: arrow function, and semicolons are optional. One can write a book on ES6. This blog post focuses on getting started quickly, with the basics, know just enough to be effective.

undefined : refers to the variable exists but is not defined yet.

null : exists and hasn't been explicitly set.

primitive type : means there's no method attached to it the data type. Not to be confused with the objects that usually work on primitive types. A good example of primitive type is booleans true false. There's no distinguishing float vs int just number - the unified type for all numbers. Every thing is a double 64 bits.

Implication of the number type is, there are only 64 bits so large numbers don't fit. Can use exponent notation as work around. No float also means not accurate in calculation, no floating point precision. 

promise : is a first class citizen, is native to modern javascript. It is the new pattern to use, instead of callbacks (event driven, could result in callback hell, code can be unorganized,indented). A great use case is to retrieve data from APIs. Promise is an object.

let promise = myfunction(request)

Instead to get a callback, ask the function for a promise.

You might also seen fetch() being used, but that's also the slightly older way. fetch() is native to javascript and supports promise. 

Promise can have states, status PENDING, FULFILLED (successfully resolved), REJECTED (error). Can check the promise object for states.                

Instead of constantly checking the status, we can use then() and catch() in conjunction with promise to handle next steps. 

then() accepts a function as input. Will call the function when the promise preceding it is fulfilled. 

Callbacks : the old event driven way could cause nested, or long sequence code, or a callback calling another callback, hard to manage, read, not sustainable. 

var variableName : var is familiar syntax, if omitted var then a global variable is created.  If you haven't given the variable a value at declaration, it will be undefined. If the system has to make a placeholder, the initial value is null. 

Eventloop :  The javascript event loop constantly check if the stack is empty, if yes, it will check if there's anything on the queue to be put on the stack.

Date :  new Date() generate the current date time stamp. 

Return default disable automatic browser behavior like event propagation, prevent default

Commonly used JavaScript functions:

vanilla javascript functions 





charAt opposite of indexof

ES6 include template strings

Monday, December 28, 2020

Access Denied: Project User does not have permission in project If you didn’t select a project or selected the public project

This error message appears when you try to query or create new datasets when no project has been selected. You must query and select data within a project.

A similar error message.

Access Denied: Project bigquery-public-data: User does not have bigquery.datasets.create permission in project bigquery-public-data.

if you accidentally try to query while browsing BigQuery public data.

 If you try to create a database in google bigquery public data you may also run into this issue. 

Error getting document: SyntaxError: Unexpected token u in JSON at position

 This happens when calling JSON.parse() on undefined. JSON.parse(undefined). The first token is u. That's what it mean by token u.

Sunday, December 13, 2020

Data Science Machine Learning Bootcamp series on Youtube! Starting this month

 Learn machine learning 2021, make that your exciting new year resolution.

Introducing the Youtube Data Science Bootcamp video tutorial series. 

Watch the trailer here:

Subscribe to the playlist here on youtube or visit us on

Friday, December 11, 2020

Postman for API design and API testing

Postman recently became a popular library used to design and test APIs, web apps, web products, startup products and data, machine learning products. Practically modern tech is all about web API calls.

 Postman API suites in its own words 

Use Postman Collections to keep your API requests and elements organized, to document APIs, for automated testing, and for lots more.

    Learn more about collection

Comment: collections is a great way to organize your API requests, put them into folders. This is very useful for data scientists and machine learning practitioners. 

Postman API Builder helps you define, develop, test, monitor, and manage your APIs faster. 

    Learn more about Postman API builder here.

Postman's mock servers simplify API design and planning, support split-stack development, and let you see exactly how your API will run — even before it's in production.

    Learn more about Postman API mock API here.

Postman API Monitoring allows you to review your API responses, availability, and performance with each run so you can ensure that your API is always healthy.

    Learn more about Postman API monitoring here

Developing apps for airtable using Airtable Blocks

The airtable smart sheets now has an app platform called Airtable Blocks, which allows developers to add custom code, and build apps quickly...