Lambdaカクテル

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

技術

サクサク年表君開発日記

年表を作るサービスを書いている。 年表作れるツールって無いなと思ったので勉強も兼ねてサクサク年表君を作っています pic.twitter.com/LL44tRALzc— уйндймелт (@windymelt) 2020年5月29日 自分で作っておきながら言うのもなんだけど,めっちゃ便利だな pic…

Scalaで型パラメータ付きクラス(トレイト)と抽象型付きクラス(トレイト)復習したところ全称型と存在型に出会った

だいたい同じことができる(ような気がする)別々の2つの言語機能についてよくわかっていないので書く。 // 筆者は型初心者。 型パラメータ traitには型パラメータを設けることができる。いわゆるジェネリクスというやつである。 trait Plus[A] { def plus(a…

emacsにevil-surround-mode導入した

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で変数名に使える文字が自由すぎる

おおざっぱなタイトルすぎる。 Common LispやSchemeといったLisp族はきわめて構文の構造が簡素である,といったことはわざわざ説明の必要もないでしょう。リストとして式のASTを表現するわけです。 (defun foo (bar) (+ foo bar)) ; あらゆる構文がリスト 構…

バ美肉した

カスタムキャストを手でパラメータ移行した(エクスポート機能がないので) iPadでカスタムキャストを動かす AirPlayでWindows/Macに転送する(LonelyScreenというソフトで受信できる) OBSで仮想カメラを動かす するとバ美肉できる。これでリモートワーク乗り切…

最近のはてブが怖い

さいきんみんな殺気立っているのか,正しさに敏感になっているのか,ちょっとしたことでプチ炎上みたいになって,びっくりした筆者が記事を消してしまう,というのをよく見ている。 b.hatena.ne.jp インターネット,そのへんの路上で喋っているようなものだ…

WEB+DB PRESS Vol.116『Perl Hackers Hub』に寄稿しました #wdpress #perl

宣伝です。 買おう 2020-04-24 (金) に発売予定となっているWEB+DB PRESS Vol.116に寄稿いたしました!!!!!!!!!! 『Perl Hackers Hub』という連載にて、 『GitHub ActionsとAmazon ECSを使ったDockerアプリケーションの自動デプロイ』という記事で…

その気にさせる / 落ちこぼれ脱出テクニック

先日ネットで、「どうしたら子供の知力が伸びますか」という問いに対して、「子供が選んだ好きな本を読ませてあげてください」という答えがあるのを見た。 記憶が曖昧なので正確な内容ではないかもしれないが、まず好きな本を読むことで文章を読む訓練を積み…

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

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とか…