いものやま。

雑多な知識の寄せ集め

上牧温泉&宝川温泉に行ってきた。(その1)

f:id:yamaimo0625:20191111172609p:plain

10/31(木)〜11/2(土)で群馬県の上牧温泉と宝川温泉に行ってきた。
どちらもとてもいいところなので紹介したい。

上牧温泉

まずは上牧温泉。

有名な水上温泉の一つ手前の駅にある温泉。
まわりには冗談じゃなく本当に何にもないので、遊ぶのには不向きだと思うんだけど、その分人も少なくて、とても落ち着いた時間を過ごせるのがいい。

今回は自宅を9時頃に出発して、電車を乗り継ぎ13時ちょっと過ぎに到着した。
電車の本数が少ないのがネックだけど、途中の車窓からの風景もいい。

f:id:yamaimo0625:20191111173714p:plain
ガラガラなので写真撮れるw

f:id:yamaimo0625:20191111173751p:plain
気持ちいい風景

f:id:yamaimo0625:20191111173840p:plain
上牧駅のホームから

途中、高崎駅で乗り換えのときに駅弁を買ってみた。
だるま弁当とかも有名なようだけど、ネットで調べて評判のよかった鳥めし弁当をチョイスしてみた。

f:id:yamaimo0625:20191111174709p:plain
高崎名物 鳥めし弁当

f:id:yamaimo0625:20191111174850p:plain
中身はこんな感じ。

食べたのはホテルに着いてからだけど、レトロなパッケージを開いてみれば、すごく美味しそうな香りが弁当箱から溢れてきたw
これはすごいw
そして、めっちゃ美味しかったので大満足w

そして、上牧駅はこんな感じ。

f:id:yamaimo0625:20191111173910p:plain
上牧駅

ちなみに、SuicaPasmoも普通に使える。

駅からちょっと歩いて赤い橋を渡れば、今回お世話になったホテルニュー上牧に到着。

f:id:yamaimo0625:20191111174407p:plain
利根川にかかる赤い橋

ホテルニュー上牧

ホテルニュー上牧に泊まるのは今回が二度目。
近くにある大峰館の温泉の評判がよかったので、そちらもちょっと考えたんだけど、wifiが使えるか分からなかったのと、大峰館は日帰り温泉でも行けることが分かったので、無難な方へw

ホテルニュー上牧は、地味にいいホテルw
手入れが行き届いてる感じがあって、滞在中に「これは・・・」と思うことがほとんどなかった。
気持ちよく過ごせるというのはとても大事なこと。
wifiがちょっと遅いというのはあったけど、これはデザリングで対応した)

そして、お風呂と食事が個人的にとても気に入ってる。

露天風呂の「ホタルの湯」は予約が埋まってなければ40分貸切で入ることができて、これがとてもいいw
清潔感ある露天風呂を独り占めできるというのは、なかなかの贅沢w

それと内湯はホテルに隣接するマンションの浴場と共同利用という感じなんだけど、このお湯もちゃんと温泉で、そして好きなときに入ることができる。
これも嬉しいところ。

そして、食事。
これがとてもいい・・・

f:id:yamaimo0625:20191111205804p:plain
1日目の夕食

f:id:yamaimo0625:20191111205828p:plain
2日目の夕食

2日目にトンカツが出てるけど、おそらく上州の麦豚を使ったもの。
猿ヶ京温泉でも麦豚のトンカツ食べたけど、群馬の豚さんは美味しいねぇ。

ちなみに、朝食は軽めでこんな感じ。

f:id:yamaimo0625:20191111215238p:plain
ホテルの朝食

あと、ホテルのベランダからの眺めもなかなか素晴らしかった。

f:id:yamaimo0625:20191111215146p:plain
ベランダからの眺め

上牧散策

2日目はちょっと散歩してみたり。

まず、お昼を食べにソレイユというレストランに行ってみた。
ホテルから歩いてすぐのところ。

行く途中でホテル側から赤い橋を撮ってみたんだけど、まぁなんともいい景色だこと。

f:id:yamaimo0625:20191111211021p:plain
ホテル側からの橋の眺め

そして、お店に到着して席に着き、料理を待ってる間に写真を数枚。

f:id:yamaimo0625:20191111211231p:plain
利根川が見える川辺の席

f:id:yamaimo0625:20191111211318p:plain
水が驚くほどキレイ・・・

お料理はドリア。
これも美味しかったw

f:id:yamaimo0625:20191111211454p:plain
ランチのドリア

お昼を食べたら、次に向かったのは大峰館。
日帰り温泉入ってみたかったのでw

f:id:yamaimo0625:20191111211730p:plain
途中で撮ったホテルニュー上牧

f:id:yamaimo0625:20191111211839p:plain
まさに雄大という感じ

f:id:yamaimo0625:20191111212007p:plain
大峰館入り口

f:id:yamaimo0625:20191111212056p:plain
柿がとても風情あっていい

