「ネットのサービス」カテゴリーアーカイブ

ときめきアンフォロー – KonMariメソッド風ツイッターfollowee片付けサービス

新サービス Tokimeki Unfollow 。サービス自体はよくあるツイッターのフォローを止める補助ツールなのですが、そのネーミングやデザイン動機が「こんまり」こと近藤麻理恵氏の片付けベストセラー本から来ていることが驚きです。

サイトにアクセスし、Twitter のアカウント連携(念のため自分のメインアカウントではやってません。ツイートする権限も要求されるので)をすることで、フォローを片付けるツールが立ち上がります。

「こんにちは@ナントカさん、フォローしている n 個のアカウントをコンマリしましょう」 コンマリは動詞か!

古い順やランダム順(最初に指定できます)で、このように、今フォローしているアカウントの最新のつぶやきが表示され、「まだトキメキますか? (spark joy?)」と尋ねられます。

フォローを続けるか、止めるか、どちらにしてもそのアカウントについては「片が付いた」というメッセージが出て、次のアカウントの判断に移ります。これを繰り返していくだけ。

他に、片付けの際に相手アカウントのプロフィールも表示するかどうか(オススメはオフだそうです。肩書よりもツイートを見て決めよう、と)や、アカウントをツイッターのリストに保存する機能などもついています。

サービスはGlitch上で動いていて、ソースコードも公開されています。

日本人が考案した家の片付け手法がアメリカで大流行らしい、というのは、最近よく英語のニュースでいろいろ上がってくるので感じてはいるのですが、便乗したwebサービスまで出てくるとなると本物だなと。

# Twitter上で自分でアンフォローした方が安全で速いのではという突っ込みは無しで。

via Motherboard

Uncover Harassers – #MeTooされた有名人の名前をハイライトするブラウザ拡張

Uncover Harassers は、セクシャルハラスメントの告発を受けたことがある有名人のリストを保持し、ブラウザのニュース記事などでその有名人が出てきた時にハイライト表示するというChromeブラウザ拡張です。

例として出てくる画像では、一年前に5人の元生徒らから告発された人気俳優ジェームズ・フランコ氏(James Franco)を例に使っています。左が通常のニュース記事なら、名前の部分が赤くハイライトされて目立っています。

さらに、ハイライトされた名前に対して、どのような告発がいつ有ったか、といったソースを辿れる情報も表示されます。

氏名やニュース概要、ソースのURLなどの情報はすべて拡張のソース内にありました。これとツールチップのTippy.js、ハイライターのmark.js が同梱されているだけなので、とりあえず今のv2.3.0 はおかしな動きはしなさそうです。データの更新でバージョンが上がる作りなので、先のことはわかりませんが。

気になる名簿の根拠ですが、タイム誌によるこちらの特集記事やニューヨークタイムズの記事を参考としているそうです。タイム誌の記事では、ハーヴェイ・ワインスタイン氏に対するMeToo告発の後に告発を受けた、実に142人もの有名人が列挙されています。

載ってない告発された有名人については、フォームで受け付けて更新するということ。

作者のサリム・ハックさん(Sarim Haq)は、一か月ほど前にジェームズ・フランコ氏の出演した映画「ディザスター・アーティスト」の感想をフェイスブックで書いた際に、友人にフランコ氏のMeToo騒動について初めて教えられ、ひどい行為をしたことを認識せずに有名人の宣伝に加担してしまうことを問題と感じ、サイドプロジェクトとして Uncover Harassers を作り始めたそうです。

サリムさんは TheNextWeb の取材で出た「告発された、ではなく有罪になった人のリストであるべきでは?」という問いに対し、「告発された(accused)」と表示する線は逸脱していないのと、その人物に対してそのような疑義がありニュースになっている、という事を示しているだけである、と答えています。さらに知りたければリンク先から自分で調べられる、ので良し、というスタンスのようですね。

via TheNextWeb

ASCII World – クォータービューのASCIIテキストで描かれたブラウザゲーム

ascii world は、ブラウザで動く ASCII ベースのゲームです。

キーボードの W・A・S・D キーで上下左右にキャラクター(線ですが)を動かし、Jキーでジャンプ。チェックポイントを通ってゴールを目指します。道から外れて落ちたら面の最初に戻される。ルールは単純です。

テキストで描かれているから「テキストゲーム」、しかし2.5Dゲームでもあるわけです。ブラウザでこれを描画する意味はともかく。

ソースコードがGitHub で公開されています。ソースからすると現在9面あるようですね。そこそこコンパクトな関数で各面のフィールドを生成しているよう。コメントも多めです。

via Hacker News

NSFW画像検知APIの優劣比較

NSFW(Not safe for work = 職場閲覧不適)画像、わかりやすい言い方だとエロ画像ですが、画像を渡すとその画像がエロかどうか判定してくれる API というの、結構たくさんあるんですね。

なぜこの種のAPIに需要があるかというと、ユーザー投稿型のwebサービス運営において、広く見せられないような画像を投稿されることが運用の大きな障害となるからでしょうね。悪意のあるユーザーや考えなしのユーザーによって法に触れたりサービスのイメージが悪化するような画像を投稿され、さらにそのことがソーシャルメディアで喧伝されたりすれば、サイトの評判に関わります。

