SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|

2004-12-29(Wed) 東京ミレナリオ、ミレナイヨ

  年の瀬の恒例行事となりつつある「東京ミレナリオ」を見に行く。カミさんはオイラより1日休みが遅いので、仕事が終わったあたりで都内で合流する予定。よって当然(!?)、秋葉で買い物をする時間を確保するオイラである。

  画像の説明

  ……が!! なんか雪がガッツリと降ってるんですが……見事なまでの雪景色。駅なんか「A列車で行こう」シリーズの冬景色そのままになっております……などと考えるオイラはオカシな人なのだろうか。そういえば、あのゲームは雪で列車が遅延したりする要素はなかったなぁ。今日の常磐線は大丈夫なのだろうか。

  画像の説明

  などという心配をよそに、順調に秋葉原へ。最近はそんなに買うものはないので、例によって買い物はちょっぴり。サクサク終わらせ、カミさんと合流「クアアイナ」というハワイ系ハンバーガ屋に向かう。このハンバーガ屋、ハンバーガといえどファーストフードではなくて結構シッカリと食わせてくれる。肉もガツーンとマッシブでウマい。ポテトもサクサクである。値段も倍ぐらいするのでマメには行けないのだが、ま、それはそうクリスマスということで。

  で、地下鉄の改札を出たあたりでイキナリ「今日のミレナリオは荒天のため中止」という張り紙を発見。ガガーン。中止かよー、すいよー、もくよー……。それほど気合を入れているワケでもないので、それほどショックではないのだが、せっかくきたのにそりゃないべ。すっかり雪も上がっているし、観に来たっぽい人々も結構いるのだが、中止は中止。しかたなく、適当にデジカメで写真を撮る。

  画像の説明

  でもって、くやしいのでレタッチしてしまう。どーだ、この出来栄え。デジカメに書き戻せばアリバイ工作に使えそうである。

  画像の説明

  しかしこのミレナリオ、毎年同じようなイベントでよいのだろうか? オイラ的には、音楽にあわせて点滅したり、電球が部分的に動いたり、すべてLEDにしてみたり……という様な変化を求めてしまうのですが。毎年そんなうすっぺらなイベントでいいのかッ!?

  画像の説明

  て、横から見たらホントに「うすっぺら」ですからーッ!! 残念ッ!! とそんなオチをつけつつ、今日の買い物リストである。

  画像の説明

秋月電子通商
シリアルEEPROM AT24C1024\700x2\1,400
シリアルEEPROM AT24C256\160x2\320
単3x4電池ホルダ\150
携帯電話用イヤホンマイク\100
トライアック万能調光器キット(35A)\1,000
\2,970

  シリアルEEPROMと単3x4電池ホルダはちょっとした緊急プロジェクトのためのアイテムである。1024bitモノと256bitモノでは見た目が同じだが値段が違うし迫力も違う。上の写真からも後光を感じることであろうが、それは決して気のせいではない。携帯電話用イヤホンマイクは前回も買ったが今回は職場用。電話しながらキーを叩くシチュエーションが多いんだよね。調光器キットもそのうちマイプロジェクトで使う予定。帰って必要以上の容量を持つバージョンを買ってしまったことに気づいてショック。400円も無駄してしまった。ちゃんと考えて買わんんとなぁ。反省。


2005-12-29(Thu) 次期PCを購入してみる

  とりあえず

  画像の説明


2008-12-29(Mon) tdiaryバージョンアップ

  サーバ移行に伴い、tdiaryをバージョンアップ。意外と変更が多くて、手間取る。なにより、もう少しマジメに日記を書かなきゃなぁ。

  それはそうと、以前から欲しかった、虎の敷物が届いた(正確には豹だけど)。さっそく、タイガーマスクっつーか、牙一族っつーか、グインっつーか……を気取ってみる。

  画像の説明


