Skip to main content

Adventures with a Google Python Client API

I've been screwing around with Google's Sheets API client library. I've finally produced something barely accomplishing: a Python script that reads the values from a spreadsheet I'm using as the temporary machine learning training and testing data source for The Companions Project.


The sheet that will house companion training data
Success in the PyCharm console

Sure, I don't know any practical information on how to implement machine learning, but I'll get there. I at least know the basic process: get data, format data/create labels, train model, test model, and repeat training and testing until model is sufficient for job.

In other news, I contacted my likely computer science teacher for next year, Mr. Burton, about the club I'll have to make. Obviously, he didn't respond as it's the weekend, but I'm awaiting his response.

Today, I've finally figured out why The Companions Project's deployment to Google App Engine showed GET errors when going to the site. Turns out a small tag was the cause: secure: always. In an app deployed to GAE, the app.yaml file tells GAE how to handle requests. The "always" part of the tag means that the server will force HTTPS to serve static resources, something I am still in the process of setting up. In fact, that's what I spent four hours trying to do today before I gave up. It turns out GAE doesn't automatically provision HTTPS certificates for your custom domain, so I had to search website after website to find a guide that told me how to manually create the certificates with certbot.
Site note: I find it odd Firebase Hosting automatically provisions HTTPS certificates while Google App Engine doesn't even provide that option. Perhaps it's because Firebase is supposed to be a fully integrated platform for developers and Google Cloud Platform is sort of WYSIWYG. I thought Google really wanted to encrypt the web, so automatically issuing HTTPS certificates for App Engine apps would really help with that goal.

I should really finish my homework now, but I suppose today's troubles are tomorrow's history.

Comments

Popular posts from this blog

Summer Break 2017, Day 2 of 83: All Hail the Schedule

I think the plan's working; I'm already motivated to accomplish everything I've planned in The Schedule . Thanks to Google Calendar, I have the flexibility to change what I do on a daily basis. (I know, it's like I'm a spokesperson for Google right now, but you haven't seen half of it.) With Calendar's goals feature, I specify frequency and position of goals I want to accomplish, and machine learning ensures the times work out for me. Sure, it's a bit finicky right now, but at least I didn't have to make a hundred something event times for goals that don't have entirely consistent definite start and end time. MOOCs and More Because of my existing knowledge and experience with Udacity , I've decided to use their online courses to enrich my currently unstructured learning. Here's everything scheduled to be completed during the summer: Introduction to Machine Learning (the big one, the real thing I want to accomplish) Introd...

My First AP Test

In around 10–15 minutes, I will begin the AP Physics 1 exam. It's questionable whether I'll obtain a score of five, but I know I can easily obtain a four. Does MIT or Caltech or Stanford or whoever care if I obtain a five? Well, I know MIT doesn't even care if I take the test as they only accept credit for a five on the AP Physics C exam. As for the others, I probably should've done some research. That doesn't matter now. I just looked over my mock test with another highly intelligent student, and we both know we can easily obtain a four. I know how torque works; I know how movement in two dimensions works; heck, I even remember​ how to build a DC circuit. Kirchoff has nothing on me. I know that the junction rule states that a circuit's input current must equal it's output. I understand that resistors have the same current in a series but the same voltage in parallel. I am going to perform very well. (As long as I don't bomb the free-response quest...

Summer Break 2017, Day 5: How Hard is it to Upload a Photo to Firebase?

God help you if you ever decide to implement camera functionality in Android. I didn't have much planned today, but thank goodness I didn't. The Setup Here's the dilemma: I wanted to make a very simple app that will let me take a photo of text and have it read out to me. Using the Google Cloud Vision API ,  I can essentially scan documents and listen to their contents instead of having to use my eyes and scan the thing. It will be great for accessibility and so on, but the thing is I can't have the Cloud Vision API scan documents that I haven't taken. I want to do processing in the cloud to model common app architecture and to reduce strain on the client app. Here's the service flow: Client app takes photo Client app uploads photo to Cloud Storage for Firebase Cloud Functions scans the document for text Cloud Functions updates Firebase Database with scanned text Client app intercepts database update Client app speaks text from database The Co...