「オープンソース」タグアーカイブ

Aestheticam – 世界一ひどいiPhone用カメラアプリ

A E S T H E T I C A Mは、”The World Worst”を自称する新しいスマートフォン(iOS)カメラアプリです。

「iOS上での最低のカメラ体験ができることを目指した」 というこのアプリ、起動画面は謎のスターリンの写真だったり、撮影したら画面が謎の遷移をしたり、普通ならわかりやすくと工夫するところをわかりにくくしています。

aestheticam-demo

なお、カメラ名である “aesthetic” は、「審美眼のある」という意味。

SwiftによるソースコードがGitHub上で公開されており、オープンソースの力を生かして、世界最低がさらに下を目指して改悪されていくかもしれません。

「日本一まずいラーメン」とかと同じで、怖いもの見たさで使ってみる人は増えるかもしれないですね。アプリのレビューも★4.5と好評で、「どの友達に見せてもキマッテルって言うよ」とか「売り文句通り、過去最低の体験だ!」など好意的なレビューが並んでいます。

Aestheticam - The World's Worst Camera App™

カテゴリ: Photo & Video, Lifestyle
言語: EN
価格: 無料
バージョン: 1.1

開発者: Nicholas Lee Designs, LLC
公開日: 2016年7月14日
評価(全バージョン):
(43人のレビュー)
評価(現バージョン):
(12人のレビュー)

スクリーンショット

screenshot 0screenshot 1screenshot 2

via Digital Trends

お題どおりの表情を作ると止まるアラームアプリ Mimicker Alarm

双子かどうかを判定するサービスTwins or Notなど、顔写真の認証技術を使った実験サービスをいろいろ出しているマイクロソフトが、止め方に特徴のある新たなアラームアプリ Mimicker Alarm をリリースしました。

Mimic(モノマネする)の名前が示すとおり、このAndroid用アラームアプリでは、アラーム音を止めるために、カメラに向けてアプリに指示された表情を作る必要があります。

「驚いた顔をして」「ハッピーな顔をして」などという指示を見て、30秒以内にアプリが判定する驚いた顔を撮らないと、アラームが後でまた鳴るようになっています。

mimicker-alarm-surprized-face

マイクロソフトの Oxfordプロジェクトの一つ、表情を判定する Emotion API のデモとしての役割を持つこのアプリ、太っ腹なことにソースコードがGitHubで公開されています。

表情の変化を使って何かをするアイデアがあれば、このコードをベースに自分のアプリを作ることもできるというわけですね。

via The Verge

ワードプレスのインポートツールで警告が消えない問題

WordPress のサーバ再構築をする必要があり、標準のXMLエクスポート形式であるWXRファイルを読み込ませたところ、最新のWordPressを使っているのにも関わらず以下のような警告が出てきます。

( ! ) Strict standards: Declaration of WP_Import::bump_request_timeout() should be compatible with WP_Importer::bump_request_timeout($val) in C:\Users\akky\OneDrive\services\akimotojp\blog\wp-content\plugins\wordpress-importer\wordpress-importer.php on line 38

wordpress-importer-caution

バグ報告もされているのですが、これがなんと2年も前のもの。ずっと直ってないというわけです。

直し方がわかってないわけではなく、現時点のバージョンなら、wp-content/plugins/wordpress-importer/wordpress-importer.php 1110行目の

