だ。ログ。

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

preg_splitのセパレート分割

データベース上の1つのカラムに複数のデータを格納する場合、開発のお作法とかもあるがセパレートを入れて分割させる事がある。
代表的な所で言うと縦棒(|)なんかが代表的。
この縦棒、preg_splitで分割する際に無意識に

	$arr_split = preg_split("/|/",$hogehoge);

と書いてしまうと、文字列全てを分割してしまい正しく配列に入らない。

	$arr_split = preg_split("/\|/",$hogehoge);

セパレート文字列にエスケープを入れること。毎回失念して色んなサイトを回って「ああそうだった」ってなるのでメモ。

jQueryで入力のみ不可にしたい。

jQuery-uiのカレンダーを使うと、その場ではああ。そうそう。と毎回思うけど忘れるのでメモ。

テキストボックスをクリックする→カレンダーが表示される→日付を選択する→選択された日付がテキストボックスに表示される。

と言う基本的な流れはjQuery-ui使えば簡単に出来るけど、文字列をそのまま入力されてしまい定型文で送られてこないと入力チェックを作るのが面倒。
だから入力出来ないようにしたい。

誤)

$(function(){
	$("#hogehoge").attr("enabled",false);
});

これだとクリックすら検知しなくなる。

正)

$(function(){
	$("#hogehoge").attr("readonly",false);
});

これだとクリック検知は問題なし。キー入力のみ不可と出来る。

EC-CUBEで人に依存した文字列の文字化けを解消する

テストをしていて、ある人から文字化けしてしまい文字列が数値文字参照になってしまっている。と言う指摘が有るので調査。
スマホやPCではなく人に依存した文字化けで、同一の環境を容易しても数値文字参照になってしまっている人とそうでない人が発生している。

文字コードやシステム側に悪そうな所は見つからない。
強いて言えば、エラーが出てしまっている部分がjsのプルダウンをクリックした際のダイアログで気付いたとの事。
ソースを見ると全部の2バイト文字が数値参照になってしまっているのが引っ掛かる。

結果として、参照しているセッションのファイルが壊れていること。
ちゃんとした調査はしていないものの、サーバーの負荷を測る為に自分がABコマンドを使いサーバーに過度な負荷を掛けている裏で
テストをしてもらっていた人がEC-CUBEにアクセスした際にエラーとしてログに書き込まれた

/app/log/front_site_yyyy-mm-dd.log

