国籍法の改悪

国籍法の改悪が話題になっています。ただし、Webのみ。

http://www19.atwiki.jp/kokuseki/
http://www.j-cast.com/2008/11/17030474.html
http://sankei.jp.msn.com/politics/policy/081120/plc0811201947010-n1.htm
http://blog.ohgaki.net/-18
http://abirur.iza.ne.jp/blog/entry/799264/

テレビでこの件のニュースを見たことがない。新聞社などメジャーなニュースソースでもあまり取り上げられていない。アルファ・ブロガーな人もあまり言及していない。でも、個人のBlogやSNS等では、ずいぶん感心の高いニュースとして盛り上がっているように感じるのです。

上記のようなエントリーを見る限り、かなりやばそうな改悪なのですが、私は煽られているだけなのでしょうか。それともホントにヤバイのでしょうか。

単に、DNA鑑定を明記すればいいだけのようにも思えます。なぜ現在で最も確実だと思われる方法を採らないのか、よくわからないのですが・・・。

世論的には、この件はどうなんでしょうか。認知すらされていないように思うのですが・・・。

Automater で ドロップレット

Mac OS X Tiger から搭載されたAutomatorは、ShellスクリプトPerlをドロップレットにできます。UNIXコマンドやらPerlというものを知らないデザイナなどにバッチスクリプトを作ってあげるときなんかに重宝しています。

ライブラリ:「Automator」、アクション:「シェルスクリプトを実行」を加えて、Perlの場合はシェルを「/usr/bin/perl」、シェルスクリプトの場合は「/bin/bash」を選びます。また、「入力の引き渡し方法」は「引数として」にしておきましょう。作成したAutomatorは、「別名保存」で「アプリケーション」として保存します。

例えば、

