秋元@サイボウズラボ・プログラマー・ブログ

 

dockerizeコマンドで他のDockerコンテナの立ち上げを待つ

「Docker で動くようにすること」(to dockerize)じゃない、ツールの方の dockerize (jwilder さん作)を使って、同じDocker network 内(setup_remote_docker したもの)に立ち上げ中のコンテナの準備ができるのを待たせる方法。

# 名前が紛らわしいのは検索性を低めてると思いますが

どうせならツールも自力でセットアップせずに docker hub にあるものを呼べばよいということで、

docker run jwilder/dockerize -wait http://sample.test/ -timeout 3m -wait-retry-interval 5s

上は、http://sample.test/ が応答を返すまで、最大3分間、5秒おきに問い合わせ。

CircleCI の中で待ちたかった(コンテナの立ち上げが終わってからテストを流す)ので、ターゲットのコンテナと同じ Docker network でこれを呼ぶと、.circleci/config.yml は

    - steps:
       (中略)
      - run:
          name: Run Docker Containers
          command: docker-compose up -d
      - run:
          name: Wait until the target docker container fully set up
          command: |
            docker run --network my_network \
              jwilder/dockerize -wait http://my_service/about/ -timeout 3m -wait-retry-interval 5s
      - run:
          name: テストとか

こんな感じでいけました。

CircleCI公式のDocker image には dockerize も入ってる

しかし、その後、CircleCIの用意してくれているDockerベースのDocker Container を使う場合、そのコンテナには Docker だけでなく Docker Compose や Dockerize も含まれているということに気づきました。

「あれ? じゃ上のコード無意味で、直接 dockerize を呼べばいいだけでは?」と思い直し、これを試してみたのですが、

      - run:
          name: Wait until docker container fully set up, from the same docker network
          command: |
            dockerize -wait http://my_service/api/doc -timeout 3m -wait-retry-interval 10s

ネットワークが違うのでアクセスできません。そりゃそうか。CircleCIの中で立ち上がったDocker MachineのIPアドレスが取れれば、それでアクセスできそうだけど。

ドキュメントにありました。同じコンテナか、同じネットワークのコンテナからのアクセスとするのが正しいやり方のようです。CircleCIが使ってるprimary のコンテナにはもう Dockerize コマンドの実体があるので、同じものを再度リモートから取得するのはもったいない気もしますが。

sleepでwait

CircleCI のドキュメントのサンプルでも

      - run:
          command: |
            git push heroku fan-in-fan-out:master
            heroku run rake db:migrate
            sleep 5 # sleep for 5 seconds to wait for dynos
            heroku restart

みたいなことが書いてあって、”sleep 5″って、それいつでも大丈夫なの? と思ったので調べました。まあサンプルはサンプルなので。

 

Wiredの「Facebookが顔写真認証をテスト中」は誤報のような気がする

これが発端のツイート、「フェイスブックにログインできなくなってると思ったら自撮り写真のアップロードを要求された」という体験なのですが、これをWired が取り上げて、フェイスブックが顔写真をCaptcha とした本人認証を実験中、みたいに報じ、他メディアもそれを参照する形で追ってるわけです。

しかし、7か月前にredditでまったく同じ体験が公開されていますし、フェイスブックのサポートコミュニティでも顔の映った写真をアップロードしろと出てきましたが、どうしてですか?というFAQ として公開されています。

自分の写真をすでにたくさん上げているユーザーなら、それらと同一人物か判定することも今ならできなくはないでしょうけど、写真をアップロードしたかどうかに関わらずこれは発動している(どちらかというと、二つ目のアカウントを使おうとしたら、とか、家から遠く離れたところでログインしようとしたら、とかの事例が多い)ので、AIで本人確認とかそういう高度な話ではなく、免許証のコピーをアップロードさせるとかと同じく、「スパマーやなりすましなら時間をかけて対応してこないだろう」という、以前からやってる人力確認の話ではないかなと思うんですよね。

 

パリス・ヒルトン氏、セルフィー「発明者」として名乗り出る

パリス・ヒルトンさんが、11年前にブリトニー・スピアーとセルフィー(自撮り、自画撮り)を発明したとツイートしてたようで。

まさかセルフィーの起源を主張する人が出てくるとは。なんか盛り上がってます。

1999年 「ブレア・ウィッチ・プロジェクト」

1999年 ビル・ナイ 飛行機内、使い捨てカメラで

1991年 「テルマ&ルイーズ」

