yn2011's blog

技術メモ

ツイートで振り返る 2020 年 1~3月

ブログのリハビリということで簡単に書けそうな振り返り系の記事。1年分を1記事にする予定だったが、3月までで力尽きた。そのうち続編を書くかもしれない。 1月 Vim で Go を書こうとしていたらしい。 vim-goのインストール5分ぐらいかかった— メロン食べた…

AtCoder 茶色になったので振り返りと茶色になるために必要だと思うことを書く

最初に一言。茶色になるのは想像以上に大変だった。 tl;dr AtCoder をはじめる前の実力とかモチベーション レート遷移 開始 1ヶ月 開始 2ヶ月 開始 3 ~ 4ヶ月 開始 5 ~ 7ヶ月 開始 8ヶ月~ 茶色 やって良かったと思うこと やらなくても良かったと思うこと 茶…

React v16 まではイベントハンドラが window.document に登録されていたという話

@koba04 さんの React v17 の変更に関するこぼれ話 を読んで、コードを動かしてみたので書く。 v16 でイベントハンドラは document に登録される React v17 の変更に関するこぼれ話 に記載されている通り、React v16 までは React 内のイベントハンドラは do…

Go の module cache と vendor の違い

Go

Go の module cache と vendor の違いがよく分からなかったので調べた。結論としては、違いというか go.mod に記述されているバージョンによってデフォルトで module cache と vendor のどちらを go run や go build 時に使うかが異なる。 環境 Go 1.15.3 $G…

パスカルの三角形を利用して組み合わせの数を求める