2012-12-29(Sat) そろそろソロ

  しばらく前からS字飛行をやるやるといいつつ、強風でできない日が続いていたが、年の瀬にまさかの絶好の日より。

  以下は、先日、強風であおられつつも無理矢理に飛んだ様子。飛ぶのは6:30頃から。動画からは伝わってこないが、飛ぶ前には、渾身の力で飛ばされないようにグライダを抑えている。

 

  今日は風に恵まれ、15本以上飛び、ほぼS字を習得。冬にもかかわらず、汗かいて1リットルほど給水しつつ、飛び納め。


2016-12-29(Thu) mp3のタグの文字化けをなんとかする

  ここのところ、起き抜けと、寝しなに、ミニコンポで音楽のある生活を送っている。基本的にDLNAサーバに放り込んでから聴いているのだが、いまだ手持ちのCDのすべてを放り込めていない。とはいえ、以前に自作したflacのタグ編集ツールにより、放り込み作業自体はとても快適に進められている。

  最近の問題はmp3だ。過去に借りたCDなどをmp3化したものが少しあるのだが、既存のタグを修正したいのに、できないのだ。いや、厳密にはLinuxにはid3v2というタグ編集ツールがあるのだが、それでタグ付けすると日本語が文字化けしてしまうのだ。

  「mp3 タグ 文字化け」で検索するといろいろと引っかかるのだが、シフトJISがどうとか、エンコーディングが規定されていないとか、情報が錯綜している。共通するのは、スカッと解決した事例がないこと。

  改めて調べてみると、以下のようなことがわかった。

・mp3のタグはID3と呼ばれる
・ID3には、v1とv2がある
・ID3v1は固定長で128バイト、ファイル末尾に位置、文字エンコーディングの規定なし
・ID3v2は可変長で、ファイル先頭に位置
・ID3v2には、ID3v2.2、ID3v2.3、ID3v2.4がある
・ID3v2.2は、UTF-16が使用可能
・ID3v2.3は、UTF-16が使用可能、ID3v2.2と互換性がないが、最も普及している
・ID3v2.4は、UTF-8も使用可能、普及していないらしい

  ID3v2からは、規格上キチンと日本語に対応しているはずなのだが、なぜか文字化けしてしまう。id3v2というタグ編集ツールの問題を疑い、適当に日本語を付与し、バイナリダンプしてみると、中身はUTF-8で記録されている。パッと見、ヘンではない。

  なるほど、ID3v2.4だから、コンポ側が対応していないせいで文字化けしているのか、と思ったら、ID3ヘッダはID3v2.3を示していた。その場合、UTF-16である必要がある。ダメじゃん。つまり、アレだ。元が海外のツールだから、文字エンコーディングに関してロクにテストしておらず、バグっている、というわけなのだな。

  どうも、何をやってもダメそうなので、ソースコードを修正してやろうかとも思ったのだが、Cを読むのがダルい。Rubyのライブラリがあるらしいので、自作しようと思ったが、ライブラリの導入が面倒くさそう。うーむ、ID3v2.2の仕様書をちょっと見た限りでは、さほど複雑そうでもないので、ぜんぶ自分で実装してしまうか。

  やりたいことは、既存のmp3ファイルの存在するフォルダから、曲目リストを作成することと、修正した曲目リストから、既存のmp3ファイルのタグを付け直すこと。実は、前者は「mget」、後者は「tagmp3」として既に完成しているので、そいつが呼んでいるバグ付きの「id3v2」と、ほぼ同等の動作をしバグのない「mp3id3」というツールを実装すればいい。

  というわけで実装完了。実は、手持ちのmp3の多くは、WindowsのiTunesでエンコードしたものがほとんどであり、それらのタグはID3v2.2で記録されていたので、その読み出しにも対応させた。ID長などが変わっていてマジで互換性がない。まぁ、策定から時間が経っているとはいえ、先が見えないアホが規格を作るとアホなことになるという見本だな、これは。

  使い方はこう。

