プチ同窓会に出かけました

今日は夕方までゴロゴロして過ごしました。というか、日付が変わっているから昨日ですけど。
たまにはそういう日もあってもいいかなと。

夕方、なんだかんだで学年全体で集まる同窓会は中止になったんですが、クラスでは集まろうということになったので、久しぶりに街に出かけました。

銀天街と、大街道との境目あたりのお店が会場でした。
17 時からかと思って行ったら、誰もいないのです。
よくみると 18 時からでした。

少し時間を潰す必要があるので、うろうろすることにしたんですが、大街道はまだマシなんですが、銀天河の方は随分と寂れている感じがします。
とにかく暗い、狭い、古い、そして、空きテナント多数です。
かなり深刻に感じました。
献血しようと思うと終わってるし、猫カフェを見つけたんですが、入ってゆっくりするほど時間はないし、それ以前に初老の爺さんが一人で入って良いお店ではない気もしないでもないのでした。

同窓会ですが、うちのクラスは 4 人の予定が一人すっぽかして 3 人で、隣のクラスは 9 人でした。
本来は 2 次回用に押さえてあったようで、たまたま 2 クラスが同じところになった、という具合のようです。
自分はサクリと暮らす感じにスルーされて誰かわからなかった発言があったんですが、きっとマスクをしていたせいだと思います。

車で行ったので、飲まずに 1 次会で帰りましたが、ふと思い返すと、高校生だったのは 30 年以上前なんですよね。
自分は結構忘れているんですが、体育祭の時にどのグループだったとか、どこが優勝したとか、みんなよく昔のことを覚えているなと感心しました。
自分がよく覚えているのは、水が緑色になったプールで泳がされた(体育の水泳の授業をサボった)とか、麻雀をやっててパイを取り上げられたとか、遅刻をして怒られたとか、まあ、そんな感じのことばかりです。

それはそうと、Jetpack の Markdown 問題その後です。
結論を書くとまだ解決してないのですが、忘れないうちに試したことを書いておこうと思います。

まず、Jetpack 以外のプラグインとコンフリクトしている可能性を考えて、Jetpack 以外を deactivate して様子を見ましたが、改善しませんでした。

そこで、Jetpack を deactivate してから削除し、再度インストールをしたんです。
その結果、Carousel galleries などまで無効になって、Markdown 以外も有効にできなくなりました。

lolipop の WAF の問題かと思って、これも切ってみたんですが、変化なし。
XMLRPC も問題はないように見えるんです。

そうしたところ、Jetpack の一番下の方に Debug メニューがあることに気づきました。
しかし、正常との表示です。
Debug の隣に Modules メニューがあるんですが、確認すると Carousel や Markdown は無効な状態でした。
なので、設定で有効にしても反映されず、設定画面をリロードすると元に戻ってしまっていたようです。
これらを Activate して、確かに Carousel などはアクティブになって、設定も反映されるし、実際にポストも期待の表示になったんですが、Markdown だけはうんともすんともうまく行きません。

WordPress 自体も、Dashboard → Updates で、インストールし直してみたんですが、変化なしです。

それと、軽トレーラの件です。
ジムニー側のワイヤリングについて、いろいろ調べてみたんですが、詳しい動画を見つけました。

結局、切った張ったするようですが、エレクトロタップを使ったら配線がぶくぶくになってしまうし、多分、振動とかで元のワイヤが切れてしまうと思うんですが、ビデオの後の方でハンダ付でやってました。

それで、単に分岐させるんじゃなくて、トレーラへの電源はバッ直でとって、リレーをかましてました。
本当にバッ直で、前からずんずん引っ張ってきているんですが、思うに、ジムニーはリアの左側にシガーソケットがあり、そこは容量に相当余裕があると思うので、どうしてそこから取らなかったのかしら、と思ったり思わなかったりです。

あと、リレーをかまさない方法でやっている人が、すべての線に 5A のヒューズをかましていたんです。
アース線にだけかましたんじゃダメなんでしょうかね?
でもまあ、リレーを使うなら、リレーに突っ込む電源線に 5A のヒューズをかましておけば、60W 超えたら飛んでくれるとは思うんですが、防水とか不味くて飛んだら、下手のところにヒューズをつけると難儀をするような気がしないでもないです。

