0xf

日記だよ

年末年始はどうだったのか

龍が如く7をクリアした

龍が如くシリーズ未体験者(以前ちょっとだけ6を遊んだんだけど、シリーズの前の作品が理解に必要そうな感じで序盤で投げ出している)なので、7から新主人公で新規一転という話を聞いてプレイし始めた次第。

けっこう時間がかかった。ムービー多くて長いけど楽しくヤクザ映画を見る感じで堪能できました。冒頭で主人公の春日が「ドラクエ好き〜」って言ってて面白いなと思ったらゲーム自体がRPG仕立てでなるほどドラクエとなった。ハローワークで転職できるし、「勇者」のジョブがあるし。

おっさんの顔はめっちゃ細かく書かれているのに女性がつるんとしたCGぽさがあって、こだわりポイントがはっきりしていてすごいと思う。

Cursor: AI Code Editor を年間ライセンスでポチした

フリーライセンスで触った感じがよかったので。200ドルくらい。

仕事机の裏にマルチタップを設置して足元のケーブルを整理した

偉業と言って良い。これでふわふわ漂う猫の毛をガンガン掃除機で吸い込める。

仕事机はFlexispotの昇降テーブルの足に、昔使っていたダイニングテーブルの天板をくっつけたもので、まあまあ気軽にネジ止めできるのである。非常に木が硬いので強度も安心。

自室の本棚を整理した

古い漫画の本をまとめて搬出。ブックオフにでもあとで持っていこうと思う。

これは魂から血を流すような気持ちであって、例えるならはじめてもらったラブレターを燃やすような行為だと思う。(そんなものをもらった経験はない)ダンボールに詰めて廊下に置いてあるのだが、その前を通るたびに「ここに血溜まりがあるぞ」という気持ちになる。

技術系の書籍も古いやつはまとめて出すことにした。これも血である。ギギギ。

古いディスプレイを持ち出してトリプルディスプレイ化した

使ってない27インチのディスプレイがなんとなくもったいないなと思ったので、安いディスプレイアームを買ってきて上部に設置した。

こういう感じ。

マウスの移動距離があって鬱陶しい気はしなくはない。すぐ飽きそうな気はする。

働くのが割と嫌いではない

働くというのは、自分にとっては「やりたいことに合わせてプログラム書いたり数字合わせたり状況の変化に構造を合わせるために不明な箇所を調べたり複数の人間の認識空間を読み取ったり予想したりして時間軸方向になんかいい感じになるよう段取る」ことであり、それを必要としている組織に対して「それやりますよ」と申し出て、やってあげてお金をもらうということである。

それで飯を食っている。

やってるとうまくなるし、次はもっとうまくやろうという気になる。毎回完璧には行かなくて、最善の手段が他にあったよな〜と感想戦をすることが多々ある。

同じ局面は2度とやってこないけど、なんらかのパターンはあるもので、以前の経験をもとに作戦を練る一連の流れがある。毎回立場ややること、やりたいこと、困ってること、障害物は違うので、共通のパターンを探し出す面白さや問題の形式をコネコネして知っているパターンに当てはめるというテクの使い所がある。

働くのが嫌いではないと書いた。素朴な感想である。強制されたり、主義主張と反するスタンスを取らされたりすることがあれば別だが、働いている上で幸いそんなケースはあまりない。もちろん、組織に属するロールプレイをしているわけなので完全な自分との一致もあり得ないんだけど、人倫に反したり絶対許せない、その振る舞いをすること自体に嫌悪がある、というようなことも避けられているので、これまで所属してきた組織に対してありがたいなと思っている。今も同様である。

もちろん、「仕事、大変だな〜つらいな〜」ってことはいろいろ発生する。そういうゲームに参加しているので、そういうものである。まーそこはそれ。たいていのことは一過性のものであることはわかっているし、「朝起きるのが辛いので人生には絶望しかないと結論づける」みたいな袋小路に入り込まないようには気をつけている。人生において面白いことを色々もたらしてくれる仕事って要素を自分でわざわざ台無しにしてしまうのはもったいない、と思っている。

嫌なことを嫌々やってるという自己認識は不幸すぎるので、なるべく避けたい。

とはいえ、いろんなめぐりあわせで「そうもいかねえ」という気分のときもあるはある。

あるよねーーー

