Amazon Campaign

2013年12月4日水曜日

FuelPHP カスタムSQLの実行時のエスケープ

FuelPHP の DB への問い合せは SQL を抽象化した「Query Builder」を使いますが、where句が複雑な場合や副問い合せを行う場合などはメソッド呼び出しが多くなりコードの見通しが悪くなってしまうので、直接 SQL を記述したくなります。

例)Query Builder を使う場合


// 下記SQLを Query Builder を使って記述すると
// SELECT * FROM `users` WHERE `name` != "John" AND `surname` = "Doe"
// AND (`email` = "jim@jim.com" OR `email` = "haha@joke.com")

// 下記のようになります。

$query = DB::select('*')->from('users');

// 最初の where ステートメントをセット
$query->where('name', '!=', 'John');

// あたらしい条件を追加
$query->and_where('surname', 'Doe');

// ネストした where をコールバックで
$query->where(function($query){
    $query->where('email', 'jim@jim.com')
        ->or_where('email', 'haha@joke.com');
});

例)SQL を直接記述する場合

SQL を直接記述する際は DB::query() を使いますが、この場合 Query Builder で行われていた値のエスケープは行われませんので、DB::quote() を使って個別に行います。quate() はエスケープの他にもメソッド名の通りクウォーテーションもしてくれます。

$name = DB::quate($name);
$surname = DB::quate($surname);
$email1 = DB::quate($email1);
$email2 = DB::quate($email2);

$query = "SELECT * FROM users WHERE name != $name AND surname = $surname AND (email = $email1 OR email = $email2)";
$users = DB::query($query, DB::SELECT)->as_object('Model_User')->execute();

FuelPHP UA判定に mbstring 拡張モジュールは不要

UserAgent は Agent クラスで判定する

PHP で UserAgent を判定する場合、mbstring 拡張モジュールをインストールし mb_ereg() 関数などを使って判定しますが、FuelPHP を使っている場合は Agent クラスを使って判定することができます。

例)IE9 未満の判定

// IE9 未満の場合は専用の CSS を出力する
if(Agent::browser() == 'IE' and Agent::version() < 9) {
    echo Asset::css('ie.css');
}

2013年11月18日月曜日

オランダ戦 奇麗すぎる2点目は忘れるべき

ゲンクでのオランダ戦は久しぶりに楽しめた試合でした。特に2点目は素晴らしかった。素晴らし過ぎた。 20年近く代表の試合を見ていて、あそこまでゴール前で細かく数多くパスが繋がり、なおかつゴールできたのは初めてと言っていいぐらい。 そう、20年に1度あるかないかという奇麗さでした。 だから、「イメージ通り」と言っている選手たちの発言がちょっと気掛かりです。あれはとてもじゃないけれど狙って何度もできる代物ではありません。 またあれを狙ってやろうとすると、ゴール前でパス偏重となりシュート意識の低下を招き、必要以上なパス交換でカットされる確率を高めるだけです。 もっとシンプルにゴールは狙えるはず。このゴールは忘れてくれることを願います。

2013年11月2日土曜日

OSX Mavericks の AirPlayマルチディスプレイは MacBook Air 2010では使えず

Mavericks の「AirPlayマルチディスプレイ」という機能、ご存知ですか?
AppleTV があれば Mac から AirPlay 経由でハイビジョンテレビをマルチディスプレイとして利用できるんです。MacBookAir は特に画面が狭いので期待していたのですが、残念ながら MacBookAir の場合は 2011 モデル以降ということで、うちの 2010 ではダメでした。。。
利用条件が合う方は試してみてください。

利用条件

  • MacBook Air(Mid 2011以降)
  • Apple TV(第2世代以降)

Mavericks 各機能の利用条件


http://www.apple.com/jp/osx/specs/

2013年10月22日火曜日

Xcode5 スタックトレース(バックトレース)の確認方法

Xcode5 になってコマンドラインのデバッグツール gdb が標準でインストールされなくなってしまったので、エラーが発生した際には lldb を使ってスタックとレース(バックトレース)を確認します。

使い方はとても簡単です。エラーが発生したらデバッグコンソール(Debug Area)で "bt" (Back Trace) とタイプし enter するだけ。

下のwindowの緑色の文字 "(lldb)" のところに入力します。 

2013年10月15日火曜日

ベラルーシ戦 ブラジルWCはザッケローニと心中だ

