2020年12月27日日曜日

僕がお酒を飲まない理由

 もう今年25歳とかなっちゃったんですよ。

もうすぐアラサーなの?と思うとちょっと怖いですね。学生気分がまだ抜けてないです。


さて、成人して5年以上経つわけですが、それ以降お酒は飲んでいないのですよ。

成人してすぐは特に友達もいないし、一人暮らしだったので飲む機会もありませんでした。

最初に飲み会に行ったのは研究室配属後ですかね。歓迎会でした。その時もコーラとか烏龍茶とか飲んでたと思います。



今年はコロナ禍で忘年会もしないのが当たり前みたいな感じで宴会苦手な僕はおぉー時代が僕に追いついているななどと考えるわけですが、

なんでお酒を飲まないのかという長い話をしてみようと思います。



お酒を飲まない理由、さまざまあって端的に言うのが難しいんですが、ざっくり言うと

・イキってる感じがするから

・酒に飲まれてひどい目にあってるのを見てるから

っていう2点に集約されます。



一個目のイキってる感じがするからっていう話なんですが、

大学生のとき、親にかなり莫大な金額を出してもらって一人暮らしして県外の大学に通ってたわけですよ。

父も結構高齢で、ちょうど僕が高校を卒業したくらいで定年退職して再任用とかそういう感じの仕事をしていたので、

お金はどんどん減っていく一方の流れだったのです。そうするとやはり若干ただ生活してるだけで引け目を感じるところがあって、

必要最低限のことしかしちゃ駄目だなーみたいな自制がありました。(その後アルバイトをして3桁以上趣味に溶かしていたわけですが)

親の金でなんでイキって酒なんて飲んでるんだよみたいな感覚がずっと抜けず、結局大学生時代はお酒とか飲まずに卒業まで過ごしました。

イキってる感じってなんだよっていう話なんですが、

成人式あたりからFacebookとか見ると、同級生がビールが入ったジョッキを片手にドヤ顔で写真撮ったやつみたいなやつが上がってて、

あーイキってるなと思ってしまったのです。それからなんだかお酒飲むのって恥ずかしいことなんじゃないかと思うようになってしまいました。

実際美味しいとかそういうことじゃなくてお酒飲んでる僕大人でかっこいいーみたいな感じがしてああこうはなりたくないなと。中二病みたいな感じですね

自分が大人になりきれてないので、こういうことを思っちゃうんだと思うんですが…。



二個目はそれなりにPTSD的な感じの話です。父はストレスかかる仕事をしてたからかかなりの酒飲みだったのですよ。

お酒に強いのか、弱いのかでいうとたぶん普通くらいなのに、飲み会があるとえらい勢いで飲んでくるみたいでよく家に帰れない人になったりしていました。

別に酒に酔った父に暴力を振るわれたとかそういう経験はないのですが、結構トラウマなエピソードがあります。


まだ小学生、4,5年生くらいの頃でしょうか。夜中に寝ていたらなんか声がする感じがして、その声が夢に割り込んできていました。

ずっと続くのでそのうち目が覚めて、ああ、実際になんか声がしてるんだなと思ってなんだろう…とおそるおそる階段を降りました。

階段を降りる途中、廊下の様子がおかしいことに気が付きます。

暗くてよくわからないけど、なんだか廊下に大量の液体が流れているのです。


台所の電気がついていました。そこには大声で、裸で血だらけになりながら、パンツを持ってこいって叫ぶ父と

半泣きでそんな場合じゃないでしょ!と叫ぶ母がいました。

状況が飲み込めませんでしたが、大怪我をしている父がいるのはわかりました。

酩酊して帰ってきた父が風呂に入ろうとしてガラス扉に倒れ込んで、両手首を激しく切っていたようです。

救命士が来るので裸なのは嫌だというのでパンツを持って来いと叫んでいたようです。

えっえっ救急車?呼ぶ?と言うともう呼んだと母。学校で消防を呼ぶときは外で待ち構えて近くまで来たらここだよと合図しようねと習ったので、

外に出て救急車を待ちました。


しばらくすると救急車が来て、父は股間にタオルを巻いて搬送されましたw

同時くらいに十数キロ離れたところに住んでいた姉が車でやってきました。僕は姉の車に乗って救急車を追いかけました。

結局命には別状ありませんでしたが、何十針も両腕を縫うことに。かなりの間手の動きが鈍い状態だったようです。

数日はICUで過ごし、その後も2週間くらい入院したと記憶しています。

神経を切っているのでしばらくはほぼ手が効かない状態だったようです。パーの状態で過ごしていることが多かったです。

今もパソコンのキーボードを打ったり、ペンを握ったりはしているようですが、リハビリもさほど真剣にやっていなかったので、

あまり細かい作業には向かない手になってしまったと思います。


当時小学生の僕には相当ショッキングな出来事で、下手したらうちの親父そこで死んでたよと思うと本当に怖い経験です。

じゃあそれで飲まないのねっていうとわずかに違って、その続きがあります。


そんなことがあってしばらくは父も飲み会で早く帰されるようになったりして、酒の量が少しは減っていたのですが、

ほとぼりが覚めるとやはり飲み会があると泥酔して帰ってくるように戻ってしまいました。

だんだんと大人になるにつれ、そんな父を見ているとアルコールってわりとやばい薬物なんだなと思うようになり、

同じ遺伝子を持っている可能性が高いから、僕も父と同じように、さほど酒に強くないけど、自制できずに飲み始めたら飲み続けてしまうだろうから

酒は飲まないほうがいいであろうという結論が出たのでした。


いかがでしたか

泥酔して血だらけの父はシーンとしてはPTSDチックな部分もあるのですが、それが直接の原因ではなく、いろいろ考えた末ということなのです

お酒を飲んでる人を見ると、若干イキってるなーとは正直思うのですが、個人の選択であって、

多少のストレスの捌け口だったり、嗜好品として味を楽しんだりと用法用量を守れる人はいいと思いますよ。

個人の選択としてお酒は人生から遠ざけて生きたいなと思っているだけです。

2020年11月22日日曜日

自分の気持ちはどこにあるのだろうか

ここにはいろいろ技術っぽいことを書きたいんですが、

大したことができる者じゃないのでネタがなくて、

ついったーに書くとちょっと重いかなってことを書く場所になってます。


タイトルの件ですが、今年になって祖父と祖母が亡くなりました。

父方の祖母は僕が小さい頃に亡くなって記憶がありませんが、

中学生のときに、同居していた父方の祖父も肺がんからの脳転移で亡くなりました。

このおじいちゃんは亡くなる半年前にはとても元気で、

原付バイクや自転車で畑に出かけたり、自治会の役回りをこなしていました。

持病はそれなりにあったようでよく病院へ行って薬を飲んだりしていましたが、それでも元気だよなぁと思っていました。

ある日、確かテスト期間中かなにかで早く帰ってきた日だった記憶があります。

母に「おじいちゃんがバイクで転んで入院した。」と聞かされました。

えっ、怪我とか…と聞いたら、交差点で停止してたところからだから、怪我はどうも大したことはないと言います。

ああなんだよかった…。と思いましたが、どうもそんなかんたんな話じゃない様子。

おじいちゃん、最近様子がおかしくて、この前も洗濯機が壊れてる!って言うので見に行ったら普通に使えるのよ。いろいろわからなくなってしまっているのかもしれない…と言うのです。

僕は毎日会っていましたがそんなこと気づきもしませんでした。このときかなりのショックを受けました。

病院ではおそらく転倒後なので、頭を打っていないかCTスキャンなどをしたのだと思うのですが、その日に元々患っていた肺がんの脳転移がわかりました。


高齢で進行も早くないためか、体調自体は落ち着いているようですぐに退院し、薬物や放射線治療をしながらも、自宅で療養することになりました。

脳腫瘍になった祖父はぼーっと座っていることが多く、時々口を開くと、

「今日は一日中真っ暗な日だなぁ」『ううん、もう夜になったんだよ』

なんて話をするくらい。次第に孫の顔も定かではなくなっていたように思います。

ある日祖父は「俺はぁ馬鹿になってしまったんだ」と言いました。

もう今までのおじいちゃんとは違う人になってしまったみたいだったけど、

自分でもわかっているんだ。と思いこのときは泣きました。


それからはだんだんと衰弱していき、もともと患っていた肺がんも相まり、入院して酸素マスクが必須になりました。

だんだんと壊れていく祖父を見て、いつどうなってもおかしくないという覚悟ができていました。


祖父は雪が吹雪いているとても寒い日の未明に亡くなりました。

覚悟はできていたからか、葬儀では棺桶に入った祖父を見ても涙は出ませんでしたが、

