« 2011年12月 | トップページ | 2012年2月 »

2012年1月の28件の記事

2012.01.31

Google Maps Geocoding API V3 で動的ジオコーディングの制限と変換に失敗する住所の傾向と対策

Google Maps API V3 を使って600件くらいのジオコーディングを行う必要があったのだけど、一気にやると最初の数件以外ほとんど失敗。やばそうな雰囲気を感じたので、あわてて200msの待ちを入れてみたら、1件成功して4件失敗を繰り返す。どうやら秒間一回しか許可されていないような雰囲気。でもこの制限、日本語ドキュメントでは明記されていないように思う。ま、常識的に「あってしかるべき制限」だとは思うけど。

で、本題のジオコーディングに失敗するケースについて。

600件あまりを10分かけてジオコーディングしましたら、緯度経度が見つからず失敗した住所が30件くらいありました。実際に間違っていた住所もありましたが、それ以外では以下のどれかに該当しておりました。要するに住所の書き方なので、試行錯誤しながら最終的には全て変換できました。めでたい。ま、ちゃんと検証したわけではないので、あくまでも傾向として書いておきます。

  1. 番地の後に続けてマンション名などを記述している。スペースを入れたらたいてい成功
  2. 番地以降の建物の名前が、英文字で始まっている。「メゾン一刻」じゃなくて「MAISON一刻」だと失敗するとか。基本的に建物の名前は検索に使われていないような気がしますのでばっさり削除しておけばOK
  3. 細かい番地まで指定しすぎている。郊外の住所に多かったような気がします。○丁目○番地○号みたいな感じで、○号の部分をなくすと成功したり。
  4. マンション・アパート名などが全てカタカナで最後に部屋番号がくっついている。ちょっとあいまいですけど、そんな気がしました。信憑性低いです。

2012.01.30

一日限り?の弁当男子42歳のありがとう

生まれて初めてお弁当を作ってみた。興味本位の軽い気持ちで手を出したが、周囲の状況とかイロイロひっくるめての感想は、

弁当は戦い、、、やな。

ただでさえあわただしい朝の時間帯。あっちでは洗濯機が「スマン!もう回されへんわ」とピーピーいうてて、こっちでは寝ぼけ眼で「腹減ったー」とまたまたピーピーいうてる小学生。勘弁してくれ。

中途半端な人間タイムシェアリングシステムのエンジンを奥歯ガータガタ言わしながら無理やり回して、あっちを片づけこっちを投げ捨て、、、朝から切った貼ったの弁当作って腹減って、本末転倒ウンジャラゲ(←ここ意味ないです)

いやしかし、今回作ったのは自分がお昼に食うものであるから、モチベーションの維持はまだ容易なほうだ。これを、家族とはいえ自分以外の者のために、毎日のように、半ば自動的にやっているというその精神力と処理能力に感服した。「どこのスパコン頭に仕込んでんねん」というレベルの驚きとともに深く感謝っ!カーチャンありがと

ただ会社帰りの電車の中で「明日のお弁当はなんにするかなー♪」と考えるのはナカナカ楽しいものであるな。クセになりそうな予感もチラホラ

弁当は男気満載!感謝っ!

2012.01.29

10キロランでちょうどええ

土曜日はおうちの用事で運動できずだったので、今日は久しぶりにレーパン履いて自転車で25キロほど走った(1000円散髪へ行ったw)後、12キロのランニング♪

ホントは15キロの予定だったが、走りはじめてすぐに「あ、今日はアカンわ」と。元気なんだけどスピードが上げられない。とかいいながら、軽い追い風に乗って、調子こいて7.5キロで折り返す。

そう、布袋モデルの堤防の辺り

そして、10km過ぎたら「毎度いらっしゃいませ」なハンガーノックの予感で予兆がオヨヨのヨ(意味無し)

「止まったら死ぬ~」と脳内ループ再生しながら何とかコーラにありつき、どうにか回復。再び走り始めたはいいけれど、12キロ到達時点で空から雪がちらついてきて心が折れた。

「もうこのへんでええやん」という感じ。

いやホント、10キロ超えて、いちいちハンガーノックになっているわけですから、「別に無理して10キロ以上走らんでもええんちゃう?」と、そんな心境。あーしんど。

思わずつられるこのタイトルw

2012.01.27

fetchAllとexecute

