AI Dungeon – AI自動生成で無限に遊べるテキストアドベンチャーゲーム

AI Dungeon は、テキストアドベンチャーゲームをAIにより自動生成してくれるというPython 製のツールです。 Jupiter Notebook で動くものが配布されており、Google Colaboratory 上で自分の AI Dungeon を動かすことができます。 ブラウザで数分待つと始まる。簡単です。 大昔にあった Zork シリーズ的なUI。「動詞」で始まる命令文を入れることで、何かが起こります。 「それをやるとループしてしまいます」という返答だらけになり詰まったこともありますが、それでも大昔の同種のテキストアドベンチャーゲームに比べると、かなり自由度が高い。思いついた動詞で適当に命令しても、それに合わせた結果を返してくれます。このへんはさすが自動生成。 ただし、ストーリー展開に整合性が取れているかというと、自分が遊んでみた範囲では、辻褄が合わなかったり急に場面が変わったりの連続で、寝ている時に見る夢に近いような印象を受けました。 AI Dungeon

The Deep Sea – 深海の深さをブラウザの縦スクロールで表現

The Deep Seaは、深海の生物を紹介するウェブサイトです。 面白いのは、深さを縦長のウェブページで表現しているところ。 スクロールダウンすると、海の深さが少しずつ深くなっていき、その深さで観察される生物が表示されます。 生物の名前やその特徴の紹介文などはすべてテキストなので、Chrome ブラウザの翻訳機能を使えば自動翻訳の日本語でも読むことができます。 それにしても、このページ、長い長い。ページの最後は、1960年にマリアナ海溝の最深部に到達したトリエステ号のチャレンジを紹介しています。 via

abbreviate – 英単語の省略形を機械的に決めてくれるツール

dnnrly/abbreviate は、英単語を決まった規則で省略してくれるという、単機能のツールです。 Goで書かれていて、フルに書いた複数の英単語の並びを、内蔵の辞書で決まっている短縮形に置き換えます。 指定によってキャメルケース、パスカルケース、スネークケースなどにもしてくれます。 辞書ファイルに定義されていない単語は出ないため、実用にするにはもっと辞書の拡張が必要かなとも思います。 僕は基本的には省略形の利用に反対なのですが、プログラミング言語や環境によっては、命名に文字数の上限があるものもあるでしょう。abbreviateコマンドの作者は、AWSのリソース名をつける際に上限が問題になることが多くてこのツールを思いついたということです。 省略を多用するプログラマーやそのチームにおいて、元の英単語が必ずこの省略形になる、という保証をツールでするのであれば、ツールを使わないよりはずっと良いのかなとも思いました。 via Hacker

facepalm

有名WordPress プラグインのYoast SEO、500万+のブログ管理者に望まぬバナー広告を表示

Yoast SEOといえば、ワードプレスのSEO対策をしてくれるプラグインで最も有名なもののひとつです。 そのプラグインが、北米の国民的特売日であるブラックフライデー前に、ワードプレスの管理画面に派手な広告バナーを勝手に表示した、として騒ぎになっています。 https://twitter.com/indextwo/status/1200070409741357056 バナーのサイズは 1015px x 102px、しかもYoast プラグインのページではなく管理画面のどのページにいっても表示されたそう。 Yoastプラグインのサポートフォーラムもたいへんなことになってます。 無料で使えて信頼もあり、2万5千件以上ある過去のレビューのほとんどは星5つなのですが、今回の件で雪崩のような不評コメントが延々と続いています。 WordPress

playball – コンソールでメジャーリーグの試合経過を見るツール

paaatrick/playballは、ターミナル画面でMLBの途中経過を見るためのツールです。 起動すると現在行われている試合のリストが表示され、選択するとその試合のここまでの打席結果など詳細も表示することができます。 …はずなのですが、ローカルで試してみたのですが、エラーになってしまいます。調べると試合がないオフシーズンはエラーメッセージが出るだけというチケットがありました。動かすのは春までお預けですね。 CUIの描画にはblessed とReact-blessedが使われています。 Reactベースなんだ。 via Hacker