ABC 132 D 問題 の公式解説で、パスカルの三角形を利用して組み合わせの数を求めていたが、一見して何をしているか理解できなかった。 実装はこんな感じで、nCk を計算できる。 int n, k; cin >> n >> k; int c[105][105] = {}; c[0][0] = 1; for(int i=0; i…

総和の剰余(mod) を計算したい

C - Sum of product of pairs で躓いたのでメモ。 総和の剰余(mod) 整数 a1, a2, a3 ... の 総和の剰余(mod) を計算したい。 (a1 + a2 + a3 ... ) % m このとき、上の計算は以下と同値である。 (a1 % m + a2 % m + a3 % m ... ) % m これを剰余演算の分配法…

TypeScript の演算子を整理する

TypeScript (というか最近のJavaScript)って、よく分からない演算子多くないですか? なんか色々な箇所で! とか ? とか見るので意味が分からないと結構ストレスになります。 自分があんまりキャッチアップしてないのが悪いんですが、馴染みがない/薄い演算子…

(a + b - 1) / b で a / b の切り上げを計算する

整数 a, b に対して、 a / b の切り上げを計算したい場合 (a + b - 1) / b するという小技が競技プログラミングではよく使われる。 なぜこれで切り上げが計算できるのか、良い感じの説明が検索しても出てこなかったので自分なりの理解を書いておく。 以下 / …

TypeScript の共用体型は or ではないのかについて考えた

TypeScript の共用体型(Union Types)は or ではない を読み、確かによく分からん挙動だなーと思って色々調べたり考えたりしたことを書いておく。 タグ無し共用体型 形状A, B に対して、A | B と A & B で定義される型の性質 A | B = A ∪ Bという理解は正…

そもそも reflection とは何なのか

Go 言語を勉強していて reflection って何なんだろ、となったので調べた内容を書いておく。 そもそも reflection とは何なのか 自己書き換えコード reflection はメタプログラミング メタプログラミング なぜメタプログラミングしたいのか 実行時にしか分か…

Go の型システム周りについてのメモ

Go

Go の型システムについて、今理解していることを書く。もしかしたら間違っているかもしれない。 Go の型システム 型同士に階層がない(サブタイプ・スーパタイプのような関係がない) 型は名前によって区別される。階層がないので、ある型が要求された場合に…

シェルスクリプトの任意の箇所で git の branch 名をあいまい検索するエイリアスが便利

環境 mac OS 10.14.6 zsh 5.3 (x86_64-apple-darwin18.0) モチベーション git push や git checkout など、branch 名を タイプしないといけないときに正確に branch 名を入力するのが面倒くさい 結果 B と書かれている箇所にあいまい検索で見つけた branch …

GraphQL と Apollo Client / Server を学ぶためにやったこと

GraphQL と Apollo Client / Server を学んだので何をしたかを書いておく。 GraphQL 読んだ本 実装 感想 Apollo Client / Server 読んだ本 / ドキュメント 実装 感想 GraphQL 読んだ本 初めての GraphQL GraphQL スキーマ設計ガイド 最初に「初めての GraphQ…

AtCoder Beginner Contest に参加し始めた

AtCoder が毎週開催している AtCoder Beginner Contest (以下ABC)に参加するようになって 1ヶ月程度経ったので何かその辺りのことを書いておく。 今の成績 なぜやるか 始める前の実力 ABC 初参加前にやったこと 環境構築 AOJ ITP1 を解いた ABCに初めて参加…

購入後の mac にインストールするアプリ一覧

転職時や新規購入の際にお役立ち Alfred Amethyst Dash Docker for Mac Google 日本語入力 Logicool Options Slack Toggle VSCode そういえば、Chrome って初めから入っているんだっけ...?

VSCode で Go を書くための環境構築

環境 macOS 10.14.6 VSCode 1.44.2 ゴール 高速な補完、フォーマット、シンタックスハイライトが VSCode で動作する vim-go の :GoImport のようにモジュールを選択して import できる VSCode でデバッグできる(標準入力を伴う場合は入力した上でデバッグし…

日々の健康状態を記録する CLI ツールを Go で書いた

github.com 多分 go get すれば動くと思う DEMO 目的 「世界一のプロゲーマーがやっている 努力2.0」を読んだ感想 に書いた「自分が無理をしていないか、常にモニターする」をやりたいな、と思った ノートに書くよりは データの方が集計とか楽だし、CLI …

Rictyのバッククォート`が隣接する文字と重なる問題を解決したメモ

環境 mac OS 10.14.6 問題 スクリーンショットを撮るのを忘れていたが、`が隣の文字と重なってしまっていた(`uがúみたいな感じになる) markdownや文字列リテラルでバッククォートはよく使うんだけど、その度にこれが起きていて微妙な気持ちになっていた 解…

「勝ち続ける意志力 世界一プロ・ゲーマーの「仕事術」」を読んだ感想

前回の記事に続き、プロゲーマー本シリーズ。今回は勝ち続ける意志力 世界一プロ・ゲーマーの「仕事術」を読んだので感想を書く。最近、自分語りの投稿が増えているのはリモートワークが続いていることと何か関係あるのかもしれない。 成長が目的 目標と目的…

「世界一のプロゲーマーがやっている 努力2.0」を読んだ感想

世界一のプロゲーマーがやっている 努力2.0が面白かったので雑にメモを書く。 「75点」取れたら次に行く 自分が無理をしていないか、常にモニターする 体力 基本の完成度 ルーティン 自分を変えるな、環境を変えろ アウトソーシング ちょっとしたことを「…

Alfredでユーザと検索ワードを指定してTwitter検索するWorkflowsを作った

自分のtweetはメモ代わりでもあるので、時々検索したくなる。Alfredから検索できると便利かなーと思ったのでWorkflowsの練習がてら作ってみたので記録。 環境 Alfred 4.0.8 (Power Pack) 作ったもの 作り方 read user word<<< "{query}" open "https://twitt…

TypeScriptで「ヒーリングっど・プリキュア」を実装してnpmパッケージとして公開した

作ったもの www.npmjs.com モチベーション TypeScriptで何か作りたかった プリキュアの各言語での実装まとめ - Qiitaを見ていて、TypeScript実装がなかったので一応作った(最新のプリキュアのみ対応) npmパッケージを公開したことがなかったので試してみた…

HerokuでDocker, Go, Postgresを使ってAPIサーバを動かしてみた感想

環境 モチベーション どうやったか できたもの 手順 Heroku addonsのPostgresについて Dataclips pgsql Dockerを利用したHeroku デプロイについて その他 環境 mac OS 10.14.6 Go 1.12.4 モチベーション データのCRUDを伴うWebAPI(とDB)をサクッと作って公開…

docker rmiで image is referenced in multiple repositoriesが発生した

環境 macOS 10.14.6 Docker version 19.03.5, build 633a0ea Dockerの掃除をしていたら docker images を全削除するを参考に、イメージとコンテナの掃除をしていた その中になぜか削除できないイメージがいた ~/.ghq/github.com/pokuwagata/go-gin-gorm-hero…

urfave / cliを使ってGoでCLIアプリを作ってみた

Go

環境 macOS 10.14.6 go 1.12 urfave / cli v2.1.0 作ったもの github.com 何だこれは 苺ましまろという作品に登場するキャラクターの台詞を出力するだけのアプリ。 台詞は3パターンしか登録していない。アナちゃんと茉莉ちゃんは未対応。 モチベーション 久…

vim-lspを使用してtsxファイルに対してtypescript-language-serverを動かす

環境 macOS 10.14.6 VIM - Vi IMproved 8.2 prabirshrestha/vim-lsp v0.1.0 mattn / vim-lsp-settings v0.0.1 方法 前提:vim-lspはインストール済み wikiの手順と同じだが、whitelistの設定が異なる。 LSPをインストール $ npm install -g typescript types…

TypeScript, Go, Docker Composeに入門するために約半年間かけてWebサービスを構築した話

この記事はチームスピリット アドベントカレンダー2019の22日目の記事です。 今年(2019年)の7月から12月にかけて約半年間、プライベートでコツコツ開発していたWebサービスが一応形になった。技術的な内容は別の記事で書く予定なので、今回は半年間を通じて…

border-spacingで表の行列間の余白を調整する

この前初めて使った時に少しハマったのでまとめておく。 何をしたいのか 表の行列間に余白を作りたい。↓のように行と列で別々の余白を指定したい。 MDN border-spacingより引用 marginやpaddingはダメなのか w3cによると all elements except internal table…

Can't perform a React state update on an unmounted component... エラーにConetextが原因でハマった話

環境 react 16.8.6 事象 React.useEffectを使用しているコンポーネントをContext.Provider配下に配置したところ以下のエラーが発生した。 Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak …

Go modules利用時にvscode-goのinferGopathが無効化される理由

環境 VS Code バージョン1.36.1 (1.36.1) go version go1.12.4 darwin/amd64 事象 vscode-goにはワークスペースやユーザ毎に$GOPATHを推測するgo.inferGopathというオプションがあり、自分は常に有効化している(VSCodeでGoのデバッグにも以前に書いた) go.…