DoctrineでSELECT文を実行するのに、無意識にexecuteしてしまっていて、2回目のforeachが回ってくれないという現象にやられました。

$sql="SELECT foo,bar FROM hogeHoge ...";
$con = Doctrine_Manager::connection();
$this->record_list = $con->execute($sql);
                            //↑ここ
foreach($this->record_list as $record) {
    //一回目のループはOK
}
foreach($this->record_list as $record) {
    //二回目はループしない
}

一回のループで済ませるか、fetchAllに変えればOKですね。

実際には一回目のループはオートロードのクラス側で、二回目のループはsymfonyのテンプレート側に書いていました。

それに、「なんで配列がforeachで回らないのか?」という暗澹たる思いにとらわれていましたけど、あとでfetchAllexecuteの戻り値の型を調べてみますと、fetchAllの戻り値は配列ですが、executeの戻り値はPDOStatementというクラスオブジェクトでした。PHPってクラスオブジェクトもforeachにかけられるのですね。

いろんな条件が重なって気づくのが遅れたともいえるなー。

ドクトリンの日本語の本てほとんど無いですねー。
↓これくらいかw

2012.01.26

デイ・アフター・トゥモロー

先日は、首都圏で4cmの積雪とか。今週は日に日に寒くなってる感じがしますねーってことで、ふと思い出したのが、映画「デイ・アフター・トゥモロー」

なんとなく年に1回くらい見て、ちょっと異常気象や主人公たちの行動が現実的じゃないなーなんて思いながらも、そのうちガッチリ引き込まれて最後に泣いちゃうパターン(笑)

最初は学園物的なニオイもします(しない?)が、全体的にはSFパニック物。「強い父親」とか「家族」というのがメインテーマかな。温暖化や異常気象に対して警鐘を鳴らしているとかそういうのはなさげ。

ブルーレイが安いけど、そういうもんなのかな。

photo credit: gigi 62 via photopin cc

2012.01.25

ブログでウィンドウのリサイズイベント利用する

ブラウザのサイズが変更されたときにテーブルの幅を広げて表示する必要が生じまして、単純にwindow.onresize=function(){ ... }とやってもよかったのですが、「既にwindow.resizeが設定されてたらどーしよー」的な心配をしてみた(心配性w)。せっかくなので、それこそ需要がないかもですけど、複数のハンドラーを登録できるようにしてみました。これってブログで使いやすいかも。ウィンドウのサイズ変更を利用する複数の記事が同時に表示されても、全部正しく動作しますから。ま、それほど需要は高くないだろうけど(笑)

jQueryの$(function(){})や、dojoのdojo.addOnLoad(function(){})と考え方は同じですが、ソフトウェア割り込み(死語?)のフックみたいで懐かしいねw。

/**
 * ウィンドウリサイズイベントハンドラーを登録
 * @param ウィンドウリサイズ時に呼び出して
 *            欲しい関数
 */
function addOnResize(f) {
    addOnResize.handlers.push(f);
}

//イベントハンドラーの配列
addOnResize.handlers = [];

//既に設定されていれば登録する
if(window.onresize != undefined) {
    addOnResize(window.onresize);
}

//イベントハンドラを設定
//配列に保存されている関数を順番に呼び出す
//(jQuery.each使っていますがforでも問題あり
//ません)
window.onresize = function() {
    jQuery.each(
        addOnResize.handlers,
        function(i,f) {
            try{
                //ハンドラ中でthisはwindow
                f.call(window);
            } catch(e) {
                alert(e + ' in ' + f);
            }
        }
    );
}

呼び出しはこちら。ウィンドウ内部のサイズ取得のサンプルもかねて。

addOnResize(function() {

  //内部の幅と高さを取得(ピクセル単位)
  var innerWidth = window.innerWidth ||
      document.documentElement.clientWidth;
  var innerHeight = window.innerHeight ||
      document.documentElement.clientHeight;

   /*あんなことやこんなこと*/

});

IEではウィンドウ内部のサイズはdocument.documentElementclientWidthclientHeightから取り出すんですね。画面サイズに従ってレイアウトを変更する処理を書いていたんだけど、高さを得るのにdocument.body.clientHeightを使っていて、ドキュメントのサイズが無限拡張してびびった(笑)

リサイズイベントも山ほどやってきますので、doLater 使えばよいかもかも。

2012.01.24

ドラッグ中の画面更新カクカク防止

