JavaScript FetchでのJSON.parseエラーで悩んだ 
2021/02/07 Sun.
JavascriptのfetchでPHPと非同期通信処理を行う仕組みを作ってました。
この仕組み自体は今までも経験あるのですが、今回はどういうわけか、
JSON.parse: unexpected character at line 1 column 1 of the JSON data
というJavascriptのエラーが発生してその原因を探るのに無駄な時間を割いてしまいましたので備忘録。

結論を申しますと、PHPがJSONを書き出す前に余計なテキストを書き出していたのが原因です。
もちろん、真っ先にJSONの書き出しが怪しいと思いました。
それでPHPが書き出すJSONデータをメールで送信して中身を確認したのですが、全く問題が見つからず。
過去に作ったプログラムと比較したりして何が違うかバグ探しをしたけどわからず。
で、やけになってJavascriptのコードの
return response.json();
という箇所を
return response.text();
にして受信内容をconsole.log()で表示してみたらJSONデータの前に余計な文言が書き出されてました。
原因は、外部PHPファイルを読み込んでいるのですが、その読み込むPHPファイルがテスト環境用のもので、その中にテスト用のコメントを書き出す部分が入っていたのが原因でした。
このテスト用PHPファイルをAJAX非同期通信システムで利用するのが初めてだったので、そのようなコメント書き出しがあるなんてことに気が付きませんでした。
理由がわかれば「なんだそんなこと?」ということに限ってなかなかバグが見つからないものです。
とりあえず、非同期処理でJSONデータを受け取るときに
JSON.parse: unexpected character at line 1 column 1 of the JSON data
というエラーが出たときは必ず余計な文字が書き出されているので、それを確認しましょう。
この仕組み自体は今までも経験あるのですが、今回はどういうわけか、
JSON.parse: unexpected character at line 1 column 1 of the JSON data
というJavascriptのエラーが発生してその原因を探るのに無駄な時間を割いてしまいましたので備忘録。

結論を申しますと、PHPがJSONを書き出す前に余計なテキストを書き出していたのが原因です。
もちろん、真っ先にJSONの書き出しが怪しいと思いました。
それでPHPが書き出すJSONデータをメールで送信して中身を確認したのですが、全く問題が見つからず。
過去に作ったプログラムと比較したりして何が違うかバグ探しをしたけどわからず。
で、やけになってJavascriptのコードの
return response.json();
という箇所を
return response.text();
にして受信内容をconsole.log()で表示してみたらJSONデータの前に余計な文言が書き出されてました。
原因は、外部PHPファイルを読み込んでいるのですが、その読み込むPHPファイルがテスト環境用のもので、その中にテスト用のコメントを書き出す部分が入っていたのが原因でした。
このテスト用PHPファイルをAJAX非同期通信システムで利用するのが初めてだったので、そのようなコメント書き出しがあるなんてことに気が付きませんでした。
理由がわかれば「なんだそんなこと?」ということに限ってなかなかバグが見つからないものです。
とりあえず、非同期処理でJSONデータを受け取るときに
JSON.parse: unexpected character at line 1 column 1 of the JSON data
というエラーが出たときは必ず余計な文字が書き出されているので、それを確認しましょう。
category: PHP JavaScript
イチゴの追肥の時期となりました 
2021/02/03 Wed.
毎年恒例のイチゴの追肥時期となりました。
花用の化成肥料を14gずつパラパラと施肥しました。


今年はとても寒いですが、ちっこくて丸くて地べたを這う冬専用葉っぱで寒さに耐えながら力を溜めているイチゴが健気でかわいい。
と、追肥して気が付きましたが花が咲いてました。
この時期の花はかわいそうですが摘花しちゃいます。
花用の化成肥料を14gずつパラパラと施肥しました。


