houseTemperatureプロジェクトの大詰め

自分の家の天気(気温・湿度・気圧)をRaspberry Piから5分ごとにサーバに送り、それを使っていろいろ遊ぶプロジェクト(github)もそろそろ大詰めだ。使用技術はScala + Play Framework。開発環境にもデプロイにもDockerを利用している。サーバはこのブログと同じさくらのVPSで、nginx-proxyによってサブドメインgyokuroへのアクセスを振り分けている。

ドキュメント

ベースURLはhttps://gyokuro.chao.tokyoで、現状公開しているリソースは以下のとおりだ。

例:
{"status":"200","data":{"time":"00:25:00","temperature":27.7,"humidity":76.7,"pressure":1001.6}}
例:
{"status":"200","data":[{"time":"00:00:00","temperature":27.6,"humidity":76.8,"pressure":1001.7},{"time":"00:05:00","temperature":27.6,"humidity":77,"pressure":1002},{"time":"00:10:00","temperature":27.8,"humidity":76.3,"pressure":1001.9},{"time":"00:20:00","temperature":27.8,"humidity":76.5,"pressure":1001.7},{"time":"00:25:00","temperature":27.7,"humidity":76.7,"pressure":1001.6}]}

iframe化の苦労

WordPressは自由なhtmlをウィジェットに追加できるので、iframeを使って/temperature/nowを常に表示しようと思った。しかしPlay FrameworkはデフォルトでX-Frame-Options: denyが設定されているのでiframeに表示されない。これはクリックジャッキング防止のためだ。クリックジャッキングというのは僕のサイトを透明なiframeにして他のサイトの上に重ねて表示させることで、僕のサイトの任意の箇所を不正にクリックさせる手口だ。

MDNにしたがってX-Frame-Options: allow-from https://example.com/を登録しようと思ったのだが、なんとChromeは対応していない。ブチギレてる。対応してないということで無視されているのでとりあえず動いてはいる。ユーザーがクリックできる箇所はないのでたぶんオッケー(ホンマか?)。

iframeが表示されるようになったはいいが、黒背景に黒文字で表示されていて読めなかった。WordPress側からiframe内のstyleを操作するのは無理っぽかったので上記の通りクエリパラメータで白文字化できるようにして対応した。

頑張って作ったので適当にAPIで遊んでみてください。グラフ化するやつ作ってほしい。

ちなみに現在の状況は27.8 ℃、76.1 %、1001.4 hPa。肌がべたつきやや不快だ。今夜から明朝にかけてすごい降るらしい。通勤はできるかな?

ニコニコ動画のランキングが新しくなった

※私はドワンゴに雇用されているが、この記事は自由意志に基づいて執筆され、報酬は発生していない。

大きな変更なので告知ページが作られている。

僕はプレミアム会員なので5つのカラムを自由にカスタマイズできる。欲張りなのでどのジャンルも取りこぼさずに、かつ自由に使えるカラムも欲しかった。そのためにはデフォルトカラムを上手く使う必要がある。

カラムをカスタマイズするときはジャンルは3つまでしか設定できない。しかしデフォルト状態では各カラムのジャンル数は左から順に4, 2, 5, 3, 1だ。一見してわかるとおり、一番右のカラムのその他ジャンルを左から2番目のカラムに加えるだけで自由になるカラムが1つできる。僕はここに例のアレタグを入れた。

こうすると左から2番目のカラムは(音楽・サウンド)・ダンス・その他の3ジャンルになるのだが、その他の再生数が多すぎて他の2ジャンルの動画が見えなくなった。そこでその他を左から4番目のカラムのラジオと入れ替えた。完成形はこんな感じだ。

最上段に広告が入る。ランキングの順位に広告ポイントが影響しなくなった代わりに、固定広告欄が設けられた。順位に広告ポイントが影響しないということは、ランキング自体の質は向上していることが期待される。

本日終了

※この記事は『麦とホップ』を飲んで書かれた

