Prototype.jsとGoogleマップAPIがバッティングしていよいよPrototype.jsも終焉
16年前に納品したお客様から連絡でGoogleマップが表示されませんと…
Chromeのコンソール開いたら
This site overrides Array.from() with an implementation that doesn't support iterables, which could cause Google Maps JavaScript API v3 to not work correctly. ってエラーが出てた。
何もしてない(笑)ので、なんだろう?と探ったら、多分GoogleマップAPIがバージョンアップしてる。
これ見て、バージョン指定してみた。現時点で3.54なので バージョニング | Maps JavaScript API | Google for Developers
<script type="text/javascript" charset="utf-8" src="https://maps.googleapis.com/maps/api/js?key=GMAP_API_KEY&sensor=false&v=3.53"></script>
って、Versionを3.53にして対応。
でも、過去1年分(4バージョン)しか保持しないってGoogleは言ってるから、このシステムも後1年だな…
16年よくもったよ…
Chromeの右クリックで「画像をGoogleで検索」がGoogle Lensに行ってしまうのが嫌なので直した件
Chromeで表示している画像の上で右クリックすると、こんなのが出てくる。
でも、ある時からこれがGoogle画像検索サイトではなくGoogle Lensが右ペインに表示されて検索するようになった。
とても不便。
Chromeの画像検索がGoogle レンズになってサイドパネルが開くのが嫌すぎてFirefoxに戻そうと思ってた…
— ITOH Takashi (@tohokuaiki) 2022年12月8日
これで、助かった… https://t.co/7F0mGYQoC4
またこれよ。
— ITOH Takashi (@tohokuaiki) 2023年3月9日
chrome://flags/#side-panel-web-view
でDisabled https://t.co/DFDOniuv2h
何故か直ってしまうので、また見つけるだろう…
「いらっ」とした時の伝え方
読んで、
ヘラヘラしながらすいませんと言った態度を見て普通に死ねと思った。(実際は軽くいいよ気にしないで〜と流した。でももっと大袈裟にそんな!!謝らなくていいのに!!むしろこっちが謝らせちゃってごめんね??!!とか言うべきだったんだなと今思う)
ってあったので、自分だったらどう伝えるかな?って思って。
基本的には、まず相手を持ち上げる。褒めると言い換えてもいい。そうしておいて、次の言葉が「入る」ように態勢を整える。
たとえば、イスが高くなってれば、「○○さん、さすが足長いね!さっき自分のイスに座ったら、私、足つかなくて!!」とか。 その後に、「あ、だけど、高くしっぱなしだと私が悲しくなっちゃうから、戻しておいてくれるとうれしいな」と主題を伝える。
褒めるの難しい
むつかしいよね。イスがちゃんと机にしまってれば「私、イス出しっぱなしじゃなかった?引いてくれてありがとう」でもいいし。
この次に主題となるイスの話をしたいので、イス周りの話で褒めるといい。なければないで、「机、きれいに使ってくれてありがとう」とか、「私、机で食べると食べこぼししちゃうんだよねー。食べるのきれいね」とかもう半ば無理矢理でも、認識違いとかでもかまわない。
とにかく、相手に「話をききやすい」と思わせる姿勢を取らせたいから、嫌な言葉を使わないようにする。そんだけ。でも、難しいよね。自分も20代の頃だと無理だったかもしれない。
Debianを10(buster)から11(bullseye)にしようとしてなんか言われた件
この辺りを読みつつ、「簡単だなぁ」とやってみたところ、ハマった点が1つ。 www.debian.org
/etc/apt/sources.list を書き換え
busterになっているのをbullseyeにする
deb http://ftp.jp.debian.org/debian buster main deb-src http://ftp.jp.debian.org/debian buster main deb http://security.debian.org/debian-security buster/updates main deb-src http://security.debian.org/debian-security buster/updates main
を
deb http://ftp.jp.debian.org/debian bullseye main deb-src http://ftp.jp.debian.org/debian bullseye main deb http://security.debian.org/debian-security bullseye/updates main deb-src http://security.debian.org/debian-security bullseye/updates main
って感じ。
で、エラー発生
このまま、# apt updateすると
E: リポジトリ http://security.debian.org/debian-security bullseye-updates Release には Release ファイルがありません。 って言われる。
んー、と思って色々調べたらbullseye-security とbullseye-updatesで分かれているみたい。
deb http://ftp.jp.debian.org/debian bullseye main contrib non-free deb-src http://ftp.jp.debian.org/debian bullseye main contrib non-free deb http://security.debian.org/debian-security bullseye-security main contrib non-free deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free deb http://ftp.jp.debian.org/debian bullseye-updates main contrib non-free deb-src http://ftp.jp.debian.org/debian bullseye-updates main contrib non-free
ってやると上手くいった。その後、apt update → apt upgrade → apt full-upgrade → apt dist-upgrade と。
MySQLが入ってなかった。
MariaDBを入れておく。
apt install -y mariadb-server
PHPからつながらないので、なんだろう?と思ったらMySQLモジュールが入ってない…
# apt install php7.4-mysql
でApache再起動。
WordPress5.5系にUpgradeするとDBアップデートでエラーが出てしまう件
結論から言うと、5.5は関係なかった。
WordPressのcron履歴の取り方が変だった。
There has been a critical error on your website. Learn more about debugging in WordPress.
とか出た。日本語だと「このサイトで重大なエラーが発生しました」ってやつ。何の手掛かりも無いのでソースコードを追ってみた。
function upgrade_550() {
で引っかかってるっぽい。wp-admin/includes/upgrade.php
もっと追っていくと最後の
<?php wp_schedule_single_event( time() + ( 1 * MINUTE_IN_SECONDS ), 'wp_update_comment_type_batch' );
ところ。
function _set_cron_array( $cron ) {
wp-includes/cron.php
をさかのぼっていくと、
function wp_schedule_single_event( $timestamp, $hook, $args = array() ) {
↓
function _set_cron_array( $cron ) {
の
return update_option( 'cron', $cron );
が詰まっているッぽい。 なんだよ、こんな基本的なもの…
この$cronなんなん?
と思って、ログに吐き出させると、
{i:1522275037;a:3:{s:16:"wp_version_check";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args";a:0:{}s:8:"interval";i:43200;}}s:17:"wp_update_plugins";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args";a:0:{}s:8:"interval";i:43200;}}s:16:"wp_update_themes";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args";a:0:{}s:8:"interval";i:43200;}}}i:1522297407;a:1:{s:19:"wp_scheduled_delete";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:5:"daily";s:4:"args";a:0:{}s:8:"interval";i:86400;}}}i:1522300588;a:1:{s:30:"wp_scheduled_auto_draft_delete";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:5:"daily";s:4:"args";a:0:{}s:8:"interval";i:86400;}}}i:1522308843;a:1:{s:25:"delete_expired_transients";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:5:"daily";s:4:"args";a:0:{}s:8:"interval";i:86400;}}}i:1522826720;a:1:{s:8:"do_pings";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:2:{s:8:"schedule";b:0;s:4:"args";a:0:{}}}}i:1527828937;a:1:{s:34:"wp_privacy_delete_old_export_files";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{
とかで軽く10Mを越える配列データが入ってた。やべぇやつや。
なんだよこのオプションは…
仕方ないのでDBを見てみる…
select * from wp_options where option_name="cron"; ERROR 2020 (HY000): Got packet bigger than 'max_allowed_packet'
Oh...
既にDBからしてやべぇやつやったのか…
なんかこれまでの運用でやらかしてしまったんかなー…とか思いつつこれ何かなと思うと、WordPressのcronのログっぽい。 いらんわー。消す。
なんか困ってる人もいたみたい。 そりゃ困るよな…
MySQLコマンドから
MariaDB > select option_id from wp_options where option_name="cron"; +-----------+ | option_id | +-----------+ | 99 | +-----------+ 1 row in set (0.016 sec) MariaDB > update wp_options set option_value="" where option_id=99;
で、またDB更新させると… できたー。