mieki256's diary



2005/05/23(月) [n年前の日記]

#1 [cg_tools] OptiPNG がバージョンアップ

_OptiPNG Home Page
_Optipngがバージョンアップ! - AkのJavaメモやWebの更新情報

png画像を最適化してファイルサイズを小さくすることができるツール。ただし、コマンドライン上で操作。とりあえず、DL。入れ替えた。

_akJ OptiPngWrapper(PNGの最適化 GUI) :

GUIで操作したい方はこちらがオススメ。かも。

#2 [windows] _フリーソフト ドラムボックス orDrumboxの起動からWav形式への書き出しまで

orDrumbox-0.6.01-win32.exe をDL。実行してみた。…なんだか面白い。

#3 [windows] _OGG Direct Show Filter インストール(AviがWindowsMediaPlayerで再生できない・OGG Media Aviを再生する時)

_Ogg Vorbisを聴くには?

_Tobias' DirectShow(TM) Filter のページから、OGG DirectShow Filter をDL・インストールしてみた。ogg形式が Windows Media Player で再生できるようになった。

#4 [windows] WinAMP5 をインストール

_1から始めるWinamp を参考に、DL・インストール。ひょっとすると重いのかもしれないけど、とりあえず、WinAMP5をインストールしてみたり。 _Win32工作小屋 から日本語化ツールをDL・インストール(?)。日本語化を。

気のせいだろうか。結構重いような…。2.xx にしようかしら。

_Winamp5 FAQ :

Q. 起動が遅い。動作が遅い。

A. Modernスキンを使用している場合、Preferencesの[Skins]→[Modern Skins]の[Font Rendering]タブで『Use FreeType internal TTF rendering』のチェックを外してください。文字のアンチエイリアスが無効になりますが、負荷を低くすることができます。それでも動作が遅い場合はClassicスキンを使用してください。メインウィンドウの右クリックメニューから[Skins]→[Winamp Classic]を選択するとWinamp2タイプのスキンになり、動作が速くなります。
Skin を Classic にしてみた。相変わらず起動は遅い。ような。でもまあ、Mozilla Firefox の起動と同じくらいな感じだし。別にいいか。

#5 [comic][novel] 『学園アリス』は、フィリップ・K・ディック作品の少女漫画風アレンジ版だったのか

_『ユービック』(フィリップ・K・ディック著) の紹介記事を読んでて、なんとなく。これってどこかで聞いたような設定だなと思ったら。『学園アリス』だ。そうか。そういうことだったのか。

嘘。だって、展開が全然違う感じだし。…まあ、フィリップ・K・ディックという名前と、目がパッチリとしたいかにもな少女漫画の絵柄が、脳内で繋がったところに面白さを感じてしまっただけなのですが。

別に珍しいことじゃないよな。 _花の24年組 の頃から、SFチックな世界を描いた少女漫画作品は多々あるわけだし。

#6 [prog][windows] Perlの0x5C問題

自作スクリプトを使っていて不具合に気づいてしまった。opendir、readdir、-d を使った際、特定の漢字が混入してるディレクトリ名に対して正しく処理ができない…。

_Shift-JISの漢字を含むファイル名/パス名 - Shift-JISテキストを正しく扱う :

これだ。たぶん。一番最後に 0x5C が入ってる漢字だった。

_文字化けをする文字一覧表
_漢字コードのShift-JIS(Windows標準)とPerlとの問題。
_RE: フォルダ名の最後が「表」の場合のインデックス作成
_全てSJIS環境でのPerl文字化け(文字コード'5C'問題)

ふむ…。一番最後に "/" をつけて誤魔化してみた。あるいは、$f =~ s/\\/\\\\/g; とか…。

ruby や python ではどうなるんだろう :

同じ不具合が出るのかしら?

と思って、試しに似たようなスクリプトを作成…しようとしたけど、そもそも ruby も python も判らないので時間がかかってしまったり。

この記事へのツッコミ

Re: Perlの0x5C問題 by とおりすがり    2011/08/17 18:00
Sjis.pm に付属する Esjis.pm の中のサブルーチンを
使って解決しました。

http://text.world.coocan.jp/TSNET/?Sjis.pm

#7 [xyzzy] xyzzy の ruby-mode

_こちら の ruby-mode を使わせてもらったり。ありがたや。

補完機能が F20キーとやらに割り当てられてるように見える。さりとて F20 なんてキーは実際には無い。どうすればいいんだろう。と悩んだけれど、F20 を、更に shift + space に割り当ててあるのだな。