と、ここで入ってみたものの、誰もいない(^^;
呼び鈴を鳴らしても誰も出てこないし、困ってしまった。
最終的に、電話をかけてみたら繋がってなんとかなったw
(「私、メリーさん」じゃないけど、「すみません、今入り口のところに来てて」と伝えるのはちょっと変な感じだったw)

お風呂の方はというと、自分以外はいなくて貸し切り状態w
露天風呂はこじんまりとした感じで、京都の町屋の小さな庭を感じさせる風情があった。
4, 5人も入れば満員という感じだったけど、一人なので悠々と入れてとても気持ちよかった。
ネットの評判で、硫黄泉ではないのにどことなく硫黄の香りがすると書かれていたんだけど、たしかに微かな香りが。
これはとても不思議。
そして、山から吹いてくる風が心地良くて、とてもいいお湯だった。

ちなみに、wifiの文字もあったので、大峰館でもwifiは使えたのかも。

気持ちよく露天風呂に入ったあとは、そのまま散歩を続行。

f:id:yamaimo0625:20191111213852p:plain
いい感じの橋

f:id:yamaimo0625:20191111213946p:plain
「かみもくゆめのブリッジ」

ちなみに、この橋を渡ったところに日帰り温泉の「風和の湯」もあったりする。
今回は入らなかったけど。

そのまま散歩を続けていたら、真っ赤に実ったリンゴが!

f:id:yamaimo0625:20191111214200p:plain
美味しそう!

知らなかったのだけど、リンゴ園があったらしい。
リンゴを直販してたり、アップルパイなどが食べられる感じだった。
もちろんリンゴ狩りもできる。

f:id:yamaimo0625:20191111214450p:plain
阿部りんご園

そしてホテルの方向に歩いていたら、なんと虹が!

f:id:yamaimo0625:20191111214830p:plain
虹!

f:id:yamaimo0625:20191111214859p:plain
虹の根っこ!

山がすぐ近いからか、虹の根っこがちょうど山から生えてる感じに見えて、ちょっと驚き。
虹の根っこってどうなってるんだろうね、というのは小さい頃に出た話だけど、まさかこんなところで見れるとは・・・

あと、月夜野焼の窯に行って、ねずみの置き物を買ってみたりしたw

f:id:yamaimo0625:20191111215542p:plain
月夜野焼のねずみの置き物

かわいいw


長くなったので、続きは次回で。

今日はここまで!

小説の書き方に関して。

f:id:yamaimo0625:20191027115107j:plain

『Math Poker Girl』を書くまえに小説の書き方の本を何冊か読んだ。

これらの内容が『Math Poker Girl』に活かされたかというとかなり微妙なんだけど(『Math Poker Girl』はスタイルが小説なだけで実際には技術書ーーというか論文なので)、いろいろ気づきもあったのでまとめておきたい。

小説は虚構である

一番大きな気づきはコレ。
小説は虚構であるということ。

そもそも小説というものは、どれほど真実に基づき、どれほど正確に言葉を尽くしたところで、結局のところただの文章であり実在しない偽りを語っているのである。
(『ラノベの書き方』より引用)

いかにも本当らしいことが書かれていても、それは作者の想像力がつくりだした虚構であって、現実そのものではない。
(『小説の書き方』より引用)

これは当たり前ではあるのだけど、そこに自覚的になることでいくつかのことが言えるようになる。
(本ではそれが説明されている)

まず、面白さは重要だということ。
虚構なのだから、現実にこだわる必要はない。
面白くなるようにいくらでも手を加えられるし、逆に面白くなければ意味がない。

現実だとお話のようには上手くいかないものだけど、そんなのは読者は求めていない。

読者が求めているのはリアリティであって、リアルではないのだ。
(『ラノベの書き方』より引用)

それに、事実をそのまま書いたものはドキュメントや記録でしかない。
そこに嘘か本当か分からない虚構を入れることにより小説になり、面白さも生まれる。

小説は事実よりも奇なりでなければ、小説の価値はない。
(『小説の書き方』より引用)

とは言え、「リアリティ」は求められていることに気をつけないといけない。
その作品世界の中での一貫性はないと、真に迫れない。

そして、虚構だからこそ本物より本物らしく描け、そこにリアリティが生まれることになるというのが非常に面白い。

女形(おやま)の正体は男であるが、女を女以上に研究しているので、本物の女よりも女らしく見える。
小説のリアリティとはまさにそのようなもの(省略)。

この偽物であるがゆえに本物より本物らしく出来るというのは、Fateを思い出した。

「偽物が本物に敵わないなんて道理はない」
衛宮士郎、『Fate/stay night』より)

ある出来事をそのまま描くのではなく、それを分解して理解し、再構築して描き直すことで、そこには虚構が織り交ぜることが可能になり、本物よりも本物らしくなれる。
(逆に言えば、そこが甘いとリアリティが得られないことになる)

例えば、ある事件をテーマに小説を書くとして、ドキュメントや記録ならそこに登場人物の心情なんか挟まらないし、そもそも知ることなんて出来ない。
けど、小説なら虚構だから、それが出来る。
さもその登場人物がそう感じたかのように心情を描き出すことが出来る。
あるいはさらに面白い展開に変えることも出来る。

この小説の虚構性を理解しそれを乗りこなすことが肝心だと思った。

小説を書く流れ

では、実際にどう書いたらいいのかということで、『ラノベ書きが教える小説執筆術』では妄想を膨らまして小説に仕立て上げる方法が紹介されていた。

  1. 妄想する。妄想をメモる。
  2. 妄想から設定を作る。世界観などにも設定を広げる。
  3. 妄想を脳内で映像化する。いろんなシーンを考えてキャラが勝手に動き出すくらいまで。
  4. 妄想したシーンを実際に文章にしてみる。書きたいところから書けばいい。設定を文章に盛り込むといい。
  5. 複数のシーンを並べてみる(簡易プロット)。シーンが足りなければ妄想を追加する。
  6. 妄想の隙間を埋める。(物語の導入を書いたり不足している説明を入れたり)
  7. ラストを書いて終わらせる。

妄想もやはり虚構だから、虚構を描き出すというのが小説の本質と分かる。

基本的には以下のようにするといいと思った。

  1. 妄想するなり取材するなりで、書きたいものを見つける。
  2. キャラを作る。
  3. ストーリーを考える。
  4. プロットを書く。
  5. 執筆する。

キャラの作成

『小説の書き方』では、人間不在の小説はありえないことが指摘されていた。
「小説は人間を描くである、ただし、それは作者が作り出した架空の人物とその人生である」と。

設定をいろいろ考えていくとよくて、特に「こういうシチュならこのキャラはどう動くだろう」とか「この質問にこのキャラならどう答えるだろう」というのを考えておくとキャラが掴みやすいと『ラノベの書き方』には書かれていた。
ラノベ書きが教える小説執筆術』の「妄想を脳内で映像化する」というのもこの作業と同じ効果があるんだと思う。
キャラが勝手に動き出せばこっちのものという感じ。

