座る姿勢ってほんと大事(集中する前に正しておこう)
ちなみに自分が手(というか首)をおかしくしてしまったのは30代くらいにこういう体勢で仕事をしていたからです。。
— ヤマモ卜ヒ口ユキ (Hiroyuki Yamamoto) (@yam_owl) March 2, 2019
机の下の下の荷物を避けるために椅子の上に胡坐をかいて上半身を極端な猫背にして仕事していました。 これやってる若い人がいたら後からヤバくなるのでやめたほうがいいですよ!。 pic.twitter.com/toM0iSqgMc
ちなみに自分が手(というか首)をおかしくしてしまったのは30代くらいにこういう体勢で仕事をしていたからです。。
— ヤマモ卜ヒ口ユキ (Hiroyuki Yamamoto) (@yam_owl) March 2, 2019
机の下の下の荷物を避けるために椅子の上に胡坐をかいて上半身を極端な猫背にして仕事していました。 これやってる若い人がいたら後からヤバくなるのでやめたほうがいいですよ!。 pic.twitter.com/toM0iSqgMc
今の自転車に乗り始めてから3年、その間に2回ライトを買いました。いずれも充電式。充電式は電池を入れる手間がなくコストが安く抑えられる……と思っていたんですが、
昼働いている仕事は「出勤してタスクをこなす」という形態なのですが、出勤時間や出勤日は僕が自由に決められる上、細かい業務指示というようなものもほとんどなく、雇用契約にも委託契約にも出来るような内容になっています。今のところは会社にデスクがあるしパソコンの貸与も受けているので雇用契約だろうねということでそうしていますが、少し準備をするだけで委託契約に切り替えることも出来ます。
「お前ほんとにWebデザインやってたのか」と言われかねない(多分言われる)ようなことですが、仕事・プライベート通じて初めてWordPressをカスタマイズしています。いや昔一度、自社サイトのCMSフレームワークとしてWordPressを使おうとして触ったことはあったんですけど、当時はまだ複数ブログを扱うには不安定なオープンソース版を入れないといけないような時代、つまりごく初期のWordPressで今とは似ても似つかわしくない状態でした。今のWordPressはほんとWebの知識があまりない人でも触りやすく、カスタマイズしやすい良いプロダクトになりましたね。プライベートで使ってるのが古いMovableTypeだから余計に思うのかも知れませんけれども。
昨年11月に始めた現行サイトのサーバーアップデートとそれに伴うサイト移行プロジェクトですが、4ヶ月経った現在でもまだ移行出来る目途が立ってません。長い間に積もったものを一気に変えようとしているせいもあるし、課金をなるべく減らすべくローカルで作業しながら準備をしているせいで、作業は進んでも目に見える結果は何一つ出ていないというせいもあります。そもそも無い時間を縫って作業しているし。
記録されたエラーは下記の通り。
"message": "Uncaught SyntaxError: Unexpected end of input",
"file": "",
"lineNo": 1,
"colNo": 158,
"stack": "SyntaxError: Unexpected end of input",
"user_agent": "Mozilla/5.0 (Linux; Android 7.1.1; OPPO A79; Build/N6F26Q; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.92 Mobile Safari/537.36 SogouMSE,SogouMobileBrowser/5.6.0"
このエラーは一般的にはコーディングのミスで発生するものです。例えば閉じ括弧を付け忘れたとか。
Uncaught SyntaxError: Unexpected end of inputというエラー
でもこのエラーは長く安定して動いている(はずの)スクリプトで生じていて、十分にチェックしてもそのての文法ミスは見つかりません。しかも毎回記録されるわけではなく、何か特定の条件が重なったときにだけ記録されるようです。もし閉じ括弧の付け忘れなら、毎回エラーが記録されるはず。
致命的な問題にはなっていなさそうだけれど、気持ち悪いので調査を続けたところこんな情報が。
なるほど。 ChromeのJSON.parse()に空文字を入れるとエラーになると。エラーログからでは具体的にどのJavaScriptファイルでエラーが出ているのかわからないし、そもそも1行目のエラーとなっていて問題の特定が難しかったけれど、幸いサイト内で「JSON.parse()」を使っている部分は限られていたので、そこを改修。 もともと発生頻度の低いエラーなのでこれで効果があるかどうかは不明だが、しばらく様子を見たいと思います。 ちなみに僕が見た環境での「JSON.parse()」は、こんな感じで使われていました。analog_MultiMeter: JSON.parseでハマった
原因 ChromeのJSON.parseは、空文字が入るとおかしなことになるらしい。 JSでは空文字列はfalse性を持つので、上記の対策で通るという事。 そのエラー発生は良いとしても、JSON.parse()のエラーでなくてEnd of Inputなんてわかりづらいエラー、それもHTMLの1行目なんかに出るのが悲しい。
function (error) {
var obj_error = JSON.parse(error);
}
どこかで生じたエラーをキャッチしてエラー処理を行う的な感じの部分。errorはエラーメッセージを格納するようでPHPとの連携がある部分なんですが、コードを追っていくとどうやら、一部の古いコードで例外は投げるがエラーメッセージは投げない、という処理がなされている模様。それがJavaScript側に渡され、空のerrorが作られ、それを JSON.parse() しようとしてエラーが出る……みたいな流れ。
そう考えると悪いのはPHPのコードの方なんじゃないのという気もしないでもないけど、だとしても空文字に対する処理は必要だし。とりあえず解決したっぽくて良かった。