「OSS」タグアーカイブ

ウェブ広告を片っ端からクリックすることで広告ネットワークの追跡に抵抗するブラウザ拡張 Adnauseam

AdNauseam は、ブラウザ上に表示された広告を、自動的に見つけてクリックしてくれるというブラウザ拡張機能です。

広告ブロックをする拡張 uBlock をベースに作られた AdNauseam は、ブロックした広告に対して、間隔を空けて(=人間がクリックするかのように、ということでしょう)一つずつ、クリックして背後で広告を読み込んでいきます。

なぜそんなことをさせるのか? AdNauseam の作者たちの主張はこうです。

ブラウザの”Do not track”(私を追跡しないで)ヘッダは、多数の企業が協力しなかったため、使い物にならなくなった。広告ネットワークが我々の閲覧情報を売り渡し続けるのであれば、広告をブロックした上で、その広告をすべてクリックするしかない。すべてをクリックすることで、あなたを追跡しようとする企業は混乱するだろう。

adnauseam-io-1

何に対して興味を持っているのか、追跡して分析されたくない、という意思表明(Do not track)をしても追跡されてしまうなら、全部の広告を押すというのは確かに効果があるのかもしれません。すべてに興味を示すユーザーは、何に興味を示しているのかわからなくなるのですから。

# ただ、いろんなものを「買うかもしれない」判定しちゃう広告ネットワークもあるかもしれませんが

2017年には、このAdNauseam拡張、Chrome の拡張Store から「利用規約違反」という理由で削除されています。違反してるとされた規約にどう違反してるかの詳細な説明は受け取ってないとこの作者たちは言っていますが。

ウェブサイト上の広告での儲けが主要な売り上げであるGoogle社としては、普及すると都合の悪い拡張機能でしょうね。

開発者モードで頑張ればChromeでもインストールできなくはないですが… Firefox版Opera版は、それぞれの公式ストアからインストールできます。

現状のウェブと広告に対する抗議の意味を持った拡張機能ですが、議論を呼ぶものだし大なり小なり広告収入を得ている人にとっては迷惑と感じられるのかもしれません。

TheParallaxView – どこから見ても「深淵」が見えるスマートフォンアプリ

どの方向からiPhoneを見ても、そこにどこまでも続く深い穴があるように見える、というパララックス効果を使ったアプリが紹介されていました

iPhone X で使えるようになった人間の顔の位置を検知する機能により、ユーザーの目の位置を追跡し、目の位置に合わせた穴を描画しています。

Unity/C#製のソースコードはGitHubで公開されています。

iPhoneアプリが現在申請中ということで、公開されれば上記のソースコードをビルドしなくても手元のiPhone X で試せるようになりますね。

ユーザーの視線に応じて表示を変えるアプリが作りやすくなったことで、これまでにない発想のゲーム等が出てくるかもしれません。

is-vegan 菜食主義者のための食品判定ライブラリ in JavaScript

肉や魚だけでなく、牛乳など直接は命を奪わない食材も忌避する完全菜食主義(ヴィーガン)のためのライブラリが is-
vegan
です。

利用例はこんな感じ。牛乳はダメで、豆乳はOKと。


import * as isVegan from 'is-vegan';

// example for single ingredient
isVegan.isVeganIngredient('soy'); // true
isVegan.isVeganIngredient('milk'); // false

作りとしては src/util/canbevegan.json と nonvegan.json に食材の名前が列挙してあるだけのシンプルなもの。これを訳せば日本語でも使えるかもしれないですね。レシピサイトの材料リストを見て、菜食主義対応かどうかを表示する、なんていう拡張を作ったりできそうです。

食べ物の規制ということだとイスラム教のハラールについても is-haral 的なライブラリが有ったりするのかな、とGitHub を探してみましたが、見つかりませんでした。あちらは単純に食材の種類で決まるわけではないので同じ手は使えないのかもしれませんね。

via Hacker News

genact – 「プログラマー的な作業をしてる風」に見せるためのツール・ページ

仕事すべき時でも、忙しいフリやコンピューターの処理を待つフリをしよう! 並行して多数の仕事をこなす驚異的なスキルを他人に印象づけよう

genact は、プログラマー的な出力を画面に表示するためのツールです。

Rust製のソースはGitHubで公開されています。MaxOS X, Linux, Windows それぞれのバイナリもリリースページに有るので、ダウンロードして走らせるだけでプログラマーな感じのウィンドウが立ち上がります。

ダウンロードが心配であれば、ウェブ版もあります。カフェ等でこれを一個開いて表示しておくと、なんか難しそうなことをしてるように見えるかもしれません。

