経験は何よりも饒舌

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

Jestのカバレッジ計測について

Jestのカバレッジ計測について、次のコードで調べてみる。 function sum(a, b) { return a + b; } function minus(a, b) { return a - b } module.exports = { sum: sum, minus: minus } sumだけテストしてみる。 const { sum } = require('./sample'); desc…

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…

GCI 2021 Summer 修了した

今までWebアプリケーションには関わってきたけど、機械学習に関しては無知だったのでGCI 2021 Summer | 東京大学グローバル消費インテリジェンス寄付講座に参加してみた。 申し込みしたら誰でも参加できる感じで門戸は広く、修了した人は5人に1人くらいだっ…

サイボウズのフロントエンドエキスパートチームのインターンに参加しました

8/30日から9/3日の5日間、申し訳ございませんお探しのページが見つかりませんでしたに参加させていただきました。 参加するまで フロントエンドエキスパートチームへの強い興味のきっかけは、おそらく2021年1月20日にこの記事を読んだことだと思います(もっ…

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

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

ミクシィのインターンで みてね の開発に幅広く関われました

https://mixigroup-recruit.mixi.co.jp/recruitment-category/internship/5071/ に8/2~8/27の約1ヶ月間参加しました。 選考は、インフラ/SRE領域に普段あまり触れていなかったため、その枠にチェックを入れて書類を提出しました。 3回の面接を通じて、今まで…

『Go言語で作るインタプリタ』をTypeScriptで実装する(後編)

前編を書いたのが約1年前なので1年間かかってしまった。wafuwafu13.hatenadiary.comgithub.com ずっとやってたわけではなく、前回は2章までできたらいいかって感じで終わらせて、1年越しに再開してみた。 Commits · wafuwafu13/Interpreter-made-in-TypeScri…

Swift入門した

ReactNativeでアプリをリリースしたことはあるけど、Swiftは全く触ったことがなかった。 動機は夏に使いそうだからと、なんやかんやモバイル主体のプロダクトが多い気がするから。 Swift, Xcodeでの開発に慣れる まずは手を動かしてみようと思って、Udemyの…

インフラに関してやってきたこと/やりたいこと(2021年7月)

読んだ本 キタミ式基本情報技術者 WEB+DB 大規模サービス技術入門 WEB+DB 24時間365日 サーバ/インフラを支える技術 WEB+DB nginx実践入門 Real World HTTP 歴史とコードに学ぶインターネットをウェブ技術 Linuxで動かしながら学ぶ TCP/IP ネットワーク入門 …

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

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

Go の main goroutine が exit する場所

Go

ascii.jp を進めているメモ。 package main import "fmt" func main() { fmt.Println("Hello World!") } をVSCodeでデバッグして最後にexitするのはここ。go/src/runtime/proc.go#L277 go/proc.go at 912f0750472dd4f674b69ca1616bfaf377af1805 · golang/go …

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…

技術書積読消化購読メモ

4月5月 読んだ Docker Kubernetes実践コンテナ開発入門(Kubernetesから) Amazon Web Services基礎からのネットワーク&サーバー構築 Kubernetes on AWS TCP/IPネットワーク入門 Real World HTTP 入門監視 Mackerelサーバ監視入門 DNSがよくわかる教科書 マイ…

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

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

AWA株式会社でのインターンでインフラに強くなりました

株式会社サイバーエージェントの全職種向け 実践就業型インターン【オンライン参加可】に3月2日~3月31日の1ヶ月間参加し、インフラに強くなりました(過去の自分比)。 参加するまで サイバーエージェントは魅力的な会社ですし、人生で1回は行っておきたいとい…

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

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

Jest のモック関数を整理する

npqという、npmやyarnでインストールする際に安全確認をするライブラリがあり、そこで使われているaxiosをnode-fetchで代替するというissueがあったのでやってみた。github.com github.com置き換えるだけの簡単な作業かと思っていたが、テストを通すのが難し…

Go の Short variable declarations と Named return values

Go

go-mp4という、mp4ファイルをパースしてくれるGoで書かれたライブラリがあった。 Goに慣れるため、golintのカバレッジを上げるPRを出してみた。github.com自分の書いたコードで、:=ではno new variables on left side of :=というエラーが出たけれど、代わり…

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

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

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…

NTT Performance Tuning Contest の対策と反省と抱負

nttcom.connpass.com 今までISUCONのようなパフォーマンスチューニングのイベントには参加したことがなかったのですが、興味はありました。 23卒があつまっているSlackで参加したいとつぶやくと、一瞬で反応が返ってきてチームを組めることになり、@PANORAMA…

「関数型プログラミングの基礎」モナドを作るを理解する

wafuwafu13.hatenadiary.comと同じ本の、p.268~p.274あたりでつまずいたので、メモを残しておく。 コードはここにおいてある。 akimichi.github.ioモナドの機能は、「値にコンテキストを付加すること」、「コンテキストを付加したまま処理を合成すること」で…

GoでPythonのrandom.shuffle()を実装し、カイ二乗検定を用いたユニットテストをする

背景 Goでコントリビュートできそうなレポジトリを探していると、goshというレポジトリがあった。 これは、JavaScriptやPythonでの構文をGoで書く、というものだった。 面白そうだったので、Pythonのshuffleを実装し、PRを出そうと思った。 Pythonのshuffle…

数学3の教科書をSymPyで解く

自然言語処理に興味を持っている。 wafuwafu13.hatenadiary.comが、本を読んでいても数式が結構出てきてきついところがあった。 数1と数2はかろうじて履修していたが、数3からは全くわからず、∞とかがでてくると拒否反応を示すレベルだった。 だからまず数学…