「OSS」タグアーカイブ

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

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

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

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

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

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

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

Hacker Newsのコメントによれば、この手のアプリとしてはスマートフォンアプリの Baby Connect が有名なようです。こちらは日本円だと600円(6万8094ドル)の有料アプリで、さすがに機能も多く、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 をサポートしているものではないようです。

composerize – dockerコマンドラインをdocker-composeの書式に変換してくれるツール

Composerizeは、コマンドラインオプションを持ったDockerコマンドを、Docker Composeの定義ファイルの形式へ変換してくれる、というサービスです。

composerize-screenshot

Dockerコマンドのオプションを列挙してるのが docker-compose.yml なので、コマンドラインパラメーターとymlに掛かれてるものは機能的には一対一に対応してはいるんです。しかし、名前が微妙に違っているパラメーターがあって、コマンドラインで動作確認したものをComposeに移行しようとした際にエラーが出てしまい、両方のマニュアルを開きながら調べて修正、など僕も苦労してました。

Githubで公開されているソースの(コンバート部分を見れば、パラメーターの名前が微妙に違うものが多いのに気づきます)

デバッグ時には反対向きの変換ツールもあるといいかも。

via reddit

Pokémap – Pokemon Goのポケモン・ジム・ポケストップを可視化する勝手ツール

アメリカ人をトリコにし、任天堂の株価を倍に押し上げた位置情報ゲーム「ポケモンGo」、日本での今日のリリースが2ちゃんねる経由マクドナルドからのリークで延期になった、とかいう話も(本当かどうかわかりませんが)流れて来たりと、これから日本でも熱くなりそうなところです。

Pokémapは、Ahmed Almutawaが始めたばかりのツール開発プロジェクトで、ポケモンGo に出てくるポケモン達、アイテムを得られるポケストップ、奪いあうポケジムなどゲームを簡単に進められるようにする重要情報を、Google Mapベースの地図に表示してしまうというPython製ツールです。

pokemap-top

現在のツールはプログラマでないとセットアップがたいへんそうな作りになっていますが、こんなツールで地図が見えてしまうと、一般のユーザーとの競争はかなり簡単になってしまうのではという心配もあります。

各データは Niantec 社のサーバとの通信を見て取得しているようなので、早晩、通信方法が変更されたり、暗号化されたりするのではと思いますが、熱心なユーザー&開発者が2日間で50人近く contributor として集まったそうで、GitHub 上のプロジェクトページでは一時的にプルリクエストを受け付けませんという表示がされています。

via The Verge

絵文字プログラミング言語 emojicode

Emojicodeは、オープンソースの高水準・マルチパラダイム・オオブジェクト指向・マルチプラットフォーム対応の静的型付き言語です。

その一番の特徴は、型、メソッド、クラスメソッド、初期化子がすべて絵文字だというところでしょう。(反対に、変数名には絵文字を含むことができません。)

emojicode-top

本格的なドキュメントが用意されていて、まだ一部しか読んでないのですが、いくつか紹介します。


👴 コメント

👵 改行入り
複数行コメント 👵

老人」の絵文字が一行コメント。老婆で挟むと複数行のコメントも書けます。


🍮 index 35
🍮 isAvailable 👍
🍦 limit 12
🍦 GREETINGS 🔤This is a string.🔤

プリンが変数宣言、ソフトクリームはconst変数(凍ってるから)。true/false の 👍/👎 はわかりやすいですね。

🔤 が文字列を表す絵文字で、🔤自身を文字として扱いたいときは❌🔤でエスケープするそうです。

制御文やクラス定義なども、当然に専用の絵文字が用意されているのですが、読んでて頭が痛くなってきました。

基本的なライブラリも、当然ながら絵文字で提供されています。

本に挟まるしおりの絵文字 📑 が、ファイルシステム。複数の本の絵文字 📚 は、データベースクラス、 💬 がSQLクエリクラスです。

キーボードの絵文字⌨ はキー入力イベントクラスで、エラークラスは回転灯の絵文字 🚨

トップに出ているサンプルコードは、フィボナッチ数列を表示するもので、こんな感じに。


🐇 🏤 🍇
🐇🐖 🏁 ➡️ 🚂 🍇
👴 Let’s print a few fibonaccis.

🍮 i 0
🍮 a 0
🍮 b 1

🔁 ◀️ i 15 🍇
🍮 r ➕ a b
🍮 a b
🍮 b r
😀 🔷🔡🚂 r 10
🍫 i
🍉

🍎 0
🍉
🍉

「プログラマーになるにはどうしても英語が必要」という悩みから、日本語プログラミング言語なども昔から多数登場していますが、絵文字なら言語非依存で世界中の人が理解できる… かもしれません。

記号プログラミングといえばAPLという前例がありますし、Unicode絵文字の登場はAPL的なものの復活につながったりするのかも。

今の英語ベースのプログラミング言語に慣れた身としてはつらいですが、新規の学習だと意外と行けそうな気もします。

via Hacker News