セルビア、ベラルーシとの連戦、予想以上に残念な結果となりました。

まさか、これまで以上にメンバーの固定化に向かうとは予想を遥かに超えていました。まるで何かのタイトルが掛かっているかのような現状でザックが考えているベストメンバーへの固執。
ベラルーシ戦の後半などは、あれだけゲームが停滞していたのだから、ドリブルで打開が出来る清武、乾を出すには絶好のシチュエーションだったのにもかかわらず、結局最後はいつものハーフナー投入だけというアイデアの無さ。 

さらにはちょっとだけ試した3バック。なにか得るものあったのでしょうか。
ザックがいう3バック、もとい3トップは信頼できるフォワードがいないためのゼロトップというのが真実でしょうね。

さらにはメンバー酷使による本番でのコンディション不良も大いに懸念されます。こんな状況で南アフリカ以上の成績なんで、とても望めるものではありません。 

今までのマネジメントを見る限り、岡ちゃんのような大会直前での大改革をやる度胸を持っているとはとても思えませんし、残念ながらザックで行く以上ブラジルは期待できそうもありません。

 無理とはわかっていますが、オシムに代わって欲しいです。

2013年10月6日日曜日

FuelPHP を Google App Engine for PHP で動かす

FuelPHP を GoogleAppEngine for PHP (gae)で動かしてみました。

※2013/10/14 ひとまずデプロイして動作するようになったので記事を更新しました。
※2013/10/16 log出力パッチを公開しました。

環境

GoogleAppEngineLauncher(GAEの開発環境)が Webサーバも兼ねているので Apache は不要です。


  • OSX 10.8.5
  • GoogleAppEngineLauncher 1.8.5
  • PHP 5.4.20
  • FuelPHP 1.6


まずは環境定義をします


GAE にデプロイすると当然 URL がローカルとは異なりますので、とりあえずローカルとデプロイ先で環境を切り替えるように定義しておきます。ここではローカルを "development" デプロイ先を "production" とします。Fuel はサーバ変数 "FUEL_ENV"  の値で切り替えられます。GAE の場合は app.yaml で定義可能です。

env_variables:
  FUEL_ENV: 'production'
#  FUEL_ENV: 'development'


app.yaml でリクエストをハンドルする


FuelPHP は全てのリクエストを /public/index.php に処理させる仕組みとなっているので、/public/assets 配下へのアクセスは静的ファイルとしてアクセスさせる必要があります。
そのハンドリングを標準では Apache の .htaccess で行いますが Google App Engine では、それをアプリケーション設定ファイルである app.yaml の handlers で指定してあげます。同様に favicon.ico についても静的ファイルとして設定します。


handlers:
 
# assets dir
- url: /assets
  static_dir: public/assets
 
# favicon file
- url: /favicon.ico
  static_files: favicon.ico
  upload: favicon.ico
 
# php files
- url: /.*
  script: public/index.php


ローカル環境ではこれだけで動いてくれるのですが、GAE に上げると色々あり、以降の設定が必要です。

localでの起動画面
ローカルでは動くのですが。。。


base_url を設定する



GAE に上げた際の URL を定義します。production 環境でのみ有効となるように、production 用の設定ファイルである下記ファイルへ定義します。必要な項目のみ差分で定義できます。


/fuel/app/config/production/config.php

'base_url' => 'http://{your_app_id}.appspot.com/',


logファイルは出力できないのでパッチを作りました


GAE 上ではlogファイルの出力は行えませんので、下記設定で出力しないようにすることで回避は可能です。

/fuel/app/config/production/config.php

'log_threshold'    => Fuel::L_NONE,


ただ、これでは実用的ではありませんので Fuel の Logクラスを改修して、GAE でログ出力を行うためのパッチを作成しました。単純に /fuel/core/classes/log.php のファイル出力部分を syslog() に置き換えただけです。GitHub に公開しましたので自由に使ってください。

https://github.com/isatan/FuelPHP4Gae_patch


/fuel/core/classes/log.php を置き換えるだけで下記のように GAE のコンソールに出力されるようになります。

log をファイル出力すると 500 エラーにもかかわらず何も出力されません。

パッチをあててもらうと Fuel の log 出力も debug log も出力できます。

locale を指定する


Fuel のデフォルト locale は "en_US" ですが、GAE では指定できないようです。いくつか試したところ、Cロケールは認識してくれました。

/fuel/app/config/production/config.php
'locale' => 'C',


