window名の自動変更

screenでwindow名をいちいち付けるのが面倒なので、ディレクトリ名@ホスト名位を自動で付けさせたい。

printf '\ek%s\e\\' "window name"

とやるとwindow名が"window name"になるので、これをzshrcとかに書いてやればいいっぽい。

カレントディレクトリは

basename `pwd`

で取り出せる。

参考

terminal - GNU Screen: new window name change - Unix & Linux Stack Exchange

インクリメンタルサーチ+キル

インクリメンタルサーチは便利なんだけど、サーチで選択肢した部分をキルする機能がないので追加。

こうすると長い文字列をキルする際に、サーチで最初の部分をヒットさせC-wを適宜繰り返し、キル出来る。

無駄にC-fとかC-dを繰り返さずにすむ。

ついでに、キーバインドも少し変更。
インクリメンタルサーチ中に、C-fで単語の追加(従来のC-wをC-fにあてる。)。やはり、前に進むっぽいものはC-fにしたい。

そして、C-wにキル機能を当てる。

押しやすさの点では難しいところだけど、こっちのほうが慣習にあっているはず。
以下を.emacsに追加。


(define-key isearch-mode-map "\C-w" 'isearch-kill-region)
(define-key isearch-mode-map "\C-f" 'isearch-yank-word-or-char)
(defun isearch-kill-region ()
(interactive "*")
(if isearch-other-end
(if (< isearch-other-end (point)); isearch-forward?
(kill-region isearch-other-end (point))
(kill-region (point) isearch-other-end))
()
)
(isearch-exit)
)

RubyでGruff

Rubyでグラフをと考えていたところ、Gnuplot以外にGruffという選択肢があるみたいなので、インストールしてみた。
Gnuplotだと棒グラフとかがうまくかけないので、期待大。
Drugs Online Guide: Only Safe and Quality Medications – DrugsOnlineGuide.com. We work for you!

インストールとしては、まず、ImageMagickをいれ、その後gemでrmagick、gruffの順らしい。

下記サイトを参考にしたのだが、ImageMagickとrmagickのインストールに難航。

Macportsbrewの2種類のImageMagickの入れ方があるみたいで、両方試したんだけど、多分brewで入れたことでうまくいった気がする。
Mac OS X ver10.6.7, gem ver1.3.5, MacPorts ver1.9.2, brew ver0.9.2)

RMagick on MacOSX - Mae向きなブログ
ruby - Installing RMagick on Mac OS X with MacPorts - Stack Overflow
ruby - Installing RMagick on Mac OS X with MacPorts - Stack Overflow

Rubyの文法がよくわかってないのが難点ではある。

サンプルが充実している。
kkaneko.com
Nikos D.: Beautiful Bar Charts With Ruby and Gruff (Easy and Simple)

mac環境でgnu screenの縦分割

やっぱり縦に分割できないと不便なので。
ちょっと不安定っぽいけどここを参考に。
screenを縦分割するモード(vertical split)のパッチを当てる - 日々是鍛錬

vert_splitのキーがVになってるけど|に変えたいので変更
GNU screen


tmuxとかいう人もいるみたいだけど、どうなんでしょうか。
macでのインストールもよくわかってないし、とりあえず慣れてる方のscreenで。
地味にmacはいろいろ入れるのが面倒。

w3mとかも使ってすべてをターミナル上に持っていってみたい。

SRM505 dvi2

思いの外Easyで時間をくってしまった。。。
MiddleもChallengeされてしまい、残念である。
難易度としてはそんなに難しくなかったのではと思われるのにこの結果。。。

Easy

与えられた文字列をカンマ+スペースで区切られた文章だと思って、各文の先頭文字を大文字化する問題。
ただの文字列処理。
文が1つのみの場合とかを考えるのに手間取ったりもした。
以前よりはましだが、相変わらず文字列処理となると身構えてしまって、いくない。
Stringクラスの使えそうなメソッドをちょっとまとめる。

  • startsWith, endsWith, contains
    文字列を含んでいるかをチェックするときなどに有効。
  • replace, replaceAll, replaceFirst
    文字列の置換。replaceとreplaceAllの違いは引数を文字列としてあつかうか正規表現としてあつかうか。
  • split, substring
    文字列の切り出しに。sub's'tringなので注意(間違うのは自分だけ?)
  • toCharArray
    文字型配列に変換。new String(charArray)で文字列に再変換できる。
  • format, valueOf
    数字ー>文字列の変換に。formatを使えばformat("%05d", 10)などで0詰めができる。
    文字列ー>数字は例えばInteger.parseIntなどがある。
    parseIntは基数の指定もできる。10以外の基数での数字ー>文字列はtoBinaryString, toHexString, toOctalStringなど。
  • matches
    正規表現と一致するかをみる。
  • indexOf, lastIndexOf
    文字、文字列の出現位置
  • って感じすかね。

    Middle

    和と積が等しくなるように、数列の1つを変更する問題。
    問題自体は難しくないけど、境界のチェックがちゃんとしてないと通らない。
    剰余計算するときは0でないかチェックするとか。
    落ち着いて考えるべき。
    Challengeも成功したけど、自分が落ちてはしょうがない。

    Hard

    ちゃんと考えてないけど、たぶん'Y'が各行、列に2つ以上入るように'Y'をたしてやればいいんじゃないかと。
    と思ったんだけど、探索だと計算量がとかどう書けばいいのかなとか考えてるうちに時間切れ。
    これくらいのコードはちゃんと書けるようになりたい。

    今回の成績


    250: 164.50
    500: Falied System Test
    900: Opened
    Challenge Succeeded: 1
    Challenge Failed: 1

    total: 169.50

    評価:まだまだ頑張りましょう。

    topcoder calendar

    トップコーダーのSRM等の予定をgoogle calendarにインポート出来る。
    http://topcoder-calendar.appspot.com/
    便利便利。

    追記:
    こっちの方がGCJとかもあって情報がが多い
    TopCoder部のカレンダーのカレンダー