トップ «前の日(11-06) 最新 次の日(11-08)»

PC関係のメモ


2003-11-07(Fri)

_ 朝5時

作業効率落ちるってのはわかってるんですけどね・・・

後から見たら意味不明なコード書いてたり

_ SetOutputFilter PHP

PHP 4.3.2 からはデフォルトでは Apache 2.0 のフィルタが使えない。これって4.3.2からは apxs2handler を使ってるからだと思うので apxs2filter を明示的に指定してやれば多分いいはず。

./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-apxs2filter=/usr/local/apache2/bin/apxs

両方指定したら案の定 make で失敗。apxs2filter だけだと make 成功

続く・・・

本日のツッコミ(全2件) [ツッコミを入れる]

_ いちえ [そんな時間まで何しとったの?(w]

_ hajime [tDiaryのソース読んでました!]


2004-11-07(Sun)

_ レコード完成

以前制作を手伝わせてもらったレコードが完成したので完成品を頂いた。12インチだとやっぱり画面上で見たより字が大きく感じる。もう少し小さくてもよかったか。逆に帯の部分は「こんなに小さくて潰れないかな」と心配だったがそうでもない。あと思ったより印刷が鮮明。

次回作があったらこのあたり考えて作業したいな。

_ 松山やめ

今月末は忙しくなりそうなので松山行きはやめた。残念。

_ CListCtrlの仮想リスト

使うことになりそう。

用途としては、受け取った文字列(ログ)を一行づつ表示して、閾値を越えたら始めの方から消えていってほしい。で、ログを表示している間は最後に出力した行にフォーカスが移るように。でもスクロールバーは動かして前のログも確認したい。この辺もう少し詰める必要がありそう。

今はCListBoxを使ってたんだけどかなり遅い。そして思いのほかログの件数が多く、しばらく動かしているとメモリが圧迫されるのが悩みの種。

_ MFC使ってるオープンソースプロジェクト

site:cvs.sourceforge.net stdafx.hでGoogle検索

  • FileZilla(SFTPクライアント)
  • WinMerge
  • Shareaza(P2Pクライアント)

_ WinMerge日本語版

使いやすい。WinDiffから乗り換える予定。


2005-11-07(Mon)

_ 容量が増えて中身も増えた

現在のThinkPad X31のHDD空き容量。

  • Cドライブ(39.6GB)
    • 使用領域 24.1GB
    • 空き領域 15.5GB
  • Dドライブ(31.8GB)
    • 使用領域 18.0GB
    • 空き領域 13.8GB
  • 合計(71.4GB)
    • 使用領域 42.1GB
    • 空き領域 29.3

ついこの間、40GBのHDDを80GBにしたばかりで、しかも再セットアップして5日しかたってないのに、もう合計使用領域は40GBを突破。

データドライブであるDドライブが大きくなるのはしょうがないとしても、システム領域のCドライブの空き領域の減り方はどうかと。

Cドライブの中でも特にProgram Filesで10GBっていうのが気になる。最近のアプリケーションの肥大化は酷すぎると思う。

_ [programming]EPSファイルのTIFFプレビューを取り出す

TIFFプレビューが存在するEPSファイルから、TIFFプレビューを取り出す。

#include <stdio.h>
#include <memory.h>
#include <stdlib.h>

void error(const char*);

typedef unsigned char uchar;
typedef unsigned int uint32;

struct EPSBinaryHeader{
    uchar header[4];
    uint32 ps_pos;
    uint32 ps_length;
    uint32 meta_pos;
    uint32 meta_length;
    uint32 tiff_pos;
    uint32 tiff_length;
    uint32 check_sum;
};

int main(int argc, char* argv[])
{
    FILE* fp = NULL;
    size_t read_length = 0;
    struct EPSBinaryHeader header = {0};
    char* ps_buf = NULL;
    void* tiff_buf = NULL;
    FILE* wfp = NULL;
    const static uchar magic_header[4] = {0xc5, 0xd0, 0xd3, 0xc6};
    char tiff_filename[256] = "";

    if(argc < 2){
        error("no input files.");
        goto end;
    }

    fp = fopen(argv[1], "rb");
    if(fp == NULL){
        error("file open error!");
        goto end;
    }

    // read header.
    read_length = fread(header.header,
                        sizeof(header.header[0]),
                        sizeof(header.header),
                        fp);
    if(read_length != sizeof(header.header)){
        error("file size error!\n");
        goto end;
    }

    if(memcmp(header.header, magic_header, sizeof(header.header)) != 0){
        error("file header error!\n");
        goto end;
    }

    // read PostScript.
    fseek(fp, 4, SEEK_SET);
    if(fread(&header.ps_pos, sizeof(header.ps_pos), 1, fp) == 0){
        error("file header error!\n");
        goto end;
    }

    if(fread(&header.ps_length, sizeof(header.ps_length), 1, fp) == 0){
        error("file header error!\n");
        goto end;
    }

    ps_buf = (char*)malloc(header.ps_length);
    if(ps_buf == NULL){
        error("memory alloc error!\n");
        goto end;
    }

    fseek(fp, header.ps_pos, SEEK_SET);
    read_length = fread(ps_buf, sizeof(char), header.ps_length, fp);
    if(read_length != header.ps_length){
        error("read PostScript error!\n");
        goto end;
    }

    // read TIFF.
    fseek(fp, 20, SEEK_SET);
    if(fread(&header.tiff_pos, sizeof(header.tiff_pos), 1, fp) == 0){
        error("read TIFF error!\n");
        goto end;
    }

    if(fread(&header.tiff_length, sizeof(header.tiff_length), 1, fp) == 0){
        error("read TIFF error!\n");
        goto end;
    }

    tiff_buf = malloc(header.tiff_length);
    if(tiff_buf == NULL){
        error("memory alloc error!\n");
        goto end;
    }

    fseek(fp, header.tiff_pos, SEEK_SET);
    read_length = fread(tiff_buf, 1, header.tiff_length, fp);
    if(read_length != header.tiff_length){
        error("read TIFF error!\n");
        goto end;
    }

#ifdef WRITE_PS
    // write PostScript.
    wfp = fopen("output.eps", "wb");
    if(wfp == NULL){
        error("write EPS error!\n");
        goto end;
    }

    if(fwrite(ps_buf, sizeof(char), header.ps_length, wfp)
       != header.ps_length){
        error("write EPS error!\n");
        goto end;
    }

    fclose(wfp);
#endif // WRITE_PS

    // write TIFF.
    strcpy(tiff_filename, argv[1]);
    strcat(tiff_filename, ".tiff");
    wfp = fopen(tiff_filename, "wb");
    if(wfp == NULL){
        error("write TIFF error!\n");
        goto end;
    }

    if(fwrite(tiff_buf, 1, header.tiff_length, wfp) != header.tiff_length){
        error("write TIFF error!\n");
        goto end;
    }

    fclose(wfp);

end:
    if(wfp != NULL){
        fclose(wfp);
        wfp = NULL;
    }

    if(fp != NULL){
        fclose(fp);
        fp = NULL;
    }

    if(ps_buf != NULL){
        free(ps_buf);
        ps_buf = NULL;
    }

    if(tiff_buf != NULL){
        free(tiff_buf);
        tiff_buf = NULL;
    }

    return 0;
}

void error(const char* msg)
{
    fprintf(stderr, msg);
}