2022/2/1 (火)

diary/Kojima

・ガルおじの道楽(w

keizoku.jpg

2022/1/20 (木)

diary/Kojima

・伏見稲荷参詣

ちょっと古い話だけど、参詣した日付で登録。

実家は商売しているので、毎年伏見稲荷に参詣しているのだけど、 ここ2年ほどは新型コロナがらみでお祭りしている玉房大神がいらっしゃる一ノ峰まで参れてなかったので、 今年は久しぶりに頂上の一ノ峰まで登ってみることにした。

入国規制がらみで外国人観光客がいないので、通路は今まで経験したことないほど空いてたので、 ちと真面目にタイムトライアル(w

入口の大鳥居、10:42

fushimi_001.jpg

千本鳥居を経て、奥社 10:48

fushimi_002.jpg

京都市内が見渡せる四つ辻、11:04(写ってる時計は10分強遅れている模様)

fushimi_003.jpg

三ノ峰(下社)、11:07

fushimi_005.jpg

二ノ峰(中社),11:11

fushimi_004.jpg

頂上(一ノ峰), 11:13

fushimi_006.jpg

玉房大神参拝、11:21

fushimi_007.jpg

下り、御膳谷、11:35

fushimi_008.jpg

下り、四つ辻、11:38

fushimi_009.jpg

三つ辻から外縁回りで下って見かけた猫(w 11:48

fushimi_010.jpg

同 11:50

fushimi_011.jpg

ゴールの大鳥居、12:00

fushimi_012.jpg

ということで、一ノ峰の参拝にざっと1時間20分ほどかかったらしい。 途中、特に休むこともなく、自撮りしている障害物もほとんど無かったから、 これが多分ベストタイムだろうなぁ。。

道中、追い抜くばかりで抜かれることはほとんど無かったんだけど、 唯一、三ノ峰の手前で後ろからの軽快な足音に道を譲ったらクロネコの配達員さんで、 さすがに普段から鍛えているなぁ、、と感心したところ(w


2022/1/11 (火)

diary/Kojima

・「らじる★らじる」とステレオ放送

「らじる★らじる」の録音スクリプトであれこれ録音していて気づいたんだけど、 AMで放送しているラジオ第一(R1)/第二(R2)はモノラルで、FMはステレオというのは 電波に乗せる際の周波数変換の都合であって、 インターネット配信の「らじる★らじる」ではR1でもFMでも、 音源がステレオならばステレオのまま流れてくる模様。

「エア・チェック」世代のジジイは、AMとFMで同じ番組が流れる場合、当然のようにステレオなFMを選んでいたけど、 インターネット配信だと音源が同じならR1でもFMでも同じ音質でダウンロードできる模様。

# R2の語学講座とかは音源自体がモノラル化されているようで、番組内で紹介される楽曲もRLが同レベルになっているみたい

エア・チェック時代の記憶で、ついついR1/R2とFMで共通する番組(「音の風景」「名曲の小箱」「ラジオ深夜便」等)はFMで録ろうとしてたけど、 別にR1/R2で録っても問題ないみたい。


2022/1/8 (土)

diary/Kojima

SpamAssasin

データ自体は復旧したものの、Plamo-5.xのままだったメールサーバを最新版に入れ替える際、 SpamAssasin も最新版にしようとしてずいぶんハマってしまった。

前にメールサーバを組んだのは8年くらい前で、当時はまだまだSPAM対策にニーズがあったので情報等も潤沢だったものの、 最近ではSpamAssasinこそバージョンアップは続いているものの、 procmailはサイト自体無くなってるのにSpamAssasinの使い方のドキュメントには最初にprocmailが出てくるし、 DovecotやCyrus-Maildropを使う方法はなかなか見当らず、どうもGmailあたりのSPAMフィルターが優秀すぎて、 FOSSなSPAMフィルターの開発は停滞している印象。

まぁ、手元でもkojima@linet.gr.jpに届いたメールはGmailにforwardして、メールのチェック等はそっちで見て、 返事を書く時のみローカルの emacs + mew を立ちあげるみたいな使い方だったので仕方ない気もするものの、 やっぱり手元でもSPAMのフィルタリングできないと不便だなぁ、、とSpamAssasinのビルドに挑戦。

SpamAssasin自体は、Perlの強力なパターンマッチ機能を十二分に使ったPerlスクリプトで、 CPANからインストールすれば必要なモジュールも自動的にインストールしてくれるものの、 やはりディストリ的にはパッケージ化したいなぁ、、と思って、関連するPerlのパッケージを順に作っていったら、 SpamAssasinも含めて65ほどのパッケージを作るハメになってしまった。。 orz

後で contrib の方にでも上げておこうかと思っているけど、とりあえずこれだけ作るハメになった、というリスト

perl_Archive_Tar-2.40-x86_64-B1.tzst             perl_IP_Country_DB_File-3.03-x86_64-B1.tzst
perl_Archive_Zip-1.68-x86_64-B1.tzst             perl_LWP_MediaTypes-6.04-x86_64-B1.tzst
perl_BSD_Resource-1.2911-x86_64-B1.tzst          perl_MailTools-2.21-x86_64-B1.tzst
perl_B_COW-0.004-x86_64-B1.tzst                  perl_Mail_AuthenticationResults-2.20210915-x86_64-B1.tzst
perl_Clone-0.45-x86_64-B1.tzst                   perl_Mail_DKIM-1.20200907-x86_64-B1.tzst
perl_Crypt_OpenSSL_Guess-0.14-x86_64-B1.tzst     perl_Mail_SPF-v2.9.0-x86_64-B1.tzst
perl_Crypt_OpenSSL_RSA-0.32-x86_64-B1.tzst       perl_Mail_SPF_Query-1.999.1-x86_64-B1.tzst
perl_Crypt_OpenSSL_Random-0.15-x86_64-B1.tzst    perl_Mail_SpamAssassin-3.4.6-x86_64-B1.tzst
perl_DBD_SQLite-1.70-x86_64-B1.tzst              perl_Math_Int64-0.54-x86_64-B1.tzst
perl_DBI-1.643-x86_64-B1.tzst                    perl_Module_Build-0.4231-x86_64-B1.tzst
perl_DB_File-1.856-x86_64-B1.tzst                perl_Module_Build_Tiny-0.039-x86_64-B1.tzst
perl_Digest_HMAC-1.04-x86_64-B1.tzst             perl_Mozilla_CA-20211001-x86_64-B1.tzst
perl_Digest_SHA1-2.13-x86_64-B1.tzst             perl_NetAddr_IP-4.079-x86_64-B1.tzst
perl_Encode_Detect-1.01-x86_64-B1.tzst           perl_Net_CIDR_Lite-0.22-x86_64-B1.tzst
perl_Encode_Locale-1.05-x86_64-B1.tzst           perl_Net_DNS-1.33-x86_64-B1.tzst
perl_Error-0.17029-x86_64-B1.tzst                perl_Net_DNS_Resolver_Mock-1.20200215-x86_64-B1.tzst
perl_ExtUtils_CBuilder-0.280236-x86_64-B1.tzst   perl_Net_DNS_Resolver_Programmable-0.009-x86_64-B1.tzst
perl_ExtUtils_Config-0.008-x86_64-B1.tzst        perl_Net_HTTP-6.21-x86_64-B1.tzst
perl_ExtUtils_Helpers-0.026-x86_64-B1.tzst       perl_Net_SSLeay-1.90-x86_64-B1.tzst
perl_ExtUtils_InstallPaths-0.012-x86_64-B1.tzst  perl_Sub_Uplevel-0.2800-x86_64-B1.tzst
perl_ExtUtils_MakeMaker-7.64-x86_64-B1.tzst      perl_Sys_Hostname_Long-1.5-x86_64-B1.tzst
perl_File_Listing-6.14-x86_64-B1.tzst            perl_Test_Exception-0.43-x86_64-B1.tzst
perl_Geo_IP-1.51-x86_64-B1.tzst                  perl_Test_Fatal-0.016-x86_64-B1.tzst
perl_HTML_Parser-3.76-x86_64-B1.tzst             perl_Test_Needs-0.002009-x86_64-B1.tzst
perl_HTML_Tagset-3.20-x86_64-B1.tzst             perl_Test_RequiresInternet-0.05-x86_64-B1.tzst
perl_HTTP_Cookies-6.10-x86_64-B1.tzst            perl_TimeDate-2.33-x86_64-B1.tzst
perl_HTTP_Daemon-6.12-x86_64-B1.tzst             perl_Time_HiRes-1.9764-x86_64-B1.tzst
perl_HTTP_Date-6.05-x86_64-B1.tzst               perl_Try_Tiny-0.31-x86_64-B1.tzst
perl_HTTP_Message-6.35-x86_64-B1.tzst            perl_WWW_RobotRules-6.02-x86_64-B1.tzst
perl_HTTP_Negotiate-6.01-x86_64-B1.tzst          perl_YAML_LibYAML-0.83-x86_64-B1.tzst
perl_IO_Socket_SSL-2.073-x86_64-B1.tzst          perl_inc_latest-0.500-x86_64-B1.tzst
perl_IO_String-1.08-x86_64-B1.tzst               perl_libwww_perl-6.60-x86_64-B1.tzst
perl_IO_Zlib-1.11-x86_64-B1.tzst

すごく細かくモジュールが分割されていて関連パッケージを拾っていくのが大変だったんだけど、 これってPerlの方針なんだろうなぁ。。


2021/12/18 (土)

diary/Kojima

・「らじる★らじる」の録音用スクリプト

を動かしていたHDDがトラぶって、あわてて UTF-8 な環境で動かすように書き替えたバージョンを GitHubに上げといたので、興味ある人はそちらの方で入手ください。


2021/12/17 (金)

diary/Kojima

2021/11/29 の10時前に、1分ほどの停電があり、その後、plamo.linet.gr.jp をホスティングしている マシンのHDDが起動できなくなった。

Plamo LinuxのFTP用のディレクトリや、plamo.linet.gr.jp の各ユーザ用のホームディレクトリは、 別のHDDに置いていたので大丈夫だったものの、/etc/passwd とかは起動できないHDD内だったので、 とりあえず専門業者に依頼して復旧待ち。

幸いなことに、クリーンルーム的な作業までは必要なくHDDの内容が復旧できたので、 /etc/passwd 等も無事回収できた。

ただ、従来の plamo.linet.gr.jp は、かなり古い環境(Plamo-5.xのころ)のままで、locale も ja_JP.eucJP だったりして、 最近のPlamo環境からは使いづらくなっていたので、この機会に最新の Plamo-7.3ベースに更新しようとしたら、 この pukiwiki 回りでずいぶんハマってしまった。

あれこれ調べたところ、pukiwikiは最新の 1.5.x でも PHP-7.4.x までしか対応しておらず、 Plamo-7.3系の PHP-8.x では動かないようなので、とりあえず PHP-7.4.26 をビルド、 インストールして pukiwiki-1.5.3 を動かし、 euc-jp だった旧コンテンツも文字コードをutf-8に変換して読み込めるようにしたところ。


2021/3/28 (日)

diary/Kojima

・Plamo用依存関係チェックツール

ちとバタバタしているので、詳しく書く余裕が無いのだけれど、Plamo Linux用のライブラリ依存関係チェックツールを紹介。ちょうどこのあたりの話題を「続・玩式草子」の方に書きかけてるんで、そっちも参照していただければ幸い。

/usr/bin/ 等にあるELF形式のバイナリファイルをlddして、それぞれに必要なライブラリをDB(depends.sql3)に登録するためのツール。ファイル形式のチェックに libmagic を使っているので、実行前には "pip install python-magic" が必要。一部、root権限でしか読めないファイルがあるので、実行時にはsudoを使うかrootになる必要あり。

上記コマンドで作成したdepends.sql3から、あるバイナリファイルに必要なライブラリや、あるライブラリを参照しているバイナリファイルをチェックするツール

例えば ffmpeg が提供する libavformat.so.xxx を使っているバイナリをチェックするには、"-r avformat" と指定する。

 $ ./query_depends.py -r avformat
 /usr/lib/libavformat.so.57 used by these binaries
   libavdevice.so.57.10.100(/usr/lib/libavdevice.so.57.10.100)
   libavfilter.so.6.107.100(/usr/lib/libavfilter.so.6.107.100)
   ffprobe3.4(/usr/bin/ffprobe3.4)
   ffplay3.4(/usr/bin/ffplay3.4)
   ffmpeg3.4(/usr/bin/ffmpeg3.4)
   ffserver3.4(/usr/bin/ffserver3.4)
 /usr/lib/libavformat.so.58 used by these binaries
   libavdevice.so.58.8.100(/usr/lib/libavdevice.so.58.8.100)
   libmpv.so.1.107.0(/usr/lib/libmpv.so.1.107.0)
   libavfilter.so.7.57.100(/usr/lib/libavfilter.so.7.57.100)
   ffaudio.so(/usr/lib/audacious/Input/ffaudio.so)
   libavio_plugin.so(/usr/lib/vlc/plugins/access/libavio_plugin.so)
   libavformat_plugin.so(/usr/lib/vlc/plugins/demux/libavformat_plugin.so)
   libgstlibav.so(/usr/lib/gstreamer-1.0/libgstlibav.so)
   ff-save.so(/usr/lib/gegl-0.4/ff-save.so)
...

一応、"-h"オプションは仕込んでいるので詳細はそっちを参照してください。

"ldd"ではなく"readelf -d"を使って必要なライブラリを調べ、elfdepends.sql3 というDBに登録するツール。"ldd"だと芋ヅル式に必要なライブラリが出てくるけど、こっちは実際にバイナリファイルに書き込まれているライブラリをチェックするので、バイナリファイルの更新時はこっちを見る方が確実かも。

elfdepends3.sql3を調べてあるバイナリに必要なライブラリやあるライブラリを参照しているバイナリをチェックするコマンド。オプションはquery_depends.pyと少し違うので、詳細は"-h"でチェックすること。


2021/1/8 (金)

diary/Kojima

・NHKラジオ聴き逃しサービスのダウンロード

NHKラジオの聴き逃し配信サービスのデータをダウンロードするようなコード(get_ondemand3.py)を書いてみた. 基本 Python + ffmpeg で使えるけど,Python 用の tag アクセスモジュール mutagen も 組み込んでおけば,タイトルや出演者等をMP4のタグとして書き込むので便利.

mutagen は PIP で組み込める(python -m pip install mutagen)けど, Plamo用のパッケージもこのページに添付しておく(一番下).

# get_ondemand3.py も同じところにある.

使い方はこんな感じ.

NHKのサイトの[ラジオ]=>[聴き逃し]の一覧ページから, ダウンロードしたい番組を選択.

NHK_01.jpg

その番組内で,聴き逃し配信されている回が一覧表示されるので, ダウンロードしたい回にマウスを合わせて「右」クリックし, "copy link location" をクリックして, その回のURL(正確に言うとオンラインなメディアプレイヤーの引数)を入手する.

# 左クリックだとオンラインでの再生プレイヤーが起動するので注意

NHK_02.jpg

別に開いておいたターミナル上で [右クリック]=>[貼り付け] (あるいは中ボタンクリック)すると,

 javascript:openPlayer('p=6311_01_2495539')

こんなURLが得られるので,これを引数に指定して get_ondemand3.py を起動する. なお,このURL中にはbashが解釈する特殊文字("()")が含まれているので, そのままだとbashのエラーになるため,前後をクォートする必要がある.

$ ./get_ondemand3.py 'javascript:openPlayer('p=6311_01_2495539')'

# 実は ./get_ondemand3.py p=6311_01_2495539 だけでいい.

この指定で,get_ondemand3.py は

 https://www.nhk.or.jp/radioondemand/json/<6311>/bangumi_<6311>_<01>.json

みたいなURLから番組の配信情報を入手し,該当する回(2495539)のダウンロード用URLを見つけ, ffmpegを使ってHLS(HTTP Live Streaming)経由でMP4形式の音声データをダウンロードする. なお,ダウンロード用URLはHTTPS経由になるため,ffmpegにOpenSSLかGnuTLSを組み込んでおく必要がある. 手元のffmpegはGnuTLSを組み込んでいる.

 $ ffmpeg --version
 ffmpeg version 4.2.3 Copyright (c) 2000-2020 the FFmpeg developers
   built with gcc 9.3.0 (GCC)
   configuration: --prefix=/usr --mandir=/usr/share/man --enable-gpl --enable-version3
    --disable-static --enable-shared --disable-debug --enable-libass --enable-libfreetype
    --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx
    --enable-libx264 --enable-libx265 --enable-libwebp --enable-libpulse --enable-libspeex
    --enable-libv4l2 --enable-libxvid --enable-gnutls --disable-libfdk-aac --disable-nonfree
    --docdir=/usr/share/doc/ffmpeg-4.2.3

実行例はこんな感じ.

 $ ./get_ondemand3.py 'javascript:openPlayer('p=6311_01_2495539')'
 program:6311  series:01  number:2495539
 {'aa_contents_id': '[radio]vod;おしゃべりな古典教室「山姥(やまんば)」(2);r2,130;2021010875327;
  2021-01-08T09:30:00+09:00_2021-01-08T09:45:00+09:00',
  'aa_measurement_id': 'vod',
  'aa_vinfo1': 'おしゃべりな古典教室「山姥(やまんば)」(2)',
  'aa_vinfo2': 'r2,130',
  'aa_vinfo3': '2021010875327',
  'aa_vinfo4': '2021-01-08T09:30:00+09:00_2021-01-08T09:45:00+09:00',
  'close_time': '2021-01-15T09:45:00+09:00',
  'file_id': '2495539',
  'file_name': 'https://nhks-vh.akamaihd.net/i/radioondemand/r/6311/s/stream_6311_1337882d26dd972c5f4f53859ba4e39e.mp4/master.m3u8',
  'file_title': 'おしゃべりな古典教室「山姥(やまんば)」(2)',
  'file_title_sub': '【出演】木ノ下裕一,小芝風花',
  'headline': None,
  'headline_sub': None,
  'onair_date': '1月8日(金)午前9:30放送',
  'open_time': '2021-01-08T09:45:00+09:00',
  'seq': 1,
  'share_url': 'https://nhk.jp/radio/?p=6311_01_2495539'}
 file_path:2021-01-08_09-30_おしゃべりな古典教室「山姥(やまんば)」(2).mp4 
 file_url:https://nhks-vh.akamaihd.net/i/radioondemand/r/6311/s/stream_6311_1337882d26dd972c5f4f53859ba4e39e.mp4/master.m3u8
 tags
 {'album': 'おしゃべりな古典教室「山姥(やまんば)」(2)',
  'comment': '1月8日(金)午前9:30放送 おしゃべりな古典教室「山姥(やまんば)」(2) 【出演】木ノ下裕一,小芝風花',
  'date': '2021-01-08_09-30',
  'title': 'おしゃべりな古典教室「山姥(やまんば)」(2)'}

ダウンロードしたデータは,"放送日_開始時刻_番組タイトル.mp4" というファイルに保存される.

 $ file 2021-01-08_09-30_おしゃべりな古典教室「山姥(やまんば)」(2).mp4 
 2021-01-08_09-30_おしゃべりな古典教室「山姥(やまんば)」(2).mp4: ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]

一応,拾ってきたデータから,各種情報をタグに書き込むようにもしてみた.

 $ mutagen-inspect 2021-01-08_09-30_おしゃべりな古典教室「山姥(やまんば)」(2).mp4 
 -- 2021-01-08_09-30_おしゃべりな古典教室「山姥(やまんば)」(2).mp4
 - MPEG-4 audio (AAC LC), 900.14 seconds, 46002 bps (audio/mp4)
 &#169;alb=おしゃべりな古典教室「山姥(やまんば)」(2)
 &#169;cmt=1月8日(金)午前9:30放送 おしゃべりな古典教室「山姥(やまんば)」(2) 【出演】木ノ下裕一,小芝風花
 &#169;day=2021-01-08_09-30
 &#169;nam=おしゃべりな古典教室「山姥(やまんば)」(2)
 &#169;too=Lavf58.29.100

タグの情報はvlcの「メディア情報」等でも表示できる.

NHK_03.png

やってることはjsonデータの解析程度で,実処理はffmpegに丸投げしているだけのコードだけど, 結構便利だと思うし,気付いた情報はコメントで書き込んでいるので,興味ある人は試してみて.


2020/12/3 (木)

diary/Kojima

いつの間にか、今年も年末、、、

・samba-4.x 系の設定

久しぶりにsambaのサーバを立てようと、/etc/rc.d/init.d/samba を chmod +x して、 /etc/samba/smb.conf.dist から smb.conf を作って、公開したいディレクトリの 設定だけして動かしてみたところ、ローカルでは

# mount -t cifs //localhost/samba /mnt -o user=kojima,password=XXXX 

でマウントできるけど、手元のAndroid タブレットの Solid Explorer や ComittoNxN からは「不明なエラーが発生しました」とか言われて、公開しているはずのディレクトリが見えない。

あれれ、、と思って、smb.conf のログレベルをあげてやりとりを追いかけてみたところ、Android 機からのアクセスは、

 Server exit (no protocol supported
  )

とか言われて切れてしまう。

これはどうやらSMBプロトコルのバージョンの問題っぽいなぁ、、とググりつつ、smb.conf をあれこれイジってみたところ、

server min protocol = NT1

という指定を追加すれば無事接続できるようになった。

以前、samba-3.x系でサーバを立ててた時は、この設定がデフォルトだったようで、Android機からも問題なく接続できたものの、samba-4.x系では SMB2 がデフォルトになっているようで、SMB2 以降に対応していない古いアプリは接続を拒否されていた模様。

Android側もSMB2に対応したアプリに更新するのが筋とは思うものの、愛用しているコミックビューワー Comitto NxN の更新が途絶えているので、古いプロトコルで使わざるを得ないかなぁ、、という所。


2020/4/20 (月)

diary/Kojima

・audacious の soundfont 設定

何かシンプルなメディアプレイヤーが無いかなぁ、、と探していたところ、audaciousというのを見つけてパッケージ化してみた。

audacious はfluidsynth経由でMIDIファイルも再生できるものの、デフォルトでは「サウンドフォントが設定されていない」という表示がでて音が出ない。

audacious_01.jpg

この場合、タブの[Services]=>[Plugin]=>[Input]を開いて、[AMIDI-Plug(MIDI Player)]の設定メニューを開き、

audacious_02.jpg

[SoundFont]の設定欄に /usr/share/soundfont/default.sf2 を指定してやれば OK。

audacious_03.jpg

「指定された楽器が無いから代用する(fluidsynth: warning: Instrument not found on channel 10 [bank=8 prog=27], substituted [bank=0 prog=27])」みたいなメッセージはよく出るけど、まぁ普通に聞く分には問題ないくらいの音はしていると思ふ。

audacious_04.jpg


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS