があらんどう

伽藍洞です。

MENU

家の前にタバコの吸い殻が落ちている確率を、ざっくり推計してみる

きっかけは母からのLINEであった。
家の前の道を掃き掃除したら、タバコの吸い殻が落ちていて嫌になったという趣旨のメッセージだ。

この話は、感覚的には「マナーの悪い人がいる」という話で終わりがちだが、
最近は道端でたばこの吸い殻をみることは少なくなった。

そこで、ふと思った家の前でタバコの吸い殻を見つける確率ってどんなもんだろうか。


日本全体で1日に何本くらいタバコが吸われていて、そのうち何本くらいがポイ捨てされ、それが人の住んでいる空間にどう分布するのか
を順番に推定すれば、
自分の家の前の道に、1日あたり何本くらいタバコが落ちるか
を計算できるかもしれない。

もちろん、これは厳密な行政統計から一発で出る量ではない。
ここでは公開統計でデータがある部分と、仮定として置く部分を分けて考える。

続きを読む

映画さがすの感想

映画『さがす』は、行方不明になった父を娘が追うというシンプルな導入から始まりながら、やがて家族の喪失、貧困、介護、死への誘惑へと踏み込んでいくサスペンス映画である。

前半は、娘・楓の視点から父の失踪を追うミステリーとして進み、観客は彼女と同じように「何が起きているのか分からない」不安の中へ放り込まれる。一方で後半は、父・智の視点へと切り替わり、隠されていた真相が少しずつ明かされていく。

その構成は非常に面白い反面、個人的には後半でやや説明しすぎているようにも感じた。前半に漂っていた不気味さや余白が、種明かしによって少し薄れてしまった印象がある。

ただし、ラストだけは別だ。卓球のラリー、父娘の会話、遠くで鳴るサイレン。その曖昧な終わり方には、観客に解釈を委ねる強い余韻が残されている。

この記事では、『さがす』の前半と後半で変化する物語構造、実在の事件を思わせる要素、そしてラストシーンに残された余白について考えていきたい。

 

続きを読む

pythonでシンプルなシンプルなシンプルなAVIプレイヤー

AVI形式の動画をループ再生するだけのプレイヤー
将来的には拡張して実験に使いたいけどとりあえずは動画再生するだけものすごくシンプルなもの。
以前記事にしたUSBカメラで録画した内容を再生するというような時に使える。
USBカメラを動作させる記事はこちら。
calciummm.hatenablog.com


コードは以下。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Simple AVI video player with OpenCV.
- Plays the specified file in a loop
- Press 'q' to quit
"""
import argparse
import sys
import cv2

def main():
    parser = argparse.ArgumentParser(description="Simple AVI video player (loops, press 'q' to quit)")
    parser.add_argument("video_path", help="Path to the AVI (or other supported) video file")
    parser.add_argument("--window", default="AVI Player", help="Window name (default: AVI Player)")
    args = parser.parse_args()

    cap = cv2.VideoCapture(args.video_path)
    if not cap.isOpened():
        print(f"Error: failed to open video: {args.video_path}", file=sys.stderr)
        sys.exit(1)

    # Try to get FPS to sync playback speed; fall back to ~30fps if unknown.
    fps = cap.get(cv2.CAP_PROP_FPS)
    if not fps or fps <= 1e-3:
        fps = 30.0
    delay_ms = max(1, int(round(1000.0 / fps)))

    try:
        while True:
            ret, frame = cap.read()
            if not ret:
                # Reached end: loop back to start
                cap.set(cv2.CAP_PROP_POS_FRAMES, 0)
                continue

            cv2.imshow(args.window, frame)

            # waitKey returns -1 if no key pressed; lower 8 bits are the actual key code.
            key = cv2.waitKey(delay_ms) & 0xFF
            if key == ord('q'):
                break
    finally:
        cap.release()
        cv2.destroyAllWindows()

if __name__ == "__main__":
    main()


以下では使い方と行ごとにどのような意味を持っているかを観ていく。

続きを読む

末廣亭に行ってきたレポ

はじめての寄席、末廣亭に行ってきた

新宿に行くたびに気になっていた末廣亭。
いかにも「昔ながらの寄席」って外観で、前を通るたびにちょっと気になっていた場所。
今回はじめて入ってみた。

続きを読む

『パンチラインの言語学』感想

言語学バーリトゥードの川添愛先生の本ということで読んでみた。全体としてはエンタメ8割・言語学2割くらいのバランスで、かなり読みやすい一冊。
エンタメ8割言語学2割ということで確かに『言語学バーリトゥード』に比べてもさらにエンタメ寄り。
川添先生の軽妙な語り口は相変わらずで、むしろより強く出ている印象。
個人的にはプロレスネタがもう少し欲しかった。
以下読書メモ。

続きを読む

サマーウォーズを久しぶりに見て思う自身の老化

サマーウォーズを久しぶりに見た。

結論から言うと、全体としては佳作だと思う。
でも、正直ちょっとキツかった。

なんというか、目を背けたくなる瞬間が何度かあった。
昔見たときはそんなことなかった気がするので、これって単純に自分が大人になったということなんだろうか。

続きを読む

世界神話という概念――『世界神話入門』読書メモ

この本は、「世界神話」という少し曖昧で、しかし魅力的な概念を扱っている。

ただし、ここでいう世界神話とは、単に世界各地の神話を集めたもの、という意味ではない。
むしろ筆者が関心を向けているのは、世界各地に存在する神話のあいだに見られる共通の構造やモチーフ、そしてそれらの連関である。

世界神話という言葉には明確な定義が与えられているわけではないが、本書の議論を自分なりにまとめると、次のように理解できる。

すなわち、民族の移動や地域間の交流によって神話が伝播し、その過程で似たような物語やイメージが各地に残るようになる。
そうした「似ている神話」の背後にある共通性やつながりに注目し、人類規模で神話を捉えようとする視点――それが本書のいう「世界神話」である。

この見方に立つと、神話はそれぞれの地域に閉じたものではなく、移動し、変形し、重なり合いながら広がっていくものとして見えてくる。

これとは別に以前に読んだ「世界のはじまりの神話学」、これも似たような神話の伝播について述べられているが、
本書はより神話ごとの共通性や関連性、事例について詳しく扱っている。
入門と銘打っているものの入門とは思えないほど難しい。
まずは世界のはじまりの神話学を読んだ方が良いだろう。
calciummm.hatenablog.com

続きを読む