6つのモードがあり、パラメーターで指定することで切り替えられます。複数のモードを指定すると、適当に切り替えもしてくれるようです。

  • bootlog
  • cargo
  • cryptomining
  • cc
  • download
  • memdump

cryptomining で仮想通過の採掘をしてる風に見せるのなんか、今風でしょうか。

via Hacker News

Baby Buddy – オープンソースの赤ちゃん管理システム

Baby Buddy は、Python で書かれた、乳児の世話に関する事柄を記録・管理できるwebベースのツールです。

デモサイトを見る感じでは、「授乳」「睡眠」「おむつ交換」「腹ばい練習(tummy time)」について、それぞれやった時に記録を取り、その結果を参照できるようです。

たとえば、おむつ交換の追加では、世話している子供の名前(複数の乳児を管理できます)や、交換した時におむつが濡れていたかどうか、そして便の色、などを入力させられます。

授乳では、母乳かミルクか、母乳ならどちらのおっぱいか、飲んだ量、などが、時間とともに記録されます。

# 自分の時は紙のノートに記録してたのを思い出しました。

一人ですべての面倒を見ているような、いわゆるワンオペ育児ではそれほど記録の必要もないかもしれませんが、うちのように夫婦で時間をずらしてカバーするとか、ベビーシッター等を含めて複数人で面倒を見ているところだと、誰がみても直近の過去の状態がまとまって見られるというのはいいことだと思います。多数の子供を登録して、保育園のような事業者が使うというのも考えられるでしょうね。

Hacker Newsのコメントによれば、この手のアプリとしてはスマートフォンアプリの Baby Connect が有名なようです。こちらは日本円だと600円(5ドル)の有料アプリで、さすがに機能も多く、UIもこなれているようです。

そういう市販のアプリを使うのでもいいのですが、オープンソースでコードがGithub に上がっていることから、自分と家族に特有の何かを追加で記録したいとか、欲しい機能を自分で追加提案できるという点で、この Baby Buddy も面白いかもしれません。

今は人力で毎回入力するしかないですが、センサーや音声入出力などを組み合わせることで、さらに育児の手間や負担を減らすようにしていくことも可能でしょうね。

via Hacker News

マジック・ザ・GIFニング – 面白動画を載せたMtGのカードを生成するプログラム

カードゲーム「マジック・ザ・ギャザリング(MtG)」のデータを使ったネタプログラミングが Hacker News で話題となっていました。

Pythonで書かれ、GitHubで公開されているこのツールは、MtGのカードのタイトルに合った内容のアニメーションGIFを埋め込んで、MtGのパロディカードを生成するというプログラム。

生成したカードを定期的にツイッターにつぶやく bot 機能も持っていて、作者自身によるデモアカウント@MTGIFening では、6時間おきに一枚、新作カードが自動投稿されています。

ハウル・フロム・ビヨンド(彼方からの雄叫び)というカード名から生成されたのが、こちらのカード

なるほど、雄たけんでるように見えなくもない。

仕組み

Readme/ソースによれば、このツールの仕組みはこんな感じ。

カードデータの入手

MTG JSONで提供されている、全カードのJSONデータを取得する。そんなデータが有志によって管理されているんですね。これもGitHub上で管理更新されているようです。日本語データファイルもありました

ここからJSONファイルをダウンロードし、それを前処理のスクリプトで必要なレコードのみのcsvを作り、それを使って動いています。

ネタになるアニメーションGIFの入手

アニメーションGIF版 YouTube、みたいなサイトGIPHYAPIが提供されていて、その中にキーワード検索APIもあるので、ランダムに選んだMtGのカードのタイトルを食わせています。タイトルによってはGIFが見つからない場合もあるみたいですが、その時は見つかるまで繰り返しています。

“MtG”で検索して最初にでてきたのがこれ。

Giphy sample

オリジナルのカード画像に、GIFをはめ込む

MtG公式からカード画像を取得し、MoviePyライブラリで、動画の各フレームを書き換えているようです。カードの世代によって画像の位置やサイズが違うので、世代にあわせて埋め込み座標を変えたりもしています。

ツイートする

PythonでTwitterを読み書きするTwythonを使い、生成されたGIFをツイッターに投稿させています。

これらをパッケージする Docker ファイルも置いてあり、自分の環境で簡単に再現できます。ツイッターに投稿するところは動かしませんでしたが、ローカルで動かしてみてできた画像がこちら。

コードも完結で短く、データやAPIを組み合わせてうまく作ってるなと思いました。

via Hacker News