「OSS」タグアーカイブ

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

scratchblocks – Scratch プログラムをテキストファイルから生成

scratchblocksは、教育用プログラミング言語 Scratch の図形を組み合わせたプログラムを、テキストから生成してくれるというwebサービスです。

言語を日本語(Japanese)にすると、日本語での画像を作ってくれますし、英語など他言語で書いたテキストを translate メニューから日本語に翻訳し、それを画像化( png や svg 形式に)することもできます。

ソースコードも公開されていて、これを使って WordPress で表示するプラグイン(作者は日本の方)や Pandoc でドキュメント内に埋め込むライブラリなども紹介されていました。

小学校の自由研究で、提出するといってもパソコンやタブレットを提出するわけにもいかない。作ったものを紙にして出すにはどうするのがいいのかな、と調べたら見つけたものです。

[訂正 2017-09-08]

scratchblocksScratch Blocks の関係性について間違いがあったので、下の内容を撤回します。ご指摘ありがとうございました。

このツールが表示しているのはそもそも GoogleとScratch が HTML5 版の Scratch 3.0 に使うために策定し、また他の Scratch 風プロジェクトでも採用されるべく規定しようとしている Scratch Blocks で、このScratch Blocks を「非公式に」サポートするツールとして作られているようです。

消えゆく Flash Player から HTML5 ベースに移行しようという Scratch 本家に合わせて作っているものですから、描画結果のそれらしさについては間違いのないところでしょうね。

Github の scratchblocks は Scratch 用の”unofficial”なツールを作っている、とGitHub にありますが、これは Scratch Blocks をサポートしているものではないようです。