HTMLのみを、階層構造を保ったまま抜き出す(/bin/bash

  if [ -d "$1" ]; then
      cd $1;
      find . -name "*.html" -print | cpio -pd ~/Desktop/html_only/;
  fi

ディレクトリをドロップすると、「html_only」というディレクトリがDesktopに作られ、.htmlファイルが階層構造を保ったままコピーされます。

findコマンドで検索したものを、cpioでアーカイブしています。「-p」はコピーパスモード、「-d」はディレクトリを作る、という意味です。cpioはたくさんオプションがあるので、cpioで検索してみてください。

単にfindコマンドのを使っているだけですので、検索条件さえ変えれば、「30分以内に更新した.htmlファイル」とかってのも、すぐ出来ます。

  if [ -d "$1" ]; then
      cd $1;
      find . -mmin -30 -name "*.html" -print | cpio -pd ~/Desktop/html_only/;
  fi

フォルダの中のHTML、PHPを、階層構造を保ったまま抜き出す(/bin/bash

PerlとFile::Findを使えば、更にさらに細かく指定することもできます。

  if [ -d "$1" ]; then
      cd $1;
      perl -MFile::Find -e "find(sub{ print qq{$File::Find::name\n} if ( /(php|inc|[sp]html?)$/ ); },'.')" | cpio -pd ~/Desktop/html_only/;
  fi

上記は、.php、.inc、.phtml、.shtml、.html、.htm のものを集めてDesktopに階層構造を保ったままコピーします。

画像ファイルをPSDに変換(/usr/bin/perl

ファイル名を抜き出したいがために、Perlを使っています。

 use File::Basename;

 foreach my $file ( @ARGV ) {
     my( $name, $dir ) = fileparse( $file );
     my $save_file = $name;
     $save_file =~ s/\.[^\.]+$/.psd/i;
    `sips -s format psd $file --out $dir$save_file`;
 }

sipsコマンドは、画像ファイルを操作するコマンドです。「OS X ハッキング! (73) Pantherを追いかけて(5)〜sipsは使えるよ〜(マイコミジャーナル)」 辺りが詳しいです。

画像にサムネイルとアイコンを付ける(/bin/bash

同じく、sipsコマンドを使った例です。

  for file in "$@"
  do
      sips -i "$file"
  done

※ファイル名にスペースが入っているようなファイルを処理できない、という問題はあるかもしれません・・・。

対応アプリケーションと連携できるのが Automator の良いところではあるのですが、Perl や Shellスクリプトが書ける人であれば、その使い方は無限大です。Mac OS X のみしか通用しない、というのがイタイところではあるのですが、うまく使えば、生産性を上げられることは間違いないでしょう。

ホントにやるつもりなの?定額給付金

定額給付金が話題になっています。私は反対です。

ごく一般的な庶民の素人が、酔っぱらった勢いで書いてみます。

何のために、たくさんの手間をかけて国民から集めた税金を、また手間をかけて国民に配るのか。その無駄になる手間賃だけで、相当な額、相当な労働力の無駄になるわけですよね。

しかも、この政策はなんのメリットも生み出さない。それは麻生政権にとっても、国民にとっても。


この件で、麻生内閣の支持率は下がっています。これだけ情報を得られる世の中、ばらまきに諸手を挙げて喜ぶような国民なんていないでしょう。誰しもが、自分たちが払った税金が、単に分配されるだけだということをわかっているはずです。そのばらまいた分を、また市民から吸い上げる必要があることをわかっています。この時点で政府・自民党の「選挙対策」という意義は消滅しています。

しかも、本来高い税率を科せられる富裕層にも、このままでは同じように分配されます。「弱者救済」という意義はこれで消滅します。結局、貧乏人が損するだけだと思うのです。

景気に対する効果もたぶん微々たるものでしょう。テレビでやってる街頭インタビューや様々なブログの記事を見てください。みんな言ってますよ。私自身も定額給付金をもらったからといって、何かに使おうとは思いません。先の見通せないこの世の中、さらに景気は悪くなるのではないかという不安感、年金問題社会保険庁への不審=将来の不安感・・・を持った精神状態の中で、誰が景気よくお金を使うというだろうか。

伊坂幸太郎がその著作「魔王」の中で予言していて、すごいな、と思ったこととして、有能だがファシズムを巻き起こす予感のある政治家が、景気対策としてまずやったことが年金制度の改革だったことです。そうなんですよ。将来が不確定であればあるほど、人は金を貯め込もうとするものです。

さておき、

結局のところ、麻生内閣自民党にとっても、国民にとっても、この「定額給付金」はなにもメリットはないと思うのです。それでもホントにやるつもりなのでしょうか。麻生さんが振り上げた拳がおろせないだけですよね?

であれば、税金の使い道はいくらでもあります。お願いです。有効な税金の使い方をしてください。

医師不足、特に産科・小児科の不足
うまくやる必要はあるでしょうが、いくらでもお金をかけられるところです。少子化対策としても大きく効果があるでしょう。20〜30年後の将来を見据えれば、さまに今やらなければならないことです。
学校の耐震検査と修復
New Zeroで村尾さんが言っていましたが、これも将来のためにはいいですよね。
教育制度の問題
ゆとり教育の大失敗、学力低下、いじめの問題、教員制度の問題等々。これも将来の日本のために重要なこと。
地球温暖化対策
長期的な、グローバルな視点で考えれば、とても国民のためになることです。これもいくらでもお金が使えますよね。
著作権問題
インターネットの時代に適合しない知的財産の在り方は文化をも滅ぼす
産業の振興
著作権の問題などと関連して、今の政府は新しい産業に投資する感覚がないように思える。インターネットがこれだけ社会生活に影響を及ぼすようになったのに、そこに投資しようという政策が少ないように思う。

・・・政治が解決ずべき、お金をかけるべき、将来的に発展の妨げになる問題は山積みのままです。このような問題にこそ、何兆円のお金を使うべきではないでしょうか。

政治家のみなさんは、もう一度よく考えて欲しいと思います。何のための「定額給付金」なのかを・・・。

「妻」と「毒」は似ている

年末調整用の書類を書いていて、続柄に「妻」と書くべきところを間違えて、「妻」の「女」の部分を「母」と書いてしまった。

こりゃ、どう見ても「毒」にしか見えない。

あわてて二重線を引きましたが、どうにも可笑しくて・・・。

決して私の妻は「毒」ではないですが、漢字ってどこか男性目線で、皮肉が込められているところありますよね。「姦しい」とか。

加えて、文章を手書きしなくなったこのご時世、ホントに漢字が書けなくなりましたよね。これじゃ日本語も亡びますわね。

QNAP TS-209 ProII で Perl を動かす

NAS選び

会社のファイルサーバが老朽化してきたので、NASの導入を検討していました。

  • 詳しい人がいなくても運用できる
    • ブラウザで管理できる
    • ある程度放置しておける
  • でも定時処理がしたい(古いゴミファイルを消すなど)
    • Perl・cron が動作させられる
    • リモートアクセスできる(ssh
  • 二重化しておきたい(RAID 1
  • プリントサーバにもなるといい
  • iTunesサーバも使うかも

普通に使う分には簡単に使えて、さらに LinuxBox的にも使えるもの・・・ということで選んだのが、QNAP TS-209 ProII です。先日、秋葉のオリオ・スペックに行って買ってきました。

Perlで定時処理する

もろもろの設定を済ませた後、早速 QNAP TS-209 ProIIPerlを実行できる環境を作ったので、その時のことをメモしておきます。ちなみにファームウェアのバージョンは「2.1.0 Build 0624T」です。

もっといろいろやりたい人は Debian化したりするそうですが、導入した TS-209 はファイルサーバとしての運用しかしないつもりなので、最低限 Perlを動かす最も簡単そうな方法として、QNAP純正の「QPKG」から ipkgを導入する方法にしてみました。

ipkgとは、以下のようなものだそうです(管理画面の「QPKGの取得」で出てくるページから引用)。

Ipkg、またはItsy Package Management System(Itsyパッケージ管理システム)は埋め込みデバイス用に設計された計量のパッケージ管理システムです。OpenWRT、 OpenMoko、Gumstix、iPAQ、QNAP NASでLinksys NSLU2用のUnslungオペレーティングシステムで使用されます。

参考)QNAP TS-109 Japanese Forum などが大変参考になりました。

QPKG から Optware-ipkg を入手
  1. ブラウザで TS-209 にアクセス。
  2. 管理画面から「システムツール」→「QPKG」に移動
  3. 画面右上の方(QPKGの見出しの帯)にある「QPKGの取得」をクリック
  4. 出てきた画面から、「Optware IPKG (Itsy Package Management System)」をクリックし、TS-209用のファイルをダウンロード。
  5. 管理画面の「システムツール」→「アップデート」に移動。上記でダウンロードしたファイルを指定して、更新。
  6. 更新が終わったら、管理画面「システムツール」→「QPKG」から「Optware-ipkg」をクリックして、有効にする。
ipkg から Perl をインストール
  1. ssh で TS-209 にログイン
  2. まずは ipkg のリストを更新  $ /opt/bin/ipkg update
  3. perl をインストール  $ /opt/bin/ipkg install perl
perl の実行

Perlを実行する際には chrootする必要がある。そうしないと、以下のようなエラーが出る。

perl: relocation error: /opt/lib/perl5/5.8.8/arm-linux/CORE/libperl.so: symbol __aeabi_uidiv, version GCC_3.5 not defined in file libgcc_s.so.1 with link time reference

予め、

$ /usr/sbin/chroot /share/MD0_DATA/optware

としておくか、

$ /usr/sbin/chroot /share/MD0_DATA/optware /opt/bin/perl ... 

とすればいい。

参考)chroot とは?

crontab の設定

単に crontab -e admin としても、crontab を書き換えることができない(書き換えたつもりでも、元に戻ってしまう)。

/etc/config/crontab を書き換えれば、再起動後に反映される。

参考)crontab はreboot すると初期化されてしまう | Nyan-Chew's Digital Life

コードを晒してみる その2 DateTime::Simple

日付や時間を扱うPerlモジュールはたくさんあります。DateTimeDate::SimpleDate::ManipDate::Calc といったところが有名どころだと思います。

私の場合、Perlモジュールがインストールできない環境(ホスティングだったり、サーバ管理者がうるさくてインストールさせてくれなかったり)に設置するような場合が多いので、PurePerlで、.pm ファイルを置くだけで使えるようなものが欲しくなり、ついつい車輪の再開発をしてしまうのです。

DateTime::Simple - A date and time object.

日付をOOに扱うPerlモジュールです。相変わらず CPAN にアップする勇気はありません。英語の POD は書けません。

ちなみにこの DateTime::Simple は、

  • 日付をOOに扱いたい
  • 文字列や配列で渡される日付を上手く扱いたい('20081028' || '2008年10月28日' || ( 2008, 10, 28 ) || { year=>2008, mon=>10, day=>28 } といったように、ある程度どんな形でも良きに計らってくれる)
  • POSIX::strftime のフォーマットが使いたい
  • 不正な日付を丸く収めてしまいたい(2007年2月29日は2007年3月1日だよ、とか)
  • 日付や時間の計算をしたい

といった、自分なりの要望から書いたものです。ですので、

  • UNIX Time を基準にしてるので、2038年問題などの影響を受けます。1970年以前の日付は扱えないかもしれません。
  • 閏秒とか、知りません。
  • 日付の計算には、localtime や Time::Local::timelocal を使っています。
  • タイムゾーンも知りません。$ENV{TZ} の通りになります。

といった制約があります。これらのことが問題になる場合には、このモジュールは使えません。

全体的に、インタフェースは DateTime を真似たつもりですが、new() からして違いますね・・・。私の場合は、UNIX Time から初期化できた方が便利だと思ったので。

あまり役に立つモノでもないかもしれませんが、晒すことに意味があるかも知れないので。

#追記

http://iandeth.dyndns.org/mt/ian/archives/000620.html
http://blog.livedoor.jp/dankogai/archives/50519859.html

要するに、がんばればどんなPerlモジュールだって use lib でなんとかなるということですね・・・・。やっぱり、車輪の再開発は無駄なのかな。でも、車輪の再開発はオモシロイのですけどね。