今日はお酒を飲んで同期の面白い話を聞いたのでもう終了です。昨夜は睡眠不足で今日はずっとイマイチだったし。

きのこの山/Scalaでアンパックもどき

きのこの山

きのこの山というお菓子を何かと比較する不遜な輩が多くいるようだ。

きのこの山はチョコレートとカリカリが分離している。万事において分離しているというのは大事なことだ。均質ではなく、高いエントロピーの中で異質なものが混じり合う中にこそグラデーションが生まれる。そしてグラデーションの中にこそ精妙な味わいが生まれてくる。

カレーをかき混ぜてはいけないし、丼料理をつゆだくにしてはいけないし、醤油にわさびを溶いてはいけない。それが俺の美意識。

Scalaでアンパックもどき

関数に複数の引数を渡すとき、コレクションをそのまま渡したいことがある。たとえばPythonであれば*を使ってアンパックできる。

Scalaでこれをやりたくで3分ググったところη-expansionを使った方法が見つかった。

(plus _)plusメソッドを関数に変換した後、さらにtupledメソッドによって1つのタプルを引数とする関数に変換している。

正確にはアンパックではないことに気づき、タイトルに「もどき」をつけた。

スマホを買い換えなかった

僕のAndroid端末のツイッターアプリは長いツイートが勝手に省略されてWeb版に飛ばないと続きが読めなかった。アンケートも表示されなかった。さらに最近はツイートをタップしてもリプライチェーンが表示されなくなった。

Androidのバージョンが6.0で古いからアプリが更新されていないと思っていたのだが、確認してみたらなぜかアプリの自動更新がツイッターには効いていなかっただけで、手動で更新したら5系から8系に一気に上がった。上記の問題も全部解決した。Androidのバージョン起因と思い込んで端末買い替えの情報収集をしていたが必要なくなってラッキー、ただしちょっと残念な気持ちもある。新しいスマホ使ってみたかったので。

歴代の携帯電話を紹介するか。

SoftBank 840P(2010.4〜2015.3)

高校入学時に購入。直接のきっかけは部活の連絡網がメーリングリストだったこと。家族や部活、クラスメイトとのメールに重宝した。一応web閲覧もでき、Yahoo地図やYahoo時刻表には助けられた。毎月の料金は端末代980円を含んで3000円前後だったと思う。

LINEが入らなかったせいで大学1年生のクラスや大学3年生の学科とのコミュニケーションに大きな支障を来した。

バッテリーが死に、その頃には古すぎてどこの店舗にも替えパーツが売ってなかったせいで起動すらできなくなった。が、電源ボタンを1時間くらい連打したら一瞬起動したのでその間に電話帳などはサルベージした。

iPhone6(2015.3〜2017.4)

先代の反省から広く流通しているモデルを、ということでiPhoneにした。スマホになったおかげでツイッターができるようになった。Ingressもやりはじめた。

月額料金は2GBプランで端末代含めて8000円程度。高えよ!!SoftBankへの怒りが蓄積した結果、2年縛り終了後即座に交代の憂き目に遭う。というのも買ったタイミングが絶妙に早すぎてSIMロック解除の対象にならなかったので、キャリアを変えるならこの端末は使えなかった。

FREETEL REI(2017.4〜)

安さを追求しMVNOへ。端末は一括購入で25000円くらい。AndroidはiOSに比べて痒いところに手が届く感じがあり気に入った。明るさの自動調整やアプリの自動更新など。端末自体は低スペックなのでGPSで発熱するとかカメラが不調で再起動しないと使えないなどの不具合はある。

SIMはFREETEL。毎月1〜2GBの使用で料金は1000円〜2000円程度。安いのだが安すぎたのか潰れて楽天モバイルに吸収された。ユーザーの僕には特に影響はない。今回は買い換えを見送ったがバッテリーがだいぶ怪しくなっているのでもう長くはないと思っている。

ニコ生の安倍晋三と枝野幸男のインタビューを聞いた


