iTranslated by AI
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
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
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)
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.
Dev Container has arrived from VSCode to the CLI
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!
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
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.
-
Cloudflare outage on June 21, 2022
-
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.
- The source code is not public.
-
A Chrome extension I built with a friend for personal development was too convenient
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.
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!
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
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.
Discussion