たつをの ChangeLog : 2007-11-07

昨日紹介した某氏のライフハック批判[2007-11-06-1]
感銘を受けた某氏(別人)が、こんな話をしていたので、
ここに公開してみます。

■あなたの尊敬する人はダイエットを実践していない

あなたの周りにダイエットを実践している人はいますか?
私の周りには、いまだにちらほらみかけます。
ビ○ー○○ー○○○○プのような
根性ダイエットブームは一段落したようですが、
一部には根強い支持者がいるようです。

さて、そんなしぶといダイエッターを観察してみると、
ひとつの共通事項に気づきました。
ずばり、その中に体脂肪率が低いと思える人がいないんですね。
なんだかときどきダイエットしてはすぐに暴飲暴食して
リバウンドしているだけのムードが漂っています。
一方、私から見て体脂肪率が低い人たちは、
ダイエットなんてまったく気にしていないし、
細かいことにはだらしないということもめずらしくありません。

結局のところ、
体脂肪率軽減にものをいうのは集中力とか判断力とか実行力とか知識とか、
既存のダイエットプログラムではあまりカバーできないようなところが
95% 以上を占めていて、
残りの部分はほとんど誤差みたいなもんじゃないかと。

あなたの尊敬する人にダイエットを実践している人はいますか?

まあ、実際のところはどうなんでしょうね。
「根性」ダイエットと自分を律するダイエットとでは、
また全然違うんでしょうねえ。

岡田斗司夫 / いつまでもデブと思うなよ


恒例のブログディナー(五反田カレーの会)に行ってきました。

山手線が一時止まっていたので到着までに意外と時間がかかりました。
以下、twitter (モバツイ) 経由のログ:
yto 五反田に行く途中だが人身事故で山手線止まってるお
yto 本屋にでもいこっと
yto 梅田本買った。山手線全線運転再開したみたい。
yto 山手線で五反田に向かってる
yto あ。逆方向のに乗っちゃった。つぎ渋谷
yto 渋谷は反対ホームへの乗り換え面倒だからスルー
yto 五反田のみんな今頃カレーやビールなんだろな。腹減った
yto いま原宿駅のホームです。満員電車なので一本スルー
yto 今度の電車はだいぶましなので乗りました。
yto 五反田ついた

今回は久しぶりに大人数でした。座りきれないくらい。
iPhone のとき以来かな、こんなに人が来たのは。

ブログディナー2007年11月 (YouTube)


- PHP: array_multisort - Manual
  http://jp2.php.net/array_multisort
- PHPのarray_multisort関数が激便利だったので紹介 : akiyan.com
  http://www.akiyan.com/blog/archives/2007/10/phparray_multis.html

PHP の array_multisort 関数というのが紹介されています。
ある配列をソートするときに、別な配列の値を使ってソートする、というものですね。

Perl のシュウォーツ変換、シュワルツ変換 (Schwartzian Transform)
[2003-07-11-2]っぽいことを PHP で実現するために使うのに良さげ。
そういう目的で用意された関数なのかも。

それはそうと、 akiyan.com のサンプルが、なんというか本質からずれていて良くないと思います。

akiyan.com の例では、下記の配列を
$sales = array(
  2 => array(
    'title' => 'ほげほげ1',
    'amount' => 3,
  ),
  1 => array(
    'title' => 'ほげほげ2',
    'amount' => 2,
  ),
  0 => array(
    'title' => 'ほげほげ3',
    'amount' => 5,
  ),
);
amount の降順でソートするために、
別の配列を用意して array_multisort を使っています。
$amounts = array();
foreach ($sales as $v) $amounts[] = $v['amount'];
array_multisort($amounts, SORT_DESC, SORT_NUMERIC, $sales);

これって、 array_multisort を使うまでもなく、 usort で済みますよね。
無名関数 (see プログラミング PHP 第2版, p.77)
を使ってこんな感じに。
<?php
$sales = array(
  2 => array(
    'title' => 'ほげほげ1',
    'amount' => 3,
  ),
  1 => array(
    'title' => 'ほげほげ2',
    'amount' => 2,
  ),
  0 => array(
    'title' => 'ほげほげ3',
    'amount' => 5,
  ),
);
var_dump($sales);
usort($sales, create_function('$a,$b', 
  'return($b[\'amount\'] - $a[\'amount\']);'));
var_dump($sales);
?>
追記: 同様のことを考えていた人がいました。
  http://d.hatena.ne.jp/fbis/20071024

akiyan.com 例では、なんか無駄なことをしている気がして、
「array_multisort ってこういうデータに使うのか!」と
納得しちゃう人が現れると思うと夜も眠れません!(おおげさ)

分かりやすく説明するためのサンプルといえども、
Manual ページにあるような、
array_multisort を使う必然性のあるものが良いと思いました。

プログラミングPHP 第2版


たつをの ChangeLog
Powered by chalow