Genre Filterの考察っぽいもの [PC関連]
先のエントリーで,『中の人』様に頂いたネタをちょっと考えてみました。
考えたって言うより,"なんかやってみた”って感じ
そんな訳で,続きはこちら… 以下は,面白く無いですよ。
注:文末 "おまけ" が,生SQL文なので長いです…
目的
お手軽にジャンルフィルタを載せてみよう!
目標
まぁ,今より簡単になるなら,越したことはない… 程度(笑
実験
案1: あらかじめ,番組表取得時に,ジャンル紐づけテーブル(genre)を生成する。
→もしかして,これって,当方,勘違いしてます?
ご提案頂いたネタ
select * from event
where id in (
select event_id from genre
where code in (10,11) group by event_id
)
上記の genre
テーブルを作らずに,クエリーだけで,どんな感じか,やってみた。
SQL文が素人丸出しなのは,ご愛嬌って事で(笑
ただし…
genre
テーブルのcode
は,(大分類と中分類)x4な,構成です。- where句は,大分類のみ
- ジャンルのcode取り出しは,AppDefine.GenreConverter.GetText()のまんま(パクリ)
select ev.* from event ev
where ev.id in (
select t_genre.event_id from (
/* genre tableはこんな感じ? */
select
id as event_id,
(((genre) & 255) >> 4) as g0_lv1,
(genre) & 255 as g0_lv2,
(((genre >> 8) & 255) >> 4) as g1_lv1,
(genre >> 8) & 255 as g1_v2,
(((genre >> 16) & 255) >> 4) as g2_lv1,
(genre >> 16) & 255 as g2_v2,
(((genre >> 24) & 255) >> 4) as g3_lv1,
(genre >> 24) & 255 as g3_v2
from event
) as t_genre
where
t_genre.g0_lv1 in (10,11)
or t_genre.g1_lv1 in (10,11)
or t_genre.g2_lv1 in (10,11)
or t_genre.g3_lv1 in (10,11)
group by t_genre.event_id
)
おお,なるほど,ちゃんとフィルタするぞぉ!
事前にテーブル用意すれば,検索早そうだし。
案2: SQL文だけで,どうにかする
案1で,ごたごたしてたら,これもいいかなぁ~と。
実際にWebUIに記述して試していないので,使えるかは不明。
-- 追加テーブルなしで,Genreフィルタ("趣味/教育"+"福祉")
select * from event
where
(((genre) & 255) >> 4) in (10,11)
or (((genre >> 8) & 255) >> 4) in (10,11)
or (((genre >> 16) & 255) >> 4) in (10,11)
or (((genre >> 24) & 255) >> 4) in (10,11)
中間テーブルを使わずに,直でジャンルのコードを検索します。
結果
え?実験って,これだけ(笑
タブレットなど,比較的,文字入力が面倒な奴の場合,大分類だけでも選択式にすれば,使い勝手がよくなるかな… ジャンルのリストもDBに載せちゃえばWebUIから使いやすそうだし…
現状,mod版の genre_text
に対して,正規表現でジャンルを絞り込む方法でも,さほど,問題ない気がしました。 特に,当方,ジャンル絞込を使う際は,大・中分類まぜこぜで指定するので,大分類だけだと,ちょっと微妙な感じです。
あと,問題があるとすれば,正しい語句を入力する必要がある って事。
と,やり方が,あまり美しく無い orz
おまけ
実は,初め,盛大に勘違いしてまして…
genreX.defをDBに取り込んで,それを使うのだと思ってしまいました。
…で,作っちゃったのですが,消すのはもったいと思いSQL文に書き出しました。
ご活用頂ければ幸いです。(SQLite用です)
/*
genre:
ARIB STD-B10 デジタル放送に使用する番組配列情報標準規格 5.1版
第2部番組配列情報における基本情報のデータ構造と定義 「付録H:コンテント記述子におけるジャンル指定」
genre1.def/genre2.defをテーブルにしてみた…
*/
BEGIN TRANSACTION;
DROP TABLE IF EXISTS `genre1`;
CREATE TABLE IF NOT EXISTS `genre1` (
`code0` INTEGER UNIQUE, --大分類コード
`genre_text` INTEGER, --大分類
PRIMARY KEY(`code0`)
);
INSERT INTO `genre1` (code0,genre_text) VALUES (0,'ニュース/報道');
INSERT INTO `genre1` (code0,genre_text) VALUES (1,'スポーツ');
INSERT INTO `genre1` (code0,genre_text) VALUES (2,'情報/ワイドショー');
INSERT INTO `genre1` (code0,genre_text) VALUES (3,'ドラマ');
INSERT INTO `genre1` (code0,genre_text) VALUES (4,'音楽');
INSERT INTO `genre1` (code0,genre_text) VALUES (5,'バラエティ');
INSERT INTO `genre1` (code0,genre_text) VALUES (6,'映画');
INSERT INTO `genre1` (code0,genre_text) VALUES (7,'アニメ/特撮');
INSERT INTO `genre1` (code0,genre_text) VALUES (8,'ドキュメンタリー/教養');
INSERT INTO `genre1` (code0,genre_text) VALUES (9,'劇場/公演');
INSERT INTO `genre1` (code0,genre_text) VALUES (10,'趣味/教育');
INSERT INTO `genre1` (code0,genre_text) VALUES (11,'福祉');
INSERT INTO `genre1` (code0,genre_text) VALUES (12,'');
INSERT INTO `genre1` (code0,genre_text) VALUES (13,'');
INSERT INTO `genre1` (code0,genre_text) VALUES (14,'拡張');
INSERT INTO `genre1` (code0,genre_text) VALUES (15,'その他');
COMMIT;
BEGIN TRANSACTION;
DROP TABLE IF EXISTS `genre2`;
CREATE TABLE IF NOT EXISTS `genre2` (
`code0` INTEGER, --大分類コード
`code1` INTEGER, --中分類コード
`genre_text` TEXT, --中分類
FOREIGN KEY(code0) REFERENCES genre1(code0)
);
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,0,'定時・総合');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,1,'天気');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,2,'特集・ドキュメント');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,3,'政治・国会');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,4,'経済・市況');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,5,'海外・国際');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,6,'解説');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,7,'討論・会談');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,8,'報道特番');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,9,'ローカル・地域');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,10,'交通');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (0,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,0,'スポーツニュース');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,1,'野球');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,2,'サッカー');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,3,'ゴルフ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,4,'その他の球技');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,5,'相撲・格闘技');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,6,'オリンピック・国際大会');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,7,'マラソン・陸上・水泳');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,8,'モータースポーツ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,9,'マリン・ウィンタースポーツ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,10,'競馬・公営競技');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (1,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,0,'芸能・ワイドショー');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,1,'ファッション');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,2,'暮らし・住まい');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,3,'健康・医療');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,4,'ショッピング・通販');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,5,'グルメ・料理');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,6,'イベント');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,7,'番組紹介・お知らせ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (2,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (3,0,'国内ドラマ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (3,1,'海外ドラマ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (3,2,'時代劇');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (3,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,0,'国内ロック・ポップス');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,1,'海外ロック・ポップス');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,2,'クラシック・オペラ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,3,'ジャズ・フュージョン');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,4,'歌謡曲・演歌');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,5,'ライブ・コンサート');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,6,'ランキング・リクエスト');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,7,'カラオケ・のと゛自慢');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,8,'民謡・邦楽');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,9,'童謡・キッズ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,10,'民族音楽・ワールドミュージック');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (4,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,0,'クイズ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,1,'ゲーム');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,2,'トークバラエティ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,3,'お笑い・コメディ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,4,'音楽バラエティ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,5,'旅バラエティ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,6,'料理バラエティ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (5,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (6,0,'洋画');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (6,1,'邦画');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (6,2,'アニメ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (6,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (7,0,'国内アニメ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (7,1,'海外アニメ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (7,2,'特撮');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (7,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,0,'社会・時事');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,1,'歴史・紀行');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,2,'自然・動物・環境');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,3,'宇宙・科学・医学');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,4,'カルチャー・伝統文化');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,5,'文学・文芸');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,6,'スポーツ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,7,'ドキュメンタリー全般');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,8,'インタビュー・討論');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (8,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (9,0,'現代劇・新劇');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (9,1,'ミュージカル');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (9,2,'ダンス・バレエ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (9,3,'落語・演芸');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (9,4,'歌舞伎・古典');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (9,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,0,'旅・釣り・アウトドア');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,1,'園芸・ペット・手芸');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,2,'音楽・美術・工芸');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,3,'囲碁・将棋');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,4,'麻雀・パチンコ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,5,'車・オートバイ');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,6,'コンピュータ・TVゲーム');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,7,'会話・語学');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,8,'幼児・小学生');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,9,'中学生・高校生');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,10,'大学生・受験');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,11,'生涯教育・資格');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,12,'教育問題');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (10,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,0,'高齢者');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,1,'障害者');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,2,'社会福祉');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,3,'ボランティア');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,4,'手話');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,5,'文字(字幕)');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,6,'音声解説');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (11,15,'その他');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (14,0,'BS/地上デジタル放送用番組付属情報');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (14,1,'広帯域 CS デジタル放送用拡張');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (14,3,'サーバー型番組付属情報');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (14,4,'IP 放送用番組付属情報');
INSERT INTO `genre2` (code0,code1,genre_text) VALUES (15,15,'その他');
COMMIT;
上のテーブルを使って,以下のクエリを実行すると…
select g1.genre_text as 大分類, g2.genre_text as 中分類
from genre1 as g1
inner join genre2 as g2 on g1.code0=g2.code0
108件,出力します。 まるで煩悩の数の様…
勘違いしてるかも。
eventひとつに対して、genreの行が複数になります。
イメージとしてはこんな感じ。
-----------
[eventテーブル]
id,title,・・・
1,タイトル1,・・・
2,タイトル2,・・・
[genreテーブル]
event_id,code
1,0x11
1,0x12
1,0x13
2,0x11
2,0x31
-----------
ついでに、tvmaidのジャンルの他の問題としては、
・4つしか保持していない
・BS、CSで使われている拡張ジャンルを保持してない
genreテーブルで、これらも一緒に解決できると思います。
ただ、それほど必要かと言われると・・・
by tvmaid (2018-04-06 17:53)
番組情報が存在するtvmaid-5.dbを「DB Browser for SQLite」等で開いて、下のSQLで試せます。
--temp(一時テーブル)なので、DB Browserを終了すれば消える
CREATE temp TABLE genre (event_id, code);
--実行前に、下のevent_id(1や2)は、eventテーブルに存在する数値に変更してください
insert into genre values(1,0x11);
insert into genre values(1,0x12);
insert into genre values(1,0x13);
insert into genre values(2,0x11);
insert into genre values(2,0x31);
--2件ヒットするはず
select * from event where id in (select event_id from genre where code in (0x11,0x12) group by event_id)
--1件ヒットするはず
select * from event where id in (select event_id from genre where code in (0x31) group by event_id)
by tvmaid (2018-04-06 18:24)
> 勘違いしてるかも。
あぁ,やっぱり…それも盛大に orz
教えて頂いた方法を試してみました。
で,こんな形でネタを仕込んで
CREATE temp TABLE genre (event_id, code);
insert into genre select id, (((genre) & 255) >> 4) as g0_lv1 from event
where (((genre) & 255) >> 4) <> 15;
insert into genre select id, (((genre >> 8) & 255) >> 4) as g1_lv1 from event
where (((genre >> 8) & 255) >> 4) <> 15;
insert into genre select id, (((genre >> 16) & 255) >> 4) as g2_lv1 from event
where (((genre >> 16) & 255) >> 4) <> 15;
insert into genre select id, (((genre >> 24) & 255) >> 4) as g3_lv1 from event
where (((genre >> 32) & 255) >> 4) <> 15;
insert into genre select id, (genre) & 255 as g0_lv2 from event
where (genre) & 255 <>255;
insert into genre select id, (genre >> 8) & 255 as g1_lv2 from event
where (genre >> 8) & 255 <>255;
insert into genre select id, (genre >> 16) & 255 as g2_lv2 from event
where (genre >> 16) & 255 <>255;
insert into genre select id, (genre >> 24) & 255 as g3_lv2 from event
where (genre >> 24) & 255 <>255;
色々条件変えて,検索!
ちゃんと,ヒットします(当然ですね(笑
今回,色々弄っていて気が付いたのですが…
・中間テーブルを使った方が,select文にwhere句をダラダラ(上記SQLのwhere句同等)を書くより動作が速い感じ。
・中間テーブルは,面倒なのでEPG取得後に一気に作りたいけど,EpgUpdate.csのGetEvents辺りで,コツコツ作るのが正解?
・大分類だけにすれば,中間テーブルのレコード数が減らせる。(中分類を入れても良いけど,UI側が煩雑になりそう)
・”拡張”が邪魔(笑
労力の割には,得られるものが少ない… ってことで,当方,本件は"見送り"ですね(笑
それに,以前,お話をいただいた通り,"ジャンルでフィルタ"って,意外と使わないのです。
> 4つしか保持していない
rplsinfo(GUI)でも,3つ(3組)なのでOK(笑
> BS、CSで使われている拡張ジャンルを保持してない
各事業体が用意している(?)であろう,拡張ジャンルの情報を見つけられませんでした。
"拡張"付いてても,普通のジャンルコード(?)が付いてるし…
おまけ:
EPGとかSearchに効きそうなので,こんな感じにしてみました。
"拡張"をスキップしているだけですが,ジャンルカラーが,良い感じになります。
でも,対象が有料チャンネルに多いので,当方には,あまり意味ないかも orz
util.js
getFirstClass: function (genres)
{
var id = (genres & 0xf0) >> 4
for (var i = 0; i < 4; i++){
if (((genres >> i * 8) & 0xf0) >> 4 != 0xE) {
id = ((genres >> i * 8) & 0xf0) >> 4
return this.getClass(id)
}
}
return this.getClass(id)
},
by keii (2018-04-09 12:45)
コメントってインデントが効かないんだ orz
by keii (2018-04-09 12:46)
ジャンルテーブルは、ジャンルを使った新機能を思いついたらでいいですね。
ジャンルフィルタは、あらかじめ設定でジャンルを選択しておき、
番組表や検索のフィルタボタンを押すと、そのジャンルの番組だけ表示、みたいなのを考えていました。
おもしろそうだけど、使わなそう・・・
>"拡張"付いてても,普通のジャンルコード(?)が付いてるし…
普通のも付けたうえで、例えば映画チャンネルだと、
全部「映画」になってしまうので、もっと細かく分けるためにあるようです。
拡張ジャンルについては、以下のリンク。
他の場所にもあるかも。これは英語版なので読めん・・・
0xE0のとき、付属情報(中止の可能性など)。
https://www.arib.or.jp/kikaku/kikaku_hoso/tr-b14.html
6.0-E1 2015.12.03 第4分冊(下の方の英語版) 384ページ
0xE1のとき、CS拡張ジャンル(スポーツと映画)
https://www.arib.or.jp/kikaku/kikaku_hoso/tr-b15.html
4.6-E1 2008.12.12 第4分冊(下の方の英語版) 324ページ
これは、EDCBのソース。コードを少し変更して使っているみたい。
https://github.com/xtne6f/EDCB/blob/work-plus-s/Common/EpgTimerUtil.cpp#L281
>"拡張"をスキップしているだけですが,ジャンルカラーが,良い感じになります。
たしかに、使わないなら0xEは最初から入れなくてもいいかも。
ちなみにjavascriptは、ビット演算が32ビット符号付き計算になってしまうので、
「0xff000000 >> 24」は思ったようにならないようです。
ジャンルデータを少し変更しようかと考えています。
・ジャンルを6個まで取得
・拡張ジャンルを取得
データベースは変更なし。
event.ganreに、あと2つぶん詰め込みます。
(増えた部分をスクリプトで使う場合、少し工夫が必要)
拡張ジャンルを追加しますが、2バイトにはせず、基本ジャンルの使ってないコードにマッピングします。
(予備部分「0xCと0xD」に入れてしまう)
by tvmaid (2018-04-10 18:58)
> ジャンルテーブルは、ジャンルを使った新機能を思いついたらでいいですね。
> :
> おもしろそうだけど、使わなそう・・・
もう,全く違うアプローチで,番組表→(自動)予約する感じですね。
# TvRock風じゃないな,これは…(笑
ちなみに,限界までチューナ載せて,該当ジャンル全録とか(笑
TVTestの番組表の様に,"ショッピング"をブラックアウトさせたりとか?
結局,"あぁ,そんな機能があるんだ…"程度で,積極的に活用しない気がします。
当方も,ジャンルフィルタ付けたけど,全然使っていない(笑
家族で1台(1PC)な使い方等,全く別のシチュエーションであれば,なんか出て来そうですが…
何も想像できない当方,頭固いですね orz
> 拡張ジャンルについては、以下のリンク。
誠に有難うございます。 探せず難儀しておりました。
# どこから当たれば良いかすら,思い浮かばない状態でした。
# B10見たけど英語版じゃ,シンドすぎですorz
これで,謎(?)が解けました,が,理解できてないな…多分(笑
> ちなみにjavascriptは、ビット演算が32ビット符号付き計算…
あ”!なんと"がっかり"なミス orz
C#からのコピペじゃ,当然,ダメですよね(泣
> ジャンルデータを少し変更しようかと考えています。
拡張を拾って頂けるのは,幸いです。
CSの12Slot化で,映画系は契約者増 →需要が増える?かな。
> (予備部分「0xCと0xD」に入れてしまう)
策定されてから,ほとんど変改していない感じだし,スポーツ/映画,2つ分あればOKですね。
洋画/邦画の区別は,先についているであろうジャンルコードで区別できそうですし。
ちなみに,この様なお話は,"掲示板"の方が良いでしょうか?
# 板も盛り上がるし(笑
# でも,混沌と化す…かな(爆
by keii (2018-04-11 10:59)
>ちなみにjavascriptは、ビット演算が32ビット符号付き計算…
ごめん、問題ないです。
この場合は途中でマスクしてるので。
比較が失敗すると勘違い・・・
>スポーツ/映画,2つ分あればOKですね。
そう思ってましたが、邦画と洋画で微妙に違うし、
付属情報も入れようとすると、別の場所にも押し込む必要がありそう。
>"掲示板"の方が良いでしょうか?
こちらでいいです。
たぶん、他の人のレスはつかないのでw
掲示板に書いてもらえれば、そちらでレスしますが。
by tvmaid (2018-04-11 21:53)
>> ちなみにjavascriptは、ビット演算が32ビット符号付き計算…
> ごめん、問題ないです。
お!そうでしたか。 実は,本件の検証を先送りしてました。(オイオイ
で,陰で(?),先のコメントに有った,"ジャンルを6つ,拡張も取ってやるぜ!" に刺激を受けて,自前で出来ないかと,トライしてみましたが,案の定,悪戦苦闘(笑
init64でビットシフト >4x8bit でなんで,マイナスになっちゃうのぉ〜って,初歩の初歩でドツボってました(笑
# これは,もうちょっと,自力で頑張ります(これ日々,勉強です
>> スポーツ/映画,2つ分あればOKですね。
> そう思ってましたが、邦画と洋画で微妙に違うし、
う〜む。 これは,"どこまで本気(正確に)で対応するか?" ですよね…
ユーザーからすれば,"こんなジャンル,有ったんだなんだ〜,ちょっと便利かも" 程度では。
もちろん,後々のことを考えると,"ちゃんとすべき" なのでしょうけど,いつ何時ARIB(これはスカパー!かな?)が仕様変更するか分からないし
仕様変更の時には,もうMAYAじゃなくって,別な"娘"になってるかもよぉ(笑
MAYAでは,(解ってるけど)こうしたが,でも,次は本気出す!でOKでは?
そして,MAYAで,”実験的実装で,問題の明確化” をするのが,”吉” と思うのは,当方の身勝手でしょうか(笑
あまり好きではない言葉ですが "次に繋がる" って事で,よしなに(笑
# 現実は,"次が有る" なんて,世の中,そんなに甘くないっすよ,ほんと orz
>> "掲示板"の方が良いでしょうか?
> こちらでいいです。
了解です。 でも,ペースは,”まったり” で,お願いしますね。
# 現状,正直,付いて行けてませんし…(苦笑
by keii (2018-04-11 22:56)