Beginning again

The past few months have been humbling for me, programming-wise. I’ve struggled a lot with Google Cloud Platform, without much success. It’s been frustrating. It has also forced me to re-evaluate my progress as a programmer.

The real issue has been that I failed at being a self-reliant problem solver. It’s one of the hallmarks of a good technologist to be able to break down and solve technical problems, and I haven’t been able to do that with Google Cloud Platform. Not for lack of trying. I’ll spare you the details, but to sum up, I failed to build the thing I wanted to using GCP.

This isn’t the end of the world, but the failure has irked me. So for now, I’ve retreated from ‘ops’ to just work in Python, which is safe and familiar.*

Anyhow, all of this has sparked some self-reflection, and made me think a lot about why I want to program in the first place. Ultimately, my reason is that programming can provide us with opportunities to do all kinds of things we couldn’t do previously. And the experience of the expansive possibilities of programming usually comes early on in the coding journey.

So I’m going to focus on beginnings, and the power of learning. Hopefully, it can help me tap into the sense of potential that comes with learning; and to try to share it.

* maybe I’ll try again with GCP at some point.

Posted in google, learning | Leave a comment


Sometimes, it’s important to enjoy coding for it’s own sake. It can be fun to solve problems and bend your brain a bit. Work doesn’t always offer this. Sometimes work is, well, work. That’s why this weekend I’ve been spending time with checkio. Checkio is a programming puzzle site, where the only goal is to solve puzzles to unlock other puzzles. In a strict sense, it’s not a productive use of my time, but it makes me happy.

Posted in learning | Leave a comment

The (much needed) back burner

Some technology projects really test my patience and stamina. Either they’re too advanced for me, or they use badly-documented technology that’s hard to work with. There is sometimes an upside to this frustration: it’s good for me to try things that are difficult or at the limits of my skill set.

But it’s also nice have an easier project on another burner, to turn to when things get too frustrating.

Lately, I’ve been really annoyed with Google Cloud Platform. Almost furious, at times. I frequently need to walk away and decompress. So to take a break, I started setting up a Raspberry Pi to store backups on my home network. The stakes are lower; the problems are easier (for now). It’s nice to step away from the frustrating stuff, at least for a bit.

Posted in Uncategorized | Leave a comment

There be dragons…

For a beginner trying to solve a programming problem, there is a lot of readily Googleable help. You can usually solve your problem with very clear, specific, and accessible instructions.

Things are different a bit further down the programming path. As the problems become harder, the solutions become less obvious. For example, I now might spend more time trying to tease a solution out of rambling GitHub issues. This involves a different sort of problem solving skill; it’s more focused on building something out of your own knowledge mixed with a few insights from others in similar situations. Sometimes it goes well, sometimes it doesn’t. It can be time consuming.

The upside is that this problem solving approach can sometimes produce solutions instead of just solving bugs. The feature you want may not exist, and your solution may make an useful contribution back to the upstream project. It’s one way to start giving back, by solving problems for others.

Posted in learning | Leave a comment

Preliminary thoughts on Google Cloud Platform

As I mentioned in an earlier post, I was granted a bunch of Google Cloud Platform credits. I’ve started using them, and here are my initial thoughts:

  1. There is a Cloud Platform service for most of the use cases I can imagine for my project. This means that there are a lot of options to consider.
  2. It’s already becoming clear that there’s a fair bit of platform lock-in, even if you only consider the technical debt incurred by shoehorning existing code into Google services.
  3. The costs are about in line with what I expected. I’ve been coding against the platform pretty intensively for three weeks now, and it has cost me $43.32 in credits so far. In brief, more than I’d be willing to spend from my own pocket. I’m quite willing to spend the credits they’ve given me, though.
  4. Ironically, some of these tools are very hard to google! Good luck getting precise technical help when searching terms like “google cloud function”!
Posted in google | Comments closed


I started working with Python around version 3.3, which predates the addition of asynchronous features into the language’s standard library. Asynchronous programming in Python has come a long way since then; it is now a well-established feature of the language.

I first wrestled with async on an Amtrak train, on my way home from the Code4Lib conference in 2018. I remember it being a bit daunting. For me, the transition to an asynchronous mindset was made easier by starting with trio, an aysnc library with metaphors that are – in my opinion – much simpler than those used by the more common asyncio library.

The value of async is that unlocks some programming problems that would not otherwise be solvable in a reasonable amount of time. For example, do you have a lot of requests to make across the network all at once? Async will make that way faster for you than waiting on each request to finish synchronously. It’s a valuable tool in the Python programmer’s toolkit. If you have not had a chance to dive into this yet, I encourage you to give it a try!

Posted in async, python | Comments closed

Unexpected funds

I recently found out that I got funding from Google for my journal recommender project. More than I expected, too. I had hoped to receive maybe $200 or $300 of Google Cloud Platform credits, but they gave me $5000 in credits, which was quite a surprise.

This is good news for this project, because it allows me to try out some technical solutions and optimizations that would not have been possible if I were spending my own money (or CUNY’s money). Hopefully, it will allow me to create a better public-facing journal recommender tool than I could have otherwise.

I’ll try to be pragmatic about what this funding can do for this project, while keeping in mind some of the drawbacks of leaning on Google. Specifically, there are vendor lock-in risks and user privacy risks that come with using Google products. It’s best not to lose sight of these problems. Keeping those in mind, the credits give me a chance to experiment with approaches to project infrastructure without having to worry too obsessively over cost. That is welcome news.

Posted in doaj, google, journal recommender | Comments closed

Further into hardware

I used to really dislike computer hardware. It seemed like it always cropped up as an inconvenience or annoyance when I was trying to do something with code. I preferred the abstractions and ephemeralness of software to the inconvenience of physical things.

More recently, my thoughts on this have been changing. In part, I’m realizing how essential the physical stuff is to working with computers. This should be obvious but I’m a bit slow to catch on.

I’m learning from the good folks at sdf.org, who are in general way more hardware-oriented than I am. Their joy at hacking on hardware is contagious. I have a lot to learn, but I’m excited about it.

Posted in hardware, learning | Comments closed

Hacker hours

Recently, I have been occasionally guest-hosting Hacker Hours at the Brooklyn Public Library on Sunday afternoons. It’s an event where people get together to work on programming projects, and help each other out by sharing skills and knowledge. It draws some seasoned programmers, as well as people who are entirely new to coding. The informal setting and the mix of skill levels makes for a good learning environment.

The event used to be at a café on Atlantic Avenue. But relocating to the library has meant that we’ve been able to reach people who may not have otherwise heard about the event. The library helpfully promotes it on their events page. So while I do miss the sandwiches and coffee at our former café, I think moving to the library has been a positive change. I recommend dropping by. Bring some code to work on.

Posted in learning, meetup | Comments closed

Feast or famine

Quite recently, I was feeling disappointed that I didn’t have any library coding projects to work on. I felt I was failing at my goal of bringing more code into my academic librarianship.

But things change quickly. I’m not sure what happened, but over the course of last week, five(!) new programming projects landed on my plate. It’s far too much to work on at once. I’m not sure if this recent influx was due to a change in mindset, or the regular turnover of the semester cycle, or maybe just randomness. Nonetheless it is very welcome.

This abrupt switch from too few projects to too many has me thinking that maybe much is beyond my control. I can try to be open, engaged and active, but that isn’t always sufficient to bring in the projects that I want to work on. Sometimes it just takes patience and good luck.

Posted in Uncategorized | Comments closed
Need help with the Commons? Visit our
help page
Send us a message
Skip to toolbar