IT

CDレコとNR-365

Magical Finder対応に目処が立ち、RockDiskNextとの連携が確立した事でCDレコ Wi-Fi(CDRI-W24AI)を本格的に使い始めて約2週間。

ネットワークAVレシーバー NR-365とJBL CONTROL1 Xtreme

NR-365とCONTROL1

気がついたところを書いてみると、まず「NASへの取り込み」と言っても、まず端末内部に取り込み完了してからNASに転送される仕組みなので、端末のストレージにCD1枚分の空き容量が必要。あと実際問題として取り込んでいる間は端末が使えなくなるが、まぁそれはトレードオフとして受け入れるしか無いだろうな。

そして、AV Watchのレビュー記事でも指摘されているように、デフォルトのままだと1度の取り込みでFLAC(.flac)とALAC(.m4a)の2つのファイルが作成される。Android版とiOS版のどちらで取り込んでも、Android版の『CDレコアプリ』で再生するとFLACだけが、iOS版の『CDレコアプリ』ではALACだけが再生されるので「こりゃ気が利いているなぁ…」と思っていたのだが、2月末に導入したオンキヨーONKYO BASE-V50改めNR-365の"HOME MEDIA"や"DLNA"でアクセスするとFLACとALACの両方が(つまり2回づつ)再生されてしまい、ちょっと困った事になってきた。

NR-365ワイヤレスLANアダプター UWF-1で"HOME MEDIA"再生するとFLACの方がブツブツ切れて聴くに堪えない事からも、どちらか一方に取捨選択するとすれば、やっぱり『iTunes』御用達のALAC(.m4a)に一本化する方が良さそうな雰囲気。

取り込み作業はiPad mini 2iPad2に任せれば良いな。それくらいならば64GBストレージの第4世代Touchも活用できるかな…とも思ったのだが、iOSが6.1.6で打ち止めとなっている事から『CDレコアプリ』も古い0.5.3に留まり、残念ながらNASどころかALACにも未対応らしい。

もう一つ、NR-365sambaな"HOME MEDIA"のアクセスで問題になったのが、"BO230D04_交響組曲 「宇宙戦艦ヤマト」 Symphony_シンフォニック・オーケスト"という妙な管理コード。恐らく『CDレコアプリ』由来である印象だが、NR-365のLEDパネルでは一度に8文字分しか表示されないので、リモコンでアルバムを選ぶのに大変難儀する。その点、妙な管理コードとは無縁なタグベースでインタフェースする"DLNA"の方が使い勝手が良い。

RockDiskNextの"DLNA"もALAC(.m4a)に対応済みだし、iTunes共有サービスも不要かと思われる。

PCからは『iTunes』のライブラリのディレクトリパスをRockDiskNextの方にしとけば大丈夫かな…。『Windows Media Player』とはお別れですかね…

参照

AV Watch http://av.watch.impress.co.jp/

IODATA アイ・オー・データ機器 http://www.iodata.jp/

価格.com - 「買ってよかった」をすべてのひとに。 http://kakaku.com/

Amazon.co.jp https://www.amazon.co.jp/

pt1環境改善

ログが闇雲に/var/log/syslogに出力されるのがうっとおしいので、pt1関係のログを/var/log/pt3.logに集約するようrsyslogの設定ファイル/etc/rsyslog.d/40-PT3.confを作成。 プレフィックスを40番にして& stopで/etc/rsyslog.d/50-default.confに渡す前に止めてしまうのがポイント。

yano@GT110b:~$ cat `/etc/rsyslog.d/40-PT3.conf`
# Log kernel generated PTx log messages to file
:msg,regex,"PT[0-9]: " `/var/log/pt3.log`
# Uncomment the following to stop logging anything that matches the last rule.
# Doing this will stop logging kernel generated PTx log messages to the file
# normally containing kern.* messages (eg, /var/log/kern.log)
#& ~
& stop
yano@GT110b:~$

pt1_drvはプレフィックス"PT1:“が一部にしか入ってなかったので、printkの"PT1: “を追加する。但し、“PT1:“とか"PT2:“とか入っている場所もあるので、“PT1: PTn:“となっている箇所は"PTn: “となるよう再度置換する。

