nikkie-ftnextの日記

イベントレポートや読書メモを発信

おうちで楽しむ #アイの歌声を聴かせて (ミュージカル曲篇)

はじめに

私が幸せにしてあげる! nikkieです。

アイの歌声を聴かせて』これはもう本当にすごくいい1んですが、現在の感染状況を考慮するとこれまで通りに鑑賞を重ねるのは厳しくなりつつあるように感じます。
そこで、おうちでも楽しもう!と、(私向けに)YouTubeで見られる動画の再生リストを作りました。
これまでも劇場が恋しくなったらYouTubeで探していましたが、今後はこのブログを見れば(私は)幸せになれます!2

目次

『アイの歌声を聴かせて』 as ミュージカル映画

アイの歌声を聴かせて、端的に言えば傑作となりますが、その構成要素は

  • SF
  • 学園モノ
  • ミュージカル

となるかなと思います。
ミュージカルシーンは本当に劇場向きで、あの感動をまた味わいたくて繰り返し劇場に足を運んでいます。

ミュージカル曲は全部で4曲あるのですが、どれも部分的にYouTubeで聴けるんです!

以下がそのリストです。

ユー・ニード・ア・フレンド

Umbrella

Lead Your Partner & You've Got Friends

One more thing:フィール ザ ムーンライト

終わりに

エンジニア界隈で学んだ考えとして、「アウトプットは自分向けから」というのがあります。
そこで今回は自分向けに再生リストショートカットを作りました。
このリストがあるだけで私は幸せですが、このリストが他の方にもちょっとでも幸せをお届けできていたらそれはもう嬉しすぎます。


  1. 「ブログを書くほどではないのでは」と思われるかもしれませんが、一部の予告編はリストに保存できないようで(キッズ向けだから?)、ブログにまとめるに至ります。

venvによる仮想環境は--clearオプションを渡して初期化できます(#Python実践レシピ を勝手に補足)

はじめに

秘密はね、最後に明かされるんだよ。nikkieです。

この1月に出た書籍『Pythonエンジニア育成推進協会監修 Python実践レシピ』(以下、Python実践レシピ)を読み始めました。
venvによる仮想環境について、「この書籍にはない情報を知っているのかもしれない」と気づいたので、ここにアウトプットします。

目次

TL; DR(提案するコマンド)

$ # カレントディレクトリが作業ディレクトリです
$ python3.9 -V
Python 3.9.4
$ python3.9 -m venv env --upgrade-deps
$ . env/bin/activate
(env) $ pip install sampleproject
(env) $ pip uninstall sampleproject -y  # sampleprojectが依存するpeppercornが残った状態
(env) $ pip list
Package    Version
---------- -------
peppercorn 0.6
pip        21.3.1
setuptools 60.5.0
(env) $ deactivate
$ python3.9 -m venv env --clear --upgrade-deps  # 👈 注目!
$ . env/bin/activate
(env) $ pip list  # rm -rf envしてから作り直した仮想環境と、同じ状態になりました!
Package    Version
---------- -------
pip        21.3.1
setuptools 60.5.0

Python実践レシピ』とは

冒頭に示したリンク(技評さんのページ)に以下のようにあります。

Pythonでプログラムを作成するときに役立つ機能とライブラリを網羅した,実践的なレシピ集です。

技評さんのページで公開されている目次を見ると、Pythonの文法に加え、「こんなシーンにはこのライブラリ(標準/サードパーティ)」と辞書的にまとまっています。
1章でpipvenvについて扱っていますが、読んでいて知識が整理される感覚を覚えました。

なぜ仮想環境を作り直す必要があるのか?

pip uninstallでは、指定したパッケージ以外はインストールされたまま残るためです。

しかし、pip uninstallコマンドは依存関係にあるパッケージのアンインストールはできません。(Python実践レシピ p.66 Kindle 版)

例:sampleproject1の依存パッケージpeppercornはアンインストールされません

(env) $ pip list
Package       Version
------------- -------
peppercorn    0.6
pip           21.3.1
sampleproject 2.0.0
setuptools    60.5.0
(env) $ pip uninstall sampleproject -y
(env) $ pip list
Package    Version
---------- -------
peppercorn 0.6
pip        21.3.1
setuptools 60.5.0

Python実践レシピ』で案内される仮想環境の作り直し

rm -rf envで仮想環境を削除し、再度仮想環境を作成する方法が案内されます。

(env) $ deactivate
$ rm -rf env
$ python3.9 -m venv env

venvの--clearオプションを知っていたので、「削除する必要ないのにな」と思いました2

venvモジュールの--clearオプション

Pythonプロフェッショナルプログラミング 第3版』で--clearオプションを知っていました。

指定されたvenv環境から依存ライブラリなどを削除し、環境を初期化します (p.58)

ドキュメントを確認すると、-hで表示されるメッセージの中に--clearオプションがあります。

https://docs.python.org/ja/3/library/venv.html#creating-virtual-environments

--clear Delete the contents of the environment directory if it already exists, before environment creation.

訳:環境のディレクトリがすでに存在するならば、環境を作成する前に、内容物(=インストールされたパッケージ)を消す

ドキュメントをざっと眺めたところ、clear引数が目を引きました。

https://docs.python.org/ja/3/library/venv.html#venv.EnvBuilder

clear -- 真偽値で、真の場合環境を作成する前に既存の対象ディレクトリの中身を削除します。

--clearオプションでこの引数をTrueにしているのかなと思います。

提案コマンドの補足

--upgrade-depsは『Python実践レシピ』で知ったオプションです。
ドキュメントによるとPython 3.9から使えるようになったそうです。

バージョン 3.9 で変更: Add --upgrade-deps option to upgrade pip + setuptools to the latest on PyPI

なお、--upgrade-depsを指定せずに--clearだけだとpipsetuptoolsは最新のバージョンになりませんでした(venv自体を作り直しているんでしょうか。コード読めばはっきりしそうです)。

その他の手法:pip uninstallのドキュメントより

https://pip.pypa.io/en/stable/cli/pip_uninstall/ も確認したところ、--clear以外にも手段はありそうでした。

  1. pip uninstall複数のパッケージを指定できるので、上記の場合はpip uninstall sampleproject peppercorn -yでも仮想環境をきれいにできる
  2. pip uninstall -r requirements.txtファイルを指定できる(パッケージが大量にあっても仮想環境をきれいにできそう)
    • pip freezeしてrequirementsファイルを作ってから、そのファイルを指定するようなやり方浮かびました

1も2も仮想環境を抜ける必要がないため、コマンドが少なくなるのは魅力に映ります。

終わりに

ふだんは意識せずに使っているvenvやpipですが、『Python実践レシピ』を機にドキュメントをあたってみたところ、いくつも発見がありました。

この本は認定試験の教科書らしく、多くのPython使いが読むと期待されます。
この本に記載してあることは自分でアウトプットするときに出発点にでき、この本に記載してないことは知っている人が少ない情報の可能性が高いため、積極的にアウトプットできると気づきました。
実はあと2,3ネタ浮かんでいるので、また勝手に補足したいと思います。


  1. sampleprojectというライブラリはこの本を機に知りました。https://github.com/pypa/sampleproject の各ファイルはけっこう参考になりそうです(もっと早く知っていれば!)

  2. オッカムの剃刀を信奉している立場からすると、コマンドは少ないほうがよいと考えています。参考:「あってもなくても同じなら捨てる」という片付けの考え方が(こんまりメソッドと)プログラミングに通じていました - nikkie-ftnextの日記

登壇報告:2021年10月〜12月の登壇まとめ🎤⚡️

f:id:nikkie-ftnext:20200914224142j:plain

はじめに

「自分の気持ちは自分のために言わなきゃだめだよ1
ああー、このセリフ、めっちゃいい! nikkieです。

PyCon JP 2021が終わり、私のTwitterは『アイの歌声を聴かせて』一色に染め上がりました(笑)。
ただ定期的な発表(トークやLT)は続けていまして、「そういえば直近3ヶ月に何回登壇したんだろう」と思ったので、(自分向けに)まとめました。

目次

11/20 Open Source Conference 2021 Online/Fukuoka 20分トーク

https://event.ospn.jp/osc2021-online-fukuoka/session/408197

11/20 PyCon mini Shizuoka 2021 5分LT

https://shizuoka.pycon.jp/2021/info

アイの歌声を聴かせて × Python ネタです。
「イベントが前半から盛り上がったらいいなー」と、ボケ多めで構成しました。

11/22 Google Apps Script 活用ミートアップ #8 5分LT

https://gaiax.connpass.com/event/227763/

2021年にGASは触り始めたのですが、「せっかくならアウトプットしよう!」と飛び込みました。

このLTの準備でこんなことになっていました:JavaScriptにおける連想配列でハマりました。全てをお話しします - nikkie-ftnextの日記

11/24 オブジェクト指向LT会 vol.3 5分LT

https://rakus.connpass.com/event/225776/

2021年はラクスさんの勉強会でもたびたびアウトプットしてきました。

12/10 イベント振り返り Meetup #2 20分トーク

https://gaiax.connpass.com/event/230937/

PyCon JP 2021振り返りを2人で話しました。
nikkieパートは15分くらいです。
実は、11月のGAS活をきっかけに誘っていただいたんです!

発表資料(※ツイート中のリンク先と同じものです)

12/14 みんなのPython勉強会#76 10分トーク

https://startpython.connpass.com/event/231260/

PyCon JP 2021の秘密(参考にした考え方を知った技術書)を明かしました。

12/18 Tech BASE Okinawa 5分LT

https://techbaseokinawa.com/

沖縄へ飛び、テスト駆動開発について話しました。
聴衆が目の前にいる、久々のLT!

発表の様子

イベントレポートはこちらです:イベントレポート | Tech BASE Okinawaに行ってきました! #TechBASEOkinawa - nikkie-ftnextの日記

番外編:アイうたはいいぞ

こんな記事を書いてもいますね:#アイの歌声を聴かせて はいいぞ 🤖🎤🎼 - nikkie-ftnextの日記

終わりに

「相変わらずの発表頻度だな」と思った2のですが、並行して20回『アイの歌声を聴かせて』を鑑賞しています!3
「よく両立できたな、自分」とまとめていて舌を巻きました。
もう1回再現できる気がしないです。
アイうたのおかげで120%の力が出たってことですね!

発表をご清聴いただき、ありがとうございました。
またアウトプットの場を開催いただき、ありがとうございます。


  1. ここに書いていないですが、実はもう少しアウトプットがあります。これはまたの機会に共有します。

好きな映画の鑑賞ログをGitHubのContributionのような形式で表示する(後編:CORSエラーに対処)

はじめに

いま、幸せ? nikkieです。

GitHubのContributionのように、アイの歌声を聴かせての鑑賞ログを表示してみるの後編です。
前回はCal-heatmapというライブラリを選び、JavaScriptのオブジェクトとしてデータを渡し、それが表示されることを確認しました。

オブジェクトの代わりに、JSONファイル名(相対パス)を渡したところ、開発者ツールのコンソールに「Reason: CORS request not HTTP」と表示され、カレンダーは色づかなくなってしまいました。
こちらを解決する中で知ったことを記事にまとめます。

目次

結論:Pythonでローカルサーバを立てる

MDNのドキュメントで案内されている方法です(後述します)。

カレントディレクトリの状態

.
├── commits_ainouta.json  # 鑑賞回数データ(キー:タイムスタンプ、値:鑑賞回数)
└── show_commits.html  # 鑑賞回数を表示するように実装
$ python3 -m http.server 8000

ブラウザで http://localhost:8000/show_commits.html を開きます。

「Reason: CORS request not HTTP」とは?

開発者ツールのコンソールから、MDNの以下のドキュメントに案内されました(このドキュメントは日本語訳が古いようでした)。

file:///スキームを使って、URLでローカルファイルを指定したときに発生する1と書かれています。
たしかに、HTMLをブラウザで開いているので、URLはfile:///で始まっています。

このエラーが起こるようになった経緯についても書かれていました2

  • 同じディレクトリやサブディレクトリのローカルファイルは、歴史的にはsame originとして扱われて(☆)、CORSエラーにはならなかった
  • 2019年 CVE-2019-11730 にて、(☆)の挙動に脆弱性があることが判明
  • ブラウザは今ではすべてのローカルファイルをデフォルトでopaque originとして扱い、結果としてCORSエラーが起こる

Cal-heatmapが2019年時点でメンテされていたかは不明ですが、ブラウザの脆弱性が修正されたために、Cal-heatmapのドキュメントの通りに実装しても動かなかったと理解しました。

案内された解決法:ローカルサーバ

上記のドキュメントの中で解決方法も案内されています。

その方法はPythonをインストールして、http.serverモジュールを使ってローカルサーバを動かすというものです3

警告 http.server is not recommended for production. It only implements basic security checks.

インタプリタの -m スイッチで http.server モジュールと ポート番号 を指定して直接実行することもできます。(略)ここで立ち上がったサーバは現在のディレクトリ以下のファイルへのアクセスを提供します。(太字は引用者による)

http://localhost:8000/commits_ainouta.json をブラウザで表示すると、データが返されることが確認できます。
file:///に代えてhttp://を使い、ローカルサーバによってファイルのデータが返るので、解決するわけですね!

以降は「結論」と合流します。

f:id:nikkie-ftnext:20220110235423p:plain

ソースコード

HTMLのJavaScriptの最終形を示しておきます。

    <script type="text/javascript">
      const cal = new CalHeatMap();
      const config = {
        domain: "month",
        subDomain: "day",
        range: 4,
        tooltip: true,
        start: new Date(2021, 9), // start October, 1st 2021
        data: "commits_ainouta.json",
        legend: [0.0, 0.5, 1.0, 1.5],
        cellSize: 15,
        subDomainTextFormat: "%d",
      };
      cal.init(config);
    </script>

GitHubのContributionのように、アイの歌声を聴かせての鑑賞ログを表示するソースコードの全容は以下にあります:

動かし方はREADMEをどうぞ!
質問あれば @ftnext まで

終わりに

『アイの歌声を聴かせて』を何回も観ていることから思い付いて、GitHubのContributionのように表示してみました。
手を動かす中で、「CORSエラー」の対処など、いくつも学びがありました。

作品自体が「本当にいいぞ」ですし、素振りの材料にもなり、技術的な学びにもつながるという、これはもう、最高の作品ですね!
エンジニア的にも幸せになっちゃいます。

また、次回の「アイの歌声を聴かせて × エンジニアリング」ネタでお会いしましょう。


  1. This often occurs if the URL specifies a local file, using the file:/// scheme.

  2. https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp#loading_a_local_file

  3. MDNのドキュメントではPythonでしたが、PHPやNode.jsなど他の言語でもローカルでサーバが立てられると思うので、Pythonが必須というわけではないという理解です。

好きな映画の鑑賞ログをGitHubのContributionのような形式で表示する(前編:Cal-heatmapを試す)

はじめに

いま、幸せ? nikkieです1

アイの歌声を聴かせて × エンジニアリングで楽しく手を動かしています。
今回は、『アイの歌声を聴かせて』の鑑賞ログをGitHubのContributionのように表示してみる中で知ったことを記事にします。
以下のツイートのような感じになりました。

目次

前提:GitHubのContribution

エンジニアが設計図やソースコードを公開・共有するのに使うGitHub
GitHubアカウントのプロフィールには、コントリビューションカレンダーがあります。
これは日毎のコントリビューションを、数が多いほど濃い色で示すというものです。
緑色でカレンダーが塗りつぶされていくので、「草」🌱という名前でも親しまれていますね2

このコントリビューションカレンダーと同様に、好きな映画(今回は、アイの歌声を聴かせて)の鑑賞回数を表せないかと思ったわけです。
なお、多数派ではないことは承知の上で、私は好きな映画は映画館で何回も見る勢です。

手を動かす中で知ったのですが、「カレンダーで表現したヒートマップ」とも言うようです。

ライブラリ選定(Cal-heatmapを選択)

そもそもどう実現するかというところから分からなかったので、それっぽいワードでGoogle検索するところからスタートです。
調べていくうちに、大変有用なまとめに出会いました。

Github Contributions Graphのようなheatmapを作成したいので、ライブラリを探している。
これといった定番は見つからず、メンテナンスされていないものばかりだった。

リストアップされたものは、ほとんどが「メンテされていない」のですが、私のケースは、サービスとしてリリースしたいわけでなく、一人で楽しめればいいのでメンテされていないライブラリでも試すことにしました。
VueもReactも入門レベルには達していないので、これら向けではないライブラリからCal-heatmapを選びました。
試している記事 cal-heatmapを使ってGithubの草を再現してみる - ソースコードから理解する技術-UnderSourceCode を調査の早い段階で見つけていたのも選択理由です。

※私のフロントエンドのスキルには広大な伸びしろが広がっていることは自覚しているので、お気づきの点あれば知らせてもらえるとありがたいです。

実装:ドキュメントに沿って

Cal-heatmapのドキュメントに沿って、アイの歌声を聴かせての鑑賞回数を示すカレンダーが表示できるように設定していきます。

でき上がったコードはこんな感じ(じゃーん!)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <script type="text/javascript" src="https://d3js.org/d3.v3.min.js"></script>
    <script
      type="text/javascript"
      src="https://cdn.jsdelivr.net/cal-heatmap/3.3.10/cal-heatmap.min.js"
    ></script>
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/cal-heatmap/3.3.10/cal-heatmap.css"
    />
  </head>
  <body>
    <h1>『アイの歌声を聴かせて』鑑賞履歴</h1>
    <div id="cal-heatmap" style="margin: auto; width: 30%;"></div>

    <script type="text/javascript">
      const cal = new CalHeatMap();
      const data = {
        "1635519600.0": 1,
        "1635865200.0": 1,
      };
      const config = {
        domain: "month",
        subDomain: "day",
        range: 4,
        tooltip: true,
        start: new Date(2021, 9), // start October, 1st 2021
        data: data,
        legend: [0.0, 0.5, 1.0, 1.5],
        cellSize: 15,
        subDomainTextFormat: "%d",
      };
      cal.init(config);
    </script>
  </body>
</html>

設定ポイント

cal.init({})と空のオブジェクトを渡すだけで、空のカレンダーが表示されます。
カレンダーに渡すデータ(いつに何回)やカレンダーの表示形式は、initメソッドに渡すオブジェクトで設定できます。
ポイントと思ったところを書き出します。

itemSelector

https://cal-heatmap.com/#itemSelector

デフォルトでは#cal-heatmap(つまりid="cal-heatmap")のノードにカレンダーが表示されます。
<div id="cal-heatmap">というタグを作っていますよね。

以上、魔法に見える部分の種明かしでした。

domain > subDomain

https://cal-heatmap.com/#domain

GitHubのコントリビューションカレンダーのように表示する設定を探したところ、

  • domain: "month"
  • subDomain: "day"

に落ち着きました。
GitHubとは違って、月の間に空白がある(連続しているように見えにくい)のですが、何月何日というのが分かるのでしっくり来ています3

ドキュメントのExampleにdomainとsubDomainの組合せが示されていて、参考にしました。
x_dayのように指定すると、左から右、上から下の順で並び、よく見るカレンダー表示になります (コントリビューションカレンダーは上から下、左から右の順だったということですね)。

月の数の表示(rangestart

domainの数をrangeで指定します。
2021年10月公開で今月まで表示したいので、4ヶ月(range=4)ですね。

https://cal-heatmap.com/#range

カレンダーの始まりをstartで指定します。 公開月の10月始まりにするには、new Date(2021, 9)ひと月前startに指定する必要がありました4

https://cal-heatmap.com/#start

data(データの形式)

いよいよ「いつに何回」というデータの指定です。

https://cal-heatmap.com/#data

dataTypeがデフォルトでは"json"に指定されています。
なのでdataにはオブジェクトを指定すれば、カレンダーにヒートマップとして反映されます。

オブジェクトの形式は以下のようになります。

{
    "timestamp(秒)": 値(今回は回数),
    "1635519600.0": 1,
}

https://cal-heatmap.com/#data-format

ここで、日付をtimestampに変換するためにPythonを使いました5

>>> datetime.strptime("2021/10/30", "%Y/%m/%d").timestamp()
1635519600.0

日付の文字列からdatetimeオブジェクトを作りtimestampメソッド6を呼び出すことで、floatのタイムスタンプが手に入ります7

legend

凡例(legend)はデフォルトで[10, 20, 30, 40]と指定されています。

https://cal-heatmap.com/#legend

映画の鑑賞回数は1日あたり数回なので、1回観たら緑、2回観ていたら濃い緑のように、指定する配列を変えて色がつく区間を調整する必要がありました。

ここまでで以下のように表示されました。
ブラウザでHTMLを開いています(file:///で始まるURLになっています)。

f:id:nikkie-ftnext:20220110120327p:plain

JSONファイルにまとめたデータを渡そうとしたら・・

ドキュメントのdataの項目には、オブジェクトの代わりに文字列も渡せるという記載があります。
実際ExampleでもJSONファイルの名前を渡しています。

キー:タイムスタンプ、値:鑑賞回数のJSONを作り、

$ head -n5 commits_ainouta.json
{
  "1635519600.0": 1,
  "1635865200.0": 1,
  "1636297200.0": 1,
  "1636556400.0": 1,

ファイル名をdataに指定してみたところ・・・

- data: data,
+ data: "commits_ainouta.json",

カレンダーは色づかなくなり、開発者ツールのコンソールに「Reason: CORS request not HTTP」と表示されました。
CORSエラーと呼ばれるもののようです。

前編はここまでとし、次回はこのエラーの解決をまとめます(手元で解決しており、後編は近日公開予定です)。


  1. コントリビューションの数え方については 近況報告:100DaysOfContribution 達成しました!💚 - nikkie-ftnextの日記 をどうぞ

  2. subDomainTextFormatで「何日」も示すようにしました。ref: https://cal-heatmap.com/#subDomainTextFormat

  3. 2000/01/15始まりにするには new Date(2000, 0, 15)ひと月前の同じ日を指定するようです

  4. 書いている中で気付いたのですが、Cal-heatmapのafterLoadData()コールバックでJavaScript側でタイムスタンプに加工することもできそうです

  5. https://docs.python.org/ja/3/library/datetime.html#datetime.datetime.timestamp

  6. https://stackoverflow.com/questions/9637838/convert-string-date-to-timestamp-in-python#comment34554753_9637908 で知りました

大晦日に見た『魔女見習いをさがして』が響きました

はじめに

こんな時期に雪なんて1、nikkieです。

ブログを書く習慣を取り戻したいと、書きたいネタで書いてみるリハビリ期間中です。
今回はアニメネタに振り切り、ネタバレありで感想を綴ります。

目次

前提:『魔女見習いをさがして』とは

おジャ魔女どれみ20周年記念作品。

ABOUT|映画『魔女見習いをさがして』公式サイト

Introductionには大人のための新たな"魔法"の物語とあります。

Storyより

教員志望でありながらも、自信をなくして進路に戸惑う大学生・長瀬ソラ―名古屋
望んだ仕事についたものの、職場になじめず葛藤する帰国子女の会社員・吉月ミレ―東京
夢に向けて進学費用を貯めるも、ダメ彼氏に振り回されるフリーター・川谷レイカ尾道

年齢も性格も住んでいる場所も…なにもかもが違う三人。
しかも、それぞれ思い描く未来が見えず、人生に絶賛迷い中!
そんな彼女たちを引き合わせたのは“おジャ魔女どれみ”!?

前提:nikkieとおジャ魔女

おジャ魔女はリアタイできた世代ではあるのですが、私は全然覚えていません
ストーリーが分からないので、多分見ていないんじゃないかと思います(でもキャラが全く分からないわけではないんですよ・・)
当時見ていた方が見たら、「この{シーン,セリフ}はここのオマージュ!」とかきっと色々作り込みに気付くんじゃないでしょうか。

おジャ魔女が好きな方から教えてもらい、大晦日NHKで放送していたので、せっかくなので見ることにしました。

なお、おジャ魔女を知らなくても見られる作りで、最後まで楽しめました。

本当によかったので、2回めを見て、そしてこの記事を書いています。

いよいよ本格的にネタバラシしながら感想を語ります

こんな聖地巡礼やってみたい!

ソラ・ミレ・レイカの三人は鎌倉で出会い、「飛騨高山・京都・奈良と『おジャ魔女どれみ』ゆかりの地を巡」ります(引用はStoryから)。
このゆかりの地巡り=聖地巡礼が一アニメファンとして憧れちゃうんです。
私の聖地巡礼は圧倒的にソロが多いのですが、やっぱり同好の士との巡礼はとにかく楽しいんですよ。
見てるこっちまで楽しくなってきました🤗

また、高山は過去に訪れていたり、京都は他のアニメでも見たことあったりして、「ここ{見た,行った}ことある!」とテンション上がってました。

「傷つけ合ってもいい」って言える関係性、素敵すぎる

この3人の旅路は順風満帆ではなく、行き違いも起こるんですが、最後にソラが2人のことを「傷つけ合っても一緒にいたいって思える」って言うんですよ。
共通点は同じ作品が好きというだけで、3人はぜんぜん違うのに、そんなこと言える関係性って素敵だなと思いました。

でも、出会えたんです。
傷つけるかもしれなくても、お互いに思っていることを言い合える友達が。
どれみちゃんが引き合わせてくれたんですよ

大人になったあなたの"魔法"

最後に「魔法」という言葉が出てくるのですが、めちゃくちゃいいんですよ・・

ソラ「私からしたらバリバリ仕事ができるミレさんも、絵が上手なレイカちゃんも、魔法使いですよ」

ミレ「自分のことだけじゃなく、他人のこともいっぱい考えられるのは、ソラさんの魔法だよ」

イカ「ソラさんのおかげで、私、絵を描くことがもっともっと好きになれそうです。だって、これ、私の魔法なんだからー!」

「魔法」という言葉で、敬意を持ってお互いの違いを認め合っているこの感じ!
そして「これは私の魔法なんだ」というセリフの肯定感

「魔法」をめぐるやり取りで、めちゃくちゃ背中を押されました。

そしてリアルマジカルステージ、それぞれの"魔法"を合わせるのすごい素敵・・
一人ひとりは違うけれど、違いを合わせることで、大きなことが実現できるんですよね。

昨今の事象についても

2回見て気付いた作り込み

  • イカちゃん、オープニング、絵描いてるところ(ぶわっ😭
  • ミレさんの猫好き(将来の夢、ねこー)
    • 途中、猫をキラキラした表情で追いかけ回してる!

今から見るなら

Netflixなどで配信しています。

12月23日より映画「魔女見習いをさがして」有料配信サービスにて配信開始決定!|映画『魔女見習いをさがして』公式サイト

終わりに

『魔女見習いをさがして』、めちゃくちゃ響いたという感想を書いてきました。
この映画はすごく肯定してくれる、背中を押してくれるんですよね。
落ち込んだときとかにまた見たい作品です。

そして同様に見終わった後、前向きになれる作品が2021年にもあったので、今年の大晦日はアイうたが見たいです。
NHKさんに、届け!


  1. 心が叫びたがってるんだ。』(2015)より。1/6は東京に雪が降りましたね

2021/2022 年末年始休みの記

はじめに

年末年始休みのやり直しを要求するっ! nikkieです。

楽しかった年末年始休みの(技術以外中心の)ログを小さく残します(技術要素については各日の記事をどうぞ!)。
これはブログでのアウトプットのリハビリ1の一貫です(時間を区切って書き上げることを練習しています)。

目次

12/29 『アイの歌声を聴かせて』ノベライズ読了

「時間あるし、ずっと読みたかったから読むかー」と起床後一心に読み耽りました。

「これってどういうことだろう」がいくつも解き明かされました。

「近くの映画館では見られないけれど、アイうた気になる」という方にオススメです。

活字で登場人物の心情が分かるからこそ、泣ける・感動するシーンがいくつもありました。

12/31 サトミ生誕祭!

立川シネマシティさん1日限りの抹茶アイスや、ポスターのサトミにティアラとサービス精神旺盛で、生誕祭、めちゃくちゃ楽しかったです!

12/31 魔女見習いをさがして、めっちゃよかった😭

とにかく刺さりました😭😭

現在見逃し配信期間中です!

1/1 ノーゲーム・ノーライフ ゼロ😭😭

1/1 技書博6、サークル参加します!

12/31のC99Aは頒布物が用意できずサークル参加を断念しましたが、年末年始休みで(いいアニメのおかげもあって)気持ちが切り替わり、技書博に申込みました!

サークル募集は1/17(月)までと延長されましたよー。
技書博(サークル側)で僕と握手!

終わりに:やりたいことを我慢せずに取り組めるという幸せ

年末年始休みで感じたのは、これに尽きます。

PyCon JP 2021座長としての1年間、けっこう無理(我慢)していたんだなと思いました。
10月〜12月も目標を立てていたのですが、それはそれまでの無理や我慢の延長に設定していたと、今となっては思います。
それを進める中で私は『アイの歌声を聴かせて』に出会い、「自分の幸せを追求すべきなんじゃないか」と10〜12月の目標をほっぽり出したわけです。

この休みでは「これまでやっぱりまだまだ我慢していた」と気づきました。
例えば、アニメの原作。
「今は忙しいから後で読もう」と何本も何本も積んでいます。
でも、アイうたの原作を読む時間を作ってみて思ったのは「後で読もうは絶対に来ない」ということです。

触りたい技術に、応援したいアニメ作品に、(自分がやりたくて設定して)待ってくれない締切。
2022年はあまり我慢せず、これらのバランスのとり方を見つけて、私自身を幸せにする方向に踏み出したいと思います(目標設定はまたの機会に!)。