« 2005年01月 | メイン | 2005年03月 »

2005年02月28日

エラーと認識して欲しいプログラム

Perlでモジュールというか、サブルーチンを書いていて間違えるのが、

sub hoge{
  my($self,$str)=shift;
  ....
}

もちろん、strはundefined。
スクリプトを書きながら書き足したときにやってしまう。

sub hoge($self,$str){
  ....
}

の様になっていたら間違えないような気がする。

2005年02月24日

Flashのムービーを作っているとここに書くことがない。

Flashのムービーを作っているとここに書くことがない。

最近更新回数が減っているのだが、スノボに行っていただけではなく、仕事でFlashを使う機会が非常に多いからだと思う。
Flashのアクションスクリプトでプログラムを組んでいる訳だけど、あまり、「発見」がないのよね。

ムービークリップの動きを、0.1と0.2とかいう数字でコントロールしつつ、
なんどもなんども書き出してはチェックをしてる。
んで、気づくと1日が終わる。時間がかかるかかる。

Flashムービーの作成のもう一つの問題は、MX2004に対応した、良いリファレンス本がないこと。
UIコンポーネントも少しずつ使っているのでMX2004とActionScript2.0に対応した良い本が希望。

FLASH ActionScript辞典 第2版
植木 友浩 伊藤 のりゆき 古籏 一浩
翔泳社 (2005/01/19)
売り上げランキング: 4,673
通常24時間以内に発送

これ買ったけど、いまいち。
本が小さいから手が痛い、ページが開きにくい。
2004対応とは書いてあるけど、対応が中途半端。

ヘルプに勝るものがないのがなんとも。

Acme::WWW::Cyborg

CPANにはAcmeというとても野心的なカテゴリーがあるのだが、
その中から1本。

Acme::WWW::Cyborg

use Acme::WWW::Cyborg;
print cyborg_name("kazeburo");
__OUTPUT__
K.A.Z.E.B.U.R.O.: Kinetic Artificial Zealous Exploration Being/Unit Responsible for Observation


という無駄なカッコいいものを吐き出すモジュール。これは、中身としては、
The Cyborg Name Generator:
なるサイトにLWPでアクセスするものです。

つか、The Cyborg Name Generatorのサイトがかっこいい。
governor2k3-KAZEBURO.jpg

2005年02月21日

XMLHTTPRequest

YappoLogsのところで紹介されていた、XMLHTTPRequest、非常に何かに使いたい。
XMLHTTPRequestは、JavaScriptの中から、外部のサーバへとXMLを読みにいけるもの。
safari、mozilla、ieなどが既に対応。

Yappoさんが紹介されているxml.comからのリンクのADCの説明がわかりやすいかな。
http://developer.apple.com/internet/webcontent/xmlhttpreq.html
iTunesのRSSを読むサンプルもあります。

FlashのActionScriptでも実現可能ですので、FlashとJavaScriptのどちらをインターフェイスとして選ぶか、そんなところでしょうか。

MicrosoftのSNSがかっこいい気がする

thebadtiming.comさんの記事で紹介されているMicrosoftのSNS、「Wallop」、Flashで作られててちょっとかっこいい。

スクリーンショットはここにある。
かっこいいが、快適に動くのかすこし心配。

ある意味cyworldをはじめとする韓国コミュニティサイト風味(myhpと言えば良いのかな?)な気もする。
cafestaso-netとかもそうだし、流行りなのでしょうね。

2005年02月15日

1TBブログ

Internet Watchより『「gooブログ」が容量競争に終止符!? 有料版が最大1TB、無料版も3GBに

もうね、アホかと、馬鹿かと。。

2月16日からは無料版の容量を最大3GBに、gooブログアドバンスの容量を最大1TBにそれぞれ拡張する。アップロードできるファイル形式は従来と変わらずgif/jpg/pngで、画像サイズは最大1MB以内。

これは、ライブドアもそうだけど、容量を使うなと言っているようなものだし、絶対1TBなんか使わないと予測の上ででしょう。

NTTレゾナントでは今回の容量拡張について「最大で1TBの容量を実現することでブログの容量競争に終止符を打ち、今後はユーザーの利便性を高める方向でサービスを拡充していく」としている。


言っていることは良いことだろうけど、なんかねぇ。。

2005年02月14日

絵本がかわいい。BlogPetリニューアル

リリースは先週でていたけど、BlogPetリニューアルしました。

http://www.blogpet.net/

絵本がかわいい。
kousagiehon.jpg
これが動いたらいいのに。

今日はチョコレートらしきものがひょうじされてます。
feed meterもチョコ。

ビジネスブログブック

ビジネスブログブックを購入。 早速休み中に読んだ。
ブログとはなんぞやあたりが1/3、オープンなブログについてが1/3、イントラブログが1/3。
TIIDAブログに関するチャットによるインタビューが興味深いが、個人的な興味どころから言えばイントラブログに関する事例がほしかったところ。
意味あるのかわからないQRコードがいっぱい載っているところにもツッコミいれておきます。