[ShoppingController:index:xxx] - カートが存在しません   [GET, /shopping, 1.2.3.4, https://hogehoge.com/cart, Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G48C)

上記の「カートが存在しません」
と言う部分に注視、カーネル部分まで確認しているワケではないのであくまでも自分の予測だが
1. EC-CUBEにアクセスする
2. カートセッションをサーバーに作成する
3. 作成したセッションをアクセスしたブラウザに保存する
4. ページが表示される

と言う流れでカートが作成されるが、この2が出来上がる前にカートに商品を入れてしまい、結果としてカートだけではなく全てのセッションとキャッシュが中途半端に出来上がった状態のままでアクセスした人にキャッシュが紐付いてしまい、結果エラーが起きたのではないかと推測。
/app/cache/ 内のファイルを全削除し、もう一度テストしてもらうと数値文字参照は回避され、2バイト文字が正しく表示されている事を確認。

多分安いレンタルサーバー等のレスポンスの遅いサーバーを使っているとこの問題は顕著に出てくる気がする。

誰のための転職か

この所、自分の知人が○☓に転職したとか違う業界に飛び込んだとか聴く。
それと若い子達が辞めたい、俺はこんな業界でこんな仕事する為に入社したんじゃないんだ!と言う入社後のギャップに悩む声も聞こえてくる。

若い頃は同じような考えで辞めたい、サボりたいと思うと理由付けをしていかにして合理的に会社を辞めてやろうか。
そして、もっともっとラクな会社に行ってやろうか。と言う事をよく妄想してきた。
人売全盛の時代、営業と言う名の炎上現場に金勘定した上で放り込む「営業」様が跳梁跋扈していた時代。
多重派遣SIerしか門戸が無く、放り込まれた闇の中から見える楽しげな午後のカフェの笑顔に自分の選択失敗に何度嘆いた事か。

と言う訳で、人を売る営業と言うモノを信頼していないし、そのテの人間と転職の際に何度もやりあった。
まだエージェントと言う形んであればこちらからお願いしますと言う形だったが、中には人の勤務先をどこぞで聞きつけ勤務先に電話をしてくる営業まで居るご時世。
それだけエンジニアと言う人間は売れれば単価が高い事が伺える。

あくまでも偏見でしかない。
そしていつもの通り、ファンタジー。創作である。それだけは前置きとして書いておく。

転職エージェントとは

歪んだ見方しか出来なくなってしまっているが、結局は人を企業に売ってお金を儲けると言うビジネスモデルが確立している。
2000年代中盤くらいから盛んになった。それまではWebでの求人はあったものの、丁寧に転職のイロハを教えノウハウを公開しオススメの企業様への紹介と言うサービスはなかった。
(寧ろ自分が箸にも棒にもかからないレベルのお粗末な人間であった事が一番の問題だが)

大手の中に潜む個別エージェント会社

大手エージェント会社に登録すると、まずこぞってスカウトが入るのが企業からではなく、転職紹介会社だ。
転職希望をしている=転職意思が有る。となれば金になる。
前回の自分の転職開始日に送られてきたスカウトは13通、全部転職エージェントからだった。
この数字から見ても、転職者は「カネ」になる生き物だと言う事がよく解る。
しかもプラットフォームを展開している会社がそれを認めていると言う事は、結局のところは手数料なりを払ってでも活動が出来る土壌があるのであろう。
ただ、ハッキリ言ってこの手のエージェントが勧めてくる企業は通年募集している企業だ。
そもそもその転職サイトに求人情報が載っている。しかし求人情報からではなく転職エージェントが餌を付けてウチで是非どうですか?!と言うスカウトを熱心に掛けてくる。

お目当ては埋まってしまいますよ!!

甘い言葉に誘われてエージェントと会う約束をする。事細かにメールでのヒヤリング、また職務経歴書や履歴書のチェックとアドバイス
その経歴や履歴書からあなたにピッタリの企業様も複数当日はご紹介させていただければ。あなたのスキルであれば引く手数多!このスキルセットで今の現状にとどまるのは勿体無いですよ!
今こそ転職のチャンスです、給料も待遇も大幅アップ間違い無しです!

出来る限りのヨイショと自分は有能で転職チャンスである事を刷り込まれはじめる。
ウキウキしながらエージェント面会日を迎えることとなる。

個別エージェントだと高級ホテルのカフェ、大手エージェントだとターミナル駅の近くにある自社ビルに通される。
まず適当な挨拶と今までの経緯を説明する。どんな会社で働いているか、将来どうなりたいか。30過ぎたオッサンが将来を語る。
それに全力で同意してくれる。自分のネガティブな部分を含めて、うんうんわかります。うわーひどいですねー。
どんなネガティブな事を言ってもその場は許されるのである。

そして本題、最初にこれなら話を聞きに行きたいな。と思われる紹介案件の説明、そして他の企業の紹介がはじまる。
有能と誤認している自分は、アレも良いコレも良いと目移りする。
大半は悩むと「とりあえずお話を聴くだけでもかなり違うとおもいますよ!」とか
「ここは残業が殆ど無いので、多分ちょっと暇くらいだったような」とか、甘い言葉からハッピーな毎日を連想させる。
ただ、自分が望んでいる第一希望に関してのみをOKして後は少し考えさせてもらえないですかね?と切り出す。
みるみるエージェントの笑顔が消える。

・今この時期を逃すとA社は人気だから求人を締め切ってしまうかも
・既に担当している人の中でも数人は二次選考に進んでいて、多分決まってしまう。しかし今なら人が足りてないから選考に残れる可能性は高い
・これだけスキルマッチしている会社も稀、勿体無い

焦燥感を煽る言葉を連発してくる。
最後の押しの一手は「迷ってるくらいなら、一度行って見てきた方が絶対良いですよ!面接の感覚を掴むために!」
プッシュプッシュの押し相撲。
この時点で「複数社受けなければならない」と言うよく分からない概念が出来上がっている。
その概念から出された選択肢が全てと勘違いをする。他に吟味する余裕もなく今ある選択肢から選ぶ事に目が行ってしまっている。
結局イエスを選択すると、1日の有給を使用すると共に午前中2社、午後多ければ3社程の面接を詰め込まれる事となる。

嫌われたくない

面接をすると転職の意思、今回の感想、そして自分の手応え等を事細かにメールで伝えなくてはならない。
疲れ果てて帰ってきても一息付く暇もない。
とにかく受けた会社の印象、どうだったか、どんな質問をされたか。次の人に繋ぐ為のノウハウとしてのデータであろう。
ただ、ここで「まだまだお世話になるなあ」と言う義理から、帰ってきて食べる事も後回しにして面接の情報を事細かに書き連ね担当者にメールする。
朝10時に家を出て、一息付いたのは午後10時を回っている。

・・・あれ、俺の有給ってなんだっけ?

そう思い疲れ果てた頭で考えるも、床につく。

ハッキリ言える事は、人間としてお世話になった義理。
これは忘れてはならない、ただしその義理の為に有給を使い交通費を使い面接すべきだったか。と言う事だ。
本命1社受けるのに、興味があまり沸かないがとりあえずと推された会社に足を運ぶ。
とりあえず格好つける事と好印象を与えないと企業から担当者に連絡が入り、今後不利になるのではないか?
結局の所、具体的に何がしたい訳でもなく必死で考えた職務経歴書と履歴書を擦り、面接対策をし、ホームページ等でサービスを確認して質問を考える。
義理だったハズがいつの間にか必死になっている。

結局、自分の愚痴を聞いてくれて言う事全てを肯定してくれた人だから嫌われたくない。
転職で不利になりたくない。と考えているのである。

それでもプッシュ!押しの一手

週多ければ3回、少なくとも1回はアプリやメールを使っての連絡を入れてくる。
今回の改善点、いまこんな企業さんがアツい、他の転職成功者の成功体験談、メールマガジン
ありとあらゆる成功体験の共有から、自分もこうなるんだ!と言う期待感ばかりに支配される。
そして頂いたメールから次を次をと転職面接を繰り返すのである。

そもそも転職って誰がするのか。

ここを自分は落とし所としている。
結局の所、人売派遣時代に無数に体験した
営業 >>>>>>>>>>>>>>>>>>>>>>>>>>>>> エンジニア

お前らを売ってやるのは俺様達だ、お前は俺が忙しい時間を割いて売ってやろうとしてるんだ。くちごたえするな。
初対面なのに何度となく横柄な態度を取られた、そして見事炎上案件に放り込まれた後に話と違うと連絡すると、もうアカの他人。
ああ。そうなんですか。大変ですねー頑張ってください。
そして会社にアイツは根性が無いと言うクレームが入り、こっぴどく叱られる。

結局、自分自身がどうなりたいかと言う事よりも嫌われたくない、怒られたくない。
自分が不利になる事よりも人の機嫌を損ねたくない。人の顔色を伺ってしまって、自分が思う事や達成したい事の優先順位はどんどんと落ちている。

そこで譲歩をしてしまうと、結局自分が働き始めて「…あれ、俺待遇悪くなってね?」と気付き、担当者に連絡しても
「あとはがんばってください」と突っぱねられる。紹介金が払われた人間は、賢者モードのように冷めている。

そりゃそうだ。もう新しく売り込む人間を何人も確保して、自分が受けたサービスを他人は受けている。
そう考えると夜中だろうが朝だろうが連絡してきていた担当者だ、もう売れてしまった人間に興味はない。

あなたが必要です!と企業に言われ、ここならそのスキルを発揮してすぐに大活躍出来ます!と担当者からヨイショされ、勘違いした挙句
「じゃあ転職しちゃおうかなー」と言う謎の上から目線で転職したは良いけどブラック企業でござるの巻
と言う典型的な転職失敗は、自分が受けたサービス分のお礼を返さねば。と言う義理と勘違いだと感じる。

横柄な態度やサービスを受ける側なんだからサービスしろや。と言う態度は違う。
ただ、転職をする張本人は自分である。
聞きづらいかなあ。とか、これ聴かれたドン引きされるかなあ。と思って言わないままにしておくと結局は自分に最後はしっぺ返しが来る。
多少ツラの皮が厚いくらいに興味の有る事やリスクを自分から聞いていかないと良い事しか吹き込まれない。
結局は本音が出て来るまでに時間が掛かるのだ、その本音が見えないままに時間と金を消費し、最悪転職先は決まらない。
焦って決めた会社に決めてしまい、また転職活動をする。

転職をするのはあくまでも自分。
そのプラットフォームが全てではない、嫌なら拒否の意思を示すべきだし、納得いかなければサービスごと変えてしまう事も出来る。
なにもそのサービスが全てではない。競合他社が居るから転職者に対して必死にアプローチしてくる。
そして転職者はカネになる。
カネになる商品として、自分がどうなりたいか。それを忘れてしまうと自分自身が損をしてしまう。

と言うファンタジー。

また行ってきた神宮

今年のベイスターズ神宮球場での試合が終わった。
8月も後半に差し掛かり、3位と言う順位が今後どのようになるのか。と言う事が非常に気になる。
この時点で若手のホープがお試しスタメンで入らないと言う事が、おっさんファンには本当に嬉しい。

6月に神宮球場に遊びに行った時に、その球場メシの旨さに驚嘆した。
今度は夏に行きたい行きたいと思い7月のスワチケ無料会員で購入。

前売り売切れ!?

実は金曜日にTwitterのベイクラスタの人が行こうとチケットを見ると、この三連戦チケット無い!!となり、あの神宮がとうとう三塁側満席に!と話題になった。
ただ、自分が購入した7月の段階では角席以外であれば好きに選べる状況であった。
応援団が近いRブロックの上段側にした。下段側の指定は正直狭い。背もたれがあるが、平均的な体型の人がすり抜けるのに苦労する。
横浜スタジアムではそんなにないが、神宮だと守備になる毎に席を立つ人が居るのでなるべく通路挟んで上側の席の方が楽である。

久々の神宮

18時プレイボールなので16時過ぎに神宮外苑に到着、蝉しぐれの中外苑向かいのセブンイレブンで水分を購入。
毎回毎回忘れるが、ここの飲料には炭酸水が無い。
f:id:rider_dice:20170829224709j:plain
f:id:rider_dice:20170829224702j:plainf:id:rider_dice:20170829224717j:plain
到着後、いつものようにソーセージ盛りを買う。今回はまだ早い時間と言う事もあり行列はなくそのままスッと買う事が出来た。
今回もメガ盛り、それと売り子さんからビールを購入。
f:id:rider_dice:20170829224624j:plainf:id:rider_dice:20170829224631j:plainf:id:rider_dice:20170829224637j:plainf:id:rider_dice:20170829224724j:plain
その後食事を終え、ライト側のスワローズグッズ販売へ。前回買ったつば九郎フィギュアを大人買い。これで今年分はコンプリート出来た。
f:id:rider_dice:20170829224536j:plainf:id:rider_dice:20170829224617j:plain

試合中

前回の記事でも書いた通り、前の方の席は太鼓の音が取りづらい、もしくは半拍くらい送れる。
そして声が散らばってしまいハマスタの声量のような威圧感は感じられない。
それと神宮だからかどうかは解らないが、独自の振り付けで踊る。応援歌に謎の合いの手を入れて大声で歌う集団が多い。
応援団が「◯◯コール!」 → 奇声でアアアアアイと叫ぶ(これはハマスタでも耳にするが)
とにかくガラが余りよろしくない。
もう少しライト側の席ではベイスターズファン同士がいざこざもあった。

試合

石田投手の出来がいまいち。前回神宮ではズバズバと三振を取っていたが今回は狙い打たれる。
特に坂口選手に打たれまくり、あと一本が出ず悔しい敗北。

神宮どうよ?

横浜からそう遠くない、横浜→東京→御茶ノ水信濃町 もしくは 横浜→新橋→外苑前と言うルートを選択すれば1時間もあれば到着する。
そして何よりも他の球場にはないフードの充実ぶり、ソーセージ盛りばかり食べているが実はやきそばやポテト、鶏の鉄板焼きもレベルが高い。
ただし、センターの売店で売っている東京ラーメン、テメーはダメだ。味が無い湯に麺が入っているだけ。近所のホープ軒で食べた方が良いかと。
アクセスの良さ、フードのレベルの高さ、そして外野スタンドの上段であれば一つ一つの席が少し広い。
野球を知らない、興味が無い人でも野球観戦の醍醐味を楽しむ事が出来るスタジアムだと個人的に思う。
#ただ数年前のように「あー今日行こうかな」とフラっと訪れ、外野の好きな席に腰掛けて好き勝手に食べて飲んで。と言う時代からは変わってしまった。

次はまた暖かくなってきたデーゲームの神宮になるのか。
今シーズンも残り僅か、結末が今から待ち遠しい。そして来年の神宮が今から楽しみである。
f:id:rider_dice:20170829224544j:plainf:id:rider_dice:20170829224558j:plain

ドラクエ11クリア

兼ねてからプレイしていたドラクエ11をクリア。
多分、ナンバリングタイトルを発売日に購入してクリアしたのはSFCドラクエ5以来となる。
その後はDSでやったりはしていたけど、結局は続かない。MMOを長くやってた時期があったり、他の事に興味が有ったと言えばそれまでだが
その根底には、その当時プレイしていたMMOサイコー!病で、他はつまらない!と言う偏見を持ってしまったが故と言う事も大きい。
発売から1ヶ月、最初はスプラトゥーン2をプレイしはじめていた事もあり、イカの息抜きでやってくかなー。位であったがいつのまにかSwitchの稼働はこの1ヶ月で数時間のみだった。

ネットでの共感

ネットでの評価を見た時に凄く共感出来た言葉で

「誰がやってもドラクエであり、ドラクエ以上な事はないしドラクエ以下の事もない」
「スーパープレイや天才的なひらめきはなく、続ければ誰でも平等にプレイ出来る」

と言う二つの言葉にプレイ空から共感出来た。

ここ数年でちゃんとプレイしたコンシューマゲームは何かと思い出してみる。

ロロナのアトリエ
トトリのアトリエ
メルルのアトリエ
超次元ゲイム ネプテューヌmk2
ダークソウル2
ダークソウル3
ロリポップチェーンソー

おうおうにして、コマンドゲームがメインである。アトリエ系もやり方さえ覚えてしまえば、あとはどう効率を出すかと言う事への考え方のシフトが出来てしまう。
個人的にはトトリのエンディングを全て見るのにかなり時間を費やした時間もある。
ただ、この時期で考えると、間にPSO2(現在もプレイ中)やBF4など、ネットゲームが主軸でありコンシューマゲームは買ってちょっと遊んで終わりと言う事が多かった。
長くても2,3時間プレイしてまた気が向いたら。が出来るゲームが大半を占めている。

オッサンゲーマー

ファミコンドラクエからプレイはしているものの、ちゃんとクリア出来たのは3から。
2:近所のゲーマーのお兄さんからもらった復活の呪文を入れて脳筋アタックをして運良くアトラス→バズズ→ベリアルを倒しハーゴン→シドーも言わば攻撃パターンの弱い所を引いての勝利だった事を思い出す。
3:最強戦士の作り方を聞き、僧侶→魔法使い→戦士が二人、運良くドロップした悟りの書で賢者2人が居た事もあり、やたらレベリングが出来ていてクリアは容易だった。
4:バランスが良く小学生の自分でもクリアはそこまで難しくなかった。ライアン、勇者、アリーナ、クリフトと言うこれまた脳筋PTだった。
5:はぐれメタルレベリングを覚えて楽々クリア

その時代から約20年、結局はドラクエは上記の2~5なイメージが強い。
酒が入れば「当時のドラクエはさ~」と無駄に多いエンカウントを懐かしみ、文脈からドット絵の表情を思い浮かべていた事を毎回語る。
今回のPS4のグラフィックを最初見た時に、ビルダーズをやっていた事もあるが、360度上向いても下向いてもドラクエの世界が有るのはすげえなーと感嘆した。

のめりこむ

過去の作品のオマージュが多い。
小ネタだが、おお懐かしいなこの台詞!と思う事が多い。辛酸をなめた過去作品を思い出しながら
ああ、そうそうこう言う事あったっけな~と思いプレイを続ける、気付くと先に進んでいる。でももうちょっとやろうかなー。これが続く。
子供の頃、親に怒られながら続けていた頃の懐かしい感覚を覚える。辞めなきゃ辞めなきゃと思いながらも先へ先へを求める。
でも過去作品を知らないからネタについていけないと言う事はない。
あくまでも今作は今作、ストーリー上にふと緩急で言う緩い笑い部分なので、話を聞いていれば違和感はない。

結局どうなのよ

プレイ時間52時間弱、勇者のレベルは89で初回クリアした。
レベリングとドロップに恵まれた事もあったが、広がった伏線をしっかり回収出来る。
いわゆる「何処に行けば良いかわかんねーよ」と言うことはない。なかまが居て自分が居て、目の前に道筋が必ずある。
この辺をいわゆる洋ゲー、洋RPGに慣れてしまっていると子供っぽいとかストーリーが幼稚と感じる人も居る。
ただ、我々おっさんゲーマーからすればこの塩梅、この単純明快さがRPGと言う意識がある。
水戸黄門の勧善懲悪、単純明快さが心地良い年齢に差し掛かってきた。
難しい戦闘システム、奥深い戦略性も楽しい。ただ、誰もが進む道標が明確でクリア出来ない難易度ではなく続ければ必ず理解しクリア出来る。
この絶妙さが本当に素晴らしいと思う。
この頃、ネトゲスマホゲーを続けていると「クリア」と言う線引が自分の中でのモノになってしまっている。
ドラクエに関して言えば、終盤に差し掛かると「もう少しでクリア」と言う意識が自分の中で芽生えてくる。
いまフィールドを歩き団結している仲間ともあと少しと言う一抹の寂しさに襲われながらも、先に進める。
もうこのメンバーで進む事はあとすこし、その焦燥感に近い感覚すら楽しむ事が出来た。
久々に日本製RPGの楽しさを再認識する事が出来た。ホントに楽しい50時間8000円の旅だったなと振り返っておもう。
まだお使いクエストが残っているので、少しづつ進めていきたい。

EC-CUBE3でカートに入った商品のIDを取得する

カートに入った商品別に何かしらのメッセージを出す。または割引する。色んな部分で今カートに入っている商品情報をデータとして取得したい場面は多い。
IDから商品情報を取得するので、カート内に存在する商品IDを取り出す為にはどうするか。

	//変数自体は何でも良いが$cartは使われてる可能性があるのでなるべくユニークな名前にする
	$cart_data = $app['eccube.service.cart']->getCart();
	foreach($cart_data->getCartItems() as $CartItem) {
		$ProductClass = $CartItem->getObject();
		$arr_cart_item_id[] = $ProductClass->getId();
	}

特にアレコレと説明する事ではないが、ShoppingController.phpの場合はカート内に商品が存在するか。と言う既存の判定後に入れる。
$arr_cart_item_idに入ったidを基にdtb_productのidと照会して処理を入れれば良い。

追記

dtb_product_class のIDだからdtb_product_classとdtb_productを結合すること。