それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

2017-01-01から1年間の記事一覧

Raspiのomxplayer でRadikoのm3u8 を再生する(omxplayer でHTTPカスタムヘッダ追加)

何気なく、omxplayer のヘルプを読んでたら --avdict という項目を見つけたので調べてみた。 omxplayer --avdict 'opts' Options passed to demuxer, e.g., 'rtsp_transport:tcp,...' コレを使えば、カスタムヘッダを追加できるんじゃないかなと。 つまり、R…

bashスクリプトファイルの実行者が、実行ユーザがroot(id:1)か調べる

root じゃなきゃ、終了するとかしたい シェルスクリプトの実行ユーザを調べて、root 以外が起動したら処理をしない。などと簡単に書きたい時。 whoami を if 文に突っ込むだけでいい if [[ $(whoami) == 'root' ]] ; then echo user root else echo user is …

vimで行末に一括で追加(箱形・矩形の選択で行末に一括追加)

行末にまとめて追加したいとき vim には色々とやり方があるんだよね。僕は迷わず選択範囲を作って正規表現で置換してた。 箱形選択で出来たら便利だよなぁとAtomを使ってる人を見ながら思った Vim で箱形選択の行末(末尾:文末)に一気に文字を追加 選択で箱…

mac で WiFi の接続情報を取得する

mac でWifiの現在のIPを取得したい $ networksetup -getinfo Wi-Fi 実行サンプル takuya@$ networksetup -getinfo Wi-Fi DHCP Configuration IP address: 100.119.116.5 Subnet mask: 255.255.255.0 Router: 100.119.116.252 Client ID: IPv6: Automatic IPv…

radiko の js プレイヤーのリクエストを追いかける

radikoがJSになってた swftoolsいらない可能性があるので追いかける。 auth1 /auth2 従来通り、auth1 / auth2 に投げるのは変化なし。 auth1 で auth_token を貰ってきて auth2 で auth_token で署名をもらうイメージ auth1 にリクエストを投げて、次の値を…

Mac でDNSサーバーをコマンドから手動変更・取得する

mac の設定は networksetup から Macでネットワーク周りの設定は、networksetup のオプションを見ればだいたいの場合は解決する。 DNS サーバーをコマンドから指定する takuya@$ networksetup -setdnsservers Wi-Fi 8.8.8.8 現在のDNSサーバーを取得する tak…

mac のコマンドで ルーティングテーブルの追加(add)と削除(del)と確認(show)

mac のルーティングテーブルの変更。 ルーティングテーブルの変更は、やり方は色々在るんだけど、コマンドからやるなら、route コマンドが一番便利かな。 mac のルーティングを自分でadd したり削除したり、操作したい。 mac のルーティングテーブルの変更。…

Linuxをブロードキャストpingに応答させる

ブロードキャストping に応答してほしい。 iptablesの設定をしていて。ちまちまping 打ってるのが面倒くさかった。 まとめてガーッとping を打ち込んでおきたい しかし、ホスト側応答をしてくれないと意味が無いので、linux にブロードキャストping への応答…

rubyの正規表現とscanでグローバルマッチで後方参照をサボりマッチ箇所を取り出す。

JSとか書いてたら、グローバルマッチをついつい、次のように書いてしまう。 "aa aaa aaaaa".match( /a+/g ) ああ、シンタックスエラー ruby 書くんだったらこう書くっポイ! "aa aaa aaaaa".scan( /a+/ ) #=> ["aa", "aaa", "aaaaa"] ruby でマッチした結果…

imagemagick convert で アニメーション gif を作る。時間を設定する

アニメーションgif を作る 単純なパラパラ・マンガ程度なら、コレで十分。ファイルサイズが大きくなるだろうけど、png がせいぜい100枚未満なら全然問題ないと思う。 convert 01.png 02.png 03.png out.gif 切り替わりが速すぎるんだけど!! fps を指定する…

grepで先読み後読みを使うには

