SVX日記
2004-07-13(Tue) ジュークボックスアプリ公開
快進撃を続けてきたジュークボックスアプリの開発だが、本日をもってバージョン1.00の完成としてしまうのであった。で、先日の約束どおりGPLとしてここに公開する。以下、超適当であるがマニュアルである。
各ファイル説明
carjuke.rb | Ruby/tkで書かれたジュークボックスアプリ本体。GUI関係のコード。 |
jukedir.rb | carjuke.rbが利用するRubyライブラリ。メディアファイルを管理する関係のコード。 |
juked.rb | Rubyで書かれたジュークボックスデーモン。TCPで要求を受け、mediaplay.exe等を呼び出す。 |
juked.conf.rb | juked.rbの設定ファイル。 |
mediaplay.cpp | 先日公開したCUIのメディアファイル再生ツールのソース。 使い方はコマンドラインにwav, mp3, avi, mpegファイル等を与えるだけ。 |
mediaplay.exe | 上記の実行形式バイナリ。 |
make | mediaplay.cppからmediaplay.exeを作るバッチファイル |
noimage.gif | ジャケット画像がない場合に表示する画像。以下で説明する親ディレクトリに置いておくとよい。 |
licence.txt | GPLのお約束 |
導入時設定
carjuke.rbの冒頭にhomeDirという変数があるので、メディアファイルの存在する親ディレクトリをcygwin形式で指定する。D:\My_Soundsにあるなら'/cygdrive/d/My_Sounds'と(必ずcygdrive経由で)指定する。
メディアファイルの配置
親ディレクトリの下にディレクトリを作り、その中にメディアファイルを置く。ちなみに一階層限定である。メディアファイルのほかにjacket.gifというファイルを置くとジャケットとして画像が表示され、songs.lstというファイルを置くと曲名が表示される。songs.lstのフォーマットは以下の例にならうこと。
OutRun2 SOUND TRACKS/SEGA
track01.cdda.wav.mp3,SPLASH WAVE
track02.cdda.wav.mp3,MAGICAL SOUND SHOWER
track03.cdda.wav.mp3,PASSING BREEZE
track04.cdda.wav.mp3,RISKY RIDE
track05.cdda.wav.mp3,SHINY WORLD
track06.cdda.wav.mp3,NIGHT FLIGHT
track07.cdda.wav.mp3,LIFE WAS A BORE
track08.cdda.wav.mp3,ENDING-A
track09.cdda.wav.mp3,ENDING-B
track10.cdda.wav.mp3,ENDING-C
track11.cdda.wav.mp3,ENDING-D
track12.cdda.wav.mp3,ENDING-E
track13.cdda.wav.mp3,LAST WAVE
track14.cdda.wav.mp3,OPENING
track15.cdda.wav.mp3,SPLASH WAVE (1986)
track16.cdda.wav.mp3,MAGICAL SOUND SHOWER (1986)
track17.cdda.wav.mp3,PASSING BREEZE (1986)
track18.cdda.wav.mp3,LAST WAVE (1986)
……などと、まとめていたら、あっという間に深夜になってしまった。今日はこのほかにも、車のリア側の変換ボックスの回路の修正を行い、外部からのPC起動を可能にしたりしていた。しかし、一応できたことはできたのだが、配線を間違ってしまい、再修正が必要となってしまった。あー、めんどくさ。それから以前より、CDチェンジャーに使われていたケーブル内の13本の線のうち1本だけ線が余っていたのだが、本日、突然それに割り付ける信号を思いついた。で、追加した。ふふふ。これもとりあえず、秘密にしておこう。以前の写真と以下の写真を見比べればカンのいい人はわかるかもしれない。
関係ないが、夕方にツタヤでなにげに上戸彩のCDレンタルしてきた。よって今日はサービスカット(?)をつけてしまう。残念なことにこのCDはCCCDなのだが、おいらはアナログコピーでPCに取り込み、自作の怪しいスクリプトでサクサク切ってmp3化してしまうのでウハウハである。CCCDはムカつくので決して買ったりはしないが、だからといって負けてもいないのである。レンタルしたCDをコピーするのは合法なのだ。余談だが、以下の画面を作るのに、jacket.gifとsongs.lstはamazonを利用してゴニョゴニョしているので、スキャンしたり手打ちしてはいない(よく見たらミスタイプあるじゃねーか)。せっかくなので、そのうちこれらのスクリプトも公開しようと思っている。では、おやすみである。
2005-07-13(Wed) 中年力で勝ってみる
そう、次の事例は「ストリートファイターII」だ。これは、直接に友人に指摘された。「オマエ、体力ゲージがほとんど残ってないのに、そこからネバるなぁ」と。そうなのだ。以前のオイラなら、体力ゲージが1/4あたりを割った時点で、そのラウンドを捨てていた気がするのだ。そして、既にヒトツ黒星が付いていたら、そのゲームをアキらめていた気がするのだ。しかし、気が付けば、体力がキッカリゼロ。つまり、必殺技で削られるだけでKOされる状態にも関わらず、勝負を捨てないオイラがいるのである。これも中年力である。
逆境に置かれても、決して最後まで勝負を捨てない。今なら理解できるぞ。ハーロックの「男には負けるとわかっていても戦わなければならない時がある」というセリフの真の意味が。そして、負けたとしても、自分の理解のなかで負ける。ベストを尽くしたのならば、それで仕方ないではないかと。そして、それは次の戦いにフィードバックされるのだ。負けた時に、自分の理解のなかで、潔く負けられるように、今、ベストを尽くしておこうとッ!!
具体的になにがどうとは書かないが、以前、ある高い目標を掲げ、2ヶ月以上という長いスパンを戦い抜いた時も、自らの中年力を認識した瞬間である。思うように事が運ばず、ヘコんだコトもあった。多少のゲインのあと、長く停滞する期間が続いたときは、心が折れそうもになった。若い頃ならば、アセる気持ちを抑えられずに、イチかバチかの行動に出て失敗したり、いっそアキらめてその後の努力をやめてしまっていたことだろう。そこを、耐え抜くことができたのも中年力である。
体勢が悪いときは、何もしないというのも、正しい選択肢のひとつであるコトと知ったのも中年力である。先日のアルカノイドでいえば、最後にひとつ残ったブロックは「狙う」のでなく「待つ」という意識だ。ボールを落とさなければ、必ず当たる。そう考えるのだ。こう考えるとアルカノイドは中年力養成ギプスである。アルカノイドのプレイぶりで、性格判断ができる。御社でも、入社試験にアルカノイド、どうすか?
とはいっても、地球は自分を中心に回っているわけではない。リアルはゲームと異なり、必ずエンディングにたどり着き、勝利できるという保障はないのである。しかし、そこが、おもしろい。おもしろいと思えるようになったのも中年力である。だから、自分のできる範囲でベストを尽くすのだ。そして、勝利をこの手に掴み取るのだだだだッ!!
2013-07-13(Sat) 書・作・走
2024-07-13(Sat) SSOのOSSでSOS
認証にはあまり興味がないのだが、DKIMだの、Sinatraへ追加だの、S/MIMEだの、OAuth2.0だの、意外とアレコレと取り組んでいる。まぁSSOはユーザの負担を軽減するための妥当な仕組みであるし、悪いのものではないよな……と、調べ始めるといろいろ出てくる新事実。
- mod_auth_mellonはApacheをSAMLに対応させるためのクライアントモジュール
- SAMLはSecurity Assertion Markup LanguageというSSOのオープンな規格
- SAMLはクライアント/サーバの形であり、サーバ側が認証を司る
- サーバ側で一度認証すれば、すべてのクライアントでアクセス許可される
- 代表的なサーバは、商用サイト「OneLogin」や、OSSの「Keycloak」
そういやKeycloakってどこかで聞いたような名前だな。mod_auth_mellonを試すにはサーバが必要だが、Keycloakが使えるならそっちの味見もできて一石二鳥である。とりあえずKeycloakをコンテナで上げてみる……
まぁ、概念がわからない。ウェブ上に文書はあるが、読んでもわからん。Sinatraに実装して動かすのが目的なのだから、どうにか少しでも動かして、それを元に理解を進めたいのだが、にっちもさっちもよっちもごっちもろっちもしっちもはっちもくっちもじっちも動かない。
急がば回れと、OneLoginのお試しアカウントを作ってサーバを替えてみたり、mod_auth_mellonのハウツーを柄にもなく実直に辿ってみたりもした。結果mod_auth_mellonは動きはしたがそれだけだ。やっぱりわからん。
ここまでガッツリとハマったのは人生で初めてかもしれん。なにしろ、Keycloakのログイン画面に遷移しないのだ。Keycloakはエラーログを出すのだが、内容が具体的でないので、試行錯誤するほかない。ググると似たような感じでハマっている書き込みは見つかるものの、解決してそうに見えない。結局、秘密鍵や証明書の指定をアレコレしまくって、ようやくログイン画面にこぎ着けたが、今度はSAMLのライブラリがエラーを吐く。終いにはruby-samlのコードにデバッグ行を入れまくり、どうにかSinatra側に戻すところまで持ってきたが、なんだか設定が微妙すぎて、もう何が正しいのかわからない。
ログインができたらログアウトもできなければならない。そしてまたKeycloakのエラーログだ。意味不明……さすがにちょっとログの出し方がアホなんじゃないかと思い始める。またもや証明書の指定をアレコレしまくって、どうにか抜けたかと思ったら、またもやSAMLのライブラリがエラーを吐く。再びruby-samlのコードにデバッグ行を入れまくるが、限りなくバグくさいコードをアチラコチラに見つけてしまう……さすがにちょっとライブラリの品質もクソなんじゃないかと思い始める。