この2つを聞いた。両方にほぼ同じ質問が投げかけられた部分があり、回答の対比が面白かったので紹介する。

なお「あー」「えーと」などの無意味な言葉は僕の裁量でカットした。正確に全文を聞きたいという人はタイムシフトで自分で見てください。

安倍晋三

夏野:もうひとつ経済政策の絡みでひとつの課題になっているのが、法人税が減税されてですね、企業はすごく元気になったと思うんですが、一方で上場企業の内部留保が巨大になってきていて440兆円も内部留保が溜まっていて、なかなか大企業が使わない。所得も上げない、株主にも分配しないって、今株主総会のシーズンなんですけど、どこの企業もこれ同じ問題、課題があるんですけども。コーポレートガバナンスの更に一層の強化みたいなことは、当然考えているわけですよね。

安倍:当然ですね、経営者の経営手腕が問われるわけでありまして、第四次産業革命、AI、IoT、ロボティクス、そしてデータ、そこにしっかりと投資できるかどうかが問われているのだろうと思います。投資を促すための我々、税制もこれはしっかりと作っているわけです。同時に人材にちゃんと投資をして頂きたい。そこでまたさらに大きな差が出てくるわけでありますから。それがまさに問われるだろうと思います。

夏野:AI人材に対する給与制度の問題とかいろいろ今、やっといろんなことが動き出してますけど、これはもう政権としては後押ししていく。

安倍:当然この、ゲーム・チェンジが起ころうとしている中においてですね、この第四次産業革命の中において日本がトップランナーとなるべくですね、総力を上げていきたいと思っています。

夏野:本当はなれると思うんですけどなんとなくなれない感じになってますが

枝野幸男

夏野:ずばり参院選の争点は何に。これだけ日本が転換点にあって、今回の選挙すごく重要だと思うんですけど、争点をどこに据えましょうか。

枝野:やっぱりいちばん皆さんの暮らしに関わっているのは経済をどうちゃんと本格的に回復させるかと。やっぱり企業収益起点の経済をずっとやってきて、それは昭和の時代成功してきたんですよね。企業収益をまず増やす。これがそこで詰まってしまっているともう、アベノミクス6年と言うより平成の30年ではっきりしたので、(夏野:いやもうまさにですね)まさに家計起点でやっていかなければならないと。家計所得をどう増やすかと。その家計所得を押し上げることについて、政治の持てる分配機能を使っていくと。企業を儲けさせるところじゃなくて家計を豊かにするところに資源を使う。

夏野:これはもう具体的に言うと法人税は上げたほうが良くってっていう。

枝野:法人所得税、所得を上げている法人に対する課税は強化する。

夏野:現実の話として問題なのはいま上場企業の内部留保が440兆円を超えてまして、つまり減税分の溜め込んだお金が結局給与所得にもならないし株式配当にもならないし将来投資にもならないで内部留保になっているという現状がもう数字として出てきてしまっている。

枝野:だから、その企業のためにも使い道なくて困ってるんですから、国に預けてくださいと。国が分配しますと。そうすると家計所得が上がれば消費が伸びますから。消費が伸びれば皆さんの企業の売れ行き上がりますから。こういう循環を作りましょうということです。

夏野:経済学的に言うとインフレターゲット論っていうのもそれに近いものだと思うんですけども、あの、名目の賃金が上がるので。ただ、結局これもマクロ経済はコントロールできないし。となるとやっぱりもう、再分配権を強行的に使うほうがいいという考え方ですね。

枝野:政治がやるしかないです。しかもただばら撒いたのでは持続可能性ありませんが、たとえば僕は一貫して言ってますが、介護職員とか保育士とか、非正規公務員のある種の部分、たとえば公立学校の非正規の教員。ここも低賃金重労働人手不足になってますから。公立学校の先生が非正規で集まらないという事態が出てますので。これは経済の原理からすれば賃金上がるはずなんで。人手不足なんですから。その分野に行っていないのはそこに資源配分をしてないから。そういうところから順番に上げていきます。
それからサービス残業やめさせます。労働基準局がやりやすい下請けの中小零細からやるんですよ。ダメだと。元請けからやれと。元請けがちゃんとやらないと下請けはもたないので、元請け大手からガンガンサービス残業を取り締まれと。そうしたらサービス残業の分人を雇うか、それともサービス残業じゃなくて残業代を払うか。これで家計膨らみます。こういうところからやっていきます。

