RVMでインストールしたrubyをcronとかで実行する。

RVMは非常に便利なのだけど、cronなどから実行するとライブラリのパスなどがおかしくなって実行できなかったりする。
そこで下のようなスクリプトを書いて、

rvm_exec.sh 1.9.2 my_script.rb

のように実行するようにした。

rvmのインストール時に.bashrc に追記した設定を毎回やればいい、ってことですな。



<12/01/15追記>
実行結果の先頭にrubyのバージョン情報(Using /home/koki/.rvm/gems/ruby-1.9.2-p290
のような)が出てきてしまうのが不都合だったのでrvm use (バージョン名) でなくrvm (バージョン名) exec を使うように修正しました。あとshがbashにリンクしていない環境も考慮して#!のコマンドをshからbashに変更しました。

<12/05/19追記>
スクリプト自体に渡す引数が切り捨てられていたのを修正しました。

xmonad設定

音量調整の設定とかではまった。余計な設定とかも残っているが、とりあえず晒しておく。

import System.IO
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Actions.Volume
import XMonad.Util.EZConfig 

main = do
  xmproc <- spawnPipe "xmobar"
  xmonad $ defaultConfig
    { manageHook = manageDocks <+> manageHook defaultConfig
    , layoutHook = avoidStruts $ layoutHook defaultConfig
    , logHook = dynamicLogWithPP $ xmobarPP --xmoberにウインドウタイトルを表示
              { ppOutput = hPutStrLn xmproc
              , ppTitle = xmobarColor "green" "" . shorten 50
              }
    , terminal           = "gnome-terminal"
    , borderWidth        = 2
    , normalBorderColor  = "#333333"
    , focusedBorderColor = "#cd8b00"
    }
    `additionalKeysP` --音量調整のための追加キーマップ
    [ ("<XF86AudioMute>",        toggleMute    >> return ())
    , ("<XF86AudioLowerVolume>", lowerVolume 4 >> return ())
    , ("<XF86AudioRaiseVolume>", raiseVolume 4 >> return ())
    ]
  • xmobarrc
