経験は何よりも饒舌

10年後に真価を発揮するかもしれないブログ 

OSS活動

スナップショットテストのテストにスナップショットを使う

github.comtesting/snapshot.tsのgreen(bold(`\n > ${updated} snapshots updated.`))の出力に影響する部分のリファクタリングをする際、異なるディレクトリにあるスナップショットテストの実行結果をテストで保証したかった。既存のコードを読んだら、スナ…

About Deno 1.34 API changes - Deno.FileInfo

Deno 1.34 was released in May 26, 2023deno.comI implemented Deno API changes - Deno.FileInfo https://deno.com/blog/v1.34#denofileinfo The Deno.FileInfo interface now includes the following new fields: Deno.FileInfo.isBlockDevice Deno.FileI…

etcdのgRPCコードリーディング

Do'er Advent Calendar 2022の22日目です。etcdとは「a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines」であり、KubernetesやR…

deno/std/nodeのfs.DirentでisBlockDeviceの判定ができないのはRustに実装がされていないから...ではない

追記: Rustにis_block_deviceがあって、Denoにはなかった github.com fs.readdir(path, options, callback)のoptionsにwithFileTypes: trueを指定すると、fs.Direntが返ってくる。 fs.Direntのdirent.isBlockDevice()を使った例が以下。 $ node Welcome to N…

JSのオブジェクトの分割代入で既定値が割り当てられるのはundefinedの場合のみ

「JSのオブジェクトの分割代入で既定値が割り当てられるのはundefinedの場合のみ」ということは、MDNのAssigning to new variable names and providing default valuesにAssigned a default value in case the unpacked value is undefined.と書いてあること…

野良コミッターがOSSの仕様を決める

OSS活動を始めて今まで157PRがCloseされた。翻訳やtypoの修正やテスト、ドキュメントの整備も含まれるけど、野良コミッターでも仕様を決める、もしくはそれに近いことができたのでいくつかまとめておく。 新しい仕様を追加する このスライドに詳しく書いたgi…

GiNZAにコミットしながらNLP Libraryの勉強