WEBアプリで、要素をドラッグしているときや、DIVを連動させてスクロールしている最中に、画面更新が必要になったりします。たとえば、プレースホルダーの描画や、動的な並べ替え、またはビューポートのサムネイル表示などですね。

ところがこれらのイベントは短い時間に大量に発生しますから、イベント発生の度に画面更新をやっていると、軽い処理なら気になりませんが、少々重たく複雑なことになると、操作がカクカクして(こっちはイライラw)良かれと思ってやってる処理が逆に使いづらくなったりしますよね。

そこでコレを回避するためのコードを書きました。簡単なコードですけど効果絶大でしたのでご紹介。ま、みんなやってるのかもしれませんけどw

/**
 * 後でやる。一回だけやる。
 * やる前に何回言われても一回だけ。
 * 
 * @param job 後で実行する処理
 * @param tmo 実行待ち時間
 */
function doLater(job, tmo) {

    //処理が登録されているなら
    //タイマーをキャンセル
    var tid = doLater.TID[job];
    if(tid != undefined) {
        window.clearTimeout(tid);
    }
    //タイムアウト登録する
    doLater.TID[job] = window.setTimeout(
        function() {
            //実行前にタイマーIDをクリア
            doLater.TID[job] = undefined;
            //登録処理を実行
            job.call();
        }, tmo);
}

//処理からタイマーIDへのハッシュ
doLater.TID = {};

使い方の例はこちら↓

function dataTable_onScroll() {
    doLater( function () {
        updateScreen();//画面更新処理
    }, 300);//処理内容によって調整
}

指定時間後に処理が実行されるようにタイマー登録し、実行待ち状態で再び同じ処理を登録しようとすると、先に登録したタイマーをキャンセルし、新たに登録します。つまり実際に実行されるのは、最後に登録されてから指定時間経過後となります。

要するにwindow.setTimeoutを利用した遅延実行処理なんですが、タイマーIDを処理(無名関数)をキーとしたハッシュに保存しておくところがミソといえばミソかな。

でも、クロージャは使わないようにしましょう。参照しているクロージャの値が違っていても、登録されている関数オブジェクトは同じものと判定されますので、やるべき処理がキャンセルされてしまう可能性があります。同じ理由から、実行時の状況に依存しない処理であるべきと言い換えられるかもしれません。

以下の例だと、マウスの動きによって更新する場所を探してそこだけを更新するように読めますが、マウスの動きによっては更新されない場所が出てきそうです。

↓ダメな例です。

function dataTable_onScroll() {
    //更新すべき列のIDを取得
    var column_id = getMouseOverColumnId();
    doLater( function () {
        //クロージャ使うと
        //処理が抜けるかもしれません。
        updateScreen(column_id);//列を更新
    }, 300);//処理内容によって調整
}

これを回避するには、登録するためのキーを指定できるようにしておいて、省略時には関数オブジェクトをキーとして使用するようにすれば良いと思いますが、そこまで複雑な需要は無いかもですね。

他の拡張案としては、時間指定をしなければ、関数オブジェクトの分量から適当な遅延時間を算出するとか、そういうのもありかな。

2012.01.23

ココログでjQuery

ココログでjQueryを使いたいと思って、ちょこっとやってみたけど、あえなく失敗。selectorで要素をとってこれなかった。ごはん三杯分くらい悩んで困りながら調べていると、意外に単純な原因が判明。

prototype.jsがロードされてる。

つまり $ がコンフリクトしているわけね。てことで、jQuery.noConflictの出番です。

<!-- jQuery -->
<script type="text/javascript"
src="/js/jquery-1.6.2.min.js"></script>

<script type="text/javascript">
jQuery.noConflict();//これ重要
jQuery(document).ready(function($){
    //
    // あんなことやこんなこと
    //
});
</script>

外部スクリプトの取り込みは、サブタイトル部分(ココログ管理ページの設定タブに表示されてます)でやってます。しかし、これだと、jQueryがprototype.jsよりも先に取り込まれているみたいですねー。jQueryはprototype.jsよりも後に取り込む必要があるらしいのですが、今のところ問題は出ていないようなのでとりあえずこのまま。メモリストでやるのがよいのかもしれん。

で、jQueryで何がしたいかって言うと、貼り付けてる写真の幅を自動的に調整したいという、 ただそれだけの事なんですけどね。

いやしかし、jQueryは便利

2012.01.22

ROCK'n'RUN