『小説の書き方』では「パーフェクトな人間は魅力がない、どこか壊れているキャラの方が人間として共感できる」ということが書かれていた。
確かに、何か弱点があったり、一点特化型のキャラの方が面白いし、そういうラノベも多い。
そういう人間が近くにいたら正直困るけど、所詮は物語の中のキャラなので読者は対岸の火事を見物するように楽しめるということも書かれていた。
これも小説の虚構性のなせる技。

あと、キャラ名の付け方に関しては『ラノベ書きが教える小説執筆術』にいくつかヒントが書かれていた。
アナグラムを使ったり、よく知らない外国語からとってきたり(Google翻訳使うと簡単)、有名人の名をもじったり。

ちなみに、『Math Poker Girl』のフィネスはFateのライネスからとってきたものだし(というかキャラはまんまライネス師匠)、ヒロアキ孔明(こうめい)を日本人の名前っぽく読んだだけだったりする・・・(ヒロアキのモデルはウェイバーで、一人称がボクなのはそのせい)

ストーリーの作成

ストーリーを作るときは「戦い」を考えるといいと『ラノベの書き方』に書かれていた。
これは言葉通りのバトルだけでなく、恋愛も一つの戦いだし、仕事も戦いだし、いろいろある。
とにかく困難があり、それにぶつかることでストーリーが生まれる。

なお、キャラとストーリーで対立することがあった場合、キャラを大切にした方がいいとのこと。
キャラを魅せるためにストーリーがあると考えればいい。

プロットの作成

プロットは小説の設計書。
いろいろな書き方があるけど、『ラノベの書き方』には以下を書くといいとされていた:

  • テーマ
  • 登場人物、各種設定
  • ストーリーの流れ
  • 対象とする読者
  • どこが面白いのか

キャラの作成やストーリーの作成が読者のためにやるものだとしたら、プロットの作成は作者のためにやるものとのこと。
外部設計と内部設計のように考えるといいのかも。

プロットをしっかりと作っておくことで、実際の執筆のときにプロットを見ればブレることなく執筆できる。

とはいえ、実際に書いてたらプロットから外れることはある。
(これはプログラミングと同じだと思う)
そのときはキャラを殺さないように、そして作品内でのリアリティ(一貫性)が損なわれないように、調整していくことになりそう。

執筆

文章には「説明」と「描写」の二種類があると『小説の書き方』では指摘されていた。
説明は客観的な記述であるのに対して、描写は筆者の主観が入ったものとなっている。
小説はほとんど描写によって書かれていて、それゆえ虚構が織り交ぜられることになる。

ラノベの書き方』ではこれがさらに「状況」「心情」「会話」に分けられることが書かれていた。
このとき、地の文となる状況や心情には(その作品世界の中での)嘘は入れてはダメだけど、会話には嘘が入ることがあると指摘されていた。

この辺りの違いも意識して書けるとよさそう。

今日はここまで!

未踏ジュニア2019年度最終成果報告会に行ってみた。

f:id:yamaimo0625:20191023151952j:plain

10/22(祝)に未踏ジュニアの最終成果報告会に行ってきた。

この発表がどれも面白かったので、軽く紹介と感想など。

未踏ジュニアとは

IPAでは独創的なアイディアを持った人材をサポートするために未踏事業というのを行っている。

ただ、これだと競争が厳しくて小中高生ではなかなか採択されないので、17才以下の小中高生(+高専生)を対象として生まれたのが未踏ジュニア。

けど、昨日の発表を見ると、普通の大学での研究や企業でのプロジェクトにも引けを取らないような発表もあったりと、とてもレベルが高いと思った。
こういった小中高生がいるのはすごく希望がある。
ぜひとも、潰されることなく(出る杭は叩かれやすい・・・)、このまま成果を出し続けていって欲しいと思った。

以下はそれぞれの発表の概要と、自分の感想。

渡部さん「バトンマスター」

陸上部で、リレーのバトンパスを上手くできるようになりたいということから、バトンパスを計測するバトンマスターを作った。
バトンにM5Stackが入っていて、3軸の加速度データからバトンパスの様子を可視化できる。
普通のシステムだとお高いけど、これなら安くできる。

***

M5Stackで万歩計を作ってる人はIoTLTで見たけど、こういうことも出来るのかぁ、と感心した。
自身が陸上部だからこその視点と思った。
そしてそれをちゃんと物として作り上げる実現力は見事。

なお、距離を求めるのに、加速度の様子から何歩進んだのかを検出して歩幅と掛け合わせていたんだけど、加速度を積分していけば距離にならないものかなと思って質問してみた。
回答は、バトンの向きが変わってしまうので難しいのと、センサの誤差があるので正確な値を得るのが難しいとのこと。

誤差は確かにそうかも。
計測の間隔に限界があるから。
ただ、バトンの向きに関しては角速度を積分すればバトンの姿勢が分かりそうな気もした。

行方さん「Edge-guided Anime Characters Generation」

なかなか上手に絵が書けないので、深層学習による画像生成で描きかけの絵から完成した絵を作るシステムを作った。
線を引くたびに予測されるキャラクターの画像が生成され表示される。

***

デモがとても面白かった。
そして、深層学習を普通に使いこなしてるとか凄い・・・
ライブラリなどを使えばいろいろ作れるんだから、凄い時代になったもんだなぁと思う。

一つ気になったのは、再現性。
お絵かきで一枚絵を描いて終わりということは少ないと思っていて、同じキャラで別ポーズをさせたり、あるいはマンガにしたりすると思うのだけど、このシステムの場合、そういった再現性を持たせて絵を書くのが非常に難しそうな気はした。
絵の練習にはとてもいいと思うんだけど。

武田さん「編模様(あもーよ)」

イラスト手編み支援アプリを作った。
編集モードと編みモードで切り替わって、編みモードだと今編んでいる段が分かりやすく表示される。
最初Scratchで作ったものをUnityへ移植したとのこと。

***

身近なところにあった題材に対してとても素晴らしい解決策を提供していてとてもよかった。
発表にもその優しい雰囲気が滲み出てた。
使う人の気持ちを考えられるのはプロダクトオーナーとして非常に重要なので、とても素晴らしいと思う。

