タグ

ブックマーク / motemen.hatenablog.com (60)

  • Angband(4.x系)を日本語化している話 - 詩と創作・思索のひろば

    こんにちは。この記事ははてなエンジニアAdvent Calendarの24日目の記事です。昨日はid:todays_mitsuiさん、明日はid:d-haruさんです。いいタイミングで風邪を引いてしまったので、今年も趣味の話です。 ローグライクといえば最近は定義がけっこう広がってきている印象がありますが、いわゆるRogueライクなコンピュータゲームの系譜で、Nethackと並んで重要なのがAngbandですね。自分も高校生の頃だったか、指輪物語を読んであまりに面白かったので何かゲームをやりたい! と思って何故かAngbandのフォークのフォークである変愚蛮怒を始めたような覚えがあります。いや順序が逆だったかもしれねェ……。何も覚えていない……。ともあれこういうテキストベースのゲームですね。トルネコとかシレンとか。 思うところあって今年はこのAngbandの日語化を休み休みやっていたので、

    Angband(4.x系)を日本語化している話 - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2023/12/27
  • Gitでマージ済みのブランチを一括削除する - 詩と創作・思索のひろば

    こうしてます。 git for-each-ref --merged HEAD --no-contains HEAD 'refs/heads/**' --format '%(refname)' \ | while read s; do echo "$s $(git rev-parse "$s")"; git update-ref -d "$s"; done git branch を使ったやり方が一般的なようだが(Google調べ)、配管(Plumbing)コマンドを使って厳密にやるならこうでしょう。 git for-each-ref はリポジトリのrefを一覧するコマンド。refs/heads/** はいわゆるローカルブランチにマッチするパターン。--merged HEAD で現在のブランチであるHEADにマージ済みのブランチを、--no-contains HEAD でそのうちHEADを除い

    Gitでマージ済みのブランチを一括削除する - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2023/10/20
  • Vimmer、Visual Studio Codeを使う - 詩と創作・思索のひろば

    まだ汚れを知らない若者だったころに「プログラムはね、これを使って書くんだよ」と言われて以来Vim友達だと思ってずっと(15年くらい)使ってきたが、最近は、とくに新しく何かを書くときにはVSCodeを使うようになってきた。コードを書く間隔が広がってきたせいか、新しい技術や言語に対応することができておらず、なんか最初からいい感じになってるエディタを重宝する。歳を取ってきたからなんだろうな、と素直に思うけれど、自分向けになにかをカスタマイズすることにあまり熱を感じなくなっていて、すでにあるよいと分かっているものに自分を調整していくことを選ぶようになってきた。 とはいえ身体はVimに慣れきってるのでVSCodeを使い始めたときはVSCodeVimを使っている……いた、というのが今回の話。よくできてるとは思うが、とにかくu(アンドゥ)の挙動が家と違うのがどうも身体に合わない。逆にストレスが高まっ

    Vimmer、Visual Studio Codeを使う - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2023/10/05
    "vim.normalModeKeyBindingsNonRecursive": [ { "before": [ "u" ], "commands": [ "undo" ] } ]
  • 2022年に作ったもの16(セルフレビューあり) - 詩と創作・思索のひろば

    2015年にも同じ趣旨の記事を書いていた。このときはこんな感じで毎年20個くらいはなんか作るんだろうなとかイノセントに考えていたけど、そうは問屋が卸さず、大して生み出せてない年が続いてきたが、今年はそれなりに作ったんじゃない? と思えたので、振り返ってみる。オシャレにハッシュタグっぽく使った技術を書いてるぜ! 漢字ル #React ウェブ薄氷 #CloudflareWorkers DevTools で esbuild する Chrome 拡張 #Chrome sbx: Scrapbox のコマンドラインクライアント #Go ターミナルから TickTick のタスクを確認するツール #AppleScript letterknife: コマンドラインで使えるメール向けの jq のようなもの #Go oauth2util: OAuth2 の認可フローを簡略化 #Go Vnodroid: 話を聞

    2022年に作ったもの16(セルフレビューあり) - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/12/18
  • 自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば

    低レイヤを知りたい人のためのCコンパイラ作成入門 まさに低レイヤのことが分かっておらず、以前から気になっていたこの。取り掛かってみたところ思いのほかスイスイ進められて、勢いに乗ってセルフホスト(自分が書いたコンパイラで自分自身をコンパイルするところ)までいけたので記念に書いておく。正確には C コンパイラのサブセットです。 GitHub - motemen/mocc 全体的な進め方は、 上記のの通りに進めていく。 それ以降は自作の 8queen が普通に書けるように機能を強化。 それ以降はセルフホストを目標に進める。 プリプロセッサやリンカは作らず、C からアセンブリまで。 という感じ。自分は手を動かさないと進んでる気がしないので、まずは書いてみつつわからない所があれば調べる、というスタンスでいく。 あと、せっかくなので RISC-V の勉強もしたかったのでこれ向けに書く。なので実行は

    自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/11/21
  • Chrome仕事術 - 詩と創作・思索のひろば

    いろいろ工夫した結果、最近 Chrome さばきが良くなってきた気がするので、やっていることを書いておく。 タブが必要になる時刻でグループ化しておく 忙しい一日の予定を立てる際に、あらかじめ必要な資料・会場をタブで開いて時刻を打っておくと便利。終わったらまとめて閉じることもできる。 Chromeのタブを必要になる時刻でグループ化しておくライフハック pic.twitter.com/P8RQLy7h9K— 美顔器 (@motemen) 2022年8月22日 ページのブックマークタイトルを自分用に変更する ブラウザのブックマークはあまり有効活用してなかったけど、タイトルを自分用につけておくとロケーションバーからの検索に便利なことを体感している。<プレフィクス> | <検索用ワード>, ... という感じでタイトルを設定していて、プレフィクスは ミーティングの議事録など会場: mtg 1on1

    Chrome仕事術 - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/11/11
    かしこい
  • コードレビューのときに見ているところ - 詩と創作・思索のひろば

    あるときコードレビューするときにどういうところ見てるんですか? と訊かれてたしかに自分でもあまり言語化したことはなかったな、と気づいたので簡単に書いておく。 変更意図が要求に沿っているか そもそも実現しようとしていることが、ユーザやプロダクトオーナーの要求に沿っているか。モデリングや実装のコンテキストを自分でも把握しておく。 関連する別の変更やイシューなど、自分が知っていて相手が知らない有意義な情報があったらコメントする。 モデリングが妥当か モデルによって意図が表現できているか。仕事が適切な粒度で明確に切り分けられているか。意図のない共通化がなされていないか。 わかりやすい名前がつけられているか。ここが混乱していると何かがよくないサイン。既存のコードがすでに……ということもある。そういう場合は改善できそうな道筋について議論できるとベター。 仕事にあったインタフェースになっているか。テスト

    コードレビューのときに見ているところ - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/10/10
  • 3Dアバターに話を聞いてもらう - 詩と創作・思索のひろば

    近年、世間ではリモートでスピーチをする機会が増加している。人前で喋ったことがあると経験があるのではないかと思うけど、テレビ会議ごしに話をすると目線が合わない、そもそも顔が見えないなどで反応がものすごく薄い。だんだんと慣れてきた感もあるけどやっぱり喋りづらい。技術による人間の疎外、これは仕方がないことですよ。 そうであれば解決するのも技術だ、というわけで作ってみたのがこちら(マイクの権限が必要です)。ブラウザの中から誰かがこちらを見てくれていて、話にうなずいてくれる。ただそれだけ。だけど、多数に向けたスピーチの際にうなずいてくれる人間の貴重さを知っている人には、このありがたさに共感してくれるのではないだろうか。 Vnodroid pixiv/three-vrm を使って3Dアバターヒューマノイドをブラウザ上に表示し、あたかもそこで自分の話を聞いているかのように存在させている。呼吸とまばたきを

    3Dアバターに話を聞いてもらう - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/06/27
    やっぱmotemenさんは発想が天才的
  • Gitのおすすめエイリアス5選 - 詩と創作・思索のひろば

    緊急新人エンジニア応援企画! ということで自分が Git のエイリアスとして設定している便利コマンドを紹介していく。 直前のコミットに追いコミットする (git fixit) git commit --amend --no-edit もろもろ整えて git push しよう、とすると「あっちょっと修正したい」となるのはよくあること。その際いちいちコミットメッセージを書いて rebase するかというとそんな面倒はとりたくなく、一撃で終わらせたい。--no-edit でコミットメッセージを編集せずに --amend できる。 git fixit に設定している。git commit の引数をそのまま受け付けるので、git fixit -a や git fixit <file> のように使える。 メインブランチに戻る (git com) f() { remote_head=$(git symb

    Gitのおすすめエイリアス5選 - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/04/01
  • 早朝の薄氷をウェブで割る - 詩と創作・思索のひろば

    薄氷をぴしぴし踏んで老詩人 ―― 中村苑子 すでに立春も過ぎましたが、まだまだ寒い日も多く春が待ち遠しい日々です。朝がた家の外に出ると、道ばたの水たまりに薄く氷が張っており、前の晩の寒さが思いやられつつ、ひび割れた様子を見ては、すでに登校している生徒たちがここを通ったことにも気づきます。 そんな気持ちを体験できるページを作りました。その名もウェブ薄氷(うすらい)。 ウェブ薄氷 早朝に氷が張り、最初の一人だけがこれを割れます。残念ながら昼になると溶けてしまいますが。 実装はドメインからも分かるとおり Cloudflare Workers。氷を割った時刻を KV に保存している。 最初はただひとつの状態だけを持つ実装にしていたけど、やっていたら request.cf という特別なオブジェクトから クライアントのアクセス元の情報も 国・地域・都市のレベルでそれぞれ取れるようだったので、その粒度で

    早朝の薄氷をウェブで割る - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/02/15
    情緒がある
  • Alfredの代替としてRaycastを使っている - 詩と創作・思索のひろば

    新春ツール入れ替えシリーズです。macOS における Spotlight 的なランチャーツールとして Alfred を長いこと使ってきたが、最近 Raycast を使ってみてこれがよかったので、以来ずっと使い続けている。 Raycast - Supercharged productivity 開発者のための便利ツールという売り文句のようで、そういう点がまさに気に入った。 カレンダーの次の予定が表示される まずこれがいい。これだけで十分使える。ランチャーを起動したときにカレンダーの次の予定を表示してくれる。Enter でそのまま Meet や Zoom を開いてくれるのでキーボードから手を離す必要がない。 もともとカレンダーの確認には Dato を使っていたし今も使ってるが、これでミーティングへのアクセスがかなりよくなった。 コミュニティベースの Store で機能を追加できる https:

    Alfredの代替としてRaycastを使っている - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/02/01
    ちょっと触ってみただけで乗り換え待った無しって感じだった。
  • 「半年早く動く」を目標にして半年が経った - 詩と創作・思索のひろば

    社内に「来年の今年の目標は『半年早く動く』です」というエントリを書いて半年が経った。 こういう目標を立てたきっかけは、自分が変化のタイミングとして会社の会計年度(半期)を考えるようになっていたことに気づいたことだった。 同じ会社でマネージャも長いこと続けていると、部下や同僚の退職を見送る経験も多い。これは一般的に言っても、あまり楽しい体験ではない。辞める理由は人それぞれで、ひと括りにすることはできないものであるし、こう考えるのはおこがましい感じもするが、立場的には、自分が何かアクションを起こすことでまだこの会社で活躍してもらえていたんじゃないかと思うのも常だ。そして実際、そのための、たとえば環境を変えるといったことを考えて、準備もしていた場合も多かった。来期まで待っててくれればな……、という具合。 けれど、自分が制度や組織の設計を仕事の手段としてるのでそう考えていたとしても、ひとの人生はそ

    「半年早く動く」を目標にして半年が経った - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2022/01/09
    自分にはまだ半年先が見えないので、四半期先からやってみよう。
  • meishi2キーボードを作った - 詩と創作・思索のひろば

    このときのHHKBずっと使ってたんだけど、昨日ついに壊れた https://t.co/dwvoxapmsN— 美顔器 (@motemen) 2021年7月7日 新卒のころから使っていた Happy Hacking Keyboard が壊れた(アンチポップさんにもらったやつ。ありがとうございます)。とくにメンテもせずに、もう10年以上使えていたので感謝の気持ちとともに新しいキーボードに買い換えることにする。Macbook Pro の内蔵キーボードはチャタリングするんでちょっとしんどい。 少し悩んで、せっかくなので自作キーボードに挑戦してみることにした。はんだ付けは小学生のときに工作教室でほんのちょっと触ったか? くらいである。「自作キーボード 入門」で検索して出てきたこれを買うことにする。見た目のかわいい ErgoDash。工具セットも買った。 で、届いたんだけど、どうも圧倒されてしまう感覚

    meishi2キーボードを作った - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2021/08/09
    沼へようこそ / はんだ付けのいらないキットから始めるのもありです
  • Dockerfile をベースイメージの更新に自動で追従させる - 詩と創作・思索のひろば

    前回のエントリで作った Docker イメージ motemen/datastore-emulator は、google/cloud-sdk をベースにしているが、このベースイメージがけっこうな頻度で更新される。とうぜん自分はその追従に手を煩わせる気はなくて、全部自動でやってほしい。 やりたかったこと google/cloud-sdk:x.y.z がリリースされたら、 リポジトリ中の ./Dockerfile と ./alpine/Dockerfile の FROM を google/cloud-sdk:x.y.z(-alpine) に更新し、 x.y.z タグを打って git push することで、 Docker Hub に x.y.z(-alpine) タグとしてリリースする これを自動かつ無料で実現したい。 採用しなかった案: 自分でなんか作る はじめは適当な GitHub Actio

    Dockerfile をベースイメージの更新に自動で追従させる - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2021/03/12
  • ターミナルでSlackを読む - 詩と創作・思索のひろば

    Slackはそのクライアントがそれなりに、かなりよくできていて、これでほとんど困ることはないんだけど、そうは言ってももうちょっとプログラマブルに取り扱いたいこともある。 そういう場合にもよいAPIが用意されていて、Real Time Messaging API ってのがある。こいつはWebSocketでSlackの発言をはじめ、あらゆるイベントのJSONを送りつけてくれるやつ。ひとまずこれを標準出力に流すことができれば、あとは好きに料理できるはずだ。 というわけで作ったのがこちら。書いたことなかったのでRustです。ちょうどいいネタだった。 GitHub - motemen/slack-stream-json slack-stream-json というバイナリが、SLACK_TOKEN 環境変数を設定した上で起動してやると、RTM APIによって得られたイベントのJSONをそのまま標準出力

    ターミナルでSlackを読む - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2019/11/22
    べんりすぎる
  • カレンダーでタスクを管理することとその実装 - 詩と創作・思索のひろば

    昔からタスクを次々こなしていくことはすごく苦手で、Todoist とか Remember The Milk とか Google タスクとか Hiveminder とか! を使ってみることはあってもタスクがどんどん溜まっていく一方で、一向に捌ける様子はなく、そういう状態を続けていると TODO リストは腐っていてしまって、開くことすら億劫になってしまう。そうやっていくつものタスク管理ツールを荒廃したまま捨てていった結果、久しぶりに Remember The Milk を開いてみると学生のときのタスクがまだ残っていてウッとなったりするのもよくあることです。 そういうタスク管理ツールの何がよくないのかというと、ツールはタスクの期限を管理してくれるものは多いけれど、どのタスクをいつやるべきかということに関しては管理できないというか指示してくれない、というのが自分の性格においては問題なのらしい。自分

    カレンダーでタスクを管理することとその実装 - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2019/06/27
  • パール、アナルを使え!または私は如何にして Perl のワンライナーを書けるようになったか - 詩と創作・思索のひろば

    簡単に言うとこういうことです。今日はこれだけ覚えて帰ってください。 perl -anal -e "…" 同様のオプションは Ruby でも使えます。 解説 -a いきなり見かけないオプションですが、入力を空白文字で区切り、@F という配列に入れてくれます。それ以外の影響はないので使わないときでも指定して問題なし。2 回指定してるのも意味ないです。語呂合わせです。Ruby の場合は $F ですね。 -n -e で指定されたコードを LINE: while (<>) { … } で囲みます。標準入力やファイルを一行ずつ処理するときに便利。sed や grep が簡単に書けますね。ワンライナーでは多様するオプションでしょう。代わりに -p を指定することで最後に print; することもできます。 -l -n や -p が指定されているときに各入力を chomp します。また、各出力に改行を追加

    パール、アナルを使え!または私は如何にして Perl のワンライナーを書けるようになったか - 詩と創作・思索のひろば
  • GitHub の通知メールで、クローズやマージされたものにラベルをつける - 詩と創作・思索のひろば

    Google Apps Script でメールの自動アーカイブの続編です。 https://github.com/motemen/gas-gmail-scripts/blob/master/dist/label-github-issue-status.js GitHub のリポジトリにやってくるイシューや Pull Request って、対応する心的コストがばかにならないので放置しがちなんだけど、すでにクローズとかマージされたものに関しては気楽に流し読みしていいはず。そういうシグナルで自分を解き放っていきます。 Gmail 体のフィルタルールでもできそうなものだけど、"Closed" を含む〜みたいなルールだとわりと誤爆するので、GAS で書く。 こんな感じにラベルがつけられて、便利ですね。 メールの文を見て処理を行うだけなら簡単なんだけど、"Closed #42." みたいなのを勝

    GitHub の通知メールで、クローズやマージされたものにラベルをつける - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2018/12/26
    べんり
  • 社内ブログで連載していた小説『ひとでクロニクル』を公開します #HTDCHRNCL - 詩と創作・思索のひろば

    1 「はあ、はあ……これは奴らの陰謀だっ」 ひとでは走っていた。会社に遅刻しそうだったからだ。急いで電車に駆け込んでハアハアと息をついた。 「マサ、元気にしてるかな?」 ひとではマサのことを思い出した。 「さあ今日も仕事だっ☆」 マサは仕事していた。 「やあおはよう、寝坊かい」 イケメンがひとでに挨拶した。イケメンは、東京からやってきた。イケメンは、上場企業出身で、来週もRuby合宿に参加する奴だ。 はこべ「ひとでさん……ぽっ♥」 はこべさんが壁から見ていた。 ☆100でつづきます 2 オレははこべ。都内の私立高校に通う高校2年生だ。 tdk(続く) 3 「あーあ、数学の授業かったるいな〜」 なぜならオレは▒▒▒▒[プライバシー保護のため墨塗り]だからだ。俺の名ははこべ。その日も下らん授業を受けてアクビをしていた。 TDK 4 ▒▒▒▒?そう、俺は▒▒▒▒だ。オレはこの国の国家元首なのだ。

    社内ブログで連載していた小説『ひとでクロニクル』を公開します #HTDCHRNCL - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2018/05/25
  • Ether を送金した人だけコンテンツを閲覧できる Ðapp を書いた - 詩と創作・思索のひろば

    Ethereum はブロックチェーン上でアプリケーションを動かせる(スマートコントラクト)ってので興味を惹かれて、どんなことができるのか調べてたんだけど、感じを掴むために一つ書いてみた。 やりたいことは、ウェブページに送金ボタンがあって、そこから特定のアドレスに Ether を送金し、送金が確認されたら秘密のコンテンツをページ上に表示する、てなもの。送金の確認はスマートコントラクトで行えるが、秘密の情報をブロックチェーン上に記録するわけにはいかないのでこれはウェブサーバに秘匿することになる。とすると、ウェブサーバに私はこの Ethereum アドレスです、とセキュアに伝えてやる必要がある。後で書くけど、あまりいい解法ではない。 知識ゼロの状態から分からないことを潰しつつなんとか動くところまでこれたので、ウェブアプリケーション開発者がつまづいたところをメモっとく。 デモ MetaMask W

    Ether を送金した人だけコンテンツを閲覧できる Ðapp を書いた - 詩と創作・思索のひろば
    Sixeight
    Sixeight 2018/03/09