高速な Scheme 処理系として知られる Chez Scheme の実行速度の源泉はネイティブコンパイラであることとコンパイル速度自体も速くなるように工夫が凝らされていることによる。 対話的にすぐさま実行することも多いからなのかアセンブリ言語で出力してからアセンブルするような悠長なことはしておらず、逆アセンブルする機能も用意されていないのでどのようにコンパイルされたのか調べにくい。

そう思っていたのだがアセンブリ言語形式での出力を見れる方法の紹介をしているブログ記事を書いている方がいてありがたく読ませてもらった。 要するにパラメタ #%$assembly-output#t または出力ポートを設定するとコンパイル時にアセンブリ言語形式でも出力するという仕組みがあるということのようだ。

しかし紹介された方法はファイル単位なので開発中に対話的に気軽に結果を見ることが出来ない。 少しアレンジして式を与えられるように変更してライブラリにまとめてみた。

#!r6rs
(library (assembly)
  (export compile-to-assembly)
  (import (rnrs control)
          (rnrs base)
          (only (chezscheme)
                parameterize
                interaction-environment
                compile
                $primitive))
  (define compile-to-assembly
    (case-lambda
     ((obj env)
      (parameterize ((($primitive $assembly-output) #t))
        (compile obj env)))
     ((obj)
      (compile-to-assembly obj (interaction-environment))))))

これを適当にライブラリ用のパスに置いておけば

(import (assembly))
(compile-to-assembly '(+ 1 2))

のように式を与えるだけでそのコンパイル結果を見せてくれる。 便利!

Document ID: 30ad3a3a1d2c7c63102e09e6fe4bb253

時刻: 0 件のコメント:

shinydir

ウェブブラウザを使ってダウンロードしたファイルはダウンロード用のディレクトリに溜め込まれてく。 それらを一定の規則に従って適切なディレクトリに移動したいというのはよくあることだろう。

その目的で私は FileArrangement というソフトウェアを使っていたのだが、不満に思うことがあった。 規則の記述が煩雑なのだ。 設定する規則は大抵の場合には似たようなものが多数あるのでコピーして少しいじるといったことをしたいのに出来ない。

こういった種類のソフトウェアは設定をテキストファイルで書けるようになっていたほうが便利だと思う。 良いソフトウェアがないものかと探してみたところ shinydir がなかなか良さそうで、ここしばらくは活用している。

Document ID: c3e5ef3b19601f4c83762eca56d22a53

時刻: 0 件のコメント:

冷却ファン交換

私が使っているパソコンはいわゆるショップブランド品だ。 2010 年頃にアプライド高松店で購入したもので、さすがにかなり古い。 特に可動部品の劣化は避けられない。

何年も前から冷却ファン (Cooler Master Technology 社の A14025-10CB-3BN-F1) から異音がしていたのだけれど軸部分に潤滑剤を注入するといった誤魔化しをして運用していた。

近所の家電量販店にいく機会があり、ふと見ると安い冷却ファンがあったので購入して交換した。 新しい冷却ファンはアイネックス社CFY-120S である。 期待寿命が 40000 時間と書いてあるので多少の下振れがあっても十年かそこらは使えるだろう。

Document ID: fb8e8d3d33efcebbbb309e95f5b2f54e

時刻: 0 件のコメント:

財田川

香川県に財田川(さいたがわ)という川がある。 大川山あたりを水源として財田町の中央を通って海まで流れている。

渇水が起こりがちな香川県平野部にとっては重要な農業用水であることはその名前からも想像がつくだろう。

近隣の学校の校歌の歌詞に財田川を含むものは多い。 しかし公式にはサイタであるはずなのにどういうわけか歌詞の中ではタカラダと呼ばれている事例が頻繁にみられるのである。

調べてみたところタカラダというのは古称であるらしい。 明治時代終盤頃にはすでにサイタが公式名称であったようだがおそらく地域のタカラであるという意識もあるのだろう。

Document ID: 37ebbff2bece4c4cb5b0d73c6abd4968

時刻: 0 件のコメント:

JCBookmark

ウェブブラウザ Firefox はブックマークを含む各種設定を複数の端末間で同期する Sync というサービスを利用可能だ。 このサービスはブックマークの数が五千を超えると機能しなくなるという制限がある。 私がブックマークした数がその制限を超えてしまい、どうにかして減らす必要があった。

かなり多いブックマークだが気軽に溜め込んでしまっただけで、ほとんどは今後二度と見ることがないだろうと思う。 しかし詳細に分類しているのでただ消してしまうのはもったいない。 ウェブサービスの制限にひっかからないようにしたいだけで、データ量としては大したこともないのだ。

利用しやすい形でブラウザのブックマークから追い出せないかと考えて都合のよいソフトを探したところ JCBookmark に行きついた。 このソフトで作ったデータをクラウドストレージ (Google Drive など) 経由で共有すれば端末間でのやりとりもそれほど不便はない。

ただ、 JCBookmark は Windows 版しかないのでデータの整理は Windows 上でやる必要がある。 タブレットコンピュータなどからはいじれない。 日常的にブックマークするときはウェブブラウザのブックマーク機能を用い、たまに整理しながら JCBookmark へ移すという運用でしばらく使っている。

Document ID: 0b996d030d9a74c92494e68aa3650a25

時刻: 0 件のコメント:

Reasily

私は読書用端末として Fire HD 8 を使っている。 読書アプリとして Kindle for Android が最初からインストールされているので当たり前のようにそれを使っていたのだが、私はながらくこれに不満を持っていた。 EPUB 形式に (直接には) 対応していないからだ。

私の読書はウェブ上にあるコンテンツを自作スクリプトで EPUB 形式にしており、 Kindle で読むにはここから更に AZW か MOBI に変換しなければならない。 EPUB 形式のファイルを calibre の管理下に入れてから変換と (Fire HD 8 へ) 送信という手順でようやく読めるようになるのである。 (わずら)わしい!

そこで Android 用の読書アプリで良いものがないかあらためて探すことにした。

  • 無料であるに越したことはない
  • EPUB に対応
  • 縦書きに対応
  • ルビに対応
  • 日本語対応あり
  • 広告なし

という条件で絞り込んだところ、 Reasily がとても良い使用感であることを発見した。 都合の良すぎる条件設定なのでちょうどよいものが無ければ条件を緩めて探すつもりだったのだが、驚くべきことにそんな都合のよいものが存在した。 EPUB が正確なフォーマットになっていない場合にエラーが出ることがあるのも問題点を把握しやすいので(かえ)ってありがたい。

Document ID: ee34d8b375b870908e8b709762488008

時刻: 0 件のコメント:

神は細部にやどる

私は小学生の頃に数年ほどヤマハ音楽教室に通ってエレクトーンを学んでいたことがある。 子供向けということもあって理屈っぽいことはあまりしなかったし、やめてから何十年もたった今では指の動きなどもまるで上手くいかないので結局のところ何も身につかなかったわけだが。

その当時に使っていた楽譜は倉庫にしまったままにしていて廃棄はしていなかった。 音感もないので楽譜を見てもどんな音楽だったかも思い出せないし、ふと思いついてパソコンに楽譜を入力して再生してみたのだ。 具体的に使ったソフトは MuseScore である。 主旋律を入力してから伴奏を入力して、それから細かな指定を付けていくという順序で入力した。

主旋律があるだけでもどんな曲かわかる程度にはなるのだが、詳細を入力するたびに美しくなっていくことがわかる。 全体から見ると些細に思えるスタッカートやテヌートひとつひとつが確実に音楽の美しさに貢献していることがわかる。

作品をよりよくするにはただひたすらに細かな部分をよりよくし続けるという積み重ねなのだなと感じたのであった。

Document ID: a7a0448f949eb74fe932d8a8982eb1fc

時刻: 0 件のコメント:
ラベル: