写真 青い空と雲と建物と木々の緑

nishimotzの日記

  • HP Photosmart A716

    先日 HP インクジェットプリンタ Photosmart A716を購入しました。

    普段自宅では白黒のレーザプリンタを使っているので、写真や葉書を印刷できるコンパクトなカラープリンタが欲しいと思い、有楽町ビックカメラで選びました。

    ところが、数枚の写真を印刷した後、葉書印刷のリハーサルをやろうとして普通紙を入れたら紙詰まりが起きて回復不能に。本体は低価格でしたが、すでにフォトペーパーやインクカートリッジに追加投資しているので、諦めるわけにもいかず、メーカーに問い合わせたら「クイックエクスチェンジ」で対応していただき、電話した翌日に宅配業者が来て代替品と交換してもらえました。

    これからは気をつけて使いたいと思います。

  • Delphi + PHP

    Delphi 2007 の Indy コンポーネントを使い、ファイルを HTTP 経由でアップロードし、PHP5 でダウンロードする動作を確認しました。下記のサンプルをそのまま実行しようとしたら、PHP5 で動かなかったことと、Delphi 側も多少の手直しが必要でした。

    <?php
    $upload_dir = '/data/www/html/uploader/data';
    $maxfilesize = 1024000; // up to 1MB
    $send = $_POST['send'];
    $userfile = $_FILES['userfile'];
    $phpself = $_SERVER['PHP_SELF'];
    if(isset($send)) {
    if(is_uploaded_file($userfile['tmp_name'])) {
    if($userfile['size'] <= $maxfilesize) {
    if (move_uploaded_file($userfile['tmp_name'],
    $upload_dir.'/'.$userfile['name'])) {
    echo '<p>upload ok</p>';
    } else {
    echo '<p>upload error</p>';
    }
    }
    }
    }
    ?>
    <form action="<?php echo $phpself; ?>" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $maxfilesize; ?>">
    <input type="file" name="userfile">
    <input type="submit" name="send" value="send">
    </form>
    

    Delphi の Form1 には IdHTTP1, Button1, Memo1 を貼り付けました。

    implementation
    {$R *.dfm}
    uses IdMultipartFormData;
    procedure TForm1.Button1Click(Sender: TObject);
    var
    ResponseStream: TMemoryStream;
    MultiPartFormDataStream: TidMultiPartFormDataStream;
    begin
    MultiPartFormDataStream := TidMultiPartFormDataStream.Create;
    ResponseStream := TMemoryStream.Create;
    try
    IdHttp1.Request.ContentType :=
    MultiPartFormDataStream.RequestContentType;
    MultiPartFormDataStream.AddFile(
    'userfile', 'c:\test.jpg', 'multipart/form-data');
    MultiPartFormDataStream.AddFormField('send', 'send');
    MultiPartFormDataStream.Position := 0;
    IdHTTP1.Post('http://server/uploader/’,
    MultiPartFormDataStream, ResponseStream);
    Memo1.Lines.Append('[upload ok]');
    finally
    MultiPartFormDataStream.Free;
    ResponseStream.Free;
    end;
    end;
    procedure TForm1.IdHTTP1Status(ASender: TObject; const AStatus: TIdStatus;
    const AStatusText: string);
    begin
    Memo1.Lines.Append(AStatusText);
    end;
    
  • バージョンアップ

    Eclipse ベースの Ruby on Rails 開発環境である CodeGear 3rdRail の 1.01 がリリースされました。

    オープンソースの音声認識エンジンである Julius 4.0 がリリースされました。

    詳細は近々レビューしたいと思います。

    世の中は仕事納めが近づいているのでしょうか。。私も昨日、まだ世界中にユーザが一人しかいない某ツールのバージョンアップをしましたが、仕事納めはなかなかやってきません。。