iTranslated by AI

The content below is an AI-generated translation. This is an experimental feature, and may contain errors. View original article
🪖

Productivity Weekly (June 22, 2022 Issue)

に公開

Hello. I am Hirakiba from the Productivity Improvement Team at Cybozu Inc.

Our Productivity Improvement Team holds a meeting every Wednesday called "Productivity Weekly," where we share topics discovered during the week related to improving developer productivity.
This article is a summary of those topics.

This is the 79th issue. Past articles can be found here.

news 📺

GitHub Copilot is generally available to all developers | The GitHub Blog

https://github.blog/2022-06-21-github-copilot-is-generally-available-to-all-developers/

GitHub Copilot is now GA. GitHub Copilot is a service that suggests context-aware code during coding, and it was available for free as a preview feature for about a year.

With this GA release, GitHub Copilot has become a paid service. A 60-day free trial is available, after which it costs $10/month or $100/year.
Students and developers of popular OSS can use it for free.

Additionally, enterprise plans, rather than individual ones, are scheduled to be provided later this year.

Speaking of GitHub Copilot, there was an issue regarding the licensing of automatically generated code, but an option to not use suggestions that match public code has been added, so it may be safer to use this.

There is also an option to prevent the collection of code snippets written by Copilot users. This option might make it easier for companies to use.

Whether GitHub Copilot is worth paying for is likely to vary from person to person. Since a trial is available, those who aren't sure should give it a try.

Block potentially destructive Git pushes | GitHub Changelog

https://github.blog/changelog/2022-06-15-block-potentially-destructive-git-pushes/

In GitHub, you can now limit the number of branches or tags that can be updated in a single push (beta).

It is explained as a countermeasure for when changes are pushed with the --mirror option. With this option, the remote repository becomes the same state as the local repository, which means branches and tags that are not in the local repository will disappear from the remote repository. If it's a branch someone is working on, a colleague can just re-push it, but for tags, it's a major pain because not everyone has them locally.

Since --mirror pushes updates to multiple branches and tags simultaneously, this feature can prevent the loss of branches or tags by limiting the number of updates that can be pushed at once.
It can be enabled from the settings, and the current default is 5 (configurable from 2 to 100).

GitHub wants to know what number is appropriate, so if you want to prevent this, try configuring it.
Personally, I think it's basically fine to enable it and set the limit to the minimum value. I would like it to be a default setting for repositories.

know-how 🎓

Developers Summit 2022 Summer(2022.07.21)

https://event.shoeisha.jp/devsumi/20220721

Developers Summit 2022 Summer will be held on July 21, 2022.
The theme for this year is "The Road to Developer Productivity: Supporting Products and Engineering Organizations in the Age of Agile and DevOps," so it looks like we'll be able to gather many tips for improving productivity.

It will be streamed online and is free to attend, so please join if you're interested.

By the way, this year, Hirakiba from the Productivity Improvement Team (the author of Productivity Weekly) will be presenting with the title "Improving Productivity is Not Straightforward: How to Deal with Challenges That Arise During Improvement," so please come and check it out if you're interested.
https://event.shoeisha.jp/devsumi/20220721/session/3841/

Dev Container has arrived from VSCode to the CLI

https://zenn.dev/hankei6km/articles/devcontainers-in-cli-ci

This is an article where someone actually tried out the dev container CLI that appeared recently.

It explains usage, how to combine it with Docker Compose, and how to use it in CI. It also covers behaviors and points that the author noticed, including many things that you wouldn't know without actually trying it.

Personally, the parts about arguments not being expanded and how it can be used in GitHub Actions were very helpful. I recommend reading this before trying the dev container CLI.

By the way, as of now, stop hasn't been implemented, so you can't stop containers. It might be better to wait a bit before using it for serious work.

tool 🔨

Setting default values for object attributes (variable) with optional() becomes easier in Terraform 1.3!

https://zenn.dev/jrsyo/articles/83bbcff7e08ab8

In the upcoming release of Terraform 1.3, there will be changes that make setting default values for object variables much easier.