JSONCrush – JSONをURIに圧縮して載せるためのライブラリ

KilledByAPixel/JSONCrush は、JSONをURLに載せやすい形に変換するライブラリです。 JSONCrushのデモサイト。JSON形式のデータを左上に入力すると、それをテキストとして圧縮し(↓)、さらにURIとして使える文字に縁故度しています(→)。 今回入れてみたJSONでは、そのままURIエンコードした場合に比べて52%、約半分のサイズとなりました。 URLにユーザーが入力した結果のJSONデータをなるべく小さくして載せるというのがライブラリの目的です。URLに再現のためのパラメータが全部載っていれば、結果をブックマークしてもらえばいつでも同じパラメータのページが再現できます。サーバーサイドでいろいろ面倒な処理をして覚えておく必要がありません。 そのままURLEncodeする手もあるけど、URLのサイズ上限(2000バイトちょっと)に引っ掛かるのは避けたい、と。HTTPパラメータとして個別に受け取ればもっとコンパクトにできるのでしょうけど、JSONのまま渡せるのは場合によっては楽なのでしょう。作り手側に楽という意味ですが。 使ってるJSCrush ライブラリが変換部分を担っていて、これは特定の文字列内でテキストをエンコードしてくれるもののようです。JSCrushのデモサイトはこちら。 JSCrush は minify したものしかないらしく、 その動作を解析してる人がいました。この解説によれば、JSCrushライブラリは、1KbyteのJavaScriptで何ができるか、というコードゴルフコンテストの2012年の作品で使われたものだそうです。 via Hacker

Codem Ipsum – ソースコードを Loren Ipsum化

JavaScript のソースコードを左側のペインに入れると、Loren Ipsum風に関数・変数名を置き換えて右側に表示してくれる、というwebサービスです。 本やウェブサイト制作時の文章のダミーとして使われることで有名な Lorem Ipsum のように、ソースコードのダミーとして使うことができるということ。 作者は「文法的には正しいまま、ダミーのコードを作りたかった」とのことです。変換後のコードも動くのか、は不明です。たぶんいろいろ不具合がでるんじゃないかな。 ソースコードは公開されたサイトのhtmlそのままですが、GitHub にも上がっています。 via Hacker

Net Work Days – 見積もりに土日を入れる? 週7日と週5日で日数を数えるアプリ

Net Work Days は、開始日と終了日の二つを入力すると、その二つの間の日数を数えてくれるという単機能の Android アプリです。 この単純なアプリの特徴であり最大の差別化要素は、一週間を7日として日数を数える「普通のモード」と、一週間を5日として数える、「週末はちゃんと休むモード」の二通りで計算してくれるところ。 仕事を引き受ける時に、「週末までやってと言われたら、月曜の朝一までが締め切り」みたいなことを言う人もいますが、自分の時間を大事にしないと長続きしませんよね。 スマホアプリである必要はあまりなくて、コマンドラインやブラウザで計算できれば十分な気もするんですが。 via (58)

ロボトランプ – トランプ大統領本人が言ったかのようなスピーチ文を自動生成するbot

RoboTrumpは、トランプ大統領のスピーチ文そっくりの文章を生成するAIツールということです。 RoboTrump が生成した10種類の異なる政治カテゴリについてのフェイクスピーチと大統領本人の本物のスピーチを混ぜ、1000人の人にそれぞれが本物かフェイクか判定してもらったところ、正しく当てられた率は40%だったということ。ランダムに答えても50%は当たるはずなので、RoboTrump は本物以上にトランプ大統領らしいスピーチを生成した、と言えるかもしれません。 サイト上でこのテストを自ら試すことができます… が、全然わかりません。どれも本物っぽく見えてしまう。 テストの後に回答者の属性ごとの傾向が分析されていますが、保守派、トランプ支持者、通学期間が短い人、若者、ほど、そうでない人よりも本物・フェイクの両方のトランプ・スピーチを本物だと考えたということです。 via Hacker

