超簡単にcontact form 7のエンターキーによる送信を停止する方法

Wordpressプラグイン「contact form 7」では、テキストボックスの入力途中でエンターキーを押すと送信されてしまいます。これを止めるために、世間ではJavaScriptでどうこうしろと、そういう話になっとります。

しかしJavaScriptで対策すると、

  • contact form 7の改造になる場合がある
  • するとcontact form 7のVersion Up時にも対応が必要になる
  • ついでに超古いブラウザまで全部対応するのは割と大変である

というデメリットがあります。そこで!

超簡単にcontact form 7のエンターキーによる送信を停止する方法

やっと結論です。

  • フォームの最後に必須入力の項目をひとつ追加する

たったこれだけで対策できます。
具体的にはcontact form 7のフォーム編集画面で、

<p>[checkbox* before-send-check use_label_element "送信前にチェックを入れてください"]</p>

などの文字列を、使用するフォームの送信ボタンの直前に追加して保存します。
下の画像のようなイメージです。

これで、最後のチェックボックスにチェックを入れるまでは、途中で何度エンターキーを押されようとも送信できなくなります。簡単でしたね。

本日は以上!

肉体のあっち側とこっち側

うーむ、この話って例外は無数にあると思うけれど、しかし何かこう…漠然とだけど本質的な指摘が含まれているように感じる。なので少し考えてみる。

簡単にまとめると『ネットの快楽 vs 物質世界の快楽』という話だ。

ネットが私にもたらしたもの

それを端的に表現すれば「手軽な快楽」になるだろう。

手軽とは一体どういうことか?

  1. 安い
  2. いつでもどこでもアクセスできる
  3. 短時間で手に入る

つまり「安・近・短」である。

ちょっとお金を払えば、ちょっと携帯を取り出せば、ちょっとWebにアクセスすれば、そこには様々な快楽がある。情報的な快楽*1とか、物質を購入する快楽*2とか、人とコミュニケーションを取る快楽*3とか、物を作る快楽*4などなど。

そういうお手軽な快楽によって、私は幸せになったと思う。

いや、ネットで得た大切な友人たちのことを「手軽な快楽」と言っているわけではないぞ!あくまでも、ネットで完結するものごとの話ね。そこんとこ誤解しないでね。

閑話休題。今までは「お金持ちにならないと幸せな体験ができないぞ!」と脅されるように生きてきた昭和の貧乏人(私)たちが、インターネットにアクセスすることで、自分が「これだ!」と思える、欲しかった情報や仲間や満足を手にできるようになったのだ。

インターネットの成立と普及は、私にとっては革命的な出来事だった。

もうマスコミが提示する「幸せのテンプレート」に乗っからなくてもいいんだ、と信じられた。昭和のステレオタイプな成功者の幻影から解放され、でっかいテレビを買う意味も、車を買う意味もなくなった。

そんなありきたりなものじゃない、自分が欲しかったもの、自分だけの体験をネットを通して手に入れたのだ。

ネットでは得られないもの

五感をフル活用した体験は得られない。*5

それが欲しかったら物質世界に出ていく必要がある。どっかに遊びに行ったり、買い物に行ったり、食べに行ったり、見に行ったり。どんなものでもいいが、とにかく現場に足を運ぶ必要があるのだ。

具体的にはライブとかコミケとかサッカー観戦とかイメージすると分かりやすいだろうか。アウトドア派なら山登りとか、海岸でバーベキューとか、ラフティングとか。インドア派なら美術館巡りとか陶芸とかカード人狼とか*6。お金持ちの世界になれば、冒頭のtweetにもあるように、自分の船でクルージングとかね。

で、そういう体験は、

  1. 物事にもよるが、大抵お金がかかる
  2. その現場にいないと体感できない
  3. なにかと時間がかかる

安・近・短の真逆である。「高・遠・長」なんである。

そして、そういう「高・遠・長」体験の価値は、インターネットの「安・近・短」な体験が多様化していくのに従って、今後も益々高まっていくと思っている。人は伝聞情報が増えれば増えるほど、実際にそれを体験してみたくなるものだからね。

強引なまとめ

昔、「ネットはバカと暇人のもの」という言説があった。

それは外れてないと思う。

ただし、それが決して悪いことではないよ、世界中に(主に「安・近・短」な)幸せの総量は増えているから、たぶん世界平和にも貢献してると思うよ、というのが私の持論だ(その裏側で、ネットがあったが故に余計な苦しみや悲しみを感じている人もいるわけだが…ごめんな)。

だから、ロングテールの端っこの、すんごい長く伸びてる尻尾の方で、貧乏人(私)たちが手軽な快楽を得ていることぐらい大目に見てやって欲しい。「ネットはバカと暇人のもの」と、どんなに蔑んでも構わないから、そこを奪おうとするのだけは止めてくれ、世のお金持ちたちよ。