あまり感情を出さない父が涙を浮かべているのを見てはじめて僕も少し目が潤みました。


はい、相変わらず主題へたどり着くまでのエピソードが長いのですが、

身内の死に直面して、もう死んでしまうことがわかっていたから正直なところあまり何も感じなかった僕。

父の涙を見て初めて心が動かされました。父の悲しみに共感したわけですね。

では僕の気持ちは?なぜそれほど悲しく感じないのだろう。中2でそれだけ死にたいして割り切れる覚悟が決まっているものなの?

と時々振り返って考えるのです。


冒頭に書きましたが、母方の祖父母も今年に入って亡くなってしまいました。

僕が大学生のときまではふたりとも、足腰の不具合や持病もありながらそれなりに元気そうに過ごしていました。

ここ2,3年の間に急に倒れて入院したり、半分寝たきりのような生活になってきて、次第に認知能力も衰えてきました。

僕が年に数回会いに行くと、誰だかわかっているのか微妙な感じでした。

この期間で僕は、父方の祖父に抱いていたのと同じような覚悟をしていたのだと思います。

今年に入って、ふたりとも入院して寝たきりの生活をしているのを聞かされて、いつどうなってもおかしくないのだなと考えていました。


夏に祖父が亡くなり、後を追うように秋になって祖母も他界しました。

祖母は、亡くなるまで祖父が亡くなったことを知らなかったようです。

意識がしっかりとしている日もときどきはあったようですが、ぼんやりとしてなかなか会話になる状況でもなかったようですし、たしかにそのほうが良かったと思います。

二人が亡くなったことを知ったとき、やはり涙は出ませんでした。

コロナ禍の関係で、葬儀場が遠方からの参列を断っていたため、葬儀には出ていません。

葬儀が終わったあと掛かってきた電話で母がしみじみと話すのを聞いて少し目がうるみました。

それで、自分の中ではなぜあまり悲しくなれないんだろう。覚悟はできていたとはいえ、

あれだけかわいがってくれたじいちゃんばあちゃんにもう会えないのに。

と思ったのでした。


そんな中、今年に入ってから、ひだまりスケッチやヴァイオレット・エヴァーガーデンを見てガチ泣きしたりしています

ひだまりスケッチなんて泣く要素あるか?って気もしますがキャラクターに感情移入しすぎてこんな辛いときに優しいこと言ってくれる…いいヤツすぎる…みたいなシーンが多すぎて。


さて、これらの違いはなんなんだろうと、さすがにサイコパス的ななにかなんじゃないかと少し悩んでいました。考えていて、ここまで書いてあったことからもわかりそうですが、

自分の気持ちというより、他人の気持ちに心を動かされるほうが強いのかもしれないという結論になってきました。

アニメを見たり漫画を読んで感情的になるのは、キャラクターに感情移入しているからで、

家族が亡くなって親が悲しんでいるのを見てやはり感情移入して心を動かされているのだなと。


では自分の気持ちはどこにあるのだろう?とまた悩みます。

ずっと考えていたら、僕が祖父母と過ごして別れるまで、一番悲しかった瞬間は

亡くなった瞬間ではなくて、バイクで転んだ。どうも認知症の症状があるのではないかと聞いた瞬間や、

最近寒暖差が激しいからか、廊下で転んで以来横になってばかりになってしまったと聞いた瞬間なのだと思いました。

当たり前だった日常が壊れた瞬間が一番辛かったと思います。

これを言うとどうかと思われるかもしれませんが、正直なところ、声をかけても理解されない状態になってしまうとすでにそれまでいた家族は亡くなったのと同じで、やっぱりその時点が一番辛くて悲しいのだと思うのですよ。


ということは、たまたま家族が亡くなった瞬間にはあまり何も感じなかったけど、それなりに僕の気持ちというのはその時々には存在していて、その上で他人にも深く共感し感情移入しがちなのだなと自分の中で整理をつけたのでした。

帰り道とか自転車を漕ぎながらずっと考えてましたよ。

2020年10月28日水曜日

劇場版ヴァイオレット・エヴァーガーデン見た感想

ヴァイオレット・エヴァーガーデン、すごく評判良くて
映画館とか5年くらい行ってないので久しぶりに行くかー
と思ってたので先週末見に行きました。


結論から言うとかなりよかったです。

久しぶりの映画館は鬼滅の刃ばっかりやっていて鬼滅キッズで溢れていてロビーが密でした。
僕が入ったシアター自体はちょうど埋まってる座席がちょうど半分くらい。
快適に見ることができました。

映画の設定ですが、
舞台は外国のどこかで、ヨーロッパのどっかなのかなーみたいな景色でした。
主人公のヴァイオレット・エヴァーガーデンさんは郵便局に務め、
当時の識字率がそれほど高くない世の中で、手紙や文章が書くのが得意でない人の代わりに文書の代筆をする、自動手記人形の仕事をしています。
依頼主の伝えたい意図をよく汲み取って非常にいい手紙や文章を書くことで高く評価されています。
そんな彼女も実は暗い過去がありました。
戦争中、ヴァイオレットさんはある軍人一家の兄弟に拾われ、幼くして戦場に駆り出されていました。
そんな中、弟である少佐はヴァイオレットさんのことをかわいがり、まだ幼くして感情をなくし、戦闘マシーンと化していた彼女に、勉強や情緒などたくさんのことを教えてあげていました。
戦争が激しくなり、お互いボロボロになりながら離れ離れになってしまった少佐のことを、ヴァイオレットさんは人気自動手記人形として活躍しながらも忘れられずにいた…
という設定でした。

あんまりにネタバレしてもあれなので、ざっくりよかったところをいうと、
はじめに人気自動手記人形として活躍するヴァイオレットさんを見せて華やかな感じになりつつも、暗い過去の説明で一度下げる、さらに吉報を受け取りまた感情が高ぶって、そうストレートにはうまくいかない…とまた下がる。クライマックスに向けてさらにもう1段上げて下げて…というメリハリが効いた感情の起伏があり、主題の合間合間に挟まれるサブエピソードも相まって非常に見ている人を引き込みます。
それぞれのシーンでヴァイオレットさんのひたむきさを感じることができ、感情移入してしまいます。

そのシーンを引き立てているのが背景で、心象風景が非常に効果的に使われています。
肝心のシーンでは背景がものすごくきれいで、説得力を高めています。

ちなみにどのシーンもヴァイオレットさんかわいいです。ちびヴァイオレットさんもかわいいし、真剣なヴァイオレットさんもかわいいし、すっごい喜んでるヴァイオレットさんもかわいい。

そして、登場人物の人柄もいい。慈愛に満ちています。
同僚はヴァイオレットさんを慕い、強かながら弱い部分もあるヴァイオレットさんを温かく支えています。登場人物全員いい人です。
一人ひとりの登場人物のヴァイオレットさんとの関係性がまた、この作品からにじみ出る優しさや暖かさを作っています。

映画を見ながら、自分もこんな仲間が欲しいなぁと何度も思いました。
仲間を想い支える側としても、よくわかり合って本当に必要なときにそばにいてもらう側としても、こんな仲間がいればどんなときもやっていけるだろうなと。
テーマは、「大切な人のことを思い出して、大切な人に伝えるべきことを伝えているか?」
ということのようですが、友達がいないのでまずその大切な仲間がほしいなと思ったのでした。。。


追記
サブスク系ではNetflix独占配信のTVアニメ版と外伝もそのためにNetflix入って観ました。
ヴァイオレットさんが持っているブローチ、手袋、傘など
ひとつひとつにもエピソードがあったのですね…。
それに、同僚との関係性も、徐々に作り上げていったものだったのを知って
ヴァイオレットさんのひたむきさに涙腺崩壊でした。
ヴァイオレットさんが、少佐の言った「あいしてる」の意味をどのようにして知ったのか、
映画から入った人もぜひTVアニメ版も見てほしいですね

2020年10月11日日曜日

敢えて敵を作る必要はなくね?

わりとすごく身の回りの人と敵対する人っているじゃないですか
僕も反抗期はそうだったのでわかるんですが、得することってないよなーと思うのですよ

高校入学してすぐ、あー高校って聞いてたほど奔放じゃないんだなー
とちょっと幻滅していて結局抑圧されるのかーとちょっと反抗的になってました。
放課後補習があって、そこで細かい手順みたいなのを飛ばしてるのを指摘されて
どっちでもよくないですかって言ったら、やる気ないなら帰れって言われて
じゃあ帰りまーすとか言って帰ったら周囲ドン引きしてましたね。
担任の先生が他の先生と比べても厳し目で嫌いだなーと思ってたがゆえの、
感情をむき出しにした行動でした。

