2013年1月 : してログ

なぬ、7インチタッチパネル Android(しかも取り外してタブレットになるし)、ワンセグ、DVDプレイヤー、GPS、Wi-Fi、Bluetooth、iPhone でハンズフリーって、おいおい、なにこのテンコモリモリガジェットは! しかも、3万とか、マストバイすぐる!

TD718AISY
http://www.xtrons.jp/Information/list-4-120.html
作動動画もあった
取り扱い店

KENWOOD のカーオーディオ I-K900 と KCA-BT300(Bluetooth アダプタ) を使っていますが、iPhone4S を iOS6 に上げてから接続できなくなっていました。Bluetooth のデバイス一覧にも表示されず、ペアリングがまったく出来ない状態なのです。

結論から言うと、カーオーディオ側が不具合を起こしていたのが原因で、電源を切ってもエンジンを切っても解消しないので、iOS のアップデートが原因だとすっかり勘違いしていたようです。解消するには、機器のリセット(工場出荷状態に戻す)が必要でした。

機器リセット(工場出荷状態に)するには、ボリュームノブ、メニューボタン、ソース切替ボタンを同時に3秒間押します。いったん電源が切れ、次に起動したときに、デモモードになれば成功です。ペアリングが可能になっているはずです。

普通に書くと、ループ構文や乱数関数で5~6行程度必要かと思いますが、substr に str_shuffle と str_repeat を組み合わせると一行で済ますことができます。なお、同じ文字が出てこないで良い場合は、str_shuffle だけで良いと思います。

同じ文字を最大3個まで許す、長さ8文字のパスワードを生成
substr(str_shuffle(str_repeat('0123456789abcdefghijklmnopqrstuvwxyz',3)), 0, 8);

文字列に大文字や記号を加えると、更に複雑なパスワードを生成することができます。str_repeat の第2引数が繰り返しを許す最大文字数になり、substr の第3引数がパスワードの長さになります。

リファレンス

ファイルパスから、各要素に分解してくれる便利関数 pathinfo ですが、マニュアルによると結果の連想配列に filename が戻るのは PHP5.2.0 以降なようです。

知っていないとデバッグも苦労しそうなので、開発環境とリリース環境が違う場合や、オープンソースなどのプロジェクトでは使用を控えたほうが良さそうです。実際、これに気づくのに30分を要してしまいました。代わりの関数を、文字列操作関数などでライブラリ化しておくと良いと思います。

コメント取得用関数 obj_description がありますが、マニュアルにはテーブル名としか書いてありません。しかし、ビューに対しても取得できるようです。

select obj_description(19921009,'pg_class');

ここで第1パラメータで与える objectOID ですが、結局 pg_catalog.pg_class より自分で調べて来なくてはならず、何のために用意されているのか分からないような関数となっております。pg_catalog より、テーブル名やビュー名から、コメントを取得するには、下記のような SQL 文を発行します。

select description
 from pg_catalog.pg_description
 where objoid=(select relfilenode from pg_catalog.pg_class where relname='テーブルまたはビューの名前')
   and classoid=(select relfilenode from pg_catalog.pg_class where relname='pg_class')
   and objsubid=0

条件の objsubid=0 は、カラムに付いたコメントの場合にその番号が入りますが、今回はテーブルまたはビュー自体に付いたコメントですので、常にゼロとなります。


ここにも星が。雲が少ない分、ずいぶんと冷え込んだ朝でした。

今日、あまり好きでない人から頼み事をされ、それも受け入れたくないものを、それで、あたふたどうしようかと考えているうちに「やっぱりいいや」ってことになり、内心は「セーフセーフ」ってほっとした自分。「そうですか、でもまた何か私にできることがあったら、遠慮なく言ってくださいね」と言いながら。

ん、どこかで聞いたことあるな、これ。心理学か何か。嫌いな人に好きになってもらうって、あれ。