気になることとしては、優しすぎること。
こういう出来るいい人は使い潰されやすいので、潰されないで欲しい。
ホントに。
技術的にではなく、リソース的にできるかどうかも気にかけるといいと思う。

岸本さん「fresh capsule

家事の負担を減らしたいということで、賞味期限を管理できるアプリを作った。
以前作ったこともあって、そのときは手動で賞味期限を入力するのが大変だったので、OCRを使うようにした。

***

発表を聞いて最初に気になったのが、賞味期限管理アプリって既存でいいものないのかなぁということ。
実際、その場で調べてみたら、予想通りいろいろあった。
けど、意外にも賞味期限をカメラで読み取って入力するアプリはないみたい。

以前のふりかえりから改善点を見つけて新しい開発に進めているのがとてもいい。

気になったこととしては、登録もそうだけど、使ったときに印をつけておかないと不要な通知が飛んできそうだよなぁ、というのがある。
そうなると、使うたびに操作が必要で、それも面倒そう・・・
パッといいアイディアが浮かばなので、けっこう難しい問題なのかもしれない。

迫田さん「neulot-生体信号を用いたモーションキャプチャシステム」

SAOみたいなフルダイブを実現したくて、その第一歩として脳波、筋電位を使ってデバイスを操作するシステムを作った。
筋電位を使った義手操作はALTsさんで採択された。
脳波については、従来のものはタイムラグが大きかったので、運動準備電位を使うことにした。
プログラミングの問題でタイムラグはあまり小さく出来なかったけど、プログラムを改善させればタイムラグを小さく出来るはず。

***

今回の発表の中で自分が一番驚いた発表。
やってることが普通に大学の研究室とかでやられていること。
実際、筋電位のシステムについては企業で採択とかもされてるみたいだし。
凄い。

そして、運動準備電位とかよく知ってるなぁ、と思った。
自分は前野先生の受動意識仮説の本でリベットの実験のことを読んでたから知ってたけど、普通は知らないよなぁ・・・

脳はなぜ「心」を作ったのか「私」の謎を解く受動意識仮説 (ちくま文庫)

脳はなぜ「心」を作ったのか「私」の謎を解く受動意識仮説 (ちくま文庫)

そして、今回はアウトプット側の話だったので、インプット側についても何か考えているのかを質問してみた。
今のところ考えてないようだけど、そういった研究があることは知っていたようなので、ぜひともインプット側についても考えてみて欲しいと思った。

というのは、『現れる存在』によれば、知覚→探究がサイクルとして回っていると指摘されているから。

現れる存在―脳と身体と世界の再統合

現れる存在―脳と身体と世界の再統合

われわれは、「瓶の感触」を得るのを受動的な感覚の働きと考えがちだが、これは断片的な知覚がさらなる探究を導くという、行為を含んだサイクルとして理解した方がいい。
この行為を含むサイクルが、瓶全体を知覚するという経験の基礎にある。
このラディカルな見解においては、接触は探索の道具としてあちらこちらに向けて放たれ、周囲の環境を何度となく探っている。
(『現れる存在』アンディ・クラーク 著、より引用)

アウトプットだけだと、実はアウトプットが迷子になってしまうことが考えられる。
インプットからのフィードバックによって次のアウトプットの方向性が定まり、そのループによる統合によって全体に知覚が及ぶ。
フルダイブのような仕組みを実現したいなら、このフィードバックについて考えるのは必須になってくると思う。

余談だけど、『現れる存在』はこれ以外にもいろいろ面白いことが書かれているので、ぜひとも読んで欲しいと思った。
身体性認知科学というジャンルになるっぽいのだけど、哲学、科学の混じり合う最先端なので、とても参考になると思う。

小野村さん、上念さん、石崎さん「ManageStock - 家庭向け在庫管理アプリ」

消耗品がなくなるのを防ぎたいので、簡単に在庫管理する仕組みを作った。
ドアセンサで箱の開閉をチェックするシステム、重量計でチェックするシステム、単にボタンだけのシステムをそれぞれ作ってみた。
それぞれ一長一短あったので、使い分けるとよさそう。
また、これをウェブアプリで管理するようにした。

***

ちょっとした仕組みだけど、これがあるだけでだいぶ便利そうだと思った。
以前、会社で消耗品(ノートとか付箋とか)持ち出すときに、ノートに誰が何個持っていったというのを記録するルールがあったのだけど(実質機能してなかった)、なんかそれを思い出してちょっと悲しくなった。
IoTやってますって言ってる会社がそれって、どうなんだろう・・・
評価ボードが行方不明になったりとかもあって、なんというか、ねぇ・・・中高生に負けてるよ・・・

高山さん「DetExploit - WindowsOSS脆弱性スキャナー」

アンチウィルスではなく、感染する原因をチェックして減らす仕組みを作った。
サーバからクライアントに指示を送ってスキャンを開始、情報を収集できるので、管理が簡単。
OSSで公開している。

***

話だけ聞くと、普通に企業が有料ソフト使ってやってることなのかなぁ、という感じ。
JP1とか、ウィルスバスター・コーポレートエディションとか。

割と不思議に思ったのが、どうしてこれをやろうと思ったのかなということ。
発表に使ってるPCはMacだったし(作ったシステムはWindows専用)、サーバ管理とかやる立場になることもないだろうし。

あと、入ってるソフトをチェックするためにレジストリを覗いたり外部と通信してそのデータを送ったりするのは、マルウェアの動きなので、下手すると他のアンチウィルスソフトに弾かれそうなのが気になった。
そうすると、ホワイトリストに入れてもらったりする必要があるんよね・・・

和泉田さん「Tea - 仮想経済シミュレーションプラットフォーム」

Discordというゲーム向けのチャットアプリを使って、経済シミュレーションゲームのプラットフォームを作った。
アイテムを生産したり加工して売り買いしたり出来る。
いろいろな拡張が考えられて、これをゲーム寄りにしていくのか、シミュレーション寄りにしていくのかは考え中。

***