リレーの値段ですが、SOREX SUNTREX のものは、15,000 円くらいしてとんでもなく高いです。

トレーラのテールランプの件ですが、キットに付属してきたものを確認すると、線が 3 本だけなんです。
ブレーキ(ウインカー)、スモール、あとアースだと思うんです。
点灯させてみないとわかりませんが、99% くらいの確率で、ウインカーは赤く点滅する気がするのです。
少なくともレンズは全面赤いので、車検は通らないと思います。

ほぼこれと一緒です。

ヤフオクで、ほぼ似た外寸、取り付けボルト間隔のものを見つけたので落札してみました。
2,040 円 + 送料 900 円 – クーポン 200 円、支払い総額 2,740 円でした。

ダウンライト、これ、車検に対応しているかしら、と思ったりもするんですが、まあ最悪はスイッチをつけて作業等と言い張ろうかと思います。
物理的にライトが存在している以上、点灯しないと整備不良になるし、その部分だけ取り外すことはできないと思うので。

ウインカーですが、記憶が確かなら、横方向からもある程度視認できないといけなかった気がしないでもないのです。
トラクタの側の話だったか、ただ、大型の場合、横にもウインカーはついてますからね。
車幅灯、リフレクタ、その辺の保安基準も調べる必要がありそうです。

リレーですが、Ryder TF 2218/7H というものが出回っています。
これも国内で買うと SOREX より多少安く、eBay で買うと国内で買うより多少安くて、半額くらいという感じです。

ちょっとでっかくなるけど、これなら 1/10 の価格だし、リレーやヒューズが死んでも個別に交換できるし。
7 極のうち 1 極は使ってないし、リレーに関しては、電源線自体はいらないので、実質、ウインカー左右、スモール、ブレーキ、バックで 5 つでいいわけですし。

ただまあ狭いリア周りのどこにこのボックスをつけるのか、というのは結構問題かもしれません。

ブログ村でサムネイル画像が表示されなくなった件

少し前からブログ村でサムネイル画像が表示されなくなりました。
特にこちらで何かした記憶はなかったんですが。。。

ググってみると、「[OGP](https://blogmura-help.muragon.com/entry/490.html)」という meta タグを追加する必要があることがわかりました。
それで、og:image を指定できるプラグインを導入して対処していたんですが、あまりに面倒臭いのです。

それで、場当たり的ですが、ブログ村の説明に従って対処を試みましたが、その説明の通りではすんなりいかず、少々コードを書き食わせてうまく行っているように見えるので、備忘録を兼ねてメモっておきます。

まず、前提となるブログ村の説明ですが、WordPress の場合は、以下のページになります。

– [WordPress(ワードプレス)のOGPの設定方法](https://blogmura-help.muragon.com/entry/496.html)

ここに提示してあるコードですが、is_single() というのが個別のポスト(投稿)であるかを判定していて、その場合に処理をするようです。

肝心の og:image ですが、has_post_thumbnail() の場合とそうでない場合の処理があるんですが、has_post_thumbnail() は投稿にアイキャッチ画像が設定されているかどうかを調べる関数のようです。

なので、アイキャッチ画像があれば、それを og:image として、そうでない場合、$post->post_content を preg_match で img タグをマッチさせて src で指定している URL をキャプチャする、という結構強引な力技で解決しようとしているんです。

ここでズッポリハマったのが、ギャラリーなどで画像を記事に載せた場合、$post->post_content には img タグとして存在していない、ということです。
ギャラリーがあるかどうかは、has_shortcode($post->post_content, ‘gallery’) で調べることができ、画像は $image_url = get_post_gallery_images($post) で、$image_url に配列で帰ってきますから、最初の URL を og:image に指定してやるととりあえずは目的は達成できました。

ただ、アホなことに、property のつづりを間違えていて、ずっと画像が反映されず、2 時間は無駄にしたような気がしますが。。。

現状、テーマの header.php を書き換えているんですが、これだとテーマを更新するたびに書き換えないといけないので面倒臭いし、そこまで記憶力が良くないのです。
ある程度安定したらプラグイン等で対処しようと思います。

それはそうと、記事は Classic Editor を使って Markdown 書式で書いているのです。
ところが、ここ数日、急に Markdown が無効になっています。
昔の記事は、有効なままなんですけどね。

Jetpack の設定で執筆を確認すると無効になっているのです。
有効にすると、その画面では、設定を更新中… → 設定が更新されました。と表示されるんですが、別の画面に遷移してから戻ってくると、又無効に戻っているんです。

なんでだろう。

これは地味に不便なので、早めになんとかしたいと思います。

原木無料配布 — コメントが書き込めなくなっていた件

原木の件で、コメントが書き込めないということなので確認してみました。
画像が表示されない状態で画像認証が有効になっていて、書き込めません。

ざっと調べると、SiteGuard と Jetpack との相性の問題 のようです。
画像像認証は SiteGuard の機能なので、無効化しておきました。

というわけで、原木の引き取り希望です。(無料)
今週末は、土砂崩れの片付けがあるので、来週を予定しています。
予定が決まりましたら、告知いたします。

必要な道具:

  • 軽トラ等、天井のないトラック(乗用車不可!)
  • チェンソー

積み込みは重機で行います。

書き込めなかったら、メール, 電話, SMS 等で教えてください。

バッグシーラーを買いました

バッグシーラーを買いました。

うちの母から借りていたんですけど、錆びて汚いし、思ったよりも安かったので。

鉄製とステンレス製があったので、ステンレス製にしました。
MonotaRO ブランドで土日 10% off です。

何をするものかわからない?

見ての通りであります。

Amazon に商品を納品する際に、汚れの防止や、一つ一つが一つであると判別できるように、すべての商品は箱に入れるか、袋に入れる等、密閉することが求められるのですが、小さいものをシーラーでシールするのは結構時間がかかるし、楽な方法はないかなと思っていたら、たまたま玄関にバッグシーラー(母のものはニチバン製)が転がっていたのです。

これでちょっとした小物の梱包が楽になりそうです。

それと台はかりの件です。
まともなものと、そこそこのもので検討しています。

まともなものは、それなりの値段しますし、アフターフォローして欲しいので、少々高くても、専門の業者さんで買おうと思うので、近所の中央包装システムさんに見積もりをお願いしました。
使い方を説明したので、機種の選定を含めて、戻ってきた結果を見て、よく考えたいと思います。

ただ、予算というものもあるし、正直、仕事のやり方というのが煮詰まっているわけでもないので、今後、仕事のやり方が変わったりして、要求も変わるかもしれません。
なので、もう少しに詰まるまで、そこそこのもので様子を見るということも考慮したいと思っています。
そこそこ、というのは、無保証ではなくて、メーカー保証が 1 年程度はついているもの、ということです。

MonotaRO 的には、

あたりかなと思っています。
デジタルの方は、30kg の次は、なぜか 100kg しかありません。

どちらでも 1 万円前後で収まります。(検定はなし)

まともなものは、MonotaRO で、3 — 5 万くらいしてしまうんです。
それでいて、使い勝手はおそらく、シンワのものの方が良い予感です。

正直にいうと、お金がなくて、全然仕入れられていないので、少しでも仕入れに回したいという気持ちが強いです。
それなら、不良在庫になりつつある薪割り機をセールで売り在庫を減らして、それを回転の速いロッジ製品の仕入れにした方がより多くのお客さんに品物をお届けできるんじゃないかなとも思うんですが、流石に赤字で処分するのは、かなり気が引けます。
早めに決断しないととは思うのですが。。。

それはそうと、昨日の AdMan の件です。
WAF を切ると問題なく、誤検出だということがわかりました。
以下のサイトを参考に SiteGuard を導入して解決しました。

ブログ村に記事が反映されない件は継続しています。
問い合わせしたら反映されるようになった的な記事が散見されるので、問い合わせておきました。

WordPress の https 対応

少し前にやったつもりでいた https 化ですが、微妙にダメダメだったんで、いくつか対策を追加しました。

うちは lolipop を使っているので、そこで提供されている無料の独自 SSL を利用していました。
ただ、Google Chrome で見ると Not Secure と表示されるのです。

理由は画像が SSL でないということなんですが、AdMan というプラグインを使ってブログ村へのリンクを差し込んでいて、その中で使用しているバナーが http だった、というオチでした。

AdMan 自体、おそらく WAF の影響だと思うのですが、設定を書き換えようとすると 403 になるので、面倒くさいのでプラグイン自体を今は停止しましたが、おいおい WAF の設定の方を云々しようとは思います。

それと、ログイン時に cookie 関連でエラーが出るのでおかしいと思っていたんですが、http でアクセスしていた ようです。

.htaccess を書き換えて、アクセスを https に統一することにしました。
参考にしたのは こちら

それはそうと、昔の画像などは、http でリンクが埋め込まれています。

今は gallery を使うこともあるんですが、普通に img タグで埋めてあることもあるんですね。
そして、その時に、なんでかエディタでやると絶対リンクになるのです。
過去記事などに対してのリンクもそうで、そっちは相対リンクに書き換えているんですが、まあ、昔の記事の URL の書き換えはそのうちやらないといけないなと思いつつ、画像や動画なんかは Instagram とか、外部に保管したらどうかとも思うようになりました。

ブログ村といえば、ここ数日記事の更新が反映さていません。
登録してある URL が http://〜 だったりしたので、その辺は修正したんですが、https://〜 統一作業前から調子が悪かった、というか、何も変更していない時点でおかしくなっていたので、ちょっと理由がわからないんですよね。

まあ、ぼちぼち工事していこうと思います。

そんなこんなで、今日は雑貨の配達に行って、エンジン の出荷をしただけでした。
その割にのんびりしたという印象はないんですが。。。

エンジン ですが、いつも 2 基在庫しているのですが、たまたま連続して売れてしまい、今は在庫切れしていますが、そろそろ入荷するので、品切れでご迷惑をおかけするリスクはかなり低いかと思います。
薪割り機の部品はそこそこ在庫のストックがありますが、在庫がないものの場合、取り寄せに時間がかかります。
調子が悪いと思ったら、早めに お問い合わせ ください。

お店の方はというと、FISKARS X27IsoCore Maul とが入荷数が少なくて、売り切れてしまいそうです。
当面入荷の予定はありません。

Lodge 製品も品切れてしていて、これはそろそろ入荷するはずなんですが、世間的には連休に入ったようですし、武漢肺炎・チャイニーズウイルスの影響で、貿易関連は特にリモートワーク率が高いようで、通常よりも時間がかかっている感じでしょうか。
来週中くらいには、A/N くらいは届いて欲しいところですが。

それと、先送りにしていたまな板台車ですが、これも普通だと車検は切れているんですが、4 月いっぱいまで伸びているものの、来週は 29 日も休みで、27, 28, 30 日しか工場がやっていません。
車幅灯をフォークリフトで突いて壊しているのですが、MonotaRO で間に合わせでマーカを取り寄せたので、交換しておかないといけません。

明日は神社の祭日なんですが、多分、暇だと思うので、ブログ村の件くらいはなんとかしたいなと思います。

iPhone で撮影した画像が意図した向きで表示されない件

iPhone で撮影した画像ですが、iOS 上の Safari や、facebook のリンクのプレビュー画面で意図した向きで表示されない件が気になっていたので、対策を考えてみました。

原因は、撮影した向きでは画像が保存されず、向きを補正する情報が保存されることに起因すると推定しているのですが、対策からすれば、向きを補正する情報を読み取り、正しい向きでシンプルがデータとして再構成すれば良い、ということになるかと思うわけです。

不用な Exif データなども削除すれば、多少なりともトラフィクの軽減にもなるわけですし、そういう部分も掘り下げたいところではあるんですが、それ以前に、iPhone で撮影する場合、画素数の調整なんかができない気がするので、アホのように巨大な画像ファイルになるので、それを手当しなければならず、現状は、Wordpress のプラグインで、imsanity というものを使って対策をしているのですが、これ自体は、リサイズしかしてくれないので、たたき台にするにしても、もっとマシなものがあるだろう、ということで探してみました。

そうしたところ、fix image rotation というものがあり、早速落としてみました。

動作的には、filter_wp_handle_upload_prefilter で、ファイルアップロード時にフックして、実処理は、fixImageOrientation でやっているわけですが、ここでは、WP_Image_Editor インスタンスが実際のイメージ処理を行っています。

調べてみたところ、あまり詳しいマニュアルはなかったのですが、

$image = wp_get_image_editor( 'cool_image.jpg' );
if ( ! is_wp_error( $image ) ) {
    $image->rotate( 90 );
    $image->resize( 300, 300, true );
    $image->save( 'new_image.jpg' );
}

ということで、リサイズと回転のサンプルコードがあり、つまり、リサイズ機能も有しているようなので、少し書き換えれば、サイズ調整も可能になりそうに思いました。

insanity にはすでにアップロード済みのファイルを修正する機能もあるんで、そっちをベースにした方がいいかもしれないし、あるいは、そのものずばりのプラグインもあるような予感もするんだけど、まあ、勉強も兼ねて、ちょっと作ってみました。

<?php

/**
 * @package Image Filter
 * @version 1.0
 */
/*
  Plugin Name: Image Filter
  Description: Image Filter plugin fixes image size and image orientation based on EXIF data.
  Author: Osamu Shigematsu
  Version: 1.0
  Author URI: http://shigematsu.org
 */

if (!defined('ABSPATH'))
    exit; // Exit if accessed directly

if (!class_exists('ImageFilter')) {
class ImageFilter {
    public function __construct() {
        add_filter('wp_handle_upload_prefilter',
            array($this, 'filter_wp_handle_upload_prefilter'), 10, 1);

        add_filter('wp_handle_upload',
            array($this, 'filter_wp_handle_upload'), 1, 3);
    }

    public function filter_wp_handle_upload($file) {
        $suffix = strtolower(substr($file['file'], strrpos($file['file'], '.', -1) + 1));
        if (in_array($suffix, array('jpg', 'jpeg', 'png', 'gif'))) {
            $this->fixImage($file['file']);
        }
        return $file;
    }

    public function filter_wp_handle_upload_prefilter($file) {
        $suffix = strtolower(substr($file['file'], strrpos($file['file'], '.', -1) + 1));
        if (in_array($suffix, array('jpg', 'jpeg', 'png', 'gif'))) {
            $this->fixImage($file['tmp_name']);
        }
        return $file;
    }

    public function fixImage($file) {
        $fixed = false;
        $editor = wp_get_image_editor($file);
        if (!is_wp_error($editor)) {
            // reize image (if needed)
            $MAX_WIDTH = $MAX_HEIGHT = 1600;
            $size = $editor->get_size();
            $width = $size['width'];
            $height = $size['height'];
            if ($width > $MAX_WIDTH ||
                $height > $MAX_HEIGHT) {
                $editor->resize($MAX_WIDTH, $MAX_HEIGHT, false);
                $fixed = true;
            }

            // fix orientation
            // http://dqn.sakusakutto.jp/2009/02/jpegexiforientaion.html
            $exif = @exif_read_data($file);
            if (isset($exif['Orientation'])) {
                switch ($exif['Orientation']) {
                case 1:
                    break;
                case 2:
                    $editor->filp(false, true);
                    $fixed = true;
                    break;
                case 3:
                    $editor->rotate(180);
                    $fixed = true;
                    break;
                case 4:
                    $editor->filp(true, false);
                    $fixed = true;
                    break;
                case 5:
                    $editor->rotate(270);
                    $editor->filp(false, true);
                    $fixed = true;
                    break;
                case 6:
                    $editor->rotate(270);
                    $fixed = true;
                    break;
                case 7:
                    $editor->filp(false, true);
                    $editor->rotate(90);
                    $fixed = true;
                    break;
                case 8:
                case 9:
                    $editor->rotate(90);
                    $fixed = true;
                    break;
                default:
                    $editor->rotate(0);
                    $fixed = true;
                    break;
                }
            }

            if ($fixed) $editor->save($file);
        }
    }
}

new ImageFilter();
}

動くかどうか、しばらく様子を見てみたいと思います。