夏野:安倍政権下で働き方改革というのが、全く上手くいかないかと思ったんですけどかなり浸透してきましたね。だからタイミングとしてはいいタイミングですね。

枝野:サービス残業やったら刑務所放り込むぞというようなこと2,3例、特に大手の目立つところでちゃんとやったら払いますよ。払うか人を増やすかどっちかしますよ。

社内LT/『きみと、波にのれたら』

※最近は酒を飲んでいない。

昨夜は退勤後に映画を見に行く約束があったのだが、少し時間があったので社内で開催されていたLT会を聞きに行った。LTはライトニングトークの略で、短時間のプレゼンテーションのことだ。ドワンゴでは毎週エンジニアLTがあり、仕事と関係あったりなかったりする情報が交換されている。情報共有が仕事のアウトプットにも繋がってくるということが最近わかってきた。

昨日行ったLTはエンジニアLTではない違うテーマのLTで面白かった。自分と違う部署や職種の情報は意識的に取り入れていきたい。

その後上野で『きみと、波にのれたら』を見た。まあまあ楽しい映画だったが見た後に語りたくなるほどの内容はなかった。

それでも湯浅政明は偉大なアニメ監督だ。なにが素晴らしいって仕事が早い。

  • 『ピンポン THE ANIMATION』(2014年4月)
  • 『夜は短し歩けよ乙女』(2017年4月)
  • 『夜明け告げるルーのうた』(2017年5月)
  • 『DEVILMAN crybaby』(2018年1月)
  • 『きみと、波にのれたら』(2019年6月)
  • 『映像研には手を出すな!』(不明)
  • 犬王』(2021年)

この制作ペースは異常だ。劇場長編を主戦場とするアニメ監督を挙げると、細田守も新海誠も最近は3年間隔で、原恵一はもっと遅い(コナンとかクレしんとかはノーカン)。

具体的な要因を考えてみると、Flashの大胆な採用による作業効率化や副官チェ・ウニョンの存在が挙げられるだろうか。

一生で一本歴史に名を残す名作を作るのもいいが、早さも大事で、しかもそう簡単に身につくものではない会社員になってからは特にそう思う。

キャベツの千切り

酒を飲んでないからだろうが、あまり日記を書くモチベーションが上がらない。

複雑な事情によって千切りキャベツが1袋分あるのでそれをサンドイッチにして食べるためにパンと具を買ってきたのだが、パンが小さいせいで全然キャベツを詰められなくて半分も食べられなかった。辛い。

Kyashを止められて復活した/cilliaとしらスタ

Kyashを止められて復活した

昨夜Kyashで映画のチケットを取ろうとしたら僕のKyashが凍結されていた。調べてみるとよくあることらしい。違反行為に心当たりなどない旨を届け出たところ、今日には凍結が解除された。あっさり止めて、チェックしたらすぐ戻すというのはいかにも今風のスタンスだと思った。

Kyashはスマホアプリであり、支払いサービスだ。クレジットカードやコンビニ支払いなどでKyashにお金をチャージする。各ユーザーにはVISAの番号が付与されていて、チャージした範囲内でデビットカードのように支払いを行える。クレジットカードによる自動チャージを登録しておけばチャージを気にする必要はない。現金じゃないのに「キャッシュ」なのでとても迷惑なネーミングだ。

そんなことをして何のメリットがあるのかと思うだろうが、2%という無視できない量のポイントがつく。どこでどういう仕組みで価値が発生しているのかイマイチわからないが、とにかくKyashの運営者はがっぽり儲けていて、2%ものキャッシュバックを行うことができる。