assets 関連ファイルは絶対 URL で指定する


どういうわけか、base_url を指定しているのもかかわらず assetes 関連のファイルを見つけてくれず、bootstrap.css の読み込みでエラーになってしまいます。assets 用の設定ファイルに下記の設定することでエラー時に強制実行させることができますが、それでは link タグを出力してくれません。

 /fuel/app/config/production/asset.php


'fail_silently' => true,


仕方がないので view ファイルでの assets 関連ファイルの指定は絶対 URL で指定することにします。

/fuel/app/views/welcome/index.php

echo Asset::css('http://{your app id}.appspot.com/assets/css/bootstrap.css');



動きました

これで FuelPHP の welcome 画面は表示できるようになりました。ここで修正した app.yaml, config.php, log.php は GitHub に上げてありますので自由に使ってください。

https://github.com/isatan/FuelPHP4Gae_patch

ただ、assets ファイルの指定はいただけないので今後なんとかしたいですね。


ようやく appspot.com 上でも Welcome! が拝めました。


2013年10月5日土曜日

FuelPHP まとめ

仕事で利用したPHPのフレームワーク「FuelPHP」がとても便利だったのでコツをまとめておきます。順次以下を項目を予定。




2013年10月4日金曜日

FuelPHP 実行したSQLクエリをdebugログに出力する

FuelPHPで実行したSQLをログに出力する場合、DB::last_query() を使います。最後に実行したSQLが取得できるので、Model内のクエリメソッド内で出力させるといいですね。
$result = DB::query("select * from productusers where product_id = $product_id", DB::SELECT)->as_object('Model_Productuser')->execute();
Log::debug('[sql:'.get_called_class().']'.DB::last_query());

2013年9月7日土曜日

グアテマラ戦 ドン引き相手で得るものはあるのか?

2013年9月6日のグアレマラ戦。
ドン引きな相手との試合はつまらないと改めて思う。敵陣で長い間パスを回してはフィニッシュの際にブロックされるか精度を欠いてゴールを外すことの繰り返し。

完全に引いてしまっている相手に対して、押し込んで同じペースで攻めているのではこなることは当然せす。
あえて相手にボールを持たせて攻めさせるとか、大きなサイドチェンジを徹底するとかチームとしての戦術が必要で、そういうことを監督が授けなかればんらないと思うのですが、ザッケローニにはそういうことは期待できそうもありません。
改めてザッケローニの監督としての資質に疑問を持たずにはいられません。

ザッケローニの選手選考に注目が集っていますが、一方的な展開で変化のない試合において、はたしてどれだけ選手の評価が行えるのか疑問です。そもそも、これだけ力の差がある相手とホームで試合をする価値は収益以外にあるのでしょうか。

いちサッカーファンとしてもう少し楽しめる試合を観たいと切に思います。

2013年8月15日木曜日

豊田を投入したものの意図持たぬザック ウルグアイ戦

ウルグアイ戦、「融合」と言いつつ招集していない前田の代わりに柿谷がトップに入っただけで、それ以外は何も変わっていないスタメンに少なからず驚かされました。問題視されていたディフェンス陣すらも。ある意味ザックらしいといえばその通りなのですが。

また、選手交代で何らかの意図が見えないのも相変わらず。特に後半、せっかく豊田を投入したにもかかわらず、選手たちはそこを意識して使おうとする意図は全く見えず、監督から何の指示も与えられていないことは明白でした。
そうなると残念ながら、どこかのサッカー番長が言っているように「引き出しの少ない」「交代がことごとく下手」な監督としてしか観れません。

「ここはらは世界モードへのシフトだ!」と言って出し惜しんでいた引き出しの中身をドーンと見せてくれるような、ボクらの期待を裏切るようなことは。。。ありそうもないですね。
せめて田中さんを呼んでくれるぐらいはして欲しいと淡い期待を抱きつつ、9月の試合を楽しみにしたいと思います。

2013年8月8日木曜日

2013年8月14日 ウルグアイ戦予想スタメン

楽しみな8月14日 ウルグアイ戦のスタメンを予想してみたいと思います。
ボクはドーハの悲劇から今まで、20年あまりサッカーを観てきましたが正直あまり語ることが出来ません。
せっかく好きで毎回観戦しているのだから「多少はウンチクを語れるようになりたい!」そんな思いで少しずつ記事を書いてみようと思います。

