ひまつぶし雑記帖

GBLシーズン力と極みでACE到達

2025/4/23 [11:34:01] (水) 天気

どうにか今シーズンACEに到達。
去年2024年5月以来だからほぼ一年ぶりの称号だ。

ここんとこポケモンGOを開くこともなくなっていて、GBLもそのモチベーションがガタ落ちしてた。
自作実装のSNSが面白くてそっちにほとんど時間を使っていて、それ以外のことはぜんぶ後回しだった。

なもんで、昨シーズンなんかはランク10。対戦数はわずか45というありさま。
このままアプリとはさよならかな、と思ってたところ、コロナ禍以来、古巣の友人でいまはポケモンGO友達から久しぶりのメールでふたりオフ会。彼はレジェンド到達者でご家族で今もポケモンGOを楽しんでる。

話してるうちにふたたびモチベーションが高まったというところ。
そもそも、ほとんどやってなかったんで、なにそのパワースポット?ダイマックスてなに?とか新しく実装されたイベントなんかの遊び方も教えてもらってウォーキングの時もポケモンGOを開くようになった。
おもてに出て、フィールドでのポケモンGOはやっぱり面白いよなあ、と改めて。

で、GBLもふたたび参戦するようになり、先日やっとACEに到達。春カップというCP1500以下の特殊レギュレーション。

ポケモンGOは
・歩くことで健康的に
・対人戦で頭を使うことでボケ防止に
還暦過ぎた老人に、カネもかからないし良い趣味のひとつだ。
image【ポケモンGo】
お気に入りのポケモン (2016/8/10)
ポケモンGoでウォーキング再開 (2016/9/19)
ポケモンGo:カビゴンが放流されている (2016/9/26)
ポケモンGo:種族のHP順 (2016/9/29)
ポケモンGo:カビゴンの英才教育 (2016/10/24)
ポケモンGo:ハロウィンイベント飴ちゃん祭りの成果 (2016/11/1)
ポケモンGo:ジムバトルに参戦 (2016/11/29)
ポケモンGo:Pokemon GO Plus (2016/12/6)
ポケモンGo:ヤドランでカイリュー退治 (2016/12/29)
ポケモンGo:レギュラーとジムトレーナー (2017/1/20)
ポケモンGo:TL33になりました (2017/2/15)
ポケモンGo:イースターイベントで図鑑埋め (2017/4/18)
ポケモンGo:ハピナス対策【ジム戦】 (2017/5/29)
ポケモンGo:大型アップデート直前 (2017/6/23)
ポケモンGo:新ジム戦がめっちゃ面白くなってた (2017/6/23)
ポケモンGO:レイドバトルで技マシンget (2017/6/28)
ポケモンGo:コイキングレイドバトル (2017/6/29)
ポケモンGo:TL36になりました (2017/7/27)
ポケモンGo:ソロレイドの準備 (2017/7/31)
ポケモンGo:レベル3ソロレイド:ゲンガー (2017/8/9)
ポケモンGo:3鳥捕獲完了 (2017/8/10)
ポケモンGo:技マシン使用履歴 (2017/8/16)
ポケモンGo:宵越しの砂は持たない (2017/8/24)
ポケモンGo:レベル3ソロレイド:カイリキー (2017/8/30)
ポケモンGo:金コイキング捕獲 (2017/9/6)
ポケモンGo:秋分の砂2倍イベント (2017/9/28)
ポケモンGo:今月のレイドバトルはライコウ (2017/10/11)
ポケモンGo:フーディンレイドに惨敗中 (2017/10/17)
ポケモンGo:エンテイ初日GET (2017/11/2)
ポケモンGo:レベル3ソロレイド:ストライク (2017/11/9)
ポケモンGo:ポケモンのMAX強化 (2017/12/6)
ポケモンGo:レベル3ソロレイド:フーディン (2017/12/14)
ポケモンGo:バトルパーティ編成 (2017/12/21)
ポケモンGo:レベル3ソロレイド:ポリゴン (2017/12/22)
ポケモンGo:EXレイド・ミュウツー捕獲 (2018/1/24)
ポケモンGo:EXレイドパスが来た! (2018/2/10)
ポケモンGo:レックウザ終了・伝説系捕獲率 (2018/3/15)
ポケモンGO:噂のミュウをゲット (2018/4/4)
ポケモンGO:カンストポケモン (2018/5/9)
ポケモンGO:力まかせのジムバトル (2018/6/13)
ポケモンGO:ルギア最強説 (2018/6/19)
ポケモンGO:水イベント終了 (2018/6/21)
ポケモンGo:レベル40になった (2018/8/14)
ポケモンGO:カンストポケモンその2 (2018/9/20)
ポケモンGO:ミュウツー事情 (2018/10/18)
ポケモンGO:ミュウツー技開放 (2019/1/2)
ポケモンGO:ブイズでジムバトル (2019/6/4)
ポケモンGO:GOバトルリーグ (2020/2/5)
GOバトルリーグ:44勝61敗 (2020/2/7)
GOバトルリーグ:初の5連勝! (2020/2/12)
GOバトルリーグ:5連敗5連敗 (2020/2/17)
ポケモンGO:GBLで負け続ける (2020/8/23)
GOバトルリーグ:シーズン8でもACE到達 (2021/6/15)
GOバトルリーグ シーズン10開始 (2021/11/30)
GBLシーズン10でACE到達 (2021/12/20)
GBLシーズン11のランク20 (2022/3/7)
GBLシーズン11でACE到達 (2022/6/17)
GBLシーズン12でACE到達 (2022/9/23)
GBLシーズン13でACE到達 (2022/12/18)
GBLシーズン14でACE到達 (2023/3/14)
GBLシーズン14で初のVETERAN到達 (2023/5/15)
GBLシーズン15でACE到達 (2023/6/14)
GBLシーズン16でACE到達 (2023/11/15)
GBLシーズン17でACE到達 (2023/12/17)
GBLシーズン18でACE到達 (2024/5/11)
GBLシーズン力と極みでACE到達 (2025/4/23)

