chromecastを買ってみた

なんだか日本で発売になってから結構時間が経ってたようで、既に話題性もさほどなさそうだけど、chromecastを買ってみた。

まー。安いし。失敗してもそんな痛くない。

こいつでなにが出来るかって言うと、テレビのHDMI端子に接続して、動画や音楽の再生が出来るってすぐれもの。

基本的には、クラウド系の動画サービス(Google Play ムービー& TV とか  dビデオ とか)を、テレビで再生させるためのもの。

ただ、自分はそういったサービスはまず使わず、ローカルに保存している動画を再生したいので、購入前に調べたところ、DLNAの動画も再生出来るとのこと。それなら自分でも結構使い道ありそうなので買ってみた。

動画の形式はかなり制限があり、ほぼH.264だけと思っておいた方がよさそう。

サポート形式

最近はH.264のみだからいいのだが、古い動画とかだと別の形式だったりするのでそうなると再生出来ない。

まー。そこは今までどおりノートPCを直接テレビにつなげばいいのでそんなに気にしないことにする。

基本的には、HDMIに接続して、Android端末からセットアップを行う。セットアップは非常に簡単だが、自分の環境では、WI-FIが,802.11aを使っていたため、802.11gに切り換えないとうまくいかなかった。802.11aなんて世界的に見ればマイナーでしょうから仕方がない。

セットアップが終われば、android端末から、動画をchromecastに転送するだけ。ただ、androidアプリ側で対応している必要があるので、転送出来るアプリはかなり限られる。まず動かしてみたいだけなら、youtubeが一番簡単だと思う。

で、自分のやりたい、家の中にあるDLNAサーバの動画再生だが、DLNAをchromecastに転送出来るアプリとしては、使ってみた感じ以下がおすすめ。

BubbleUPnP

UIは日本語化されてないけど、日本語のファイルも普通に読めるし、やりたいことは出来る。

で、次にお勧めなのが

LocalCast

こちらもUIは英語だが普通に使える。しかも上のアプリでは出来ないファイル共有からの再生も出来るすぐれもの。NASとかに入っている動画も再生出来るので、DLNAサーバいらず。

ただ、自分の場合は以下の点でBubbleUPnPの方を使うことにした。

  • NAS(CIFS/SMB)に置いてあるファイルは、形式が古いのでそもそも再生できない。(完全に個人的な理由)
  • LocalCastだとファイル名が省略されてしまい、長いファイル名だと動画を識別出来ない。(設定があるのかもしれないが見つからなかった)
  • LocalCastはAndroidの通知領域に常駐しない。(アプリを起動し直せばいいだけだが、ちょっと面倒)

こんな感じ。

当分はBubbleUPnP一択で行くと思う。

ちょっと不満な点を上げると、早送り、巻き戻しが微妙。デジタルデータだとある程度仕方がないのかもしれないが、シークバーで操作するのがどうも自分の思うところに行かない。早送りボタンを長押しすると30秒(変更可)進めたり出来るのだが、ちょっとストレスがあって使いにくい。アプリかchromecastかはたまたDLNAサーバなのか分からないが、この点だけはちょっと不満。

まーでも全体的には使えるし、何より安いので大変満足している。

fileもしくはDISKを完全消去する(shred)

こんなコマンドあったんですね。

しかも標準コマンドで。ubuntuだとcoreutilsに入っている。

まー。dd使うから別にこのコマンド無くてもいいっちゃいいが、

知っといて損はないまず。たぶん忘れるけど。

 

ファイルを消す場合。

オプションを付けないと、ファイルは残るが中身が破壊される。

普通の削除と何が違うかというと、削除前にランダムなデータを書き込んでいること。

「HDD ヒステリシス」 とかで検索すると理由が分かると思う。

 

HDDを消す場合

上のオプションは、3回書き込んで、進捗を表示する。

 

まーこのコマンド知らなくても、ddで同じようなことは出来る。

 

ランダム書き込み

 

ゼロフィル

 

tcpdumpで日付を表示

ちょっと悩んだので、メモ。

-tttt オプションを付ける。「t」を4つ

 

-wで保存したファイルを後で読むとき(-r)も便利

 

disownしたプロセスの標準出力や標準エラーを後から保存する

前の記事で、disownの素晴らしさを紹介したが、基本的に標準出力・標準エラーを諦めることになる。

調子の悪いHDDの丸ごとコピーとかだと、標準エラーを後で見たいので、なんとかならないかネット検索したところ、

gdbで接続して、dup2で標準出力・標準エラーをファイルに繋ぐなんて荒業を紹介している人がいた。

dup2なんてCプログラマじゃなきゃ使おうとも思わんな。

流れとしては、

 

  • 特定のコマンドをdisownする。前の記事参照。
  • プロセスIDを調べる
  • 標準出力、標準エラーのファイルを用意する
  • gdb -p で接続する
  • dup2でファイルに接続する。
  • デタッチ
  • gdbを抜ける

 

うーん。絶対忘れる。

 

以下、サンプル。実際はcpとかでやると思うが今回は、標準出力と標準エラーが分かりやすいようにしている。

標準出力にはdateの結果、標準エラーにはerrorを5秒間隔で。

うーん。非常にメンドイ。なるべくnohupを使いましょう。それか日常的にscreenを使いましょうってことですね。

ただ、考え方は非常に面白いので、覚えておくのはいいと思う。

実行中のコマンドをバックグラウンドにしてログアウトしても消えないように(disown)