ウルグアイ戦 予想スタメン
注目はもちろんCFの豊田です。今回前田が選出されていない以上、柿谷か豊田になります。世論的には柿谷なのでしょうが、ここはかなりの確率で豊田と読みます。やはりザック・ジャパンは香川、本田、岡ちゃんの超攻撃的OMが一番の売りです。その3人を生かすためには、前線で体を張ってなおかつスペースも作れるというのが条件となり、その能力を備えた前田が点を取れていなくても今まで使われ続けてきました。
その能力を備えて、なおかつ自分で点も取りにいける強くて泥臭い(褒めてます!)豊田がうってつけ!
正直、いまのザック・ジャパンには残念ながらジーニアスのポジションはありません。今回の選出は世論向けの選出、協会からの強い要望が影響していると読みました。

MFの東アジア組は残念ながら会見でもザックが「若い選手にはこの代表に入ってすぐに活躍どうこうというよりも」と言っているので同じ時間を過ごさせて代表に慣れさせるのが目的でしょう。

CBの森重はコンフィデの吉田があまりにも頼りなかったからきっと換えたいのでは。

個人的には田中さんを熱望しているのと、東アジア組でかなり効いていた徳永が呼ばれていないのが非常に残念です。ボクは東アジアカップでの徳永の活躍に誰も触れていないのが納得できておりません。

さて実際のスタメンを乞うご期待。

2013年7月24日水曜日

Java屋が日曜プログラミングでiPhoneアプリを開発してわかったこと

ネイティブに使える言語はJavaだけのボクがiPhoneアプリを開発してみてわかったこと。

開発にはお金が掛かる

開発にはお金が掛かります。皆さんご存知の通り Appleの開発者登録 "Apple Developer Program" への登録に年間 8,400円(2013年7月現在)、それに加えて開発環境であるIDEの "Xcode" は最新版でないとAppleへのアプリの申請が行えません。
"Xcode" 自体は無料ですが、最新バージョンを動かすためには基本 MacOS も最新版である必要があるので OS のバージョンアップ費用が掛かります。
さらには最新版の OS を使うためにはあまりに古い Mac では辛くなるので比較的早いサイクルでの Mac の買い替えが必要になります。

開発は短く

ボクの物覚えの悪さも手伝ってダラダラと開発してしまい結局開発を始めて1年以上掛かってリリースにこぎ着けたのですが、その間に利用している EvernoteAPI が 認証方式を OAuth に対応させたため大きくバージョンアップしました。その影響で大きなブログラムの改変を余儀なくされました。

また、アプリにおける UDID (端末識別ID)の扱いについての Apple の審査基準が変更になり、それまでアプリ広告で利用されていたものが利用できなくなってしまいました。
そのため導入していた広告用 SDK もバージョンアップが必要となり新たに組み込み作業が必要となりました。

さらには Xcode もバージョンアップし、それまで UI を実装するためのツールだった InterfaceBuilder が Xcode に統合されるなどし、インターフェースが大きく変更されたために慣れるのに手こずりました。

その他にもアプリによっては iOS のバージョンアップが影響します。
こういったアプリに関連するライブラリや開発ツールのバージョンアップが頻繁に発生するため、開発期間が長くなればなるほど本質ではない部分で余計な作業が発生してしまいます。開発期間は短くした方が効率的です。

やっぱりメモリ管理は意識が必要

Java のメモリ管理はガーベージコレクションがやってくれますが、iOS での Objective-C はやってくれません。キチンと意識して実装していなかったボクは当然のことながらデバッグ時にクラッシュ頻発で苦労させられました。
初めてアプリ開発を行う際は Objective-C の参照カウント方式のメモリ管理をキチンと勉強してから実装しましょう。

MacBookAir2010でも開発できる

当然ですが "MacBook Air" でも開発できます。しかもボクのは 2010 モデル、最低スペックのメモリ 2G です。
パフォーマンスについては開発したアプリがシンプルだったということもありますが実端末向けに最適化ビルドする際に多少時間が掛かる以外は特にストレスはありませんでした。

また、ディスプレイの解像度については MacBookAir は特に縦の解像度が 900pixel しかないので Retina の場合は iPhone4 (960pixel)でも足りません。ですが、エミュレータの設定で表示倍率を指定できるので精細な表示確認を必要としない限りは問題ありません。

表示倍率を 50% にすれば iPhone5 での表示でも収まります。

やっぱり楽しい

