2008 年 4 月 27 日 | カテゴリー: 環境構築

2008042701.png

Easy Urpmi

Easy Urpmi は Mandriva Linux のためのリポジトリ追加コマンドを簡単に生成してくれるツール(サイト)です。

Mandriva 2008.1 から、Easy Urpmi のサーバー選択が auto-detect になっていましたが、今までどおり手動で選択しました。
新しいバージョンが出始めたばかりの頃は、すべてフランス(distrib-coffee.ipsl.jussieu.fr)からダウンロードするようにしていますが、日本(ftp.riken.jp)にもパッケージが揃ったようなので設定しました。

いつもどおり、基本は riken から落とすようにして、plf パッケージのみ distrib-coffee から落とすという設定。

urpmi.addmedia 'Main' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/main/release'
urpmi.addmedia 'Contrib' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/contrib/release'
urpmi.addmedia 'Non-free' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/non-free/release'
urpmi.addmedia --update 'Main Updates' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/main/updates'
urpmi.addmedia --update 'Contrib Updates' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates'
urpmi.addmedia --update 'Non-free Updates' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/non-free/updates'
urpmi.addmedia 'Main Backports' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/main/backports'
urpmi.addmedia 'Contrib Backports' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/contrib/backports'
urpmi.addmedia 'Non-free Backports' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/non-free/backports'
urpmi.addmedia 'PLF Free' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/free/release/binary/i586'
urpmi.addmedia 'PLF Non-free' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/non-free/release/binary/i586'
urpmi.addmedia 'PLF Free Backports' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/free/backports/binary/i586'
urpmi.addmedia 'PLF Non-free Backports' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/non-free/backports/binary/i586'
2008 年 4 月 26 日 | カテゴリー: プログラム

2008042601.png

The GNU Readline Library

GNU readline は文字列入力用ライブラリです。
このライブラリを使って入力を行うと、bash のように、↑キーを押すと履歴の参照が可能だったり、タブキーで入力文字列の補完が可能だったりします。

使うこと自体は初めてではありませんが、今回まじめに使ってみたので(readline/history.h の構造体や関数を確認し、履歴を利用するアプリケーションを作っていた)、そのまとめです。

GNU readline を使うには

/usr/include/readline/readline.h
/usr/include/readline/history.h

BSD や Linux ディストリビューションで提供されているパッケージなどからインストールが可能です。
上記ヘッダーファイルを使います。

文字列入力

char *readline(const char *prompt);

引数に入れた文字列を入力時のプロンプト文字列として、文字列入力を行います。
readline が入力された文字列分のメモリ領域を確保し、先頭ポインタを返してくれます。
メモリ領域の開放は自分で行う必要があります。

履歴への登録

void add_history(const char *line);

指定した文字列を履歴へ登録します。
readline から入力した文字列しか登録できないというわけではなく、好きな文字列を登録することが可能です。

履歴の読み出し、書き出し

int read_history(const char *filename)

指定した履歴ファイルを読み出します。
成功すると 0 を返します。

int write_history(const char *filename)

指定したファイルに履歴を書き出します。
成功すると 0 を返します。

履歴の参照

typedef struct _hist_entry {
  char *line;
  char *timestamp;
  histdata_t data;
} HIST_ENTRY;

履歴はこのような構造体に保存されています。

HIST_ENTRY *current_history(void)

現在の行を返します。

HIST_ENTRY *previous_history(void)

1つ前の行を返します。

HIST_ENTRY **history_list(void)

HIST_ENTRY の配列を返します。

他に使える関数

/usr/include/readline/history.h を参照することで使い方を知ることができます。

サンプルコード

HelloReadline.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <readline/readline.h>
#include <readline/history.h>

int main(int argc, char *argv[]) {

    /* ループに使うインデックスです。 */
    int i = 0;
    /* 入力された文字列の参照に使います。 */
    char *str = NULL;
    /* 履歴リストの参照に使います。 */
    HIST_ENTRY **historyList = NULL;

    /* 文字列入力プロンプトを表示します。 */
    while(NULL != (str = readline("input "))) {
        /* 何も入力されなかった場合は無視します。メモリの解放を忘れないでください。 */
        if(*str == '\0') {
            free(str);
            continue;
        }
        /* quit が入力されたらループを抜けます。文字列比較には strcmp を使用します。 */
        if(strcmp(str, "quit") == 0) {
            free(str);
            break;
        }
        /* 入力された文字列を履歴へ登録します。 */
        add_history(str);
        /* 入力された文字列をそのまま出力します。 */
        printf("output: %s\n", str);
        free(str);
    }

    printf('-- History List --\n');

    /* 履歴リストを取得します。 */
    historyList = history_list();

    /* 履歴を1行ずつ参照します。 */
    while(historyList[i] != NULL) {
        /* 履歴を1行取得します。 */
        HIST_ENTRY *history = historyList[i];
        /* 履歴に含まれる文字列を出力します。 */
        printf("%s\n", history->line);
        /* インデックスを次に進めます。 */
        i++;
    }

    /* 履歴リストをファイルに書き出します。 */
    write_history("history.txt");

    /* プログラムを終了します。 */
    return EXIT_SUCCESS;
}