ビジネスブログブック
小川 浩 四家 正紀 上田 一吉
毎日コミュニケーションズ (2005/02)
売り上げランキング: 8,658
通常24時間以内に発送

こちらのエントリーで日立BOXERの小川さんにコメントをいただきましたが、Sonarはちょっとだけ使っております。現在のところさくさく動いています。
個人的にOPMLのインポート機能がほしいところ。

CacheとCache::Cacheというのがあるのね。

CacheとCache::Cacheというのがあるのね。モジュールの名前も似ているし、ややこしい。

URI::Fetchを使おうと思って、Cache::Cacheをいれて、URI::FetchのSYNOPSISのようなコードを書いて実行。

my $cache = Cache::File->new( cache_root => '/tmp/cache' );
my $res = URI::Fetch->fetch('http://example.com/atom.xml', {
     Cache => $cache
})

すると、Cache::Fileがないと言われる。
あれれと思ってよく読むと、Cache::Cacheではなくて、Cacheというモジュールに含まれるCache::Fileだと判明。
Cache::Cacheに入っているのは、Cache::FileCache

ただ、URI::Fetchのソースも見てみると、getとsetを利用しているだけ。Cache::Cacheでもかまわなそうと思い

my $cache = Cache::FileCache->new({cache_root => '/tmp/cache'});
my $res = URI::Fetch->fetch('http://example.com/atom.xml', {
     Cache => $cache
})

としてみた。
結果、普通に動いた。

CacheとCache::Cacheの違いはCacheモジュールの中に書いてある。

The Cache modules are a total redesign and reimplementation of Cache::Cache and thus not directly compatible. It would be, however, quite possible to write a wrapper module that provides an identical interface to Cache::Cache.
The semantics of use are very similar to Cache::Cache, with the following exceptions:
The get/set methods DO NOT serialize complex data types. Use freeze/thaw instead (but read the notes in Cache::Entry).


シンプルに使う分にはほぼ同じ。
複雑なデータの取り回しはすこし違うというわけですな。

ところで、URI::Fetchのキャッシュなのだが、getとsetメソッドだけ定義すれば良い訳で、
データベースを利用したりgetやsetの間にごにょごにょと何かを挟み込むことができそう。
URI::Fetchは中を見ると非常にシンプルなんだけど、非常に便利だなぁ。

2005年02月11日

xargsはすばらしい。

xargsは便利。

カレントディレクトリにファイルがいっぱいあるとき、

# grep hoge *

としても、
Argument list too long.
となってしまい、うまくいかない。
これを

# echo * |xargs grep hoge

とすれば、xargsがgrepの引数をちょうど良いところで分割して実行してくれる。
すばらしい。

はじめてOS XのClassic環境が役に立った

初めてClassic環境が役に立った。
ぱどタウンの某タウンのマップを修正して書き出し直さなければならなかったのだが、OS 9だった時に書き出せていたものが、Dual 1.8GBのG5のPantherで「スタックメモリが不足」とでて、書き出せなかった。
ちなみに、メモリーは1.5GBつんでいて、topコマンドでみても1GB以上メモリがfree。

しょうがないので、Flash MX 2004をあきらめて、Flash MXをインストール。
Flash MXのアプリケーションの「情報をみる」で、

Classic環境で起動する

のチェックボックスをOnにして、昔のように割り当てメモリを増やす。
OS Xでは必要なくなったはずなのに。。。

んでClassicの起動を待って、ClassicのFlash MXで無事書き出すことができた。
初めてClassic環境が役に立った瞬間でした。

Classic環境を役に立てない良い方法どなたか知りませんでしょうか。

2005年02月08日

Astro::SunriseのTime::Piece化

日の出と日没時間を計算するモジュールは、Astro::SunriseDateTime::Event::Sunriseの2つがあるのだが、両方とも、DateTimeを必要とする。

某仕事で使おうと思ってDateTimeをインストールしようとしていたのだが、依存関係が結構あり、面倒。
んで、改造に楽そうなAstro::SunriseからDateTimeを取り除いてみた。
以下Patch

--- AstroSunrise.pm.orig	Mon Feb  7 23:13:58 2005
+++ AstroSunrise.pm	Mon Feb  7 22:54:08 2005
@@ -1,4 +1,4 @@
-package Astro::Sunrise;
+package AstroSunrise;
 
 =head1 NAME
 
@@ -83,7 +83,9 @@
 use POSIX qw(floor);
 use Math::Trig;
 use Carp;
-use DateTime;
+#use DateTime;
+use Time::Piece;
+use Time::Seconds;
 use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $RADEG $DEGRAD );
 
 require Exporter;
@@ -614,12 +616,14 @@
    my $alt = shift || -0.833;
    my $offset = int( shift || 0 );
 
