Lambdaカクテル

京都在住Webエンジニアの日記です

技術

『エラスティックリーダーシップ』読んでコミットメント言語について学んだ

id:hitode909におすすめされたので読んだ。リーダーであるエンジニアのための本だが、リーダーでない自分にも学ぶべき点を見付けることができた。 この本は「チームリーダーの仕事は何か?」を説明する本だ。 大原則として、リーダーの仕事は、「メンバーの…

GraphVizをECSでHTTPサービス化して社内どこからでも使えるようにした話

グラフ作成ツールであるGraphvizを社内でHTTPサービス化し、どこからでも使えるようにした話です。 こういう感じで使えます。 $ curl -X POST http://graphviz.ほげほげ.example.com/ -d 'digraph { foo -> bar -> buzz; }' https://ほげほげふがふが.amazon…

『計画の科学』を読んでPERT図について学んだ / PERT図を出せるツールを作成した

id:hitode909におすすめされてはいたものの読んでなかったので、休日を使って読むことにしたのが『計画の科学』である。技術と読書の贅沢二本立て。 成果物 成果物1 あたまがよくなりました 成果物2 PERT図(をGraphVizで出力するためのDOTドキュメント)を出…

Pull Requestのフォーマットにビジネス文書のフォーマットを採用しようとしたが,失敗した話

かつて,僕が所属しているチームではPull Request(以下PR)のフォーマット,特に「どうして変更するのか」「どう変更したのか」といった経緯などの要素があまり充実していなかった。このためエンジニアのみならずデザイナーやプランナーも含めたチーム内の意…

Githubのブロックアイコンを回転させる

Githubのブロックアイコン,つまり赤いバッテンのアイコンを回転させたくなることはありませんか。まああると思うんですけど, こちら回転させたものになります。 .completeness-indicator-error { animation: rotate1 1s linear infinite; } @keyframes rot…

やってい気!!!!!!!

入社前ぼく「プログラミング完全に理解した」入社後ぼく「プログラミングなんもわかんねえ」今ぼく「プログラミングチョットワカル……」— メルコフ (@windymelt) 2020年2月19日 「おれはプログラミングの専門家だ!!」という自意識でいいのかずっと悩んでい…

stefanzweifel/git-auto-commit-action@v3.0.0ではuntracked fileがあるときエラー終了する

stefanzweifel/git-auto-commit-action@v3.0.0使ったメモ。 なにこれ github.com これはユーザが提供しているGithub Actionで,Github Actions Workflowの中でファイルが変更された場合,そのファイルをコミット&&プッシュしてくれるという便利なやつで, 社…

エラー処理むずかしい

設計やってたら,設計ミスってて,というか設計の筋が悪かったらしく,テストも書きにくいし,修正も難しくて全然通らなかったけど,同僚と会話しつつ設計を見直したら一瞬でテスト通るようになって,示唆的で学びがある一日だった。 エラー処理,Goとかの世…

TypeScriptのネストしたオブジェクトの内側の型を書き換える

