«前月 最新 翌月» 追記

ぱぱネット(仮)


2011-08-09 さくらのVPSに乗り換え [長年日記]

_ [Linux][開発] さくらのVPS512に乗り換えました

フレッツISDN時代から12年、連綿と続いてきた「ぱぱサーバ」ですが.... 今回ついに外部サーバへ乗り換えました。まだ試用期間(金払ってない)だけど!

_ [Linux][開発] tDiaryのメジャーバージョンがあがりました

tDiary2.0からtDiary3.1に乗り換えました。そして

推測通り自作プラグイン死亡(T_T)

一番困ったのは、日記データを横断サーチして独自のカテゴリとプルダウンを作成するsancプラグイン(sanc.rb, sancpulldown.rb)。データ形式が EUC-JP なので思い切り文字化け。さらにtDiaryの日記データは、一括でEUCからUTF8に変換されるわけではなく、update.rbを呼び出して更新したときだけらしい。結果 まさかのEUC/UTF8混在環境 になってしまいました。

クマさんが一生懸命料理リストとかメンテナンスしてて、心苦しいのですが......時間がとれないのでしょうがない。

_ [Linux][開発] データも全て移行したわけではないです

そのため、至る所にリンク切れなどがあるはずです。 デザインは勝手に直してもらうとして、ファイルのリンク切れは いかんともしがたいですな。元データはありますので、 ご報告はこの日付の日記のコメント欄へ。

但し、今度はディスクが20GBしかないので何でもかんでも 置くことはできません。ご理解ください。

_ [Linux][開発] amazon.rbが腐っている

標準(core)に入ってるプラグインなのに何故動かない.... これが有効になっているとあいあんさんの過去ログが出ない。

神曲奏界ポリフォニカエターナル・ホワイト 4 (プリンセスコミックス)
高殿 円/藤丘 ようこ
秋田書店
¥ 440

.... なんで俺は貼れるんだ?!

うーん。isbn_detailで書影をとってくるとき、 なぜかmoonrock.jpという糞サイトにアクセスし(proxy?)、これがMyDNSの更新がかからなくて落ちているのでおかしなHTMLがXMLだと偽ってかえってくる。 プラグインには文法チェックが全くなく、REXMLにまるなげしていて、 しかもキャッシュに書いてしまうので永遠に間違い続ける。 馬鹿か。

他人にサービスを提供しているサイトを気軽にdisってしまって申し訳ありませんでした。

まとめると(言い訳ともいふ)....

  1. AAPをダイナミックDNSで運用しているmoonrock.jp
  2. 更新がないDDNSサイトのランディングページを200 OKで用意してしまうMyDNS
  3. XMLでないものを読み込んだ場合のチェックが一切入っていないamazon.rbプラグイン

の一つでも直ったら問題はおきなかったはず。 個人的には「プラグインを直すのが筋かなー」と思って既に手を加えています。 身内のページが出ないと焦るよ。

昔からそうですが、tDiaryは気軽に処理例外を投げ過ぎる..... 「データの不備が生じても日記が空白になるだけ」というのが俺の考える 一般人向けの設計なのですが、 tDiaryはruby geek(変人)のためのブログシステム なのでしょうがないですね:-)

本日のツッコミ(全20件) [ツッコミを入れる]

Before...

_ 通りすがりのあいあん [毎度のことですが生タグが表示されてしまいます。どうすればよいでしょうか。]

_  [直したはずです。もうしわけない。]

_ 通りすがりのあいあん [ありがとうございました。 12日更新分からhtml方式で記述できました。 8/9~8/11分はwikiスタイルでしか..]


2011-08-12 TV番組全てを合法ニコ動化するワンセグ野郎Linuxその3 [長年日記]

_ [ワンセグ野郎][Linux] モチベーションが続かない

実は、ワンセグ野郎Linuxは2ヶ月くらいでガーッと 開発してしまって、その後放置してた。震災もあったしね。

