Category Archives: Google

Build a Google Firebase Web Application (Coursera)

I want to improve my Firebase skills, so I’ve started the Build a Google Firebase Web Application course on Coursera.

I’ve had to fix a problem halfway through – the instructor’s video shows one link in Firebase to “Database”, but the current version of Firebase splits the options into two – “Firestore Database” and “Realtime Database”.

Worse yet, the firebaseConfig object automatically created when setting up the project does not include a databaseURL property needed by firebase.initializeApp(firebaseConfig), causing the script to throw an error when run:

[2022-04-30T17:23:35.218Z]  @firebase/database: FIREBASE FATAL ERROR: Can't determine Firebase Database URL.  Be sure to include databaseURL option when calling firebase.initializeApp().

I was able to figure out the problem – copy the URL from the Realtime Database page in the Firebase console:
https://<PROJECT_NAME>-default-rtdb.firebaseio.com/

I then added it to the firebaseConfig object:

const firebaseConfig = {
  apiKey: "AIza...",
  authDomain: "<PROJECT_NAME>.firebaseapp.com",
  projectId: "<PROJECT_NAME>",
  storageBucket: "<PROJECT_NAME>.appspot.com",
  messagingSenderId: "12########06",
  appId: "1:12########06:web:84******************db",
  measurementId: "G-*********H",
  databaseURL: "https://<PROJECT_NAME>-default-rtdb.firebaseio.com/"
};

I then re-ran the script, and the database populated with the first test records. Woo-hoo!

Android development Guided Projects on Coursera

I’ve been working for Google for 3 1/2 years, but I’ve never done any Android development.

One of my work development goals this year is to build a mobile app using the Maps SDK for Android. I’m not challenging myself to build an app from scratch, because I’m not that interested in mobile app development. I just intend to build an app and extend it a little bit.

Happily, Coursera.org has a series of short Guided Projects on Android app building. These look like they’ll be just what I need to get some understanding of Android app development:

Projects in Series 1:

  1. Build a Simple App in Android Studio with Java
  2. Build a Persistent Storage App in Android Studio
  3. Build a Linear Layout App in Android Studio
  4. Build a Relative Layout App in Android Studio
  5. Build a Table Layout App in Android Studio

Projects in Series 2:

  1. Build an App in Android Studio using Resources
  2. Build an App in Android Studio using Static Files
  3. Build an App in Android Studio using Read – Write
  4. Build an App in Android Studio using onTouch
  5. Build an App in Android Studio using Activities

Projects in Series 3:

  1. Access CSV in an Android Studio Project
  2. Access SQLite in an Android Studio Project
  3. Access WebView in an Android Studio Project
  4. Access NFC in an Android Studio Project
  5. Access Maps in an Android Studio Project

There are a couple more Guided Projects outside this sequence that also look interesting:

Google Cloud Fundamentals Course

I’ve started working on Google Cloud’s Application development learning path, starting with the Google Cloud Fundamentals: Core Infrastructure course.

Going through the course on www.cloudskillsboost.google is a bit clunky – each lesson starts with the Slides document, followed by a series of videos presented by a Googler (Google employee). When you watch a video, you need to manually mark it as Completed. There are quizzes and labs in between videos. The quizzes are free, but the labs require purchase of credits, with each lab costing one or more credits (most seem to be around 5 credits).

Google currently is offering a free month of Google Cloud training, including access to the “complete catalog of over 700 hands-on labs, role-based courses, learning paths, skill badges and certification preparation resources.”

Or at least, they claim they’re offering a free month. I tried signing up Saturday afternoon, and the signup advised me to check my email for the link to get started. It’s been almost 48 hours, and I haven’t seen that email yet. If I don’t see it soon, I’m going to need to try signing up again.

The course progresses fairly smoothly at first, but the sequence of lessons has changed since the course was created in 2018. The “Containers in the Cloud” section starts, “We’ve already discussed Compute Engine…and App Engine…Now I’m going to introduce you to containers and Kubernetes Engine which is a hybrid which conceptually sits between the two and benefits from both.”

Except that the “Applications in the Cloud” lesson is the next lesson after “Containers in the Cloud”. Hmm. Should I follow the material in the order currently presented, or skip to “Applications in the Cloud” before “Containers in the Cloud”? I think I’ll do the latter, since the course Slides document and the videos haven’t been updated since 2018, at least so far. [edited to add:] “Containers in the Cloud” doesn’t appear to have been updated since 2018, but “Applications in the Cloud” has, so it looks like following the current sequence would be better.

Parallax Scroll with CSS

My first portfolio project will be FreeCodeCamp’s “Tribute page”, the first project in their beginner Responsive Web Design track.

It’s a fairly simple web page, and it would be pretty easy to create a minimal solution that fulfills all the requirements. But if I’m going to add it to my portfolio, I want something at least a little better than the minimum, so I’ve been thinking about ways to improve the look of the page.

Parallax scrolling is where two or more elements on a web page move at different speeds when the page is scrolled (vertically or horizontally). It’s a little gimmicky, I suppose, but I think it will work for this project.

The Google Web Developers December 2016 Updates (blog) had an article titled Performant Parallaxing that explained how to implement parallax scrolling using CSS that works cross-browser.

It looks like it should be pretty simple to add to my first portfolio project. And since I currently work for Google and plan to use Google Maps Platform examples in my later portfolio works, using their parallax scrolling solution for a non-Google portfolio project seems appropriate. However, the article was written in 2016, so it may require changes to work with current browsers.

GOOGLE DIALOGFLOW

Well, boy is my face red. I identified the wrong Google product to use to create chatbots. (also, I’m writing this while getting in a few minutes of exercise on my FitDesk stationary bike).

In my previous post, I identified the Hangouts Chat API as the Google product to build chatbots. Oops. I think that’s the product to use to add a chatbot into Hangouts Chat.

No, the correct product to build chatbots is Google Dialogflow. Dialogflow is where one would build the interactions that could be used in another environment, such as Hangouts.

Build a chatbot for language learning?

I’ve been interested in learning languages for most of my life. One thing I struggle with is making the jump from class, book, or app to conversation.

Today I had a thought – what if we used chatbots as a stepping stone between the book/app knowledge and real-world conversations?

I work for Google, so my first thought was to see if Google has a Chatbot API. Turns out, there’s a Hangouts Chatbot API that can be used for free. Score!

But it’s not the only free chatbot API out there – here’s a list of 10 chatbot APIs (including Google’s)

Now the question is – which ones make it easy (or even possible) to build chatbots in another language?

A JavaScript Map

My first home: