huraicid’s blog

趣味100% 真面目な論述はないです

夢X夜?

朝起きて忘れようとも中身を覚えてしまっていたので書き出してみる。


こんな夢を見た。

どこか都会郊外の寂れたショッピングセンターの区分けの中で、別の店に挟まれて2区画に分かれた、中古雑貨店に入った。

特に欲しいものがあるわけではなかった。店頭の品に惹かれたわけでもなかった。

惰性で店内を見て回り、奥のスペースに入ると、私が推しているキャラクターのグッズが公式・同人問わずたくさん陳列していた。

心躍った。

ずっと探していたわけではなかったが、欲しかったものもありいくつか手に取った。持ち運びもした。

2、3品持ったままカニ歩きになりながら棚を見ていると、1つの変わったものを見つけた。

少し古ぼけたデニム状のバッグだ。ただバッグ自体は何も変哲もない、旅行用のバッグだ。しかし、他のそれとは雰囲気が違っていた。

小さい装飾品が10個くらい表面につけられていた。ほとんどはマスコットやバッジといったキャラクターグッズだ。しかし、1つだけ風変わりなものを見つけた。

鉄道の切符だ。それも新幹線や特殊な車両の切符が十数枚束になったものが、バッグにピン留めされていた。切符の始点や終点にはキャラクターの聖地である都市名が目立った。

私は恐れ慄いた。最初は誰かの引退品だと思った。値札を見ると¥23,000だった。しかし、これは私の未来の姿なのでは?

買うか買うまいかで葛藤した。買っていいものなのか?呪いの品なのでは?しかし、買ってその持ち主の意志を引き継ぐべきではないだろうか?

さまざまな思いが頭に巡ってかなりの時間が経った。とりあえずこれだけは買っておこう。高い買い物にはなるが、買わずに一生後ろ髪を引かれる思いに悩まされるよりはマシだ。そう割り切ってレジに向かおうとした。

……さっきまでまばらながらいた客が全員いなくなっていた。それどころか人の気配が完全に消えていた。レジはどこだ?私はどこにいるんだ?彷徨いながら店の中を徘徊していた。

どうやらレジは1つ離れた区画にあったようだ。一旦店を出た。

大広間はまだ明るかった。まだ閉店時間というわけではないようだった。しかし、やはり人の気配がない。誰かがいた残り香もない。

レジがある区間の入り口に立った。ドアが開かない。閉店したはずもないのに店内は暗く、鍵がかかっていた。絶望的な気分のまま立ちすくんで気が遠くなって、ついに発狂しかけた。


ここでうなされるように飛び起きた。これ以上は自分が自分でなくなる気がした。

これが何か未来の暗示でなければいいのだが……。今日はゆっくり、何かできることから少しずつ始めていこう。

野獣死すべし(1980)を観た

まず最初の松田優作の痩せこけた姿に驚いた。

直近で観た松田優作の映画は『人間の証明』だった。 その松田優作は言ってしまえば昭和の男、野生っぽさを秘めたthe ハードボイルドのイメージだった。

だが、今回の松田優作はヒョロヒョロで、言ってしまえば令和の時代によくいそうな風貌だ。 中盤付近から発狂してくるのだが、どうもミスマッチ感が否めない。演技がとても狂気じみているだけにだ。

急行列車の中の一連のシーンはとても面白かった。 リップ・ヴァン・ウィンクルを語る松田優作の見開いた眼、淡々と進んでいく物語、そしてロシアンルーレット。 目が離せなかった。

1980年のゆうづる5号は2140発、0025付近で平(現いわき)駅を途中停車して0705に青森に着くものか。 あの洞窟は仙台付近のシーンになるだろうか。

洞窟のシーンはどうだろうか。発狂していく中で現実とシチュエーションが一致し、ついには仲間をも消してしまう。 最後の誰もいないコンサートホールでまどろみから覚める彼は何を思ったか。 未だに解釈が分かれるラストシーンは、果たして。

*

私は最後のシーンについては、夢落ちでも刑事に撃たれたわけでもなく、洞窟の中で主人公が発狂した末に見た最後の夢だと思う。 最後の撃たれたシーンは、自分で撃ったか撃たれたかはわからないけども、その瞬間死んでしまったのかと。

・・・最後のシーン、拡大するんじゃなくて少し引き気味の画角でよかったんじゃないかな・・・。 今見るとただ解像度が低い画になってしまっている。

*

ラストシーンは原作の小説とは違うらしい。いずれ読んでみよう。

【技術備忘録】Apache Commons Compressを1.26.0以上に上げると、ZipFileコンストラクタが非推奨になっていた

compress-over1.26

概要

Apache Commons Compressのバージョンを1.26.0以上に上げたときに、以下の処理で@Deprecatedコンパイル警告が出た:

ZipFile zipFile = new ZipFile(File file);

その修正方法を残しておく。

修正内容

ZipFileのコンストラクタを使わず「ZipFile.Builder.get()を使え」とのことなので、それに従って修正する。

ZipFile zipFile = ZipFile.builder().setFile(file).get();

雑解説

まだ完全に理解していないのでメモ書き程度。

ZipFile
.builder()      // Builderパターンに沿ったインスタンス化処理
.setFile(file)  // 読み取るファイルを指定
.get();         // ZIPアーカイブファイルを読み取るためのクラス
                // (org.apache.commons.compress.archivers.zip.ZipFile)

コード例

修正前(< 1.26.0)

