録画サーバ構築の備忘録
Ubuntu 20.04LTS上に録画サーバを構築する際の手順と参照した文書の一覧。
どうせまた近日中にシステムディスクが壊れるだろうから、その際の備忘録として。
Ubuntuインストール
- ググるのが一番。UEFIの互換モードがうまく動かなくてかなり時間を食ったけど、互換モードをオフ→USBドライブからのブート→インストールでなんとか先に進めた。
- 最新アップデートのインストールなどはインストール済んでから一括でapt-get upgradeすりゃいいので後回しでOK。
リモートで接続できる環境のセット
- まずは固定IPにしよう。DNS設定も忘れずに。
- XRDPを入れよう。https://gihyo.jp/admin/serial/01/ubuntu-recipe/0621
- SSHも入れよう。https://www.yokoweb.net/2019/12/08/ubuntu-desktop-ssh-server/
- これでリモートからあれこれできるのでヘッドレスに戻してOK。
録画システムを入れよう
- docker-mirakurun-epgstation コンテナでお手軽設置。https://github.com/l3tnun/docker-mirakurun-epgstation
- チューナーがPT3前提なので、それ以外の場合はこちら。https://qiita.com/yukarimazedofu/items/dc77db912bdc82a41425
- チャンネルスキャンをしよう。https://mnao305.hatenablog.com/entry/2019/02/25/200654
録画を共有ディスクに入れて家庭内LANに公開しよう
- 録画用ドライブをマウントできるようにしよう。https://qiita.com/kihoair/items/03635447591358210772
- docker上のepgstationの保存先を編集するやりかたがイマイチ分からなかったので recordedフォルダをsymlinkに置き換えて録画用ドライブに書き込めるようにしよう。https://www.atmarkit.co.jp/ait/articles/1605/30/news022.html
- 録画用ドライブをsambaで共有して、他のPCから参照できるようにしよう。https://www.server-world.info/query?os=Ubuntu_20.04&p=samba&f=1
- パスワードつけたい場合はこちら。https://www.server-world.info/query?os=Ubuntu_18.04&p=samba&f=2
まだ生きてるよ
もう4年も放置していたこのブログだけども、まだ機能しているみたい。すごい。
ちまちまとやっていきましょう。
Windowsバッチファイルで、バッチのある場所にcdする方法
カレントディレクトリをバッチファイルのディレクトリにする - 強火で進め
タイトルのまんま。しかし知らないといろいろとややこしい。
sedをWindowsで使う
処理しなきゃいけないテキストがアレで大量に置換処理とかをしなきゃいけないときに、sedができると大変ハッピーになれます。
"Web開発ツールを使いこなせ!"クリエイターの道具箱(14) sedを使った文字列置換 | マイナビニュース
基本はここに一通り書いてある感じ。
sed for Windows
バイナリインストーラのダウンロードはこちら。
What characters do I need to escape when using sed in a sh script? - Unix & Linux Stack Exchange
どの特殊文字をどういうときにエスケープしなければいけないか。
RでHTMLのテーブルになっているデータに対して基本的な統計をする
Scraping html tables into R data frames using the XML package - Stack Overflow
何も考えずに表として読めて便利!でもデータフレームには読んだあとで自分で変換するのがよさげ。
R: Coerce to a Data Frame
データフレームへの変換。
R言語を扱う際のtips by Rstatistics.net - Qiita
読んだデータの数値が数値になってアレなときに。
Removing duplicated rows data frame in R - Cross Validated
データソースがアレで重複が多いときに、重複を削る方法。
r - How to sum a variable by group - Stack Overflow
カテゴリごとの合計を出す、という初歩的な処理のやり方。
Column Names of R Data Frames - Stochastic Nonsense
データフレームの列名を変更する方法。
Rによる調査データの整理 - FPU SLC
データが読めた後、データを処理する方法。
http://stat.biopapyrus.net/graph/barplot.html
棒グラフでデータを表示する方法あれこれ。
r - How can I make my vertical labels fit within my plotting window? - Stack Overflow
棒グラフの項目ラベルが画面からはみ出したときの対処法。
call - Running a Windows executable file from within R with command line options - Stack Overflow
WindowsコマンドをRから呼び出す方法。これを使ってsedを呼んでプリプロセッシングをゴニョゴニョとすると大変良いです。
[音楽]SFCは名曲揃いだったなぁ
同時に出せる音の数も音色も限られていたのに、今聴いても迫るもののある名曲が多かったと思う。特に90年代のスクウェアは神憑り的だ、と思ったので個人的に好みの曲へのリンク。
結局のところ、制約がクリエイティビティを生み出す、だとか、弘法筆を択ばず、だとかの使い古された話に落ち着くわけだけど、それにしても凄い時代だった。
クラスター分析(クラスタリング、cluster analysis)に関するWeb上の参考ページリスト
業務でクラスター分析をしてみた際に参考にしたページ達。
そもそもクラスター分析とは
クラスタリング (clustering) とは,分類対象の集合を,内的結合 (internal cohesion) と外的分離 (external isolation) が達成されるような部分集合に分割すること
そうそう、そういう事をしたいんです。
なんかドベーっとした売上データがあって、傾向を出しやがれ!って言われる訳ですが、次元が多すぎて物理空間の制約から外に出られない私の思考ではどうもならなかったので計算でなんとかしようと思ったわけです。
なるほど、階層型と非階層型があるわけですね。手持ちのデータが多いのか少ないのかよく分かりませんが、とりあえず計算量が少なそうな非階層型から試してみましょう。
非階層型クラスタリング - k-means法
- k平均法 - Wikipedia
- データ分析・解析|マーケティングリサーチのマクロミル
- k-means 法の注意点とオレオレベストプラクティス - froglog
- kmeansで楽できる(かもしれない)パッケージを作った - yokkunsの日記
手持ちの某処理系ではk-meansはあったけど、ykmeansみたいな良きに計らえ系のパッケージは無かったので、まぁ結果が安定しないしない。毎回結果が違うんですね。なんだこりゃ。
最初に選ばれる点がどこになるかで結果が結構違うわけですね。なるほどダメです。
データ量もどうやら一般にこういう分析をする向きからすると屁でもない量のデータしか無い様子ということが掴めたので、階層型クラスタリングにスイッチ。
階層型クラスタリングの前に処理系の準備 - R
手持ちの処理系だととても手に負えそうにないので、統計処理専門の処理系であるRを導入。これが無料だもんなぁ、良い世の中になったなぁ。
階層型クラスタリング + ヒートマップ
- Hierarchical clustering - Wikipedia
- https://www1.doshisha.ac.jp/~mjin/R/28/28.html
- R: Distance Matrix Computation
- R: Hierarchical Clustering
- R: Draw a Heat Map
- http://stat.biopapyrus.net/graph/heatmap.html
- RによるHeatmapグラフの作成 - 霧笛望のもったいない開発保管庫
- r - How to add more margin to a heatmap.2 plot with the png device? - Stack Overflow
Rでとりあえず階層型クラスタリングを実行。案外簡単にできた。
個人的な好みでしかないし、スキル不足だからなのは明確ではあるのだけど、やっぱりアルゴリズムは安定なものが精神衛生上良い。
完成したヒートマップは業務データが含まれるので自粛。
上記一番下のリンクは、グラフ描画時のマージン設定。マニュアルに書いてなくて多少ハマった。
library(gplots) table <- read.csv("hogehoge.csv",header=TRUE,row.names=1) d <- dist(table,method="canberra") cluster <- hclust(d, method="centroid") heatmap( as.matrix(table), Rowv = as.dendrogram(cluster), Colv = NA, col = heat.colors(256), margins = c(8,5), )
おまけ: データの標準化
あんまり絶対値的に違いすぎる量がデータの中にあると、絶対値が少ないパラメータのクラスタ形成に対する寄与度が相対的に小さくなってしまう(そりゃ距離の計算だしね)ので、標準化したほうがよさげ。