だ。ログ。

開発とかスノボとかやきうとか。

EC-CUBE3のfaviconを変える

/src/Eccube/Resource/template/default/default_frame.twig
を変えられない事もあると思うので。

##場所
/html/template/default/img/common/favicon.ico

これを変更する。
ただし、管理画面のfaviconは別途であり

##場所
/template/admin/assets/img/favicon.ico

となる。両方変えないと管理画面だけデフォルトの帽子にままと言う事がある。
ある程度サイトを動かしてしまっているとガッチリキャッシュされてしまっている事がある。その場合はdefault_frame.twigを以下のように変更
/src/Eccube/Resource/template/default/default_frame.twig

<link rel="icon" href="{{ app.config.front_urlpath }}/img/common/favicon.ico">
##上記を変更
<link rel="icon" href="{{ app.config.front_urlpath }}/img/common/favicon.ico?v={{ constant('Eccube\\Common\\Constant::VERSION') }}">

バージョンを書き加える事で違う物と認識し、ブラウザにて即反映される。
また、スマホのショートカットアイコン等を設定する場合は以下
/src/Eccube/Resource/template/default/default_frame.twig

##ios
<link rel="apple-touch-icon" href="任意のアイコンの場所?v={{ constant('Eccube\\Common\\Constant::VERSION') }}">
##android
<link rel="shortcut icon" href="任意のアイコンの場所?v={{ constant('Eccube\\Common\\Constant::VERSION') }}">

EC-CUBE3のページ管理のdescriptionの文字数を変更する

EC-CUBEの管理画面からページ管理を行った際にSEO対策で行うdescriptionの文字上限数が少ないと結構指摘される。
あまり長すぎてもSEO上良い影響はないとと思うが流石にデフォルトの50文字だと短すぎる。
ここはPOSTした際にコンフィグファイルを観るので、ファイルの修正。

/src/Eccube/Resource/config/constant.yml.dist

#213行目
stext_len: 50
→これを
stext_len: 任意も文字数に

DB上はlongtextで持っているので問題はないが、簡潔にページの内容を伝えられるかがミソになる。
とりあえず100文字にして150文字にしてと足りない分を徐々に上げていく方が良いのかも。

WAFを経由したらIPが複数に。

セキュリティの観点と導入が簡易に出来ると言う事からWAFを導入する機会が増えてきている。
特に管理画面等をIPアドレスで絞った場合に起こりうる事だが、サーバー変数をREMOTE_ADDRから取っていると

111.222.333.444, 123.456.789.120

と言った形で前がアクセス元のアドレス、後ろがWAFのアドレスとして付与されている事が見受けられる。
それもWAFがゾーンでの指定の場合、固定ではなく変動するので一意にし難い。
$_SERVER変数を見てアクセスするIPアドレス「のみ」が入っている変数がどれかと言う事をアプリケーション側で確認し変える必要がある。
今回自分がハマった時には

$_SERVER['HTTP_INCAP_CLIENT_IP']

と言う変数がそれに該当し、変更を行った。
シングル構成や単純な構成であれば、あまりここは気にしなくても良いが大きなシステムになると
「クライアントの接続元はREMOTE_ADDRだから」と言う固定概念に囚われてハマる事もある。

灯台下暗しって事とWAFは今後も導入が増えるのでメモ。

いちいちPHPからCSVにデータをエクスポートする際の文字コード変換を使うのが面倒くさい

タイトル通り。
本当に面倒くさい。古いシステムだと全てのカラムにmb_comvert_encodingが書いてあり人的なミスでエンコードを忘れやすい。
ふと調べていたが、ファイルに保存する際にこれにした方が楽。

fp = fopen('hogehoge.csv', 'w');
stream_filter_prepend($fp,'convert.iconv.utf-8/cp932');
fopen($fp, "w");
foreach($data as $v){
    $line = "hoge,fuga,moge";
    fwrite($fp, $line . "\n");
}

いちいち文字コードをアレコレしなくても stream_filter_prependを掛けておけばそれでよし。

EC-CUBE3のClassErrorを解消する。

自分で新たに作ったClassファイルが有り、コントローラに記述をする。

	$Sender = new \Eccube\Sender\Sendar();
	$Sender->setRequest(array("order_id"=>$orderId));
	$Sender->sendData();

自分が作ったのは商品購入 ShoppingController.phpの商品購入コンバージョン用の新クラス。
この新たに追加したクラスを読み込むと以下のようなエラーが出る