環境構築 GiNZA - Japanese NLP Library | Universal Dependenciesに基づくオープンソース日本語NLPライブラリを眺めてとりあえず$ pip install -U ginza ja_ginzaを試してみると以下のエラー。 raise VersionConflict(dist, req).with_context(dependent_re…

Notes on the breaking change that occurred in Axios v0.25.0

Axios v0.25.0 was released on January 18, 2022.One of the breaking changes is adding error handling when missing url, which returns an Error if the Request Config url specified in the argument is Falsy. This was introduced to clarify bugs …

Axios v0.25.0 で生じた breaking change の注意点

English version: Notes on the breaking change that occurred in Axios v0.25.0 - 経験は何よりも饒舌 2022年1月18日に Axios v0.25.0がリリースされました。その中の breaking change の1つに Adding error handling when missing url があります。 これ…

denodrivers/deno_mongo で作った my good first issue

この記事はDeno Advent Calendar 2021の19日目です。deno_mongo で取り組んだ my good first issue を紹介したいと思います。 README.mdに情報を足す リンクに飛んだ方がわかりやすいと思ったのでそうしました。 docs: Improve README by wafuwafu13 · Pull …

Architecture of nodejs/node and denoland/deno_std/node

I contribute to denoland/deno_std as a hobby, and I've been looking at denoland/deno_std/node a lot, so I thought I'd take a quick look at the architectural differences between the nodejs/node and denoland/deno_std/node APIs at this point …

nodejs/node と denoland/deno_std/node のアーキテクチャ

English version: Architecture of nodejs/node and denoland/deno_std/node - 経験は何よりも饒舌 この記事は Advent Calendar 2021 Deno の16日目です。 趣味でdenoland/deno_stdにコントリビュートしており、特に denoland/deno_std/node をよく見ている…

I contribute to denoland 1 month in a row

Summary https://github.com/pulls?q=involves%3Awafuwafu13+-user%3Awafuwafu13+author%3Awafuwafu13+org%3Adenoland 24PR Merged deno_std 5feat 1fix 6chore 6test 4docs 1refactor deno_lint 1test 17/311 Contributers in deno_std What I done deno_st…

非推奨になったESLintのルールがESLintのコード上でそう記されているか確かめるESLintのテストを書いた

ESLintのレポジトリでは、lib/rulesディレクトリ配下にルールがまとまっている。 以下に記されているように、それらのルールは非推奨になることがあるが、削除されることはない。 Rule Deprecation - ESLint - Pluggable JavaScript Linter Balancing the tr…

mackerel-plugin-accesslogを中心にMackerelのコードを読んだ

グラフのラベル名をいい感じにする簡単なPRを投げた時のメモ。[plugin-aws-cloudfront]Replace label name of graph by wafuwafu13 · Pull Request #766 · mackerelio/mackerel-agent-plugins · GitHub 公式ブログを読めばなんとなく機能的な部分はわかった…

はじめてOSSに新機能追加した

owという、Lots of built-in validationsなOSSに、BigIntのバリデーションを追加した。github.com github.comowに関しては2月頃に3回、型整備のPRを出してマージされていたので、コードには少し馴染みがあった。 https://wafuwafu13.hateblo.jp/#sindresorhu…

axiosの内部構造を理解してadapterの仕組みを解明する

axiosのadapterを使う機会があり、仕組みが気になったのでメモしておく。 github.comadapterで検索をかけると、lib/core/dispatchRequest.jsの51行目の記述が目についた。 axios/dispatchRequest.js at 7821ed20892f478ca6aea929559bd02ffcc8b063 · axios/ax…

DefinitelyTyped で Ace の型を大幅に改善した

前のこの記事では、Definitely Typedから型をインストールして適用する際に、実際にレポジトリまで見に行かないといけなかった、ということを書いた。wafuwafu13.hatenadiary.com今回は、PRを出してマージされたので、そのことを書く。github.comPRタイトル…

エラーを報告する際に意識していること

基本的には質問をせずに粘ってしまうタイプなのだが、環境構築の段階でのエラーや、人生で初見のエラーなどは経験上、粘っても何も得られないので、即質問するようにしている。そこで意識していることは、 何が原因で何ができなかったのかを記す 自分が打っ…

qrcode.react とスナップショットテストの相性が最高すぎた

qrcode.reactは、その名の通りQRコードを生成してくれるReactコンポーネントだ。 github.comファイル構成はsrc/index.jsでゴリゴリ計算というか文字列を算出し、コンポーネントを返す構成だった。 テストがなかったので、テストを追加したかったのだが、何に…

npmから@typesを使う場合はDefinitelyTypedを見に行かないといけないことがある

Link Preview JSという、「allows you to extract information from a HTTP url/link (or parse a HTML document) and retrieve meta information such as title, description, images, videos, etc」なレポジトリがあった。github.comそこでは、cheerioとい…

自分のPRを見て思う、TableDrivenTestsの良さ

jdという、commandline utility and Go library for diffing and patching JSON valuesなライブラリにTableDrivenTestsを導入したので、その良さを主観的にまとめておこうと思う。github.comgithub.com まずは、実際にdiffの一部を見てみる。 https://github…

単純作業の効用は意外と大きい

owという、TypeScriptの型制限を拡張したOSSに何度かコミットして気づいたことは、単純作業は意外と効用が大きいということだ。 github.com具体的に何をしたかというと、typescript-eslintの、explicit-function-return-typeが無効になっていたのを、有効に…

Cypress で `blitz new` をテストしたい(が、できていない)

ことの発端は、最近よくBlitzを聞くようになり、GitHubを訪れると、good first issueが転がっていて、テストに関するものがあったので、Blitzを触ったことも、GraphQLやPrismaもあまり知らなかったけど、拾ってみた。このissueの内容は、blitz newの挙動をCy…

Released npm package 「react-p5-components」

Hi :) I released react-p5-components.GitHub github.comnpm www.npmjs.com Library features is that you can use p5.js in react without writing p5's code.It means this library generate p5.js Canvas depending on your settings.There are few type…

はじめてのOSS貢献

ついさっきpushしたのでメモしておきます。 STEP1 OSS貢献に関する記事を読む とっつきやすいとか、誰でもとか書いてありますが、やはり難しそう... でも、今書いてる記事を読んだらとっつきやすさは伝わると思います。qiita.comqiita.comtech.gunosy.io STE…