»電子書籍制作代行についてはこちら

perlでMP4やMOVの縦横サイズを取得する

2025/4/21 [17:44:28] (月) 天気

タイトルのまんまのエントリ。
動機としては、ウチのおひとり様ActivityPubサーバーに動画をアップロードしてみたい。
んで、ActivityPubサーバーは、フォロワーさんのところに投稿(ActivityのJSON)を配送するんだけど、この時に縦横のピクセルサイズが必要っぽい。

動画を扱う時に、鉄板の定番のffmpegでサイズ取得も当然、ほかに解像度変更やファイルサイズの圧縮とかいろいろできるんだけど、レンタルサーバーでffmpegを使えるという話を見たことがなく、当然わたしが利用しているロリポップも使えない。

となると、縦横のピクセルサイズは自力でなんとかする必要がある。
ぐーぐる先生に聞きまくってなんとかなったのでメモ。

「MP4のファイル構造を解説」
https://qiita.com/satken2/items/d14b4113fe3fb5f5597b
↑こちらのサイトで一発解答(多謝!)

MP3とMOVファイルは基本3つのブロックの塊らしい。

サイズタイプ名データ
4バイト4バイト可変


最初の4バイトに入ってるサイズでブロック全体の長さがわかる。
BOXの長さの情報が2^32バイト(=4294967296)を超える場合、最初の4バイトには0x00000001が格納され、その変わりに9バイト~16バイトに実際のBOXの長さが書かれます
ということだけど、今回わたしの場合は10秒もないようなSNSに上げるためだけの動画なのでスルーする。

そのブロックにもろもろの情報が入っているので、欲しいところを取得する。
このブロックのタイプはいったいなんなの?というのは
「QuickTime File Format」
https://developer.apple.com/documentation/quicktime-file-format#//apple_ref/doc/uid/TP40000939-CH204-SW1
↑こちらに全部ある。

ここまでわかればやることはわりと単純。
1)最初の4バイトをみてブロックサイズを取得
2)次の4バイトをみてブロックのタイプを取得
3)必要なタイプだったらそこで情報を取得して終了
 必要なタイプじゃなかったら次のブロックをみにいく

