タグ

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

  • WezTermに移行した - 詩と創作・思索のひろば

    PCを新調したのを期に、ターミナルの環境をiTerm2+tmuxをWezTermに移行した。とくに不満はなかったのだけど、iTerm2の設定をぽちぽちする*1ことを考えるとこれ数年おきにやるのか……と思ってしまったので心機一転、設定をLuaで管理できるというWezTermを使ってみることにした。 偶然以下の記事を見ていたのが大きい。設定も基これをぱくった。 Okay, I really like WezTerm | Alex Plescan いいところ Luaで設定できる。別にLuaが書きたいわけではなくてVCSで管理できるのがよい。 WezTerm単体で、キーボードのみで文字列選択・コピーができる(Copy Mode)。これまではこの用途にtmuxを使っていたのでシンプルになってうれしい。 さらに、コピーしたいところまでカーソルを動かさなくていい Quick Select というモード

    WezTermに移行した - 詩と創作・思索のひろば
    sugyan
    sugyan 2024/09/25
    私も最近AlacrittyからWezTermに移行した。Luaはさっぱり分からんけど ともかくコードで設定が書けるのはまぁ嬉しいですね
  • 2022年に作ったもの16(セルフレビューあり) - 詩と創作・思索のひろば

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

    2022年に作ったもの16(セルフレビューあり) - 詩と創作・思索のひろば
    sugyan
    sugyan 2022/12/19
    いっぱい作っていてすごい…
  • GPT-2でブログ記事のタイトルをTogetterまとめ風にする「面白いのでやってみて」 - 詩と創作・思索のひろば

    オレ定義だけど Togetter まとめ風というのはこういうやつ。 散歩で急にシロクマと会ってもべるのは肉だけにしたほうがいい「肝臓1gに含まれるビタミンAが致死量を超える」 - Togetter まとめタイトルの終わりに誰かのツイートの引用を挿入する、という形式。よくできたもので、誰かの生の声が入っているだけで、感想やハイライトを抽出し、ちょっと気を引くことができる。まあ一種の演出で、ニュースサイトがやってることもある。 タイトルでアテンションを奪い合わなければならない宿命におけるクリック最適化の手法ということだろう。今回はこれを真似してみることにする。すでに書かれた自分のブログ記事に、括弧書きでセリフっぽいものの引用を捏造して付け加えることで魅力がアップするのか、という実験だ。 こういう生成系のタスクも、とりあえず HuggingFace+Google Colaboratory でや

    GPT-2でブログ記事のタイトルをTogetterまとめ風にする「面白いのでやってみて」 - 詩と創作・思索のひろば
    sugyan
    sugyan 2022/11/27
    おもしろい「この発想は無かった」
  • 自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば

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

    自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば
    sugyan
    sugyan 2022/11/21
  • オンラインミーティング体験を物理ボタンで拡張する - 詩と創作・思索のひろば

    meishi2キーボードを作った の続き。さて新たに4つのボタンを手に入れたはいいが、さっそく持て余す。人はボタンとともに生まれてくるわけではないのだから、仕方のないことではある。 座ってばかりの人生で、普段づかいのキーボードから手を離してわざわざ何かをしたいことはそうそうないものの、考えてみればミーティングに参加するタイミングが作業の途切れだった。在宅勤務にシフトして、人と話すのにも一手間かかるようになった。このへんを物理ボタンでなんとかしてやれないか。 1プッシュでミーティングに参加する 最初に設定したのはこれ。ボタンのひとつをオンラインミーティングに参加するためのアクションに割り当てる。こういう感じ。 練習で作った極小キーボード(meishi2)、次の会議に参加するボタンにしたら地味に便利。残り3つのボタンの用途はまだ見つかってない pic.twitter.com/YbSaeITyi

    オンラインミーティング体験を物理ボタンで拡張する - 詩と創作・思索のひろば
  • meishi2キーボードを作った - 詩と創作・思索のひろば

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

    meishi2キーボードを作った - 詩と創作・思索のひろば
    sugyan
    sugyan 2021/08/06
    おっ ErgoDash!
  • PCを離れたらマイク音量を下げるmacOSアプリを作った - 詩と創作・思索のひろば

    この記事は、はてなエンジニア Advent Calendar 2020の21日目です。昨日は id:tarao による Scalaの依存ライブラリ更新はRenovateでもけっこうイケる でした。明日は id:Krouton です。 みなさん在宅勤務してますか? 私もしています。 仕事も雑談も、とにかくオンラインで話すことが多いので在宅勤務中は AfterShokz という骨伝導ヘッドホンを使っている。ずっと装着してても疲れにくいので、大変いい買い物です。 いちいち外すのも面倒なのでほとんど一日中付けっぱなしにしているんだけど、これが事故を呼ぶこともある。マイクをオフにすることを忘れて離席してしまうと、オフのときの会話が筒抜けになってしまうので、同僚の前ではおとなしいのに家族の前では豹変するとか……。あとおしっこしてる音が聞こえちゃってないとか。気になりますよね。油断できない。 そういうわ

    PCを離れたらマイク音量を下げるmacOSアプリを作った - 詩と創作・思索のひろば
  • テキストを画面に流していくアプリをElectronで作った - 詩と創作・思索のひろば

    この記事は、はてなエンジニア Advent Calendar 2019の12日目の記事です。 任意のテキストを画面に流していきたいことってありませんか? ぼくはあります。定期的にエンジニアみんなの前でスライドを映しつつ話す機会があって、そんなとき Slack で実況的に反応がなされることがあるんだけど、Slack 映しっぱなしにするわけにもいかず、話し終わってあとからコメントに気づく……ってこともまあまあある。そんなとき、画面のスライドに重ねてコメントが流れてくれると自分も聞き手も共有できてうれしい。わけです。 それを達成するための1ステップとして、任意のテキストを画面に次々流してくれるアプリをElectronで作りました。 GitHub - motemen/TextCast じつは過去のこのエントリたちも、「Slack の発言をリアルタイムにデスクトップに流したい」という欲望からうまれた

    テキストを画面に流していくアプリをElectronで作った - 詩と創作・思索のひろば
    sugyan
    sugyan 2019/12/12
    おぉぉ、良さげ…!!
  • ISUCON9予選敗退(H::W::A::Abyss::Abyss::Abyss) #isucon - 詩と創作・思索のひろば

    ISUCON9 2日目結果と選出場者決定のお知らせ : ISUCON公式Blog 日曜日に行われたISUCON9予選に参加し、敗退してきました。前掲の記事の「失格となったチーム」がわたしたちです。チームメンバーは id:t_kyt と id:mechairoi。 去年も予選敗退していて、最近LINE社に行ってないな~と思っていたので今年は勝ちたかった。今年もはてな京都オフィスで予選に参加。 事前の作戦が大事なので、「コミュニケーションが大切」「マニュアルを読む」を確認した。 だいたいハマり出すとコミュニケーションが減ったり同じことをやりだしたりしてチームとしての効率が下がってしまうので、一時間ごとにタイマーを鳴らしてそこで話そう、という作戦を立てていた。あとは alp と pprof と pt-query-digest でボトルネックを見ていくというシンプルな戦略。 あと、1日目の結果

    ISUCON9予選敗退(H::W::A::Abyss::Abyss::Abyss) #isucon - 詩と創作・思索のひろば
    sugyan
    sugyan 2019/09/10
    自己申告での失格だったのか…なんと。。
  • ISUCON5 本選に参加して7位に終わりました #isucon - 詩と創作・思索のひろば

    表題のとおり、ハロウィンの夜ゾンビ化した渋谷の街でヒカリエに取り残された俺たちは、ISUCON5戦に参加してきました。 予選はこちらをご覧ください: motemen.hatenablog.com チームは id:wtatsuru (たつる先生)と id:ichirin2501 (いちりんちゃん)とで組んだ「2nd Party Cookies」。 結果は上記のように7位。8万点台に乗らなければ勝負に絡んだと言えず、一時は7万台まで伸ばしていただけに悔しい結果となりました。以下、当日やったことをふり返ります。 初動 開始時刻になってサーバにアクセスできるようになると、wtatsuru が諸々のセットアップをしているあいだにアプリケーションの挙動をチェック。マイクロサービスを使ったウェブサービスで、ユーザの登録情報から複数の HTTP API を叩いて画面に表示する、というものでした。 データ

    ISUCON5 本選に参加して7位に終わりました #isucon - 詩と創作・思索のひろば
  • git commit --fixup とは何か - 詩と創作・思索のひろば

    git commit --fixup というオプションの存在を最近知って調べた。 ヘルプとリリースノートより "git commit" learned the --fixup and --squash options to help later invocation of interactive rebase. Git v1.7.4 Release Notes --fixup=<commit> Construct a commit message for use with rebase --autosquash. The commit message will be the subject line from the specified commit with a prefix of "fixup! ". See git-rebase(1) for details. 1.7.4 から入って

    git commit --fixup とは何か - 詩と創作・思索のひろば
    sugyan
    sugyan 2015/10/20
  • ISUCON5 予選通過したが若手に負けました #isucon - 詩と創作・思索のひろば

    表題のとおり、ISUCON5 予選日曜の部にチーム「2nd party cookies」として参加し、17609点の総合10位で選出場となりました(http://isucon.net/archives/45532743.html)。 それは良かったのだけど、実はうれしさも8割引きで、というのも同日に参加し3位で通過した「はむちゃん」、ここに勝つことが第一の目標だったからなのでした。はむちゃんははてな社内の若手エンジニアで組んだチームで、真っ先に ISUCON への参加表明をしていたので、それに触発されるかたちで自分も参加を決めた経緯があります。id:wtatsuru とともに、チーフエンジニア3人のチームでガチンコ勝負しようぜ! って言ってたら @Songmu さんがうらぎ先約のあったらしく、代わりというわけではないが、ISUCON はインフラ見られる人が2人はいるなという目論見の下、イ

    ISUCON5 予選通過したが若手に負けました #isucon - 詩と創作・思索のひろば
  • コード補完もできる 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」を作った - 詩と創作・思索のひろば
  • ソースに一行追加するだけですべての HTTP 通信をロギングするモジュールを書いた #golang - 詩と創作・思索のひろば

    こちらです。Perl でいうと Devel::KYTProf に性質がちかい。 motemen/go-loghttp · GitHub (GoDoc) 使用例 たとえばこういうコードに… package main import ( "io" "log" "net/http" "os" ) func main() { resp, err := http.Get(os.Args[1]) if err != nil { log.Fatal(err) } io.Copy(os.Stdout, resp.Body) } % go run main.go http://example.com/ <!doctype html> ... 一行追加すると: package main import ( "io" "log" "net/http" "os" _ "github.com/motemen/go-lo

    ソースに一行追加するだけですべての HTTP 通信をロギングするモジュールを書いた #golang - 詩と創作・思索のひろば
  • Wercker で Go のプロジェクトをクロスコンパイルし、GitHub にリリースする - 詩と創作・思索のひろば

    ghq をメンテナンスするにあたっていくつか無料の CI サービスを試してみたのですが、今回は Wercker を使うことにしました。いろいろ試行錯誤した結果表題のことがなんとか実現できた(ghq のリリースは GitHub 上 にあります)ので、ハマりポイントと共にこのエントリで紹介します。 Wercker Wercker は CI サービスのひとつで、ビルド環境やデプロイの 1 ステップを box および step という形でユーザが公開・共有し、それらを組み合わせることで CI の設定をシンプルにしようとしているところが特徴です。 ghq の wercker.yml を見てもらえばだいたい雰囲気は分かると思いますが、大まかに言って “box”, “build”, “deploy” の 3 項目をプロジェクトごとに設定します。 box はビルドが走る環境です。OS や、テストに必要なパ

    Wercker で Go のプロジェクトをクロスコンパイルし、GitHub にリリースする - 詩と創作・思索のひろば
  • ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば

    以前紹介したghqというツールで GitHub のリポジトリを手元に簡単クローンしてたのを、環境が新しくなったついでに Go で書き直し、完全リニューアルしました。(前は zsh だったのでなんだかなーと思ってた。) そもそも何をするツールか GitHubGoogle Code Project でホストされている Git、Mercurial のリポジトリを手元にクローンすることができます。リポジトリは設定したルート(デフォルトで ~/.ghq)以下に、以下のようなパスで置かれます。 ~/.ghq/github.com/motemen/ghq go get と似てますね。同じような感じで ghq get <URL> します。 % ghq get https://github.com/motemen/ghq clone https://github.com/motemen/ghq ->

    ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば
  • 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 - 詩と創作・思索のひろば
    sugyan
    sugyan 2013/11/26
    diffがわかりやすくなった!
  • いい感じに出力をインデントしてくれるモジュール #perl - 詩と創作・思索のひろば

    [2013-11-20: Print::IndentedがCPANになくてしょんぼりしている。 とのことで shipit いたしました。 あざーす!] 過去のよく分からないコードの挙動を把握したいときには print (warn) するのが少なくともとりあえずの方法としては常套手段ですが、これがただ平坦に画面に現れるだけだと見づらい。例えば条件分岐やループの中にいる時は出力をインデントするようにすると動きが掴みやすくなるけれど、ただでさえ人間に単純労働を課す print デバッグにそこまで労力を使うのは辛い。そういう面倒さを減らそうという動機で、このモジュールは書かれました。 https://github.com/motemen/perl5-Print-Indented 一体何をするのかというと今書いた通りですが、print 時に、その print 関数の呼び出しコードのインデントに応じて

    いい感じに出力をインデントしてくれるモジュール #perl - 詩と創作・思索のひろば
    sugyan
    sugyan 2013/11/19
  • 1