日曜プログラムで開発するには色々と手間やコストが掛かりますが、リリースできれば、たとえ使ってくれるユーザが少なくても自分で好きなように作ったアプリを使ってもらえるのは楽しいです。当然、アプリを育てて多くのユーザに使ってもらえるようになれば収入になるという野望も持てますしね。

以上のような苦労をして作成した「Vocablary Cards」をぜひ使ってみてください。
Evernote上のノートを単語帳として表示できるアプリです。
何かの勉強をテキストファイルにまとめているような方であれば、ほんの少しの手間で単語帳にすることができます。

Vocabulary Cards - Evernoteで単語帳 - Isao Tanji






2013年5月3日金曜日

Mac の Inkscape でオブジェクトをコピーする

Mac で Inkscape を使っていますが、オブジェクトをコピーするとパスが全部潰れて真っ白な四角に置き換わってコピーされてしまいます。
X11 の以下の設定をおこなうことによりパスを保ったまま、オブジェクトをそのままコピーできるようになります。

X11 > 環境設定 >「ペーストボード」タブ
にて以下のチェクを外す。

英語)
"Update Pasteboard when CLIPBOARD changes"

日本語)
"CLIPBOARD が変更されたときにペーストボードをアップデート"


2013年2月11日月曜日

初心者のための SPORT 9ssブルホーン化注意点


半年ほど乗っている「TOKYOBIKE SPORT 9s」をブルホーン化しました。その際、初心者ゆえに色々とハマりましたので注意点をまとめます。


完成の図 その1

完成の図 その2

交換における注意点

注意点は以下の2点です。自転車の仕様は細かくミリ単位で定められており、特にハンドルは本体との連結する「クランプ」部と「グリップ」部それぞれ自転車のタイプにより規格化されており、「SPORT 9s」のハンドル仕様は下記のようになっています。この仕様に準拠したパーツしか組み合わせることができません。

<TOKYOBIKE SPORT 9s ハンドル仕様>
  • クランプ径:25.4mm
  • グリップ径:22.2mm

なお、「グリップ径」については一般的に「SPORT 9s」のようなフラットハンドルの場合は "22.2mm"、ドロップハンドル(ブルホーンもその派生のため同様です)は"23.8mm"という仕様となっているようです。

ハンドルだけの変更で済ます場合

ブレーキレバー、シフトレバーは標準のものを使い回して、ハンドルだけの交換で済めば安上がりです。(ボクはこれで済ませたかったのですが、仕様を知らずにグリップ径の異なるハンドルを購入してしまったため、結局全部変更する羽目になってしまいました。。。)
前述のとおり、ハンドル径が "22.2mm" というのはブルホーンでは一般的ではないため、調べた限り条件を満たすものは以下の2点だけでした。

<KhodaaBloomってメーカーのオプション>
http://khodaa-bloom.com/2012/product/optionparts.html
※ 2014/05/06 更新 こちらはもう製造されていないようです。

NITTO B263AA


2018/08/10 追加

いま商品を探してみると、仕様の合致するハンドルは他にもあるようですね。


ブレーキ、シフトレバーも一緒に変更する場合

「もっと自分好みのハンドルを選びたい!」という場合は一般的なグリップ径のハンドルとなり、ブレーキレバー、シフトレバー共に使い回せないので、それらも一緒に変更する必要があります。ボクがチョイスしたのは以下のものです。

ハンドル


先ほども書きましたが、ハンドルを本体と連結する「クランプ」部は「SPORT 9s」の仕様 "25.4mm" に合わせる必要があるので、その範囲でハンドル選びをすることになります。

ボクが選んだのはこちら。ブリップ径は "23.8mm" なので、ブレーキバー、シフトレバーはこれに合わせて選ぶことになります。
当然色はブラック。ハンドル幅はコンパクトに "380mm" にしました。先端のキャップは別売りです。



シフトレバー


「SPORT 9s」の標準タイプは「ラピッドファイヤー」というタイプなのですが、コレ、ハンドルを握った手を全く移動せずに変速できるので非常に便利ですよね。そのため、なるべく同タイプのものに変更したかったのですが見つけることができませんでした。
そこで、なるべくグリップ部分の近くに取り付けられてコンパクトなダイアコンペの「 ENEサムシフター」というのにしました。


「ENEサムシフター」。複数のグリップ径 "22.2mm"、"23.8mm"、"26mm" に対応できる補助金具が付属します。