ちょっとハマったのが
各ブロックはデータを持たないものと持ってるものがあるということ。
しょうがないんで、次のブロックを先読みしてタイプ名があるかないかで判定。

以下で欲しい情報が取れた。
わたしが欲しいのはタイプ「tkhd」(たぶん、トラックヘッダーの略)のブロックのデータ部に入ってる幅と高さ。

my @parent = (
'cmov', 'ctts', 'edts', 'esds',
'free', 'ftyp', 'iods', 'junk',
'mdia', 'minf', 'moov', 'mvhd',
'pict', 'pnot', 'rmda', 'rmra',
'skip', 'stbl', 'trak', 'uuid',
'wide');
my @child = (
'fiel', 'mdat', 'rdrf', 'rmcd',
'rmcs', 'rmdr', 'rmqu', 'rmvc',
'wfex', 'cmvd', 'co64', 'dcom',
'elst', 'gmhd', 'hdlr', 'mdhd',
'smhd', 'stco', 'stsc', 'stsd',
'stss', 'stsz', 'stts', 'tkhd',
'vmhd');

open(IMG, $file) || die;
binmode IMG;
my $len; my $type; my $data;
my $width; my $height;
while(1){
    my $buf;
    read(IMG, $buf, 4);
    $len = unpack("N", $buf);
    read(IMG, $type, 4);
    last if ! $type;
    # check next type
    my $has_data;
    seek(IMG,4, 1) || last;
    read(IMG,$buf,4);
    last if ! $buf;
    $buf = quotemeta $buf;
    unless( grep(m!$buf!, @parent) || grep(m!$buf!, @child) ){ 
        $has_data = 1; 
    }
    seek(IMG, -8, 1);
    if( $has_data ){
        $len -= 8;
        last if $len < 0;
        my $begin = tell(IMG);
        read(IMG, $data, $len);
    }
    if($type =~ m!tkhd!){
        my @check =  unpack("x76 n x2 n", $data);
        if( $check[0] && $check[1] ){
            $width = $check[0]; $height = $check[1];
            last;
        }
    }
}



perlはやっぱり凄くて、バイナリファイルも簡単に扱うことができる。
とはいえ、それを扱うスキルがない人間のせいでずいぶん時間がかかってしまった。

これでうちのActivityPubサーバーに動画をあげるための下準備はできた!
…と思ったんだけど、動画ファイルって5秒ぐらいのものでも1M〜2Mもあって慌てた(今さら
わたしはロリポップのビギナーコース。そんなでかいファイルを気楽に上げてたらあっという間に利用できるディスクスペースを食い尽くしてしまう。

なもんで、ここまで作ったけど諦め。きっとそのうち何かの約に立つ、こともある、かな。

image

今の時期、まじでタケノコ美味くて悶絶する。
刺身で美味いのはもちろん、焼きタケノコがもう絶品。
水分を飛ばすイメージでじっくり弱火のフライパン。水分が飛んできたかなと思ったらオリーブオイルを回しかけてタケノコに焼きめをつけて、塩をふたふり。
これだけでいくらでもご飯が食えるし酒が飲める。
マジでオススメ!!!

»電子書籍制作代行についてはこちら

おひとり様ActivityPubサーバーの詳細

2025/4/3 [11:04:38] (木) 天気

先月、ウチのおひとり様ActivityPubサーバーの全体像、実際やってることはホームページに個別ページを作って掲載した。
あらためて、こっちのブログでもその告知。

ブログとホームページの棲み分けというか、以前、SNSに投げた通り
1)SNSで思いつきをちらほらメモ
2)ブログで自分のSNSを見ながら動機や経緯を整理
3)1と2を経て、ホームページに完結した個別ページとして掲載

各Activityを実装するにあたってのブログのエントリとそれを完結させた個別ページはあるけど、サーバー構成について完結させた個別ページはあるけどブログのエントリはなかった。

上記の棲み分けでいうと、2)→3)ではなく3)→2)が今回のエントリ。

