2007年8月アーカイブ

生年月日から年齢を計算する簡単な計算式」という記事。感心しました。なるほどね。

PHP、Perl、Java と 3 つの言語で紹介しておきながら、結局書かれているのは標準出力と型キャストだけというのも、なんともさみしいので、きちんと「計算」部分を書いてみた。

ということで、まずは perl:

#!/usr/bin/perl
use strict;

my $byear = 1977;
my $bmon  = 11;
my $bday  = 3;
my ($year,$mon, $day) = (localtime(time))[5,4,3];

my $now   = sprintf( "%04d%02d%02d", $year+1900, $mon+1, $day );
my $birth = sprintf( "%04d%02d%02d", $byear, $bmon, $bday );

print int( ($now - $birth) / 10000 );

続いて php:

<?php
$byear = 1977;
$bmon  = 11;
$bday  = 3;
$now = date('Ymd');
$birth = sprintf( '%s%02d%02d', $byear, $bmon, $bday );

echo (int)( ($now - $birth) / 10000 );
echo "\n";
?>

件のページは「サーバ管理者日記」らしいので、最後にシェルスクリプト:

#!/bin/sh

byear=1977
bmon=11
bday=3
now=`date '+%Y%m%d'`

if [ ${bmon} -lt 10 ]; then
   bmon='0'${bmon}
fi
if [ ${bday} -lt 10 ]; then
   bday='0'${bday}
fi

echo `expr \( ${now} - ${byear}${bmon}${bday} \) / 10000`

ここまで書かれたら正直うっとおしいですね。しかも、書いた本人も思ったほど面白くなかった。

メールを送ると twitter に更新するスクリプトを作ってみた。キモの部分はこれだけ。方々のドキュメントを見たりしてちょっと時間が掛かった。

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->credentials( 'twitter.com:80',
                  'Twitter API',
                  'UserName',
                  'PassWord' );
$ua->post( 'http://twitter.com/statuses/update.json',
           [ status => 'utf-8 encoded Status' ] );

この前には ISO-2022-JP から UTF-8 に変換したり、改行を空白に変換したりする処理があったり、この後にはファイルにログを落とす処理があったりします。また後ほど晒してみましょうか。

Basic 認証は credenatial というのを使えばできるようです。

NIKEの「ワンフット」。1 メートル超短距離走ということだが、はたして 1 メートル走も 100 メートル走と同じクラウチングスタートが一番速いのだろうか。

実際の短距離走でのフライングの判定は、ブロックごとに取り付けられているセンサがピストルの音と選手の足が押さえる圧力を計測し、音が鳴ってから身体が反応するまでの時間が 100 ミリ秒以下だと勘でスタートしたものとみなされフライングになるそう(参考)だ。この「ワンフット」はそのシステムを採用しているのだろうか。採用していないとするならば両脚キックで一か八かを極め人間大砲のごとく飛び出す方が速いような気がする。

ただ、ギズモードの写真の人のスタートは、普通のクラウチングスタートとしては両手とも後ろに下がっちゃっててあまり良くない。おそらく両手で地面を蹴って使ってスタートしてしまったのではないかと推測する。

全然話は変わるが、スタート時の反応の遅れを正式記録から引き算すると世界記録を出した 1 位の記録よりも 2 位の方が速いということもあったようだ。 すごいな。

GIZMODO で「トイカメラ風にデジカメ画像を変換するPhotoshop用プラグイン」というエントリを見つけた。これはまさに私が GIMP で先日やったことと同じ効果を生み出す photoshop のプラグイン。

さっそく Windows 版 GIMP で photoshop プラグインを利用する方法 を参考にして、GIMP で動作させようとしたが、うまくプラグインが認識されなかった。残念。

岩淵水門まで

| | トラックバック(0) http://tsuyuguchi.com/masaaki/mt/archives/2007/08/19-1009.php のはてなブックマーク件数

ラジオ体操を見てから荒川河川敷を岩渕水門まで往復で 40km 弱を 110分ぐらいかけてサイクリング(走ったルート)。復路の後半になると日も上がってきて暑くなってきたが、それ以外は本当に涼しくて走りやすかった。河川敷はどうしても往復のどちらかが向かい風になりがちなもんだけど、今日は風邪もそんなにきつくなかった。

今日は一輪車を練習する小学生をよく見かけた。夏休みの課題なんだろうか。自分が小学生の時は一輪車のブームがまだきてなかったのでうまく乗れないのだけど、本当うまい具合に乗っているのに驚いた。でも、ヘルメットはかぶった方が良いと思う。夏休みの課題といえばプールと一輪車なのかな。

週に一回の運動ではその効果が数値の変化としては現れにくい。せいぜい現状をキープする程度のモノだが、それも簡単なことではないはず。気負わず続けていきたいと思う。

弾さんの「JavaScriptでありがちな9つのシマッタ」を読んで。

「1. 尻カンマ注意」は良くやってしまいます。そんなある時に

var theObj = {
   dummy: null
}

というテンプレを作っておいて、その上にガシガシコードを書いていけば尻カンマにはまることもないんじゃないか、と思いつきました。いまもそうしてますが、結局のところ長い関数を書き終わった後にセミコロンで締めちゃったりして、orz となってしまうこともしばしばだったりします。

次の「2. 浮気なthisは何を見てるやら」も良くやってしまいますが、もう今日日、代入でイベントハンドラを設定するコードは自分では書かないのが主流ではないでしょうか。YUI のYAHOO.util.Event.addListener だと、リスナー関数の this に任意のオブジェクトを束縛できるので便利ですし、prototype .js 1.6.0 は Release Candidate が発表されてるみたいですが、Event.observe は自動的にイベントのターゲットエレメントがリスナー関数ないの this に束縛されるようになるみたいです。 といううことでイベントハンドラの登録はライブラリを使いましょう。そうすれば this の浮気性も少しはマシになるのかも。