#8 [prog][windows] 0x5C問題をチェック

ひとまず、perl、ruby、python で動作の違いを確認してみたり。

環境は、WinXP Home SP2。テストしたディレクトリの中は、こんな感じ。
H:/temp2/strigcmptest/
 ├ t.txt
 ├ test.pl
 ├ test.rb
 ├ あ/
 ├ ソ/
 ├ 能/
 ├ 表/
 └ 法/
漢字で名前がつけられてるのが、ディレクトリ。おそらく、「ソ」「能」「表」がヤバゲ。2バイト目が 0x5C だから。

perlで動作確認 :

Active Perl 5.8.6 build 811 を使用。

こんな感じのスクリプトで。
#!/usr/bin/perl

&get_filelist(@ARGV);
exit 0;

sub get_filelist {
    my($path) = @_;
    opendir DH, $path || die "Can't open $path";
    foreach my $f (readdir DH) {
        next if $f =~ /^\.{1,2}$/;
        if ( -d "$path/$f" ) {
            print "[D] $f\n";
        } else {
            print "[f]  $f\n";
        }
    }
    close DH;
}
結果。
H:\temp2\strigcmptest>test.pl .
[f]  ソ
[f]  能
[D] 法
[D] あ
[f]  t.txt
[f]  test.rb
[f]  test.pl
[f]  表
よろしくない。「ソ」「能」「表」がディレクトリとして認識されてない。おそらくだけど、「そんな名前の(ファイル|ディレクトリ)は無い」ということで、 if 〜 else 〜 の、else まで流れてきてるのだろうと。

少し修正して試してみた。
#!/usr/bin/perl

&get_filelist(@ARGV);
exit 0;

sub get_filelist {
    my($path) = @_;
    opendir DH, $path || die "Can't open $path";
    foreach my $f (readdir DH) {
        next if $f =~ /^\.{1,2}$/;
        $f .= "/";                  # 追加
        if ( -d "$path/$f" ) {
            print "[D] $f\n";
        } else {
            print "[f]  $f\n";
        }
    }
    close DH;
}
-d で、ディレクトリかどうかチェックする前に、"/" を最後に付け足してみたり。

結果。
H:\temp2\strigcmptest>test.pl .
[D] ソ/
[D] 能/
[D] 法/
[D] あ/
[f]  t.txt/
[f]  test.rb/
[D] 表/
[f]  test.pl/
今度は大丈夫。

ちなみに、s/\\/\\\\/g を入れる方法も試してみたけど、そちらも一応大丈夫だった。

rubyで動作確認 :

何の版の ruby を入れたのだったか、忘れてしまったけど。こんな感じの表示。
H:\temp2\strigcmptest>ruby -v
ruby 1.8.2 (2004-12-25) [i386-mswin32]
HDDの中を眺めた限りでは…もしかして、ActiveScriptRuby かしら。ちょっと自信なし。

スクリプトはこんな感じ。
#!/usr/bin/ruby

def get_filelist(path)
    d = Dir.open(path)
    flst = d.entries
    flst.each do |f|
        next if f =~ /^\.{1,2}$/
        if FileTest.directory?(f) then
            printf("[D] %s\n",f)
        else
            printf("[f]  %s\n",f)
        end
    end
end

get_filelist(ARGV.shift)
…ruby は全然判らないので、「ダメだダメだ、そんな書き方じゃ! このように書くのが ruby風!」てのがあったらご教授プリーズです。

さておき、結果。
H:\temp2\strigcmptest>test.rb .
[D] ソ
[D] 能
[D] 法
[D] あ
[f]  t.txt
[f]  test.rb
[D] 表
[f]  test.pl
わ。全く間違えてない。素晴らしい!

関係ないけど。FileTest.directory?(f) で、ディレクトリかどうか判別できてるのが不思議。「サブディレクトリ名を渡してるだけ」のはずなのに。もしかして、flst = d.entries で、(サブディレクトリ名|ファイル名)と一緒にフルパスも得られていて、それを使って判別してるのかしら? いや、もしかすると、flst = d.entries の時点で属性まで得ているのかな。前者と後者で、その後に書くべき処理も変わってきそうなので、少し気になるところ。

pythonで動作確認 :

pythonは全くの未経験なのだけど。 _Cafe de Paison_Python超簡易イントロダクション その3 を参考に、というかコピペさせてもらって試してみたり。

ActivePython 2.4 を使用。