おひとり様ActivityPubサーバーの構成::On Golden Pond
https://www.doncha.net/activitypub/activitypub013.html
↑ホームページ掲載はこちら

大雑把にやってることは
・htaccessでリクエストのリダイレクト設定
・リダイレクトされたリクエストをスクリプト1で処理
・ActivityPubの仕様通りにスクリプト2で対応

ウチの構成を丸裸…こういうページを作ることで、自分でも未確認だったり再確認することがいろいろ出てきてびっくり。
昔からよく言われるように「ひとに教えるのは自分に教えることになる」というやつか。

自作実装したのは「自分のわかる範囲で片付ける」ため。
仮にMastodonなど定評のあるActivityPubサーバーソフトウェアをめちゃくちゃ頑張って導入/設定したとしても、何か問題が出た時に、自分のスキル/知識では解決できるとは思えない。管理運用するサーバーの種類も多いし、それらを操作する言語もひとつじゃ済まないし。
おひとり様でサーバーを立ててFediverseに参加できても、すぐに退場することになるんじゃ困る・面白くない。

てことで
・ドメイン取得済み
・レンタルサーバー契約済み
・perlならどうにか手癖で書ける
・apacheなら少しわかる
・データベースも少しはわかる
・htmlとcssは手書きできる
という現状環境と自分のスキル/知識の範囲内。

ActivityPubの仕様、というか決められてる「約束事」は最低限のリクエストのやりとりだけだし、上記程度のスキルで対応できる。
仕様を実装した上で、気をつけたのはひと様の投稿の扱いだけで、それ以外はいろいろがっつり省いた。

だいたい、フロント側はアクセスしたらタイムラインを表示するだけ。もちろん、ページ更新は手動で再読み込みというチープな作りだ。
それでも十分面白いし、自分のタイムラインにどっぷりハマってる。

現状環境、スキル/知識の範囲内でいうとphpやrubyを使えるひとが多いだろうし、phpやrubyでwebというひとはデータベースも使えるだろう。ドメインやレンタルサーバーなんかは外食2回分ぐらい。

やってみると、思っていたよりもFediverse参加のハードルは低い。
おひとり様サーバーを作って参加してみませんか!?

image

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ため池

[2025/04/27 19:55]
youtubeの無料配信を観てあらためて、映画の途中にCMが挟まるのはやっぱキツい。
アマプラは今のところ、ハリウッドのヒット作には入るけど、それ以外は映画が始まる前、冒頭にひとつかふたつCMが入るぐらい。それでもうっとー ...

[2025/04/27 16:10]
あ。でもYoutube配信でCMがしょっちゅう挟まるのがめちゃくちゃうっとーしかった。やっぱCMは悪だわ。

[2025/04/27 16:09]
【🎬期間限定無料公開🎬】インファナル・アフェア
https://www.youtube.com/watch?v=RO14Hg0nxeE

うひゃあああ。なんじゃこの傑作。
アマプラで2以降しかなくて、最初のタイトルはたぶん権利関係だかなんだかで配信がないのか、と思ってたら公式がYou ...

@t2aki@tokoroten.doncha.net

検索
<<2025/04>>
  12345
6789101112
13141516171819
20212223242526
27282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

[1 Page]

TOTAL:3023

2025 (16)
1 (5)
2 (1)
3 (7)
4 (3)
2024 (30)
1 (2)
2 (2)
3 (1)
5 (1)
7 (2)
8 (2)
9 (3)
10 (4)
11 (8)
12 (5)
2023 (53)
1 (1)
2 (5)
3 (1)
4 (1)
5 (3)
6 (9)
7 (9)
8 (6)
9 (5)
10 (3)
11 (2)
12 (8)
2022 (16)
1 (1)
3 (2)
6 (2)
7 (1)
8 (4)
9 (2)
10 (1)
11 (2)
12 (1)
2021 (12)
1 (3)
2 (1)
6 (1)
8 (2)
9 (1)
10 (1)
11 (2)
12 (1)
2020 (18)
1 (2)
2 (6)
4 (1)
6 (1)
7 (2)
8 (2)
12 (4)
2019 (17)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
10 (1)
12 (2)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)