https://twitter.com/Aanth/status/932339732117323776

1985年 マドンナ「スーザンを探して」

不明 マリリン・モンロー

不明 サミー・デイビス・ジュニア

1930年代 フランク・シナトラ

1910年の写真だそうです。これは面白い。

こんなのが見つかっただけでも、最初のバカツイートには意味があったかもしれません。

タイマーで自分を撮るとか、何分もじっとしないと映らなかった時代の自分撮りは、セルフィーと言っていいかわかりませんが、カメラを自分の手に持っていれば、鏡に映した像を撮影したものも含めて、セルフィーだと考えている人が多いようです。

via Bored Panda

 

iPhoneの音声認識、トロンボーンの演奏を妻にメッセージしてしまう

ジャズ・トロンボーン奏者のポールさん(@JazzTrombonist)のツイートが話題を読んでいます。

音声入力を使って妻にメッセージを送ったポールさん、「あとで買い出しに行かなきゃね」と書いた後にトロンボーンの練習を続けたそうですが、妻の方には「ウーウーウーウー フーフーフーフー ウーウーウーウー」という謎のメッセージが大量に届いたということ。

いいねが20万件もついたことを受けて、ポールさんはツイッターで紹介したことが起こった様子を動画で再現しています。

こういった日常音も、音声認識技術が学習を続けて進化すれば、メッセージとしては取り込まず無視したり、映画のクローズドキャプションみたいに、「(トロンボーンの演奏)」など情景として説明してくれたりしそうではあります。

それまでは、いろんな楽器を音声認識に食わせてみて、どんな結果になるか試すと面白いかもしれないですね。逆に、人間の言葉でないものを与えて、ちゃんと言葉に認識させる、という遊びもあるかもしれません。

via Geekologie

 

トップ100万ウェブサイトのrobots.txtを解析した人とその結果

An Analysis of the World's Leading robots.txt Files(世界のリーダーたちの robots.txt ファイル)というブログで、世界の上位100万サイトの robots.txt を解析したベン・フレデリクソンさん(Ben Frederickson)の話が出ていました。

フレデリクソンさんは、解析結果から、3つの面白い気づきを紹介してくれています。

Googlebot にしか見せないサイト

Googleボット以外のすべてのボットを拒否する、という設定のサイトは意外に多いそうです。

大手サイトでは例えば、フェイスブック(robots.txt)が厳しいということ。実際に見ると Apple や Baidu など有名どころのクローラーはいくつか受け付けているのですが、基本的には「その他は不許可」という指定をしています。

アメリカ国勢調査のサイトも、Google, Yahoo, Microsoft の3社のbotしか受け付けておらず、例えば真剣にGoogle の対抗馬を目指しているような DuckDuckGo の bot はアクセスできません。

記事中に、主要言語ごとの人気サイトで DuckDuckGo のクローラを許すかどうかの表があるのですが、かなり多くのサイトがアクセスを禁止しています。DuckDuckGo を排除しているというわけではなく、よく知らないものやマイナーなものはすべて不許可、という態勢ですね。

今後、新しい検索エンジンや、その他のクローラーを使ったサービスが出てきても、多くのサイトはアクセスが禁止されているのが現状ということですね。

みんながブロックするクローラー上位ランキング

より多くのドメインで拒否されているクローラーは何だろう? という集計もしています。一番人気は MJ12bot 。続いて AhrefsBot, Baiduspider, Nutch… と続きます。

日本語のブログでも、このあたりの bot を止めたい、アクセスが多すぎて困る、という記事を見かけるので、いろいろなサイトの運営者が迷惑と思っているのでしょう。Google bot なら見に来ればその後の実ユーザーの来訪も見込めますが、ユーザーを連れてこないのにボットに絨毯爆撃のようにアクセスされても困るだけですからね。

サイトを丸ごとダウンロードするようなツールの bot も、禁止リストに入っていることが多いそうです。

robots.txt で求人

Pinterestなど、robots.txt のコメントで人間向けの勧誘をしているサイトも多いようです。

ピンタレストは採用中!(Pinterest is hiring!)

ロボット用のファイルを読んでいるあなたがもし人間なら、デジタルオーシャンで働くべきだ

私たちもロボットは好き。私たちとボットについて語り合いましょう(Angel.co)

HTMLのコメントにもこういうのありますが、実際これで採用につながることってあるんですかね?

ソースコード

Pythonで書かれた robots.txt クローラのコードは Github で公開されています。

via Hacker News