function bump_request_timeout() {

function bump_request_timeout($unused) {

などとするだけです。

わかってるなら配布してるオリジナルを直してよ、と思うところですが、バグチケットの中でリード開発者により「まれにしか使わないインポートの警告を消すためだけに、500万人の管理者にアップデートさせるのは『アップデート疲れ』(update fatigue)もあるのでやりたくない」という結論が出されていました。

そして、他の重要な修正も入るなら喜んでプラグインの更新を掛けるよ、と、未解決のインポート周りのチケットリストを紹介することで返答を結んでいます。

そんなに気になるなら他の重要なバグ直せば一緒に直るよ、なんていう返しもあるのかあ、と変なところで感心しました。

インポート機能を全員が使うわけではない、というのは確かにその通り。インポート作業をするぐらいの利用者なら警告の意味も読めるし、これが実害のない警告に過ぎないこともちょっと検索すればわかるかもしれません。

しかしそれでも、推奨された最新バージョンを使って、標準で動かして警告が出てしまうのは、それこそ500万ユーザーを誇るならカッコ悪いように思うですが。警告を見た人の多くはそれが何かを調べ、対処するなり無視するなり判断するという時間を取られていますし。

WordPress Importerプラグインの一番新しいバージョンも5ヶ月前に出ており、このチケットが切られた2年前より後に修正を含めるタイミングはあったみたいだし。

# 他にStrict Standardsを外すという解決法もなくはないですが、PHP 7 も見えているこの時期にそんなことをするのは当然オススメできません。

ネイティブ広告/記事広告を検知して強調表示するブラウザ拡張AdDetector

「ネイティブ広告」というキーワードがネット広告関連の新しい流行語になりつつあるようです。

ネイティブ広告とは

ネイティブ広告は、本来の記事がある部分が記事の形式を取った広告となっている、というものです。従来のバナー広告など、記事本体部分とは別の場所に表示されたあきらかに広告とわかる広告と違い、記事として読まれることを狙った広告、ですね。

もともと「記事広告」という名前で新聞や週刊誌などでもずっと存在していたものと同じようにも思えるのですが、「ネイティブ広告は一方的な視点でなく公平に掛かれた記事で、内容の面白さや有用さを武器にソーシャルメディア等でバズらせるという点で(面白くない宣伝を記事のフリをして読ませるだけの)記事広告とは別のものだ」などという風にいう人たちもいるようです。たしかに「これがネイティブ広告だ!」みたいな成功事例ではそのような素晴らしいコンテンツもあるようですが。

ただし、コンテンツ的に素晴らしくても、広告であることを隠すことは良くないこととされていて、ネイティブ広告でもページのどこかには、それが広告だという何らかのしるしが入っていることが多いです。特にアメリカではこのあたり厳しいので。

ニューヨークタイムズのネイティブ広告は、ネイティブ広告の最近の大成功例として紹介されます。また、新興バイラルメディアの雄BuzzFeed などもネイティブ広告を使っています。

広告であることを隠そうとするメディア

しかし、本来記事を書く部分を広告として売っているメディア側は、どうも広告だということを大々的に示すのは好きではないようで、このようなネイティブ広告・記事広告でも、目立たない箇所に小さくスポンサー名を入れたり、カテゴリー名などほとんどの人が読まないところに「PR」と入れたり、最低限の表示だけして、読者に広告だとわからせないようにしているところが多いようです。お金を出している広告主もそういう隠す意向があるのかもしれません。

読者から見たら、スポンサーからお金を貰って書いているなら、そうだと知りたいところですよね。「記事で褒めているから買ったけど、あとで記事は広告だったと知った」、なんていう体験をするのは、多くの人にとって面白くはないのでは。

ブラウザ拡張で広告なら強調表示

そこで登場したAdDetectorは、ChromeブラウザおよびFirefoxブラウザ用の拡張機能で、大手メディアのネイティブ広告の告知部分をプログラムで検知して、ページの最上部に大きく「これはスポンサー○○の広告ですよ」と表示してくれるというツールです。

ad-detector-screenshot-annotated

この拡張が入っていれば、漫然といろいろな記事を読んでいる間に、実は広告な記事が開かれても、すぐに気付くことができるというわけです。

AdDetector はオープンソースとしてGitHub上で公開されており、今は対応されていないメディアについての検知スクリプトを書いて取り込みのリクエストをすることも可能です。Forbesやハフィントンポストなどの超大手メディアも対応しているようで、すでに世の中にネイティブ広告や記事広告がかなり多く存在していることがわかります。

日本のネットメディアは、新聞や雑誌ほど「広告だということを示さなければならない」というルールがきっちりと決まっていないため、すみっこに小さく「PR」や「広告」と書いてあるだけでも、まだましな方という話もあります。このようなツールが普及したら、広告であることがわからないように記事広告を載せるメディアも増えたりして逆効果かもしれないので、上から決まるのでも業界の自主規制でもいいから、広告は広告と書く、というルールがきちんと決まるといいですね。

Untrusted – JavaScriptをいじって先へ進むRogueライクゲーム

ローグライクゲーム、というジャンルがあります。Rogue(ローグ)を代表とする自動的に生成される迷路・迷宮から脱出するというゲームで、日本で有名なものでも、ネットハック、トルネコの大冒険、チョコボの不思議なダンジョンなど多数あります。

Untrusted は、そのようなローグ風ゲームのバリエーションなのですが、JavaScriptのコードを操作することでパズル的な迷宮を解き、先へ進むというのが最大の特徴です。

untrusted-3

画面左の迷宮で、自分のキャラクター”@”を、階段”□”まで、カーソルキーを使って導かなければいけません。しかし、普通に上下左右に移動しただけでは、出口にたどり着くことはできなくなっています。

そこで、右側のコードに書かれた、迷宮を生成するJavaScriptのコードのうち、書き換えて良いという黒地の部分を変更し、Ctrl+5 で実行するとあら不思議、壁や出口の場所を書き換えてしまうことで、次の階へと進むことができるようになるというわけです。

いかだを使ったり鍵を探したりと、面ごとに違う趣向の障害が配置されています。

その階がどういうトラップなのか、どんな障害が設けられているかというヒントがJavaScriptのコメントとして書かれているので、解く際の参考になるでしょう。

untrusted-2

壁を描画している部分の位置を書き換えるとか、出口の場所を移動するとか、で解ける面もありますが、後の面ではそれらを防ぐようなバリデーション・コードが追加されたりして、同じ手は2度使えないようになっています。

UntrustedのソースコードはオープンソースとしてGitHub上で公開されています。ソースコードを見れば現在のダンジョンが何階あるかはわかってしまうのですが。

# HackerNewsで紹介されたせいで、現在ゲームはちょっと重かったり、正しく動かなかったりすることがあるようです。その場合は、footerにリンクのあるミラーサイトで遊んだり、オープンソースですから自分のところで動かしたりということもできます。

via HackerNews

joblint – 英語の求人表現をチェックしてくれるツール

joblint は、求人募集の文面に問題がないかを確認するためのプログラムです。

英語の人材募集の文面を書いた後でこのツールにかけると、以下のような「間違い」を検出し、指摘してくれます。

joblint-sample

上のサンプルのように、検出された様々な問題点は、4つのカテゴリー「文化的な問題」「現実性の問題」「採用者の問題」「技術的な問題」に分類され、点数づけられます。

チェック項目

joblintのソースを読んで、どんな内容がチェックされているのかを見てみました。引用は、その項目が検出された際にツールが表示するメッセージを訳したものです。

見せ掛けの利益

“beer(ビール)”, “ピザ”, “foosball(サッカーゲーム台)”, “卓球台”, “プレイステーション”, “Xbox”など

「ビールの詰まった冷蔵庫やビリヤード台は、それ自体は問題ではありません。しかし、求人票にそれらが載っていることは、多くの場合その会社で働くことの真の利益が少ないことをゴマかす手段になっています」

「ブラザー」文化

“bro”, “dude”, “skillz” のような、ターゲットを狭める単語の利用

下品な言葉

“bloody”, “bugger”, “fuck”, “shit”など

「職場でこれらの言葉を使うのはありかもしれませんが、求人票に書くのはプロフェッショナルではないですね」

バブリーな職種

“guru(導師)”, “ninja(忍者)”, “superstar(スーパースター)” といった職種・肩書きの募集

「技術者を忍者その他になぞらえることは、尊敬やプロフェッショナリズムの欠如を示しています」

あっちの人たちは忍者好きですねえ。

ビジョナリー

“blue sky(青空)”, “enlightening(啓蒙的な)”, “greenfield(緑の野原=未開発の場所)”, “paradigm(パラダイム)”, “productize(プロダクト化)”, “synergy(シナジー)”, “visionary(ビジョナリー)”

「(社長や株主といった)非技術者がこの求人票を書いていることを示しています。地に着いた、普通の英語で説明しましょう。」

競争的な環境

“competitive(競争的な)”, “cutting edge(最先端)”, “fail(失敗)”, “the best(ベスト)”, “win(勝利)”

「競争は健康的ではありますが、過度に競争的な環境は、多くの人にとって重圧となります。仕事外のもっと大切な人たち-家族とか-を排除することにもなりかねません」

過度な期待

“hit the ground running(すぐに取り組む)”, “juggle(ジャグリングをする=訳注:いくつもの仕事を器用にこなす)”, “tight deadline(厳しい締め切り)”

「これらの単語が指すのは、この募集文を書いている人が、新しく参加した人は職場に慣れるまでに時間と努力が必要だということをわかっていないということです」

性別の記述

“boy(男の子)”, “chick(かわいこちゃん)”, “dude(野郎)”, “gentleman(紳士)”, “girl(女の子)”, “sister(姉妹)”, “woman(女性)”などいろいろ

「求人票に性別を指す単語を入れることは、応募者の数を減らしてしまうだけでなく、多くの場合差別にあたり、法的な問題を引き起こす可能性があります」

男性/女性代名詞

“she”, “her”か”he”, “his”, “him”の一方が偏って出ている

「男性代名詞ばかり、あるいは女性代名詞ばかり出てきているとしたら、書き手は特定の性を差別しています。”they”, “them”を使うなど見直しましょう」

ヒゲ

“beared(ヒゲ面の)”, “grizzled(白髪まじりの)”

男性エンジニアのみ募集しているということになります

白髪は必ずしも言えないんじゃ。

セクシャルな単語

“sexy(セクシーな)”, “hawt(魅力的な)”, “phat(いかした)”

募集要項を書いてる人が、良いコードとは何かを定義できなかったり、何を書いてるのかわからないときに、こういった単語は頻出します。馴れ馴れしさをも表すでしょう。

レガシーな技術

“cobol”, “cvs/rcs”, “frontpage”, “visual basic 6”, “vbscript”

「レガシーな技術の表記は興味を持つ人を激減させます。たまに本当にそれらの技術が必要な時もあるでしょうが、非常に古い技術を求人票に載せることは、会社として先に進む気がないとか、社員のキャリア開発に投資する気が無いとも取られます」

開発環境

“eclipse”, “emacs”, “vim”, “dreamweaver”, “netbeans”, “sublime text”, “visual studio”など

「特定の開発環境でなければ作れないものを作っているのでない限り、開発者が何を使ってコードを書くかは問題ではありません。開発者は一番慣れているツールでこそ実力を発揮するのです。」

略語の展開

“カスケーディングスタイルシート”, “ハイパーテキストマークアップランゲージ”

「技術者はそれらの略語をよく知っています。展開して書くと、あなたが技術に明るくないことがばれてしまいます。」

JavaScript

「JavaScript は一つの単語です。javascriptsでもないしjava scriptでもありません」

Ruby On Rail

「Ruby On Railsは複数形です。レールは複数はあるんです」

オープンソースで提供

ちなみに、このツールは node.js で書かれてオープンソースとしてGitHubで提供されています

…という提供の方法が、もうかなり一般向けではないですね。求人側の人事部が自分たちの募集を確認するというよりも、その求人に応募する方のエンジニアに対するアドバイス的なツールだと考えているのかもしれません。

アメリカ的な採用のべき・べからずの参考に

日本とアメリカでは求人票に書いて良いこと・悪いことのルールがまったく異なります。年齢差別・人種差別・性差別などいろいろな差別に関して、日本の方が規制が少なかったり、たとえルールがあるものに関しても運用がザルだったりしする印象があります。

そんな日本の企業や人事担当者が日本と同じノリで募集文面を書き、単純に翻訳させてアメリカで募集を掛けたら、問題となったり、そこまでいかなくても見た人が不快に感じて募集が来なかったり、ということは実際に起こっていても不思議はありません。

ジョークツールとして作られている部分もあるとは思いますが、こういった単純なツールですら機械的に問題点がいろいろ指摘されるようであれば、単に英語ができる人、あるいは自称英語ができる人に任せるのはやめて、現地での求人のやり方を知っている人に依頼するようにすべきかもしれないですね。

via Hacker News