軽い気持ちで実行したコマンドが、なかなか終わらなくて、あー。もー。帰りたいのに終わるまで帰れない。

なんて経験があったりする。ただこの disown ってコマンドを覚えておけば、そんなことを気にしないで実行したまま家に帰ることが出来る。

たぶんbash限定かもしれないけど、自分bashしか使わないので。。。

具体的には、

Ctrl-z でプロセスを一旦止めて、

bg でバックグラウンドプロセスにして。

って感じ。

ただこのままログアウトしても大丈夫なプロセスもあったりするのだが、止まるやつは止まる。

そこで、 disown %1 を実行してあげる。(%1はjob id jobsコマンドで確認出来る)

これでログアウトしても止まらないはずなので、安心して帰れる。

 

以下サンプル(cpの大量コピーとかがよくあるかと)

こんな感じ。標準出力するプログラムだと、入力が大変だが、めげずに実行する。

ログアウトすると、標準出力、標準エラーは保存できないので、そこは諦めるか別の方法

最初から、時間がかかるのがわかっているなら、 nohup を使ったほうが良い。標準出力もファイルに保存されるので。

nohupの記事も過去にちょろっと書いた。

 

標準入力からdiff

diffでファイルの比較とかやってると、実行するコマンドの結果(標準出力)を元に比較出来ないのかなと悩むことがある。

一度ファイルに落としてからdiffすればいいので、特に調べてなかったが、ちょいと調べたらあっさり見つかった。

コマンドの標準出力を比較する場合。

 

 

うわ。めっちゃ簡単。bashだけらしいけど、bash以外使った事ないから充分。

<(の間にはスペースは入れてはだめ。

 

コマンドの標準出力とファイルを比較する場合。

diffに限らず

こいつは、いろんなところで使えそう。

無知は罪ですな。

 

 

vimでクォートで囲まれた文字列の置換

あー。どうしても忘れてしまう。

今日ちょうど、「今こそ使う時だ!」って時にすっかり忘れていた。

変数なんかで、シングルクォート(‘)で囲まれている文字列を丸ごと置換したい時がままある。

囲まれてるのが、単語だったら cw で一発なんだが、pathが含まれてたりすると、一文字ずつちまちま消したりと面倒。

そんな悩みを解決してくれるのが以下(シングルクォート版)

 

ci’

 

ダブルクォート版

ci”

 

「ci」 と「囲んでるやつ」で結構出来る。

 

カッコ系でも出来る。まー便利。

 

さー。これで忘れないだろう。

縦書文字作成ツールを作った

その名も、

縦書文字メーカー

前に、AA文字メーカーを作ったので、その姉妹版って感じ。

昔メール書く時に、おふざけで縦書したなーと思い出して、そんなもん今ならちょろっと作ればいいんじゃねと思って作ってみた。

入力した文字を、縦書にしてくれます。LINEとか、携帯メールとかで使えると思います。

  • 文字を入力すると縦書にします
  • 複数行にも対応してます
  • LINEとか、携帯メールでたぶん使えます
  • 等幅フォント(pの付かないフォント)で使えます

こんな感じ。

AA文字メーカーよりは使い勝手がいいかも。あいつはちょっとデカ過ぎた。どうにもならんけど。

ただ、機能優先なんでもうちょっとデザインを何とかしたい。AA文字メーカーもそうだけど。。。

2014/10
androidアプリをリリース

2020/08
放置してたらストアから消えました

routeコマンドかipコマンドで経路ごとのMTUとかMSSとか

極極々まれに、特定のホストと通信できなくて、MTUを調整すると通信できたりすることがある。

MTUは通常回線終端のルーターで設定しておけば、特に問題になることはないのだが、たまーーーーに変なホストがいる。

そのたまーーーーーにいる変なホストのためだけにルーターをイジるのは、馬鹿げているし、Linuxマシンもサーバだったりすると

全体に影響するような設定は嫌なので特定のルーティングに対してだけ設定を行う。

んでこんな設定

route コマンドだとMTUじゃなくMSSの設定になる。

って、route はもはや古いコマンドだと書いたので、

 

 

iproute2では

iproute2 だとMTUの設定になる。

なんでこんなことが必要か?とか、MTUとMSSの違いって何?とか思ったら、MTU, MSS, Path MTU Discoveryとかでgoogle先生に聞けば教えてくれると思う。

これ系のトラブルは、ハマると泣きそうになる。

portフォワードというかTCPリレーというか(socat)

sshのポート転送をこよなく愛しているのだが、ログインするまでもなくポート転送したい時がある。

単純に、Aサーバのこのポートを、Bサーバのあのポートに接続するって場合。

socatってコマンドがあれば、なんとか出来る。

自分の:8443ポートを、foo.example.com:443に繋ぐ。

forkを付けないと、1回の接続でコマンドが終了してしまう。

これで、自分の8443に接続が来ると、foo.example.com:443に接続されるっていうすぐれもの。

ただ、このsocatって一番困るのが、たぶん大体の環境で入ってない。

netcatのncコマンドなら、たぶん何処の環境でも入ってるので、力技でやると、

以下のような感じ。ただ、fifoを事前に作って上げる必要があります。

標準入出力をfifoで繋いであげる感じ。

この考えはとても素晴らしいのだが、仕様なのかなんなのか、そこそこの頻度でコマンドが終了する。

もー。ようわからんので、whileで回してやる。

かなり強引。動作テスト程度には使えるが、本気運用は無理ですね。