Beetl – 犬のフン拾いロボット

Beetlは、ルンバのようなお掃除ロボットの屋外版ですが、アメリカの家によくある裏庭から犬のフンを拾い上げることに特化しています。

こちらが実際のフンを片付けているところの動画

「アメリカの3500万世帯が裏庭を持ち犬を飼っています」

そんなに!?

「犬のフンを拾って回りたい人などいません。そこですべての飼い主のためにコンピューターの目を搭載したロボットを開発しました」

犬のフン拾い専用とは、いくらなんでも特化しすぎじゃないかと思いましたが、アメリカにそこまで需要があるんじゃしょうがないですね。

コンピューターの目をイメージした動画ですが、「サーチ&デストロイ」とは穏やかじゃありませんね。たぶん実際には「デストロイ」はしてないと思われます。Beetl が集めてきたフンを捨てるのは持ち主でしょう。

via Geekologie

オートコンプリート世界地図 – 「日本は」「死にかけてる」?

Autocomplete は、グーグル検索の自動補完を使って世界各国を表した、少しヤバいオンライン地図です。

グーグルの検索ボックスで”Japan is “(日本は)と入れると、「あなたはこれを検索したいんじゃないですか?」と続く一文がいくつか出てきますよね。この地図は、ここで提案された文章が、多くの人が持つその国のイメージなのだろう、と仮定し、国の特徴として地図に書き入れているのです。

検索のサジェストはグーグルの利用者がよく探すフレーズを出しているため、本当にその国を表す言葉が出るとは限りません。

[北朝鮮は最高の朝鮮] これ、自国を地上の楽園的に宣伝すること過剰な独裁国に対する皮肉として有名なネットミームだそうです。

image credit: NASA

「ロシアは冥王星より大きい(Russia is bigger than pluto)」 これもネットミームだったそうですが、2015年の探査機ホライズンの調査で偽であるとわかったそうです(= 表面積比較で、冥王星の方が少し大きい)。

「日本は死にかけている(Japan is Dying)」 検索のサジェストにここまで言われてしまうとは… 検索サジェストの内容は利用者によっても変わりますが、自分の環境でも上位にこの Dying は出てきました。日本といえば衰退の代名詞みたいに思われているんでしょうか

「デンマークは刑務所」「スコットランドは本当は国じゃない」「ミャンマーはインドにある(違います)」「ニジェールはナイジェリア(違います)」など、コンピューターが統計の結果出した、という言い訳を添えないと危険なものもいろいろ出ていますね。

via Maps Mania

Counter – 英語でいくつまで数えると何時間(あるいは何十年)かかるか

Counter は、数を(英語で)数える際に実際に何秒(/何時間/何年)かかるかを教えてくれるwebサービスです。

「100」と入れると、「約3分」と出てきます。

これは、英語で one, two, three,… と hundred まで数えると、だいたい3分かかるよ、という意味です。お風呂で100まで数えると3分、ということ。

1万まで数えると14時間、100万まで数えると3か月。実際に数えるのなんて無理だろう、という大きな数列も、かかる時間を推定してくれる優れものです。

数える時間をどうやって推定したかはこちらのブログに書かれています。大きな数は発音するのに何秒もかかるので、ちゃんとそれを加味した計算となっています。

このマイクロサイトの開発はNext.jsTypeScriptNowを使って行われたそう。

Rotary Dial – ダイヤル電話のダイヤルをウェブ上に再現するライブラリ

使いどころがわかりませんが、一定年齢以上の人だけ使い方がわかる、ダイヤル電話式の入力インタフェースをサイトに設置できるライブラリがvictorqribeiro/dialです。

