ぶていのログでぶログ

思い出したが吉日

(Linuxデスクトップ) CapsLock <-> Ctrlの入れ替えをudevで行うようにした

GMOペパボアドベントカレンダー2021。今日から始まりました! …が、これはその記事ではないです。doewくんの記事楽しみですね。 さて、本題。 今まで、CapsLock <-> Ctrlの入れ替えをgnomeの機能の行っていた。 具体的には以下のコマンドを実行する、もしく…

Rustでmrubyの拡張を書く

reddish-shellでRustからmrubyを呼び出すことができたので、逆もできないかと思って試してみたらすんなりできたのでメモしておく。 前提: rust-mruby crateを使う mrubyのAPIをRustから呼び出すためには、mruby.hをRustで定義し直す必要がある。 拙作のrust-…

reddish-shell 開発進捗 v0.11.0 | Rust化完了

満足するところまで作れたのでv.0.11.0をマージした。 Rustで作り直す前にはあった機能を一部実装していない*1があるが、一旦区切りをつけたかったのでマージした。 割り切り重要。Done is better than perfect. いや意味するところは違うと思うけど…。 前回…

reddish-shell v0.11.0-beta4 開発進捗 | パイプライン、バックグラウンド実行、コマンド置換の実装

最近の開発状況をば。 コミット * e8e8867 Add command substitute * 3e7b5fe Moved internally reserved fd * a0c531f Improve pipeline and background * 7bb1db7 Improve background process and pipeline * 4d39b7f Replace FdSize to RawFd * 1cf7c73 I…

シグナルマスクのビット列をシグナル名に変換する

psコマンドの -o sigmask や、/proc/$pid/statusのSig〜は16進数の文字列で表示されていて、該当するbit数のシグナルにフラグが立っているというような見方になっている。 例えば、ps -o sigmaskで1の位が3ならHUP(1)とINT(2)がマスクされていることになる。…

reddish-shell v0.11.0-beta3 開発進捗 | コマンドの実装とRust 1.56.0

今の進捗↓ コマンドの実行を実装 変数を利用できるようにした cmd1 && cmd2 と cmd1 || cmd2を実装 if/unless/while/until/for文を実装 コマンド履歴機能を有効化 Rust 1.56.0 / 2021 editionを使うようにした 最低限の機能を実装したので少しはシェルっぽく…

Ubuntu 16.04でtftpdがunknown option -?を出力するときの対処

tftpdを削除してtftpd-hpaを入れ直す $ sudo apt install -y tftpd-hpa # tftpdも一緒に削除される 経緯 cobblerサーバをメンテしていたらtftpdが起動していないことに気がついた。 tftpdはxinetd(!)経由で起動されているので jounalctl -fu xinetd したとこ…

reddish-shell v0.11.0-beta2 開発進捗 | パーサーとレキサーの再実装完了

前回書いたとおりRustで再実装をしているのだけど、パーサーとレキサーの再実装ができた。 Rustでの再実装前と同等の機能までは実装できると思うが、%記法については実装を見送った。 github.com %記法の実装見送りについて Rubyっぽい記法を取り込みたいと…

Rustのprintln!やformat!で{}を出力する

println!やformat!のプレースホルダとして使われている {} がうまく出力できなくて悩んでいたけど、解決したのでメモしておく。 結論から書くと2つ重ねるとエスケープされるのだった。 { を出力したいなら {{ 、 } を出力したいなら}} とすればよい。

reddish-shell v0.11.0? 開発進捗 | Rustで再実装

久しぶりにreddish-shellのアップデート(?)なのだけど、Rustで再実装している。 なんでまた…っと思われるかもしれないが、意図が明確にあってそれは高速化である。 前にブログに書いたかもしれない*1けど、今のreddishは果てしなく遅い。 原因はいくつかある…

Ubuntu 16.04でnetworking restartせずにresolv.confを更新する

Ubuntu 14.04/16.04のESMの期間が延長されましたね。 gihyo.jp それと関係あるのかないのか、Ubuntu16.04でnetworking restartせずにresolv.confを更新する方法を見つけたのでメモっておく。 Ubuntu 16.04ではresolvconfコマンドで /etc/resolv.conf を生成…

実践Rust入門を読み終えた

最近、唐突にRustに入門したくなりWebの記事やチュートリアルをあさり始めた。 いくつかサンプルなどを試したけどいまいちしっくり来なかったので、体系的に学ぶ必要があるなっと思い実践Rust入門を読んだ。 gihyo.jp 実践とついてあるだけあって、実際にど…

Linuxデスクトップでデフォルトブラウザを確認/変更する

rustup doc --std したときにうまくFirefoxが起動せず別のアプリが起動してしてしまった。 こういう場合以下のコマンドを打つと、Firefoxに変更できる。 ❯ xdg-mime query default text/html ferdi.desktop text/htmlを開くのにferdiが選択されている Firef…

#isucon 11にチーム大和田純愛組で参加してきた

ISUCON11に @pyama86 と @osamtimizer と3人で参加した。 ベストスコアはリーダーボード上で15977。その後ポータル上で記録はされなくなたけど、@pyama86がRedisでのキャッシュを入れたのが反映されて16128になっていた。 感想 12:00くらいにGET /api/trend…

starship+asdfでプロンプトの表示が遅くなるのを改善する

2023/02/05追記:rtxを使ってstarship+asdfのプロンプトの表示が遅くなる問題を解決する タイトルの通り。 promptのカスタマイズにはstarshipを使っていて*1、バージョン管理にはasdfを使うようにここ最近変更した。 それぞれ特に不満なく使っていたのだが、…