ClassNotFoundException in ShoppingController.php line xxx:
Attempted to load class "Sendar" from namespace "Eccube\Sender".
Did you forget a "use" statement for another namespace?

namespaceが解決出来てない、まずこのクラスってあるか?
ってな事をエラーとして吐いてくる。ローカルや開発では動いているが、ステージングに新たに入れた時のみこんなエラーが出る。

この原因はキャッシュ。
/app/cache/
内のデータを削除すると正しく動作した。

うーんなんだかなあ。。

ウェアラブルカメラ EX-FR100

f:id:rider_dice:20171106153136j:plain
友人とボードに行き、閉山前の山際のコースを滑っていると見事な夕焼けの景色が。
スマホを取り出し写真撮ってよー。と撮り思い出の一枚となっていたが、そのスキー場の写真コンテストが有ったので応募してみた。
とは言えスマホで撮った適当な写真だし、楽しい思い出でした。と言う事くらいで何も期待していなかったが、ある日メールが着信し入賞の文字が。
その時の景品でいただいたCASIOのEX-FR100

その後、雪山に持っていったが国産ウェアラブルカメラとしてのツボを抑えている機種である。

いいところ

【操作性】
日本人の癖、感性ををよく捉えておりいわゆる海外の製品と違うのは説明書の充実ぶり。読めば痒い所に手が届く。
そして、設定モードのニュアンスが伝わらない物が無い。
前に紹介したSJ4000は翻訳に突っ込んだだけの物なので、日本語が拙い部分がある。
GoProは元々は海外製品の為、あまりマニュアル類が充実していない。この辺の弱点をクリア出来るのは国産メーカーだからの強みだと思う。

【操作性2】
製品はカメラと液晶モニタで分離する事が出来る。合体させればコンデジ代わりとして使う事も出来る。
コンデジが欲しいけど動画も撮りたいと言うどっち付かずで欲しいな。と言うニーズにざっくりと合わせている。
ただし、特化している訳ではないのでコンデジにはコンデジの良さがあり、その機能を全て包括出来ているかと言うとそこまでは厳しい。
あくまでもコンデジのように使える事は出来るものの、本当にコンデジが欲しいのであればコンデジにした方が無難。

液晶側の操作性は固まる事もなく、タッチ感もかなり優れている。サクサク動くし液晶部分とカメラが分離しているので
液晶をポケットに入れておいてカメラを固定したまま設定を変える事が出来る。雪山の場合装備を外すのが億劫な事があるので
カメラは固定したまま、液晶側で全てを完結出来るのは大きなメリットである。

【タッチ液晶】
3インチ液晶で大きい、しかもかなりくっきりと明るく休憩時の再生時でもかなり鮮明に記録を確認する事が出来る。
携帯性も高いので俺はコケない!と言う人の場合、ポケットチャックのストラップに引っ掛けておいても良い。

ダメな所

【タッチ液晶】
実は液晶部分がガラスである。尻もちをついて極度の圧が掛かると無事死亡する事は間違いない。
また、結構重い。なのでハードな動きをしていると落とす可能性が有る。携帯性と言う部分では少し疑問符がつく。

【動画サイズ】
1920×1080 30fps、640×480 30fps、512x384 240fps
極端過ぎる。フルHDは30fpsでも良いが1280サイズでの60fpsは欲しかった。動画を編集時にスピードのある動画の粗さが少し目立つ。
写真サイズは4000x3000、2560x1920とスマホより高性能なカメラとして使う事が出来る。

【アタッチメント】
CASIO独自の規格の為、合う合わないがかなり出てくる。それも特殊な形をしているので純正品で対応出来ない場合にどうするか。
と言う事をDIYできれば問題無いが、GoProのようなとりあえずAmazonで売ってるなら大丈夫っしょ。ってのが出来ない。
量販店に居るCASIOの方に質問した方が無難。

【バッテリー】
カメラ、液晶と2台の充電が必要になる。
最終的には液晶は不要であればカメラ側で操作する事が出来るので問題にはならない。
要領が大きめなバッテリーを携帯しておいて休憩時に2口を使って充電すれば午前、午後と使う事は可能。

結局どうよ?

「国産」入門機として使うにはとても良い。ただし中国製のGoProもどきに比べて値段が格段に高くなる。
その分、サポートも充実しているし何よりも日本語で対応してくれるので安心して使う事が出来る。
・箱から取り出したら使える
・サクサク動く
・タフ設計
この辺が保証されているからこそ、すぐに連れ出す事が出来るしコンデジ代わりとして使うことも出来る。
国内だとCASIOとSONYPanasonicウェアラブルカメラが代表的だが、あまり売れないから。と言うだけで終わらせてほしくない。
日本製だからこそ出来る強みを武器にGoPro一択の世界を塗り替えるプロダクトが出る事を切に願う。

