技術
新版『テスト駆動開発』を読んで考えたことのメモ。 TDDとトップダウンな設計(ペア設計)の対立について TDDと普段の自分の開発の様子とが対立するのか,はたまた対立せずに補完し合う関係なのか分かりかねている。 TDDでは,何か機能を作ろうというとき,…
最近teipというツールをはてブで知った。説明を読んでいるとなかなか面白いしなんかに使えそうだなという印象を受けたので使ってみた。 speakerdeck.com github.com teipとは ひとことでは正確な表現をしにくいが,「フィールドやバイトオフセット,正規表現…
先日に引き続きサクサク年表君(仮)の開発を進めます。前回はこちら。 blog.3qe.us Webサービスのセキュリティを支える技術としてCSRFトークン(一般的にはワンタイムトークンと言う?)というものがあります。CSRFを対策するためのトークンです。 Webサー…
2時間くらいウンウン唸るはめになったのでメモ。 tl;dr DockerでNginxを使う場合はdefault.confを無視するな 大抵の場合において不要なのでincludeディレクティブを削除しろ シチュエーション TypeScript開発のために,Dockerのnginxオフィシャルイメージで…
できたらいいなというメモです。 エンジニアは暗号化ZIPファイルのパスワードをメールで教えるようなしぐさをバカにするわけですが,結局公開鍵暗号を普及させることもできていないわけです。 Yubikeyという便利なトークンがあるので,これとPINがあればファ…
TypeScriptが動くようになった blog.3qe.us 先日からの作業により,必要最低限のバックエンドの機能が出来た。とはいえ年表の作成UIはデバッグ用途でしかなく,到底実用には堪えない。表示だけがいちおうまともにできるようになった,という状態だ。 そうい…
年表を作るサービスを書いている。 年表作れるツールって無いなと思ったので勉強も兼ねてサクサク年表君を作っています pic.twitter.com/LL44tRALzc— уйндймелт (@windymelt) 2020年5月29日 自分で作っておきながら言うのもなんだけど,めっちゃ便利だな pic…
だいたい同じことができる(ような気がする)別々の2つの言語機能についてよくわかっていないので書く。 // 筆者は型初心者。 型パラメータ traitには型パラメータを設けることができる。いわゆるジェネリクスというやつである。 trait Plus[A] { def plus(a…
EmadsのEvilで使えるプラグイン,evil-surround-modeを入れた。 github.com このプラグインは,なにかをカッコなどで括る操作のショートカットを提供する。 基本操作 (normal mode) ys<word object><char> -- 文字列を囲う cs<char1><char2> -- 囲っている文字を書き換える ds<char> -- 囲っている文</char></char2></char1></char></word>…
おおざっぱなタイトルすぎる。 Common LispやSchemeといったLisp族はきわめて構文の構造が簡素である,といったことはわざわざ説明の必要もないでしょう。リストとして式のASTを表現するわけです。 (defun foo (bar) (+ foo bar)) ; あらゆる構文がリスト 構…
カスタムキャストを手でパラメータ移行した(エクスポート機能がないので) iPadでカスタムキャストを動かす AirPlayでWindows/Macに転送する(LonelyScreenというソフトで受信できる) OBSで仮想カメラを動かす するとバ美肉できる。これでリモートワーク乗り切…
さいきんみんな殺気立っているのか,正しさに敏感になっているのか,ちょっとしたことでプチ炎上みたいになって,びっくりした筆者が記事を消してしまう,というのをよく見ている。 b.hatena.ne.jp インターネット,そのへんの路上で喋っているようなものだ…
宣伝です。 買おう 2020-04-24 (金) に発売予定となっているWEB+DB PRESS Vol.116に寄稿いたしました!!!!!!!!!! 『Perl Hackers Hub』という連載にて、 『GitHub ActionsとAmazon ECSを使ったDockerアプリケーションの自動デプロイ』という記事で…
先日ネットで、「どうしたら子供の知力が伸びますか」という問いに対して、「子供が選んだ好きな本を読ませてあげてください」という答えがあるのを見た。 記憶が曖昧なので正確な内容ではないかもしれないが、まず好きな本を読むことで文章を読む訓練を積み…
id:hitode909におすすめされたので読んだ。リーダーであるエンジニアのための本だが、リーダーでない自分にも学ぶべき点を見付けることができた。 この本は「チームリーダーの仕事は何か?」を説明する本だ。 大原則として、リーダーの仕事は、「メンバーの…
グラフ作成ツールであるGraphvizを社内でHTTPサービス化し、どこからでも使えるようにした話です。 こういう感じで使えます。 $ curl -X POST http://graphviz.ほげほげ.example.com/ -d 'digraph { foo -> bar -> buzz; }' https://ほげほげふがふが.amazon…
id:hitode909におすすめされてはいたものの読んでなかったので、休日を使って読むことにしたのが『計画の科学』である。技術と読書の贅沢二本立て。 成果物 成果物1 あたまがよくなりました 成果物2 PERT図(をGraphVizで出力するためのDOTドキュメント)を出…
かつて,僕が所属しているチームではPull Request(以下PR)のフォーマット,特に「どうして変更するのか」「どう変更したのか」といった経緯などの要素があまり充実していなかった。このためエンジニアのみならずデザイナーやプランナーも含めたチーム内の意…
Githubのブロックアイコン,つまり赤いバッテンのアイコンを回転させたくなることはありませんか。まああると思うんですけど, こちら回転させたものになります。 .completeness-indicator-error { animation: rotate1 1s linear infinite; } @keyframes rot…
入社前ぼく「プログラミング完全に理解した」入社後ぼく「プログラミングなんもわかんねえ」今ぼく「プログラミングチョットワカル……」— メルコフ (@windymelt) 2020年2月19日 「おれはプログラミングの専門家だ!!」という自意識でいいのかずっと悩んでい…
stefanzweifel/git-auto-commit-action@v3.0.0使ったメモ。 なにこれ github.com これはユーザが提供しているGithub Actionで,Github Actions Workflowの中でファイルが変更された場合,そのファイルをコミット&&プッシュしてくれるという便利なやつで, 社…
設計やってたら,設計ミスってて,というか設計の筋が悪かったらしく,テストも書きにくいし,修正も難しくて全然通らなかったけど,同僚と会話しつつ設計を見直したら一瞬でテスト通るようになって,示唆的で学びがある一日だった。 エラー処理,Goとかの世…
あるオブジェクトのこのフィールドを書き換えたいことあるでしょ。 type A: { x: X // => Yにしたい!!! } まあこういうときはA2 extends Aみたいなのを宣言するか,まあいろいろやりようはあると思うんですが,これがネストしてたりするわけですよ。5重とか…
ない It is important to note that the schemas listed in an allOf, anyOf or oneOf array know nothing of one another. While it might be surprising, allOf can not be used to “extend” a schema to add more details to it in the sense of object-o…
JSON Schemaには,oneOfという便利な構文が用意されている。これは,与えられたスキーマのうちどれか1つだけがvalidなときvalidとする構文だ。 さて,そのoneOfの挙動で困ったのでメモする。具体的には,オブジェクト型Aと,別のオブジェクト型B,そしてAとB…
(筆者は型入門者ですので,いい加減な事を書いていたらご指摘ください) ★追記: intersection typeとunion typeが逆だったので直した。 ★追記2: susisuくんにいいこと教えてもらったので追記した。 Intersection Types TypeScriptの型,とくにIntersection Ty…
awsvpcまわりのECSのネットワークの挙動がdocker-composeと違っていて困って調べたので今後のためにメモしておきます。 docker-compose service単位でbridgeが作成される bridgeはL2レイヤ bridgeがたくさん生えるが,docker for macではVMの中にbridgeが生…
うちは家にIPv6が降ってくる家なので、EdgeRouter X のDS-Lite機能を使ってv4通信をトンネリングさせている。 しかしうちに降ってくるアドレスはプレフィックスが/64なのでこれ以上ネットワークを分割できない。どういうことかというと、EdgeRouterがv6のル…
www.3qe.us 完全に自分用ツールです。家の電子レンジが600Wなのですが、コンビニでお弁当を買って温めようとすると500W分の時間しか書かれてないわけです。このまま500W向けの時間で加熱するとアツアツになりすぎてしまいます。何度も口の中をやけどしながら…
github.com 作りました。 package-inferred-systemって何 簡単に言うと・・・ Common Lispではパッケージ名(言語上での名前空間)とモジュール(コンパイルする単位)とが分離しています 言い換えると,同じファイルにパッケージを複数入れる,といったことがで…