今回の場合、ちょっとした(でも無いんだけど)頼み事をすることで、「何かをしてあげたんだから、それほど嫌いじゃないんだろう」とか、「今回は無理だけど次は協力してあげよう」というのを引き出して、ちょっと好きになる。

ググったら見つかりました「ベンジャミン・フランクリン効果(The Ben Franklin Effect)」

ちょっとした頼みごとで昨日の敵が今日の友に? 「ベンジャミン・フランクリン効果」とは?
http://www.lifehacker.jp/2011/10/111012hatersgonnafriends.html
これによると、他人に対する評価は自分の行動によって定まるものだとか。多くの場合、態度は行動から生じるものであり、行動は観察されるもの。そして、ヒトは自分の行動を観察するとき、その行動が道理にかなっていると思いたがります。ゆえに、信念と行動が一致しない場合は、過去の行動を振り返ったり、自分が今やっていることをよく調べて、信念を行動にあわせようとします。つまり、「何をするか」という行動が、「何を信じるか」という信念を創りあげるわけです。
なるほど、本意であれ建前であれ、行動によって評価の誘導(やらしい言い方ではあるが)がおこされるわけですね。これを狙ってできれば策士ですが。。。

12/14 某所にて
Canon PowerShot S100
HDR JPG×3→PhotomatixTpzAdjustPhotoshop
Tags #冬 #霜 #放射冷却
※この記事は「Yahoo!ブログ - HDRp」からの転載です

アイコンとテキストを並べた時、縦位置のずれが気になることがあります。画像に vertical-align:middle などと指定しても、どうしてもしっくりした位置に来ないと思いませんか? ちょっと冗長ですが、テーブルタグで囲んで、それぞれの td に vertical-align:middle を指定したときがいちばん自然な位置に来ます。が、やっぱり冗長過ぎるでしょってことで、試行錯誤してみました。

画像とテキストを並べただけ
にゃんこ
<img src="/images/icon/16x16/cat.png" />にゃんこ
画像に vertical-align:middle を指定
にゃんこ
<img style="vertical-align:middle;" src="/image/icon/16x16/cat.png" />にゃんこ
テーブルの td に vertical-align:middle を指定
にゃんこ
<table><tr>
  <td style="vertical-align:middle;"><img src="/images/icon/32x32/cat.png" /></td>
  <td style="vertical-align:middle;">にゃんこ</td>
</tr></table>
span で囲み display:inline-block、vertical-align:middle を指定
にゃんこ
<span style="display:inline-block;vertical-align:middle;"><img src="/image/icon/32x32/cat.png" /></span><span style="display:inline-block;vertical-align:middle;">にゃんこ</span>

という訳で、最後の inline-block を使用したものが最適という解を導きだしました。これを CSS で汎用的なクラスを定義しておけば、かなりスッキリとしたコードを書けると思います。

追記(2016-12-02)

アクセス解析から、久しぶりに見直していたら、どれも横に並んでいないことに気づきました。HTML5 / CSS3 にしたからなのか何なのか分かりませんが、これはマズイということで、改めて試行錯誤してみました。まだ、改良の余地があるかもしれません(画像の縦サイズをテキストの line-height に入れないといけないのが気に入らない)。

今のところの最適版
にゃんこ
<img style="vertical-align:top;" src="/images/icon/32x32/cat.png" /><span style="display:inline-block;line-height:32px;">にゃんこ</span>

いくつかありますが、1ファイルでこれ(lastRSS)がいちばん簡単でした。ただし、警告が出る場合(存在しない配列要素を参照する場合)があるので、気になる場合はコードを修正した方が良いでしょう。

Last RSS Simple yet powerful PHP RSS parser
http://lastrss.oslab.net/
サンプルコード
include_once('lastRSS.php');

$rss = new lastRSS;

$rss->cache_dir = './cache';
$rss->cache_time = 3600; // キャッシュの有効時間(単位:秒)

if ($rs = $rss->get('http://landhere.info/feed.php?type=blog')) {
    print_r($rs);
} else {
    die("RSSの取得に失敗しました");
}