スクリプトはこんな感じ。
#! /usr/bin/python
# -*- coding: shift_jis -*-

import sys, os

def get_filelist(path) :
    if not os.path.isdir(path) :
        print "Error: Not dir ",path
        sys.exit(2)

    try :
        flst = os.listdir(path)
    except OSError, e :
        print "Error: Can't open ",path
        sys.exit(3)

    print flst

    for e in flst :
        fullpath = os.path.join(path,e)
        if os.path.isfile(fullpath) :
            print "[f] ",e
        elif os.path.isdir(fullpath) :
            print "[D] ",e
        else :
            print "[x] ",e
    
get_filelist(sys.argv[1])
sys.exit(0)
結果。
H:\temp2\strigcmptest>test.py .
['\x83\\', '\x94\\', '\x96@', '\x82\xa0', 't.txt', '\x95\\', 'test.pl', 'test.rb', 'test.py']
[x]  ソ
[x]  能
[D]  法
[D]  あ
[f]  t.txt
[x]  表
[f]  test.pl
[f]  test.rb
[f]  test.py
perlと同じ。2バイト目が0x5Cの漢字を使ってると、判別ができない。

さて、python の場合、どうやって解決したらいいのやら…。SJIS対応版をインストールし直さないとダメとか? うーん。他に手がありそうな気もするけど…。

まとめ :

日本語版のWindows環境において。perl と python は、日本語を使ったファイル名 or ディレクトリ名の扱いに問題が出る可能性がある。ので、何かしら工夫が必要と。しかし、ruby ならそのへん問題が出ないかもと。

作者が「Windows は知らん」と公言する ruby が、最も、日本語版Windowsのことを考えてる(?)というのが、なんだか面白いというか、作者さん&コミュニティはスゴイというか、日本人が作っただけのことはあるというか、そんなことを思ったりもして。

#9 [windows] _コマンドプロンプトの編集機能とコマンド履歴

わ。こんなに色々なキー割り当てがあったのか。知らなかった。
Control-Home
行の先頭からカーソル位置までを削除
Control-End
カーソル位置から行末までを削除
F7
コマンド履歴ウィンドウをポップアップ表示する。[↑]、[↓]キーでコマンド履歴を選択して、[←]、[→]キーを押すとそのコマンドが入力され、リターン キーを押すとそのコマンドが入力、実行される。
知らなんだ…。

_Windows 2000 コマンドライン徹底活用 :

bat…じゃなくて、cmdファイルか。結構色々できるのだな。

#10 [prog] Pythonwinなるものを触ってみる

ActivePython をインストールしてある環境なのだけど。Pythonwin IDE なるものが入ってるみたいで。実行してみた。

漢字の扱い :

漢字を打ち込んだら文字化けしてしまって困ったけど。View → Options → Format → Default Font の文字セットが「欧文」になってた。「日本語」にしたら漢字も表示された。しかし。Backspace や Delete を使うと1バイトずつ削除されていくので文字化けするし、カーソル移動は1バイト単位だしで。2バイト文字に対応した編集作業ができるわけではないらしい。

補完 :

補完の操作で悩んだけど、help *1 を見たら書いてあった。「.」を入れて、候補が出てきたところで、TAB を押せばよかったのだな。一生懸命、Enter を押してましたわ。トホ。

一度打ち込んだ文字列は、Alt+/、もしくは Ctrl + Space で補完してくれるみたい。たぶん。

import だの print だの、そういう文字列は補完してくれないのかしら…。

キー割り当てのカスタマイズ :

Pythonwin が入ってるフォルダの近辺に、default.cfg、IDLE.cfg というファイルがあって、その中でキーの割り当てが書かれてるみたい。IDLE.cfg は、カスタマイズのサンプル、ということになってるけど。たぶん、弄れば、emacs風のキー割り当てもできるのかも。また、default.cfg の中を見ると pythonらしきコードが見えるので…おそらく自分でコードを書いていけば、機能追加等も容易にできる、のかもしれず。自信ないけど。

隠れてるウインドウが居る… :

ソースを開いたウインドウの、左や上のあたりに、アウトライン等のウインドウが隠れてるような。マウスでドラッグすると、広げることができるみたい。

xyzzy の py-mode と比べると :

インデントを結構そこそこちゃんとやってくれる、ような。> Pythonwin。

「.」を入れた後の補完も、嬉しい感じ。かなりの量のリストが出てくるので助かる。

