怠惰とゆとりと

どうも。

VB.NETにおけるdynamic宣言

19日の日記[オーバーロードとかよくわかってなかった - はちみつとビールですが、なんやかんやでなんかVB.NETには、C#でいうdynamic型宣言にあたるものは存在しないくさいという結論に至りました。

option strict offにした場合、デフォルトで遅延バインディングが許容されるようになるので、それでやってね〜〜ってことなんでしょう。きっと。
全体をoption strict offになんてするはずがないですし、ファイルごとに変えるのもだるいですね。どうやら、Dynamic.DynamicObjectを継承させることでダックタイピング的などうのこうのをするクラスを作ることが出来るのですがわざわざVBそんなの使っている人なんてみたことないですね。

以前、DbExecutorを使わせていただいたときも、Dynamicの挙動がおかしかったのはそーいうことなんでしょう。まぁMS的にもVB.NETとかどうでもいいのかもしれませんネ。僕もどうでもいいです。VB.NETってMSDNですら、少し発展的な内容になると途端に情報が少なくなるので、困りものですね。特にこういうC#では出来るのにVB.NETでは出来ない、というケースの場合は検証やらでとても時間を食います。


そして本題

ApplescriptとRubyでもう僕は移動しない - hp12c

こういう記事をみつけたので、僕もやってみた

Vimの透過度

`:set transparency+= \d`をキーボードショートカットに登録するのは、恐らくVimmerであればすでにやっていると思うので省略します。

iTerm

さて、元記事ではapplescriptRubyからキックするgemを使って書いたコードをAppleScriptから呼び出すようにしてQuickSilverに登録して呼び出しています。
面倒ですし、僕は透過度を微調整するようなことはないのでスケスケとプレーンの二択にするようにして、単純にコマンドラインから呼び出すようにしたいと思いました。

あとせっかくなのでPythonを使って書きました。超みじかいですね、わざわざエントリ書くほどのもんなんでしょうか。

僕は~/bin以下にPATHを通してシェルスクリプトとかそーいうのを突っ込むようにしているので、以上をそちらに突っ込みました。
引数に-を渡したらスケスケ、それ以外なら非スケスケ——というのを期待したのですが。が、なぜか一度呼び出すと超スケスケになったっきり、うんともすんとも言いません。

.transparency.get()を呼び出したところ、どんな数字をsetしても[0.8999999761581421]が帰ってきます。わけわかんねー。


つーかまず、AppleScriptがよくわかっていないので、それとappscriptについて調べてみようと思います。……思ったのですが、僕はゆとり教育世代なので、なんかやりはじめてからもう一時間経っちゃったし正直いって萎えてしまい、というかもう11時すぎてるし眠いし、今日のところはこれくらいで勘弁してやろうと思います。

23日追記

寝て、起きてから書き直したらうまく動きました。そもそも渡す数値の桁を間違えていたよーです。
あとはこれに実行権限を与えて適当な所に置きましょう。健全なマカーであれば、一日の作業のほとんどはターミナルに引きこもって行うことだと思います。当然シェルはzshだと思います。
なので、zshrcに適当なfunctionなりを設定して、引数付きでこいつを呼び出してあげればそれで事足りると思います。あるいは元コードのように、interval的なものを設定して、連打するごとに透過度が変わるような設定に変えてもいーんじゃねえかと思います。

追記おしまい


あと、今この日記を書いていて思い出したのですが、iTermは<⌘+u>を押下することで透過設定のon/offを切り替えることが出来ます。
つまり、裏側にあるブラウザなどが見える透過度に設定しておいて、あとは作業中の欲求に応じて<⌘+u>を押せば僕がやりたかったことは大体出来てしまう訳ですね! うわ、できた! くそが!


でも、Mac限定になっちゃうけどこのappscript自体は面白いかも。iTermとか、そこらへんの主要なアプリのラップするオブジェクトを作ってやれば色々と使いでがありそーっすね。