IM@Study合同本@C95 2日目東ト-56b
じゃ~~ん
ここでは何度も登場しているIM@Studyというグループから、今回は希望者5人が寄稿する合同本を出すことになりました。場所はC95 2日目の東ト-56bです。
表紙は文月きょうさんにお描きいただきました。見事に「週アス」感が出ていて僕はとてもお気に入りです。
中身
- アイマス楽曲を歌詞解析してみた話
著者:きりだるま
概要:800曲近くあるアイマスミュージックがテーマです。歌詞検索ソフトで取得できた歌詞に対して自然言語解析を行い、「エモさ」を感じることを目指します。 - アイドルと学ぶホームページの作り方
著者:MH35
概要:物理層から構築するホームページの作り方がテーマです。松田亜利沙が765プロのホームページを作るために奮闘する様子が、いわゆる台本形式で描かれます。 - 李衣菜チャンのヘッドホンアンプをつくるにゃ!
著者:ヘヴろく
概要:李衣菜チャンのためにみくにゃんが奮闘する電子工作がテーマです。回路の論理設計から、シミュレーション、基盤図作り、発注までの一連の流れを、ヘッドホンアンプを例に体験します。 - im@sparql入門
著者:croMisa
概要:私のやつです。クエリの打ち方から、アプリケーションへの組み込み方までを説明します。 - スコアを用いたライブの予習セットリスト自動生成の試み
著者:遠山 賢寿
概要:非常に多く増えてしまったアイマス楽曲、シンデレラガールズだけでも200曲近いので、ライブ前の予習を効率化するために、セットリストの自動生成を試み、その成果を説明します。
組版には"なかひこくん"さんにしてもらいました。markdownで書けるフォーマットから中身の最終デザインまでおり、いわゆる出版社の"編集さん"+αの仕事をしていただき、非常に助かりました。ありがとうございました。
UE4で使える"つよい"mosquittoライブラリ
なんとBP上で扱えるらしい(GitHub説明画像より)
そもそもMosquittoって広く知られているソフトウェアかよくわからない(自分も最近知った)なので、まずはそこから
Mosquitto(MQTT)とは
MosquittoはMQTTというメッセージングプロトコルを、EclipseがC++でオープンソース実装したものです。
んで、そのプロトコルであるMQTT(Message Queue Telemetry Transport)ですが、IBMが1990年代後半に開発した、信頼性の低いネットワーク上で動く低性能のデバイスで実現する軽量で柔軟なプロトコルです。
MQTT概要
それが公開された現在は、Publish/Subscribeの単一のメッセージに対して多数のクライアントが受信できる形をとっています。そのために、Brokerと呼ばれるサーバー役を立てる必要があります。
クライアントはBrokerに接続し、必要であれば接続後の任意のタイミングでSubscribeをします。この時、「Topic」を指定します。このトピックはメッセージに付けられるタグのようなもので、タグとは違い階層構造を取れることです。また、複数指定することもできます。
接続したクライアントがメッセージをpublishしたい時は、メッセージと共に上記のTopicをBrokerに送信します。すると、そのTopicをSubscribeしている全てのクライアントはそのメッセージをBrokerから受信します。
Topicで区別するだけなので、接続するデバイスの組み合わせごとにソケット通信を立てる必要がなく、雑に送受信できるのが良いですね。Brokerが必要ですが....(PublicBrokerというものが建っており、それを利用することもできる。Publicなので不特定多数の人間がつないでるけど...)
UnrealMosquitto
表題のやつです。
Broker機能は無いですが、クライアント機能は実装されており、BPからも振る舞いを実装できます。
個人的には受信時の振る舞いをBPで雑に実装できるのがアツいですね。なにかしらのデバイスからの情報をUE4でカッチョイイ感じに可視化したい時とかは使えるんじゃないでしょうか。どうせデバイスのログは軽量な別ソフトでしょうし。そのネットワークにMQTTで簡単にjoinできるのはアツい。熱盛っ!
ちょっと重要な内容ですが、余談を。
実は現在の状態だと4.20でビルドできなかったりShippingできなかったりと諸々問題があるのでPullRequestを出させていただきました。もしこれから使われる方がいましたら、そのへんにご気をつけください。
おわり
MQTTで気軽にjoinして積極的にUE4でビジュアライズしていこう💪
MQTTに表面上似たものとしてAdvanced Message Queuing Protocol(AMQP)があります。こちらはその中にも種類が分かれており、中にはサーバー役の必要ないZeroMQもあります。
im@sparqlのドキュメントみたいなの書いてる
タイトル通りです。
以前から、im@sparqlが気になってはいるのもののSPARQLとかわっかんねぇな?というお話をいただいており、どげんかせんといかんと思いながら放置していましたが、IM@S Engineer Talksでちょっと話題になったこともあり使命感を感じて開設しました。
内容
Getting Started
- im@sparqlとは
im@sparqlの思想みたいなのを書いた、よくある意識高いページ。
一番最初にありますが、im@sparqlのあとがきみたいなものです。 - 触れてみる
im@sparqlを使う上で欠かせない要素のSPARQLを解説する部分。
データベースの大枠に触れる、未経験者には難解なクエリですが、次項以降のサンプルクエリを読み解けるように解説しました。 - 使ってみる
データベースの中身を一切知らない状態から、千早さんのプロフィールを取得するまでの流れを3STEPで解説しています。
SPARQLのクエリの組み方が分かれば幸いです。 - 組み込んでみる
完成形のWebページを例に、実際にオープンデータベースとしてWebページから活用する方法を解説しています。
Http通信でJSONが取得できるので、そのへんに慣れてる人には退屈な内容です。 - 貢献する
GitHubに公開されているim@sparqlのデータベースの中身を解説しています。
中身が読めればクエリも効率的に立てやすくなるでしょう。
また、データベースに足りない情報を補うのを手伝っていただければ幸いです。
Query Samples
クエリ集みたいなのも置いていければ...
まだどういう風に置くか未定。Gist.GitHubをただただ貼れば良い?
締め
これをきっかけに、im@sparqlを活用していただければと思います。
それと、活用した何かを作った時、もし良かったら僕に報告してもらえると嬉しくなります。
こいついっつもim@sparqlの話してんな?
IoT(Idol of Thing)でRasPiに千早さんもどきを宿らせる
はい。
そんなことはみなさんご存知でしょうね。
今年から一人暮らしなので、お部屋ではやりたい放題なのでは?!と思い、1年以上買って寝かせてたRasPi3を取り出しました。
イマイチ使いみちが見つから無かったのですが、ここらでいっちょRasPiならではのことに挑戦していきます。
注意:技術の説明じゃないので、こんなアイデアどう?ってスタンスで見てください
作りたいのはこちら
こんな感じでですね、自宅に入ったら「おかえりなさい」と声をかけてもらえるシステムですね。
センサー
センサーはドーム型の人感センサー、
"HC-SR501"
を使います。(Amazonとか秋月でご参照ください...)
こんな感じで自室ドアに貼り付けます。1Kなので自室ドアで良いんです。
こいつには、電源・GND・信号の3つの端子があります。単純でありがたいですね。
また、センサーが反応してから次にアクティブになるまでの間隔と、反応強度を変更する可変抵抗も付いています。
ご自分の気分で調整してください。
配線
諸々の配置の関係で、RasPi3は逆側の壁際に設置してます。
そのため、5m近い長さの線が必要になりました。
自作するしかねぇ!
というわけで、某電気街で買ってきました。圧着ペンチはAmazonだけど。
"エンジニア 精密圧着ペンチ オープンバレル端子用 PA-20"
頑張ることもなく、3色の線が完成です。
配線しましゅ。
これでハードウェアはOKですね。
プログラム構成
後々の機能拡張を見据え、WebからRasPiを制御したいと思い、
I/Oが制御できる環境を探しました。
それがこの、Pythonで動くWebフレームワーク「bottle.py」です。
売り文句として、
- 軽い
- 早い
- 単一ファイルのimport(pipしなくてもいい)(pip版もある)
- 依存関係ない
らしいです。
これを使ってWebのViewerからI/Oの制御までを行います。
今回で言えばこんな感じ
ってなんの説明にもなってない画像ですね。
とりあえず、Pythonのコード内の時間とかで制御する時の変数をWebから書き換える
ってことを今回はやらせていってると思ってもらえれば。
これ実際のコードです。汚いけど見られてもまずいものはないはず。
テンプレートエンジンだったり、CSSなどのファイルがキッチリロードできるようにだったり、http通信のモジュールだったりをimportしています。
また、時間による動作はapschedulerのBackgroundScheduler
を使っています。これにより、cron的な日時に合わせて動作を行うことができます。
書いてはいなかったですが、起床アラームの機能も付与しており、"Alerm"系で表しています。
AlermConf
, WelcomeBacktimeConf
では、現在設定されている時間を渡しています。
見た目はこんな感じ
RasPiは良いですね。AppleのBonjourが入っていれば、ローカルのRasPiに対してraspbery.local
でIPから代替できますから。
それは置いといて、こんな感じでViewerの方も作りました。
自分しか使わないので、CSSも無しです。
渡された現在設定の時間を表示し、代わりに新たに設定したいものを渡せるようにしています。
Python側でPushされた更新したい時間を受け取り、内部変数を書き換えてスケジューラーを更新することで完成します。
というわけでできたものがこちら
音量小さいですが、デモ動画です。
— croMisaP (@croMisa) 2018年6月17日
ドアを開いて人感センサーが反応すると、千早さんが「おかえりなさい」と声をかけてくれます pic.twitter.com/fmBjkIe20k
帰宅したら千早さんに「おかえりなさい、プロデューサー」って言ってもらえる生活最高かよ
— croMisaP (@croMisa) June 18, 2018
node.jsで、im@sparqlに当日の誕生日を訊いてつぶやくやつ+
1個前の記事のやつ、誕生日のアイドルのプロフィールを画像化してくっつけたら良いのでは??と案をいただいたので、実装しました。
本日の誕生日
— croMisaP (@croMisa) May 14, 2018
牙崎漣:プロフィール→https://t.co/cuMfvLNqWK pic.twitter.com/j7ZKNeTYK1
画像生成に使用したのはwebshotというパッケージ。
なんか関数一発でまぁまぁ良いサイズで撮れたので採用しました。
あと、コールバックが増えてきたので、Qも導入しました。
やってることとしては、1つ目のthenでは、まずrequestを使ってSPARQLをたたきます。
2つ目のthenで、取得したjsonをforEachします。本当は、Q.all()
みたいなの使えばよかったんですが、一つ前のthenから受け取ったものを使ってall()
を回すのが分からなくて、thenの中でforEachし、indexとlengthが等しければresolveして抜けるようにしました。
forEachでは、json内にあるプロフィールのURLをスクショして鯖に保存しています。なんでファイルに残しているかというとデバッグ用です。
また、同時にTwitterにアップロードもしています。その結果得られる画像のIDを配列に保存してそれを次のthenに渡します。
次のthenでは、実際にツイート内容を作成してつぶやいています。mediaは調べたら、stringで、","区切りで良いみたいです。
以下、gist
node.jsで、im@sparqlに当日の誕生日を訊いてつぶやくやつ
GW初日です(あでぃしょなるたいむ)。
いつもは朝早くに出勤しないといけないので早めに寝るのですが、
GWなので深夜にコーヒー淹れてのコーディングを楽しみました。
内容はほとんどim@sparqlの誕生日表示のコピペですが、
なんか僕のアカウントでつぶやかせたかったのでnode.jsで書きました。
やってることとしては、今日の日にちを含む(=一致する)誕生日のアイドルを訊いて、
名前とim@sparqlの詳細表示サービスのURLを貼る感じですね。
余談ですが、
サイト開始時からある誕生日表示機能も、DBに283アイドルを追加したら勝手に283アイドルも誕生日表示してくれたので、
やっぱSPARQLというか、Linked RDFのオープンデータとしての利点が冴えてんなぁと思った4/25(櫻木真乃の誕生日)
以下、gist
THE IDOLM@STER MILLION THE@TER GENERATION 05 夜想令嬢 -GRAC&E NOCTURNE- 辞典
目的は物語を読む上での知識を提供するものであり、
物語に対して考察をしたものではありません。
なんとなく知りたくなった単語をピックアップしています。
主にWikipediaとかWeblioとか...
皆様がこの物語を受け取る手助けになれば幸いです。
昏き星、遠い月
「昏」
- 日暮れ、日没直後の時間帯「黄昏時」
- 道理にくらいこと「混迷」 → 専門外なこと
- 目がくらむ「昏倒」
ニュアンスとしては、見通しが良くないこと(?)
「獨」
「独」の旧字体
夜想令嬢 -GRAC&E NOCTURNE-
GRAC&E
たぶん、英単語"Grace"。間に挟まる"&"とは...
1. 優美,優雅,気品,しとやかさ,上品
2. (上の立場の人が示す)親切,好意,思いやり
3. [公爵・公爵夫人・大司[主]教の敬称に用いて] 閣下,閣下夫人,猊下(しかし、今回の地位は"伯")
NOCTURNE
日本語訳:夜想曲
おそらく、"夜想令嬢"と"grace nocturne"は対訳関係
第一幕
ヴァンパイア
吸血鬼。
民話や伝説が広い範囲で存在するが、現代日本人が一般的に想像する吸血鬼は、創作物の影響が強い
- 葬られた死者が、その肉体で人間や家畜を襲う
- バルカン半島スラブ人地域では、4世紀頃既に信じられてた 血を飲む、銀を恐れる、退治(殺害)方法までも確立されていた
- 一般的な吸血鬼像は、古代ルーマニアから続くものである
- 吸血鬼に殺されると吸血鬼になる
Prelude
「終焉の無い呪い」への前触れであり、
"-GRAC&E NOCTURNE-"のシナリオの前奏曲でもある
クリスティーナ
女性名。 「キリスト教徒」を意味する古代ギリシア語 Χριστιανός(christianos)に由来し、そのラテン語に転訛した形である christianus の女性形が christina である。
エドガー
ヨーロッパの男性名。
古英語のead(富,幸せ,豊かさ)とgar(槍)を由来とする。
エレオノーラ
元は、「エレオノーレ(Eleonore)」
ヨーロッパで用いられるプロヴァンス起源の女性名。
イタリア語圏で、エレオノーラ(Eleonora)となる。
プロヴァンス語
フランス,イタリア,モナコにまたぐイタリック語派
アレクサンドラ
ヨーロッパの女性名。
アレクサンドロスに由来する男性名(アレクサンダー,アレクサンドルなど)の女性形。
アレクサンドロス
ギリシャ人の人名であり、古典ギリシャ語で「男達を庇護する者」を意味する。
元来はギリシャ神話で戦場における戦士の庇護者である女神、ヘーラーの称号の1つであった。
ノエル
- フランス語でクリスマスの季節や歌のこと
- ヨーロッパ系の男性名(NoëlまたはNoel) 女性形はNoëlleまたはNoelle
国境付近に防備の必要上置いた軍事地区(辺境地区、辺境伯領)の指揮官として設けられた地方長官の名称
異民族と接しているため、他の地方長官よりも広大な領域と大きな権限が与えられており、一般の地方長官である爵位伯よりも高い地位にある役職とみなされていた。
魔除けの香
魔除けの香→ハーブ+魔女....?
- 魔女狩り:15世紀から18世紀(科学の発展)まで
ポマンダー:中世(特に16世紀)に流行した香り玉
- 香りと健康は関連性があるとされていた
- 金属の装飾品の中にハーブやスパイスを詰め、魔除けとして持ち歩いた
不浄を祓う剣の使い手
魔を払う・不浄を祓うと言えば銀
一般的だった鋼と比べ比重が大きく高価であるため、貴族としても剣士としてもアレクサンドラは優秀
銀:10.50[g/cm^3]
スラブ人に伝わる吸血鬼と戦う宿命を持つ"クルースニク"がある
白い羊膜に包まれて生まれ、赤い羊膜に包まれて生まれてくる吸血鬼クドラクとの戦いを宿命とする
普段は青年だが、クドラクと戦う際は互いに馬,豚,牛,猪などに変身して戦う。この時、クルースニクが化けている動物は白いので、簡単に見分けがつく。
民の血を啜る貴族
こういうよくある悪い貴族も日本だけでなく世界中で吸血鬼と呼ばれる
あのマルクスも資本を、「吸血鬼のように、行きている労働者を吸うことで成り立つ」と定義してる(らしい)
第ニ幕
約束の地
ヘブライ語聖書に記された、ユダヤ教、キリスト教において、神がイスラエルの民に与えることを約束した土地。
約束の地は、「エジプトの川」からユーフラテス川までの領域とされ、"パレスチナ"とは別概念である。
聖書での言及は地域の設定,譲与(?)のみで、その土地がどうこうと言った内容は無い
ルカ
アンジェラ
英語、イタリア語などの女性名
ドイツ語ではアンゲラとなる
Overture
- 序曲,前奏曲
- 語源:古期フランス語「開始」の意
ヴァンパイアとなったエドガーとクリスの旅、
香が無くなり目覚めてしまったノエル、
「終焉の無い呪い」が「開始」するのでした...
Everlasting
- 永久に続く,不朽の,永遠の
- 果てしのない,退屈するほど長い
- 永久,永遠
試聴ではエドガーとクリス部分のみ。
それは、CDでのみ語られたエレオノーラとアレクサンドラの物語が歌詞に含まれているからです。