実はわからなくもない。店から手数料を取っているのだ。店はKyash支払い対応というメリットを買い、それによって集客力を高めている。

cilliaとしらスタ

cilliaというボカロ調教師がいる。ボーカロイドを人間らしく発声させるためには繊細な調整が必要であり、cilliaはそれが超うまい人だ。彼女が米津玄師の『海の幽霊』をカバーした動画がこれだ。

さらに、しらいしりょう(しらスタ)というYouTuberも紹介したい。彼はボーカルトレーナーであり、いろいろなヒット曲の歌い方を分析してわかりやすく説明する動画で支持を伸ばしている。

ボカロに歌わせるのも人に歌を教えるのも、人間が陥りがちなミスを防いで意識的に表現を組み立てていかねばならないという点では同じだ。全然違う方向から知った2人が同じようなことをしているのがなんとなく面白くて紹介した。

既存の作品をコピー・カバーするだけのものでもそこには必ず自分の色が加わるので世界の人々にはどんどんそういう遊びをやってもらってニコニコ動画に投稿してほしい。

 

久々のクソヨッパ/『喜びの島』

※今は18日の47時だ。

会社の古株の人たちと食事をする機会があり、昔の話や今がどう見えているかなどを聞いた。僕の長所も視野の狭いところも指摘してもらって勉強になった。

12時過ぎに帰宅した。帰り道を歩くのはそれほど苦ではなかったが、それでアルコールが回ったのだろうか、帰宅してからかなり酷いことになってしまった。まず1時間床で寝て、その後猛烈な悪寒と乾き、吐き気に襲われた。真面目に救急車を呼ぼうかと考えたが、そんな大事ではないだろうと迷いつつひたすら水を飲み続けたら1時間くらいで落ち着いてきて、朝には軽い頭痛が残るだけだった。

ここまで酷い酔い方をしたのはM1の秋に助教と限界紹興酒バトルをしたとき以来だ。ちなみにそのときは同期にタクシーで家まで送ってもらった。しばらく酒をやめようとも思うが、毎日平和な量を飲むことを避ける必要はなく、むしろ3ヶ月に1度であっても健康を害するレベルで飲むことがよくないのだ。これは習慣ではなく確率の問題であり、回避するのは難しい。

25歳になって酒の飲み方もわからないのが僕だし、命の危険を感じても救急車を呼ぶという行動すら起こせないのが僕だ。極限の体験はその人間の限界を浮かび上がらせる。

「浮かび上がらせる」で思い出したことがある。中学生の頃、吹奏楽部でドビュッシーの『喜びの島』という曲を演奏した。ドビュッシーはフランス人なので楽譜の指示にもフランス語が使われていて、そこに「dehors」という言葉があった。馬鹿正直に調べると「外側で」という意味だが、演奏の指示で「外側で」では意味が通らない。

翌日先輩の楽譜を見ると「浮き立たせて」とメモしてあった。なるほど、わからなくもない。翻訳というのは面白いものだと思った。

『喜びの島』は本来はピアノの曲だ。吹奏楽は比較的新しいジャンルなので吹奏楽のために書かれた曲というのは少なく、それゆえクラシックの名曲を吹奏楽に編曲して演奏することがよくある。編曲は悪いこととは思わないが、しばしばコンクールの時間制限のために原曲の意図を無視したカットが行われる。これは良くない。良くも悪くも吹奏楽というのは学校の部活が中心であり、学校の部活というのはコンクールが中心になる。その弊害だ。

この曲の特徴は全音音階だ。普通音階というのは1オクターブを12音に区切って7音を取り出して使うのだが、全音音階では1音飛ばしで6音を取り出して使う。すると全ての音と音の間隔が同じになり、独特な雰囲気が生じる。

ニコ動で適当に探していたら素晴らしい演奏を見つけたので貼っておく。フランスの曲というのは本気にならず気まぐれな態度で演奏するのが良いんだ。