$ ls -l
-rw-r--r-- 1 user user  725343  6月  9  2007 '1-01 サーカスの来た日.mp3'
-rw-r--r-- 1 user user 3788568  6月  9  2007 '1-02 サンフランシスコ.mp3'
-rw-r--r-- 1 user user 4763695  6月  9  2007 '1-03 踊るダメ人間.mp3'
-rw-r--r-- 1 user user 3712079  6月  9  2007 '1-04 日本印度化計画.mp3'
-rw-r--r-- 1 user user 1421263  6月  9  2007 '1-05 じーさんはいい塩梅.mp3'
-rw-r--r-- 1 user user 2800086  6月  9  2007 '1-06 マタンゴ.mp3'
-rw-r--r-- 1 user user 3972468  6月  9  2007 '1-07 詩人オウムの世界.mp3'
-rw-r--r-- 1 user user 3472591  6月  9  2007 '1-08 元祖高木ブー伝説.mp3'
-rw-r--r-- 1 user user 4807150  6月  9  2007 '1-09 生きてあげようかな.mp3'
-rw-r--r-- 1 user user 4565577  6月  9  2007 '1-10 サボテンとバントライン.mp3'
-rw-r--r-- 1 user user 5641380  6月  9  2007 '1-11 これでいいのだ.mp3'
-rw-r--r-- 1 user user 4562279  6月  9  2007 '1-12 僕の宗教へようこそ ~Welcome to my religi.mp3'
-rw-r--r-- 1 user user 4863974  6月  9  2007 '1-13 キノコパワー.mp3'
-rw-r--r-- 1 user user 5333356  6月  9  2007 '1-14 戦え! 何を!_ 人生を!.mp3'
-rw-r--r-- 1 user user 6772376  6月  9  2007 '1-15 月とテブクロ.mp3'
 
$ mget . > .info
 
$ viorg .info 
 
$ diff .info.org .info
1c1
< _ALBUM_: 復活究極ベスト "大公式" [Disc 1]
---
> _ALBUM_: 81:復活究極ベスト "大公式" [Disc 1]
4c4
< _GENRE_: (9)
---
> _GENRE_: Rock
 
$ cat .info | tagmp3
 
$ mp3id3 -l *.mp3
id3v2 tag info for 1-01 サーカスの来た日.mp3:
TPE1: 筋肉少女帯
TALB: 81:復活究極ベスト 大公式 [Disc 1]
TIT2: 01:サーカスの来た日
TCON: Rock
TYER: 1989
TRCK: 1/15
 
id3v2 tag info for 1-02 サンフランシスコ.mp3:
TPE1: 筋肉少女帯
TALB: 81:復活究極ベスト 大公式 [Disc 1]
TIT2: 02:サンフランシスコ
TCON: Rock
TYER: 1989
TRCK: 2/15
 :
 
$ rm -f *.org
 
$ find . -name "*.mp3" | sort | sed "s/^/mpg123 \"/" | sed "s/$/\"/" | sh
Playing MPEG stream 1 of 1: 1-01 サーカスの来た日.mp3 ...
 
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
Title:   01:サーカスの来た日                     Artist: 筋肉少女帯
Album:   81:復活究極ベスト 大公式 [Disc 1]
Year:    1989                            Genre:  Rock
 :

  パッケージを置いておく。

  と、そういえば、冒頭に「以前に自作したflacのタグ編集ツールにより」などと書いたが、公開してなかったことに気づいた。上記のパッケージに含まれている「cget」「tagflac」というのがそれ。

  「cget」は、先の「mget」と似ているが、ローカルのmp3ファイルからではなく、CDのトラック情報を元に、外部のCDのデータベース「gracenote」から曲目リストを得るもの。ただし、利用にはgracenoteの開発者登録が必要で、あらかじめcget.confにクライアントIDを設定しておく必要がある。

  「tagflac」は、先の「tagmp3」と同等のもので、修正した曲目リストから、既存のflacファイルのタグを付け直すもの。どちらも、扱う曲目リストのフォーマットには互換性を持たせてある。

  使い方は(CDをセットしてから)こう。