ええと、何の話だったか…そうクルーザーだったな。

「クルーザーを持ってる人はTwitterやらない」

私は今後ともそのようなネットであって欲しいと思います。

*1:面白いWebサイトやサービスを見たり使ったり

*2:Amazonヤフオク、その他物販

*3:TwitterSNSをはじめ、メールにチャットに音声通話、オンラインゲームからソシャゲまで

*4:Webサービスを自分で作って公開

*5:2012年現在

*6:狭すぎるか

Gmailの宛先欄から名前を消すスクリプト書いたよー

2015/02/26 version0.91 公開しました。

Greasemonkeyを知っているか、またはChromeを使っている方向けです。

右クリックして「リンク先を別名で保存」などでダウンロードしてください。
インストール方法はこちらを参考にどうぞ。

宛先欄に入る名前って気になりません?

新社会人の方は研修で『メールの送り方マナー』などを学ぶと思いますが、その時に必ず「To欄やCc欄に入れたアドレスは相手にそのまま届くので、敬称をきちんとつけて、失礼のない名前で送るようにしましょう。」とか注意を受けると思うんですよ。

具体的には、たとえば上司の名前を「うすらハゲ」にしてGmailの連絡先に登録してたとするじゃないですか。その場合、To欄で「うすら」ぐらいまで入力すると、賢いGmailが上司のメアドを変換候補に出してくれるわけです。いやー便利ですねGmail。で、変換候補を決定すると、To欄はこうなります。

  • "うすらハゲ"

このままメールを送るとどうなるかっていうと、上司のメーラー上でも、

  • "うすらハゲ"

というように、具体的に酷いあだ名で表示されることになるわけですよ。
で、こういうのは社内だったら「ごめんなさい」でいい(そんな適当な謝罪で大丈夫か?)んですが、部外者だと大問題に発展する可能性も少なからずあるわけです。国外なら外交問題ですよ?

そこで「Gmail-address-name-sweeper」の出番です

こいつをインストールしておくと

  • "うすらハゲ"

このアドレスを入力した後、メールを送信する直前に

というように、勝手にメアドだけ変換して送信してくれます。

さあ、このスクリプトがあれば、もう誰をどんな名前で登録しても大丈夫だぞ!…と言っても、事故る危険性は常にありますので、あまり非常識な名前でアドレス帳に登録しないようにしましょうね。
仮にトラブったとしても、私は責任取れませんからね!

不具合などありましたら〜

  • 不具合やご要望やスクリプトの改善要求はコメントまでどうぞ
  • 最新のChromeMac OS X)でしかテストしてません
  • 動かなかったら環境を詳しく教えてくだされば対応できる…かも?
  • (全てに対応できるわけではありませんのでお許しください)

以上

ではでは、当スクリプトで若干快適なインターネットライフを。

なぜディズニーランドのバイトの質が高いのか?

私の答え(仮説)を3行で説明すると、

  • ディズニーランドを愛してる人しか応募してこない
  • ディズニーランドを愛してる人のトップ数%しか採用されない
  • ディズニーランドを愛してる人が上司になるためその要求も高い

となる。

つまり、ディズニーランドは有象無象のバイトの質を、なんらかの秘密の法則によって高めたのではなく、彼らは彼らの生産物(ディズニーの作品)によって熱狂的なファンを増やし続けており、その中からごく一部がアルバイトという形でディズニーランドに貢献しているから、バイトの質が高いのだ。

バイトは金のために働くと思ったら大間違い

自分が夢にまでみた世界の中で働くこと。そして自分も人々に夢を与える存在の一部になること。こんなに生きがいのある仕事が他にあるだろうか。ディズニーランドのバイトからすれば、あの場所が己が輝く舞台なのであり、夢の到達点、または出発点なのである。

ただし真似できません

人に夢を見せたり、夢を具現化する唯一無二の仕事は、強烈に人を惹きつける。
ディズニーランドしかり、Appleしかり、昭和の頃のソニーしかり。
その構造は、自分たちの価値を人々に伝導するという視点で、宗教とも似ている。

そういう企業や組織であれば、そこで働く人たちの質は、採用とタスクと信頼の与え方次第で極限まで高めることができる*1

逆の場合、つまり競合との競争にあえぐ企業や組織ならば、ディズニーランドやAppleのような個々の質を望むのはやめた方が良い。あれは人々から熱狂的な『肯定』を集めている集団だけが取れる手法であり、一般的な経営者が一朝一夕に真似してできることではない。これは採用や教育だけでなく、マーケティングの領域でも同様ですね。

