オープンソースでポータブルなDJスクラッチ機材、SC1000
なにこれ!?と思っていろいろ調べてみた。
SC1000とは
githubで設計図が公開されているオープンソース(GPL2)ハードウェア。
Ruby GUIライブラリ 2021
自作のRubyスクリプトに簡単なGUIを付けたくて少し調査してみた。
shoes3, shoes4, fxruby, tkあたりを少し見てみたが、2021年現在ではgtk3 gemを使うのが一番楽そう。なんといってもインストールが簡単。
インストール
$ gem install gtk3
MacのサービスでRubyスクリプトを動かす
Macの「サービス」からRubyスクリプトを起動する手順。
まず以下を参考に、Automator.appを起動し、「シェルスクリプトを実行」を登録する。
入力の引き渡し方法は「引数として」を選択。
シェルスクリプト部分を以下のように変更。
tmux [exited]
qmkの環境構築をしてたら、tmuxが起動しなくなった。
/Users/yhara % tmux
[exited]
^[[?62;4c^[[ITERM2 3.3.12n%
brew upgradeを^Cで止めたりしたせいか…?と思ったが、ps aux | grep tmux
してみたら起動中のtmuxが一つあった。
killall tmux
で当該プロセスを止めたら無事起動できるようになった。(参考)
2021年3月 (simple_twitter)
近況です。
Shiika
今月はいろいろ他事をしていてあまり進められなかった。if文の型チェックを整理したくらいか。これでこういうのが書けるようになった。
次は分割コンパイルの件に手を付けたい。
BiwaScheme
2021年2月 (Shiika return)
先月の活動報告です。
Shiika
doc/guide, doc/specを追加した。一見同じものに見えるが、前者はユーザ向け、後者は仕様書なので微妙に内容が違う。例えば「メソッド名は慣習的にunder_scoredにする」という話は前者には書くが、後者には書かない。一方、普段使わないようなコーナーケースの話は後者にだけ書く。という感じ。
あとメソッドからのreturnを実装した。その勢いでブロックからのreturnも実装しようとしたのだが、思ったよりはるかに難しいことがわかり一旦ペンディングにすることにした。
BiwaScheme
lldbでLLVMプログラムをデバッグする
Rust + LLVMで自作プログラミング言語Shiikaを作っているのだが、開発中に遭遇するエラーには以下の種類がある。
- rustcがエラーを吐く(=.rsに問題がある)。
- rustcは通ったが、Shiikaのエラーが出る(=.skに問題があるorバグで問題があると誤判定している)。
- rustcは通ったが、llcがエラーを吐く(=.llの生成に問題がある)。
- llcが実行ファイルを生成したが、実行すると期待通りに動かない。
一番面倒なのはもちろん最後のケースだが、これもさらにいくつかの種類に分けられる。
- 期待通りに動かないが、最後まで実行はできる(=Shiikaで書いたプログラムに間違いがある)。
How to colorize cargo's output with a pager
tl;dr This worked for me (iTerm2 on Mac)
$ cargo --color always build | less -R 2>&1
Problem
When I use lv
(or bat
) to read the output of cargo build
, the output is not colored, even with --color always
(i.e. $ cargo --color always build |& lv
).
2021年1月 (TENET)
近況です。
Shiika
今月はなんかいろいろやった。大きなのはHashクラスが入ったのと、Array#mapが入ったのと、こないだ書いたctxのリファクタリングかな。
あとは「一年の計は元旦にあり」ということで、Shiikaレベルで書けないものをどうするか検討していた。結果としては、標準ライブラリはRustで書いて、それとは別にffi機能を提供するということに落ち着きそう。Rustでライブラリ(RubyでいうRubyGemsみたいな)を書けるようにしようかなとも思ったのだけど、それだけだと例えばlibSDLを使いたいときにShiika→Rust→Cという二人羽織状態になってしまうので。