$ cget > .info
 
$ cat .info
_#TOC_: 150 12165 42912 97717 108597 154367 178877 215317 245492
 
_ALBUM_: データイースト・ゲーム・ミュージック
_ARTIST_: Data East
_GENRE_: Soundtrack
 
カルノフ
チェルノブ -戦う人間発電所-
サイコニクス・オスカー
ダーウィン 4078 (アレンジ・バージョン)
スーパー・リアル・ダーウィン
ヘビー・バレル
ポケット・ギャル
ワンダー・プラネット
 
$ cdparanoia -B
cdparanoia III release 10.2 (September 11, 2008)
 
 
Ripping from sector       0 (track  1 [0:00.00])
	  to sector  245341 (track  8 [6:42.24])
 
outputting to track01.cdda.wav
 
 (== PROGRESS == [                              | 012014 00 ] == :^D * ==)   
 :
Done.
 
$ eject
 
$ flac -8 *
flac 1.3.1, Copyright (C) 2000-2009  Josh Coalson, 2011-2014  Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.
 
track01.cdda.wav: wrote 16148406 bytes, ratio=0.571
 :
rm -f *.tag; metaflac --list *.flac | grep -i comment | less
 
$ viorg .info 
 
$ diff .info.org .info
3,5c3,6
< _ALBUM_: データイースト・ゲーム・ミュージック
< _ARTIST_: Data East
< _GENRE_: Soundtrack
---
> _ALBUM_: 01:データイースト・ゲーム・ミュージック
> _ARTIST_: DATA EAST
> _DATE_: 1988
> _GENRE_: Game Music
 
$ cat .info | tagflac

  余談だが、ちょっと前に「ギャラクティックストーム」というタイトーのゲームのサウンドトラックを購入した。作曲はダライアスやニンジャウォリアーズのOGR氏だし、やたらネット上の評価も高いのだが、未プレイのゲームの曲ってのもなぁ、と躊躇していた。んが、Amazonでmp3形式で配信しているのを知り、先日、製作したPC用スピーカで試聴してみると、意表を突く節回しが心地よく、未プレイであることなどどうでもよくなってしまった。

  以前のAmazonのmp3配信は、妙な形式でのダウンロードを強要され、mp3を取り出すのにひと手間が必要だったような気がするが、今はシンプルにzipでまとめられたmp3をダウンロードできるし、ブラウザで直接に聴くことまでできて、なにひとつ不満はない。これに上記の「既存のmp3ファイルのタグを付け直せるツール」が加わったことで、最強の環境になったと言えよう。

  もうひとついうと「ギャラクティックストーム」の「オリジナルサウンドトラック」の購入は、アレンジ盤である「ギャラクティックストーム~瞳の記憶~」の購入の布石だったりする。なにせ、似たような位置関係にある「メタルブラック」のアレンジ盤である「メタルブラック-The-First-」は、気がつくともう10年以上も聴いているお気に入りだったりするからな……のだが、なぜかAmazonでは配信されていない。

  moraでなら配信されているのだが……aac形式なんだよなぁ。いや、別にaacでもいいんだが、それは、次に「aacのタグの付け直しツール」も作らねばならんということを意味するわけで……とほほ。


2020-12-29(Tue) 2020年の年の瀬

  気がつけば、昨年に引き続き、今年も工作やプログラミングは控えめに、ロジカルよりフィジカルな方面に舵を切った一年だった気がする。

  今年は年頭から、新型コロナの影響で、いろいろと行動に制限が生じたものの、自宅でのテレワークがメインとなり、逆に運動に目覚めたのが大きな成果だったかな。体重はスルスルと落ち、腹回りのダラしなさはなくなり、腹筋が浮き出てきつつある。いわゆる「細マッチョ」にカテゴライズされるレベルだろう。鏡で見ても十分にカッコよく、とても気分がいい。

  画像の説明

  とりあえず、歌に運動にと忙しい毎日だが、来年も何か新しいことを始めることになったりするのだろうかなぁ。


