サイト移行プロジェクトの現状【#np2020】
昨年11月に始めた現行サイトのサーバーアップデートとそれに伴うサイト移行プロジェクトですが、4ヶ月経った現在でもまだ移行出来る目途が立ってません。長い間に積もったものを一気に変えようとしているせいもあるし、課金をなるべく減らすべくローカルで作業しながら準備をしているせいで、作業は進んでも目に見える結果は何一つ出ていないというせいもあります。そもそも無い時間を縫って作業しているし。
昨年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のコードの方なんじゃないのという気もしないでもないけど、だとしても空文字に対する処理は必要だし。とりあえず解決したっぽくて良かった。
本業である飲食業(正確に言うと本業は個人事業主でありイベント出店やケータリング、個人で請け負うWeb制作なので、飲食業は「メインの副業」)の収入が減り続けて生活が苦しいので、かつて働いていた会社にエンジニアとして復帰しました。そこでは自分の裁量で働く時間が決められるので、余裕がある月は多めにシフトインするなどした結果、本業を補うほどの収入になってなんとか生活を立て直すことが出来ました。あのまま飲食業で収入を作っていたら、破産するところだった。危ない。 とはいえ今でも状況が改善すれば飲食業に週5日フルで入る気はあり、実際繁忙期にはかなりの頻度で入っていて本業であることは変わっていないので、収入が少し減ってからも引き続き源泉徴収は甲だし、社会保険にも入れてもらっています。ただねえ、一時的とはいえ少し増えた収入で支払う源泉徴収(乙)がすごいツラい。一般的には乙に該当する収入は少なく、それ以上に甲に該当する収入があるはずだということになるので、乙の源泉徴収額が多いことは理に適っているし、仮に多く払いすぎたとしても確定申告すれば戻ってくる話なので良いのだけど、ただ月の収入がそれで削られるのが。 具体的な僕の収入は出せないのであくまで例示ですが、例えば月の総支給額が10万円で社会保険等にも入っていなかった場合、源泉徴収税額票(平成31年分)では扶養家族0人の甲が720円なのに対し、乙は2,880円。この差は額が大きくなればなるほど大きくなって、20万円の場合は甲が4,770円で乙が20,900円、30万円の場合は甲が8,420円で乙が52,900円。
課税対象 | 甲 | 乙 | 差額 |
---|---|---|---|
10万円 | 720円 | 3,600円 | 2,880円 |
15万円 | 2,980円 | 8,700円 | 5,720円 |
20万円 | 4,770円 | 20,900円 | 16,130円 |
25万円 | 6,530円 | 36,400円 | 29,870円 |
30万円 | 8,420円 | 52,900円 | 44,480円 |
早い人は先週ぐらいから来始めてたと思うんですが、僕も今週に入って急に来ました。2/24(日)はまだ大丈夫だったんですが、翌日2/25(月)はもうだいぶツラくて、少し高めの良いマスクと、去年なかなか良かった花粉防護用のミスト買いました。この2つがあれば移動中に大量に花粉を摂取することはなくなりますが、だからといって症状が出ないというわけでも無く、今朝も朝からくしゃみと鼻水が止まらず大変難儀しています。まだ電気ストーブ出しているし両方出すのもなあと思って空気清浄機を出し渋っていたんですが、mouseに腹は代えられない。というか、花粉対策は何よりも優先する。布団干さないと健康に悪いよ?知ったことか!というか知ってるけど仕方ないんだよ!(ほんとは僕だって春の暖かな陽射しに布団を干したいんだよ……) 職場は空気清浄機が効いていて割と楽なんですけど、社員の出勤時間が集中している時間帯(僕の会社は業務によって8時半出勤から13時出勤まである)や昼休みなどはやっぱりツラい。しかも今年は確か花粉多いんですよね。ここ何年かは少なめで比較的楽な年が続いていたので、戦々恐々としています。まあ毎年「去年より多い」って言われてる気がしますが。 ああ、今年も春が来てしまったのね……
先日近くのスーパーに貼ってあった確定申告のお知らせ(近所の税務署が作成したものと思われる)の片隅にこんな記事が載ってました。
「平成31年1月からマイナンバーカード方式に加えID・パスワード方式の利用が開始されます!」 「電子証明書・ICカードリーダライタ不要」 「ID・パスワードの発行を希望される方は、運転免許証などの身元確認書類をお持ちの上、お近くの税務署にお越しください。」まじか。クソ面倒くさい手続きで他に使い道のない(最近コンビニで住民票取れるようになったけど)マイナンバーカード取得して、ICカードリーダライタ買って、クソ使い勝手の悪いソフト連携させて確定申告してるのにそれ要らなくなるのか。なんだそれは。 いちおう小さく、
「暫定的な対応であるため、お早めにマイナンバーカードの取得をお願いします。」って書いてあるけど「ID・パスワード方式」なんて始めちゃって今さら誰がマイナンバーカードなんか取得するって言うんだ……取得しなくて良いならそれでいいじゃんてなるよね。 国税庁の詳しい解説サイトはこちら: ID・パスワード方式とは:平成30年分 確定申告特集