-   my $today = DateTime->today->set_time_zone( 'local' );
-   $today->add( days => $offset );
-
+   #my $today = DateTime->today->set_time_zone( 'local' );
+   #$today->add( days => $offset );
+  my $today =  Time::Piece->new;
+  $today += ONE_DAY * $offset;
+ 
    my( $sun_rise, undef ) = sunrise( $today->year, $today->mon, $today->mday,
                                      $longitude, $latitude,
-                                     ( $today->offset / 3600 ),
+                                     ( $today->tzoffset / 3600 ),
                                      #
                                      # DST is always 0 because DateTime
                                      # currently (v 0.16) adds one to the
@@ -666,12 +670,14 @@
    my $alt = shift || -0.833;
    my $offset = int( shift || 0 );
 
-   my $today = DateTime->today->set_time_zone( 'local' );
-   $today->add( days => $offset );
+   #my $today = DateTime->today->set_time_zone( 'local' );
+   #$today->add( days => $offset );
+   my $today =  Time::Piece->new;
+   $today += ONE_DAY * $offset;
 
    my( undef, $sun_set ) = sunrise( $today->year, $today->mon, $today->mday,
                                     $longitude, $latitude,
-                                    ( $today->offset / 3600 ),
+                                    ( $today->tzoffset / 3600 ),
                                     #
                                     # DST is always 0 because DateTime
                                     # currently (v 0.16) adds one to the


Astro::SunriseをAstroSunriseというモジュール名に変えてしまいます。あとはライブラリパスが通った場所において、

use AstroSunrise;

あまり確かめていないが、Googleでみつけた日の出・日の入時刻計算のページなどと比べるとすこしズレがある。
まぁ、厳密に時間を調べないといけない訳ではないのでこれでよし。

SNSについてのメモ。考察はまた今度

ARTIFACTさんの記事「あらためて寂しさ再生産?SNS流行後の人間関係?
SNSの負の部分についてリンクを交え語っています。

アンテナが反応したのでメモ。
考察はまたあとで。

三菱重工が機動戦士ガンダム...が「パ」

Slashdotのトピ「三菱重工が機動戦士ガンダムを作ったら

"三菱重工が、来年度卒業予定の学生を対象に行なう会社説明会「MHI Jobcon 2005」にて「三菱重工が、機動戦士ガンダムを作ったら」という企画を行なうらしい。


な、はずが、なぜかパトレイバーの話に。
Slashdotならでわ。

2005年02月07日

NetAddr::IP

NetAddr::IP、なにげに便利かも。
IPアドレスによるアクセス制限なんかが簡単に書けそうです。

たとえば、192.168.0.33が192.168.0.0/24にあるかどうかをチェックするようなものなら、

my $ip = NetAddr::IP->new("192.168.0.33");
if($ip->within(NetAddr::IP->new("192.168.0.0/24"))){
	print qq(ok?n);
}


と書ける。
希望を言えばもうすこしスマートに書けることかな。

livedoor Blogが容量2GBでFTP停止

livedoor Blog、容量を最大2GBへ拡張。サイトリニューアルも予定

livedoor Blogのディスク容量は無料版が30MB、有料版の「livedoor Blog」が100MBだったが、2月10日からはともに2GBへ拡張する。容量はテキストと画像の合計で、合わせてlivedoor Blog PROのFTPアクセス機能は停止する方針という。


容量アップで「FTPアクセス機能は停止」
これはまた考えましたね。

2005年02月03日

livedoor SSL開始

ほりえもんの社長日記にでていたのだが、livedoorがSSLのサーバ証明書発行サービスを始めた。

livedoor SSLは63,000円 (1年間) でSSLサーバ証明書を発行いたします。 FQDN単位での発行ですので、負荷分散等の構成でもコピーしてご利用頂けます。
※同一FQDNを持ち、同じ建物内にサーバが設置されている場合に限ります。

ということなので、利用方法によってはそれなりにお安いと計算できる範囲。

ただ、一般的イメージとして
livedoorssllogo.gif
というのはどうなのだろうと思うのは大きなお世話だろうか。。

livedoorがやっていないことを考えると次はホスティングサービスかな。

2005年02月02日

Yahoo! Blogは韓国Yahoo!の機能を借りたもの?

先日オープンした、Yahoo! ブログ
NAVER Blogにそっくりと書いたけど、正確には、Yahoo! Korea Blogの機能を借りたものらしい。
ブロ蔵EX〜ブログラEX〜さんの記事に書いてあって気づいた。

ってか。そもそも
Yahoo! Korea Blog イコール Naver Blog
だな。記事にムービーが埋め込まれていたり、音楽が流れてきたりと
そういうところまで同じだ(w

某事情でNaver Blogは嫌い。

雪になってます。

050202_0959~01.jpg

京都市内。雪です。5センチぐらいは積もっているでしょうか。
普段自転車通勤しているのですが、クロスバイクでは怖いのでバスです。
MTBなら乗ってきたかな。