yn2011's blog

技術メモ

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.…

使用しているAlfred Workflows一覧

環境 Alfred 4.0.3 Alfred Powepackを利用している場合は2台のMacでAlfredの設定を同期することも可能(ドキュメント)だが、1台からの片方向同期かつWorkflowsだけを同期するのは難しそうなので、業務で使用するMacとは手作業で同期を行うことにしようと思…

Docker Compose上で起動したwebpack-dev-serverに設定されたプロキシが動作しなくてハマった話

環境 macOS 10.14.4 docker-compose version 1.23.2 webpack-dev-server 3.7.2 webpack 4.37.0 フロントエンド(webpack-dev-server)、バックエンドをそれぞれDocker Compose上にコンテナとして起動して開発していた際にハマったお話。 事象 webpack-dev-se…

bashコマンドは読取権限のあるファイルなら処理できる

環境 Permission denied 読取権限 環境 GNU bash, バージョン 4.4.23(1)-release (x86_64-apple-darwin18.0.0) Permission denied $ touch hoge.sh && ./hoge.shするとbash: ./hoge.sh: Permission deniedになる 実行権限がない しかし$ touch hoge.sh && ba…

httptest.Serverとhttptest.ResponseRecorderの使い分け

Go

環境 httptest.Serverとhttptest.ResponseRecorder httptest.Server httptest.NewRecorder 関連:NewRecorderを利用する場合にserveHTTPを使用する必要があるのか 参考 環境 go1.12.4 darwin/amd64 httptest.Serverとhttptest.ResponseRecorder ServerとResp…

draw.ioで両端が矢印の線を引く方法

www.draw.io AWSの構成図をdraw.ioで描いていて、両端が矢印の線を引く方法が分からなかった。もう諦めてCacooを使おうかと思っていたところ解決策が見つかった。 How to create a bidirectional arrow? : draw.io Helpdesk ちなみに上記で操作しているサイ…

VSCodeでGoのデバッグ

今更感はあるがVSCodeでGoのソースコードをデバッグしてみたので記録。 環境 delveインストール VSCodeにテスト対象の$GOPATHを認識させる launch.jsonを作る デバッグする まとめ 環境 macOS 10.14.4 go1.12.4 darwin/amd64 VSCode バージョン1.32.1 vscode…