« December 2005 | メイン | February 2006 »

January 31, 2006

perlで多重ソート(sort関数)

SQLでは、多重ソートしたい場合、

order by date ,key

こんな感じてできると思いますが、テキストファイルの処理(たとえばCSVファイルの処理とか)の場合はSQLがつかえないので(DBI関連のモジュールでCSVをSQLで問い合わせることができるのがあった気がしますが)、sort関数をつかいます。

で、多重ソートをしたい場合は、こんな感じにすると期待した結果になります。

@args = sort {$b->{date} cmp $a->{date}
                    or $b->{key} <=> $a->{key} } @args;

January 30, 2006

DBの値をランダムにソートする

とある案件で「ランダムにDBの値を表示させたい」との要望があったので、そんな機能ってMySQLにはあるのか調べてみたら発見しました。

あるんですねランダムソート機能!こんな感じです。
Select * from t_table order by rand();

ちなみにPostgresにもあるらしく、

Select * from t_table order by random();
これで、ランダムにソートしてくれるらしい。

January 27, 2006

幸福の木?

我が家の幸福の木が枯れかけています。大変です。
僕の幸福が枯れてしまいます。
060127_0905~0001.jpg

寒いせいだと思いたいのですが、日を追うごとに緑の部分が少なくなっていきます。
原因と回復方法は、Googleにて調査中。

January 25, 2006

地球温暖化の恐怖

2005年は史上最高に暑かったらしいです。

子供のころ学校の先生が、「地球温暖化が進むと日本の国土のほとんどが水没するんだよ」なんて言われた経験があるかと思いますが、子供ながらに「そんなの僕が生きている間は関係ないでしょ」と思ってました。

しかし!このNasaのレポートを読むと先生が言っていたことが現実実を帯びてきている気がします。

この冬は大雪なので、「ぜんぜん温暖化してないじゃん」なんて思うかもしれませんが、世界的には温暖化現象が進んでいるようです。
恐ろしい。。。渋谷なんて真っ先に水没するんだろうな~。

January 24, 2006

GoogleMapsAPIから経度と緯度を取得する

demo

GoogleMapsAPIのドキュメントを読んでいたら、地図をドラッグ、または動かし終わった後の中心の経度と緯度を返すMethodがあるとこが判明しました。

前々からあったら結構面白いことができそうだなぁと思っていたので、ちょっとうれしい発見です。(というかドキュメントをちゃんと読めば最初からわかったんですが。。。)

メソッド名は、「getCenterLatLng」という名前で使い方はこんな感じ、
GEvent.addListener(map, "moveend", function() {
    var center = map.getCenterLatLng();
    var latLngStr = 'lat:' + center.y + ' lng:' + center.x;
    document.getElementById("gps").innerHTML = latLngStr;
});

これで<div id="gps"></div>内に移動先の経度と緯度が表示されます。

January 23, 2006

週末の大雪

週末の大雪すごかったですね。今日になってもまだ解けてないし。
ベランダからの風景が雪国のようです。

060122_1016~0001.jpg

しばらく自転車通勤は無理そうです。

January 18, 2006

さすがアマゾン

さすがです。こんな商品カテゴリーが存在するなんて。
大企業なのにこんなニッチなカテゴリーがあるなんて。。。
それとも、ぼくが知らないだけで結構需要があるんでしょうか?

2005年鼻毛カッタートップ10

恐るべしアマゾン。。。

January 15, 2006

島とうがらし

最近のお気に入りの調味料です。ゴーヤチャンプルにふりかけるとマジでうまいです。

060115_2057~0001.jpg

しかもコレ買ったのではなく、近所の琉球食堂という沖縄料理の店でタダでもらいました。泡盛とお酢を注ぎ足して使えるそうです。
皆さんも是非作ってみてください。

January 13, 2006

フィルムカメラの終焉?

ニコンのプレスリリースによると、フィルムカメラの事業から撤退するらしいです。(一部の機種は製造を継続するらしいですが)
これでキャノンも撤退したら完全に、フィルムカメラの時代が終わりでしょうね。
フィルムカメラもレコードのように一部のマニアな人しか使わなくなるんですかね?

ここ数年、本当に変化が激しいですよね。TVもブラウン管から液晶とかプラズマになるし、ポータブル音楽プレイヤーもMDからiPodとかのMP3プレーヤーになっちゃうし、DJも外タレはレコードではなくCD使うし、ここ最近はabletonLiveとかでやるからPowerBookだけでやってるし。

インターネット業界だけではなく、世の中のいろんなことが最近すごいスピードで進化してます。ついていけてる人っているんですかね?

January 11, 2006

Lightbox JS

最近利用し始めたdigg.comのtop storiesを見ていたらカッコいいJavaScriptが紹介されていたので、早速導入してみました。

Lightbox JS
「JavaScript + CSS = Nice Picture Display」って紹介されてました。

サンプル:
ninnaji

クリックすると拡大画像が表示されます。読み込んでいる最中は、gifアニメーションのプログレスバーが表示されます。
なかなかいい感じです。

January 06, 2006

デザインをモジュール化

これまで全く使ってなかったのですが、便利そうなので使ってみました。

試しに、Topページのヘッダーと右側のサイドバーをテンプレートモジュール化。
top_page.jpg

それぞれ、ヘッダーを「header」というモジュールに、サイドバーを「sidebar」というモジュールにして、index.htmlのテンプレート上のヘッダーの表示箇所に、
<$MTInclude module="header"$>
サイドバーの箇所に、
<$MTInclude module="sidebar"$>
とソースを追加して再構築。

追加したソースの部分にモジュール化したHTMLが出力されます。
部品化することにより、デザインの修正も楽になるし、テンプレートのソースも簡素化できるのでかなり便利です。

January 04, 2006

Prototype.js

このページを参考にPrototype.jsをTopページに導入してみました。
画面横のカテゴリー一覧をテキストからgif画像に変えて、onmouseイベントで画像が大きくなったり小さくなったりします。
まだ、あまり時間がなくてPrototype.js自体の解析をしていないので、ちょっと調べていろいろ試してみる予定です。

January 02, 2006

Happy New Year?

明けましておめでとうございます。

前の記事でも書きましたが、年越しを会社でしてしましました。そして、この記事も会社で書いています。

年初めから出社なんて最悪です。ただ、原宿の古着屋さんや某セレクトショップなんかは、営業を開始してました。ご苦労様です。

今年は、トラブルの少ない年にしたいものです。そして、年末はゆっくり過ごしたいものです。
(だいぶ先の話だけど。。。)