This Week in Programming: Like Riding a Bicycle

A personal tale of almost-programming woe this week to start us off. A few weeks back, I had a semi-personal mission I wanted to fulfill and I figured that throwing together a little code was the solution. There’s a pending bicycle lane here in town and we were told that perhaps the local officials needed some gentle prodding to get the deed done.
What better way, I figured, than to set up a simple form, gather some user input — name, email, reasons they want a bike lane selected from a list, perhaps a bit of writing of their own — that it would then parse and combine in a form email to send along to the mayor and other interested parties.
Suuuuper simple, right? I thought so too.
the last 10% of a side project pic.twitter.com/wukyxYfu91
— I Am Devloper (@iamdevloper) May 30, 2019
Now, I don’t have a personal web server anymore these days, so I threw together a Google Form with a script that would run on the event of form submission. After much playing around and tweaking — as is the standard development process — I got something that ran pretty reliably. There was just one problem — the emails were coming from my personal email account. This is where things got weird. I copied it all over to a different, less personal Google account and, somehow, it just stopped being so reliable. Fill out the form, hit submit, and suddenly… two emails, one blank, one filled out. Or no email at all.
At the beginning of the process, I started as one does these days by Googling my basic situation and found a blog post that seemingly fit my needs. That’s programming, right? It sent me off on the right track, but once I was in there, I found myself in an oddly obtuse land of interconnected forms and scripts that had no visible connection to trace back and forth. Bugs? Sure, there was bug tracing, but sometimes, after sharing forms and scripts from one account to another, I couldn’t even be sure the script I was working on anymore was connected to the form I’d created.
So much for the newly simplified, abstracted world of easy coding, it seemed.
Me: How do I do this again?
Google: You have searched for "file exists bash" 137 times. Have you considered actually learning something?— Ryan Greenberg (@greenberg) May 30, 2019
Well, last week I broke my foot and found myself homebound, and therefore decided to return to a Python Udemy course I’d signed up for last fall. If I couldn’t do these things easily and without hassle using web-based tools by Google, I’d just go back to the basics — my Linux box.
Not a few minutes into the process, I again found myself stymied, suddenly copying and pasting commands into my terminal, desperately trying to get my version of Jupyter Notebooks to run Python 3 instead of Python 2. Now, go ahead and Google that, and you’ll get a long list of solutions that seemingly work for everyone else out there, but try as I might to make my personal development environment mimic that of the one used for the Python course… no dice.
Serverless will make you a better developer, because you'll actually get to focus on becoming one.
— Kelsey Hightower (@kelseyhightower) May 30, 2019
Perhaps I need to take Kelsey Hightower’s advice and try out something like serverless for these tasks, because I still haven’t gotten past step three of setting up my environment for this Python tutorial. Or perhaps I need to take a separate Udemy course on setting up Python environments for taking Python tutorials. Whatever it is, it’s always one thing or another, isn’t it? That’s what being a developer really is — having the tenacity to get past this type of thing.
Maybe that’s why I’m a writer, instead.
This Week in Programming
- Look Ma, No Hands! In its continuing effort to remain in the spotlight, GitLab last week offered yet another retort to GitHub’s recent announcements at its GitHub Satellite conference, with its GitLab user’s guide to GitHub’s new features. As you may have noticed in recent weeks, I’m a fan of this back-and-forth between GitHub and GitLab. Here we are again — GitHub announces a bunch of stuff and GitLab says, “Oh? You mean like this?” The “guide” offers a table with two columns: “What GitHub announced on May 23, on the left, and “Similar & related GitLab features” on the right, links and all. Lest any of its existing user base be lured away by the shiny things showcased at GitHub Satellite, GitLab writes that “if you are a GitLab user, here is a quick cheat sheet of what GitHub announced today and how that relates to GitLab features that already exist or are on the public GitLab direction page.” The company also offered a round of congratulations to the competitor, writing that “as GitLab is an open source project itself, and we are contributors to many other open source projects hosted on GitHub, we are excited to see that GitHub is looking for ways to make open source projects more secure and better funded, through GitHub Sponsors and the GitHub Sponsors Matching Fund. Nice job, GitHub!”
- Doing Good with Drones: IBM is looking for some developers to do good with drones, and it’s making it happen with The IBM Developer Drone Drop, a contest that will distribute 1,500 DJI Tello drones over the next five weeks to residents of the UK, Spain, United States, and Canada. In addition to the drone, lucky winners will get “code patterns to unlock its potential [and] new skills around visual recognition, AI and machine learning.” The challenge runs through June 16, and new winners will be announced on Tuesday weekly, with the ultimate goal of coding “something amazing with open source patterns […] using tools like Node-RED and IBM Watson Visual Recognition, Watson IoT, IBM Cloud, and IBM Data and Analytics, to create a drone application that makes a difference in your community.” IBM points to self-taught developer Pedro Cruz, who won the Call for Code hackathon in Puerto Rico for DroneAID, “a natural disaster preparedness drone solution inspired by his grandmother in their home of Puerto Rico” after Hurricane Maria. (Check out the video for an interview with Cruz on DroneAID.)
https://youtu.be/9fRcis-5Zuc
- TypeScript 3.5 Drops: That’s right, your favorite statically typed Javascript alternative has just come out with TypeScript 3.5, which brings a number of improvements, primarily in the form of “new type-checking and incremental build optimizations designed to improve speed,” according to SD Times. Apparently, the increase in speed in type-checking is a bug fix from TypeScript 3.4, which had “introduced a regression and increased the work of the type-checker.” For the details, give either a read, but make sure to check out the breaking changes either way.
- Let the Doc Writing Begin: Google Marches on with its Season of Docs, and the effort to pair writers with open source projects to create documentation has now begun accepting technical writer applications. Interested technical writers should check out the list of participating organizations, and create a technical writer application, which is available in a Google Form. The deadline for this step of the process is June 28, at 18:00 UTC, and lest you think Google is looking for totally free work, there is an optional stipend available to the accepted technical writers.
- ML Text & Data Extraction by AWS: SD Times brings us the story of Textract, a service that automatically extracts text and data from scanned documents that “goes beyond simple optical character recognition (OCR) to also identify the contents of fields in forms and information stored in tables.” According to the story, “Amazon wants to make it easier to extract text and data from tables, forms and virtually any document. The company announced its new fully-managed Textract service, which removes the need to manually review or custom code text and data extractions with machine learning.” Amazon says that standard text extraction often uses manual data entry or OCR and requires “a time-consuming and often inaccurate process that produces an output requiring extensive post-processing before it can be put in a format that is usable by other applications,” which it says is solved with this new solution. Textract “takes scanned files stored in an Amazon S3 bucket, reads them, and returns data in the form of JSON text annotated with the page number, section, form labels, and data types” and developers can “integrate Textract with machine learning services like: Amazon Comprehend, Amazon Comprehend Medical, Amazon Translate and Amazon SageMaker.”
Deployed my blog on Kubernetes pic.twitter.com/XHXWLrmYO4
— Continuous On-Premery (@dexhorthy) April 24, 2017
Feature image from the Library of Congress.