例の WP Engine との係争の件で僕は Matt Mullenweg 氏を全面的に支持しています。この件に関しては人それぞれ大きく違った見方をしていると思いますが、僕が Matt の立場を支持するのには僕の独特な立ち位置が大きく関係しており、僕の目からこの問題がどう見えているのか共有することはある程度意味のあることかもしれない、と思います。
フォーラムサポーターのノウハウ集
WordPress.org の日本語版サポートフォーラムのモデレーターを養成するためのトレーニング資料を今作っているところです。作りながら思ったんですがモデレーター向けの資料とは別にサポート回答者向けのノウハウもまとめといた方がいいんじゃないかと。
僕は自作のプラグインのサポートを20年近く続けていて、累計の回答回数は優に2万回を超えます。そのように大量の質問を日々さばき長年モチベーションを維持し続けるのにはそれなりのノウハウが必要です。自分自身のフォーラム回答者としてのノウハウをこの機会にまとめてみようと思いました。
最初に断っておきますが、これは WordPress.org 英語版サポートフォーラム内の個別プラグインカテゴリーでの経験を元にして書いています。他の OSS のサポートにも役に立ったり立たなかったりするかもしれません。また自分の考えを正しいものとして押しつけるつもりはありません。
プロフェッショナルの仕事
先日、何年か振りの脆弱性報告をもらって Contact Form 7 のセキュリティリリースを出したんですけど、予想外に大きな反応があって WordPress Tavern に取り上げられたりもしました。
さまざまなメディアがあれこれ書いているのを読んでいて際立っていたのが Wordfence のこちらの記事です。
特に感銘を受けた部分を抜き出して日本語訳してみます。
Contact Form 7 には数々の被害軽減策が設けられているのでこの脆弱性を利用しても不正利用を完遂するのは難しいだろう:
– アップロードされたファイルはランダムな名前が振られたフォルダに一時的に格納されて、メールに添付したらすぐ削除される。つまり攻撃者はまずランダムなフォルダ名を判定する必要があり(ディレクトリインデックスが有効になってるとかなければ無理)、しかもそれをディレクトリとアップロードファイルが削除されるまでの一瞬のうちにやり遂げないといけない。
– Contact Form 7 は .htaccess ファイルを使ってアップロードされたファイルへの直接アクセスができないようにしている(これができないとコードの実行もできない)。これは Apache のサイトでしか機能しない対策ではあるが、サイトに別の脆弱性があってそこに付け込まれるとかない限り、アップロードファイルの実行は阻止されるだろう。
– ファイル名は許可された拡張子のものでなければならない。二重拡張子を持った任意のアップロードファイルに PHP ハンドラーを割り当てるような Apache 設定というのは通常はみられない。
なぜこれに感銘を受けたかというと、こんなことはマニュアルのどこにも載ってないんですよ。この記者と三好の間に事前の nemawashi があったとかそんなこともありません。推測ですがこの記者は Contact Form 7 のコードを独自に調査してファイル処理のフローを確認してこれを書いたとしか考えられません。しかも、僕がリリースノートを書いて寝て起きたらこの記事が出回ってたんですよ。半日も経ってない。
それにひきかえ、なんて言って別の誰かをこき下ろそうとするのはよくない癖だよなとは思いつつも書いてしまうのですが、先日日本の大手ホスティングサービスの広報記事で Contact Form 7 が名指しされるということがあったんですが、
- お問合せフォームを悪用する攻撃増加に関する注意喚起 | さくらインターネット
- 【注意喚起】WordPressプラグイン「Contact Form 7」などのメールフォーム(問い合わせフォーム)の仕様を悪用したスパムメール配信行為への注意喚起、ならびに対策のお願い – 2020/12/15 | レンタルサーバー【エックスサーバー】
Contact Form 7 に問題があるみたいに聞こえてなんか感じ悪い、というのはとりあえず脇に置くとして(てゆーか海外のホスティング会社からこんな扱い受けたことないぞ。やったら訴えられたりするんじゃないの)、まずさくらインターネットさん、名前出すんだったら公式サイトのマニュアルにリンクぐらいしましょうよ。意味ないじゃないですか。エックスサーバーさん、リンクしてくれてありがとうございます。でも最重要のセキュリティ設定である Akismet が抜けている一方でセキュリティ設定でもなんでもない承諾確認チェックボックスが取り上げられているのはどういうわけですか。一体何を参考にこれ書いたんですか。
かたや、自らコードを精査し、公正性を疎かにせず、過度の不安や楽観を招かないよう表現を選んで記事を書いた Wordfence。かたや、適当にググって拾ってきた(であろう)情報を元に無責任な記事を書いて流した日本のホスティング会社。どちらもそれでメシ食ってるプロフェッショナルなんでしょうけど、仕事への取り組み方がこうも違うものかと愕然とするのです。
Form Design Patterns
ウェブサイトで最も重要な要素はフォームです。
今年買って良かったもの
ダイソンのドライヤー
普通のドライヤーが水道の蛇口だとしたら、ダイソンのこれは温泉の源泉かと思えるほど、あふれ出す空気の量が格段に違います。ドライヤーというものに持っていた固定観念が完全に覆されました。余分な熱もなくすぐに乾くので髪や地肌へのダメージも他の製品と比べて少ないと思います。
サイズが大きいので置き場所に困るということはあるかもしれません。そういう場合は無印良品のキッチン用品売り場にあるコットンメッシュバッグがおすすめです。うちではS字フックを使ってこれを洗面所のタオルハンガーから吊り下げています。
日立の洗濯乾燥機
以前使っていた洗濯機が10年くらいになり、洗濯槽の黒カビがどうがんばっても落ちなくなってきていたので買い替えることにしました。買ったのは日立ビートウォッシュの乾燥機付きのタイプです。10kgのモデルは一人暮らしには不相応な気もしましたが、家電のミラクルで9kgのモデルより安くなっていたのでこちらにしました。
「ナイアガラ洗い」とか「ナイアガラすすぎ」とか、いちいちかっこいい名前が機能についているんですが、その名の示すとおりバッシャバッシャとダイナミックに洗濯してくれます。ごみを処理しやすい形状の糸くずフィルターが2個装着されているのも気に入っているポイントです。
バルミューダのデスクライト
医療用の手術灯のメーカーと共同開発したものだそうで、手元に影ができにくい設計になっています。光源自体が目に入らないように真下に向けて使っているのですがそれでも灯りが広範囲をカバーするのでちょっと不思議な感覚です。僕は日頃モニターとキーボードに向かって作業するだけなのであまり実感はないのですが、鉛筆持って書き物することが多い人は重宝するんじゃないかと思います。
LED のデスクライトはどれも明るさが足りない印象を持っていたのですがこれは違いました。6段階で明るさを調整できるのですが普通に机で作業する限り最小設定の明るさで十分です。
ワイヤレスフライトアダプター
飛行機に乗る時はいつもノイズキャンセリング機能付きのワイヤレスヘッドフォンで音楽を聞いているのですが、ふいに映画とか見たくなることがたまにありますよね。そういうときは飛行機に備え付けの有線ヘッドフォンを使うことになりますけどノイズキャンセリングがないので快適でないことが多いです。自前のワイヤレスヘッドフォンの Bluetooth 接続先を iPhone ではなく座席のオーディオジャックにできたらいいと思うんですけど。
機内販売のカタログを見ているとワイヤレスヘッドフォンも扱っていたりするんですが、見るとだいたいフライトアダプターなるものが付属でついてくるようです。Bluetooth 対応の汎用フライトアダプターがあればと検索したところ RHA というスコットランドのメーカーの製品が人気のようだったのでものは試しと購入しました。
プラグが2本付いていて、1穴/2穴両タイプのジャックに対応しています。まだ国内線で一回しか使っていないのですが(1穴ジャック。映画はやってなくて落語聴いてました)、十分期待通りに機能しました。今後フライトの必需品になりそうです。
WordBench の10年
WordBench は9月23日に10周年をむかえると同時に、その歴史に幕を引きます。実は、僕は最初に WordBench を始めた人間で、10年間運営に携わり、また今回のサービス終了を提言した当事者でもあります。僕がどういう経緯で WordBench を立ち上げ、何を考えて運営してきて、今回なぜ終わらせなければならなかったのか、そういったことを書き留めておくことも、もしかしたら後々誰かの役にたつかもしれないと思い、久しぶりにブログらしいことをやってみようと思います。
Last weekend, I attended WordCamp Colombo, which was the first WordCamp ever held in Sri Lanka. It was truly an awesome event with kindhearted people. I’m already looking forward to the next year’s WordCamp in Sri Lanka.
I spoke about some important lessons I have learned from plugin development. Some of my opinions might be controversial. Maybe I should have added “Security” to it. Anyway, here is the slides I used for the speech.
WordCamp Kyoto 2017 で「誰でも使えるプラグインを作りたい – WordPress プラグイン開発者の視点で考えるアクセシビリティ」というお題でお話しさせていただきました。
繰り返し書いてるのでしつこいかもしれませんが、私アクセシビリティの専門家ではありません。いち WordPress プラグイン作者の立場から、アクセシビリティへの配慮の重要性とどうやって学んだらいいかということについて、日頃考えていることやこれまでやってきたことをお話ししました。
アクセシビリティに関する情報は豊富に得られるように思われるかもしれませんが、実際探してみると間違いや古い情報に頻繁に出くわしますし何が一体正しいのだ!という気持ちになることがたびたびです。でも考えてみてください、すばらしいお手本が身近にあるじゃないですか。WordPress コアの実装を参考にアクセシビリティを学んだらいいじゃないですか。というのがお話の本旨です。
I spoke at WordCamp Singapore and Tokyo earlier this month.
The title was: What is the Responsibility of Plugin Developers? The most common answer from plugin developers would be security, while users might answer user support. I think the responsibility of plugin developers is to keep WordPress accessible for everyone.
Why We Should Choose Free Plugins
I made a short speech at WordCamp Tokyo 2015. This is the slides I used.