詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

Domain Modeling Made Functional を読んだ

最近フロントエンドに限らず TypeScript を書くことが多くなって、これでそれなりの規模のサーバサイドアプリケーションを書くときどうなるんだろう、と気になって読んでみた。いわゆる普通のオブジェクト指向ではなく関数指向な書き方でいきたいとき、どう…

Scrapboxで行頭にアスタリスクを挿入したら見出しにする

Scrapboxで見出しのようなものがほしいときには [** ほげほげ] と文字装飾を重ねて作るのが常套手段だけど、議事録などすばやくドキュメントを取りたい際にはこの「文字を囲んで装飾する」という手順にモタツキが生じてしまう。文字列を選択して * にしろ、[…

Stable Diffusion を Colab で Web アプリ化する

Stable Diffusion が来てるねってことで貧者の GPU であるところの Colaboratory でいろいろ試したいのだけどノートブック上で Python のコードをこまごまいじりながら試行錯誤するのは微妙に体験が悪い。 ちょっとしたウェブサービスとして立てて実行できる…

Colaboratoryでワードクラウドを生成する

任意の文章に対してワードクラウドを生成したい要件があるとき、非エンジニアでも行えるようにするには、ウェブアプリケーションとして提供するのもよいが、この程度のちょっとしたスクリプトのような用途であれば Google Colaboratory でもいいんじゃね、と…

Google Apps ScriptでSlackのプロフィールカードを作る

オンラインで直接顔を突き合わせずに仕事ができるようになったり、会社が大きくなってきたりすると、たまの飲み会で顔を突き合わせてもあれこの人どこの誰だっけ、となることもしばしば。 物理的な会なら名札を配るところ。オンラインでの会なら、バーチャル…

投稿短歌カレンダー

短歌、いま流行ってるそうです。電源もWi-Fiも歳時記もいらない、趣味としては最高にポータブルな部類でしょう。 現代ではウェブで短歌の投稿を受けつけているメディアもたくさんあって、はがきを送るようなことをしなくてもよいのはデジタルネイティブにも…

ISUCON12予選敗戦記(からあげネイティブ、3899点)

今回のISUCON12は惨敗だったのであまり記憶も残ってない……。 songmu、toricls、motemen のメンバーでの挑戦も3度目となり、いよいよ優勝したい、そのために当然予選突破はしたい、という年だった。 今回も自分が構築、他の2人が作戦と実装、という役割分担。…

Chrome 拡張のポップアップが表示されるタイミングは onload っぽい

Chrome 拡張のポップアップがどのタイミングで表示されるのか、ちょっとググった限りでは分からなかったので調べた。 掲題の通りで、結論としてはまあそりゃそうだ、とはなるが、ポップアップ内で img や iframe により外部リソースを読み込んでるようなとき…

ページ内のテキストを読めなくするChrome拡張を作った

世はまさにハイパーメディア時代。何をするにも視覚的なキャッチがないとやっていけない時代です。ブラウザのスクリーンショットを撮ることも多いでしょう。しかしプライベートな内容もそこに映り込んでしまうこともありがち。かといって画像をいちいち加工…

Googleカレンダーをターミナルからキーボードで操作する

全部キーボードで済ませたいシリーズです。 多忙な現代人の一日はその日の予定チェックから始まるわけです。普段であれば定期的な間隔で組まれたミーティングのリズムに身を委ねればいいわけですが、そこに非定型的なミーティングが紛れ込んでくる。これは採…

YouTube 動画を字幕によるナビゲーションつきで埋め込める Web Component を書いた

前の記事 でそうしていたんだけど、YouTube には字幕をつけられるので、ページに埋め込んだ際にその字幕までテキストとして表示してやれば親切である。ついでにそこまで早送りしてくれるとなおいい。 前回はべたっと書き下したものを、再利用性に期待して we…

3Dアバターに話を聞いてもらう

近年、世間ではリモートでスピーチをする機会が増加している。人前で喋ったことがあると経験があるのではないかと思うけど、テレビ会議ごしに話をすると目線が合わない、そもそも顔が見えないなどで反応がものすごく薄い。だんだんと慣れてきた感もあるけど…

Bubble Tea でリッチなターミナルアプリケーションを作る #Go

近年、普段の作業をマウスでやりたくない気持ちが高まっている(デスク周りが散らかってきたせいだという説が有力です)。メールは結局ターミナルでメールを読むことにしたため問題なく過ごせているが、その他のタスクをキーボードだけでやるには、ターミナ…

新しくリポジトリを作るまでもないコードは motemen/go-nuts に置いている #Go

OAuth2 のよくあるフローを何回も書きたくない #Go - 詩と創作・思索のひろばgolang.org/x みたいに、独立させるまでもないけど再利用したいパッケージを go-nuts レポジトリにまとめるのいいな。真似しようかな(名前もかわいい)2022/06/06 12:04golang.or…

OAuth2 のよくあるフローを何回も書きたくない #Go

よくあるフローってのは Google の API ドキュメントを読んでたらよくでてくるやつ(Calendar API の例)。つまり: 前回のアクセストークンが保存されていたらそれを使い、なかったら localhost にサーバを立て、redirect_uri をそこに設定した認可のための …

集中するためにやっていること2022

リモートワークにシフトしてから2年くらい経って、自分の中でもペースができてきたと思う。たまに出社すると時間が全然わからなくなることに気がついた。自宅で仕事しているときはほぼずっと PC の前にいて、右上をみると時間と次の予定がわかるようになって…

コマンドラインでメールの内容に基づいた処理をするツールを書いた: letterknife

メールに対する jq みたいなやつ……というと強力すぎるけど、そういう感じにメールを入力に受け取って何かしらの処理をした上で出力してくれるツールです。ここでいうメールとは MIME 形式のメール全体。Gmail なら "Show original" で見られるようなもの。 …

結局ターミナルでメールを読むことにした

最近は集中力を高める活動をしていて手をキーボードから離したくないんだけど、Gmail のウェブビューは Tab でフォーカスしにくいんじゃ~! メール上でやりとりすることってあんまりなくて、アップデートとして送られてきたメール中のリンクをたどりたいこ…

ターミナルからTickTickのタスクを確認する

TickTick はまだ使ってるぞよ! しかし新年の高揚感もとうに果てて、なんとか新鮮新奇さを演出してモチベーションを維持しようとしている状態。またできるだけタスクを確認するためのコストをゼロに近づけていく必要がある。最近はやっぱなんでもキーボード…

Puppeteerでファイルをダウンロードする2022

Puppeteer ってソラで書けますか? ぼくは書けないので pptr.dev にアクセスしてコピペしてます。 Puppeetteer でファイルをダウンロードする方法はわかりやすい API としては提供されておらず、Stackoverflow を毎回見てる。これも古い方法が出回ったままだ…

Makefileの代わりにnpm scripts+zxを使う

そこそこの規模があるプロジェクトで実行すべきタスクを定義するとき、初手として Makefile を使いがち。 Pros make は事実上どんな環境にもあることを期待してよい シェルで実行されるコマンドをそのまま書ける タスクの依存関係が明示できる Cons make で…

Scrapboxのコマンドラインクライアントを作った

ちょっとした手元の自動化を行おうとしたときに、Scrapbox のページ一覧を取得したり、プロジェクトの情報を取得したりしたくなる。Scrapbox ではとにかくほぼすべてが わかりやすい JSON API 経由で行われているわけなので、これをしてくれるコマンドライン…

Gitのおすすめエイリアス5選

緊急新人エンジニア応援企画! ということで自分が Git のエイリアスとして設定している便利コマンドを紹介していく。 直前のコミットに追いコミットする (git fixit) git commit --amend --no-edit もろもろ整えて git push しよう、とすると「あっちょっと…

Gatsbyでポートフォリオサイトを作った

motemen.works ポートフォリオはだいぶ前に Middleman で作ったきり放置していたのだけど、最近 motemen.works というドメインのインスピレーションを得たので、新しく作ることにした。こういうのは勢いだ。 Gatsby を使う 静的サイトのビルダには Gatsby を…

gotest.toolsを使う

docker/compose は Go で書かれてるが、これのテストに gotest.tools というライブラリが使われていた。あまり見たことがなかったけど、使ってみたらわりと手触りがよかったのでここに記しておく。 gotest.tools はいつもの testing パッケージを拡張するよ…

DevTools上でesbuildするChrome拡張を書いた

社内ではドキュメントの共有に Scrapbox が活発に使われており、するといきおい UserCSS や UserScript もさかんである。具体的には、/customize という共有のプロジェクトがあってみんなの自慢の装飾やカスタマイズが共有されている。これを個々人で import…

SlackやGoogle Docsにページへのリンクを共有するなら圧倒的にcocopyが楽

Scrapbox のような Wiki 的なツールでは URL にページ名が入ることが多く、URL を見るだけでどんな内容なのか想像がついてよい一方で、こういう URL を Slack や Google Docs のような別の場所に共有するとパーセントエンコーディングされた URL になってし…

早朝の薄氷をウェブで割る

薄氷をぴしぴし踏んで老詩人 ―― 中村苑子 すでに立春も過ぎましたが、まだまだ寒い日も多く春が待ち遠しい日々です。朝がた家の外に出ると、道ばたの水たまりに薄く氷が張っており、前の晩の寒さが思いやられつつ、ひび割れた様子を見ては、すでに登校してい…

Wordleの漢字バージョン「漢字ル」を作った

漢字ル こういうやつです。ぜひトライしてみてくださいね。 プロトタイピングのつもりができてしまった! 漢字版 Wordle。激ムズ漢字ル 1 8/20⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜https://t.co/jgITM4Edb4 pic.twitter.com/oQLiWL8kun— 美顔器 (@motemen) 2022年2月2日 本…

Alfredの代替としてRaycastを使っている

新春ツール入れ替えシリーズです。macOS における Spotlight 的なランチャーツールとして Alfred を長いこと使ってきたが、最近 Raycast を使ってみてこれがよかったので、以来ずっと使い続けている。 Raycast - Supercharged productivity 開発者のための便…

はてなで一緒に働きませんか?