しかし、偏差値50の工業高校なので、しばらくすると僕なんかよりずっと反抗的なやつが出てくるわけですよ。その人のやりとりを見ていて、ああなんかすごい徒爾でもうちょいうまい世の渡り方ありそうだなーと思ったのでした。

で、どうしたかというと担任の味方についたほうがいちいちうるさいこと言われないし
楽なんじゃね?と思って、多少腑に落ちなかったり、合理的でないなーと思うことも、言うことを聞くようにしたのです。
教員も人なので、反抗的だったやつが言うこと聞くようになったらおおよしよしって大事にしてくれるわけですよ。
ちょっとくらい失敗しても怒られなくなるし、多少の融通が効くようになりました。反抗してたときよりほんと過ごしやすくなりましたね。

結局アイツの言うことは間違えてるって言っても、立場は生徒と教員なので正面からぶつかっても100%先生の言うことを曲げることってできないんですよね。
じゃあ歯向かうって完全に徒労なので懐のうちに入ったほうが絶対得なわけですよ。
お互い1ミリも譲歩しないより、こっちが譲歩したら相手にも多少融通効くようになったら得じゃないですか。

この場合立場の問題もありますが、同級生や同僚なんかでも同じで、
相手が絶対間違えてるから俺は対立する!!っていうのはエネルギーの無駄で、
真正面からぶつかって、対立する形で相手を変えるってことは相当難しいわけです。
それやって成功するのは裁判とかそういう形くらいなんじゃないかと。
実際相手の側に立ってみると、いきなりグサッと自分と反対のこと言われたら、
いくら正論でもむっとしますよね。
なので絶対コイツは間違えてる!!!って言うやつがいても、
あーはいはいって一旦受け入れて懐に入って、こうしたらもっといいんじゃないか
っていう話し合いができる信頼関係を作っていくのが一番得策なのではないかなと思うのです。

僕的にはこういうのをヤンキー気質って思ってるんですが、
「身内は守るけどそれ以外は敵」みたいな感じですぐ対立する人って、
絶対損してると思うんですよね。
仲間に回しといたほうが、自分の思ったことを聞いてくれる可能性が上がるので
結果として過ごしやすくなるし、自分がピンチのときとかなんとかしてくれるかもしれないというメリットが高いじゃんと。

そんな感じでいろんなところに浅く広くコミュニケーションしてたら友達ってはっきり言えるくらい親密な人がいなくなりました

追記:
これって結局人を嫌いにならないみたいな優しさみたいなことも多少あるのかもと
思ってたけど違くて、
あんまり他人のこと見てなくて他人は他人だしどうでもいいかなー
って思ってるだけなのかもしれませんね
同じような話で、バイトで同じ給料もらってるのにあいつは大して働かない。
真面目に働いただけ損じゃんっていうような人いるじゃないですか。
僕は別に経営者じゃないし人それぞれやりたいようにすりゃいいんじゃないのって思っちゃいますね
他人の働きぶりを評価するほど興味なくて、へーよく見てるね笑って思ってしまいます

2020年9月21日月曜日

GoToを使って帰省してみた(JR東日本 びゅうトラベル使用)

 GoToトラベルとかいう謎企画やってるじゃないですか。

やり始めてすぐはまだ厳重に警戒してる人も多くて批判もされてましたが、

結局のところ、主たる完成経路は飛沫か接触でしょうということになり、

どちらも起きにくい状況であれば別に移動しようが何しようがいいんじゃね?

という流れになりつつありますね。僕もそういうものかーと受け入れて

5月の連休、盆休みともにしてなかった帰省をGoToトラベルを使ってやってみました。

GoToを使うとなると旅行パックになるので交通宿泊費合計から補助が出る感じです。

帰省はするけど実家に泊まらずホテルに泊まって顔だけ出すのもこの状況だしありかなと思い、連休前の木曜日に調べてみました。


埼玉在住、実家は新潟なので、移動経路は新幹線です。

ちょうど検索したらJRのびゅうトラベルのサイトが出てきたので

その中で4連休中に使えるプランを探してみました。

https://www.jre-travel.com/lp/goto/?utm_source=go&utm_medium=sea&utm_campaign=goto&utm_content=goto&gclid=Cj0KCQjwnqH7BRDdARIsACTSAdtXItBCDPBBtDkuKDg6HyltX-ZTO2exB7sIc9xXkitn9k_bYlTNP8kaAii2EALw_wcB

もともと東京から新潟まで1万円くらいする新幹線ですが、プランを見ていくと、

連休中でも1万9千円を切る価格で往復新幹線代と宿泊費が込みのプランがありました。

宿も素泊まりのプランですが、数年前にできた新潟駅南口に直結されているJRが運営しているきれい目のビジネスホテルです。

新潟帰ったらまず実家に泊まるしここに泊まる機会なんてそうそうないだろうなと思っていたのでいい機会だしと予約ボタンをぽちぽち。

注意事項が複雑で、またパックなので合計金額しか出ておらず内訳が不明で本当にこの料金だけでいいのかな?など何度も確認しつつ、行き帰りの新幹線の時間を設定。

旅程表というのがPDFで出てきて、これを印刷して旅行中持ち歩けと出ていましたが、

結局一度も使う機会はありませんでした。

もし新幹線乗り遅れ、時間変更が必要になったさいなど、

みどりの窓口に駆け込んだ際に必要になるかもなので、携帯でPDFをダウンロードしておいたり、予約番号を控えておいたりはしたほうがいいかもしれません。


旅行当日、出発駅の新幹線の切符が出せる券売機でチケットを発券します。

いつも指定席予約を受け取るときのとおりインターネット予約のえきねっと予約の受け取り→予約したクレジットカードで受け取るってやったところ、そこからは受け取れなかったようで、カードをお返ししますと出てしまいました。

取り消しボタンを押して最初の画面に戻って、インターネット予約の受け取り→JR東日本国内ツアーの受け取りというボタンがあったので、そこから予約したクレジットカードで受け取るというボタンを押したところ、往復分の切符がでてきました。

https://www.eki-net.com/travel/guide/payment/mv.html

ここに受け取り方が書いてありました。僕のような心配性の人は見といて損はないと思います。

「クーポン2枚の発券があります」と予約画面で出てましたが、この企画マーク付き切符がそれのようです。

とりあえず発券したので昼食を食べ、いい時間になったので新幹線乗り場へ。

3時間弱で新潟へ着き、

実は目的の一つだった、まんがタイムきらら展 in 新潟を見に新潟市マンガ・アニメ情報館へ。

市内出身で地元とは言え学校と家の往復ばかりの引きこもりだったのであまり街中を歩いたことがなく、実は土地勘がない新潟駅東口エリアを歩くこと20分くらい。

万代シティバスセンターのすぐ近くビルボードプレイスとかいうなんか都会的でおしゃれっぽい名前の建物の中にありました。2階が映画館になっていて、1階が漫画アニメ情報館みたいですね。

入り口では手のひらを使った非接触検温、手指のアルコール消毒ののち、入場料を支払いチケットを受け取っておー入れるーと思ったらもう一段階あって、注意事項の説明がありました。これがなかなか長い説明で、おお…これ全員に対して読み上げるのキツそうだなぁと思いながら聞いて、アッハイわかりましたーって進もうとするとまだ続きがある…、30秒くらいだったと思います。ちゃんと聞きましょうね。

きらら自体は漫画はあまり読んだことがなくて、先日も書きましたが単行本全部読んだのはひだまりスケッチくらいでしょうか。ただきらら原作のアニメは刺さるものが多くてNEWGAME!などそれなりにハマっているものも多かったので来れてよかったです。

撮影禁止のメインの展示エリアでしたが、これまでの発刊されたきらら誌がずらーっと並んで飾ってあるところでは、

ひだまりスケッチもまだ始まってないころなんだこれ!とか、

おおーこのへんでNEWGAMEアニメ化した!とか、

最近やっぱりひだまりスケッチ載ってないけど載ると必ず表紙って聞いてたとおりなんだな

とかいろいろ見られて面白かったです。

あとは僕はあまりソシャゲー自体が合わなくてやってないですが、

きららファンタジアキャラクターの等身大パネル的なものを見て、

えっ、キルミーベイベーのやすなってひだまりのゆのっちより背低いの!!

など驚きながら、

展示を出た後に物販コーナーでささやかながら戦利品を手にして一度ホテルへ向かいました。