個人的にハマった経験があるのはこの 2 つ。

先日フラクタルのエントリを書いたときに紹介したブログは Google に勤めるエンジニア MarkCC という方のブログなのだけれど、そのエントリに グラフ理論のカテゴリがある。

コンピュータサイエンスを専攻した人なら必ず勉強するであろうグラフ理論を、「PageRank を考案した Google」 のエンジニアから勉強できるというのは、ある意味で○○から△△を教えてもらうようなモノである。

良いたとえが思い浮かばないので、今日はこの辺で。

でもマジで面白いよ。

Yahoo! Pipes にまたまた新機能が搭載されたようです。その中のひとつ WebService モジュールについてちょっと調べてみました(リンク先を読んだだけとも言う)。

Web Service

捉えようによっては「禁じ手の」とも「大望の」ともいえるモジュールで、 pipes の途中の処理結果を外部の任意の WebService へ渡し、その WebService の出力をまた pipes が受け取るというモジュールです。その WebService は POST で JSON を受け取り、RSS か JSON を返す必要がありますが、要は自分で好きなような CGI を作成すればいかようにもデータを変換できるということです。また、 utf-8 であれば日本語を返す WebService も扱えることを確認しました。

pipes の公式ブログのタイトルに「Power Your Own Module」とあるように WebService モジュールで利用する WebService は pipes のモジュールで実現できない or 実現がややこしい 処理を利用者が実装したものであるということを想定しているようです。まぁ既存の WebService を使おうにも、そもそも JSON を受け取る WebService ってあまりないですからね。

その他のモジュールついては、Yahoo! Shortcuts というモジュールが加わっていたり、Content Analysys が Term Extractor に取って代わったりしていますが、これらは日本語を扱う場面ではメリットの少ないアップデートだと思われます。

Pizza made at home

家でピザを焼いてみました。用意した材料は、薄力粉、強力粉、水、オリーブ油、イースト、モッツァレラチーズ、ベーコン、アンチョビペースト、トマト、タマネギ、塩、コショウ。トマトソースも生地もいちから作ってみました。生地のレシピはこのページを参考にしました。

写真を見てもらえば分かると思います(?)が、めちゃくちゃおいしかったです。自家製ピザは何回か作ってきましたが、自家製のピザは本当に美味しい。もう出前のピザと同じ「ピザ」という名前でしか呼べないのがなんとも申し訳ないです。

ピザ見た目ほど手間は掛かりません。簡単。生地の発酵が必要なため時間は掛かりますが、そんなに手間は掛かりません。オーブンも今日日は電子レンジに付いてますしね。

ただ焼くだけなので美味しく作るコツといってもそんなにないですが、焼いた生地はパリパリに仕上がるのでできるだけ薄くするのがコツ。材料に関して言えば、チーズはとろけるチーズでもいいし、トマトソースも出来合いのモノでもいいけど、バジルだけは乾燥バジルではなくて生のバジル。乾燥バジルと生のバジルは不思議なぐらい香りが違うし、見た目にも欠かせないので、生のバジル。これは譲れません。

実はピザを焼くのは初めてではなくて、昔ベランダでプランターでバジルを育てていた時に作ったことがあるのですが、かれこれ4年ぶりぐらい。ピザは家で焼くに限ります。出前ピザとは全く別の食べ物です。

少し前に、面積を持つように見えるフラクタル図形も実は面積を持たないから 1 次元って事が「 Good Math, Bad Math 」で紹介されている事を書きましたが、同じブログで別の観点からフラクタルの次元を表す方法についての説明がありました。

それはハウスドルフ次元というもので、元のサイズの n 倍のフラクタル図形を作るのに元のサイズの図形が m 個必要という観点に注目しています。このときの log{m}(n) をハウスドルフ次元というらしいです(m は対数の底)。言葉ではよくわからないけどリンク先の図をみるとよく分かります。

まぁだからなんだってことなんですが、例えば正方形だと「元のサイズの 4 倍」にするのに元のサイズの図形が「16 個」必要だから log{4}(16) = 2 ということで正方形のハウスドルフ次元は 2 という風に計算するみたいです。だからなんなんだ…。

あと全然話が変わりますが、最新の 「Bad Math Education: Math does not need God」というのも興味深いです。こちらは単なる数学に関するコラムですので、難しい計算の話はありません。内容は数学は神が作ったものではなくて人の精神が作り上げたものという至極もっともな主張ですが、必ずしもそうではない数学教育の現場に対する危機感と筆者の強い主張を感じます。

なんだか、ディアスポラの真理鉱山(とその結末)を思い出しました。

<< 1 2

最近の画像

Zero History - ギブスンの新作が 9 月に発売 -
虐殺器官
ドミニオンのランダマイザアプリ、dominion minion が日本語対応!
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオン - 長大な叙事詩 SF のスタート -
ハイペリオン - 長大な叙事詩 SF のスタート -
「都市と星」 - 10億年と言われてもよく分からない -
「星を継ぐもの」 - 良い Sci-Fi -
トールサイズのニューロマンサーを買った
虎よ、虎よ! - 主人公フォイルの執念の物語 -

私の本棚

 

自転車走行距離

自転車走行距離

Flickr Photos

FlickrPhotos

なかのひと

Y!ログール

このサイトについて

2011年10月

            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          

アーカイブ

My Update

  • Loading...

その他

あわせて読みたいブログパーツ