ただ、emacs風キーバインドじゃないので、個人的にはちょっと…。カスタマイズすればいいんだろうけど。うーん。それに、2バイト文字上のカーソル移動・編集がアレなのが厳しい。

emacs系で言うところの、indent-region *2 があれば嬉しかったのだけど、そういうものは無いみたい。あくまで『人間様』がインデントを意識しろ、ということなのかな。インデントが動作に関わってくるLLなのに、なんだか不親切な感もあるようなないような。いや、逆に人間にしか指定できない部分なのかな。

こうなってくると、emacs系の python-mode.el も気になるところ。結構機能的には充実してるのか、それとも色付けするぐらいでたいしたことはしてくれないのか。…どうなんだろうなぁ。

*1: PyWin32 Documentation → Pythonwin and win32ui → Overviews → Keyboard Bindings。
*2: リージョン(選択範囲みたいなもの)の中を、自動で、適切なインデントに調整・整形してくれる。

#11 [nitijyou] 夕方から豪雨

かなりの雨量。そのことで、事件が。

前の家の方から苦情(?)があった。 :

ウチの排水溝(?)のところで水が流れなくなってるとかで、前の家まで下水(?)が逆流。物置が水浸しになってると。…マジすか。そりゃヤバイ。

実際に排水溝を確認したところ、U字ブロック?が縦に置かれていて、水の流れを防いでいた。呆れた。誰ですか、こんな置き方をしたのは。まあ、やりそうなのは親父さんぐらいなんだけど…。とりあえず、ずぶ濡れになりながらU字ブロックを横置きに。

写真撮影から帰ってきた親父さんに報告したところ、どうやら複雑な事情があるらしく。

なんだか面倒な状況 :

排水溝は、ウチも含めて4軒の家が利用してるのだけど。家に接してる道路の所有権が未だにわけのわからん状態になってるが故に、各家の敷地内を排水溝が通っているという。なもんで、どこかで詰まってるからといって勝手に掃除できない状態。詰まってる箇所の家人に連絡をとるしかなく…。

さておき。ブロックを縦置きにしてた理由がちゃんとあったらしく。どうも、上流(って言っても一軒しかないんですけど…)から怪しげなもの(親父さんは人糞ではないかと疑ってる…)が流れてきて、ウチの、裏の家…ウチとは違って、地下に埋められてしまっている排水溝で詰まってしまい、逆流して、ウチに被害が出たことが何度もあったらしく。となると、何が何でもウチより後ろにその手の汚物を流すわけにはいかず、ブロックを縦置き…平常時であればチョロチョロと、水だけは流れるように調整していたのだとか。

元々は…ウチが建った昭和40年代頃は、近隣で話し合って、台所 + 風呂場の排水を流す話になってたらしいけど。近年、ウチの前の家と後ろの家が水洗トイレにしたそうで。 *1 排水溝にそれらの水を流すようになったのだとか。つまりは、当初の予定以上の流量が排水溝に流れてしまう状態になっているわけで、そりゃ溢れることも多々あるわな…。それはともかく。一応それら水洗トイレになった家には、浄水槽とやらが設置されてるらしいのだけど。手入れしないと汚物が流れるのか、雨が降ると溢れるのか判らんけど、謎な物体が時々流れてきちゃう、との話で。…ウチはまだ、前の家の一軒分を目にするぐらいだけど。一番最後に位置するNさん宅は、2軒+ウチの排水分が流れるわけで、なんというか、どうしたもんか、なんだか申し訳ない気持ちになるというか…。

つーかそもそもその排水溝を使うのも問題があるんだけど、これまたいかんともしがたい。ウチの近辺に限らず、須賀川市のほとんどは、未だ下水等の整備がほとんど進んでないわけで。…ウチが利用してる排水溝の水がどこに流れ込むかといえば…さらにその水が最終的にどこへ流れ込むかといえば…そんな状況におかれてる家屋がどれだけあるかを考えれば…阿武隈川も汚れるはずで。お袋さんが子供の頃は、阿武隈川で泳いだりしたらしいのだけど。今、あの川で泳いだら確実に病気になる。しかもそれらの水は郡山市や福島市に流れていくわけで。郡山市や福島市で下水整備をしても、その上流からしてアレなわけだから…。さりとて上流地域はこれといった産業がなく、経済的にも貧しいので整備するだけの金もなく…。なんだかもう色々と絶望的状況。まあ、何十年もかけて少しずつ整備していくしかないんだろうけど。

*1: ウチは汲み取り。

以上、1 日分です。

過去ログ表示

Prev - 2005/05 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project