grep の正規表現で「後読み」「先読み」を使うには このようにするとマッチした文字をガッツリ取り出せる。 grep -Po '(?<=cond)\w+' grep -Po '\w+(?=cond)' 役割 書式 サンプル condが接頭 (?<=cond) (?<=Debian Gnu)\w+ 接辞がcond (?=cond) \w+(?<=Linux…

カタカナ(全角)にマッチする正規表現

カタカナにマッチする正規表現 str.match(/[ァ-ヴ]+/) サンプル str = 'このリンゴはとても美味しいリンゴだ このリンゴはとても美味しいパイナップルだ このパイナップルはとても美味しいパイナップルだ この林檎はとても美味しいみかんだ' p str.scan(/[ァ…

youtubeなどの動画サイトの再生速度を変える。倍速低速再生

youtube がHTML5になったので再生速度を変えられる。 video 要素には playbackRate があるのでコレを使えば結構早く再生できる 1.3倍速 var v = document.querySelector('video') a.playbackRate=1.3 0.8倍速 var v = document.querySelector('video') a.pla…

CPU の温度を取得する( sys )

CPUの温度を取得する。 sys ファイルシステムから取得することが出来る。 $ cat /sys/class/thermal/thermal_zone0/temp 63 コマンドをインストールしなくても良いのは便利 関連資料 raspi はこちら RaspberryPiの温度を調べる - それマグで!

Linuxのwifiと有線のネットワーク優先度を決めたい

eth0 / wlan0 のプライオリティを決めたい ネットワークで遊んでると、NICの優先度を決めたいことがあって。 ip route を毎回いじってたけど、どうも面倒くさい。ぐぐってたら priority は ネットワーク的には metrics と呼ぶことを思い出した。 いれる前 ta…

vim のモードラインでvim設定(タブなど)をファイルの先頭に書く / vim mode line

vim

目次 目次 expand タブしてたら怒られたよ。。。 vim モードラインで設定する。 vimモードライン(modeline)とは 書き方 vim モードラインの例 expandtab の要請 ファイルタイプをJSONで認識させる 折り返しを無効にする インデントの文字数を設定する タブ幅…

nkfでフォルダ内のファイルをぱぱっとShiftJIS(CP932)からUTF-8に変換する

cp932まだ絶滅しない。 CP932はいつまで生き残るんですかね。。。ファイル名だけならまだ我慢するけどファイルの中身もとなると結構しんどいですよね・ フォルダ内の txt ファイルの文字コードを表示する $ ls **/*.txt | xargs -I@ nkf -w -g @ Shift_JIS S…

radikoの地域判定がオカシイので、SSH経由で再生する

radikoのIPベースの地域判定が残念 MBSラジオを聞きたいのの、東京判定されちゃって悲しいときは結構ある。 WiFi借りてたり、テザリングしてたりすると特に・・・・スマホで聴くのは不便だし そうだよ。SSH経由で再生しちゃえば楽じゃん ssh myserver 'rtmpd…

mac で手っ取り早くm3u8を再生する(らじる)

Safari起動するのも面倒くさい Safariでm3u8を開くのはQuickTimeを起動するようなものなので*1 open -a 'QuickTime Player' 'https://nhkradiolkfm-i.akamaihd.net/hls/live/512097/1-fm/1-fm-01.m3u8' として、open コマンドで直接叩けば良いんだよ。 ほか…

pythonのリスト内包表記でネスト

list comprehensions で ネストしたい for for をしたいなと思った。 data = [[ 3 ], [4] ] [ e for row in data for e in row ] ネストと if 文 data = [[ 3 ], [4] ] [ e for row in data for e in row if e %2 ==0 ] 楽しい。 filter も map も要らない。…

radikoの再生スクリプトを書き直した(python3.6)

radiko の再生スクリプトをマルっと書き直した レポジトリはこちら github.com python3.6 でフォーマット文字列が導入されたので、ようやくPythonをシェルコマンド呼び出しに使って使いやすくなったので、ガンガン書き直した。 注意点とか python3.6 で書き…

Raspian(raspberryPi)でRadikoを聴く

Raspi でラジオを聞きたい オーディオジャックから、ラジオを垂れ流したい。散々やってきたけど、Raspi ZeroからRaspi3に変えたので、オーディオジャックが使えるようになった raspi のオーディオジャックでラジコを聴く rtmpdump は必要。 rtmpdump -v -r r…

Raspian(raspberryPi)でらじる★らじるを聞く

らじる★らじる を raspi で聴ければ Raspberry Pi にスピーカー繋いで、ラジオを流せればとっても楽ちんだと思いません? omxplayer だけでいけます。 2017-09から、らじる★らじるが m3u8 に変更になっているので HLS のm3u8 を指定するだけなのでとても簡単…

Debian のバージョンと名前を確認する。

バージョン番号 takuya@raspberrypi:~ $ cat /etc/debian_version 8.0 バージョン名などの各種情報 takuya@raspberrypi:~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)" NAME="Raspbian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie…

Raspian(raspberry Pi)のアップグレード(jessie→stretch)

raspi の stretch があるので、アップグレードします。 方法は、通常の debian アップグレードと同じでいいですね。 事前準備 できるだけ最新版にしておく。 sudo apt-get update && sudo apt-get upgrade -y jessie の記述を探す。 grep jessie /etc/apt/ -…

子孫プロセスも含めて殺す。Kill children and ancestors

プロセスの子孫を消したいなーって 絶対、車輪の再発明になるので検索させていただきました。 再帰で殺す kill コマンドとppid をきっちり使いこなせば、ちゃんと理解できるんだろうけど、それを説明するのはかったるいので、再帰呼出しがイメージしやすいの…

Chromeがキーチェインを使う条件

chrome が keychain のダイアログを聞いてきた!? chrome ってキーチェイン使わないとおもってたら、キーチェインのダイアログを聞いてきたのであたらためて調べてみた chrome が キーチェインを使う条件 Chromeはキーチェインを「読み込み専用」で使うよう…

chrome のDNSキャッシュを消す方法

dns 書き換えてると chrome のDNSキャッシュが邪魔 PC/MacのDNSキャッシュを消しても、なんかダメだなと思ったら、どうやらChromeのDNSキャッシュがあるようで。 DNS触ってnginx を切り替えてるときに、chrome の dns cache はうざい。 chrome のDNSキャッシ…

python の shlex でコマンドに渡す字句を分割する

コマンドを Popen に渡すときに コマンドを組み立てた文字列を配列で渡すなら、split が便利だけど、shlex.split ならさらに安全に渡せるらしい。 self.prcs = Popen( shlex.split(cmd), shell=False ) たしかに文字列をsplit すると暴走するものね。 また s…

MariaDB のユーザー認証をPAM経由にする。

mariaDB にしました。 mariaDB に変えたので、PAMによる認証連携は、最初から付属してます。便利! mariadb でPAM Authをするには mysql の管理者(root) で ログインしてプラグインを有効化する INSTALL SONAME 'auth_pam'; これでほとんど完了。あー楽。 PA…