カラオケ部屋

結局、ホールのStadiumとカラオケ部屋のPremiumを入れ替えた。

まあメインで使うのはカラオケ部屋の方だし、そっちに最新がある方が正解だと思う。

ホールはDVD用にD端子持ってきてたのでそれでつなぐ。
HDMIと比べるとどうかって言いつつ音声は結局RCAだしここしばらくアナログ画面ばっか見てたのでD画像はきれいでした(ぼうよみ

逆にカラオケ部屋の方はメインモニタ50inchがHDMI非対応なのと、配線の関係でRCAしかつながらないのでちょっともったいないかも
それでも防音部屋で全国採点できるのは大きいと思いました(ぼうよみ

入替で困ったのは、配線とかは準備しておいたのでほぼ問題なくあっさりと。
しかしデンモクが無線APにつながらない。つーかどうも本体も外に繋がっていないっぽかった。
ルータ再起動したりONU再起動したりしたが、どうにもうまくいかん。
一度だけつながったのだが、6秒後に赤外線を送信します・・・とかで間に合わずタイムアウト。その後つながらず。なぜだ。

最終的にはAPを入れ替えたらつながった。なんだったんだろう・・・
これ普通の無線LANじゃなくて独自規格入っているっぽいのでその辺で怪しいのかもしれない。

tmpfiles.d ハングアップ

また同じ失敗をして苦労したのでメモ

debian unstable で再起動するとハングアップというのをまたやってしまった。

/usr/lib/tmpfiles.d/home.conf の

Q /home 0755 – – –

が問題で、この行をコメントアウトすればよい。

/homeはnfsでautomountされるようになっている。
しかしsystemd-tmpfiles-setup.serviceが動くときにはまだネットワークが起動していなくて、/homeを見に行くときにNFSにつなげにいってつながらなくてハングアップというオチ。

毎度どうするんだっけと悩むんだけどDNSやらproxyやら動かしているサーバーが立ち上がらないのでサイトブラウズもできずに鍵は箱の中 orz

一応、BTSは上がっているようだ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=805553

home.conf という名前の癖に設定ファイル扱いになっていないので編集してもアップグレードで元に戻るという・・・

カラオケ導入

新しくカラオケを導入した。

LIVE DAM StadiumとPremierDAMの2台。

広いホールの方にStadiumを、専用のカラオケ部屋を作ってそこにPremierを置くことにした。
カラオケ部屋の方は前からあった小屋を改造して防音設備ばっちりにして設置。

カラオケ部屋が完成するまでPremierDAMは倉庫で眠っていた。

カラオケのお客さんには基本、カラオケ部屋に入ってもらう。
カラオケメインのお客さんに古いシステムを使ってもらうのはどうかと思い、入れ替えを検討した。

しかし様々な問題が発生 orz

配線

まず、ホールはHDMIで設置、カラオケ部屋はRCA端子で線を引っ張ってしまった。
そしてPremierDAMはHDMI非対応。
なのでホールにPremierDAMを持っていくと画質が落ちる。以前に配線が無くてつながらない。
サブモニタがどうにも遠いだけでメインモニタは近いので別ケーブルでつなげばとりあえず問題はないのだが。

そしてカラオケ部屋にStaduimを持っていくと、これまた画質が落ちる。
こちらはメインモニタの方が遠くて、かつ古いプラズマテレビなのでHDMIを持っていない。
さすがに50inchテレビだと画質の差は大きい。読めないことはないので十分ではあるのだが。
4本引いとけば最悪コンポーネントでババソだったのだが・・・

デンモク

デンモクの互換性がない。
Premium側のデンモクPM500bZはStaduim側でも使えるのだが、DAM★ともにログインができない!
Myデンモクもなければ全国採点もできない。
まあ、本来LiveDAMからの機能らしいのでPremiumでは中途半端っぽいのだが。

逆に、StadiumのデンモクはSMART DAM L(TM-20)で、Premium未対応
DAMの営業の人も勘違いだったようで、接続しようとすると未対応の機種だから対応機種に持ってけ言われます orz

無線

そしてカラオケ部屋に無線が届かないというオチも。
アクセスポイントの位置を動かしてみたのだが、どうがんばっても無理っぽい。

防音で壁に色々仕込んであるのが効いているっぽい。音も遮断するし電波も遮断。防音設備すげー。
関係あるのかないのか、熱も遮断しているっぽくてカラオケ部屋は結構涼しい。
先日12人入ったときはさすがに暑かったが。

対策

ということで、アクセスポイントとデンモクを購入することに決定。

別にアクセスポイントなんて普通の無線ルータでいいじゃん、とか思ったんだが実は特許があるらしく、専用でないとダメっぽい。
うちにあるのはAP-210だったが、オークションを探すとAP-110以下しかなかったのでAP-110をポチる。
終了1分前で負けました orz
その後同じ人から同じものが出たので今度は即決金額でGo!
こいつはとりあえず問題なく動いた。

そしてデンモク
異常に種類があり、どれがいいのやらかなーり悩んだ。悩んだ結果、オークションでたくさん転がっているのはCM-1000DK。
そして到着したのだがここでまた問題が・・・

DAM★とも にログインできない!

CM-1000DKはDAM★ともに対応している。してはいるが、club DAMメンバーズカードかおサイフ携帯しか使えない。
そして携帯用のiアプリは既に中止され、メンバーズカードしか手がないという・・・

DAM★ともIDとかCDM番号ログインできればいいんだが対応していないっぽい。

ということでカラオケ部屋で一人全国採点チャレンジ計画はメンバーズカードを手に入れるまで延期になりました!
それかCM-2000以降のデンモクを手に入れる、でもいいのだがこれ以上デンモクが増えても嬉しくない罠。
高いし。

昔懐かしのデンモクの方がシルバーな方々にはわかりやすいらしく、下手にSmart DAMにすると使い方がわからん問題が発生しそうである。

しかし、CM1000置いちゃったので
「どうやってログインするんですか」
「カードは買えないんですか」
とかのFAQが増えそうである。

MS SQL Server

AccessからSQL Serverに移行していくつかハマりつつ解決策が何となく発見されたものについて。

NULLを含む列のユニーク化

普通にやるとNULL同士が重複しているとエラーになる。

本当ならNULLはNULLと重複しないのがSQLの規定のはずだが仕方がない。

インデックスを作成して、フィルターに IS NOT NULLを付ければNULL以外は重複禁止、ができるようだ

集計データ列

列に式を入れる方法。本当なら一意でないデータを1行内に入れるのはよろしくないのだが、ビューにすると更新とか面倒になったので数式で。

正式名と省略名があって省略名があれば省略名、無ければ正式名とする方法

CREATE TABLE 商品 (
正式名 nvarchar(20) NOT NULL,
省略名 nvarchar(10) NULL,
商品名 AS (ISNULL([省略名],[商品名]))

CREATE UNIQUE NONCLUSTERED INDEX
[商品正式名] ON [商品]( [正式名) ASC)

CREATE UNIQUE NONCLUSTERED INDEX
[商品省略名] ON [商品]( [省略名) ASC)
WHERE ([省略名] IS NOT NULL)

こんな感じで正式名はNOT NULLで重複禁止、省略名はNULL okで重複禁止、商品名ができるだけ短い名前、といったテーブルが作成できた

SQLServer Mangement Studio では、テーブルの構造から列のプロパティ内 計算式の指定で(ISNULL([省略名],[商品名])

テーブルのインデックスから新規作成もしくはプロパティで、フィルターにhoge IS NOT NULLを入れればOKでした

Accessが便利になっているのかSQLServerが固すぎるのか。

VPNの向こうのSQLServerにつなげているのもあって、Access単体の方が早くていじりやすくて楽だった・・・

CGI作成

知人に頼まれてクイズ形式のCGIを作ってみた。

とりあえず知っている言語 perl で書いてみて、やっている最中にデータの管理とか宣言ミスとか痛くなってきたので、もっといい言語は無いかと浮気し始める。

PHPはプログラムつーかHTML記述言語っぽくてなんか向いてない感じで、rubyはOOPしていて良さげだし、pythonはコンパイラもあってドキュメントも書きやすそうで結構良さげだったけど、

結局一度perlで書いたものを書き換えようとすると構造そのものから見直さなければならなくなってやめた(爆

気が向いたら他の言語で書いてみようとか思ったけどそんなことはクライアント(お客さん)は望んでいないのであった。ああ自己満足。

そうでなくても仕様をプログラマが勝手に変えてしまう状況で、これはいかんと久しぶりに仕様書まで書いてしまった。
仕様書しっかり書いてみるとプログラムの無駄な部分が見えてきたりしてイイネ!

プログラマやってた時にもっと勉強しておけばよかった。

それをやると今度は仕様書とプログラムの管理が面倒ということで一緒に書けるpythonはいいなーとか思いつつまだやっていないのであった。