今年はとても寒いですが、ちっこくて丸くて地べたを這う冬専用葉っぱで寒さに耐えながら力を溜めているイチゴが健気でかわいい。
と、追肥して気が付きましたが花が咲いてました。
この時期の花はかわいそうですが摘花しちゃいます。
category: イチゴ
Ubuntu、kubutu、xubuntu、lubutnu、Linux Mint MATEを試してみた結果 
2020/12/22 Tue.
kubuntuに落ち着きました。
ちなみにパソコンはCPUがRyzen 5 3600でGPUがGTX 1650、メモリ16GBと、どんなデスクトップ環境だろうが余裕で動かせるマシンのOS選定です。
バージョンは全て20.04LTSです(Linux MINTもたぶん同じ)。
まずはそれぞのOSのデスクトップ外観とライブDVD起動後のtopコマンドでの消費メモリを見てみます。
ちなみにパソコンはCPUがRyzen 5 3600でGPUがGTX 1650、メモリ16GBと、どんなデスクトップ環境だろうが余裕で動かせるマシンのOS選定です。
バージョンは全て20.04LTSです(Linux MINTもたぶん同じ)。
まずはそれぞのOSのデスクトップ外観とライブDVD起動後のtopコマンドでの消費メモリを見てみます。
category: パソコン
SAMBAでLINUXとWINDOWSでファイル共有する設定 
2020/12/20 Sun.
kubuntuでやりましたがubuntuファミリーなら同じだと思います。たぶんLINUX全てで同じだと思う。
※この接続設定はWINDOWSから接続した際にkubuntuのユーザーでログインして、ファイル操作をkubuntuユーザーとして操作する設定内容となります。
※この接続設定はWINDOWSから接続した際にkubuntuのユーザーでログインして、ファイル操作をkubuntuユーザーとして操作する設定内容となります。
category: パソコン
VBAでテキストをファイルに書き出してファイルを消すやり方 
2020/12/12 Sat.
EXCELマクロを組んでいて覚えた備忘録。
まずはファイルの書き出し
'書き出すファイルパス
Dim f_path As String
'オープンしたファイル番号
Dim fp As Integer
f_path = "d:書き出すファイル名.txt"
fp = FreeFile
Open f_path For Output As fp
Print #fp, 書き出す文字列または文字列を格納した変数
Close fp
次にファイルの削除
Kill f_path
これだけ。
注意点はゴミ箱に残らず完全に消去される。
まずはファイルの書き出し
'書き出すファイルパス
Dim f_path As String
'オープンしたファイル番号
Dim fp As Integer
f_path = "d:書き出すファイル名.txt"
fp = FreeFile
Open f_path For Output As fp
Print #fp, 書き出す文字列または文字列を格納した変数
Close fp
次にファイルの削除
Kill f_path
これだけ。
注意点はゴミ箱に残らず完全に消去される。
category: VBA
サフランに花後の追肥を行いました 
2020/12/02 Wed.
今年はサフランがたくさんの花を咲かせてくれました。
本日1本だけ花が出てましたが、さすがにこれが最後でしょう。
とうことで、花後の肥料を施すことにしました。
全ての鉢に花咲く化成肥料を30gずつパラパラと施肥しました。

本日1本だけ花が出てましたが、さすがにこれが最後でしょう。
とうことで、花後の肥料を施すことにしました。
全ての鉢に花咲く化成肥料を30gずつパラパラと施肥しました。

category: サフラン
Lubuntu MuonパッケージマネージャでChromiumを削除できない 
2020/12/02 Wed.
Lubuntu20.04にMuon Package ManagerでChromiumをインストールしたのですが、やっぱり削除しようとMuonパッケージマネージャからアンインストールしようとしたけど消せない。
正確にはMuonパッケージマネージャ上ではアンインストールできているのですが、スタートメニューにはChromiumが残っていて、クリックすると普通に立ち上がる。
この子を削除する方法は以下のようにやると消えました。
$ snap list
これでインストールされているパッケージの名前を確認。
$ sudo snap remove chromium
これで消えました。
linuxにはいくつかのパッケージ管理システムがありますが、Snapというのもその一つのようです。まだこの辺のことよくわかってません。
正確にはMuonパッケージマネージャ上ではアンインストールできているのですが、スタートメニューにはChromiumが残っていて、クリックすると普通に立ち上がる。
この子を削除する方法は以下のようにやると消えました。
$ snap list
これでインストールされているパッケージの名前を確認。
$ sudo snap remove chromium
これで消えました。
linuxにはいくつかのパッケージ管理システムがありますが、Snapというのもその一つのようです。まだこの辺のことよくわかってません。
category: パソコン