昼過ぎにランニング。先週から1キロ伸ばして14キロ。

壁画の横でちょっと休憩。久しぶりの青空でしたな♪

ずいぶんラクに走れるようになってうれしい限り。ヒザ、足首、かかとなどに「もうだめ~」感が出てこない。途中で意識的にペースを上げてみたけど、イメージ通りの苦しさで、楽しい(笑)

走り終えても、まだ(2キロくらいなら)いけそうな気がする。でも、ここで色気を出してスピードを追求などはしないでおきたい。距離は徐々に伸ばしたいけど。

最近スマホのradikoでFM COCOLOを聴きながら走っている。今日は、「I SAW HER STANDING THERE」や「LONG TALL SALLY」などが流れていてかなり興奮した。

何も聴いていない時、頭の中では、グレンミラー楽団の「IN THE MOOD」を鳴らしていたので(変?)、からっと明るいビッグバンドジャズが良く合うという持論があったのですけど、いわゆる50's的なROCK&ROLLも良く合いますな。テンポだろうか?好きな曲なら何でもありか。結局それか(笑)

2012.01.21

「プログラマー向けIME自動確定制御」とか

コーディングしていて少し前に思ったことなんだけど、エディタでプログラム書いているときの、日本語IMEのオン/オフ切り替えなんて、ほとんど自動化できるんちゃうか?ってこと。

どんなプログラミング言語でも、入力ポインタのある位置が「なにが入力されるべきか」ってのははっきりとわかる気がするんですよね。「少なくともここには日本語は入らないぞ」とか。