デモサイト

このダイヤルUIの使い方ですが、「黒の丸いところをクリックし、右側の三角のところまでドラッグすると丸が赤色に変わります。そこで手を離すと、その数字がテキストフォームに入力されます。」ということ。こりゃわからんわ!

via Hacker News

twelve70 – 服や靴とその色を選んだら、コーディネートを提案してくれるサービス

twelve70 は、シャツや靴など一つの種類と色を選ぶと、それに合わせた他のシャツ・帽子・靴・パンツ等のコーディネートを推薦してくれるというwebサービスです。

基準となる今持っている何かを

選んで、さらにその色を

選ぶと、たとえばワイン色のパーカーに対して合わせる持ち物のセットが、

この場合だと5セットでてきました。なんでも持ってるわけではないので、ぴったり同じ格好はできませんが、指示されたような色合いやデザインのものを組み合わせて着ると、特に色の組み合わせに関してそれなりのコーディネートになるということです。

今見ている一つのアイテムだけを入力にするというのは、簡単でいいですね。無難ならそれでいい、という人にとっては、これでも十分助けになるのではないでしょうか。

via reddit

クイズ – アメリカの市、いくつ知ってる?

How many US city can you name? (アメリカの市、いくつ知ってる?)は、アメリカの都市の名前を当てるブラウザゲームです。

フォームに都市名を入れて当たると、その都市が人口比に合わせた大きさの円で表示されます。当てた都市の総人口も下に表示してくれます。

住んでたことあるのにこんなものか? と言われそうですが全然出てこない… アンカレッジとかニュージャージーとか、カタカナでは書けても綴りが全然出てこないものも多かったです…

間違えたペナルティもないし、綴りが惜しいとかのヒントもくれないので、クイズゲームとしては飽きるのが早いかも。

URLに自分の答えた都市のリストが積まれるようになっているので、ブックマークすればいつでも続きを楽しむことができます。サーバ側にユーザー登録も状態を積む必要もないので、これはいいアイデア

via Hacker News

Sh**t! I Smoke – 大気汚染をタバコの本数で表すスマートフォンアプリ

Sh**t! I Smoke(*そったれ! 吸ってたわ自分)は、現在地の大気汚染度をタバコの本数で示す、というスマートフォンアプリ(iOS/Android)です。

Android版を動かしてみました。today だと0本だったので、weekly にしたところ、一週間あたりタバコ1本分相当の煙を吸っているのだそうです。

大気汚染とタバコの健康被害の強度比較については、こちらの記事をベースとした計算式を使っているということです。「おおざっぱに言うと、一日一本の喫煙はPM2.5 の22μg/m3 に相当する」としています。

タバコと大気汚染のどちらに対する警鐘なのか? 両方でしょうね。

世界の各地点における大気汚染の度合いについては、aqicn.orgのAPIを使っています。日本のほとんどの地域で良好な数字が出ているので、今はそれほど心配することはないのかもしれませんが。

ソースコードがGPL 3.0 で公開されていて、Expo + ReactNative ベースで作られているようです。

大気汚染APIなど利用しているAPIの使い方も含め、ビルド手順も書いてありました。

via Hacker News

[動画] よくあるプログラミング・チュートリアル動画

Every programming tutorial は、YouTube上にあまたある、残念なプログラミングチュートリアルを再現したパロディ動画です。

たった28秒の動画で、17秒あたりにすごい進捗がありますが…

喋り方とか構成とか、ちゃんとしたチュートリアル動画を作るのって結構たいへんですよね。

AdBlock Radio – 機械学習+ユーザー投稿でラジオ番組の広告やトークを飛ばす

AdBlock Radio は、名前の通り、ラジオ広告をブロックするためのサービス/ツールです。音声データから、ラジオ番組のトーク、音楽、そして広告を判別させ、広告やトークの部分を除外することができます。