2021-12-29(Wed) トルクレンチを試す、タワーバーを外してみる、uWSGIを動かす

  実は、アレコレの工具と一緒に、トルクレンチも購入していたのであった。ロードスターのホイール・ナット締付けトルクである108〜147(Nm)を上限に、できるだけ下の方までと欲張ったら上記の製品になった。どうやら自転車用のようであるが。

  画像の説明

  トルクレンチという存在はだいぶ前から知っていたが、使ったことがなく、使ってみたかったので買ってみた。21mmソケットも手に入ったので、イザ、既に固く締まっているホイールナットに掛けて40Nmで締めてみよう……と、思ったら、トルクレンチのハンドルがホイールの凸凹に干渉してしまう。ソケットのエクステンションって、意外と必要なんだな。ソケットレンチセットを買っておいてよかった。では、改めて。

  「コキンッ」。なるほど、こういう感触なのか。わかりやすい。70Nmでも締めてみる。「コキンッ」。70Nmでも、そう大きな力じゃないんだな。説明書に「下限付近だとクリック感が小さい」と、あったので、7Nmでも試してみるが、十分なクリック感である。へー。そのうち、バネ秤でも手配して、簡易に校正でもしてみたいもんである。

  で、何となく、工具を使ってみたくて、ロードスターのタワーバーを外してみた。それだけでも、いろいろ気づくことがあった。

  画像の説明

  ソケットのエクステンションなしだと周囲に当たりがち、とか、ナットを落としたらすごく面倒そう、とか、整備書はクリアファイルに入れておくといい、とか、クリアファイルに付箋を貼っておくとメモできていい、とか、部品の向きを保持するならラベルを貼るといい、とか、ラベルには養生テープと油性ペンがいい、とか、である。

  そのうち実施するであろうレンタルピットでの作業に向けて、ノウハウを増やしておこう。

  と、ここで大きく話が替わるが、もしかしたら、仕事でNGINXとPythonを組み合わせて使うかもしれない、という流れがあるので、ちょっとお試ししてみることにした。基本、ApacheとRuby派なので、どっちもアウェーである。

  まぁ、しかし、勝手がわからない。NGINXとPythonを組み合わせるということは、NGINXとuWSGIとPythonとFlaskを組み合わせるということと同義だ。特にuWSGIがわからない。自分は、できるだけFedoraのオフィシャルパッケージを使いたいし、それを意図されたとおりに使いたい主義なので、そのへんのウェブ上のノウハウは役に立たず、パッケージャの意図を読み取る必要がある。Emperorモードってなんなんだよ。

  で、だいぶ、右往左往させられたが、ようやく動くようになって、コンテナにまとめることができた。

  なかなか理解が進まなかった理由が、uWSGIの設定が多くて意味不明なこと、UNIXドメインソケットでつなぐと、通信の中身を知る方法がなく、切り分けが進まないこと、WSGIの仕様がよくわからず、telnet接続して試せないこと、あたりだ。TCPでつなぐことも可能だったので、まずはそれで進めたところ、tcpdump等で切り分けが進んで、どうにか全貌を理解することができた。結局、/etc/uwsgi.dの下に置くwsgi.iniの内容は以下で済んだ。

[uwsgi]
plugin = python3
chdir = /var/lib/uwsgi
wsgi-file = wsgi.py
callable = app
socket = /run/uwsgi/wsgi.sock
chmod-socket = 666
logto = /var/lib/pv/log/uwsgi/%n.log

  というようなことも、間違いなく動作するスケルトンコンテナにまとめてしまえば、瞬時に理解できる。というわけで、コンテナの定義ファイル一式を置いておく。


