カテゴリー
社会

ワードプレスのソースコードから8年間懸案の変数名「おしっこ」が除去

ブログツールとして世界中の多くのサーバで使われている WordPress のソースコードの、数限りなくある中のちょっとした修正は、変数名の”pee”と”tinkle”を書き換えるというものでした。


-442 function wpautop( $pee, $br = true ) {
+442 function wpautop( $text, $br = true ) {

wpautop()という関数は、ブログ記事のテキストに2行以上の改行があった時、それを<p>タグに置換する、という働きをします。

「WordPress(wp) が自動(auto)で p(タグ)をつける」といったあたりから命名された関数だろうと思いますが、WordPress の歴史は長いのでこの関数も昔から存在していたようです。

それで、この関数を書いた誰かは「オートでPする」の響きからの連想か、引数名に $pee(しっこ、幼児語)を使う言葉遊びをしてしまったようですね。

その後のどこかの時点の修正で $pees をループで一つずつ処理する際に、取り出す変数を $tickle (こちらも しっこ、幼児語)が使われています。

# tinkle というとリトルスターぐらいしか連想しませんが、そんな意味もあるんですね。

WordPress の公式バグ管理システムからは、8年前のチケットで初めてこの二つの変数名についての指摘がなされたことがわかります。

8年前は lead developer らから「単なるプログラマージョーク」「ユーモアを消すことはない」などと相手にされなかったようですが、3か月前にチケットが再オープンされ、今回は修正するということになったようです。

コードの差分を見るとわかるように、大量に修正箇所はありますが基本的に変数名と関数名の置換がほとんどです。$pee は #text に置き換えられていて、たしかに $pee よりはこれが何を保持しているのかわかります。

今回修正が通った際の core committers の反応は、「ワードプレスの成長に応じて、コード中のジョークやユーモアに対する耐性は減っていると思われる」「より多くの人をインクルーシブに受け入れることは重要」といったようなもの。

まとめると

  • 英語圏の人にしかわからないジョーク
  • 変数には変数の役割を表す名前を付けた方がコードを読む人の助けになる
  • 不快な人もいるならユーモアで済ませられない

といったあたりでしょうか。「個人としては気にしない/好きだが WordPress がこのことで避けられると困る」みたいな人もいるかもしれません。

時代の変化かもしれませんし、8年前の却下が妥当だったか、今回の修正が妥当だったかも人によって意見はわかれるかもしれません。ソースコードやコメントで遊ぶというのはプログラマーなら身に覚えのある人は多いと思いますが、完成品ではなくコード自体が広く配布される場合、遊んだ内容が誰かを不快にするものではないかという意識もあったほうがいいんでしょう。

WP Tavern via reddit/programming

カテゴリー
ネットのサービス

CodeCaptcha – プログラマーだけを通すための CAPTCHA サービス

CodeCaptcha.io は、文字通り Code で CAPTCHA させるためのサービスです。

webサービスの利用や登録時に、プログラム(bot)による不正な自動投稿や大量の連続投稿・いやがらせなどを防ぐため、人間でないとできない入力を要求する CAPTCHA 、一番よく見かけるのはグネグネと曲げられたりした文字列を入力するものだと思います。

一般的なCAPTCHA の目的はbot を弾いて人間を通す関所のような役目ですが、CodeCaptcha では、この通行資格を人間ではなくプログラマ、あるいは少なくともプログラミングが多少わかる人、としているわけです。

デモで出てくるプログラムはこちら。

「プログラマといったって、道具も言語も人によってバラバラだろうし、どんな問題が出るのか?」と思いましたが、言語は JavaScript です。特にweb系のプログラマ向けなら妥当な選択ですね。そして、その中身もこれぐらいなら他言語しか知らないプログラマでも問題ないかと。

function isEvenNumber(num) {
return false; // Fix this
}

// Fix this とあるように、関数名の意図にあうような結果を出すようにこのプログラムを直せばいいんですね。

コードを書き換えるにつれて、リアルタイムでテスト結果が下部に表示されます。

テストが通るように修正を終えると、PASSED となり、設定された目的の画面に移行します。

問題はリロードのたびに違うものが出てきますが、どれも非常に簡単なレベルのものです。

これについては、今後リンク作成時に問題の難易度を選べるようにしたいということですので、うんうんうなって時間を掛けないと解けない CodeCaptcha も使えるようになるかもしれません。

「リンクをシェアしたいけれど、シェアする相手はプログラマに限定したい」時などに使ってください、ということでした。

via Hacker News

カテゴリー
技術

オープンソースプロジェクト内のTODO個数調査

マーティン・シュライスさん(Martin Schleiss)がブログで公開したのが、Linux をはじめとする巨大オープンソースプロジェクトのソースコードにおける「やらないといけない」あるいは「後で考える」マークである“TODO”の個数の移り変わりをグラフ化したものです。

基本的には、プロジェクトの年月が重なるほど、コードに書かれた TODO の個数は増えていくようです。上の PHP のグラフでは、メジャーリリースや通常リリースの時期の少し前に TODO が増えているようにも見えます。

プロジェクトによっては単調増加ではないものも。Rust は TODO の個数自体が少ないように見えるし、途中で数個まで減っている時期もあるので、意識的に TODO の解消を目指したりしていたのかもしれません。

Next.js 、version 10 と 10.1 のどちらのリリース時期でもなく、突然増えています。

ブログ記事では言語処理系やライブラリなど、有名なもの20個弱についてグラフ化されています。

プロジェクトの規模、歴史の長さによってもTODO の個数は変わりますが、規模や歴史と無関係に多い少ないもあったりもします。シュライスさんはTODO が有ることはどのオープンソースプロジェクトにおいても貢献をする余地があるということだ、と言っています。あなたが良く使っているツール/ライブラリのTODO は増えているでしょうか?