広告抜きpodcastラジオ再生ツール buffer

AdBlock Radio を使ったwebアプリ buffer の Docker 版を手元で動かしてみました。起動して localhost をブラウザで開くと、カタログから podcast ラジオ局を最大4局まで選ぶ画面になります。

4局について、「音楽を飛ばす」「トークを飛ばす」のチェックを入れて開始ボタンを押すと、サーバアプリケーションが podcast データをバッファしていきます。

バッファされたラジオ音源は上のように色分けされていきますが、青が音楽、緑がトーク、赤が広告と思われる箇所となります。トークや広告を聴かない設定にしておくと、緑や赤に再生が差し掛かったところで、次の青まで再生が飛ばされ、音楽が終わっても次の音楽がすぐに続きます。

とは言っても判定も完全ではなく、ところどころに灰色の「何かわからなかった」部分がまだらに入ったりもします。CM の一部が音楽として再生されたり、ラップなど言葉が多い音楽ではトーク(緑)や不明(灰)の細かい帯のようになったりしました。

最初、なんで4局選ばせるのかな、と思ったのですが、CMやトーク部分を飛ばしてずっと聴いていると、その局の再生が最新に追いついてしまうから、次の局、次の局へと切り替わっていく作りなんですね。4局分のデータを使って、音楽だけを途切れずに流し続ける仕組みということになります。

ラジオ局の情報はCommunity Radio Station Boardから取得したものをベースにしているようです。このサイトにはコミュニティFM局を中心に日本のラジオ局も多数載っていますが、Adblock Radio のリストには日本の局は含まれていないようです。

トークやCMの判定はスペイン語など英語以外のラジオ局でもそれなりに動いているのを確認したので、おそらく登録して試せばそこそこ動くのでしょうね。

影響

ラジオ局は広告料もテレビやネットに比べて安いそうですし、こんなadblockツールを使う人が増えたら広告料への影響が大きいでしょうね。

個人的には、ラジオにCMが入るのは昔からなので慣れているというか、ウェブ広告やYouTube の広告などに比べるとそれほど気になりません。

ウェブ広告はポップアップや全画面広告、動画広告などいろいろなヤンチャが過ぎたために、広告ブロックツールを使う人を増やしてしまった歴史がありますが、ラジオ局が無くなってしまうような影響が出るのであれば、この Adblock Radio のようなツールは少しやりすぎなのではないかなあ、とも思います。

まあ、それとは別に、放送内容を自動でカテゴライズして切り出すというアイデアは面白く、何か他にもいい応用があるかもしれません。

via Hacker News

子音だけ取り出された英単語から、元の単語を推測するための復元ツールサービス

Missing Vowels は、オンラインで使える英単語推測のためのツールです。

英単語から子音だけを取り出す、というのは、パスワードの作り方などで見かけることがある手法。たとえば、

詳しく → kuwasiku → kwsk

これは英単語じゃないか。こういうものです。

He can not read this. → H cn nt rd ths.

この手法のことを disemvoweling と呼ぶみたいです。英語版Wikipedia によれば、SMSなど文字数が決まっているところで入りきらない文章を打つために使われるケースが今の主流のようです。

母音が抜かれた文章、とても読みづらいし英語に慣れていないほど復元は大変そうです。子音の組からそれになりそうな英単語を検索するのは辞書データから機械的にできそうだ、と思って探してみたら復元を補助してくれるツールとしてこのサイトが見つかりました。

“THS” をフォームに入れ、英語の一般的な単語からだけ探させると、左側に「母音を抜いたらTHSになる単語」のリストが返ってきます。

文章をそのまま復元してくれるともっと楽なんですけどね。

滅多にこれを使いたいシチュエーションになることはないかもしれませんが、ツールがあって検索すれば使えるということは覚えておくといいかもしれません。

このサービス、ドメインも.fr ですが、英語以外にフランス語にも対応しているようです。

akky's work blog