Config { font = "xft:Sans-9:bold"
       , bgColor = "black"
       , fgColor = "grey"
       , position = Top
       , lowerOnStart = False
       , commands = [ Run Network "wlan0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                    , Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                    , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
                    , Run Memory ["-t","Mem: <usedratio>%"] 10
                    , Run Swap [] 10
    		    , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
                    , Run BatteryP ["BATA"] [] 30
                    , Run StdinReader
                    ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader%}{<fc=#ee9a00>%date%</fc> [%battery%]"
       }

音量調整を設定するためのノウハウは以下を参照。

音量調整のキーバインドはfnキーで修飾したものにしたかったので以下を参照。

XMonad.Actions.VolumeはXMonad.Actions.Volumeのコードを .xmonad/lib/XMonad/Actions/Volume.hs にコピペ。
他のライブラリに依存しているため、xmonadをapt-getまたはaptitudeで入れただけの状態では動かない。とりあえずghclib*と言う名前のパッケージを全部入れたらうごいた。

いろいろなデスクトップ環境のUbuntuへの導入方法

ubuntu11.04から(確か)導入されたデスクトップ環境Unityが面白くて、画面が広いのが良い!なんてことをtwitterで言ってはしゃいでいたら
Emacs仙人こと @kiwanami さんから

@koki_h そんなことを不用意に書くと、awesomerやxmonaderやstumperがやってきますよ!

https://twitter.com/#!/kiwanami/statuses/129212251432423424

という脅迫にも似た情報提供が。試すの面倒くさいと返答したものの後で気になっていろいろなデスクトップ環境を自分のLet's Noteに入れて試してみました。
パッケージが提供されているので入れ方はどれも簡単。apt-get install→ログアウト→ログイン画面でセッション選択*1でOK。
パッケージ名とか覚えられないので覚書を以下に記述。
URLは参考にしたサイト。
全部 Ubuntu11.10で動作確認。

LXDE

Windowsライクなデスクトップ環境。

$ sudo apt-get install lxde 

Xface

Windowsライクなデスクトップ環境。

$ sudo apt-get install xfce4*

awesome

タイリング型デスクトップ環境。
Mod4-Returnで端末起動、右クリックメニュー > awesome > quit でログアウト

$ sudo apt-get install awesome

Xmonad

タイリング型デスクトップ環境。
設定ファイルが haskelらしい。
Alt+Shift+Enterで端末起動、Alt+Shift+qでログアウト

$ sudo apt-get xmonad

stumpWM

タイリング型デスクトップ環境。
設定ファイルがcommon lispらしい。
Ctrl-t cで端末起動、Ctrl-t Kでログアウト

$ sudo aptitude install stumpwm

インストール後、以下の内容で設定ファイル /usr/share/xsessions/stumpwm.desktop を作成

[Desktop Entry]
Name=StumpWM
Comment=This session logs you into stumpWM
Exec=stumpwm
TryExec=stumpwm
Icon=
Type=Application

どれもUnityより起動が早くてなかなか快適だなと感じたのですが、画面が広く使えるという点でタイリング型のデスクトップ環境が結構気に入りました。
個人的にはウィンドウの操作コマンドがデフォルトでシンプルなXmonadが好みです。ただ、ネットワークなど、システム関連の設定画面が無い(というか出し方が分からない)ので設定はUnityでやっておいて普段づかいはXmodad、みたいな使い方がいいんではないかなあなどと思っています。

*1:Ubuntu11.10の場合はパスワード入力欄の右上にある歯車マークをクリックすると選択できる

ノートPCのディスプレイが黄ばんできたような。

先日、外付けのディスプレイをノートPCに久々につないでみたら、ノートPCのディスプレイの色合いが外付けに比べてなんだか黄色っぽいことに気づいた。
タバコ吸わないのでヤニとかじゃないはず*1。液晶とかバックライトの劣化なのかなあ。
外付けと比べると文字も少しにじんでいるようだし、そろそろ買い替え時なのかなあ。
MacBook Air 11インチ欲しい! なあ。

さりげなくキーワード入れてみました。

*1:父や弟が吸うので断言できないけど

テキスト選択時のマウスポインタがPuttyで見づらいので変更した

たぶん忘れるので備忘録。

自分が使っているWindowsVistaのデフォルトの設定だとテキスト選択のときは黒い縦線になる。
これだと背景が黒いエディタやターミナルにマウスポインタを重ねたときに非常に見づらく、文字をコピペしたいときに非常に困る。
Vimなどの場合はテキスト編集領域でもマウスポインタは縦線ではなく、矢印のままなのでいままで特に問題なかったが、Puttyだとマウスポインタが縦線になってしまい、背景に溶け込んでしまう。
マウスポインタが矢印のままになるように、Puttyの設定で変更できないか探したが見つからなかったので、Windowsの設定を変更することにした。
コントロールパネルから変更できるので、テキスト選択時のカーソルを beam_r.cur というのにした。
これだと縦線に白いふちどりがつくので黒い背景でも見やすい。

まとめ:
黒い背景のアプリを使うときはテキスト選択時のマウスポインタを beam_r.cur に変更するといいよ。

星を描くやつにスライダーコントロールをつけてみた。

以前作ったCanvasに星を描くやつにスライダーコントロールをつけてみました。タッチパネルのあるデバイスから触って動かしてみたら楽しいんじゃないでしょうか。試していませんが。
(追記:手元にあるandroid端末IS01で試してみましたがこれをタッチパネルで操作するのは難しいですね。)

http://serversman.gohannnotomo.org/toys/star_with_slider.html

Dojoというjavascriptのライブラリに含まれるスライダーコントロールを使いました。


以下ソースです。

明日から新しい仕事です。

就職が決まりました。
実は先月の終わりごろに決まっていたのですが、ブログには書いていませんでした。
求職活動中です - 橋本幸樹の無愛想な日記で求職中であることを書いていたので、ずっと気にかけてくれていた方もいたかもしれません。ご報告が遅くなって申し訳ありません。
新しい仕事は半導体のテストエンジニアです。回路の設計やテストプログラムの作成を行うということですが、こういった分野の仕事は未経験なので多少不安もありますが、興味のある分野なので新しいことを学べるチャンスが回ってきたと思って頑張りたいと思っています。