かなり思い出しながら書かなければならないのだが、 モチベーションが続かない(^^; なので「できたこと」を先に説明して、そこそこ 反響があれば連載を続ける所存。

_ [ワンセグ野郎][Linux] チュートリアル

まずはチュートリアルビデオを2件どうぞ。

当たり前に動いてるように見えるだろうけど.... ここまでやるのは大変だったという ある意味自慢話をしよう と思うので、 読みたくない人は以降省略。

_ [ワンセグ野郎][Linux] 【1】EPGデータベースの改良

足回りのポイントは以下のとおり。

  • TokyoTyrant/TokyoCabinetの全面採用による高速化
  • サービス情報を個別に蓄積(dc_channelテーブルの廃止)
  • TTの全文検索クエリーに対応してより柔軟な検索の提供
  • エレメンタリーのPIDを番組ごとにDB化

他のワンセグ野郎プロジェクトではSQLite3を使っている。 これはファイルベースのDBであるがゆえに、 ガガッと登録/検索が集中するとよくロックしていた。 まあ元々アプリケーションとかに組み込むためのDBだから しょうがない。

一方、TTは並列数(=スレッド数)を自由に変えられるので、 大規模サイトにも適用可能です(何)。 まあ、TT/TCを全面採用したことによってWindowsでは動かなく なってしまったんだけどね.....MySQLの方がよかったかな。

あとdumpeitを使って、地道にTSのSDTやPMTを解析して TTに蓄積することで、物理チャンネルと放送局の紐づけを いちいちメンテする必要がなくなった。途中でサービスIDとかが 変わっても大丈夫だし、 後述する東京MXマルチ編成にも対応できたし、 他の局でもマルチ編成が始まったら自動的に対応できる。 さらに まったく同じ仕組みでフルセグにも対応できる ...はず(笑)

_ [ワンセグ野郎][Linux] 【2】perlrtmpの改良

ストリーミングサーバの改良ポイントは以下の通り。

  • TCセッションDBを用いたセッション管理
  • マルチ編成TSのPID指定を用いた特定番組のみのストリーミング

従来はFlashPlayerのファイル変数で欲しいストリームの情報を 渡していた。いわゆるワンセグ野郎日付YYMMDD-hhmmss-hhmmss-phych.flv、みたいな。この方法だと東京MXのワンセグ1とワンセグ2を指定することはできない。だって物理チャンネルは同じだもんね。

そこで、ストリーミングサーバperlrtmpを改良して、 DBアクセス部分を実装し、CGIを介して どの番組のどのPIDのエレメンタリーを送信すれば 良いか渡せるようにした、ということです。 これで記録するTSは1本だが、分離して別々の番組を 送信できるというわけ。

_ [ワンセグ野郎][Linux] 【3】GUIからの分離

TVRollというのは、ワンセグ野郎プロジェクトでいうところの実況勢いブラウザ+MP4ファイル2ちゃんねる字幕に相当するもの。Twitterや2ちゃんねるのコメントとテレビ番組を同期して再生できる。で、対応レコーダーは、ARecX6という ネットではいたって評判のよくないレコーダー です。ええ、ワンセグ野郎共はご存知の通りです。

しかしサイト自体は別にARecX6に限ったものではなく、外部APIが公開されていて、どんなレコーダーでも連携できるようになっているようだ(以前は説明ページからリンクが貼ってあったのだが今は切れている)

外部API

仕様を軽く読んで...CGIを何個か実装してFlashプラグインを 用意すれば、 番組表やら検索やら自前で用意しなくてもいいいらしい ということがわかって、速攻実装開始。まあJSONの形式が独特(全部文字列)で面食らったけど、ほどなく動いた。

基本は3つ用意すればいい。

  • EPGの内容を返す(検索する)CGI
  • 特定の番組をこれから再生するぞと選択するCGI
  • ストリーミングプラグイン

だから別にTTとか使わなくても従来のWindows版ワンセグ野郎でもPHPで2つCGIを書けば実装できるはず。

しかし...セキュリティ大丈夫なのかこの構造は。特にフラッシュを手元のマシンから読むとクロスドメイン制約にひっかからないのかね。

TVRollはチュートリアルビデオみればわかるけど高機能で便利。 デザインが前時代的というか古くさくてごちゃごちゃして、そこで損してる感がすごいけど。

_ [雑記] 疲れた

実績を説明するだけでつかれた。続ける気力がないw


2011-08-13 お盆休みなんだなあ [長年日記]

_ [雑記] 八景島シーパラダイス

八景島シーパラダイスに遊びに行ってきました。 ええ、想像通り ちょ混みでしたけど... そうなんだよね、 帰省ラッシュっつーても、横浜から人が居なくなるわけじゃなくて、 反対にジジババのところに孫が来る時期でもあるわけであり.....

こういうワンピースとのコラボが壮絶に ウザかった。 ゆっくり見させろよと思うんだが、まあしょうがないよね。

しかし水族館は思ったよりずっと本格的で堪能できました。 魚やイルカのみならず、ペンギンや白熊やオットセイやアザラシなど、 北海の動物群も見られます。

特に圧巻だったのはイワシの魚群。 きらめく小魚の魚群にエイやサメ(大丈夫なのか?) が悠々と泳ぐ様はあまりに綺麗で、一日ずっと座って眺めていたい 気分にさせられました。これだけでも入場料払ったかいがあるって ものであります。

_ [雑記] 夜は花火

八景島では 夏場の特定時期に花火があがります。夜8時30分からほんの10分間、プライベートな花火。だけどボードウォーク向かいの桟橋から打ち上げられるため、意外と大きく見えます。音楽とのコラボレーションで華やかに、ってところでしょうか(これまた少し煩いけどね)

_ [雑記] 帰りはファミレスかごの屋

帰りは関東ではあまり見ない和食ファミレスの「かごの屋」さんへ。 いや.... 水族館で散々イワシやら蟹やらイカやら見たらつい...

イカを1匹さばいてソーメン、肝はゴロ煮にしてくれたけど、意外と(失礼)美味かった。寿司はアレルギーで食べられないネタを指定したら取り替えてくれた。最後のお抹茶のデザートは多分小豆を自分とこで似てる!水飴くさくない!....食べ物屋に関して常にdisりまくっている俺的でもなかなか満足。

しかし遠いな。わざわざ文庫までこねーし.....


2011-08-24 ワンセグ野郎Linuxその4 [長年日記]

_ [ワンセグ野郎][Linux] TokyoTyrantとEPGサーバ

TokyoTyrantで開発し終わってしまったものの、 やはりLinuxでしか動かないのはアレだし、 コンシューマでは性能面での有利はほとんどないし、 SQLite3かせめてMySQLで作り直そうか.....とか 考えていたらだいぶ間が空いてしまった。

面倒くさいのでTokyoTyrantで作る方法を公開する....が、 なんと Debian Squeezeは未だにまともなTC/TTをaptでインスコする方法がない ことが判明し、さらにやる気がなくなるのです。

_ [ワンセグ野郎][Linux] ソースから全てインストール

FAL Labsから以下の4つを落としてくる。 バージョン進んでたらごめんね。

  • tokyocabinet-1.4.47.tar.gz
  • tokyocabinet-perl-1.34.tar.gz
  • tokyotyrant-1.1.41.tar.gz
  • tokyotyrant-perl-1.16.tar.gz

インストールは基本的にconfigure; make installでイナフ。

tar xvzf tokyocabinet-1.4.47.tar.gz
cd tokyocabinet-1.4.47
./configure
make install
cd ..

tar xvzf tokyocabinet-perl-1.34.tar.gz
cd tokyocabinet-perl-1.34
perl Makefile.PL
make install
cd ..

tar xvzf tokyotyrant-1.1.41.tar.gz
cd tokyotyrant-1.1.41
./configure
make install
cd ..

tar xvzf tokyotyrant-perl-1.16.tar.gz
cd tokyotyrant-perl-1.16
perl Makefile.PL
make install
cd ..

これで/usr/local/binにttserver, tcrmgr, tctmgrあたりが入っていればとりあえず今後の動作に問題はない、はず。Perlスクリプトの動作確認として、

---------a.pl---------
#!/usr/bin/perl
use TokyoCabinet;
use TokyoTyrant;
-----------------------

こんなファイルをエディタで作ってperl a.plしておいてください。 エラーが出なければモジュールもインストールされています(原始的)。

_ [ワンセグ野郎][Linux] Perlでラッパーを書く

今回はTokyoTyrantで2つのサーバを動かす。

  1. EPG Server(常に新しいEPGデータを蓄積、キャッシュ的)
  2. EPG2 Server(番組のファイルロック機構、永続的)

二つのサーバの性格は異なる。前者は頻繁にEPGデータを更新し続ける (ぶっちゃけ消えても良いし作り直すことも簡単)だが、 後者はある種録画リストのようなものなので消えるととっておきたかった 番組も全て消える。これは困る。うっかり消さないようにしたい。

実はTokyoTyrantはMySQLでいうところのmy.cnfを持たないので、 全部ttserverというコマンドに引数を指定することで動かす。 そしてその パラメータはけっこう多い 上に、Perlからの アクセスも完全に合わせておかなければならない。 さらに認証がないしテーブル名もないし型もないので、うっかり ポート番号を間違えてvanishコマンドを発行したりすると全部消える(笑)

また、MySQLのように同一のINDEXを持ったDBを複製するのにも、 既存のDBからmysqldumpでdumpして編集したものをWebページに 貼ったりできないので困る。

ここは....原始的でもいいから何らかのラッパーが必要である。

_ [ワンセグ野郎][Linux] postconf.pl

そこでサーバのパラメータ定義とテーブルの定義を、1つのPerlファイルに書いて、Perlスクリプト側もttserverを起動するためのrunシェルスクリプトとも共用する、というしくみにした。ファイルは全部Perlスクリプトとして開発。

  • postconf.pl (サーバパラメータ、テーブル型、インデックスを張るカラムリスト)
  • post2conf.pl (サポート関数群)
  • param.pl (runスクリプト内で使われるヘルパー)

定義ファイルのpostconf.plのサーバ起動部分のパラメータの例。 後でワンセグ野郎Linuxパッケージとして配布するので保存したりする必要はないです。

$postconf::table = {
    'epg'=>{
        'tabletype'=>'t',
        'coltype'=>'epg',
        'host'=>'localhost',
        'port'=>1993,
        'maxcon'=>128,
        'thnum'=>4,
        'timeout'=>120,
        'opts'=>'#dfunit=4#xmsiz=0m',
        'cleantype'=>'normal',
    },
    'epg2'=>{
        'tabletype'=>'t',
        'coltype'=>'epg',
        'host'=>'localhost',
        'port'=>2012,
(省略)

パラメータ沢山あるけど、これらはttserverの起動に必要なものです。 これをdaemontoolsのrunスクリプト、つまり実際のttserver引数に 渡すのに、param.plというコマンドを作りました。 /mnt/epgserver/runの中身は、

(前略)
port=`perl $DIR/param.pl $tablename port`
timeout=`perl $DIR/param.pl $tablename timeout`
(こんな風にパラメータを取り出しておいて)
     if [ -n "$maxcon" ] ; then
      ulimit -n "$maxcon" >/dev/null 2>&1
    fi
    cmd="$cmd -kl -port $port -pid $pidfile"
    if [ -n "$thnum" ] ; then
      cmd="$cmd -thnum $thnum"
    fi
    (実際のttserverに渡す引数列を作成する)

ようになっている。 これでrunスクリプト自体はtablenameの部分を"epg", "epg2"とか 変えるだけで完全に共用化できるわけ。

_ [ワンセグ野郎][Linux] post2conf.pl

TokyoTyrantはKVSの中では珍しくテーブルデータベースをサポートしている(後継のKyotoTycoonからは消えてしまった)。しかしインデックスを張る部分はけっこうバカ。Perlからはsetindexというメソッドで実行できるのだが 既にインデックスがあっても再構築する という謎な動作をしてしまう。当然動作中に誤って実行すると糞遅い。

マニュアルやソースをみても回避する手段がわからなかったので、 仕方なく実際にttserverが作るインデックスファイルの存在をチェックして、足りないインデックスだけ生成するようなラッパー関数open_tyrant()を開発した。 もちろんテーブル名だけ指定すれば、ポート番号などはpostconf.plから 勝手に引いてくるのでらくちんである。こんな感じ。

my ($pe, $pec, undef, undef) = &post2conf::open_tyrant("epg:");

$peは、raw codeでいうところの「TokyoTyrant::RDBTBL->new(); open();」した後のオブジェクトである。

もう一つ問題が。KVSではカラム名一覧がとれない。そりゃそうだ...どの行にも好きなだけカラム名を足せるのだから(凸凹テーブル)。しかし、SQLライクに使おうとすると大変不便だし 人間は間違える動物 であるから、誤字タイプミスのみならず、テーブルAにはあるカラムがテーブルBにはなかった、なんてミスを減らすために何らかの方法でカラム一覧が欲しいわけです。serviceidとserivceidなんて間違いわからねえよ..........

そこで、postconf.plの定義に、

$postconf::coltable = {
   'epg'=>{
       'phych'=>102, 'ptype'=>102,
       'sectionid'=>103,
       'networkid'=>104,
       'serviceid'=>105,
       'eventid'=>106,
       'starttime'=>107,
   (省略)

というカラムハッシュを作成しておき、open_tyrantの返ってくる リストの2つめ$pecに返ってくるようにした。 検索条件を指定する場合は、

 $qry->addcond($pec->{'stime'}, $qry->QCNUMGT, $stime);

みたいにして使うわけです。わかりやすい。ついでに言うと数値変換しているので(ちょっぴり)空間効率も良くなるはずです。

_ [雑記] この連載長くなる予感

ワンセグ野郎Linuxは、ttserver群を1つのRDBMSライクに 使うためのPerlラッパーを含んでいるよ、というお話でした。

だめだ全然終る気配がないな。

本日のツッコミ(全1件) [ツッコミを入れる]

_ diablo 3 [People are yours alright! . We at the very least should ge..]


2011-08-25 ワンセグ野郎Linuxその5 [長年日記]

_ [ワンセグ野郎][Linux] ワンセグ野郎Linux SQLite3版

TokyoTyrant版を公開しようとしたら....

評判悪!(T_T)

実際問題、WindowsでSQLite3版を運用している人は 何人いるんでしょうか。居ても5人くらいだと思っていた。

でも割と個人的にショックだったので CGIを新規開発 しました(開発したはずです未テスト)。 oneseg24 project 準拠のepg.dbとperlrtmpが動くサーバで 動くようにね!

ダウンロード:webapi2_20110825.tar.gz

SQLite3版はもうずいぶん追いかけてないので、 da_eventの構造も進化してるかもしれないけど、 基本的に2つのCGI(sqlite0.plとsqlite2.pl)さえ動けば 大丈夫なので、環境にあわせて適時書き換えてください。

TokyoTyrant版との違いとして、 東京MXのマルチ編成、レコーダ状態表示、ファイルロック機能には 対応しません。【いいわけ】抜本的にテーブル構造を拡張して、oneseg24 projectのストリーマepg.plを使わずに、 拙作dumpeitの出すエレメンタリーPIDを保存するようにしないと、 マルチ編成などはできないと思います。 これ、多分epg.plを変更するより TokyotTyrant版に乗り換えたほうが早いので。

_ [ワンセグ野郎][Linux] TVRoll拡張レコーダ設定

今回の識別子は 「sqlite」 にしました。

拡張レコーダ設定

現在お使いのワンセグ野郎サーバの、 プライベートIPアドレスが「192.168.0.128」だとすると、 TVRollのセットアップのレコーダ登録設定には 「sqlite://192.168.0.128」 と書けば良いわけです。

この識別子は、個人個人が設定しなくても共用できるようで、 HTTPポート80番、RTMPポート1935番(要するにデフォルト) でありさえすれば良いようです。それ以外の人は自分で登録 する必要がありますが。

_ [ワンセグ野郎][Linux] 要するに...

既存のワンセグ野郎Webサーバに対して、たった2つのCGI、

が呼び出せるようにするだけでTVRollと連携します。 より進んだ番組検索や、Twitterとの連携コメント再生や、 トピック検索で遊べますよ、ということです。

ぐっどらっく


2011-08-26 絶賛死亡中 [長年日記]

_ [Linux] Apache Killer

Apache HTTP Serverの脆弱性を突く「Apache Killer」――パッチは48時間以内にリリース予定...

未だにこんな脆弱性が残ってるのね。 Advisoryを読む限り、Rengeヘッダを単に無視してしまう方法が簡単かつ安全な対策に思えます。

_ [Linux] Rengeヘッダとは

例えば1MBのファイルをサーバーからダウンロード中に、 ブチ切れたとする。手元のファイルは500KBしかないが、頭から ダウンロードするのタルい。後半500KBだけ欲しい。 いわゆるレジューム動作をするときにRengeヘッダはよく使われます。

あとVODだね。HTTP Streamingはほぼ間違いなくRangeを使う。

意外なところで、多くの2ちゃんねるビューワーは、DATファイル(掲示板のスレファイル)を取得するのにRengeヘッダを使います。 最大でも500KB(だっけ?)なんだから全部ダウンロードすれば いいじゃないか、と思うのだがサーバ側の負荷対策らしいね。 なるほど影響を受けるわけだ....

いいかえると、それ以外のサービスを提供している「ふつーの」 WebサーバはRangeは無視してかまわないってことですな(断言していいのか、という懸念はあるが)

_ [Linux] Debianで簡単な対策

mod_headersを有効にする。

# a2enmod headers

/etc/apache2/mods-enabled/headers.confを作成(1行だけ)

RequestHeader unset Range

Apache2を再起動する。

# /etc/init.d/apache2 restart

以上。巷に出回ってる攻撃ツールのひとつ、killapache.plは「Host does not seem vulnerable」って言って瞬間に諦めるようになった(笑)

_ [Linux] ついでにDebianでmod-evasive

同時並列に大量のアクセスが同一IPアドレスからあると、 一定時間アクセスをカットしてくれる、 そんな便利なモジュールmod-evasiveがある。 Range攻撃の抑止を行っても、大量アクセスで落ちたら話にならんので、入れていなければ入れておこう。

aptを使ってパッケージを入れよう。

# apt-get install libapache2-mod-evasive

モジュールを有効化。

# a2enmod mod-evasive

/etc/apache2/mods-enabled/mod-evasive.confを作成。

DOSHashTableSize 3097
DOSPageCount 50
DOSSiteCount 280
DOSPageInterval 2
DOSSiteInterval 2
DOSBLockingPeriod 300

よほどの大規模サイトでない限り、この設定のままでかまわない。

Apache2を再起動する。

# /etc/init.d/apache2 restart

以上。

本日のツッコミ(全14件) [ツッコミを入れる]

Before...

_ Pharmk243 [Very nice site!]

_ Pharmb770 [Very nice site!]

_ Pharme368 [Very nice site!]


2011-08-27 ワンセグ野郎Linuxその6 [長年日記]

_ [ワンセグ野郎][Linux] TSダウンロード

SQLite3版で、番組ごとのTSダウンロードができるようにしました。 本来はMP4変換とかするべきなんでしょうが、 Windowsでのエンコード環境は全く未知の世界なので対応できません。 まあtsconvかけてffmpegかければいいんでしょうが、 そこは皆さんにおまかせします。今回は枠組みだけ。

ダウンロード:webapi2_20110827.tar.gz

インストール方法は同じですが、tsdownload.plを動作させる場合は、 perlrtmpのlibディレクトリがパスに追加されるようにuse lib qw()行を 書き換えておいてください。RTMP.pmがあるディレクトリです。 たぶんSQlite3とActivePerlが動けばWindowsでも動きます。

_ [ワンセグ野郎][Linux] ロール作成

TVRollには、番組向けのTwitterコメントをまとめて 編集保存するための機能、「ロール」があります。 番組プレイヤーの画面上(か下にある)ボタンからはいれます。

番組の選択

インタフェース的にはtogetterに類似してますが、一つずつ発言を選んだりする必要はなくて、とりあえず「確定ボタン」→「インポートボタン」→「公開設定をチェック」→「登録」でロールができてしまうみたい。簡単。

編集画面で登録

このロールはトップページから辿れる「マイライブラリ」に個人ごとに格納されます。

マイライブラリ

ここに「保護中」の文字が。

保護中

これ押すとダウンロードできます。

_ [ワンセグ野郎][Linux] 全体の構造

TVRollはマイライブラリを表示するときに、 ファイル保護API経由で、レコーダに対してファイル保護されているか確認しにくる。が、当然、ワンセグ野郎Linux SQLite3版にファイル保護機構はないので「全部保護されていることにして」返答するようにした(sqlite2.plを流用し、引数を少し拡張)だからロールは、手持ちのストリームの保存期間を過ぎれば、単に再生できなくなるだけです。

「保護中」のリンクは、window.open()でVGAサイズの別ウィンドウが開き、保護されているファイルの情報などを表示するために設けられたものらしい。が、ここを乗っ取っていきなりTSファイルをダウンロードできるようにしたというわけ(tsdownload.plを呼び出す)

_ [ワンセグ野郎][Linux] 憶測&推測

実は、市販されているARecX6レコーダーは、好きな番組だけ残しておくことができない仕様になってる。しかしTVRoll APIやGUIを見る限り.....ある程度期待できるかもしれませんね。そもそも市販レコーダで「全く保存できない」製品ってどうなんだよと誰でも思うものね。

欲を言えば....USB接続のSDカードに書き出しできるといいんですがね。ケータイのmicroSDに待避できれば尚よろしい。それができれば、 わざわざ5万かけてワンセグ野郎サーバたちあげるよりも、 3万のARecX6買った方がいいね。

ワンセグ野郎はチューナー入手が大変困難だからね.....


2011-08-28 おっさんはおっさん [長年日記]

_ [雑記] 産まれて初めて

こんなの記事にするのもどうかと思うが、 産まれて初めてヘアサロンに行ってきたよ(`・ω・´) カットとカラー 白髪染め をしてもらいに('A`)

_ [雑記] 前置きが長いよ

思い起こせば前夜まで、

いきたくねええええウアアア!!

って1週間くらいずーっと悶えてたゴロ⌒ヽ`ヽ∩ __ノ。A。) ゴロゴロ

だって....美容院って言ったら女性と洒落乙メンの巣窟じゃない ですか!!ブサキモオタが行ったら 蔑まれて蹴られて石を投げられ地獄の業火に焼かれる とか思うじゃないですか!!!(被害妄想) 百歩譲って客はいいにしてもスタッフ全員女性だったら死ぬでしょ!! ドア開けた途端に嘲笑が聞こえそう!!(完全な病気)

しかし....最近白髪が増え過ぎてね(ガクリ) 今まで自分で染めてたんだけど、襟足などが うまく染まらないんだな既に。 実家帰って親にやってもらうことも考えたけど、 それはそれで情けない話だ。

_ [雑記] ブサオタは情報収集だ

引きこもりニート&ネット番長な俺はいろいろ調べました。結局 ベストサロンが一番役立ったかな。 きめ細かな検索条件が良い。 しかし男性歓迎のところを見つけても、店のHPを見ると スタッフが女性だらけのところが多く.....まあ当然か。

それでも調べて行くと、スタイリスト男性1+女性1で、 数席でこじんまりとしたメンズカット経験豊富の店が 2駅先にあるじゃあ〜りませんか....ごくり。

_ [雑記] 突撃

オタクらしく夏の日差しに汗だくになってから突撃(最悪)

屠殺場の如きQBハウスとは違うのう。白を基調とした洒落乙空間に、 観葉植物など置かれていてビビる。 すでに挙動不審と化す。どもる、足がガクガクする、 座ってもYokohamaWalkerを逆さまに読む、など。だめだ。

しかし...待ち時間が長い...(^^;

他のお客さんに対応しているスタッフを見ていたら、 汗もひいて周囲を見る余裕がでてきた。 この店はスタイリスト二人だけで、かつ他のスタッフがいないため、 5席しかなくてもてんてこ舞いのようだ。

_ [雑記] カウンセリング

やっと順番が回ってきたので、冷静にきっぱりと要望を伝える。 「オウフwww拙者をwwwwww若く見えるようにしてくださいディクシwwwww」 よし!なんとか通じたようだ(ぉい) いや普通に悩み相談しましたけどね.....髪が固くて伸びっきりになるとヘルメットと化すこととか、一皮めくると白髪だらけだとか。 すると「側頭が膨らんでるのは日本人にありがちなので気にしないで」「カラーはダークブラウンの方が白髪が目立たない」みたいなことを言われた。さすがにブラウンは断ったけど。

_ [雑記] カット

自分で染めた部分は長めのところにしか色がのっていないため、 カットが進むと どんどん真っ白 になってしまって 燃え尽きた明日のジョー感すごい....これカラー一緒に頼んで正解だったわ。

トークは、俺はキモオタなので正直話すネタがないのだけど... 代わりに男性スタイリストが店を立ち上げるまでの話をきいていた。

上場企業のチェーンで店長になって数年やってたこと(この時点で俺の中で彼は「店長」になった)。 その間、先輩のスタイリストが先に独立していっても2年くらいで店潰して戻ってきたこと(!)。 美容室の客入りは季節需要的な波があるのでけっこう大変ということ。渋谷では紹介キャンペーンやってもあまり人が来なかったこと。 だから自分が店を立ち上げるときは、ケチケチ大作戦で自力でティッシュ配りをやって顔を売ったこと。それでも最初はお客が来なくて苦労したこと。でも神奈川の片田舎の特性(?)なのかお客さんが芋蔓式に別のお客さんを紹介してくれて突然忙しくなってしまったこと、など。

聞いてた感想は、美容師という武士(もののふ)は、職人であり事業主でもあるという感じ。やっぱ単なるサラリーマンとは経験値が違うね。 俺よりずっと若いんだけどけっこうな苦労をしてるんだよね。えらいなあ。

_ [雑記] カラー

ここで女性スタイリストに交代してカラー.... 全くトークなし!(T_T) ええキモオタとは話す価値ありませんかそうですかー! しかしすごーく入念に塗りたくってくれた。これは自分でやるのとは根本的に違うね。

洗い流すときのシャンプーはちょっと緊張した。 「お客さん初めてかい?力抜けよ」「ああんだめ////」 みたいな会話があったりなかったり(死)なんせ頭洗いがあったのは中学のときの馴染みの床屋まで。その後はずーっとカットのみ床屋、安い店を渡り歩き、しまいにはQB HOUSEまで堕ちたからなあ。

しかしあれだね、人の手で洗ってもらうだけでけっこう 癒されるね。 癒し時間を金で買う、という感じと言うと下世話な表現だが。 普通の女性にとっては、リラックス空間なんだろうなとちょっとオモタ。

_ [雑記] ブローとセット

また店長に交代して、セットしてもらいつつ、日常のメンテ方法を教えてもらう。ワックスでモヒカン部分(?)を軽く持ち上げるようだ。 しかし、最近の女性視点だとツンツン立ってるのはNGなのだとか。 そんな説明を聞きながら 「そうか〜普通の男は朝セットしてから出社するんだよねー」 とかアフォな感想を持っていたキモオタがひとり。

鏡に映る自分を見て 「あれ?俺かっこよくね?(爆)」 とか思ったのは秘密。カッパヘルメットよりは全然いいね。 というか....QB HOUSEでカッパヘルメットになってしまうのは、 頭の面を全て同じ長さで切られてしまうからなのかな.....

_ [雑記] そして次の日起きて

と、感動した割には、一晩開けたら、従来の床屋モードと代わり映えのしない平凡な状態に戻ってしまった。ほんのちょーっと整えるだけでだいぶ印象が変わるのね。しかしカラーは めちゃくちゃ良く染まってて もう自分で染める気力がなくなった!これはすごい。プロすごい。

まあ.....普通の男子は「セットに何十分もかけて〜」みたいな経験を、少なくとも中学の早い時期に過ぎるんだろうねえ。なるほど、俺はおセックスもロクにできずに年だけ食う訳だな。 まずその出っ張った腹と髪の毛とヒゲをなんとかしろと。ハイ。わかりました!死んだ!


2011-08-30 ワンセグ野郎Linuxその7 [長年日記]

_ [ワンセグ野郎][Linux] またバージョンアップ

Windows+ActivePerlで、CGIがタイムアウトになってしまう らしいので、少し原因を調査して直してみた。

ダウンロード:webapi2_20110830.tar.gz

ついでに改行コードもWindows(CR+LF)にして、 シェルヘッダもC:/Perl/bin/perlに変更しておいた。

_ [ワンセグ野郎][開発] WindowsのCGIが死ぬほど遅い

さすがに全く動かさないのもアレなので、 WindowsにApache2とActivePerlをインストールして、 sqlite0.plとsqlite2.plは検証してみた。 そしてWindowsのCGIが死ぬほど遅いことに気づいた。 sqlite0.plは、たった400件で30秒以上かかる。テストマシンはSempron1.6GHzだけど...遅すぎる。Linuxサーバだと0.9秒とかそんなもんなのに。

sqlite0.plのEPGデータをとってきて所定のハッシュに登録する ループがある。擬似コードで書くと、

while ($rcols = $sth->fetch()) {
(カラムをリストに取り出す)
(言語やタグの変換を行う)
(検索条件で間引きをする)
(ハッシュに入れる)
}

こんな感じだが、SQLite3からデータを取り出す部分のsth->fetch()は一瞬で終わってしまい、(言語やタグの変換を行う)の部分がめちゃくちゃ時間を消費している。つまり SQLite3は白だ。

_ [ワンセグ野郎][開発] さらに調べると....

SQLの時刻文字列をPerlのDateTimeオブジェクトにするメソッドで、軽く気軽にカジュアルに、こう書いていた。

sub searchutil::sqlite3rev {
    my ($str) = @_;
    my $dt = DateTime->now( time_zone=>'local' );
    if ($str =~ m!([\d]+)-([\d]+)-([\d]+)\s([\d]+):([\d]+):([\d]+)!) {
        $dt->set(year=>$1, month=>$2, day=>$3, hour=>$4, minute=>$5, second=>$6);
    }
    return $dt;
}

........別におかしくないよなあ?と思ったら

DateTime->nowで0.3秒くらいかかる!(T_T)

なんぞこれ。ActivePerlのバグじゃないのか。それともWindowsは現在時刻とってくるのにこんなウェイトが必要だというのか!!! 結局最初に1つだけ作成して、clone()で複製を作るようにしました。

人生という冒険は続く(劇違)


2001|04|
2006|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|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2011年
8月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(11777+2560143)