pychromecastを使ってgoogle homeにキャスト
Google Homeを活用を模索するなか、Google Home は chromecast のスピーカーでもあるので、パソコンからchromecastの制御の記事を探してみた。
すると、pychromecast の記事を発見。
$ sudo aptitude install python-pychromecast
記事を参考に python script をコピペしたけど開発がすすんで関数名などが変更となっているようで、github 側の記事をみてちょっとだけ修正。pythonをいつも使っていないので、chromecast の試行錯誤の前に、漢字コードの扱いの方で四苦八苦。
#!/usr/bin/python2 # -*- coding: utf-8 -*- from __future__ import print_function import sys import re import time import pychromecast #------ ddev = "" #------ args = sys.argv args.pop(0) dev = "" # device url = "" # chromecast URL mtype = "" # media type # コマンドライン引数からキャスト内容を取得 if len( args ) == 3 : dev, url, mtype = args elif len( args ) == 2 : dev, url, mtype = [ ddev ] + args elif len( args ) == 1 : dev = ddev url = args[0] if re.match( r'\.mp4$' , url ) : mtype = 'video/mp4' elif re.match( r'\.mp4$' , url ) : mtype = 'audio/mp3' elif re.match( r'\.jpg$' , url ) : mtype = 'image/jpeg' elif re.match( r'\.png$' , url ) : mtype = 'image/png' # デバイス一覧を取得 chromecasts = pychromecast.get_chromecasts() # 指定したデバイスを見つける cast = next( cc for cc in chromecasts if cc.device.friendly_name.encode( 'utf-8' ) == dev ) cast.wait() # キャスト開始 mc = cast.media_controller mc.play_media( url , mtype ) mc.block_until_active()
Symbol’s value as variable is void: last-command-char
Emacs25 の anthy.el で、”Symbol’s value as variable is void: last-command-char”のエラーがでるようになった。
他の方の記事をみて、$HOME/.emacs.d/init.el に以下を書き加える。
(define-obsolete-variable-alias 'last-command-char 'last-command-event "at least 19.34")
aptitude purge nano
Linux で vipw とか visudo とかのコマンドを実行する時に、”vi”という名前のくせに、エディタ nano が起動して相変わらず使い方が判らない。
“export EDITOR=vi”とかをやりながら使っていたけど、よく考えたら nano なんて使ってないし、消せば alternative 機能が vim.tiny に切り替えてくれる。 だったら素直に “sudo aptitude purge nano” でいいじゃん。
Raspberry Piに温湿度計とLCDモジュール
LCDディスプレィ接続
まずは、秋月の8×2のキャラクタLCDディスプレィ(AQM0802A)を接続してみた。
MZ-80C内のGPIOを、真上に接続するのはモニタ部分と干渉するので、I2C用のコネクタは背面に(MZ80C的には下側)につけて引き伸ばし。
当然ながら、8×2の小さいLCDを選んだのは、モニタ部分に埋め込むためなので、厚紙を切って配置してみた。参照先のサンプルコードも無事に動いて、”ハローワールド”の表示。
LCDのバックライト機能があるのだけど、GPIO4のポートをON/OFFしても光らない。なぜ…
単純に、バックライトのLEDのA,Kがはんだ付けしてなかっただけ…(x_x;
作業メモ
- BME280使用 温湿度・気圧センサモジュールキット
- JP3:short(I2C使用),JP2,JP1:open(No pullup)
- 1:VDD, 2:GND, 3:NC, 4:SDA, 5:GNDでアドレス0x76, 6:SCL
- 参考記事
- Raspberry Piキャラクタ液晶ディスプレイモジュールキット バックライト付
- JP1,JP2,JP3:open
- 参考記事
- Raspberry Pi Model A+
MZ-80C
忘れた頃に、MZ-80C入荷しました。こりゃ、おっさん(じーさん)ホィホィな製品だわ。
# ちなみに、本物の MZ-80 は、所有したことはない。
でも、たぶん1週間もすれば、WiFi-USB刺して、Rasbianなサーバになってるだろう。
内蔵ゲームの感想
ちなみに、内蔵の「平安京エイリアン」やってみたけど、一匹も倒せんかった。
自分の歳よりも古いゲームをした、うちの子供の感想。「キー操作が反応悪かったり、キー配置(移動のワードスター配列)がキモっ」とのことでした。
# それでも、私より上手く遊んでたけど。
改造するか
さっそく、I2C接続の小さなLCDモジュールと、温度湿度モジュールを発注。
ついに MovableType を卒業するか…
自宅サイトは、MovableType で運用してきたけど、 movabletype-opensource もメンテナンスされなくなってた。
MovableType の login エラー
だましだまし使っていようと思っていたけど、OS の更新をかけたら、
Got an error: Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/{{ <-- HERE support}}/?/
みたいなエラーで、login できなくなった。 ちょいと、ソースを触れば login できるようになるとは思うけど、 ここらが “MovableType卒業” の潮時か。
blog の変遷
自宅サイトは、2000年ぐらいから、BLOG を運用してるはずだけど、 最初は手書き。途中で HNS(Hyper Nikki System) に切り替えたけど、 途中で MovableType に移行(自宅は2008年に移行)。
最古記事は、2003年だけどこの記事は、HNS のデータを Export して Movable-Type に取り込んだもののはず。
WordPress に移行
ということで、以前から WordPress のページは準備していたので、 そっちに切り替えよう。
メールでの投稿とかの機能は切っちゃおう。
ということで、この記事が我が家の MovableType 最後かな。
あれ、Dropbox 使ってないじゃん
今まで、LaTeX 仕事だと、Linux 環境じゃないと今一つ不便 だった。 このため、Windows,Mac で作業をするときは、 Windows,Mac,Linux で Dropbox を起動して共有させて、 terminal 経由で実際は Linux 上で作業をしていた。
LaTeX 仕事なら、emacs anthy anthy-el texlive-lang-cjk texlive-binaries tgif があれば、 ひとまず問題なし。
でも、Windows で、Windows 10 Creaters Update の Bash on Windows でも terminal がまともに使えるから、emacs も自然に動く。 実質 debian だし、aptitude install texlive-lang-cjk で、 LaTeX 環境も悩まずに入る。
同じく、Mac でも、MacPorts で LaTeX 環境が動くので、 Linux で作業する必要がほぼ無くなってきた。
でということで、Dropbox をほぼ使わなくなっているので、 「Dropbox、今までありがとうございました」
perl 5.24 で CPAN 更新たっぷり
自宅サーバなどで動かしている Perl のプログラムが エラーを吐き始めた。
どうも、日々の更新で Perl のバージョンアップで、 CPAN を使ってインストールしていた perl モジュールの 整合性が問題みたい。
ということで、インストール済み perl モジュールの更新。
(( 更新対象を表示 )) $ sudo perl -MCPAN -e "CPAN::Shell->r" (( 更新 )) $ sudo perl -MCPAN -e "CPAN::Shell->install(CPAN::Shell->r)"
色々と使っている自宅サーバ、Raspberry-Piサーバは、 100件を越える更新で、すごく時間がかかった。
古い Raspberry-Pi は、メモリ不足で CPAN更新ができねぇし…
iptables hashlimit
imaps などを経由してブルートフォースアタックされるのも怖いので、 hashlimit を用いた制限
((/etc/ferm/ferm.conf)) domain ip { table filter { chain HASHCHECK { mod hashlimit hashlimit-name HASHCHECK_TABLE hashlimit 1/m hashlimit-burst 30 hashlimit-mode srcip hashlimit-htable-expire 120000 ACCEPT ; mod limit limit 1/s LOG log-prefix '[iptables hash drop]: ' ; DROP ; } chain INPUT { : proto tcp dport imaps jump HASHCHECK ; : } } : }