千葉・外房 シーバスとハンドメイドルアー(自作ルアー) -ドンファン-

ライフワークのハンドメイドルアーの作成。自作したタックルを使う事で釣りの価値を一つ高める。そんなハンドメイドルアーの作り方とシーバスやソルトルアー全般のルアーフィッシングの面白さを紹介できればと思う。主にサーフや河川での陸っぱりとウェーディングが釣りのスタイルだが、まれに船にも行く。 また、ロードバイクでホームの千葉県を主に走っていて今後はブルベの参加を考えています。 あと、美味しいお酒と料理も好き。

FullSizeRender
FullSizeRender
FullSizeRender
FullSizeRender

そろそろシーカヤックを買おうかと思ってて取り回しの良いボート用のロッドが欲しいなと思って物色。

ufm CPS-75MB

ウエダのロッドファンとしてはやはりウエダ一択。
もちろん会社がすでに無いので新品のロッドを手に入れる事は難しいので中古。

初めて1ピースロッドを手にしたんだけど、張りとしなやかさのバランスは見事。
こういったロッドが出てこないかなといつも思う。

FullSizeRender

ufm CPS-75MB

MacをCatalinaにアップグレードしてからローカルのPHPで以下のエラーが出てしまう。

Class 'ZipArchive' not found in ...


PhpSpreadsheetを使ってExcelのデータをAPI経由で各システムに登録するツールをMacのローカルで動かしていたんだけど、Catalinaにアップグレードしてからこのエラーで全く動かず。
まずPhpSpreadsheetは動作環境としてZipArchive classが必要だが、アップグレード後はインストールされていない。
色々ググったけど、いまいち見つからなかった。

で、対応方法は簡単だった。
足りないツールとPHPを最新にすること。

コンソールを立ち上げて、

足りないツールを以下のコマンドでインストールする。

xcode-select --install

次に、最新のPHPをインストールするとZipArchiveも一緒に自動インストールされる。
更新前のPHPは7.3.8でこの記事を書いてるときは7.3.10が最新。(2019/10/18時点)



brew update

brew install php@7.3

brew link php@7.3

最後に、コンソールを一度閉じて再度起動して完了。
一応、

php -vでバージョンが上がっていることを確認する。

php -v

PHP 7.3.10 (cli) (built: Sep 30 2019 19:59:57) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.3.10, Copyright (c) 1998-2018 Zend Technologies

    with Zend OPcache v7.3.10, Copyright (c) 1999-2018, by Zend Technologies


あーよかった。

しかし最新のMac OSであるCatalinaは不具合が多い。
Sidecarはいいんだけど、メモや写真がiPhoneともうまく同期されなくなったり、Mac mini だとHDMIからディスプレイが表示されなくなったりと。

そんなことしたいと思うんだけど、適当な関数が見当たらない。
探してたらこんなのを見つけた。

スマレジでAPIを投げてレスポンスのエラーはユニコードなので見にくい。
毎回、コピーして変換サイトで見てたけど、ログもtailできるようになったので、
変換して読める形にログ出力するようにした。



// 文字列のユニコードデコードを行う
function unicode_decode($str) {
  return preg_replace_callback("/((?:[^\x09\x0A\x0D\x20-\x7E]{3})+)/", "decode_callback", $str);
}
 
function decode_callback($matches) {
  $char = mb_convert_encoding($matches[1], "UTF-16", "UTF-8");
  $escaped = "";
  for ($i = 0, $l = strlen($char); $i < $l; $i += 2) {
    $escaped .=  "\u" . sprintf("%02x%02x", ord($char[$i]), ord($char[$i+1]));
  }
  return $escaped;
}
 
// 文字列のユニコードエンコードを行う
function unicode_encode($str) {
  return preg_replace_callback("/\\\\u([0-9a-zA-Z]{4})/", "encode_callback", $str);
}
 
function encode_callback($matches) {
  $char = mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UTF-16");
  return $char;
}
 

タイトルの通り、XServerでPHPのエラーログをTailする。
実はかなり簡単にできた。
ステップは大きく分けて以下の2店。

1.PHPのログ出力先を変更
2.sshでログインしTailする

ここでは1のみを説明する。sshログインについては色々と情報があるので、他を参考にしてください。

で、XServerではsshでログインしても標準で設定されているであろうログフォルダにはアクセスする権限がなくてたどり着けない。
またXserverはsshのアクセスユーザーをroot権限にできない仕様だ。

なので、php.iniを編集し新たな場所へログを書き出すことで実現できた。

管理画面から、php.ini設定を選択する。

php1

php.ini直接設定で、以下を追加。
xxxxは各自の契約に合わせて変更する。

error_log = /home/xxxx/xxxxx.xsrv.jp/log/php.log

php2

sshでXServerにログインして、以下のコマンドを実行。

tail -f php.log


php3

いやー、PHPのデバッグがはかどること、はかどること。
これをする前は、毎回管理画面からエラーログをダウンロードして確認してたから、嫌になってたところ。
どんだけログの確認で時間を奪われたのだろうか。。。

PHPでスマレジに商品情報をPOSTする方法。
なんかスマレジのAPIは癖があって一筋縄で行かなかったのでここに記録しておく。
昨夜、相当に悶々としたのですよ。


$data="proc_name=product_upd&params={\"proc_info\": {\"proc_division\": \"U\"},\"data\": [{\"table_name\": \"Product\",\"rows\": [{\"productId\": \"1789647159366\",\"categoryId\": \"2\",\"productName\": \"ジーンズ\",\"taxDivision\": \"0\",\"price\": \"1050\",\"cost\": \"666\",\"taxFreeDivision\": \"0\"}]},{\"table_name\": \"ProductPrice\",\"rows\": [{\"productId\": \"1789647159366\",\"storeId\": \"1\",\"priceDivision\": \"1\",\"startDate\": \"2013/01/17\",\"endDate\": \"2013/02/17\",\"price\": \"840\"}]}]}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded;charset=UTF-8','X_contract_id: xxxxxxxxx','X_access_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'https://webapi.smaregi.jp/access/');
$result = curl_exec($ch);
echo 'RETURN:'.$result;
curl_close($ch);

↑このページのトップヘ