そこから得られる教訓は?

成功者の法則の中に、真似するだけで応用が効く法則など一つもない。

なので、成功者や天才のやり方、生き方を見るときには「どのような法則があるのか?」ではなくて、「なぜそのような法則や価値観を持つに至ったか?」その経緯に着目しましょう。もし、その点を読み解けたならば、きっと今日からいきなり役に立つ重大なヒントが見つかることでしょう。

*1:無論、全員を狂信者だけで固めてしまったら崩壊するし、コストが重要課題に据えられるような組織において狂信者は邪魔なだけだが

今見てるページURLをbit.ly短縮してHootSuiteからつぶやくブックマークレット

HootSuiteのブックマークレットを使うと、短縮URLがow.lyになります。

個人的にこのow.lyというURLが嫌だったので、ちょっと強引な手で、URLをbit.lyで短縮した後にHootSuiteを使ってTweetできるようにしてみました。

筆者はChromeで動作確認しています。他のブラウザでも動くといいな。

使用方法(Windowsの場合)

1. HootSuiteにログインする
2. bit.lyのアカウントを作成する
3. bit.lyのAPI Keyを確認する
4. 下記のJavaScriptをブラウザのブックマークに入れる

    • bit.lyのユーザー名とAPI Keyは自分のものに書き換えてね
javascript:(function(){var un='bit.lyのユーザー名',key='bit.lyのAPI-Key';window.bitlyhootsuite=function(o){var f='https://hootsuite.com/hootlet/load?',p='address=&title='+encodeURIComponent(document.title)+' '+encodeURIComponent(o.data.url),u=f+p,a=function(){document.location.href=u;};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else a();void(0);};sc=document.createElement('script');sc.charset='utf-8';sc.src='http://api.bitly.com/v3/shorten?format=json&callback=bitlyhootsuite&login='+un+'&apiKey='+key+'&longUrl='+encodeURIComponent(document.location.href);document.getElementsByTagName('head')[0].appendChild(sc);})();

5. つぶやきたいWebページを開く
6. 先ほど保存したブックマークレットを起動する

その他の説明など

  • 「技術的に分からない!」という方は無理に使わないでください
  • 今ではHootSuiteのow.lyを使っても変なフレームは付かないそうです
  • なので、「なんかow.lyが嫌」とか「bit.lyが好き」で、しかも「どうしてもHootSuiteからつぶやきたい」かつ「bit.lyからURLをコピペするのが面倒」という複雑な事情がある方のみご利用ください
  • ポップアップウインドウで開かないのは仕様です。ブラウザのポップアップブロックにひっかかるのがアホらしかったので、もうページ転送でいいやと
  • 特定のブラウザで動かない場合は、OS名、OSのVersion、ブラウザ名、ブラウザのVersionなどを教えてくだされば対応できるかもしれません
  • セキュリティ的に問題があったらコメントで教えてください
    • bit.lyのパスワードが抜かれるのが怖い!という場合は、callbackの名前を書き換えれば良いような気がする…けど…どうだろう
  • もっと短くできるよ!という方はご自由に短くして公開してください

mixiの昔の足あと機能を脆弱性なしに復活させる方法

mixi足あと廃止に寄せて』というエントリを読んで、mixiからリアルタイムの足あと機能が廃止されたことや、その問題点がいまいち把握されずに復活の議論がなされているらしいことを知った。

そこで両者の希望を叶える技術的な対策を考えてみた。

mixi内部の技術者さん方も、たぶんこんなこととっくに検討してて、実装や運用がコスト的に見合わないとか、ユーザーの使い勝手が悪くなるから「実装しない」という判断をしただけだと思うけれど。

仕様概要

  1. 足あと記録に関してCSRF対策を実装する
  2. CSRFが検出された場合にアクセスを拒否するのではなく「あなたの足あとが◯◯さんに通知されますが、それでも閲覧しますか?YES or NO」という選択肢だけが表示される
    • YESが選択されたら足あとを記録して当該ページ内容を表示する
    • NOが選択されたらmixiのhomeにすっ飛ばす
  3. 足あと記録は従来通りサーバー側の処理だけで行う

仕様概要は以上。

注意点は5つ

  • mixi内からリンクされた場合には警告が出ない。CSRF対策は外部からリンクされた場合限定なので当然なのだが、これにより様々な誤解をする人が発生すると思われる。
  • ログインしていなかった人の場合、外部のリンクを踏む→mixiログイン画面に飛ばされる、ということになり、そこでログインしてしまえばCSRFと見なされないのだが、その場合にも特別に警告する仕様が必要かも。
  • 足あとCSRF対策用のデータはGETで送信されるため、Referer漏れ対策が必要になる。ただmixi運営側から見れば、「セキュリティを高めるため」という合理的な理由でリンククッション(て呼ぶの?)の導入ができ、広告を貼る場所の確保ができる。
  • 足あとCSRF対策用のデータはログイン時に生成するか、リクエスト毎に生成するか要検討。ログアウトしない人が多いとか、他人に自分が見ているmixiのURLを教えただけで漏れるという問題があるので、リクエスト毎に生成した方が良さそうではある。
  • こんな面倒くさい仕様になってもユーザーは喜ぶの?