ゲーム内での経済は自分も一時期興味を持っていたので、二つほど質問してみた。
一つは、経済では時間が重要な要素としてあるけど、それについてはどうなっているのか。
もう一つは、ゲーム内の経済はインフレしやすいように思うのだけど、それについては何か対策しているのか。

まず、一つ目については、アイテム生成に時間がかかるようになっているとのこと。
二つ目については、インフレしたらそれはそれで面白そうという回答w

一つ目の質問の背景を少し説明しておくと、強化学習で割引率というのを考える通り、経済だと「早く手に入る」ということの価値が重要だったりするから。
銀行の利子についても割引率から考えることが出来たりする。
あるいは、インフレによって貨幣価値が下がっていくという面もあったり。

以下の記事も参照:

二つ目については、メンターの方もコメントで補足していた通り、ゲーム内だと資産が減らないというのが大きい。

『21世紀の貨幣論』では、貨幣とは譲渡可能な債権であるという見方が示されている。

この考え方を使えば、流通しているお金の総量は社会に対する各個人の貸しの総量になっていて、生産すればするほど増え、消費されればされるほど減っていくことになる。
けど、ここで消費しても物自体がなくならないと、貸しが減らないことになる。
なので、どんどん貸しの量が増えていき、結果としてインフレが起こる。
(そして新規が入って来れなくなる)

なので、ゲゼルの唱えた「減価する貨幣」とかの実験がここで出来れば面白そうだなぁと思った。

松田さん「Mallet - 簡単なアプリを作れるモバイル端末用の開発環境」

スマホ/タブレットだけで簡単なアプリを作れるようにした。
ビジュアルプログラミング言語を使う。(テキスト編集も可能)
将来的にはマルチプラットフォームにする予定。

***

メンターの方が言うには、アプリを作れるようにするというから言語を作るのかと思ったら、言語はもう作ったのでそれを使えるプラットフォームを作るとのことで、もうこの時点で強い。
デモもやっていて、実際簡単に作れるようなので凄かった。