ホテルに入りチェックイン。はてさてGoToの場合だと何か特殊なことがあるのかしらとか思って帰りの新幹線の切符や持ち歩いてくださいと書いてあったPDFの印刷を用意してフロントに行き、予約した(苗字)です~って言ったら、フルネーム様ですねって言われて、ほかのビジホでやるように宿泊票に連絡先書いてカードキー貰って終わりでした。

会計のときにまた何かあるのかなーと思いながら部屋へ。

さすがにできて数年しかたってないのできれいな部屋でした。禁煙室だし。

本当にタダで泊まっていいのか…と思いながらベッドにぱふ。普通のビジホのベッドって感じですがあまり外泊しないのでちょっとプレミアム感を感じます。

日が暮れてきておなかもすいたので再び夕食のために外出。

入居しているビル自体の耐震工事のため一時閉店してましたが復活したというバスセンターのカレー(名物 万代そば)を試食しました。

 ソウルフードロスからの解放ということで、メディアにもたくさん取り上げられたようで閉店時刻間際でしたがそれなりにお客さんが入っていました。

立ち食いのスタイルですが女子高生のような感じのお客さんもいて流行ってんなーと。

僕は前述のとおり街中詳しくなかったので最近知って初めて食べに来ました。

色的にボンカレー的なものかなと思っていましたが、

中辛と辛口の中間くらいでわりとそれなりの辛さがあるルウで、

ぶ厚めに切った肉がコロコロと入ってました。

量も、女性がミニを頼んでいてサイズを見たら小さかったので、

普通盛りにしましたがこれだと結構多め。440円でこれはかなりの高コスパです。

確かに近くにあったらしょっちゅう来る感じ。

そして歩き疲れておなかすいていたのでそれだけでは飽き足らず


これも市民のソウルフードのみかづき「イタリアン」

ベーシックなものではなく期間限定の麻婆豆腐味というのが出てたので買って帰りました。

完全にオーバーカロリーですがたくさん歩いたのでいいでしょう…

わずかながらでも地元にお金落とさないとだし…ね?

うちはあまり外食とかしなくて実家に帰ってしまうと実家の飯しか食べないので、この機会にジャンクフードでちょっとした観光気分を味わってみました。

宿に帰り、ゆっくり休んで翌朝チェックアウト。

チェックアウトも拍子抜けで、ありがとうございましたー。とカードキーを返却したら「お会計はお済でございます。ありがとうございました。」とコインパーキングみたいなことを言われて終了でした。

びゅうトラベル、コミュ障には最高のサービスですね。

ほとんどコミュニケーションをしなくても旅行ができる。マジ最高です。

そこから実家へ向かい、数時間の間実家に滞在しました。

食事以外はマスクをつけたまま最近の話を聞いたりして、17時すぎの便でまた東京へ。

そんな感じで新しい生活様式の規制をGoToトラベル制度を使ってやってみました。

連休なので新幹線往復普通に取るより1000円ちょっとしか変わりませんでしたが、

平日だと1万5千円くらいで圧倒的に普通に新幹線乗るより安く、

しかも宿泊付きになったりするので、

たとえば金曜日、あるいは月曜日だけお休みして、お盆に帰省できなかった分、

少しだけ家族に会いに行くのもいいのではないかと思います。

2020年9月5日土曜日

小心者の思考

小心者なのでもともと世の中生きづらいのですよ
そんな中コロナ禍で、スーパーのレジなんか客とお店の人を隔てるビニールが下がったりしてるじゃないですか。
ただでさえ知らない人とやりとりするのに少し緊張して声小さくなるのに、
そこで会計クレジットでお願いします!とか言うのがビニールもあって全然声が通らないわけです。
それで聞き返されてまたテンパってしまいます。
別のシーンでは、道路で、交差する交通の信号が変わって車が走り出したばかりのところなのに押したらすぐ変わる押しボタン式信号機のボタンを押して交通を止めてしまえない(ある程度車が通り過ぎてから押す)とか、わかるなぁって人はいるんじゃないかなと。




そのほか、たまたま見たこの動画の質問者には共感しましたね