個人的にはコンデジ代わりに使う事が多く、スマホをなるべくウェアのポケットから出したくないので重宝している。

ウェアラブルカメラ SJCAM SJ4000

雪山に復帰して数年、復帰したキッカケはウェアラブルカメラ(SONY HDS-AS200V)をバイクに付けたい!とバイクに付けたは良いが他に使い方はないか。
と言う使い方をyoutubeで模索していた時にふと見かけたスノボ動画。
もともと学生時代から映像を記録する事が好きで、当時じゃま~るとかその辺で見かけた中古のSONYのパスポートサイズのCMが印象的だったDCR-PC7を買って雪山に持っていた事を思い出して雪山行くか!
と本格復帰したのがキッカケ。

今回ちょっと大きめの収入が有ったので、HDR-AS200Vのバッテリーの減りがやや気になり始めたのでGoPro HERO6を買ったので持ってるウェアラブルカメラを自分なりにまとめようかと思う。
んで第一弾、雪山復帰してから雪山たーのしー!とやっていると古い友人が面白そうだから俺も混ぜてってな事で、友人が買ったモノと同じモノが欲しくなり手を出した。

いいところ

【値段】
1万円でお釣りが来る。それも元々GoProを模倣して作ったモノなので世にあふれる旧GoPro用のキットが大体使える。
専用のアタッチメントや自撮り棒と言った装備品が充実している。まず使ってみたいと言う入門機としては文句がない。

【1080】
動画の解像度の選択が1920×1080 30fps、1280×720 60fps、848×480 60fps、640×480 60fpsと選べる。
流石にフルHDだと30fpsになってしまうが、サイズを落とせば60fps対応は出来る。
ただ、この値段のスペックでフルHD60fpsを考えるならもう少し値段が高いモノにした方が間違いはない。
あくまでも入門機なので安定して使う事を標準と考えておいた方が良い。

ダメな所

【正規品?】
元々GoProの模倣品であるにもかかわらず、このSJCAMのパチモノもあるらしく正規品チェックをWebで行う必要がある。
本当にパチモノがあるかどうかは定かではないが、格好いいホログラムのスカシを照合させ正規品です。と言う認証を得る事が出来る。

【堅い】
とにかくハウジングキットの防水と言う概念がガチガチに固めて水を入れないように出来る限り努力する。と言う機構等でのフォローはない。
なので水が入る時は入る。そしてロックするとガッチガチに固める為ロックが開かない。
雪山でメディア交換したい時等に難儀する。10円玉を用意しておくべき。

【コーデック】
ソフトウェア部分はあまり期待できない。動画はMOV形式H264で保存される。
windows標準のムービーメーカーで編集すると画素が見事に潰れる。

結局どうよ

映像に関して言うとやや暖色が強い。
特に雪山で日差しと影のあるゲレンデだと日差しの黃色が強く影となる部分がかなり暗くなってしまう。感度は個体差があるようにも感じられるが
雪山のナイターでも照明の近くと少し遠ざかった時の色の発色の仕方にムラがある。

2016年の年末に購入した時の値段がAmazonで10000円弱、防水ハウジングキット同梱で出してそのまま使えると言う手軽さ。
とりあえずウェアラブルカメラを使ってみたい!でもGoPro高い!って言う人にオススメ出来る。
モノの作りが一つ一つがやや雑ではあるものの、ヘッドマウント用やスキーブーツに固定するハーネスまで入っている。
この手の安いウェアラブルカメラが雨後の筍のように乱立しているが故にGoProはハウジングキットを含めボディに包括してしまったように思える。
本家が方向転換を行わざるを得ないくらい、この手のGoPro模倣品が多い。
ただ「パクリ」では終わらないコスパの高さ、そして機能面でも使いづらいと思わせないだけのクオリティになっている。

最初から高い投資して使わなくなるかもしれないし。。と言う不安が有るならば、SJ4000と言う選択肢はアリだと個人的に思う。

ただ個人的にこの手の模倣品の呼称である「アクションカメラ」と言う言い方は、若い頃にコンビニに置いてあった雑誌を思い出すのでなんだかなーとは思う。f:id:rider_dice:20171102184140j:plain

SJ4000