取り付けた図。ワイヤーがハンドルを握る際の邪魔にならないように取り付けました。

シフトチェンジの図

このレバーは単純なアナログレバーで、レバーを止める位置に目印やスイッチ的感触もありません。予想通り標準のシフトレバーに比べるとかなり操作しにくくなってしまいました。



ブレーキ


ブルホーン用の一般的なブレーキレバーはハンドルの先端にカマのように取り付けるタイプのようです。そうすると先端部を握っている時にしかブレーキできません。ボクはどちらかというと平坦部分を握るほうが多いと思ったので、「SPORT 9s」の標準ブレーキと同タイプのものを探していたのですが、平坦部、先端部どちらで握ってもブレーキできるレバーがありました!

ブリップ径は "23.8mm" のみに対応です。ハンドルの取り付け部がシルバーなのが残念ですが、他に同様の形のものは見つからなかったので仕方なし。

平坦部で握った図。

先端部で握った図。


その他


ブレーキワイヤーとシフトワイヤーも当初は交換するつもりはなかったのですが、ブレーキワーヤーについては外してみるとブレーキ部分と接続するボルトによる傷みが目立ったので交換しました。
シフトワイヤーについては標準のシフターから取り外せなかったので、別途購入しました。

また、各ワイヤーチューブについてもハンドル周りのレイアウト変わることで微妙に最適な長さが変わってしまい気持ちが悪いので交換しました。

渋谷のハンズに売っていた下記商品がブレーキワイヤー、ワイヤーチューブ、ブレーキレバー側の受け金具がセットになっていて283円で売っておりお買い得でした。




カスタマイズは「オレのは他のヤツらのとは違うぜー」という自己満足が全てですが、十分満足できる仕上がりになりました。予想外に手間もコストも掛かりましたが、結果オーライ!


2013年1月18日金曜日

EvernoteAPIでのノートの検索

Evernoteと連携するiPhoneアプリを作成中で、先日、ようやく認証方式をOAuthに移行できました。ただ、移行後はノートの検索が行えなくなってしまい、ようやく解決したので共有します。
ノートの検索を行うためには2つのステップが必要です。

  1. 開発者サポートへ連絡し、アクセス権限を「フルアクセス」へ変更してもらう。
  2. Web画面の設定で、該当アプリの認証許可を1度削除する。


開発者サポートへ連絡し、アクセス権限を「フルアクセス」へ変更してもらう。

開発にあたっては連携用のAPIキーを取得しますが、デフォルトの権限は「ベーシック」となっており、”ノートの作成、ノートブックとタグの検索”しかできません。これを、”ノートの変更、検索、取得”も行えるようにするためには、サポートへ連絡して「フルアクセス」権限にしてもらう必要があります。

該当のFAQ
http://dev.evernote.com/intl/jp/support/faq.php#permdenied


Web画面の設定で、該当アプリの認証許可を1度削除する。

続いて、WebのEvernoteへアクセスします。開発用のアカウントのはずなので、sandboxへのアクセスとなります。画面上のメニューより「設定」->「アプリケーション」と選択すると、OAuthで認証許可を行っているアプリの一覧が表示されます。

権限「ベーシック」での表示

ここで、該当アプリを選択して「アクセスを取り消す」を実行し、再度開発中のアプリ側でOAuth認証を行い、認証トークンを再取得することで無事「フルアクセス」権限となります。

エミュレーター上でアプリを削除すると、端末側では認証トークンも削除されるため、再認証することでトークンが再発行されたものと思い込み、なかなか解決できずに苦労しました。。。

2013年1月11日金曜日

ゴンはきっと復帰する!

今日、ネットニュースに「ゴン」こと中山雅史が「引退したにもかかわらず、自主トレ中」みたいな記事が流れてましたが、さっそく今夜の報道ステーションで特集組まれて修造がインタビューに行ってました。

かなり本気の自主トレ(リハビリ)のようで、あながちカムバック宣言も冗談ではなさそうです。選手を諦めきれない思いが伝わってきて、ちょっとウルッと来てしまいました。。。 昨年末のチャリティーマッチで久々にゴンゴール決めちゃったので、その思いが強くなっちゃったのかも。もしカムバックしたら、きっと観戦しに行きます!



それにしても、ゴンゴールを相手チームも含めて皆で喜んでいいシーンですね!サッカーって素晴らしい!

Amazon_ad