絶望先生に、加害妄想っていう回がありましたがまさにそれですね(ぜひ見てほしい。
絶望先生だと、あまりにも気を使い過ぎて、今度は恩着せがましく思われてしまっているんじゃないか!!
という境地まで達していましたが、結局のところ本当は、他人のためとか
あんまり思ってなくて自己満なのでそこまでは行ってないです
ただこれ、裏を返すと自分が逆のことをされたら嫌だなと思うってことなのかな…。
細かいなー器小さいなーとは考えてしまいます。
そんな小心者なので闊達な人についていくと装甲車の後ろを歩く歩兵みたいな感じで大変世の中渡りやすいのですが、
豪快な進路を進むのを見てときどきえっ、それやっちゃうの!?と引いてしまうこともあり、やっぱり器小さいんだなと思うのでした

2020年8月17日月曜日

できるかもしれないけどやらないでいい

例によって寝られないのでどうでも散文を残しましょうね
一本めは最近気づいたこと

よく記憶はいろいろな結びつきがあるよねーというのは聞く話ですが、
最近気づいたのが、場所と聴覚に結びついた記憶って結構残るかもしれないということ。

いつも遠くへ出かけるとき用に聞いていた曲を聞いてみたら、
ああ、あの場所で聞いた曲だというのを思い出したり、
Radikoタイムフリーで長めの番組を聴きながら歩くことが多いんですが、
用事を済ませて帰りにどこまで聞いたかな?と適当に巻き戻した位置で再生開始して、
すでに聞いた部分が流れると、この部分を歩いていたときの部分だ!
というのが映像で出てくるんですね
なんというか、KMLでプレイリストや台本が保存されてるみたいな感じですね

僕自身集中力がないので、記憶力が本当になくて、
人の名前をはじめ数学の方程式の解き方や覚えゲーの歴史なんて壊滅な人間なんですが、
同じものを聴くと前回聴いた場所を思い出すの毎回とてもびっくりするので
ちょっとこれどっかにメモっときたいなと思ったのでした。
個人差はあると思うんですが、あとでも書きますがそういうニューラルネットワークがあるんだろうなと。

いわゆる座学で学ぶ機会って場所一緒じゃないですか。
確かにテストの問題用紙見ながら問題文のフレーズでもって、
授業のシーンが浮かんでモゴモゴ言ってるのだけ思い出す。
で、肝心の内容が出てこないんですよねー。
場所が毎回同じなのでオーバーラップしすぎてこれが当てはまらないのか!?
ダメじゃんって話なんですが、毎回場所が違えばきれいに思い出せるかもしれない!!
と全然意味ない上に意味ないことを思ったのでした



二本めは容易にはクリアできない問題について。
学校の勉強とかって、指導要領みたいなカリキュラムがあって
はじめのいっぽから段階的に進み続けるので、途中でコケるとついていけなくなると脅されがちですよね。 
確かに実際そうなるのです。特に算数なんてそうで、
掛け算わからなかったら割り算や面積の計算とか難しいですよね
まあさすがにそこで躓いてもきっとすぐリカバリーできると思うので大丈夫ですが、
その先出てくる一次関数とかわからなかったら二次関数も厳しいですよね
しかしそこまで来るとそんなのできなくても人生詰むことはなかろうと思います。 

僕は理系気取ってますがずっと算数が苦手だった(今も)ので
高校に入ってからようやく中学数学ができるようになりました
しかし高校数学もリアルタイムでは全然できず大学に入ってから少しできるようになったかな程度です。
それぞれリアルタイムでは落第レベルだったのをあとになって少しずつはできるようになってます。
(たとえば、微積の解き方とかほぼ覚えてないですが概念はちゃんとわかるよというレベルですが…)

言いたいのは、一度できなかったことがあると焦るんですが一旦諦めて
本当に必要に迫られたときできるようになるのもありなのではと。 
今の自分にはできないんだなと諦めて別のこと頑張るのもありなのではと思ったのでした。
これができないから何もできない!!と諦めるよりは別のことを頑張って自信つけたほうが自己肯定感上がると思います。

…と確かに思ったんですが、これは高校は定数割れ、
大学は指定校推薦で受験戦争を体験していないから言えることなのでした。
 受験のためには3年なりで確実に修得できないとダメですね。。。ええ
(ただ自分の場合それができたとしてもその後すぐ忘れそうです) 


三本目は最近ついったーで知ったこと。

本当に運動音痴なので球技、特に小さいボールが高速に行き来するスポーツってどういう原理で人間が動いているのかすら不明だったのですよ。
そしたら

こんな完璧なレスをこの短時間でしてくれるのすごい!
この情報で僕の中に革命が生じました。
リンク先を読んでほしいんですが、
フィードバックで動かしてたら人間のハードじゃラグくて間に合うはずがないと。
練習を重ねることでなんと球の軌道を予測するニューラルネットワークができあがるそうです!!

これについてはAIのニューラルネットワークの構築と同じで(というか元ネタですし)、
非常に膨大な繰り返し数が必要と思います。
あとはやっぱり人間の脳って忘れてしまう機能もあるので、
すごい勢いで反復しないとできない人も多いのではというのは容易に想像できます。
中にはこれがサクッとできてしまう人もいるのかもしれません。それがいわゆるセンスなのでしょうか。
しかしこれで、千本ノックとか言いますがあながち間違いじゃないということか…と思って痺れました。

昔できず諦めたことをあとになってできるようになればいいじゃないかと
冒頭で書きましたが…うーん。。野球はできなくてもいいかな(逃げるな

2020年7月13日月曜日

Nginxを使って素の状態のブラウザで視聴可低遅延ライブストリーミングをしてみる(Nginx-http-flv-module)

コロナ禍で!
コロナ禍でライブ配信が注目されてますね。ええ。コロナ禍と言いたかっただけです。
ZOOMのようなビデオチャットや、Youtube Live ニコニコ生放送のような
1対多の生放送アプリまで、実際に集まって行う会議やイベント、
あるいは授業なんかもライブ配信で済ませている。そんな時代が一気に訪れました。
ここではWebRTCなどを使った双方向のビデオチャットではなく、いわゆる映像配信と言われる1対多のストリーミングサービスの話題が中心です。

そんな中、セキュリティの関係もあり自分でライブ配信プラットフォームを作れないかという相談が寄せられた人もいることでしょう。
これまでは、Adobe Media ServerやWowzaを動かしてそこにRTMPで打ち上げ、Flash Playerで視聴といったアプリケーションが一般的でしたが、ライセンス料をはじめ、非常にサーバーのコストがかかりました。
また、映像送信側では現役で使われているRTMPも、現在では視聴環境側のブラウザでは、
RTMPの受信に必須であるFlash Playerのサポートを打ち切られているなどすでに終わった技術になりつつあります。
RTMPで打ち上げるのはいいけどじゃあどうやって見るの?という話になるわけです。

いくつか方法があり、
サーバーでHTTP Live Streaming形式に変換し、HTTPプロトコルでのストリーミング視聴を可能にする
同じくMPEG-DASH形式にしてHTTPプロトコルでのストリーミング視聴を可能にする
主に使われているのはこの2種類です。

どちらも仕組みとしては、配信したい映像を、一定時間に区切ったTSファイルにして、TSファイルの構成を示したプレイリストと一緒にブラウザでダウンロード、プレイリストにしたがって再生、プレイリストを逐次更新してまた新しいTSファイルをダウンロードという形で、HTTP GETを繰り返ししていくことにより映像をつながった状態で見られる仕組みです。

RTMPで打ち上げた映像をそのままHLS形式に変換してくれる機能まで持ったのが、Nginx-RTMP-moduleです。
https://github.com/arut/nginx-rtmp-module
WebサーバーとしてはおなじみのNginxのモジュールで、設定をするとRTMPサーバーとして動作、HLSファイルの生成をONにしてWebサーバーでホストするとTSファイルとM3U8プレイリストを生成して、HLSの配信環境も作ることができます。
これはすでに試している方も多いと思います。
HLSはサポートしているブラウザも多く、スマホでもPCでも安定して視聴できます。
しかし、先に述べた仕組みなので、
TSファイルの長さ分、録画した動画ファイルを生成してからプレイリストに乗せて、ブラウザがダウンロード、再生ということでその分遅延が大きくなります。
このへんは調べるか、実際にやってみるとよく分かると思います。
僕が限界までチューニングした結果3秒くらいの遅延までは縮められましたが、回線が遅くなったりするとすぐ映像が途切れてしまうピーキーな感じになってしまいました。

毎回前置きが長いですが、そこでタイトルのNginx-http-flv-moduleの出番です。
https://github.com/winshining/nginx-http-flv-module
まずはサクッとインストールから。
WSLでUbuntuを使っています。

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev -y

Nginx-flv-moduleをダウンロードしてビルド
git clone https://github.com/winshining/nginx-http-flv-module.git
wget http://nginx.org/download/nginx-1.19.1.tar.gz
tar -zxvf nginx-1.19.1.tar.gz
cd nginx-1.19.1/
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module \
--with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module \
--with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module \
--with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream \
--with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 \
-fdebug-prefix-map=/data/builder/debuild/nginx-1.19.0/debian/debuild-base/nginx-1.19.0=. -fstack-protector-strong -Wformat -Werror=format-security \
-Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' \
--add-module=./../nginx-http-flv-module

make
sudo make install

Nginxの設定
sudo vi /etc/nginx/nginx.conf

#追加
include /etc/nginx/streams-enabled/*;

sudo vi /etc/nginx/sites-available/vod

server {
    listen       80;
    server_name  vod.example.com;
    server_name  localhost;

    location /flv {
  flv_live on;
  chunked_transfer_encoding on;
  add_header 'Access-Control-Allow-Origin' '*';
  add_header 'Access-Control-Allow-Credentials' true;
 }
}

RTMPサーバー用設定ファイルを作る。
各パラメーターの詳細はNginx-RTMP-Moduleのドキュメントに書いてあります。
sudo mkdir /etc/nginx/streams-available
sudo mkdir /etc/nginx/streams-enabled

sudo vi /etc/nginx/streams-available/rtmp

rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp_socket_dir /tmp;
rtmp {
        out_queue               4096;
        out_cork                8;
        max_streams             8;
        timeout                 15s;
        drop_idle_publisher     15s;

        log_interval            5s;
        log_size                1m;

        server {
                listen 1935;
                server_name rtmp.example.com;
  server_name localhost;

                application rtmp {
                        live on;
                }
        }
}

設定有効化(sites-available、sites-enabledにリンク)
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/vod /etc/nginx/sites-enabled/vod
sudo ln -s /etc/nginx/streams-available/rtmp /etc/nginx/streams-enabled/rtmp
sudo /usr/sbin/nginx

こんな感じで設定したらOBSなどでRTMPの配信を受けられます。
そして、プレイヤーの画面を作っていきます。
プレイヤーにはbilibiliのflv.jsを使います。
から、flv.min.jsをダウンロードしてwwwrootに置きます。
同じくプレイヤーのHTMLを作ります。

sudo vi /var/www/html/player.html

<script src="flv.js"></script>
<video id="videoElement" muted autoplay controls></video>
<script>
    if (flvjs.isSupported()) {
        var videoElement = document.getElementById('videoElement');
        var flvPlayer = flvjs.createPlayer({
            type: 'flv',
            url: '/flv?port=1935&app=ingest&stream=stream01'
        });
        flvPlayer.attachMediaElement(videoElement);
        flvPlayer.load();
        flvPlayer.play();
    }
</script>

これでhttp://localhost/player.htmlを見ると、
rtmp://localhost/rtmp/stream01宛にRTMPで送った映像が見られます。

仕組みとしては、 /etc/nginx/sites-available/vodに設定を書きましたが、
受け取ったRTMPストリームを、80番ポートで再配信しています。
これにより、RTMPストリーム(FLV)を直接HTTP GETできるようになっています。
Flash playerがないとRTMPを再生できないのは、ブラウザがrtmp://プロトコルをサポートしていないのが主な要因ですが、HTTPプロトコルでストリームが受信できるとなると話は別です。
flv.jsは、RTMP over HTTPのストリームをデコードしてHTML5プレイヤーで再生できます。
視聴中の通信イメージとしては、ずっと配信が続く限り無限に終わらない動画のダウンロードをしている感じです。
実際に試してみると、VPSサーバーに作った配信サーバーでも2秒くらいの遅延で配信ができました。




チャット付きのライブ配信や監視系など、遅延が大きすぎると問題なアプリケーションではとても威力を発揮しそうです。

今更ながらひだまりスケッチを最新巻まで一気読みした感想

Amazonが芳文社セールでKindleの芳文社単行本の一部が77円になっています。
https://amzn.to/2OeWBNvこの機会に、アニメを見てそれなりに好きだったひだまりスケッチを全巻買って、
週末一気に読んでいました。
最新巻だけ通常価格でしたが、一気読みして続きがあるのに読めないのは生殺し感があってそれもホイホイ買ってしまいました。思うつぼです。

ひだまりスケッチのこれまでのイメージ(アニメ1期を全部見ただけ)では、
ほぼほのぼの系のストーリーの中、天然だけどすごい頑張り屋さんのゆのっちがかわいくて応援したくなる感じだなぁくらいに思っていました。
実際1期分のストーリーではそんな感じなのですが、続きを読んで感想が変わりました。

内気で臆病なゆのっちは新しいことをするたびに不安がり、将来の目標もなかなか決まらず深く悩んでしまいます。そんなとき宮ちゃんはいつもコミカルに茶化しながら、さりげなくフォローしています。
これが読み進めていくごとにわかってきて、明るく破天荒ながら優しい宮ちゃんの魅力に引き込まれます。
卒業した沙英先輩の部屋へ行った宮ちゃん。いつも4人で集まりにぎやかだった部屋。
空っぽの部屋で一人、、
このシーンで、人に見せていないながらもやっぱり宮ちゃんはいろいろ考えていたんだろうなぁと確信しました。

他にも、いつもお金がなくお腹を空かせている苦学生の宮ちゃん。これ以上親を頼って大学進学していいのかという葛藤を抱えながら、実家に電話するシーンまで他の人には深く悩んでいる様子を見せませんでした。

10巻まで高校生活の2年半、局面ごとにはゆのっちと同じかそれ以上悩みや葛藤があったはずです。
もっと弱いところを見せてもいいのになと思いますが、もっとずっと弱いゆのっちを、持ち前の明るさで元気付けることで自分も元気をもらっていたのかなと思います。完璧なお姉さんです。

アニメを見た方もぜひ宮ちゃんに注目して単行本も読んでみてください。

2020年6月25日木曜日

やっぱりある程度自由であることが必要だよねって話

なぜか全然寝られなくて、
このブログ購読してる人とかいないはずなので、特に誰の迷惑にもならないかなと
いかにもめんどくさいやつだなってことを書きます。

コロナ禍の最中、テレワークが一気に流行りましたね。
これまで提案はされていても誰もしなかったものが、
右へ倣えで一気にみんながやり始めるというのはインパクトあったと思います。
テレワークでよく問題とされるのが、本当に仕事してるの?という管理の部分。
それが問題とされるたびに嫌な気分になります。
業務時間中はずっとWebカメラの映像が中継伝送されて、
中座して休憩したりするときはボタンを押すこと、
みたいなシステムもあるようです。

衆人環視の下でバリバリ作業を進めていいところ見せてやるぜ
という人もいるのかもしれないし、個人差がある話ではあると思うのですが、
僕自身は人に見られていると思うと(実際には見られていなくても)手が動かなくなってしまうので、
この環境下にいたら、ただでさえ低いパフォーマンスがガタ落ちだろうなと思います。
…というコメントをすると、本来したかった、管理しすぎるのは嫌だよねという話からそれてしまう…。

軌道修正をすると、管理する側からしたら毅然と、勤務中はビシっと100%頑張ってほしいという希望をするのは最もなのかなと思いますが、人間ですから、毎日それじゃ疲れてしまうと思います。
やはり個人差がある話だと思うのですが、僕は集中力がない人間なので、
何か余計なことをしながら本来やるべきことをやるくらいが一番能率が上がると思っています。
本来やるべきことのスレッドと、余計なことのスレッドを立ち上げると、シングルコアCPUなので
本余余本余本余本本余と脳内でスレッドを切り替えていき、10単位時間中に
「5 本来やるべきこと」ができるとします。
これが100%本来やるべきことしかしてはいけないとなると
本本………本…………と、同単位時間あたり
「3本来やるべきこと」になるくらいのイメージです。
「…」の間は何をしてるかというと、「何もしない」をしているか、「本」の進みがすごく遅い状態です。
これ、わかるって人いるんじゃないかと思うんですよ。
ずっと悩んでた問題が寝て起きたら解けるみたいなことあるじゃないですか。
この例ほど極端に集中を解かなくても、ある程度リラックスして、
自由に物事に取り組んだほうがパフォーマンスが上がるという人もそれなりにいると思うのです。

振り返ると、僕自身そういう環境ではそれなりに気に入られたりして、反対に、縛り上げられるような環境だとポンコツになっていたなと。
幼稚園小学校の頃は、子どもだから自由奔放です。

それが中学校に上がると、途端に管理社会が始まります。
学校生活に、生活指導という明示的なルールができました。
「中学生としての自覚を持った行動」
「中学生らしい服装」をはじめ
持ち物、登下校の方法など細則が多数。
10年以上前の話なので、25歳になって考えると、中学生としての自覚とかいうってワードで笑っちゃいますよね。そんなものねーよと。子供じゃん。ただ、当時強権的に、例外なく適用されるこのルールに怯えて生活していました。

すべてのルールに深い意味はなく、「中学生らしい生活態度」というパワーワードでごまかされています。
どの教員も強権的に、思春期の反抗精神の芽を摘むように抑圧してきます。
いやでもやらなきゃいけない。ルールだから。例外はない
という抑圧強権的な環境下で、本来やるべき学びに関してのモチベーションがなくなりました。
毎日学校へは通っていましたが、定期テストや高校入試の模試の結果なんかを見た両親に、本当にお前は学校で何をして来たんだと言われていたレベルで授業は右から左へ聞き流していました。
当時そこまで深く考えてはおらず、学校へ行って何もしないをしていただけなのですが、
意味もなく締め上げられていたストレスでそうなってしまった部分もあるのかなと、10年後にこうやって人のせいにしています。

結局、中学を卒業したあとは、僕が受験した年度、学校の統廃合があって枠が増えたりして、たまたま定員割れしてた工業高校に入りました。
もともと学科の専門分野に興味があったのもあります。今ではライフワークになっています。

高校はある程度自由だと聞いていたのでどんなもんかなと期待を胸に入学しました。
入学当初は、中学校と同じように生活指導の先生がいきなり、
高校はゆるいと思ってる生徒をシメるところから始まり、げんなりしました。
しかし、授業が始まってみると印象が変わりました。
強権的な指導をする先生もいますが、フレンドリーで寛容な先生もいたり、
そもそもルールに異を唱えるような先生までいる…。
ある程度自由にさせてくれる先生の授業はリラックスして取り組めるので頭に入りました。
また、地元の産業の人材育成を担う工業高校だったので、卒業後進路は就職の生徒が半数以上です。卒業後に即戦力!とまではいかなくとも、
実際の業務にどう関わってくるか、この学びがなんの役にやってくるのかということを、
専門科目の先生も、理科や社会、国語の先生も教えてくれました。
生活指導の方法も、近隣住民が困っていてクレームが入ったという、因果がわかりきったことや、学校全体のイメージ低下があると就職の口が狭まる可能性もあるといったリアルな理由をもとに指導していました。クロマティ高校になったらヤバい!というのは生徒間でも共有できていて、治安が保たれていたと思います。
人に迷惑をかけるような、よほどのことをしなければ問題ないわけですし、そりゃ当たり前だよなと納得できました。ルールのせいで、特にやりづらくなることはほとんどありませんでした。

ほとんど自分語りでしたが、自分の観測範囲と主観だけでいうと、
縛り上げすぎるとパフォーマンス落ちる人いるよねー
ルールは最低限がいいよねー
ルールには納得できる理由が必要だよねー
ということが言いたかったがための体験談でした。
中学校の生活は本当にトラウマというか、今でも理不尽さに恨んでいるのでたまに思い出すのです。
先生も忙しすぎて画一的にするしかないのはわかるんですけどね。僕には合わなかったというだけの話かもしれません。

2020年5月17日日曜日

Wio Terminalを使ってGPSなし・Wi-Fiだけで測位してみる(Google Geolocation API使用)


なんだかSeeed StudioのWio Terminalが話題ですね。
秋月やスイッチサイエンスでも取り扱いが始まりましたが、
即在庫切れになったりしているようで大人気みたいです。



会社で買ってもらったので、週末いろいろいじってみました。
内容としてはMicroChipのATSAMD51系MCUに、RealtekのRTL8720DNが乗っていて、
M5Stackのように画面やら何やらいろいろついてケースに入っている豪華マイコンボードです。
公式通販
https://jp.seeedstudio.com/Wio-Terminal-p-4509.html
公式Wiki
https://wiki.seeedstudio.com/jp/Wio-Terminal-Getting-Started/

RealtekのRTL8720DNは、先に出ているESP8266/ESP32とは違い、
5GHzのWi-Fiに対応した新しいWi-Fi搭載マイコンです。
これを早く使ってみたいという人も多かったはずで、
Wio Terminalの登場により、いち早く技適マーク付きの試せる環境が手に入りました。
どうやらメインマイコンのSAMDと、Wi-Fi用のRTL8720DNはSPIでつながっており、
このライブラリでArduino Wi-Fi API互換にラップしていますが、
実は内部ではATコマンドを叩いて通信しているようです。すごい!



さて、本題ですが、せっかくなので温めていたネタを、
この新しいボードで試してみようとやってみたのが今回のWi-Fiを使った測位です。

スマートフォンなんかではよくWi-Fiをオンにするとマップアプリの測位が早くなったり、
正確な位置が表示されやすくなったりするのはご存知な方も多いと思います。
これは、Googleのデータベースから、
飛んでいるWi-Fi APのMACアドレスと緯度経度を紐付けた情報が提供されているから
実現できています。
(Google以外にも、Apple他も同じことをしているのかもしれませんが、
よく知りません。)

あまり知られていませんが、Wi-Fi APの情報から現在位置を推定するAPIは公開されていて、スマートフォンに組み込みの機能以外からもアクセスできるようになっています。
今回はこれを使ってみようと思います。

先に準備を。
Google アカウントにログインして、APIコンソールを開きます。
https://console.developers.google.com/?hl=JA


 すでにプロジェクトがある場合もあると思いますが、
ここでははじめに新規プロジェクトを作っていきます。
Google APIsと書いてある文字の右側をクリックしてプロジェクトの選択画面を表示


新しいプロジェクトボタンをクリック


適当にわかりやすい名前をつけます。


こんな画面に飛ばされたら、APIとサービスを検索の検索窓に
Geolocationと入力




Geolocation APIが出てきたらクリック


有効にする。


左側にある認証情報をクリック


今回は使わないですが、OAuthの同意画面を作成


外部を選択。次の画面の写真はありませんが、
名前の場所だけ埋めればとりあえず使えます。
このへんからはセキュリティに関わってくるので、各自調べながらやってください。


OAuth認証画面が作成できたら、
認証情報のページで認証情報を作成→APIキーをクリック


APIキーが取得できたら準備完了です。

このレポジトリにWio Terminalに書き込むスケッチと、Node.jsスクリプトがあります。

git cloneしてArduino IDEで書き込んだら、SDカードを入れて起動するだけで、
30秒おきにスキャンした周囲のWi-Fi APの情報がSDカードに保存されていきます。

終わったら、PCにSDカード内のbssids.csvをコピーします。
↑のレポジトリに入っている、getloc.jsと同じディレクトリにコピーしてください。

Node.jsの実行環境がない場合は、適当にインストールしてください。
また、CSVパーサーライブラリのインストールが必要です。
適宜
npm install csv-parse
とかやってインストールしましょう。

get_loc.jsを開いて、YOUR_API_KEYの部分に先ほど取得したAPIキーを貼り付けて、
node getloc.js
すると、result.csvというファイル名で緯度経度に変換された結果が保存されます。

読み方ですが、1列目の数字はタイムスタンプ(起動時からのミリ秒)、
2列目に緯度、経度、誤差(m)と続く構造です。

めんどくさがって結果出力をKMLファイルとかにしてないわけですが、
世の中には便利なサイトがありまして、CSVを貼るとKMLにしてくれるサイトがあります。

ここに、CSVの中身を貼って、


こんな設定にしてあげるとあらかんたん、KMLファイルとして出力されます。
(ピンのタイトルがタイムスタンプになります)

Google Mapsのマイマップ機能やGoogle Earthにインポートすると結果が見られます。

こんな感じでわりとかんたんにWi-Fiだけを使った測位ができてしまいます。

Wio Terminalには3G/LTEのようなWWANがありませんが、
テザリングやモバイルルータを使うなどすれば
リアルタイムでの測位も可能と思います。
(その場合はモバイルルータのMACアドレスを除外するなど
ちょっと工夫が必要そうです。)





なお、Google Geolocation APIがなぜそれほど浸透していないのか、
理由はおそらく簡単で、料金だと思います。
↑の画像にも実はチラっと写っていますが、
利用料金なんと1000リクエストで5USDくらいだそうです。
この記事を読んで試す場合、さすがに無料枠内で試せると思いますが、
高頻度で24時間動かし続けたり、商用で何台もクライアントがいると
かなりの金額になりそうです…。

2020年3月3日火曜日

怪我をしたので松葉杖に取り付ける荷重管理デバイスを製作しました。

数年前に下書きを作って公開してない記事でした。令和になって初公開です。

膝の内側を怪我しました。前十字靭帯付着部裂離骨折という骨折のようです。
経緯についてはこちらの動画をどうぞ…

前十字靭帯の付け根にあたる膝の骨を剥離骨折する、
"前十字靭帯付着部裂離骨折"という怪我のようです。
骨にトンネルを開け、ワイヤを通し靭帯と結び、浮いた骨を元の位置に抑える手術をしました。
入院は一週間半、私は大学生で学期末の時期だったので
ちょっと成績的にまずくなったりしましたが、大学生活に疲れ精神的にも参っていた中、
一時の休みを得られてよかったとも感じています。
名医に出会えたので、術後の経過は良好で疼痛もなく順調でしたが、
骨が接合するまでには3ヶ月の時間を要するということで、術後2ヶ月は杖を欠かせませんでした。

術後の経過日数により、はじめの2週間は負傷側の足を地面につくことなく過ごすこと、
次の週は体重の1/3まで掛けてよい…など、徐々に負荷制限が緩和されていきました。
しかし、極度の運動音痴の私は、1/3荷重がこれくらいだと両足別々の体重計に乗せられて、
教えられたところで感覚を覚えられません。負傷側にも体重をかければ、
松葉杖を持つ手は楽なのですが、荷重制限を越えるとどうなるかわかったものではありません。
一方で、荷重を掛けず養生している負傷側はどんどん衰えていき、リハビリの先生には、
「寝たきりの老人並」と言われました。太ももが頬のように柔らかくなったのはショックでした。
荷重を掛けなければ筋肉を取り戻すことはできないのです。

そんなジレンマを抱えつつ、やはりこわいので余り荷重を掛けないようにしていたまま、
全体重の2/3荷重を負傷側に掛けていいと許可されました。
2/3荷重を掛けられると、松葉杖を両手に抱えずに1本で歩く、「片松葉」ができるようです。
以前と同じ荷重のままでは、手に掛かる荷重は両松葉のときの2倍になってしまいます。
右手がボロボロになりながら、ちゃんと2/3荷重を掛けられるようになろう。と考えました。

前置きが長くなりましたが、製作工程を…。

Wii fitというゲーム用コントローラーのバランスWiiボードをAmazonで買いました。
早速バラし…


松葉杖用の先端に取り付けました

テープ固定じゃ心もとないので、Amazonで杖の先のゴム石突部を買って加工しねじ止めしました。


測定値を正確にするために、校正用の機能と設備も用意。


で、ちょいちょいっとしきい値を設定してLEDが点くようにしてみました。

ESP32でBosch BME680の拡張ライブラリ Bsecを使う

少し前に、秋月でも気温・湿度・気圧に加え、MEMSガスセンサを搭載した、
Bosch BME680の取り扱いが始まりましたね。
サクっと4ピン出ていてすぐにI2Cで繋げられそうな感じになっています。
自分は去年しばらくストロベリーリナックスのBME680を使って
しばらく実験していたので、使い方について少しまとめてみます。

BME680は、公開されているデータシートやサンプルコードを使うと
・気温
・湿度
・気圧
・ガスセンサの抵抗値
が取得できるセンサーです。
ガスセンサの構造ですが、電気応用みたいな名前の科目で習った通りだとすると
金属をヒーターで温める→酸化して抵抗値が上がる
周辺の雰囲気に水素などがあると還元されて抵抗値が下がる
という原理で可燃性ガスの有無がわかるという原理だったと思います。
なのでセンサがしっかりと加熱されるまでしばらく新鮮な雰囲気下で動かして、
ベースラインの抵抗値を控えておいて、それより抵抗値が下回ったら
何かガスが出てるなという判断が可能です。

しかし、抵抗値が表示されても相対的な評価しかできないので、
何か単位がついた空気品質の指標が欲しいですよね。

そこでBosch謹製のBsecライブラリというものをご紹介します。
ボッシュのラボテストの結果、センサーから取得できる生データをもとに、
・推定CO2
・IAQ(屋内空気品質)
・推定呼気VOC
・湿度・気温補正値(ヒーターの影響を考慮した値)
を計算してくれるArduinoライブラリです。(RPi版もある)

最新版はGitHubにあります。早速cloneしましょう。

README.mdを読むとわかるのですが、インストールに一癖も二癖もあります。
なぜかというと、BoschはこのBsecライブラリのソースコードを公開していません。
特定環境向けに、コンパイル済みバイナリとヘッダーファイルという形で提供しています。
このコンパイル済みのライブラリを使うために、Arduino IDEに修正が必要です。

現時点で最新のインストール方法についてご説明します。

はじめに、Arduino IDE 1.8.11のポータブル版を用意します。
ここに過去バージョンの一覧があるので入手可能です。
Windows ZIP file for non admin installとあるリンクからZipファイルになったポータブル版をダウンロードして解凍しました。Macの場合は知りません。

解凍したら、できたフォルダにportableという名前のフォルダを作成します。
これですでに入っているArduino IDEとパスを共有しなくなります。
ライブラリやボードマネージャの設定などは入れなおしになります。

フォルダ内のexeからArduino IDEを起動します。
今回はESP32を使うので、ボードマネージャでESP32を使えるように設定し、(省略)
ライブラリをインクルードより、まずは普通にダウンロードした
Bsecライブラリをインポートします。
なお、ESP32ボードのパッケージはv1.0.4を使います。


Arduino 1.8.11のフォルダ\portable\packages\esp32\hardware\esp32\1.0.4
を開きます。



platform.txtを開き、
compiler.c.extra_flags=
compiler.c.elf.extra_flags=
compiler.S.extra_flags=
compiler.cpp.extra_flags=
compiler.ar.extra_flags=
compiler.objcopy.eep.extra_flags=
compiler.elf2hex.extra_flags=

あたりを

compiler.c.extra_flags=
compiler.c.elf.extra_flags=
#compiler.c.elf.extra_flags=-v
compiler.cpp.extra_flags=
compiler.S.extra_flags=
compiler.ar.extra_flags=
compiler.elf2hex.extra_flags=
compiler.libraries.ldflags=
とします。(コメントアウトが増えてるけど公式のやつそのままコピペなので)



さらに、
## Combine gc-sections, archives, and objects
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {build.exception_flags} -Wl,-Map "-Wl,{build.path}/{build.project_name}.map" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" -Wl,--start-group {object_files} "{archive_file_path}" -Wl,--end-group  "-L{build.path}"

の行を

recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -Wl,--start-group {object_files} "{archive_file_path}" {compiler.c.elf.libs} -Wl,--end-group {compiler.libraries.ldflags} -Wl,-EL -o "{build.path}/{build.project_name}.elf" -lm -lgcc

とします。
これでコンパイルが通るようになります。



そして、Arduino IDEを再起動後、スケッチ例→Bsec Software Library→basic
をコンパイルしてみましょう。I2C接続でセンサーデータを取得するサンプルです。
必要に応じて、LED_BUILTINを#define LED_BUILTIN 19のように置き換え
BME680_I2C_ADDR_PRIMARYを0x77(BME680_I2C_ADDR_PRIMARYは0x76)
としてあげると動くと思います。
ESP32の場合、Wire.beginの部分で
Wire.begin(21, 22);のようにピンを置き換えしてあげる必要があります。


成功するとこんな感じでセンサーデータが出てきます。
呼気VOCなんかは簡易アルコールチェッカーとして使えそうだったり、
気温測定の代わりに今流行っているCO2も推定値が出てきます。
また、空気品質もIAQという指標となる値が出てくるため評価しやすい値となっています。

春休みにBME680をいじってみてはいかがでしょうか。

2020年2月16日日曜日

ESP-IDF v4をWindowsのVS Codeで使いやすくしてみる(PlatformIOなし)

https://blog.nyancotech.online/2020/02/windowsesp32esp-idf.html
の続きです。
WindowsでESP-IDF v4環境の構築は上記ページをご覧ください。

まずは普通にインストールされたESP-IDF Command Promptを開きます。



Using Python in C:\Users\admin\AppData\Local\Programs\Python\Python37\
Python 3.7.3
Using Git in C:\Program Files\Git\cmd\
git version 2.25.0.windows.1
Setting IDF_PATH: C:\Users\admin\esp\esp-idf
この部分をメモっておきます。


VS CodeでESP-IDFディレクトリを、「フォルダを開く」から開いたあと、
左下の歯車ボタンから設定を開きます。


Workspaceタブを選択し、Terminal欄をクリック、Edit in settings.jsonをクリック


{
    "terminal.integrated.shellArgs.windows": [
        "cmd",
        "/k",
        "..\\.espressif\\idf_cmd_init.bat",
        "C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\",
        "C:\\Program Files\\Git\\cmd\\"
    ]
}
ここに上のJSONを環境に合わせて変更して入力後保存します。
..\\.espressif\\idf_cmd_init.bat

の行には、インストールした.espressifディレクトリ内の
idf_cmd_init.batへのパスを入力してください。
自分は

esp- .espressif
     L esp-idf
というディレクトリ構成にしているので
カレントディレクトリのesp-idfディレクトリから見ると
..\.espressifが.espressifの場所になってます。
Python37というのが書いてある行は、
初めにESP-IDF Command Promptで表示されていた
「Using Python in...」の右に書いてあるディレクトリを入力します。
Git\\cmdというのが書いてある行は、同じく
「Using Git in...」に書かれている行を入力します。

それぞれパスの区切り文字はエスケープ文字として認識されてしまうので、
\\と2つ続けて入力してください。




settings.jsonを保存して、Terminal->New Terminalでターミナルを開くと、
VS CodeからESP-IDF Command Promptが使用できます!
idf.py flash -p COM10とかやればこの画面のまま書き込みまでできます!


2020年2月15日土曜日

【令和最新版】WindowsにESP32開発環境ESP-IDFをインストールする

これまでESP32の開発環境はUnixシェル用のものしか用意されておらず、 Windowsではmsysを使って実行する方法が公式で紹介されていました。 そんな中、最近になって、Espressif純正の一括インストーラが出ていたので試してみました。
https://docs.espressif.com/projects/esp-idf/en/latest/get-started/windows-setup.html

ダウンロードしたexeファイルを開き、インストールしていきます。


必要なパッケージをインストールしてくれますが、Pythonやgitなど、
すでに入っているものがあればそれを選択することで
新しくインストールすることなく進むことができます。
よくできてますね


ESP-IDFのレポジトリをすでにダウンロードしてあれば
そのディレクトリを使うことができます。



ESP-IDFをダウンロードする場合はバージョンを選択できます。
使用するコンポーネントの互換性の問題などがなければ、
4.0を選んだほうが後々アップデートする手間を減らせるかもしれません。


ツールチェーンやPythonの仮想環境を保存する先を選択します。


一発でESP-IDF用のターミナルを開くショートカットを
スタートメニューやデスクトップに登録できます。


各種設定が完了するといよいよインストールです。


ESP-IDFレポジトリはとても大きいのでダウンロードに時間がかかります。



しばらくして、インストールができ…


ませんでした。

表示されたログを見ると、Python virtualenvに
--no-site-packeagesなんてオプションないよと言われています。


はてさてexeファイルの中身に入ってるんだろうしどうしたものかと調べていると、
修正版が出ていました。
下のほうに直リン貼ってる人がいます。




気を取り直してやり直し。


インストールできました。


Pythonのパッケージは専用の環境としてインストールされ、
PATHもシステム標準のものではなく専用のPATHが設定されるようです。
ほかの開発環境と競合せずに動いてありがたいですね。
早速esp-idf\examples\get-started\hello-worldディレクトリで
make menuconfig相当の"idf.py menuconfig"をしてみると…
なんかUnicodeDecodeErrorとか言われています…。


ちょっとぐぐったらこんなすばらしいコピペで動きそうな記事を発見

最近のUnicodeDecodeError

.espressif\python_env\idf4.0_py3.7_env\Lib\site-packages\sitecustomize.py
に上記記事のように
import builtins
__original = open
def __open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):
    if 'b' not in mode and not encoding:
        encoding = 'utf-8'
    return __original(file, mode, buffering, encoding, errors, newline, closefd, opener)
builtins.open = __open

と記述したファイルを置き、標準のopen関数を上書きしてあげます。


すると…

うーんなんか周り文字化けてるけどとりあえず動いた!



このように、Espressif Systems様が提供してくださっている
Windows版インストーラにより、

簡単にWindowsでの開発環境が作れました!

(正直これでも今までよりは楽だと思います)

あとはメモですが
idf.py menuconfig
でmenuconfig
Serial flusher configでフラッシュの設定ができたりします。
idf.py makeでビルド
idf.py flash -p COMxxでCOMxxポートに接続されたESP32へ書き込み
idf.py monitor -p COMxxでシリアルモニタ(トレースバック付き)
monitor中に
Ctrl+T -> Ctrl+Shift+Fで再書き込み