タグ

ブックマーク / odz.hatenablog.com (15)

  • キーバインドの指定方法 - odz buffer

    ref:Emacsでキーバインドをカスタマイズするための覚書 - gan2 の Ruby 勉強日記 そういや、define-key なんかで使えるキーの指定方法っていろいろあるなぁ。 そのまま文字列で C-a は \C-a などと指定する。 (global-set-key "\C-x\C-m" 'anything) 実は Emacs 上では enter key は C-m と同義だったり。あと、TAB は C-i。 kbd kbd 関数を使う。 (global-set-key (kbd "C-x RET") 'anything) 可読性高め。多分、describe-key (C-h c) したときに表示されるのと同じ物が使える。 vector vector も使える。 (global-set-key [(ctrl x) return] 'anything) まぁ、そこそこ。なお、例えば C

    キーバインドの指定方法 - odz buffer
  • Darts Perl binding - odz buffer

    サーバをぶん回す某プロセス。 for my $doc (@docs) { for my $word (@words) { my @m = $doc =~ /\Q$word\E/g; my $tf = @m; # do something } } 物はこんなものではなく、もっとアレ。まぁ、なんか trie ぐらい使えないものか。 というわけで、勢いで意味もなく Darts の Perl binding を適当に。 ref:http://odz.sakura.ne.jp/download/Darts-0.01.tar.gz テストもドキュメントも書いていないというまさにソースが読める奴以外お断りな状況。

    Darts Perl binding - odz buffer
  • SSH + screen - odz buffer

    最近、SSHでログインした先で、screen を使わないってことがないので、もう % ssh hostじゃなくて、 % ssh -t host screen -D -RRでいいんじゃ無いかと思ったりして実際そうしてたりするとうか、実は mltrem -e ssh -t screen -D -RRだったりする。あと、 % ssh host screen -d -m cmdな感じで思い処理を screen 上で走らせておくとかやってたりする。

    SSH + screen - odz buffer
  • 裕福でないと大学にいけないという幻想 - odz buffer

    ref:格差社会の問題も、みんなとっくに気付いているよね / ハチシロ(ハチミツとシロツメクサ) via:novtan別館 - 格差社会の原因なんて、みんなとっくに気付いているよね でも、格差社会の問題は、この格差が世代を超えて持続されることに集約されていると思うんですが。 逆に、親がワーキング・プアとかやと、いまや全日制の高校を卒業するのも大変やと思いますよ。たとえ、どんなに成績が良くってもね…。 大学進学は、国公立でも恐らく無理でしょう。私が大学(一応、地方の国公立)に行ってた頃は現在よりもっと学費が安くて、ウチが貧しかったおかげで奨学金も全部もらえたけど、それでもギリギリやったから。今なら無理かもね。 以前にも書いたような気がするけど、私は現役大学院生だけど、授業料、生活費、諸々は奨学金とアルバイトで払っていて、親の援助は受けていない。私の場合は大学院からこの形態だけど、兄は私立大学

    裕福でないと大学にいけないという幻想 - odz buffer
    yokochie
    yokochie 2007/08/26
    環境が多少悪くても、本人の気の持ちよう次第ではなんとかなるとか。個人的には親が苦労している姿みたくないけど。何はともあれ日本がそれなりによくできた国だと思う。
  • もっと interactive を使おう - odz buffer

    ref:holidays-l開発ブログ - PerlEmacsと私 ;; 指定領域をperltidy (defun perltidy-region () "Run the perltidy parser on the current region." (interactive) (let ((start (mark)) (end (point)) (shell-command-default-error-buffer "perltidy-errors") (command "perltidy")) (shell-command-on-region start end command t t shell-command-default-error-buffer))) ;; 上記のbuffer全体版 (defun perltidy-buffer () "Run the perltidy pa

    もっと interactive を使おう - odz buffer
  • 気をつけろ - odz buffer

    ref:ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック いわゆる指定された文字列を出力するコマンドですね. 知らない人も多いみたいですが,echoも実はいくつかのオプションを受け付けます. 気をつけろ。いまどきの echo は大抵 shell の組み込みコマンドだ。bash/zsh では echo(1) と同じ挙動を示すが、tcsh は違う。 % tcsh % set echo_style=none; echo -n hello -n hello % set echo_style=bsd; echo -n hello hello % set echo_style=sysv; echo -n hello -n hello % set echo_style=both; echo -n hello hellosedは通常行指向でテキストの置換などを行うと

    気をつけろ - odz buffer
  • find - odz buffer

    実行可能かつsuidビットが立っているファイルは、findを使えば簡単に検索できる。 > find "どっかのディレクトリ" -xdev -type f \( -perm -u+x -or -perm -g+x \) \( -perm -u+s \)うん?-perm のパラメータをいじれば、もっとシンプルに出来るんでは。ていうか最後の括弧必要ないですよね? find /usr/bin -xdev -type f -perm +0011 -perm -4000 -user root一応 "-user root" も付け加えてみた。詳細は man 参照。とくに "-perm +mode" とか "-perm -mode" のあたり。"-maxdepth 1" をつけてもいいかもしれない。 どうせなんでまとめてリストする方法とか。(追記あり) % echo "$PATH" | tr : \\0

    find - odz buffer
  • 辞書に登録されている語をテキスト中から検索する - odz buffer

    ref:裏表(Phinloda のもう裏だか表だか分からないページ) | メモ: パターンマッチのちょっとした問題 ref:裏表(Phinloda のもう裏だか表だか分からないページ) | メモ: パターンマッチのちょっとした問題 (2) あー、Computer Science 的にそういうのは AC 法(Aho-Corasick algorithm) で Trie 使ってやるのが正道な気がする。で、一度作った TRIE は保存しておけばよい。 Python なら AC 法を実装した pytst という拡張ライブラリがあるので、これを使えば簡単。Ruby への移植版もある。 import sys import tst def main(args, options): trie = tst.TST() fp = file(options.list_file) try: for line in

    辞書に登録されている語をテキスト中から検索する - odz buffer
  • それ use open - odz buffer

    しかし、 test.pl < utf8.txtは行けるが、 test.pl utf8.txtはだめ。 前にも書いたけど、引数を指定した場合、<> は STDIN じゃないですから当然ですね。とりあえず use open IN => ':utf8'; とするほうが、スマートといえばスマートか? や、Encode::decode を使うのが駄目ってことはないと思うけど。 追記 dankogai さんから Trackback が飛んできて気づいたのだが、書き方が分かりにくいな。ここでは、 use strict; use warnings; use utf8; use open IN => ':utf8'; binmode STDOUT, ':utf8'; while (<>) { print if /[ぁ-ん]/; } とするのではなくて、山下さんの元のプログラムに対して use open を追

    それ use open - odz buffer
  • shell のちょっとしたテクニック - odz buffer

    後輩が cat README | tr ' ' '\n' | sort | uniq -c | sort -nr | head てなテクニックを見て、びっくりしたみたいな話をしていたのだが、こういうパイプラインを利用するテクニックを学んでいないのは色々損な気がする。 ていうか、サーバで丸一日以上かかるような処理を実行するのもしょっちゅうなのに、GNU screen も nohup も知らないってのはいろいろ支障があるような気もするのだが、だれも教えないものかなぁ。 ということで、bash or zsh のちょっとしたテクニックとか*1。リダイレクトとかパイプラインは略。 連続実行 単純に連続実行。 % foo; barfoo が正常終了したときだけ bar を実行 % foo && barfoo が正常終了しなかったときだけ bar を実行 % foo || bar&&、||は来は論理演

    shell のちょっとしたテクニック - odz buffer
    yokochie
    yokochie 2007/01/30
    知らなかったこともあるのでブクマ
  • Inplace-Edit #2 - odz buffer

    ref:holidays-l開発ブログ - Perlで既存のファイルを書き換える時のBest Practicesは? 下のエントリの続き。 元記事で条件を端折ってしまったのですが、ファイル一覧はスクリプト内で生成されるので、INPLACE_EDIT(や、ワンライナー)は使用できないように思います。 File::Inplaceは初めて知りました。これで良さそうですが、できればコアモジュールで何とかしたいと思っています。 条件 ファイル一覧は、抽出条件が複雑なためスクリプト内で生成されます(コマンドラインから与えられません)。 できればコアモジュールだけで・・・ ※1番目の条件は、ファイル一覧抽出後にそれらを引数にしてexecするという手もありますね。と書いてみたものの、引数が多くなるとダメになってしまうので、この案は却下。 えーと、exec しちゃっていいなら xargs を組み合わせるのが

    Inplace-Edit #2 - odz buffer
  • Suffix Array - odz buffer

    Suffix Array ということで、軽く言及。 もう一つの難点は、そろそろトウが立っていること。アルゴリズムというのは比較的経年変化の少ない分野ではあるけれども、それでもその後見つかった新たなアルゴリズムだって知りたい。たとえばSuffix Arrayとかは、分かりやすくて使い易い、もっと知られてもいいアルゴリズムなのに、まだこの手のに取り上げられた例というのがありません。 Suffix Array って名前で proceedings に載ったのが1990年*1、Journal に載ったのが1993年で*2 、Mastering Algorithm with Perl の出版が1999年だから、新しいとか古いとかそういう問題ではないと思うがなぁ。 まぁ、アルゴリズムの教科書レベルので Suffix Array を取り扱ったとしても、Suffix Array の構築コストは結構高いし

    Suffix Array - odz buffer
  • Emacsで折りたたみを行う - odz buffer

    folding.el なんか悔しいので、ちょっと便利かも知れない Emacs Lisp の紹介。上のURLから folding.el をダウンロードしてきて、load-path の通ったところにおいておく。.emacs には (autoload 'folding-mode "folding-mode" nil t)とでも書いておいて、適当なファイルで M-x folding-mode とやると。 すると、 // {{{ includes #include <iostream> // }}} // {{{ constants #define MESSAGE "Hello World" // }}} // {{{ main() int main(int argc, char** argv) { std::cout << MESSAGE << std::endl; return 0; } //

    Emacsで折りたたみを行う - odz buffer
  • はてなキーワードAPIからはてなキーワード一覧を取得する - odz buffer

    technical note - はてなダイアリーキーワードと辞書 こうですか?良くわかりません。 % wget http://d.hatena.ne.jp/images/keyword/keywordlist % python extractkeyword.py keywordlist > keywordlist.extracted % grep java keywordlist.extracted | head -n 10 10688:java 10689:java community process 10690:java computing 10691:java desktop system 10692:java ee 10693:java press 10694:java se 10695:java server faces 10696:java studio 10697:java

    はてなキーワードAPIからはてなキーワード一覧を取得する - odz buffer
  • SSHで多段ログインする方法(別解) - odz buffer

    技術メモ帳 - sshで多段ログイン ssh の -t オプションで多段ログインするという話なんだけど、OpenSSH なら ProxyCommand の機能とconnectを組み合わせて使えばいいんじゃないななぁ。 hostA経由でhostBにログインしたい場合はhostAにconnectをインストールしておいて、ローカルの $HOME/.ssh/config に Host hostB ProxyCommand ssh hostA connect %h %pってしておけばあとは ssh hostBでログインできる。これならAgentForward使わずに公開鍵認証も安全に使えるし、scprsync なんかによるファイル転送もできる。 あ、hostB に root 権限を持っていないひとは適当にコンパイルしてホームディレクトリ以下に適当に放り込んでおけばいいと思う。

    SSHで多段ログインする方法(別解) - odz buffer
    yokochie
    yokochie 2006/08/02
  • 1