ただ、今やるならiOSネイティブで作らないでUnityを使うなりJavaScriptを使ったウェブアプリにしそうなもので、質問してみた。
まぁ、自分もSwift使いたくて(というかAndroid嫌いで)iOSネイティブアプリ作ったので、人のこと言えないのだけど(^^;

あまり明確な回答はもらえなかったのだけど、今やるなら絶対マルチプラットフォームにした方がいいと思う。
使えない人がいるというだけで価値が下がってしまうので。

平川さん「SmartVJ - 参加型の新しいメディアアート

スマホで映像や音を操ってみんなで作品を作るシステムを作った。
QRを読めば使えて、スマホを傾けたり回したりすることでエフェクターをかけたり出来る。

***

まさにIoTという感じで、IoTLTとかでも発表されそうな内容。
よく出来てるし、何よりオシャレでいいw
センスがあるw

竹内先生も質問してたけど、複数人でコラボしたときはいろいろ工夫が必要そうで、逆にそこにいろいろ可能性を感じた。
具体的なアルゴリズムは難しいけど、ハンドベルで一曲作るように、このシステムでみんなで協力して曲を作れても面白そう。

浅野さん「abecobe - シンプルかつ難しいパズルゲーム」

abecobeというスマホのパズルゲームを作った。
片方のキャラを動かすと反対のキャラは点対象の方向に動く。
それで両方をゴールに持っていく。
どうすればより面白くなるかを考えて、共感が重要だと思い、そこに注力した。

abecobe

abecobe

  • Atsushi Asano
  • ゲーム
  • 無料

***

質問タイムで、ダウンロードして実際に遊んで楽しかったと感想を伝えた人がたくさんいたw
自分も少し触ってみたけど、キャラが可愛いしパズルもなかなか面白い。

パッと浮かんだのがハイパーロボットだったので、時間制限による対戦とかは考えなかったのか質問してみた。
すると、対戦モードは試してみたけど、ゆったりプレイして欲しいかったのであえてなくしたとのこと。
作品に対する明確なポリシーを持ってて素晴らしい!

糸井さん「pirka - 会話を通して成長する人工知能技術」

話していると学習して自分に似てくるボット(人工無脳)を作った。
ユーザの言葉遣いを学習したり、単語に割り当てる感情のパラメータをユーザに合わせて学習するようにした。

***

まず思い浮かんだのは、『恋するプログラム Rubyでつくる人工無脳』。

でも、RubyではなくPythonを使っていたようなので、やっぱり時代はPythonなんだなぁとちょっと寂しくなった。

自然言語に興味があるということでそれに関した質問をしたい気持ちはあったけど、さすがにちょっと難しいので、pirka(ピリカ)という名前の由来を質問してみた。
これは、アイヌ語で「美しい」という意味とのこと。
エトピリカという鳥は美しいクチバシという意味なんだとか。

ちなみに、質問したかったのはソシュールレヴィ=ストロースは知っているのかなということ。
言語で単語をどう分けるかは恣意的で、文化による部分が大きかったりする。
(例えば日本語だと「水」と「お湯」という単語があるけど、英語だとどちらも「water」とか)
もし知らなかったら、ソシュール言語学構造主義の本は面白いので読んでみて欲しいと思った。

國武さん、森さん「VirtualPresents - VR空間をデザインする」

VR空間(VRChat)でWebサービスを提供するシステムを作った。
VR内でQRコードを見ると、そこからWebサービスと連携して画像をアップロード出来たりする。

***

VRについてはよく知らないけど、なんか凄いなという感じ。
VR内に発表会場も作ってたみたいだし。


と、めっちゃ長くなったけど、どの発表も面白かった。
あとで動画もアップロードされるようなので、興味のある人は見てみるといいと思う。

今日はここまで!

ラジオ体操のススメ。

f:id:yamaimo0625:20191016140412p:plain

最近、朝起きてラジオ体操をしているのだけど、これがいい感じだったのでオススメしたい。

ラジオ体操、なめてない?

ラジオ体操といえば、誰もが子どもの頃にやったことがあるはず。
そして「ダルいなぁ〜」とか「こんなの運動にもならないよ」と思いながら渋々やっていた人も多いと思う。

けどね、大人になった今なら分かる。

ラジオ体操、なめたらアカン。

これ、鈍った体にはメチャクチャ効く・・・

子どもの頃には「こんなのちょいと体動かしてるだけで運動でもなんでもない」と思ってたけど、大人になってやってみると体のいろんな部分を動かし伸ばしているのが身に染みて分かる。。。
正直ビックリした。

嘘だと思うなら、以下の動画を見ながら実際にやってみて欲しい。(※動画は鏡写し)

懐かし〜と思うと同時に、体がめっちゃ鈍ってて、ラジオ体操でかなりほぐれることが分かるはず。
特に、普段デスクワークで座りっぱなしだとその実感の度合いも強いと思う。

「いや、全然ラクショウだったし」という人は、素晴らしい。
まだまだ体が若い証拠。

ただね、年取ると体は一気に衰えるので、そういった人もラジオ体操のようなお手軽な運動を地道にやっていった方がいいと思う。
いや、自分自身、ここまで体が衰えるものかと驚いてるから・・・
まだ30代なんだけどなぁ・・・

毎朝続けるために

さて、ラジオ体操も一回やって終わりだと微妙なので、毎朝続けたいところ。
けど、継続するのはなかなか難しいわけで。

そこで頼るのが、やはり「仕組みの力」
意志の力だけでやろうとしてもなかなか続かないので、続けるための仕組みを用意してあげるのがいい。

夏休みのラジオ体操ならスタンプ帳とかが定番だけど、それと同じようなことを今はアプリで出来る。
「毎朝体操」というアプリがいい感じだった。

毎朝体操

毎朝体操

  • 有限会社 来栖川電算
  • ヘルスケア/フィットネス
  • 無料

使い方は簡単。

  1. アプリを起動
  2. やる体操を選択
  3. スマホを持ったまま体操する

このスマホを持ったまま体操するというのが面白くて、なんと加速度センサを使って体操の採点をしてくれる
どれくらい正確に判定できてるのかはよく分からないけど、終わったあとに点数が表示されるので、高めの点数が出てくれるとちょっと嬉しいw
カラオケの採点みたいなものと思うといいかも。
やっぱり点数が出るとそれだけで楽しさが増してやる気が出てくる。

あと、体操をすると記録されて(アプリ内の)カレンダーにスタンプが押される。
カレンダーがスタンプで埋まっていくのを見るのは嬉しいw
(ただ、なんかバグがあるのか、スタンプが消えることが・・・これ、すごく悲しいので早く修正されて欲しい)

他にもトロフィーという名のアチーブメントがあって、ある体操で満点を出すとトロフィーがもらえたり、季節に応じたトロフィーがもらえたり。

それに、イベントも定期的に行われてて、体操の点数で順位が出たりする。
(なんかイベント参加の賞品としてポイントがもらえて、そのポイントでお買い物ができたりもするっぽいのだけど、それはまだ試せてない)

こんな感じで続けるための仕組みがいろいろ用意されている。

体操の種類

用意されている体操は、以下:

  • ラジオ体操第一
  • ラジオ体操第二
  • ラジオ体操第一 + 第二(二つ続けてやる)
  • アクティブ体操(これはよく知らない・・・)

権利関係なのか、ラジオ体操の音源自体は収録されてないので、これらの体操を以下の5パターンで実施できるようになっている:

  • YouTubeの動画をスマホで流しながら行う
  • 男性インストラクターの音声に合わせて行う(音楽は流れない)
  • 女性インストラクターの音声に合わせて行う(音楽は流れない)
  • 無音で外部の音源に合わせて行う
  • スマホ内の音源に合わせて行う

オススメは無音で外部音源を使う方法か、スマホ内の音源を使う方法。
(音楽が流れないのはやっぱり寂しい)

たとえば、YouTubeにラジオ体操第一/第二の動画があるので、それをパソコンなどで流しながらその前で運動するとか。
(※スマホYouTubeの動画を流す方法だと、スマホを持ちながら運動するので動画は見れない)

あるいは、iTunesなどでラジオ体操の音源を買えるので、それをスマホに入れて使うといい。

ラジオ体操 みんなの体操 - Single

ラジオ体操 みんなの体操 - Single

  • 多胡 肇(指導) 幅 しげみ(ピアノ演奏)
  • サウンドトラック
  • ¥600

自分は後者の方法を使っている。


なお、毎朝ラジオ体操をやるためには当然毎朝ちゃんと起きないといけないわけだけど、それには以前紹介した「SleepTown」を使うといい。

自分の今のルーチンは、

  1. 23時までに「SleepTown」を起動して寝る。
  2. 「SleepTown」の6時のアラームで起きる。→建物が立つ。
  3. いろんなアプリでログインボーナスをゲットしたり周回したり。
  4. 頭がしっかり起きたところで「毎朝体操」でラジオ体操第一 + 第二。

という感じ。
朝ラジオ体操で体をぐっと伸ばせるのがとても気持ちいい。

勉強会とかがあると23時までに家に帰れなくてこのリズムが崩れることがあるけど、そうでないときはちゃんと続けられてるのでいい感じだと思う。
やっぱり「仕組みの力」は強い!

今日はここまで!

TeXで同人誌を作ってみた。(まとめ)

f:id:yamaimo0625:20190918075457j:plain

これまでの各記事は、以下から。


他、同人誌制作まわりの振り返りは以下から:

また、技術書典関連の振り返りは以下から:


宣伝!
『Math Poker Girl』はBOOTHで販売中!
 \TeXで作った書籍の出来を確認してみてね!

今日はここまで!

TeXで同人誌を作ってみた。(パッケージ紹介)

f:id:yamaimo0625:20190918075457j:plain

長かった振り返りも今日で終わりで、最後は使ったパッケージの紹介。

okumacroパッケージ

いろいろ入ったパッケージ。
自分が使った機能はルビと均等割くらい(のはず)。

colorパッケージ

色関係のパッケージ。
今回は\textcolor[gray]で文字の濃さをしていするのにしか使ってない。

\textcolor[gray]{<lightness>}{<text>}で<text>の明るさを<lightness>に出来る。
この値がちょっと分かりにくいのだけど、0が一番暗くて真っ黒になり、1が一番明るくて真っ白になる。

ascmacパッケージ

文章に枠をつけるのに使った。

\begin{screen}
ここが枠に囲まれる。
\end{screen}

\begin{itembox}[l]{タイトル}
タイトル付きの枠で囲いたい場合はitemboxを使う。
オプションはタイトルの位置の指定。
(l: 左、c: 中央、r: 右)
\end{itembox}

他にもメモ帳みたいな枠を使ったり影付きの枠を使ったり出来る。
網掛けなども可能。

fancyboxパッケージ

トランプの記号を出すために\ovalboxを使った。

なお、ascmacパッケージにも\keytopというマクロがあり、それで出来ればよかったんだけど、使ってみたら微妙だったのでfancyboxパッケージを使うようにしている。

enumerateパッケージ

enumerate環境でカウンターの表示形式を簡単に変えることが出来るようになる。

\begin{enumerate}[A.]% カウンターの表示がA., B., ...となる
  \item ... % A. ...と表示される
  \item ... % B. ...と表示される
\end{enumerate}

表示形式としてはA(A, B, ...)、a(a, b, ...)、1(1, 2, ...)、I(I, II, ...)、i(i, ii, ...)が指定できるみたい。

paralistパッケージ

内容としては列挙なんだけど、別行組にしたいわけではない場合、このパッケージを使うといいみたい。

ハイカードになるのは、
\begin{inparaenum}[(1)]
    \item ランクが同じカードが1枚もなく、
    \item ランクが連続している5枚のカードがなく、
    \item スートが同じ5枚のカードがない、
\end{inparaenum}
という条件をすべて満たしているとき。

という感じで使った。

multicolパッケージ

部分的に多段組にしたいいときに使える。

\begin{multicols}{3}
ここが3段組で組まれる。
\end{multicols}

なお、jlreqなどで縦組にするとエラーが出ることがあるっぽい。
その場合、platex-toolsのpxmulticolパッケージを使ってやるとよさそう。

longtableパッケージ

複数ページに分ける必要のある表を書くことが出来る。

使い方は説明がちょっと大変なので省略・・・
texdoc参照。

diagboxパッケージ

表で斜線を引くのに使った。

同じ機能を持った有名なパッケージはslashboxというのがあるみたいなんだけど、(diagboxのドキュメントを読む限り)ライセンスに問題があってTeX Liveでは使えないらしい。
(ちゃんとは確認してない)

\diagbox{<item1>}{<item2>}とすることで、セルに斜め線を引いて引数で指定した内容が入ってくれる。

multirowパッケージ

表でセルの縦結合を行うためのパッケージ。

\multirow{2}{*}{...}みたいにすることでセルを縦に結合できる。
詳細はドキュメント参照。

lscapeパッケージ

ページを90度回転することが出来る。
これによって幅の広い表を1ページに収まるようにしたり出来る。

\begin{landscape}
90度回転したい内容を書く。
\end{landscape}

パッケージの紹介は以上。

宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!

TeXで同人誌を作ってみた。(マクロ)

f:id:yamaimo0625:20190918075457j:plain

今日は自分が定義したマクロを軽く紹介。

小物

まずは簡単なものから。

% 空行
\newcommand{\emptyline}{\vspace{\baselineskip}}
% 三点リーダ
\newcommand{\santen}{$\cdots\cdots$}
% 倍角ダーシ
\newcommand{\dash}{------}

このあたりは必要ならあとで定義を変えられるようにマクロにしておいた。
最後までこのままで修正しなかったけど。

三点リーダと倍角ダーシについては、ホントは修正した方がよさそう。
というのも、\cdotsによる三点リーダ \cdots)と全角の三点リーダ(…)ではベースラインの関係で微妙にズレがあるように思うから。
横書きの場合はあまり気にならないけど、縦書きの場合はかなり気になる。
倍角ダーシについても同様で、---でのemダーシ(TeX記法で出せない・・・)と全角ダーシ(—)だと高さにズレが。

なお、全角ダーシを2つ並べて倍角ダーシにしようとするとフォントによっては間に隙間が入ってしまう問題があって、それに対処するためにokumacroパッケージでは\−−というマクロが用意されているんだけど、なんで見分けのつきにくい横棒をマクロ名に入れたのか・・・
長音(ー、U+30FC)なのか全角ダーシ(—、U+2014)なのか水平線(―、U+2015)なのかさっぱり分からない。

トランプ関連

トランプ関連の表現をするために以下のマクロを定義した:

% スート
\newcommand{\spadeBlack}{}
\newcommand{\heartBlack}{}
\newcommand{\diaBlack}{}
\newcommand{\clubBlack}{}
\newcommand{\spade}{\textcolor[gray]{0.1}{\spadeBlack}}
\newcommand{\heart}{\textcolor[gray]{0.6}{\heartBlack}}
\newcommand{\dia}{\textcolor[gray]{0.45}{\diaBlack}}
\newcommand{\club}{\textcolor[gray]{0.25}{\clubBlack}}

% トランプ(9sやTdと指定する)
\def\internalCardH#1#2{%
    \if#2s\ovalbox{\hbox to 2.1zw{#1\spade}}\fi%
    \if#2h\ovalbox{\hbox to 2.1zw{#1\heart}}\fi%
    \if#2d\ovalbox{\hbox to 2.1zw{#1\dia}}\fi%
    \if#2c\ovalbox{\hbox to 2.1zw{#1\club}}\fi%
    \if#2?\ovalbox{\hbox to 2.1zw{??}}\fi%
}
\def\internalCardHBlack#1#2{%
    \if#2s\ovalbox{\hbox to 2.1zw{#1\spadeBlack}}\fi%
    \if#2h\ovalbox{\hbox to 2.1zw{#1\heartBlack}}\fi%
    \if#2d\ovalbox{\hbox to 2.1zw{#1\diaBlack}}\fi%
    \if#2c\ovalbox{\hbox to 2.1zw{#1\clubBlack}}\fi%
}
\newcommand{\cardH}[1]{\internalCardH#1}    % 水平
\newcommand{\disabledCardH}[1]{\textcolor[gray]{0.8}{\internalCardHBlack#1}}    % 水平(無効状態)

これで\cardH{9s}とか\cardH{Td}とか書くだけで本文に出てきたようなトランプマークを出すことが出来る。

なお、濃さを変えるために\textcolorを使っていて、これはcolorパッケージが必要。
また、角丸の矩形を書く\ovalboxを使うのにfancyboxパッケージを使っている。

あと、スートはamsmathで出力することも出来たんだけど、フォントが微妙だったのでamsmathは使わずにUnicodeで普通に指定している。

そしてこのマクロを説明しようとすると、うーん、難しい(^^;
 \TeXのマクロってラムダ計算での関数適用(β-簡約)をベタッとやってる感じなんだよね・・・
もちろん副作用があるので適用順が重要で、それを制御するために\expandafterとかいろいろある感じ。

二重丸の記号

他にも記述量を減らすために細かいマクロは定義してるけど、有益そうなのはこれ。
二重丸の記号を出す方法。

二重丸の記号はamsmathを使えば\circledcircで出力できるんだけど( \circledcirc)、これが微妙だった。
大きな丸\bigcirc \bigcirc)の内側に小さな丸が書かれている感じにしたかったんだけど、丸のサイズが違っていて・・・

そこで用意したのが次のマクロ:

% 二重丸の記号
% \ooalignで重ねる。\crcrは重ねるものの区切り。
\newcommand{\doublecirc}{{\ooalign{$\bigcirc$\crcr\hss$\circ$\hss}}}

これを使うと大きな丸に重なるように小さい丸が出力されていい感じの二重丸になる。
(これもTeX記法で出せない・・・)

なお\ooalign{\ooalign{<item1>\crcr<item2>}}とすると<item1>の上に<item2>を重ねることが出来る。
今回は重ねる丸(\circ)の両側を\hss(バネと考えるといい)で挟むことで下になっている大きな丸(\bigcirc)のちょうど中央に重なるようにしている。

リード文

各章のはじめに引用文を書いたのだけど、それは以下のようなマクロを使った:

% リード文
\newcommand{\lead}[2]{% #1: 引用元, #2: 引用文
    \vtop to 10\baselineskip{% 10行分の高さを確保
        \begin{flushright}
            {\small {\bfseries #2}\par\dash#1}
        \end{flushright}
    }}

なお、そういうのを本当はエピグラフというらしい。
さらにはそのためのパッケージもあったみたい・・・

会話文

会話文はいろいろ厄介なことが多い。

まず、改段落されているのに行頭にインデントは不要。
けど、鉤括弧(「)のサイズは全角の半分(二分)なので、何もしないとそれ以降が半角ずつ上にズレてしまう。
そこで、会話文の鉤括弧の前にはインデントの代わりに半角(二分)のスペースを普通は入れる。

それを簡単に出来るようにしたマクロがこれ:

% 会話
\newcommand{\talk}[1]{\noindent\kern0.5zw\inhibitglue\ignorespaces#1}

これで例えば

\talk{で、どうだい?
ポーカーをやってみないかい?
ルールはもちろん、数学的な根拠にもとづいた理論をキミには教えようじゃないか。
もちろん金銭を要求したりなんかはしないさ}

とすればいい感じに鉤括弧が入ってくれる。

なお、作文の授業とかだと鉤括弧の終わりに句点を書くように指導されるのが普通だけど(その場合、閉じ括弧と句点を作文用紙の同じ1マスに書く)、小説などをみると分かる通り、普通は句点は書かない。

あと、上記の例で疑問符(?)の後ろに半角スペースを入れてないけど、これはotfパッケージを使ってるから。
otfパッケージが自動でスペースを入れてくれる。
(もし入れたくない場合は\inhibitglueを直後に置く)
otfパッケージを使わない場合、自前で半角スペースを入れないとダメなので注意。

さらに加えて書くなら、jlreqドキュメントクラスを使う場合、オプションでこのあたりの挙動を変えることが出来る。

まとめ環境

各節の終わりにまとめを書くために、summary環境というのを用意した:

% まとめ
\newenvironment{summary}
    {\begin{itembox}[l]{\textbf{\thesection まとめ}}
        \setlength{\leftmargini}{1.3zw}
        \setlength{\leftmarginii}{1.3zw}
        \setlength{\leftmarginiii}{1.3zw}
        \renewcommand{\labelitemii}{$\circ$}
        \renewcommand{\labelitemiii}{$-$}\ignorespaces}
    {\end{itembox}}

itembox環境を使ってまとめを角丸の矩形で囲むようにしている。
また、箇条書きのインデント幅や記号を変えたり。

確認問題

確認問題も番号を自分で振るのはアレだと思ったので新しくカウンタを用意して自動で番号が振られるようにした。
また、ラベルをつけておくことで解答側から参照できるようにしている:

% 確認問題
% 引数は問題名で、ex:(問題名)で参照可能
\newcounter{exercise}[chapter]  % 章でリセット
\renewcommand{\theexercise}{\the\value{chapter}.\the\value{exercise}}
\newcommand{\exercise}[1]{
    \refstepcounter{exercise}\label{ex:#1}%
    \noindent
    \textbf{問題\theexercise}\hspace{1zw}\ignorespaces}
\newcommand{\answer}[1]{
    \noindent
    \textbf{解答\ref{ex:#1}}\hspace{1zw}\ignorespaces}

これは以下のように使う:

% 問題を出すとき
\exercise{term}
以下の用語の意味を答えよ。
(意味が複数ある場合、すべて答えよ)
...
% 解答を書くとき
\answer{term}
以下の通り:
...

自分で用意したマクロはこんなところ。
 \TeXもマクロを組むのがもっと簡単ならねぇ・・・

それはさておき、宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!