It's a bit difficult to explain what exactly was tedious before, so please read the article. Briefly, when some members of an object variable were set using optional(), the default of the variable itself and optional() didn't combine well. This led to a workaround using defaults() (experimental), which resulted in redundant and unintuitive definitions[1].

With this change, you can now set a default value within optional(), allowing you to write default values for objects in an intuitive and simple way. This is a great change for those developing modules that use object variables. I hope it gets released smoothly.

Official Google Chrome Extension for "DeepL" Can Now Translate Entire Web Pages [Review] - Mado-no-Mori

https://forest.watch.impress.co.jp/docs/review/1418082.html

The official DeepL Chrome extension (beta version) can now translate entire pages and reflect the translation results directly onto the page (only for Pro versions).

DeepLopener, which I introduced before, also allowed page-level translation, but now the official extension finally supports it.

When you visit a page in a supported language, a popup appears asking if you want to translate it, and you can translate the entire page.

I actually tried using it, and since the popup appears every time, it's quite noticeable. You can prevent the popup by excluding specific pages or languages, but if you exclude them, a message saying "<domain> is set not to be translated. You can change this in settings" appears when you call it from the extension icon, making it impossible to translate immediately. This part is a bit inconvenient.

That said, it's still in the beta stage, so it might be improved in the future. Since it's an official extension, expectations are high.

koneta 🍘

This is a section for introducing topics from Productivity Weekly that I don't have the energy to cover in full, or topics that didn't have much to say about.

  • know-how 🎓
    • Cloudflare outage on June 21, 2022
      • This is the report for the Cloudflare outage that occurred recently (2022/06/21).
      • It seems an incorrect configuration was deployed.
      • What's surprising is the speed at which this article was published. It's impressive that they could release content of this quality the day after the outage.
    • Compatibility issues between Monterey and (After)Shokz and how to solve them
      • Shokz products, famous for bone conduction headsets, seem to have compatibility issues with macOS.
      • The problem and its solution are summarized here.
      • People planning to use Shokz bone conduction headsets might want to give this a read.
  • tool 🔨
    • A Chrome extension I built with a friend for personal development was too convenient
      • This is an extension for GitHub that allows you to display Issues as a sidebar without page transitions and easily copy Issue titles.
      • It looks quite useful, but please check if it's okay to use for work.
        • The source code is not public.
          • Since it's an extension, you could look at the source code after installation, but it's not very readable, so it's not tempting to check.

Afterword

As mentioned above, I will be speaking at Dev Summit 2022 Summer with the title "Improving Productivity is Not Straightforward: How to Deal with Challenges That Arise During Improvement," so please come and see it if you're interested.
https://event.shoeisha.jp/devsumi/20220721/session/3841/

Thanks to the above, I've been busy lately. I'm still busy, but since having "simplified versions" continue for too long isn't great, I wrote a normal issue this week.

The Productivity Improvement Team at Cybozu is working to improve the development productivity of our internal engineers. If you're interested in such a team, click the link below!
https://note.com/cybozu_dev/n/n1c1b44bf72f6

omake 🃏

Here is this week's bonus.

"418 I'm a teapot" becomes a permanently retired number (?) — Cleaning up a 25-year-old joke RFC - Yajiuma-no-mori - Mado-no-Mori

https://forest.watch.impress.co.jp/docs/serial/yajiuma/1418689.html

https://asnokaze.hatenablog.com/entry/2018/10/18/185401

HTTP status code 418 is famous for meaning "I'm a teapot[2]," but this number 418 has now been reserved as "Unused." This is because 418, originally defined in RFC 2324, is a status code for HTCPCP, not HTTP.

Since 418 is already used as an Easter egg, it seems it was decided to reserve it to avoid confusion if a new meaning were assigned.

Speaking of 418, Google has a page that returns 418, and there was also an instance where the Russian Ministry of Defense returned 418 to specific IP addresses.

418 will no longer officially mean "I'm a teapot." It's a bit sad, but it can't be helped.

脚注
  1. It's just really hard to explain. ↩︎

  2. It seems to mean "I'm a teapot, so I can't return a response." Is it 4XX because you shouldn't send requests to a teapot? ↩︎

GitHubで編集を提案

Discussion