あるオブジェクトのこのフィールドを書き換えたいことあるでしょ。 type A: { x: X // => Yにしたい!!! } まあこういうときはA2 extends Aみたいなのを宣言するか,まあいろいろやりようはあると思うんですが,これがネストしてたりするわけですよ。5重とか…

JSON Schema 継承 プロパティ 上書き 方法

ない 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メモ: subtypeのoneOfについて

JSON Schemaには,oneOfという便利な構文が用意されている。これは,与えられたスキーマのうちどれか1つだけがvalidなときvalidとする構文だ。 さて,そのoneOfの挙動で困ったのでメモする。具体的には,オブジェクト型Aと,別のオブジェクト型B,そしてAとB…

TypeScriptのUnion / Intersection Typesで遊んだ

(筆者は型入門者ですので,いい加減な事を書いていたらご指摘ください) ★追記: intersection typeとunion typeが逆だったので直した。 ★追記2: susisuくんにいいこと教えてもらったので追記した。 Intersection Types TypeScriptの型,とくにIntersection Ty…

awsvpcとdocker-composeメモ

awsvpcまわりのECSのネットワークの挙動がdocker-composeと違っていて困って調べたので今後のためにメモしておきます。 docker-compose service単位でbridgeが作成される bridgeはL2レイヤ bridgeがたくさん生えるが,docker for macではVMの中にbridgeが生…

VLANのお勉強した

うちは家にIPv6が降ってくる家なので、EdgeRouter X のDS-Lite機能を使ってv4通信をトンネリングさせている。 しかしうちに降ってくるアドレスはプレフィックスが/64なのでこれ以上ネットワークを分割できない。どういうことかというと、EdgeRouterがv6のル…

電子レンジの加熱時間をワット数をまたいで計算するツールをReactで書いた

www.3qe.us 完全に自分用ツールです。家の電子レンジが600Wなのですが、コンビニでお弁当を買って温めようとすると500W分の時間しか書かれてないわけです。このまま500W向けの時間で加熱するとアツアツになりすぎてしまいます。何度も口の中をやけどしながら…

Common LispのPackage-inferred-systemのサンプルリポジトリを公開した

github.com 作りました。 package-inferred-systemって何 簡単に言うと・・・ Common Lispではパッケージ名(言語上での名前空間)とモジュール(コンパイルする単位)とが分離しています 言い換えると,同じファイルにパッケージを複数入れる,といったことがで…

AWSのSecurity Groupで,ソースとしてSGを指定するとどうなるか

今日はAWSのSecurity Group(以下,SG)に詳しくなった。 EC2でインスタンスを作ろうとしたとき,何の考え無しにインスタンスを公開してパブリックIPなんざ付けた日には全宇宙にインスタンスが公開されて危ない。 なのでAWSには各種のアクセス制御機構が様々な…

Common Lispでマサワダを生成します

wwsmawaa こんばんは。id:Windymeltです。「masawada Advent Calendar 2019」22日目です。昨日はid:kazuhi_raさんの『受肉するmasawadaさん - かずひらの日記』でした。ついに3Dモデルの領域を越えて現実にその姿を現わしたid:masawadaさん。彼はこの混沌とし…

gqlgenの練習してGraphQL入門した

仕事でGraphQLを使う機会があり,言語はGoなので,gqlgenの練習をした。 github.com gqlgen なに GraphQLのSchemaを与えることでGraphQLのサーバのGoコードを生成してくれるジェネレータツール。 やったこと チュートリアルをなぞっただけ。 gqlgen.com 環境…

EdgeRouter Xを買ってDS-Lite設定した

わが家は世間一般的にも標準的なIPv6を引いているし、自宅鯖でDS-Liteを使ってIPv4ネットワークにも疎通するようにしている。とはいえファイルサーバも兼ねたマシンにルータもやらせているのでなんかpingとかが安定していない。もうIPv6やDS-Liteのお勉強は…

ブログの脚注を傍注にした

tech-blog.tanatana.info この記事をコピペ、というか真似して自分も脚注を傍注にした。*1jQuery最高。 ブログ記事にはページという概念がないので、脚注を書くと完全にスクロールしきらないといけない。岩波文庫を読んでいるような状態*2になってしまう。技…

ツイッターのふぁぼをクロールするツール作った/俺TUEEEを大事にしたい

今日はツイッターのふぁぼをダウンロードしてくるやつを作った Scalaは神 https://github.com/windymelt/dumpfav 自分のふぁぼが検索できなくて困っていたので、ふぁぼを200件ずつクロールして保存するツール作った。 JSONを吐くのであとはElasticsearchとか…

CIとかでファイルが修正されていたらコミットするのをスクリプト化した

CIとかで,gofmt -s -wとかeslint --fixとかをかけて,ファイルが修正されていたらコミットしてあげる,というのはよくやるテクニックだと思う。この動作は頻出だし,業務でも登場したのでシェルスクリプト化した。 ./commit-when-modified.sh "brach-name" …

世界の智の総量には追い付けない(もしくは、そうそう増えはしない)のだから、諦めてちっぽけな人間として暮らす

2000年前の世界の智の総量と、現代の智の総量とではどのくらいの開きがあるのだろう。かつての情報の発信者が数少なかった時代においては、 そこそこ頑張っていれば(そしてそれが可能な地位にあれば)一生のうちに世界のあらゆる叡智を取り込むことができたか…

記法・ 表記・マークアップ言語と呼ばれるものはどこまで許容されるのか

なんかYAML好きになれないんですがあなたはどうですか。オチはないです。 今仕事でやっているPerlのプロダクトでは(Config::Env)を使ってプロダクトの設定をしていて,DSLになっているので色々と便利ができる。 一番良く使っている機能は継承で,DSNとかを継…

YAPC::Nagoya::Tiny 2019 発表資料『Perlでもできる! Webサービス開発にDocker/ECS/CDKを 導入して良かったこと大変だったこと』

YAPC::Nagoya::Tiny 2019で発表した、『Perlでもできる!Webサービス開発にDocker/ECS/CDKを導入して良かったこと大変だったこと』の資料を公開します。 yapcjapan.connpass.com

Windymeltリリースノート(技術面での進捗)

ここ最近は技術的な進捗がわりとある気がする。特にAWSまわり。 CDK使って開発(確認)環境構築できるようになってきた YAPC::Nagoya::Tinyのネタです 趣味でやってるプロダクト(scala製)がよく進捗している CDKやったついでにnpxとかTypeScriptまわりの雰…

CDKアプリケーションのディレクトリ構造・処理フロー入門

CDKのことを良く知らなかったので,作りたいstackごとにcdk init してしまったWindymeltです。おっちょこちょい。仕事でCDKをいじっています。 さて,package.jsonがstackごとに生成されるのは困るので,1つのディレクトリにまとめる作業をするかたわら,CDK…

npxようやく理解した

npx is 何という状況がずっと続いていたけれどようやく合点がいったのでメモしておく。 npm復習 まずnpmについて実行可能なコマンドのインストールの側面からちょっと復習する。 npm install -g aws-cdkみたいなコマンドを叩くと,aws-cdkがグローバルにイン…

型クラスまわりの用語を整理した

用語のうち曖昧だった部分を整理した。お勉強です。まちがっていたらマサカリをください。著者はCSの学位を持たないかけだしです。 多相(多態)(polymorphism) 関数とかが引数の型によってさまざまな振舞いをすること より厳密には、値(関数を含む)が型を取る…