// このZipFile(コンストラクタ)がDeprecatedになった
File file = new File(path.toString()); 
try (ZipFile zipFile = new ZipFile(file)) {
    ...

修正後(>= 1.26.0)

// ZipFile(String path) -> ZipFile.builder().setFile(File file).get()
File file = new File(path.toString());
try (ZipFile zipFile = ZipFile.builder().setFile(file).get()) {
    ...

実際に動かせる例は以下のリンクを参照: https://github.com/huraicid/compress-over1.26/blob/main/compress-over126/src/main/java/com/example/Main.java

リポジトリgithub.com

参考

【技術備忘録】使っていないPCにubuntuをいれてRestful APIサーバを構築するまでの記事とメモまとめ

いろいろな記事をつなぎ合わせて旧windows10 PCにubuntuをインストールして、以下の記事のAPIサーバを構築するところまで。 (Windows10は犠牲になったのだ)

qiita.com

古い情報があったり記事どおりではうまくいかなかったりで、試行錯誤した記録も簡単に残しておく。

試した環境

  • もとになったPC: Let's note CF-SZ5

※インストールメディア作る用の何かしらのPCも必要

インストールメディアの作り方とインストール方法

以下の記事を参考にやっていけばいい。図が入っていてとても分かりやすい。

なお、ubuntuのイメージは日本語Remix版をダウンロードしておくと初期設定しやすいはず。

あと途中の・インストールの種類の設定は空のHDD/SSDであれば上の2つを選んでもいいと思う。

qiita.com

(Windows10と共存できるっぽいけど手順ミスったっぽくて消しちゃった。共存する必要があればバックアップとかはとりましょう)

Golang環境構築

以下の記事の「Golang環境構築(for Ubuntu16.04)」の章をやればOK。

qiita.com

ただし、「.bashrc」ファイル末尾に下記を追記の後は以下のコマンドで.bashrcが再読み込みする必要があるので注意。

$ source ~/.bashrc

gitのインストール

記事そのままのコマンドを流せばOK。

$ sudo apt-get install git

MySQLのインストール

基本的には最初の記事通りやっていけばいいが、途中でコマンド通りいかなくなるのでメモを残しておく。

mysqlserverインストール

インストールはそのまま実施してOK。

$ sudo apt-get install mysql-server

MySQL初期設定

そのままSQLmysql -u root -pで接続しようとすると、パスワードrootで入ろうとしたらAccess denied for user 'root'@'localhost'と出てはじかれた。

どうやらMySQL 5.7以降ではインストール直後はパスワードによるインストールができないらしい。なんじゃそりゃ

というわけで以下のようにしてsudoでMySQLにログインしてパスワードを指定しなおす。

$ sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

ここら辺の経緯は以下の記事がわかりやすい。

zenn.dev

APIで使用するテーブル作成

最初の記事ではCREATE TABLE文をgoで書いていたが、以下のようなSQLで書いた方が楽(なはず)。

mysqlで接続した状態で)

# データベース作成
CREATE DATABASE gotest;

# データベース接続
USE gotest;

# テーブル作成
CREATE TABLE person(
    id INT NOT NULL AUTO_INCREMENT,
    first_name VARCHAR(40),
    last_name VARCHAR(40),
    PRIMARY KEY (id));

RESTful APIで必要なもののインストール

最初の記事ではコマンドが現在(2024/4/28)はじかれるので、以下のコマンドでライブラリをインストールする。

goディレクトリに移動

$ cd $GOPATH

mysqlドライバー

go get install "github.com/go-sql-driver/mysql@latest"

Gin(HTTPフレームワーク)

go get install "github.com/gin-gonic/gin@latest"

RESTful APIを構築

最初の記事の3.APIサーバー以降をやっていけばOK。

別PCからAPIをたたく場合は、APIを構築したPCのIPアドレスが必要になるので、以下のコマンドで確認しておく。

$ ipconfig

www.linuxmaster.jp

inet xxx.xxx.xxx.xxxの部分が接続先のIPアドレス

【技術備忘録】xlsファイルの1シートの行数上限は65536行

概要

いくつかのシートのデータを取得して組み合わせて、別シートに出力するマクロを組んでいた時に65,536行以上出力しようとして範囲外エラーが出た。

原因

.xlsファイルは1シートの行数上限が65,536行でその上限に引っかかっていた。

対処

Excel2007以降の環境であれば.xlsx or .xlsm形式に変換して保存すればOK(なぜかググっても.xlsxの場合しか組んでなかったけど.xlsmでも問題なし)。

  1. .xls形式のファイルを開き、ファイル > 名前を付けて保存 を開く。
  2. ファイルの種類(T)でExcel マクロ有効ブック(*.xlsm)を選択して保存する。
  3. 今開いてるファイルを開いて.xlsm形式のファイルを開きなおす

特に最後の手順は注意。これをやらないと65,536行上限は残ったままになる。

蛇足

.xlsx or .xlsmは1,048,576行が上限。1,048,576 = 220ではあるけどなんで8の倍数乗じゃないんだろう?

参考

【技術備忘録】はてなブログの記事をgimonfuを使ってGithubにバックアップを取る(2024/3版)

久しぶりにはてなブログを更新したいなと思いつつ、Githubで記事のバックアップが取れたらいいなと思っていろいろやっていたらできたので。

といっても先人の記事をなぞって途中で止まったところを補足しただけ。

最終確認:2024/3/29

手順

  1. ひとまず以下のqiitaの記事の「3. GitHub リポジトリを作り、ワークフローに使う Secrets を登録する」までやる
  2. このままだとリポジトリへの書き込み権限がないので、以下の設定をする:
    1. 保存するリポジトリsettings > Actions > Generalを開く
    2. Workflow permissionsRead and write permissionsを選択してSave
  3. 最初の記事の「4. 記事をダウンロードするワークフローを追加する」以降をやる

参考