1. quit が入力されるまで、入力された文字列をそのまま出力する。
2. quit が入力されたら、それまでに入力された履歴リストを出力する。
3. 履歴リストをファイルに出力する。

コンパイル

gcc -o HelloReadline -Wall -lreadline -lcurses HelloReadline.c

リンカオプションが必要です。

2008 年 4 月 20 日 | カテゴリー: 買った本

4062836335.09.MZZZZZZZ.jpg

電車の中で少しずつ読んでいたけど、ようやく読み終わりました。長い長い。

絵が全然出てこないのと、外見の特徴の部分をしっかり覚えずに読み進めたため、勝手なイメージで読んでいました。後から絵を確認したけど(話の最初に1枚だけ絵がある)、だいたいはイメージぴったしの姿です。
でも、霧栖のイメージだけずれてました・・・。白い髪のお兄ちゃんなイメージで読んでました。

今まで公開されている絵は以下のキャラ。

1巻
* 表紙 : 迦遼海江
* 1.JtheE. : 石杖所在
* 2.HandS.(R) : 戸馬的
* 2.HandS.(L) : 久織巻菜
* 3.formal hunt. : 石杖火鉈

2巻
* 表紙 : 日守秋星
* 1.S.vs.S-1 : 鋳車和観
* 2.S.vs.S-2 : 霧栖弥一郎
* 3./FOMALHAUT. : 日守秋星
* 4./Vt. in day dream. : 石杖火鉈(17歳)

アリカ、戸馬さん、秋星、カナタはイメージどおり。1巻の表紙がカイエと気づいたのは後のお話。
ツラヌイのイメージは黒髪ショートカットで元気ある女の子(確かな設定は大学生でお嬢様)のイメージなんですが、3巻で絵が出てきたりしたら全然違うかも。

2巻最後の数ページで、カナタにあっさりD棟患者全滅させられているけど、出番の無かった人たちかわいそす。
3巻はどんな話になるんでしょうね。

2008 年 4 月 6 日 | カテゴリー: 買った本

4047150398.01.MZZZZZZZ.jpg

成恵の世界のはっきりした1話の起承転結っぷりが好きです。

機族が表情を持って動いている何気ない1コマ1コマを見るだけで、いちいち感動してしまったり、今一番好きな作品まで登り詰めてます。

特にコンテキストアウェアネスの点を気にすると、いろいろと想像が広がって仕方ありません。
生きている間にこの世界を見てみたいと、本気で思っているわけですが、間に合うのでしょうか。

そんな自分の興味は、宇宙や制御、通信系に向いています。
結局のところ、自分が研究する際の一つのゴールが機族と星船だと思ってますが、果たして。

2008 年 4 月 6 日 | カテゴリー: その他

MOON PHASE – ANIME

日曜日
10:00 テレビ東京 絶対可憐チルドレン
25:30 テレビ東京 隠の王

月曜日
23:00 TVK S・A ~スペシャル・エー~
25:15 TVK 我が家のお稲荷さま。
26:00 テレビ東京 モノクローム・ファクター

木曜日
25:25 TBS xxxHOLiC◆継
26:15 TVK 紅

金曜日
25:15 TVK ドルアーガの塔 ~the Aegis of URUK~

土曜日
26:30 TVK 仮面のメイドガイ

今期のアニメを調べてみると、乙女のための作品が満載ですね。
D.C. や To LOVEるはもう最初からみていないんですが、どうでしたか。

そして、アリソンが BS 放送なのが残念。
モノクロがアニメ化したのにはびっくり。

とりあえず、今期の録画予定としては、HOLiC とメイドガイの2つ。ドルアーガも録画するかも。
今期はちょっと楽できそうです。なにか忘れているものがあったら言ってくださいな。

Page 1 of 212
TOP