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

  • Bubble Tea でリッチなターミナルアプリケーションを作る #Go - 詩と創作・思索のひろば

    近年、普段の作業をマウスでやりたくない気持ちが高まっている(デスク周りが散らかってきたせいだという説が有力です)。メールは結局ターミナルでメールを読むことにしたため問題なく過ごせているが、その他のタスクをキーボードだけでやるには、ターミナル動くアプリケーションを作れる必要がある。それもリッチなやつだ。見た目は派手な方がいい。 この記事は Kyoto.go remote #32 LT会 で発表した 入門 Bubble Tea の増補版です。 Bubble Tea とは GitHub - charmbracelet/bubbletea: A powerful little TUI framework 🏗 Bubble Tea とは、Go でリッチなターミナルアプリケーション(TUI)を作るためのフレームワーク。Charm というプロジェクトの一部のようで、ホームページを見てもらったら分かると

    Bubble Tea でリッチなターミナルアプリケーションを作る #Go - 詩と創作・思索のひろば
    IzumiSy
    IzumiSy 2022/06/20
    GoにもElmアーキテクチャが輸入されてておもしろい。RustのicedもElmインスパイアドだし、UIのデータフローとしてElmアーキテクチャはやっぱり便利なのかな。
  • ターミナルで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を読む - 詩と創作・思索のひろば
  • なぜプレゼンで失敗するのか - 詩と創作・思索のひろば

    自分も大方の人間と同じように人前で喋るのは苦手で、可能であれば避けたいと思っているけれど、一方でこの業界で生きのこる方法のひとつとして避けられないものでもあると思っている(ので苦しい)。若かりしころ手痛い失敗をしたこともあって、かなり苦手意識を持ちつづけていたが、最近はわりかし上手く付き合えるようになってきたかなとふり返って思う。 今もうまいプレゼンテーションをする方法は知らないし、それを僕から知りたいという人はいないとおもうが、プレゼンでしくじる方法なら経験から知っている。準備をしないこと。自分の経験からはそうだし、まずいプレゼンを見ていてもそうなんだろうな、と思うことはやっぱり多い。 このエントリはプレゼンがいやでいやで仕方がなかった自分のための分析であり、プレゼンのマイナスレベルをゼロまで引き上げようとする努力です。ソフトウェアエンジニア技術者間交流のためのプレゼンというのが前提。

    なぜプレゼンで失敗するのか - 詩と創作・思索のひろば
  • コード補完もできる Go の REPL「gore」を作った - 詩と創作・思索のひろば

    タイトルの通りです。Go は LL 的に使える、とはよく申しますが、そういう意識で使っていると REPL 的なことをしたいときに困りがちですよね。そこで作りました。gore。いい名前ですね。 motemen/gore · GitHub 以下のスクリーンキャストでだいたいの雰囲気をお察し下さい。 (スクリーンキャストは cho45/KeyCast を使って撮影しました) 特徴 gore の特徴は以下の通りです。 ラインエディタと履歴 複数行入力 パッケージのインポート、補完つき 式および文を実行可能 コード補完(nsf/gocode を利用) プリティプリント(k0kubun/pp か davecgh/go-spew がおすすめ) ドキュメントも引ける(godoc が必要) 以上のように、非常に便利なものになっております。むしろこの程度 REPL には当然あってほしい機能だとも言える。 イン

    コード補完もできる Go の REPL「gore」を作った - 詩と創作・思索のひろば
  • Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば

    Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less すると、対応するコマンドの出力がこんな風になります。 行レベルの diff に加えて、単語レベルでの diff もハイライトされ、GitHub での diff のように描画されました。 組み込みのオプションで --color-words というのがありますが、こちらを使うと行レベルの diff 情報が失われるので、少し不便だったわけですね。とすべて README に書いてあ

    Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば
  • 1