hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

node.jsでシェル

node.js入門しました.

var rl = require('readline');
var cp = require('child_process');

var i = rl.createInterface(process.stdin, process.stdout, null);
i.setPrompt('%node% ');

i.on('line', function (cmd) {
    cp.exec(cmd, function (error, stdout, stderr) {
        if (stdout.length > 0) console.log(stdout);
        if (stderr.length > 0) console.log(stderr);
        i.prompt();
    });
});

i.on('close', function() {
  process.exit(0);
});

i.prompt();

https://gist.github.com/1213710


JSでシェル拡張できると便利そうなので,機能増やしていって,そのうち常用できるようにしたいと思います.

ダイヤルのデモが増えました

画像をダイヤルで好きな角度に調整できるブックマークレットです.
dial_rotate - Hatena::Let


ページ全体がダイヤルになってスクロールできるブックマークレットです.
dial_scroll - Hatena::Let


両方ともなんかGoogle Chromeではなんか動かなくて,Safariで動きました.



ダイヤルJSの話とか上のデモとかを,はてな技術勉強会でLTしました.録画はそのうち公開されるんでしょうか.
ダイヤルJSの話は以下に書いてあります.
ダイヤル型ユーザーインターフェイスを実現するjQueryプラグイン - hitode909のダイアリー


ダイヤルは使い道いろいろあると思うので,いろいろ試していきたいと思っています.変だけど便利なUIを使って無理やり人に使わせたい.

EmacsからPerlのテストを実行

なんとか.tみたいなファイルでmy-run-testを実行するとpopwinでテストが実行される.コンパイルのバッファは自動でスクロールする.

(defun my-run-test ()
  "テストします"
  (interactive)
  (compile (format "cd  %s; %s -MProject::Libs %s" (replace-regexp-in-string "\n+$" "" (shell-command-to-string "git rev-parse --show-cdup")) (expand-file-name "~/perl5/perlbrew/perls/current/bin/perl") (buffer-file-name (current-buffer)))))

(setq compilation-scroll-output t)

(require 'popwin)
(setq display-buffer-function 'popwin:display-buffer)
(setq popwin:popup-window-height 0.5)


perlbrewを使う前提で,Project::Libsが必要,環境変数とかは適当にシェルと揃えておく.↓ こういうのがたりなかったらどっかに書いておく.

(setenv "DYLD_LIBRARY_PATH" "/usr/local/mysql/lib")

perls/current/bin/perlはperlbrewを入れた時期によってあったりなかったりするみたい,シンボリックリンクはったら動いた.

句読点を切り替えるコマンド

普段,日本語を打つときに,「,」と「.」が出るようにしているのだけど,たまに「、」と「。」に切り替えたいときがある.
わざわざ一文入力するために設定し直すのもめんどうなので,標準入力の句読点を切り替える,コマンドを作った.
パイプでjpにわたすと句読点を切り替えてくれる.何度も渡すとその度に切り替える.

% echo "jpを使って,句読点を切り替えることができます."
jpを使って,句読点を切り替えることができます.
% echo "jpを使って,句読点を切り替えることができます." | jp
jpを使って、句読点を切り替えることができます。
% echo "jpを使って,句読点を切り替えることができます." | jp | jp
jpを使って,句読点を切り替えることができます.


月に1回くらい使えると思う.


https://gist.github.com/1191177

ダイヤル型ユーザーインターフェイスを実現するjQueryプラグイン

http://dl.dropbox.com/u/8270034/g/a39d14621c04e629c4df40943096b44e.png
ダイヤル型ユーザーインターフェイスを実現するためのjQueryプラグインを作りました.
ダイヤルは黒電話とかコンポのボリュームとかiPodのくるくるできる部位みたいなやつを指しています.
回転させると機械に入力を伝えられます.場所を取らず,直感的な操作ができて便利です.
たとえば,iPodのくるくるできる部位が定規みたいな形状なら場所を取って不快です.


簡単なデモです.iPod画像の上でマウスカーソルを時計回りに動かすとiPod画像が大きくなります.
http://hitode909.appspot.com/dial/ipod.html


こんな感じに書けます.jQueryオブジェクトにdialというメソッドができて,コールバックにはマウスの移動量が渡ってきます.単位はラジアンです.

$("img#ipod").dial(function(diff) {
    $(this).css("width", $(this).width() + diff * 10);
});


色をダイヤルで調整するデモです.マウスをゆっくり動かすとちょっとずつ色を調整したりできます.
http://hitode909.appspot.com/dial/color.html


盆で使うために作りました.盆では,ステージ上でマウスカーソルを時計回り,反時計回りに動かすと曲のテンポを調整できます.
http://higashi-dance-network.appspot.com/bon/


クリックし続けるのは疲れますが,マウスを動かすだけならそんなに疲れないので,人に優しいアプリケーションを作ることができます.
100を入力するときに,100回クリックする代わりに,100度マウスを動かすことができます.


GitHubに置いてあります.
https://github.com/hitode909/jquery-dial