October 2024: Automating Python Packages and Interviewing Dan Abramov
From PyPI automations to JavaScript Object Literals and the future of social platforms according to BlueSky.
Hi friends,
I write this letter to you fresh back from a trip to Memphis, where the whole startup I work for, Blues, met for a week to talk about our future plans, hear from some of our customers, and build the connections that are harder to forge in fully remote companies.
It was a very good time. Even though I thoroughly enjoy all the perks that come with working from home, having these in-person meetings every six months where we get to interact face to face, is important to our success.
I’d love to hear your thoughts on the fully remote vs. part-time/full-time in office debate if you want to share.
This month I interviewed a React hero of mine, wrote about automating publishing packages to PyPI, and even reviewed JavaScript ES6 object literal notation.
Dan Abramov, arguably one of the most famous former members of the React core team, joined me on the LogRocket podcast to talk about BlueSky and the “Web without walls”.
I have long been an admirer of Dan Abramov as he’s risen to fame in the JavaScript and React communities through his creation of Redux and then contributions to the React core project, but just over a year ago Dan departed Meta for the new social platform BlueSky.
In this episode of the LogRocket podcast, PodRocket, Dan discusses how BlueSky reimagines user data control and customization with its unique app protocol, and the potential it brings for the future of social media.
It was a truly interesting new way to think about how users should be in charge of their data (not the platforms), and I would encourage you to listen and learn more.
GitHub Action workflows make repetitive, tedious tasks, like publishing new versions of a Python SDK to PyPI so much simpler.
Last year, I created an open source JavaScript library of my company’s API, Notehub. It is generated from the Notehub API’s openapi.yaml
file, and I set up GitHub Action workflow automations to copy the file every time it’s updated, push it to a feature branch in the Notehub JS repo, and publish it to npm once the library’s been updated.
This year, a coworker who works mostly in Python asked if I could do the same thing for a Notehub Py variation of the API. I obliged, and learned how to automate publishing a new Python library to PyPI via GitHub Actions at the same time.
Contrary to what you might imagine, PyPI and GitHub Actions work together very well to make this process quite smooth. And it’s just so comforting knowing an automation will work the same way, every time once it’s dialed in.
I hope you find this useful in case you find yourself needing to publish packages to PyPI in the future.
I also released my sixth blog post in my series on JavaScript ES6 features: object literal value shorthand.
The JavaScript’s ES6 syntax has been around a while, but there are plenty of developers for whom it’s still a bit of a mystery.
A few years ago, I wrote posts about the ES6 features I use all the time to provide short, deep dives about various improvements to the language that I hope will inspire readers to build more cool things.
Over the past few months, I’ve covered topics like arrow functions, the spread and rest operator, and string template literals.
This month’s topic is object literal value shorthand. It sounds like a mouthful, but what it boils down to is more concise ways to create new objects in JavaScript from variables and define functions.
It’s very possible you’re already using these techniques day to day, and just didn’t know the proper name!
Each month in this newsletter, I’ll highlight the next blog post in the series, but if you’re curious you can always go to my website and type “ES6” in the blog page search.
I hope you enjoyed this month’s edition of “Paige Codes.” Please share with your friends if you did.
See you again at the end of November,
- Paige
Not subscribed yet? No worries.
I send a free email every month or so. You can check out my archive, or sign up below: