iTranslated by AI
Productivity Weekly (2022-03-02)
Hello. I'm Hirakiba from the Productivity Improvement Team at Cybozu, Inc.
Our Productivity Improvement Team holds a weekly internal meeting called "Productivity Weekly" every Wednesday, where we share news and topics discovered during the week related to improving developer productivity.
This article is a compilation of the topics from that session.
This is the 64th issue. Past articles can be found here.
news 📺
View network transfer information in Resources tab - CircleCI Updates
You can now check network transfer volume for jobs using CircleCI's Docker executor. You can see the total of both In/Out from the RESOURCES tab on the Job details screen.

Like this
The second link above (Discuss) mentions that this can be used for cost calculation and optimization when using the feature to fix IP ranges (IP ranges) added last year.
Also, CircleCI is scheduled to start charging for storage and network from 2022/03/01. It's good that we can now check this for each job to keep network transfer volume in check.

From https://circleci.com/docs/ja/2.0/faq/#how-do-I-calculate-my-monthly-storage-and-network-costs
Estimated runtime now available for ongoing builds - CircleCI Updates
CircleCI now shows the estimated remaining time for running pipelines. The estimated remaining time is displayed under the pipeline status. They say the estimated time is based on previous pipeline runs. Knowing roughly when a pipeline will finish is a subtle but welcome change.

Like this. It predicts 1 hour and 13 minutes remaining.
Dedicated hosts for macOS - CircleCI Updates
Dedicated hosts for macOS are now available on CircleCI.
As it is a dedicated host, you can have exclusive use of one physical macOS machine (existing macOS Executors run on virtual machines). Mentioned benefits of using dedicated hosts include improved security and access to the GPU, among others[1]. However, it consumes 100 credits per hour and must be leased for a minimum of 24 hours.
Since it can be used more powerfully than the previous macOS Executor, it might be a welcome option for developers of apps for Apple products.
know-how 🎓
Implementing E2E testing for Chrome extensions with Cypress + Serve
This article explains one method for E2E testing of Chrome extensions. It performs E2E testing by combining the Cypress test framework with serve, which serves static files.
In this article, you can find testing methods for a sample extension's popup, CI workflows, and links to code actually used in OSS. It also provides setup methods, test code, and CI workflow YAML, making it possible to try it out immediately.
I tried it myself following the article, and it was very easy to set up (*). Since I had no prior knowledge of how to test extension popups, it was extremely helpful. I recommend it to anyone who, like me, isn't sure how to go about E2E testing for Chrome extensions.
(*) Although I said it was easy, I struggled with the initial setup, possibly because I was using an M1 Mac.
Story of my struggle with the setup
Running pnpm i failed because esbuild-darwin-64 couldn't be downloaded.
❯ pnpm i
Lockfile is up-to-date, resolution step is skipped
Packages: +762
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Packages are copied from the content-addressable store to the virtual store.
Content-addressable store is at: /Users/korosuke613/.pnpm-store/v3
Virtual store is at: node_modules/.pnpm
WARN GET https://registry.npmjs.org/esbuild-darwin-64/download/esbuild-darwin-64-0.13.3.tgz error (ERR_PNPM_FETCH_404). Will retry in 10 seconds. 2 retries left.
WARN GET https://registry.npmjs.org/esbuild-darwin-64/download/esbuild-darwin-64-0.13.3.tgz error (ERR_PNPM_FETCH_404). Will retry in 1 minute. 1 retries left.
Progress: resolved 762, reused 759, downloaded 0, added 761, done
ENOENT ENOENT: no such file or directory, open '/Users/korosuke613/ghq/github.com/korosuke613/e2e-sample-webext/node_modules/.pnpm/esbuild-darwin-64@0.13.3/node_modules/esbuild-darwin-64/package.json'
node_modules/.pnpm/dtrace-provider@0.8.8/node_modules/dtrace-provider: Running install script...
Related Issues:
- Error: The package "esbuild-linux-64" could not be found, and is needed by esbuild · Issue #1646 · evanw/esbuild
- pnpm find wrong bin version when multiple esbuild version exists · Issue #3238 · pnpm/pnpm
I tried preparing Node.js for x86_64, but it didn't work. However, I managed to get it working with the following steps:
(I'm not exactly sure why this worked)
pnpm install --lockfile-onlypnpm i
After that, everything proceeded according to the instructions.
Techniques for handling a large volume of Renovate Pull Requests - StudySapuri Product Team Blog
This article summarizes operational know-how for Renovate in a huge Terraform monorepo. While it uses a large Terraform monorepo as a theme, it also contains techniques that can be used generally.
The article explains the background of needing to process a large number of pull requests in a short time, the solutions, and the results. The ten configuration items mentioned as solutions are helpful, each including reasons for the setting and points to note.
I thought this would be very helpful for those using Renovate in monorepos (especially for Terraform). Updating dependencies is hard, but we can't just not do it, so I want to keep reducing the burden on humans.
Improving maintainability of CircleCI configuration files by splitting CI/CD repositories - Serverworks Engineer Blog
This is a story about improving maintainability by splitting a huge .circleci/config.yml into CI and CD, and further splitting each configuration file using Dynamic Configuration.
The article covers the challenges, the policy for measures, and the details of the measures. Those troubled by a huge config.yml might find it useful.
Keyless Signing of Container Images with Sigstore - Flatt Security Blog
This article explains how to sign Docker images on GitHub Actions by leveraging Sigstore and OpenID Connect, which was a topic of discussion the other day.
The article includes an explanation of Sigstore, signing methods using local keys, and signing methods using OIDC (Keyless Signing). In particular, the section on signing with OIDC and GitHub Actions includes workflow examples, so you can start signing Docker images immediately. Image providers might want to take this opportunity to start signing. It should be a helpful reference along with the previously introduced article.
tool 🔨
PlanetScale seems to be a very popular serverless DB service, so I tried the Quick Start - Qiita
This is an introductory article about a serverless DB service called PlanetScale. The main differences from common managed DB services seem to be that it features a horizontal scaling system, branching functions, and automatic backup functions. The article includes a service overview, pricing (including the free tier), registration methods, and a Quick Start repository.
I thought the branching feature, which allows for easy verification of schema changes, is an interesting feature. I'm also intrigued by the free tier, which seems more than sufficient for personal use. I want to play around with it and try various things.
koneta 🍘
This is a section for topics that came up in Productivity Weekly that I'd like to introduce but don't have the energy for, or topics where there wasn't much to say besides a brief mention.
-
Tauri, a lightweight Rust-based framework aiming to replace Electron, reaches release candidate - Publickey
- An article about "Tauri," a framework aiming to be an alternative to Electron, a cross-platform framework for developing desktop apps with HTML/CSS/JS, reaching RC.
- It's made with Rust and is lightweight.
- Since it doesn't use Chromium internally, it might not be a complete replacement for Electron, but compatibility seems to be improving.
-
Gists Now Support Mermaid Diagrams | GitHub Changelog
- Mermaid is now rendered in GitHub Markdown, and it's now also rendered in Gists.
-
Online FlowChart & Diagrams Editor - Mermaid Live Editor
- A live editor for Mermaid.
- It's great that you can quickly call up samples and output in various formats.
-
All npm accounts are now enrolled in login verification | GitHub Changelog
- In npm, all accounts that haven't enabled 2FA will now receive a one-time password via email upon login.
- This is not a substitute for 2FA, so be sure to enable 2FA.
-
Comparing various CD tools for k8s - pospome's programming diary
- A summary of CD tools for k8s.
- I've only used ArgoCD, so I was surprised there are so many.
-
Former Apple engineer develops native macOS app for Gmail - iPhone Mania
- About a macOS client app for Gmail developed by a former Apple employee.
- Still in beta.
- I tried installing it and was surprised to see it actually supports Japanese.
- I use other services besides Gmail, so I'm a loyal user of a mail client called Spark.
-
alacritty+tmux is good, but wezterm is amazing
- Introduction to wezterm, a cross-platform terminal made with Rust.
- The customizability is incredible, and it has a built-in terminal multiplexer equivalent to tmux.
- However, it seems to be missing various features, so it won't necessarily replace tmux.
Afterword
Sorry for the delay. I somehow managed to keep it within a one-week delay. This week's issue had so many topics that there were many small topics (koneta). I started playing Elden Ring, but since I've never played the Souls series, I'm struggling without knowing my left from my right.
The Productivity Improvement Team at Cybozu is working to improve the development productivity of internal engineers. If you are interested in the Productivity Improvement Team, click the link below!
Usually, I would end here, but I have two promotions, so please take a look at those below.
Promotion: We will host a session to talk freely about the contents of Productivity Weekly.
We will be holding the first "Cybozu Productivity News," where the Productivity Improvement Team will talk freely about the topics that appeared in Productivity Weekly! 🎉
We will premiere the pre-recorded and edited video on YouTube. We will make it available for viewing even after the broadcast, so those who can't make it at this time can watch it whenever they want. If we get questions with the Twitter hashtag (#cybozu_productivity_news) during the broadcast, we plan to answer them in real-time.
Since it's the first time, I have no idea how it will go 😇
Please check it out if you're interested.
Promotion: The Productivity Improvement Team is holding a summer internship again this year
The Productivity Improvement Team will be holding a summer internship again this year, so if you're interested, please apply! (Applications are scheduled to start on 4/25)
Last year's interns also wrote blog posts about their experience, so please check those out too if you're curious.
omake 🃏
This week's bonus.
Readdle, the developer of Spark, is a Ukrainian company
I have been a long-time user of apps like the PDF Expert PDF viewer and the Spark email client. I received an email from Readdle, the company that develops them, requesting donations to support Ukraine.
I was surprised because I didn't know Readdle was a Ukrainian company. The "donations" mentioned in the email aren't for Readdle but for Ukraine, but because I'm grateful for their apps and want them to continue developing great software, I also donated to Ukraine.
Personally, I had been vaguely thinking about supporting Ukraine, but I hadn't taken any action yet. When I read this email, I felt a sense of urgency to help and donated immediately.
In conclusion, both PDF Expert and Spark are excellent apps, so if you haven't heard of them, I highly recommend giving them a try.
-
Actually, I didn't realize the GPU wasn't available until now. ↩︎
Discussion