2024-12-29(Sun) ヴァリアブル・ジョイスティック「JS-2V」を製作

  さて、しばらく前にセイミツの業務用アーケードスペックのジョイスティックとボタンを購入したのだが、ガワの手配に悩んでいた。金属ではなく木材がいい。手が冷えるのはイヤだし、加工もラクなので。で、昨日、ホームセンタで材料を買ってきた。

  画像の説明

  手頃なサイズでフタ付きの木箱が欲しかったのだが、そんなに都合の良いものはなかった。しかたなく、手頃なサイズ、300x200のMDFパネルを天板にすることにし、足として端材をくっつけることにした。端材の幅は45。ジョイスティックのメカ部の格納には40チョイの高さが必要なので45はちょうどいい。178円と58円。仮組み用でも構わない値段だ。

  まずは足を付ける。端材の両端を150で落とし3分割。MDFパネルの裏に両面テープで位置決めして、皿タッピングで固定。寿司下駄ができあがった。元の端材の加工精度は高く、ほぼガタ付きはない。これ、普通にイケるなぁ。

  Φ29のホールソーでジョイスティックを取り付ける穴を空ける。ジョイスティックを固定する周囲のネジはΦ5。とりあえず適当なネジで固定したが、ここには後でステンのトラスネジを奢りたいな。

  自分の指の配置に合わせボタンを取り付ける穴を空ける。ここでもΦ29のホールソーを使うが、必要なのはΦ30。仕方ないのでヤスリとペーパで穴を拡げる。それなりに大変だったが、どうにか取り付けられた。思った以上にいい仕上がりだ。こういう工作も上達したなぁ。

  画像の説明

  次は乗っ取り工作。ちょうど表面が加水分解を起こして腐りかけていたゲームパッドがあったのでそれを使うことにする。BUFFALOのBSGP1601BKというもの。5年チョイ前に買ったもののようだが、なぜ買ったのか覚えていない。

  バラすと基板は2枚。面倒なことに、乗っ取りたい十字とトリガの接点は、メイン基板じゃない方にある。面倒くさいので、適当なタッパーの中に放り込んでUSBの配線をやり直しつつ、グラウンドを探し、十字と3つのトリガ、合わせて8本の線を引き出す。しかし、またもやパターン中には、各接点の途中にハンダを乗せられるパッドがある。乗っ取ってくれといわんばかり。なんなの、これ? 法律で決まっているの?

  画像の説明 画像の説明

  本体側に戻る。ピンヘッダで接続するために、それを固定する基板が必要なので、だいぶ前に作った基板を流用する。元はFT245AM用だが、もう使うことはないだろう。木材にタップを切ってネジで止める。そこからは空中配線。ヒドい手抜きっちゃー、手抜きだが、実際のアーケードゲームも、パネルを開けたらこんな感じになってるはずなので、気にしない。

  画像の説明

  さて、テスト、なのだが、Linuxの場合、コントロールパネルにジョイスティックの項目がない。が、dnfで探したら、ソレっぽいのがスグに見つかった。「jstest-gtk」と、そのものズバリだ。もちろん、動作はバッチグー。完成。やっほー。

  画像の説明

  4方向レバーを試すため、パックマンをプレイしてみる。うむ。良い感じである。続いて、3トリガを試すために、グラディウスII。4方向レバーではゲームにならないが、トリガの動作は良好。ならばヨシ。最後に、本命のドルアーガの塔……だが、下が効かない。よく見たら、コネクタが断線していた。今日はここまで。明日、直そう。

  久々に丸一日、楽しく工作することができた。が、老眼が進んでいるので、メガネの取り替えが面倒くさい。また、熱中して作業をしていると、固定した姿勢が続くのでちょっと筋肉がダルくなる。ここ数年、カラダはそれなりにガンガンと鍛えているのだが、固定した姿勢からのヨッコラセには効かないんだなぁ。歳には逆らえないなぁ。