そういうとき、やってることを好きになる、好きでやってる人のメンタリティを脳内で模倣するというワザを自分は多用する傾向がある。ストックホルム症候群みたいな感じだなという気もしなくはないが、さまざまな困難のもたらすネガティブな影響を緩和するのに有効だと思う。とにかく、嫌々やってるという自己認識の状態を自分は回避するというのをやっていて、それは精神の安定に一役買っていそうである。

(当然、自分にとって許容できない仕事の環境であればとっとと転職したりするだろうという前提がある)

 

連休の終わりが近づいてきて、各地で働きたくない!!って主張する人が色々観測されるので、まあまあ趣味が違うなと思ったのであった。

映画「八甲田山」

見ました。秋田に引っ越してきたのでこの映画は外せない!!!ということで。

白い地獄の物語

まごうことなき傑作なのだけど、TVではなくスクリーンの大画面で真冬に見ていると、見ている方も寒くなる。

大館の出なので八甲田山はわりと身近な存在です。そして「八甲田雪中行軍遭難事件」と「岩木山大館鳳鳴高山岳部遭難」は子供の頃にみんな教えられる出来事でもある。自分が鳳鳴高校出身者でもあるので、という都合もある。これは余談。

劇中に何度か雪に閉ざされた村が出てくる。雪原に三角の屋根だけが見えているみたいな感じになっていて、この五十年で日本はかなり雪が降らなくなっているんだなあ、と思った。考えてみれば、自分が子供の頃の教科書(35年くらい前だ)では「東北や新潟の豪雪地帯では冬は玄関が埋まるので2階から出入りします」って書いてたんだもんな。

この映画、初見ではないのだけど、子供の頃とは全く見え方が違っている。まず、組織が見えるようになっている。メンツにこだわるおっさんが「向こうがこうなら、こっちはこうだ!」と計画にチャチャを入れるのが序盤にあるわけだが、後半どんどん状況が悪化していく中で、それがチラチラと思い出されてイライラするんだよな。お前、お前このバカヤロウめと。これが共感というやつです。オブザーバーだったはずの「偉い人」が指揮命令系統無視して横槍入れてくる時の、神田大尉の難しい顔がこれでもかと胸に迫る。つらい、つらいぜ。こんな中間管理職は嫌すぎる。

もののわかってない「偉い人」がちゃんとものがわかっている現場を台無しにしていくという構図はしんどいステレオタイプなんだよな。

(非道な上官とかそのあたりは映画/小説での脚色がさすがに入っているらしい)

あと、そもそも背景となっているのはロシアが攻めてきて津軽海峡から上陸し、海から砲撃ガンガンされて海沿いの道路とか鉄道が破壊されたとき、どのようにして奪回に至る進軍ルートがあるのか、それを確立せねばならぬ、という世界観であって、そういう大人のモチベーションって子供の頃見た際にはまったく記憶に残っていなかった。いろいろある。

内容以外の話

妻から「クリスマスなので、八甲田山を見るべきである。せっかくなので、暖房を消して窓を開け、遭難した人の気持ちがリアルにわかるような体験をするのはどうだろう」と提案を受けたのだが、「チキンが冷めてしまう」「フライドポテトも冷えるとおいしくない」と粘り強く説得して、リアル体験コースは勘弁してもらった。

買ったBDは4Kリマスターしたやつを2Kダウンコンバートしたやつ。せっかくならULTRA HD版があるとよかったんだけど、まあ元の映像ソースが古いものなので気にすることでもないだろうと思う。

昭和世代

中身のない1on1に冷める若者の心理 「仕事で本音を言う必要あるのか」:日経ビジネス電子版

これ見て、昭和世代、って言われるのか。すげえなあ、とビビってしまった。いや本筋ではないけどね。本筋の方は、まあ、ほら、よくある若者分析論なのでさておきます。

文中に、

現在50~60代の昭和世代

とあって、

ん、と思った。いわゆる氷河期世代ではないのか。

氷河期世代151人合格 国家公務員中途採用、今回まで―人事院:時事ドットコム

このへんをみるとと、国の就職氷河期世代の扱いは「1966年4月2日~86年4月1日に生まれた人が対象」とあって、

まあこれは定義とかではないけど、この辺りの世代がごそっとバブル期モーレツ会社員文化からは隔絶された世代であると見ているわけよね。

そして思いっきり日経ビジネスの記事でいう「昭和世代」を含んでいそうである。

就職氷河期世代に「仕事が生きる全て」「仕事場での承認が最重要」って価値観が支配的であったというのは、わりと世の中一般の見方とは異なるのではないかなあ。