yano@GT110b:~$ TMPDIR=/var/tmp/pt1_drv
yano@GT110b:~$ mkdir $TMPDIR
yano@GT110b:~$ for f in `fgrep -l printk /usr/src/pt1-chardev-1.1.0/*.c`;do sed -e "s/\(^.*printk(KERN_[A-Z]* \"\)/\\1PT1: /" $f | nkf -w -Lu > $TMPDIR/$f;done
yano@GT110b:~$ for f in $TMPDIR/*.c;do sed -e "s/\"PT1: \(PT[0-9]:\)/\"\\1 /" $f > /usr/src/pt1-chardev-1.1.0/$f;done
yano@GT110b:~$

でもって、DKMSモジュールをrebuild。

BAL No.1734

2011年調達の、オートバイ・軽自動車用バッテリー充電器BAL No.1734

タクトスイッチに接点復活剤をシュー

BAL No.1734のスイッチ

昨年あたりからモードスイッチの反応が悪くなってきたのを思い出したので、そろそろバッテリーがへたってきたのかな…と調べてみたところ「タクトスイッチがすぐ壊れる」という記事が散見している事に気付いた。

「タクトスイッチ」自体は数十円程度で調達可能な汎用電子部品。Prime Magnateの電源スイッチ修理を思い出して、土曜日にマルツパーツ博多呉服町店で調達してきたが、分解する前に「三角ネジ」の壁にぶち当たるとの噂通り難儀。

取り敢えず、ボタン部分を剥いで5-56やパーツクリーナーを吹きつければ復活するという話もあったのでダメ元でトライしてみたところ、見事に復活。

…したかに思えたが、月曜朝には不良再発。1日しか保たなかったようだ。

長年愛用のサンハヤトの接点復活剤も、よくよく考えれば数十年の年代物だけにもはや神通力も衰えたかな。

参照

貧乏オヤジの釣りとかバイクとか http://blogs.yahoo.co.jp/ss_fireblade

マルツオンライン http://www.marutsu.co.jp/

大橋産業株式会社 http://www.bal-ohashi.com/

リニア体験乗車募集

今年度も「超伝導リニア体験乗車」の募集開始との事。

JR東海、2015年度第1回目の「超伝導リニア体験乗車」を4月10日10時より募集

トラベル Watch記事より

各回110席、1区画2席で4320円ですか…

いい値段だねぇ。

参照

トラベル Watch http://travel.watch.impress.co.jp/

マイナビニュース http://news.mynavi.jp/

超電導リニア Superconducting Maglev http://linear.jr-central.co.jp/

Software Design

ところで技術評論社ソフトウェアデザイン

1990~2000と2001~2012

Software Design総集編

思い起こせば、関東在住時代には創刊から毎月買っていたハズだが、気が付いたら一冊も無い。福岡へUターンする時に処分しちゃったんだっけかな…?

うんこ演算を支えるUnkoScript』を読んでみたかったのだが、あいにくSoftware Design 2011年12月号は完売していて、中古の流通も期待薄。

…と思ったら、12年分の144冊、2万8000ページ超の記事をPDF化してDVD-ROMに収めたSoftware Design総集編 【2001~2012】に気が付いた。

PDFなので本棚を占領しないし、タブレット端末などでちょっと時間が空いた時にでも気軽に読めるのがいいね。

というわけで、Software Design総集編 【1990〜2000】と合わせて合計23年276冊分の総集編を調達。

参照

本を読む http://emasaka.blog65.fc2.com/

技術評論社 http://gihyo.jp/

Wikipedia http://ja.wikipedia.org/wiki/

Amazon.co.jp https://www.amazon.co.jp/

うんこ演算

たまたま目に入った本を読む 「Software Design」12月号で気になったうんこ演算

うんこ演算(小学生用)

うんこ演算 子どもの算数を面白くする計算ドリル

「三度の飯よりうんこが好き」とか、まさにその通り。小学校高学年の男子に見せたらテンションMAXだよね。

我が家のヨンサイジーも大喜びしそうだが、演算となるとちょっと難しいかな。

…ていうか、90問の問題からランダムに10問出題され、カギとなる数値もその都度変化する実装になっているそうなので、同じ問題に出喰わしても記憶で答えられる事は無く、しっかりと理解していなくては正解できない事になる。

つまり、ウケ狙いの「おバカアプリ」ではなく、大人でもなかなか侮れない真面目な計算ドリルソフトなのだが、最初に開発したiOS版は"うんこ"がNGワードとなりApp Storeの審査に落ちてしまったという悲しい経緯もあったそうだ。

そういうわけで、再起を図ったAndroid版では審査を通りようやく陽の目を見る事ができたので感謝を表す390円にしたという。App Storeだと1ドル相当のレートに縛られた値付けしかできないそうなので、そのあたりもGoogle Playならでは。

最近のAppleはなかなか融通が利かなくなっている気がするな。

参照

ITmedia Mobile http://www.itmedia.co.jp/mobile/

たつ人 http://www.tatsuzine.com/

andronavi http://andronavi.com/

Google Play https://play.google.com/

面白法人カヤック http://www.kayac.com/

Wikipedia http://ja.wikipedia.org/wiki/

MagicalFinder対応

3日のMagical Finder対応改善。LANDISKGT110bRockDiskNextの3ノード分のメッセージ送信を、クライアントからのUDP/51065トリガーに対してオンデマンドで繰り返すように改修。これをdaemon起動しておけばよさそうだ。

yano@GT110b:~$ cat `~/MagicalFinder/mf_all_nas.py`;
# -*- coding: utf-8 -*-
import socket
import sys
MAGICAL_PORT = 51065
###########################################################
# for GT110b (192.168.199.1)
###########################################################
def make_GT110b():
    payload = bytearray([0x07,0x4c,0x5f,0x11,0x67,0x00])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([192,168,199,1])                 # NAS ip address
    payload.extend([255,255,255,0])                 # subnetmask
    payload.extend([192,168,199,254])               # gateway
    payload.extend([0x00, 0x50])                    # length ?
    payload.extend([0x94,0xde,0x80,0xXX,0xYY,0xZZ]) # MAC address
    payload.extend("GT110b@BRAVOTOURING")
    payload.extend([0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend("IO-DATA")
    payload.extend([0,0,0,0,0,0,0,0,0,0])
    return payload;
###########################################################
# for LANDISK-AV (192.168.199.20)
###########################################################
def make_LANDISK():
    payload = bytearray([0x07,0x4c,0x5f,0x11,0x67,0x00])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([192,168,199,20])                # NAS ip address
    payload.extend([255,255,255,0])                 # subnetmask
    payload.extend([192,168,199,254])               # gateway
    payload.extend([0x00, 0x50])                    # length ?
    payload.extend([0x00,0xa0,0xb0,0xXX,0xYY,0xZZ]) # MAC address
    payload.extend("LANDISK@WORKGROUP")
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend("IO-DATA")
    payload.extend([0,0,0,0,0,0,0,0,0,0])
    return payload;
###########################################################
# for RDN021 (192.168.199.21)
###########################################################
def make_RDN021():
    payload = bytearray([0x07,0x4c,0x5f,0x11,0x67,0x00])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([192,168,199,21])                # NAS ip address
    payload.extend([255,255,255,0])                 # subnetmask
    payload.extend([192,168,199,254])               # gateway
    payload.extend([0x00, 0x50])                    # length ?
    payload.extend([0x00,0x01,0xd2,0xXX,0xYY,0xZZ]) # MAC address
    payload.extend("RDN021@BRAVOTOURING")
    payload.extend([0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend([0,0,0,0,0,0,0,0])
    payload.extend("IO-DATA")
    payload.extend([0,0,0,0,0,0,0,0,0,0])
    return payload;
#-------------------------------------------------------------------------
#   top of send_magical
#-------------------------------------------------------------------------
def send_magical(sock):
    dest_address = ('255.255.255.255', MAGICAL_PORT)
#   print >>sys.stderr, 'send to %s port %s' % dest_address
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    sock.sendto(make_GT110b(), dest_address)
    sock.sendto(make_LANDISK(), dest_address)
    sock.sendto(make_RDN021(), dest_address)
    return;
#-------------------------------------------------------------------------
#   top of main
#-------------------------------------------------------------------------
def main():
    # Create a UDP/IP socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # Bind the socket to the port
    server_address = ('0.0.0.0', MAGICAL_PORT)
    print >>sys.stderr, 'starting up on %s port %s' % server_address
    sock.bind(server_address)
    while True:
        data, address = sock.recvfrom(4096)
        if 0 < data.find("FROM-PC\x00") :
            send_magical(sock)
#-------------------------------------------------------------------------
#   end of main
#-------------------------------------------------------------------------
if __name__ == '__main__':
    main()
# vim:expandtab:ts=4
yano@GT110b:~$ while true;do python `~/MagicalFinder/mf_all_nas.py`; sleep 3;done

参照

AV Watch http://av.watch.impress.co.jp/

NETGEAR GS105E

2013年秋に発表されたプラネックスFXG-05RPT

アンマネージプラス・スイッチ GS105E

ネットギア GS105E

絶滅の危機に瀕していたリピーターハブとして貴重な新製品という事でパケットキャプチャな世界では注目を集めていたものの、いかんせん1万円を超える価格だけに手をこまねいていたのだが、CDレコとMagical Finderの解析を行うにあたってパケットキャプチャは不可欠。

まぁ、取り敢えず「ポートミラーリング」や「フラッディングモード」に対応したスイッチングハブが安く出てないかなぁ…と思ってヤフオク!を物色してみたところ、ネットギアアンマネージプラス・スイッチ GS105Eが「ポートミラーリング」に対応している事がわかった。しかも、新品でも4千円程度というお手頃さだ。

というわけで、速攻でギガビット5ポート アンマネージプラス・スイッチ GS105E-200JPSをポチッとし、Magical Finderの解析を完了。

とは言え、複数のギガビットポートを1つのギガビットポートに「ミラーリング」出力する事になると、当然ながら溢れてキャプチャし損なうケースも考えられる。プロとして万全を期するならフローコントロールでパケットロスを防止できるリピーターハブは欠かせないところだし、再び絶滅の危機に瀕しない保証は無いので、手に入るうちに調達しておきたい。

2013年12月にはIODATAからもBX-MR1が発表されていたが、こちらはLANケーブルに割り込ませるような想定で2ポートしか無い事から、5ポートあるFXG-05RPTの方が使い勝手は良さそうだね。

参照

INTERNET Watch http://internet.watch.impress.co.jp/

ネットギア https://www.netgear.jp/

プラネックス https://www.planex.co.jp/

IODATA アイ・オー・データ機器 http://www.iodata.jp/

価格.com http://kakaku.com/

Wikipedia http://ja.wikipedia.org/wiki/

Amazon.co.jp https://www.amazon.co.jp/

Welcome PHP 7

昨年夏にPHP 6はSkipという噂が出たPHP

PHP 7のパフォーマンスが高い理由

CodeZineより

投票の結果24対58で"PHP 7"となる事が決まったそうです。

11月のリリースに向けて朗報も漏れ伝わってきており、期待が高まりますな。

参照

マイナビニュース http://news.mynavi.jp/

CodeZine http://codezine.jp/

PHP: start https://wiki.php.net/

Enrico Zimuel http://www.zimuel.it/

Wikipedia http://ja.wikipedia.org/wiki/

WOWOWのKW変更

B-CASの枠組みを崩壊させたBLACKCASの登場から3年。

B-CASカード

B-CASカード

ようやく放送局側からの最初の一手、WOWOWのKW変更が2月10日に実施された模様。

だが、ものの数日で解析されてCardTool.exeをちょろっと書換えるというそのまた対策まで早速公開されてしまったようなので、改造B-CASカードを完全に閉め出す事はできなかった雰囲気。

とはいえ、そういう作業ができないBLACKCAS購入者には効き目があったと思われるので、まぁ何もしないよりはマシだったのかな。

そういえば、地デジ難視聴対策の衛星放送とCATVのデジアナ変換も年3月末で終了してたね。

参照

スラッシュドット・ジャパン http://slashdot.jp/

テレビの問題 http://tvqa.blog.fc2.com/

AV Watch http://av.watch.impress.co.jp/

Wikipedia http://ja.wikipedia.org/wiki/