Facebook や twitter のような超大手なら、画像の判定もいくらでも内製できるでしょうが、そうでない小さなサービスでは、多少お金を払ってでも簡易に判定を外部に任せたいところでしょう。

…と、書いていたら、Tumblr が(おそらく Apple に iPhone アプリを禁止された影響で)アダルトな投稿を禁じるという方針転換を発表し、同時に開始したアダルト画像のフィルタリングの誤判定がひどいらしいので、NSFW 判定は多数のエンジニアを抱える大手でも難しい分野なのでしょう。

そんな画像検知のAPI を、Aditya Ananthram さんが、API の検出精度を実験したり、価格を比較したりしてくれています。

調査対象のAPIはなんと11個。このまとまったリストだけでも、取っ掛かりとしてはありがたいですね。

また、セーフ/アウトのアウトの種類もいろいろあるようで、API によっても分類は異なりそうですが、以下のようなカテゴリ分けで判定を試みています。

  • Explicit Nudity (露骨なヌード)
  • Suggestive Nudity (思わせぶりなヌード – 隠すところは隠しているが… みたいなやつ)
  • Porn/sexual act (ポルノ/性行為)
  • Simulated/Animated porn (CGやアニメのポルノ)
  • Gore/Violence (流血/暴力)
  • Safe for Work (職場で問題ない)

実験するにあたって、当然、本物の NSFW 画像が必要となります。ブログ記事自体は必要なところはボカシが入っていて、SFW(safe for work = 職場安全)ですけど、中にGoogle Documents へのリンクがあり、リンク先には今回使用された、正しく分類されたデータが入っています。追試とかしたい方は注意してください。

カテゴリごとに強いAPIはありますが、Google のものがおおむね良い成績を上げたそうで、さすがというところでしょうか。また、Gore/Violence や Safe for Work というカテゴリはどのAPIでも判定は難しいようで、各APIでも誤判定が多かったそうです。このへんは元のテストデータにしても正解かどうか意見がわかれそうですし、「職場で問題ないかどうか」なんて普遍的にわかるものでもないですからね。

擬陽性・偽陰性の多寡を並べたグラフ(Overall Comparison セクション内)や、呼び出し回数に対する価格(Pricing セクション内)などもまとめられているのでこれらを併せて比較することで、予算と精度からどのAPIを調べてみるといいかの手がかりが得られそうです。

これが2018年のウェブサイト

Websites in 2018は、最近のウェブサイトのトレンドを忠実に表したサイトです。ただしコンテンツはありません。

「最近のウェブサイトあるある」を再現しているわけですが、新しいサイトを訪れるたびに、いかに色々な注意書きやら何やらを見せられ、それに応じないといけなくなっているか、という問題点が鮮やかに指摘されていていいデモだと思います。これが当たり前になっていくのは残念だと思いますが、今後どうすればいいんでしょうね。

英語のままでもわかりやすいかと思いますが、ソースコードに「ローカライズはご自由に」とあるので、日本語に翻訳しました。2018年のウェブサイト

via Hacker News

invaderz – 遺伝的アルゴリズムで動きを変えるインベーダー風ゲーム

victorqribeiro/invaderzは、上から襲い掛かるインベーダーを砲台で撃ち落とす JavaScript のゲームです。

一回に6匹降りてくるインベーダーを、地上に近づけないように撃ち落とす必要があります。合計で5匹が地上にたどり着いたら、ゲームオーバーとなります。また、6匹の攻撃が終わると、新たに次の6匹が登場します。

攻めてくるインベーダーの形はランダムに打たれたドットのパターンなのですが、このドットの形に応じて、どのように動くのかが表されています。

設定によると、撃ち落とされた瞬間のインベーダーは、母船に対して「どこまで侵攻できたか」の情報をアップロードし、次の世代では、優秀な結果を残したインベーダーの形を掛け合わせた攻撃隊が編成されます。

この次の世代を生産する時に、優秀だった個体からランダムに上下半分ずつや左右半分ずつの形をコピーしたりして新しい世代を作ることで、これまで良い結果を出したインベーダーの特徴を併せ持つ世代が作られる、ということになります。(この際に、10%の割合で突然変異も起こります) この当たりはソースコードの Genetics.js を見るとなんとなくわかります。

動くデモも公開されていますが、今はアクセスしづらくなっているようです。ソースコードを持ってくれば手元で簡単に動かすことはできました。

30世代ほど遊んでみましたが、後半になると確かにインベーダーの動きが左右に大きくなり、狙った弾を避けている(避けているように見える、だけですが)ことは増えます。ただ、進化の度合いはかなりゆっくりかなと。何百世代とやるととても優秀になるかもしれませんが、5回失敗すると終わりなのでそこまでもっていくのは大変そうです。

いろんな人が育てた結果が共有されたりすると、面白い避け方をするインベーダーがたくさん作られるかもしれないですね。

シューティングゲームなんて、結局のところコンピューターはいくらでも反応速度を上げられるため、本気でやられたら人間が勝てるものではないのですけど、こちらの打った手を学習して相手の攻撃が変わる、というギミックで、プレイするユーザー毎に違うゲーム体験を作ったりできるということはあるのかも、と思いました。

via Hacker News