私の仮説ですが、若者世代のほうが、「仕事が(生きる)すべて」と思っている度合いが低いのではないでしょうか。仕事以外にも趣味などでつながる有形無形のコミュニティーを持っていたり、日々様々な動画などのメディアで“面白い”ものと出合い続けていたりするわけですから。「自分ってやっぱりこれが好きだなぁ」とか「この場だけは自分を出せるなぁ」と思える場面が多元的にあるのではないかと感じています。能力主義は今もなお連綿と続いているものの、会社で評価されることだけを狙って生きていない。自分が承認される場を見つけているし、見つけようとしているのではないかと。

などと「ん」と思ったのでただのメモです。

たまに氷河期世代=若者と思っている言説を見かけるけど、実際には一世代ずれているのではないか、という。いや、違うのかな。感覚の中で、昭和世代の次に若者世代がきている?

Parquetファイルのスキーマを参照する(謎の key_value フィールド編)

ちょっと Parquet ファイルのスキーマを確認したいことがあった。

こんな感じのスクリプトを書いた。

import argparse
import pyarrow.parquet as pq
from pyarrow.parquet import ParquetFile


def main(input_file: str) -> None:
    try:
        parquet_file: ParquetFile = pq.ParquetFile(input_file)
        schema = parquet_file.schema
        print(schema)
    except FileNotFoundError:
        print(f"Error: File not found - {input_file}")
    except Exception as e:
        print(f"An error occurred: {e}")


if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="Print Parquet file's schema")
    parser.add_argument("input_file", help="Path to the parquet file")
    args = parser.parse_args()
    main(args.input_file)

こいつで確認したら、map<string, string> なカラムは以下のような感じになってた。resource_tags は、いわゆるタグが複数格納されている感じね。

resource_tags: map<string, string ('resource_tags')>
  child 0, resource_tags: struct<key: string not null, value: string> not null
      child 0, key: string not null
      child 1, value: string

mapは struct<key: string not null, value: string> が複数格納されている。

なんかネストされた構造がある? と思ってフォーマットの説明を眺めていた。

MAP is used to annotate types that should be interpreted as a map from keys to values. MAP must annotate a 3-level structure:

<map-repetition> group (MAP) { repeated group key_value { required <key-type> key; <value-repetition> <value-type> value; } }

  • The outer-most level must be a group annotated with MAP that contains a single field named key_value. The repetition of this level must be either optional or required and determines whether the map is nullable.
  • The middle level, named key_value, must be a repeated group with a key field for map keys and, optionally, a value field for map values. It must not contain any other values.

map<string, T> は、

  • key_valueって名前のフィールドを持つ struct だよ
  • key_valuekey: string (required)と、value: T(optional)を持つ structrepeatedになっているよ

というように表現される。なるほどね。

BigQuery にデータをインポートしたとき、map<string, T>struct<{key_value: Repeated<strict{key: string, value: T}>}>みたいな感じに変換されていて、key_valueってどっからきたんやろと思っていた。Parquetファイルの方の仕様だったのねえ。

16日から17日にかけてめっちゃ雪が降った

これが明け方の様子。すっかり庭の木々の枝が丸くなってしまっている。すごい。

楽しくなっちゃって廊下に座り込んで外を眺めていた。

15日の日曜日は雨模様で、すっかり雪が溶けてしまっていたのだけど、そこから月曜日に巻き返して、火曜日の朝には一気に冬景色になっていた。

朝、ゴミを出しに家を出たら、足元からギュギュと雪を踏む音がして、ああ冬だなあという気分になった。冷たくて硬い空気と、足元のこの踏みしめる感じが冬だよね。これでええやろと裸足に浅くつっかけたスニーカーだと、くるぶしあたりまである雪の中を歩くとめっちゃかじかむ。途中で「でかい靴履いてくればよかった〜」と後悔しながらゴミ捨て場まで歩く。帰りは自分の足跡を逆に辿って大股で走る。すばやく家に帰れば寒さを感じる時間が半分になる。失う体温が半分で済むのである。でも荒々しく歩くから靴には余計な雪が入る。でも半分の時間だからこっちの方がお得だと唱えながら走る。笑っている。そういう感じ。

大雪警報が出ていた。

季節感なー。

あとは夜中じゅう走り回る除雪車の気配ね。黄色く回るランプの光と、でかいタイヤがたてる音。たいへんに騒がしいのだけど、でも夜中だからか少し肩身が狭そうに感じる活動の音。それとも、申し訳なさそうに聞こえるのは、雪が空気の振動を吸っているからかしら。