コメント内でも文字列リテラル内でもないところに入力ポインタがあって、IMEオンでも、[i][f][(](アイ、エフ、まる括弧)と叩いたら(画面上では未確定で「いf(」だけど)、そんなもん、「if(」で確定してIMEオフにしてくれたらええんちゃうの?と。ぴゅう太じゃあるまいし。

完全なブラインドタッチが出来ないので、顔上げて「sたちcプbィcふんcちおん」とかエディタに出てると、とても悲しい。間違わなんだらええといわれればそれまでだけど。。。

こういう制御が出来たら、なかなか効率が上がると思うんですが、誰か作って。eclipseのプラグインとか。

入力ミスしてるひとがアジャイルもなにもないですね(笑)

photo credit: Ѕolo via photopin cc

2012.01.20

[symfony] javascriptの読み込み位置(use_javascript と include_javascripts)

Symfonyのテンプレートで外部javascriptを読み込むときは、 use_javascript という組み込みのヘルパーを使えって?それはえらいすんません。でもね、scriptタグで読み込んでる時はちゃんと動いていたんだけれど、use_javascript 使ったら、動かなくなったってーこれはどういうこっちゃろうか?

具体的には、併用しているはずのjQueryがありませんよというエラーが発生。

どうやら取り込み位置がおかしいようだ。HEADを覗くとjQueryより前に依存しているスクリプトが取り込まれている。確かにこれでは動かないが、どうしてこうなるのか?

use_javascriptで検索してみると、Symfonyのチュートリアルの4日目がヒット。読んでみたら、use_javascript とは別に、include_javascripts というヘルパーがあって、なぜかはっきりと書かれていないけど、use_javascript ヘルパーでスクリプトを読み込む位置を指定するみたい。多分これやなと。

ていうか、組み込みのヘルパーのリファレンスって、なんで検索で出てこない?存在しないのかな。チュートリアルを悠々とやっている時間は無いのだと何度言ったら(Ry

ということで、templates/layout.phpを盛大に開いてみると、jQueryはscriptタグでベタに取り込んであって、案の定それよりも前に include_javascripts が置かれていた。

<head>
<?php include_javascripts() ?>
<script
    src="/jquery-ui/js/jquery-1.3.2.min.js"
    type="text/javascript"></script>
</head>

チュートリアルには「パフォーマンスの問題からbodyの閉じタグの直前に include_javascripts を置いておくとよい」と書いてあるけど、関わっているのが途中参加のそれなりに大きい業務システムで、他に影響が出ると責任持てないから、headの閉じタグ直前へ移動。

<head>
<script
    src="/jquery-ui/js/jquery-1.3.2.min.js"
    type="text/javascript"></script>
<?php include_javascripts() ?>
</head>

結果、use_javascript でも正常動作するようになりました。でも本来は以下のようにするべきなんだろうな。

<head>
<?php include_javascripts() ?>
<?php use_javascript('/jquery-ui/js/jquery-1.3.2.min.js')" ?>
</head>

↑こうしておけば問題なかったはずだけど、前任者さんはそんなヘルパーは知らなかったんだろう。他でも use_javascript は一つも使われていなかった。

同じ懸念はCSSでもある(use_stylesheet と include_stylesheets)のだけど、適用されるスタイルの優先順位が逆になるだけですし、妙に見た目がおかしくなっても困るから、とりあえず放置。

2012.01.19

IE9がJSON最後のカンマを認めたようだ

JSON記法の最後の要素のあとにカンマを置いていても、IE9ではエラーにならなくなったみたい。

var arr = [
    1,2,3,4,5, //<==これとか、
];
var obj = {
    A:'a',
    B:'b',    //<==これはIE8まではエラー
};

本日たまたま見つけて軽く驚いた。IEがやっとまともになってくれたよー。

今まで、サーバーサイドから軽くJSONで配列を出力するときは、最後にダミーのundefinedを入れて、クライアント側でevalした後にpopしたり。JSONじゃなくて、配列にpushするスクリプトを出力してみたり。PHPの配列に要素を入れて、最後にimplodeでカンマでつないだり。。。

もうこんな本質からずれたコーディングをしなくてよくなる・・・

かというと、そうでもないな。世のIEが全部9になったわけではないからなー。

ふるいブラウザも自動で更新して治ってくれたらええのにね。

2012.01.18

ランニングフリーク

完走証届いた。

ホノルルマラソンのバーチャルラン10キロの部。実際に走ったのは明石ですけどね。しかし、いつ頃フルマラソン走れるだろうね。高校の同級生が昨年ハーフマラソンを完走したと言っていたけど、自分にとって20キロはまだ見えないな。徐々に距離を伸ばすしかないのだろうかな。

先日、仕事からの帰宅途中、高校2年の姪っ子がランニングに出かけるところにばったり出くわした。「今から走るねん!ランニング楽しいねん!」ってワクワク感がカラダ全体から放出されていて、おじさんは疲弊した。「いっちょ一緒に走ったろかい」と思ってみたけど、「ついて行けるわけないねん」と嫁から止められた。うん、無理やろな。おじさんのランニングには少しばかり「悲壮感」が混じっているからなー。

それとはまた別に、同僚さんがランニングしたいとのこと。ウェアなどのアドヴァイスを求められたけど、残念ながらコチラも初心者。とりあえずシューズは大事だと思ったので「スポーツ用品店に行って店員さんに相談してね♪」とだけ答えておいた。

あとは続けるための工夫だろうな。走った距離や時間の記録が残るとなんだか楽しい。自分の場合、auのRun&WalkとかアディダスmiCoarchとか。あれが無かったら走っていなかったと思う。

とにかく「どんだけやった?」てのがわかれば、意外に楽しいってことですな。

最初は2~3キロくらいからゆっくり始めないとアカンですよね。無理すると怪我するし、怪我すると、意外に長くかかるから。

2012.01.17

javascriptでSVG

javascriptからSVGを手軽に使えるRaphaelというライブラリを発見したので少し使ってみたが、自分としてはちょっと微妙だった。

以下の点が引っかかる。

  • DOMのidとRaphael管理のidが別物として実装されていて、DOMツリー上で不可視。そしてDOMのidをセットする方法が見つからない(無理やりやれば出来るけど)。デバッグしにくいかも。要素を作成するときにidを指定していなければ自動生成して、さらにDOMのidに設定してくれたらよろしいのにね。
  • jQueryとの併用時、ページロード時の処理は、jQuery的に一般的な$(function(){...});では誤動作するらしく、$(window).load(function(){...}としなくてはいけないらいしい。

そしてもうひとつ言いがかり的だけど、メソッド体系が、かなりjQueryに似ていて同時に使う場合に混乱しそう。

てことで、jQuery SVGというプラグインがあったので、そっち試してみる。

「父・金正日と私 金正男独占告白」

金正男(キム・ジョンナム)さんの本が出るそうだ↓
父・金正日と私 金正男独占告白

昨年亡くなった金正日(キム・ジョンイル)さんは、三代世襲に否定的だったのだとか。

勢いで買いそうになったけど、この表紙は、ちとツライな・・・どうしようかな。

2012.01.16

ハンガーノックと筋肉痛

朝から太ももの表側が筋肉痛。

二日続けて10キロ以上走ったけど「普通、ここまで酷くはならないだろ?」ってレベル。

土曜日のハンガーノックが原因かな。

エネルギー(グリコーゲン?)がなくなると、筋肉のたんぱく質を分解してエネルギーに変えるらしいのだが、ダメージでかい。生命維持のためだから必死なんだろうな。死ななくて良かった。

しかし、このハンガーノックに起因する(であろう)筋肉痛も超回復するのだろうか。

と、どうでもええ心配してたら、体重がドドンと増えていた。

そっちが超回復か。やっぱカラダは必死やな。

イロイロ影響があるから、とにかく補給は大切。

2012.01.15

たいとたこ

午後ラン実施。昨日の反省を踏まえて、調子こかずに13キロ。

浜の散歩道の終点(江井ヶ島側)で補給&休憩

鯛と蛸が、なかなか細かい仕事だなーと感心歓心。

ペースは1キロ6分10秒ほどで自分的にナイスラン♪

バッファローコクヨサプライ iBUFFALO ステレオイヤホンBluetooth2.1対応ホワイトBSHSBE06WH

ランニング用に使っているのが、こちら↓のイヤホン
バッファローコクヨサプライ iBUFFALO ステレオイヤホンBluetooth2.1対応ホワイトBSHSBE06WH

本体はランニングキャップの後ろのベルトに装着。以前はスマホ格納用のウエストベルトにつけていましたが、汗ばんだ首にコードがペタッとくっついてちょっと不快。首を動かすとコードが引っ張られて、ちょくちょく耳からポロリと落ちていた。

ポロリ対策♪第一弾(わかりにくいけどキャップの後ろ)

本体のジャックの先端にテープ(テーピングテープw)まいていますが、ここ、ビニールの皮膜が切れて、コードが少しむき出しになってしまったから。実用上は問題が無いけど、これは改善ポイントかな。

キャップのつばの端でもよさげ

キャップのつばは、走りながら試したときは、視界に入って邪魔だったのだが、さっきキチンと端っこに寄せてかぶってみると、むしろコチラのほうがよいかと思うほど。実際に走ってみないとわかりませんけど。

充電はUSBで♪

2012.01.14

ハンガーノッカー再び

午後ラン10km♪

出勤日だが午後半休。通勤ランは最寄り駅まで1.6km。電車の中で汗が止まらず難儀した。帰りは空腹でダメダメ。メシ食ってから走ろうと、意気揚々と帰宅するも、不幸なことに家にもメシが無かったりして仕方なくお久しぶりにカップ麺など食してラン。

少なくとも13キロ、できれば15キロかな♪と浜の散歩道を東へラン。追い風に押されていい気になって、8キロ地点で休憩&折り返し。

帰りは当然向かい風。まったくもってスピードが乗らん。と10km過ぎて急激に全身から力が抜けていく感覚。

ああ、お久しぶりね、やってもうたわ今年初のハンガーノック。

通常は一口羊羹などを持っているのだが、年末に切らしていて迂闊にも丸腰。小銭だけはもってたけど、江井ヶ島まで自動販売機などの補給ポイントがありませんから、歩くしかない。

ここで新たな発見:「ランニング姿での徒歩は寒すぎる&少し恥ずかしい」

そろそろ歩くのもイヤになりかけたころ、どうにかこうにか江井ヶ島海水浴場に到着。自動販売機は、浜の散歩道の終点に在り。浜の散歩道の終点は、わずか10mほどだが、それなりの斜度の坂の上。「わしは山男か?」と遭難しそうになりながら、コーラ補給で生き返った。

しばらく歩いていると、それまで何度か遭遇していたランナーさんに再び追い抜かれた。走り方が軽やかなので、後ろからフォームというか足の運び方を参考にさせてもらっていたのだが、前方20mくらいで、いきなりゴロリンと転倒。おもわず「大丈夫?」と声が出たけど、停止することなくスムーズに立ちあがって走り去られた。なんかの練習?

帰宅後、昼に食ったカップ麺が、実はカロリーオフな商品だったことに気付く。昼飯にたかだか265キロカロリーなんてダメですよ。ま、途中でちゃんと補給すれば良いことですけどね。

2012.01.12

「レイブル」は誰得語?

従来「ニート」と呼んでいた人のうちで、やる気のある人達を「レイブル」と定義しようという動きがあるみたい。それほど大きな動きでもないようだが、ちょっと気になった。

「レイブル」は「レイトブルーマー(遅咲き)」からの造語。頑張っている人を、悪いイメージの言葉でひとくくりにするのは忍びないということなのだろう。

で、この読み替え、「頑張ってるけど、うまくいっていない人」にとっては、たいした影響は無いだろうと思う。むしろモチベーションを落とさせる方向に働く可能性があるかも知れん。

そもそも「レイブル」な人たち、自分のことを「ニート」とは思っていないけど、他人から「ニート」呼ばわりされることには嫌悪感を感じているんじゃないかなと思う。そしてこの嫌悪感は、その状況から脱したいというモチベーションに多少なりとも影響しているように思うのだ。

自分も二十歳くらいのころ、社会へのスムーズな出て行き方がわからず、半ば引き篭っていた。一人暮らしで、最低限のアルバイトをしていたし、楽に金儲けをするモチベーションは高かった。でも、方向性はなくて毎日が点。

当時「ニート」という言葉は使われていなかったけど「フリーター」と蔑まれていた(と思っていた)。そもそも人とそれほど密に関わらないから直接何か言われるようなことは無くて、すべて妄想でしかない。世間から「あの人ナニやってんの?」と思われているような気がして、そして次第に頑張っている人たちとの関わりがつらくなって、爆発寸前で根本的な脱却を図ったのだ。

あのとき「レイブル」と呼ばれたとしても、なにも変わらなかっただろうな。

2012.01.11

オリオン座

お正月に実家で天体撮影を試みたのだけど、

なかなか見事に失敗した(笑)

  • ピントが合っていない(オートフォーカスのままだった)
  • 暗すぎる(画像は明るく加工)
  • 電線が邪魔

なんらかの意味ありげな雰囲気が出たので、納得しておこう(笑)

2012.01.10

IS11CA 防指紋光沢保護フィルム 2枚入り

先日、ランニングの休憩中にケータイ(au IS11CA - CASIO G'zOne)の画面に傷を入れてしまった。

と思ったら、もともと保護フィルムが貼られていて、穴があいて気泡が入ったけど、本体はセーフ。

ただ、見にくいのは確かなので、アマゾンでポチ。

2枚入っているということでお得ですた。

失敗したときのための予備が入っていると思えて安心ですし、他の1枚のものと同じくらいのお値段でした。

薄いものですからポストに投函かと思いきや、箱でお届け。そして送料無料。

ありがたいけど、大丈夫かいなと心配になった。

指紋は気にしていなかったのですが、確かに付かない。

こうなると元には戻れないな。

2012.01.09

1キロ6分13キロ

昼からラン。ゆったりペースで13キロ。

ゆったり走ってトータル1キロ6分ちょっと。

休憩は9.5キロ地点で1回。

楽しく走れたけれどひざが弱くなった実感がある。

【ACOR(エイカー)】AFD-21201 イノヴェイティブ リアフェンダー

あさひのメルマガで紹介されていたフェンダー。⇒ AFD-21201 イノヴェイティブ リアフェンダー

最初、杖に見えたんだが(笑)

リア専用で、クイックのナット側に装着するらしいのですが、つまり片持ち。この発想と、スポークにまぎれてかなり目立たないってのが、なんだかスゴイなと思ったので、ご紹介。

泥除け部分がかなり小さいのですが、なんとかお尻と背中は防御できそう。

しかし、クイック緩めてナットをいったん外すわけですよね、意外に脱着が邪魔くさいのでは?

今でも自転車通勤しているなら、(興味本位で)買っているかもしれない。ちょっと高いけど。

Symfonyのオートロード、ヘルパー、スタイルシートの読み込み

仕事で今使っているSymfonyなんですが、気軽に開発できて大好きなのですが、使い始めのころは、アクションとテンプレート辺りしか見えていなくて、「良いやり方があるんだろうなー」と思いながらも、工程に追われて力技で押し切っていました。

チュートリアルをきちんとやっていればそういうことも無かったのでしょうが、仕事なので、チュートリアルを悠然とやる余裕が無かったんですよね。まー言い訳なんですけどね。職業プログラマ的にはそういうことは多いのではないかとも思います。

で、最初の案件が落ち着いてから、きちんと調べてみたら、やはりイロイロ便利な機能が見つかりまして、少し損した気分を味わっておりますが、せっかくなので、ここに書き残しておきます。(あとでちゃんと整理する可能性ありますがとりあえず以下にまとめ書き)

lib/○○.class.php : クラスのオートロード

プロジェクトディレクトリやアプリケーションディレクトリ、モジュールディレクトリの直下にlibというフォルダを作ってPHPのクラスファイルを置いておくと、プログラム中でいきなりこのクラスを使用できます。

  1. プロジェクトの下 ― /$(project)/lib/
  2. アプリケーションの下 ― /$(project)/apps/$(app)/lib/
  3. モジュールの下 ― $(project)/apps/$(app)/modules/$(module)/lib/

モジュールの中だけで使うクラスなら、モジュールの下にすればよいということですね。

余談ですけど、オートロードされるクラスの置き場所はSymfonyがキャッシュしています。ファイルの位置を移動した場合は、このキャッシュをクリアしなければ正しく動きません。Symfonyのキャッシュをクリアするにはプロジェクトディレクトリで php symfony cc[Enter] とやります)

lib/helper/○○Helper.php : ヘルパーの利用

Symfonyのヘルパーは複数のテンプレートから利用される関数をまとめたものです。

「○○」というヘルパーはlib/helperの下の○○Helper.phpというphpファイルに記述します。

利用するテンプレートの先頭で、<?php use_helper('○○') ?>とすれば、このテンプレートからヘルパーファイル内の関数を呼び出せるようになるわけです。

config/view.yml : テンプレートごとにCSSを読み込む

モジュール直下の config ディレクトリに view.yml を作成して、テンプレート毎に使用するスタイルシートを定義できます。

foobarSuccess:
  stylesheets: [foo/bar.css, hogehoge.css]

上の定義では foobarアクションのテンプレートfoobarSuccess.phpでは、/web/css/foo/bar.css/web/css/hogehoge.cssが読み込まれます。

検索パスは/web/cssなどで変更や追加も出来るようですが、基本的には/web/cssなどのようですね。

2012.01.08

いまさらだけど「ニンテンドー3DS」すごいね

子供らが3DSを買ったので、こっそりどんなもんか調査してみたら、見事にハマった。

まず、本体に入っている「顔シューティング」というゲームに驚いた。

カメラで撮った顔の写真から敵キャラが作られ、3Dカメラで映された周囲の風景の中を自由に飛び回るので、そちらのほうを向いて打つのですが、なにより、この敵キャラ(基本的に自分の顔だが)の表情がコロコロと変化して驚いた。そしてその表情が非常にムカつくのだ。

写真を一枚撮っただけなのに、口を開けたりうウィンクするなんて。驚愕でした。声を上げました。

コンピューターソフトウェア業界の隅っこに身をおくものとしては非常に恥ずかしいのだけど、一本取られた気がしましたよ。

あと、家内が買った「パイロットウイングスリゾート」ってのにもハマっている。

Wii Sports ResortやWii Fitにも出てくる例のあの島(「ウーフーアイランド」というらしいですな)を、飛行機などで飛び回る奴で、Wii Sports Resortにもほぼ同じのがありましたが、3DSのほうがやりやすい気がする。そして、なんだか肩がこらなくて心地よい。

普段、ほとんどゲームをやらないジブンがはまっているのが滑稽なのか、家族から「まだやってんの?」もしくは「またやってんの?」とよく笑われているが、しばらくこれは続く気がする。いったんはまると長いから。

2012.01.07

2012年の走り初め

明けましてーの朝ラン6キロ♪

ほぼ一週間ぶりだし、心肺機能と筋力が正月の暴飲暴食の餌食になっているので、2キロ、3キロ、5.5キロと細かく休憩を入れながらソロソロと走った。

行けたら10キロと思っていたが、右の太ももにホンの少しだけど妙な不安があったので短縮。

後半、スピードを意識して走ってみたら気持ちよくなりすぎて、オーバースピード。キロ4分台は300mで撃沈。

トータルペースは5分41秒。「だいぶ戻ってきた」という実感と、「ヒザが弱くなった」という実感が渾然一体。今年は怪我しないよう、慎重・かつ大胆に(?)走りたいと思っております。

2012.01.01

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

本年もよろしくお願いいたします♪

« 2011年12月 | トップページ | 2012年2月 »

2017年5月
  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      
フォト

Google AdSense

銀の弾丸

無料ブログはココログ