得られる効果

  • mixiユーザーが意図せずに第三者にアカウント特定されることを防げる
  • mixiユーザー内の1万5千人(?)が望む足あと機能の復活が成し遂げられる
  • 足あとの記録処理をユーザー側が任意に止めることができない*1

その他

何か穴や見落としがあるような気もする。技術的に抜けてる点があったら教えてください。勉強になります。

*1:監視カメラとしての役割を一応果たせる。一応。

頭が良い人になるには「自分は頭が良い」という思い込みを捨てること

id:yuhka-uno さんのエントリからインスパイア。

上記エントリでは「論理的=格好良い、感情的=格好悪い」という考え方を捨て、相手や自分の感情を見よ、という結論になっている。確かに、感情を解さないのは頭が悪い人の特徴であると思う(自分は未だにそうだから)。

当エントリでは、それとは少し異なるアプローチで頭が良い人への道を探ってみたい。

まず「自分は頭が良い」と思い込むと脳はどうなるか?を考えてみる。すべての悲劇は、この思い込みから始まると言っても過言ではないのだ。

「自分は頭が良い」を証明するために働いてしまう脳

脳は穴埋め問題が得意である。「自分は頭が良い」ということを証明するために、ありとあらゆる情報処理を勝手に開始する。

  • ◯◯ができれば、自分は頭が良い

脳は、この◯◯の中身を瞬時に多数発見することができる。頭が良いとはどういうことかの定義や考察など一切必要なく、一気に答えに到達する。それがノイマン型コンピュータとは異なる脳みその素晴らしいところだ。下記にいくつか◯◯の例を挙げる。

  • 他人を馬鹿にできれば、自分は頭が良い
  • 他人より物を知っていれば、自分は頭が良い
  • 他人の間違いを指摘できれば、自分は頭が良い

などなど。で、この答えには、ある共通した特徴がある。

自分は頭が良い=自分は常に正しい

自分は常に正しいということは、人の話を聞いて自分の考えを書き換える機会が失われるということである。

なぜなら、それで自分の意見を書き換えると自分が間違っていたことになり、自分は頭が良いという思い込みを証明できなくなってしまうから。

これが無知の知*1を大幅に遠ざけることになる。

自分は常に正しいと思い込んでる人の悲劇喜劇

「自分は常に正しい」を維持しようとすると、

  • 他人が失敗することを望む
  • 自分が理解でき、他人が理解できないことを喜ぶ*2
  • 知ったかぶりをする(知識量でも負けられない)
  • 自分の間違いや失敗を認められない*3
  • 失敗を認めないせいで、そこから教訓を得られない
  • いつまで経っても成功体験から逃れられない

こういう人間ができあがる。えー社会では時々見かけますね、こういう人。かくいう私も、新卒で就職してから3年間はこんな感じの頭が悪い人でした。大変恥ずかしいです。

まとめ:頭が良い人になるには

いろいろあるけれど、とりあえず、

  • 「自分は頭が良い」という思い込みが、馬鹿への道だと知ること
  • 自分は無知である、と知ること
  • 議論に負けた方が勝ちだと思うこと*4

これくらいが必要です。

で、ひとつ大事な注意点なんですが、今自分の身近にいる「自分は頭が良い」と思い込んでる人に対して、上記を説明するのはやめてください。

なぜかって、これを聞き入れられる柔軟な人だったら、そもそも「自分は頭がいい」「自分は常に正しい」「周りは全員馬鹿ばっかりだ」なんてこと思わないからね!

そういう人は、いつか何かのきっかけで大きな問題(特に人間関係の問題)にぶち当たるでしょう。その時に初めて自分自身で「何かがおかしい」「上手くいかない」「自分が変わらなければ」と気がつきます。その時が来るまでは生暖かく、少し距離を取って見守り、時折「◯◯さん、頭イイですね」って褒めてあげてください。それが、

  • 自分は頭が良いと思い込んでる人を活かすベストの対応

だと思います。では皆の検討を祈る!

*1:自分が無知であることを知っていること

*2:だから難しいことを難しく話すことしかできない

*3:誤魔化す、なかったことにする、他者のせいにする

*4:新しい見方や考え方が増えるから