経験は何よりも饒舌

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

OSS

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

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

graphql-validation-complexity から学ぶGraphQLのAST走査

オライリーの『初めてのGraphQL』の「7.3.4 クエリの複雑さ制限」で、graphql-validation-complexity というライブラリが紹介されていて、面白そうだったのでのぞいてみた。github.comgraphql-validation-complexityは、クエリに対して複雑度を計算し、その…

Class::Enumemon の中身をちょっとのぞいてみる

使う機会があってRailsのActive Recordっぽくて便利だと思ったけど、中身があまり想像できなかったのでちょっとだけ調べてみた。metacpan.org package IdolType; use Class::Enumemon ( values => 1, getter => 1, indexer => { by_id => 'id', from_type =>…

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…

Reactのコードを読む(3)

前回はhello worldが描写されるところまでをみたので、今回はuseStateをみていこうと思う。wafuwafu13.hatenadiary.comまずは、useStateがどこで定義されているのかを確認する。 <html> <head> <script src="https://unpkg.com/react@17/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script> …</head></html>

Reactのコードを読む(2)

前回はReactDOMについてみたので、今回はrenderでhello worldが描写されるところまでみていこうと思う。wafuwafu13.hatenadiary.comまずは、ReactDom.renderを出力してみる。 <html> <head> <script src="https://unpkg.com/react@17/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></head></html>

Reactのコードを読む(1)

この前jQueryのコードを読んでなんとなくコードリーディングがわかってきたので今回はReactのコードを読んでいこうと思う。 wafuwafu13.hatenadiary.com直近の目標は、以下のコードでどのようにして画面にhello worldが表示されるかを解明することである。 <html> <head></head></html>…

jQueryはいかにしてDOMを取得するか(3)

wafuwafu13.hatenadiary.comいよいよ今回は、以下のHTMLを用意して実際にDOMを取得していく。 <html> <head> <script src="https://code.jquery.com/jquery-3.5.1.js"></script> </head> <body> <h1 id="hello">hello world</h1> <script> console.log($('#hello')) </script> </body> </html> まずは前回と同じように、3133行目に定義されている関数の引数に何が入ってい…

jQueryはいかにしてDOMを取得するか(2)

wafuwafu13.hatenadiary.com前回は、以下のHTMLを用意し、 <html> <head> <script src="https://code.jquery.com/jquery-3.5.1.js"></script> </head> <body> <script> console.log($); </script> </body> </html> 以下の実行結果を得た。 ƒ ( selector, context ) { // The jQuery object is actually just the init constructor …

jQueryはいかにしてDOMを取得するか(1)

最近、バイトの隙間時間に、jQueryを廃止してTypeScriptにリプレイスする、というタスクをするようになった。 jQueryのDOMの取得を、Documentを使って書き換える時に、jQueryはいかにしてDOMを取得するか、ということが気になったので少し調べていく。今回は…

はじめてのOSS貢献

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