それマグで!

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

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

splitで指定した行数でファイルを分割し拡張子も付与するsplitコマンドの基本的な使い方

split コマンド便利ですよね

split コマンドは、ファイルを分割するコマンドです。

一度くらいは見たことが在るんじゃないでしょうか。

split コマンドでファイルを分割する

ファイルを分割してもアルファベットのよく分からないファイル名になるので、よく使う方法をご紹介。

ただ split コマンドを実行すると次のようなファイルになってしまう。

xaa
xab
xac

行で分割する

バイトで分割しても現代ではあまり役に立たないので、 -l をつけて行数で分割する

split -l 100 input.log

行数で分割すると便利ですよね。

-d をつける

split 対象ファイル -d 出力ファイル

こうすると、ファイル名が 0始まりの数字で分割される

split  input.log  -l  -d out-

出てくるファイル

out-0
out-1

拡張子を付ける --additional-suffix=.csv

extensions つまり、拡張子を付けないとあとで識別が不便なので、拡張子もつけておく。

takuya@work$ split -l 400 entries.csv -d  --additional-suffix=.csv  entries-
takuya@work$ ls en*
entries-00.csv  entries-01.csv  entries-02.csv  entries.csv

まとめて関数にしても良いかも

元のファイルと同じ拡張子で、デフォルト100行くらいで分割する自分専用のコマンドを作っておいても良いかもしれない。

bashでちょっとしたコマンド作成の練習には良いかもね。

参考資料

  • man split

なかなか取れないiPhone修理予約を出来る限り当日に確実に取る方法

iPhoneのバッテリー交換の予約が取れなかった

iPhoneが急に電源が切れたり、残量20%でシャットダウン後に再起動で利用してたが、いい加減限界なので、バッテリー交換に行こうとた。

が、予約が取れない。iPhoneの交換の予約をとるのが難しい。

クイックガレージに行って根掘り葉掘り聞いてきました。

先日、Macの修理でクイックガレージに行くことがありました。そのときにMacの状態チェックを待っている間に、窓口の担当者と雑談してきました。

私「めっちゃ、混んでますねーww」
窓「そうですねー、Macは空いてて暇なんですけどねーwww」
私「この人たち、みんなiPhoneなんですか」(店内を見渡しながら
窓「ですねー、Macは1日1件もあるかないかです」
私「iPhoneは予約をとるのが難しいですもんね」
窓「そうでもないですよ、わりと取れてるみたいです」
私「え?そうなんですか?」

実はコツがあった。

アレコレ話しているとわかってきました。

予約はとるのが難しい、なのでなくタイミングの問題だと。

毎日10時台なら当日予約がWEBから取れる

予約には枠があって開放上限があるようです。データベースの更新タイミングがあるみたい。

予約は一週間前まで取れるのですが、当日枠があり、当日の10時か11時くらいに開放される的な話を聞いた。店舗により時間帯に前後が在るらしい。

そこで毎日10時台か11時台だと比較的かんたんに予約ができるとのこと。

試してみた

おお、当日の予約ができる。今日の予約できるぞ。(11時しらべ

f:id:takuya_1st:20180424120513p:plain

よく見たら、前日に1週間先まで埋まっていたクイックガレージ梅田が予約できる。

f:id:takuya_1st:20180424115555p:plain:w200

予約取れないで困る人は

朝10時か11時すぎに試してみましょう。

予約が取れないとおもったら、正午になる前に調べてみてはどうでしょうか。

お昼休み時間帯に予約が一気に消化されしまうのかもしれません。

ダメ元でキャンセル待ちで訪問して待たされるの辛いですよね。

キャンセル待ちで入れても担当者に次からは予約してくださいねと釘を刺されるし、あまりいい気分はしない。

わたしは、この方法で好きな時間に予約が取れて救われました。

blurなどのHTMLEvent イベントをちゃんとおこしてみる

blur イベントが上手く起きない

react などちょっと最近のJSだと Element.blur() で イベントが発火しなかった。

動かない

a=document.querySelector("#zipCode")
a.blur()

blur とかフォーカスのイベントハンドラが上手く起動しない。

動く

ちゃんとEventをdispatch すればうごく

a=document.querySelector("#zipCode")
a.value = '1030001'
var evt = document.createEvent("HTMLEvents");
evt.initEvent("blur", false, true);
e.dispatchEvent(evt);

これは、CustomeEventでも作れて

a=document.querySelector("#zipCode")
a.value = '1030002'
evt = new CustomEvent('blur')
e.dispatchEvent(evt);

または、ちゃんとFoucsEventをnew して

evt = new FocusEvent('blur')
e.dispatchEvent(evt);

こうすれば、イベントがうまくは起動する。HTMLElement.blur() HTMLElement.focus() だとイベントが起きないのかなぁ

昔から疑問だったんだけど、未だによくわからない。

cut コマンドで途中を棄てる(除外)する

cut コマンドで中間を削除したい時

絡む指定の複数の条件を 感まで繋げば、途中のカラムをすてて、歯抜けを作ることが出来る。

cut -f 2-5,7-10

ほかにも、カンマでつなぐのは複数個作れて

cut -f 1,3,5,7

のように数字を書いてもいいし、数字が続く場合は、 4-9のようにハイフンも使える。便利

参考資料

'cut' command - Tutorial : How to 'cut' all fields except the ones specified or invert field selection

コミック発売日をを見てたら、よつばと!見つけて、わりと楽しみな4月

何気なくAmazonの新刊を眺めてたら

よつばと!の14が出るんですね。

よつばと!(14) (電撃コミックス)

よつばと!(14) (電撃コミックス)

そのまま、Amazonの新刊みていたら、4−5月はわりと楽しみな一ヶ月あった。

4月発売予定のロングタイトル。

ながく続いてるタイトルが続々と発売日を迎えるので本当に!?これ全部連休中に読めるか?ってワクワクしてる。

テンション上がってきたので、備忘録代わりに新刊一覧を貼っておきます。

とくに、「デミちゃんは語りたい」「ダンジョン飯」「よつばと!」は楽しみ。隔年発売のタイトルいっぱいじゃないですかぁ

大型連休前後ってコミックスの発売日が重なるんですかね?そういうものなの?

4月5月で楽しみな発売日タイトル。忘れないようにメモ

多いので、逐一メモしないと忘れる。。。ほしいものリストだとソートとか面倒だし。ココに書いておこうかなと

亜人ちゃんは語りたい(6): ヤンマガKCSP

亜人ちゃんは語りたい(6): ヤンマガKCSP

ダンベル何キロ持てる? 4 (裏少年サンデーコミックス)

ダンベル何キロ持てる? 4 (裏少年サンデーコミックス)

ダンジョン飯 6巻 (ハルタコミックス)

ダンジョン飯 6巻 (ハルタコミックス)

あまんちゅ!  12 (BLADECOMICS)

あまんちゅ! 12 (BLADECOMICS)

ドメスティックな彼女(18) (講談社コミックス)

ドメスティックな彼女(18) (講談社コミックス)

王家の紋章(63): プリンセス・コミックス (プリンセスコミックス)

王家の紋章(63): プリンセス・コミックス (プリンセスコミックス)

インフェクション(10) (講談社コミックス)

インフェクション(10) (講談社コミックス)

キミイロ少女 完全版 (百合姫コミックス)

キミイロ少女 完全版 (百合姫コミックス)

ssh 公開鍵の指紋を確認して、gitの公開鍵ログインが通ってるか確認する。

サーバーのSSHのログを見ていると次のようなものがある。

git(gitlab)は 単一ユーザとしてログインして、アプリ内で別ユーザに分割するので、アクセスログを見ていると、どのログがどの公開鍵かぱっとわからない。

Accepted publickey for git from 110.66.166.xxx port ssh2: RSA SHA256:ZBTKfSJOp46Wa
Accepted publickey for git from 122.249.189.xxx port ssh2: RSA SHA256:6hsJqs+UYtaqn
Accepted publickey for git from 153.183.186.xxx port ssh2: RSA SHA256:2UsYMJTNfHog
Accepted publickey for git from 153.183.186.xxx port ssh2: RSA SHA256:6hsJqs+UYtaqn
Accepted publickey for git from 153.183.189.xxx port ssh2: RSA SHA256:NxqmEpe7bbWv
Accepted publickey for git from 183.76.241.xxx port ssh2: RSA SHA256:3R31KV8N0vK6u
Accepted publickey for git from 49.106.193.xxx port ssh2: RSA SHA256:qpG9ikqYC8kkcx

公開鍵のフィンガープリントを取得する。

ssh-keygen -lf path/to/id_rsa.pub

このコマンドを使うと、公開鍵から指紋を 取り出すことが出来る

takuya@sample$ ssh-keygen -lf out.pub
2048 SHA256:NxqmEpe7bbWvK86VQn5Xhxxxxxxxxxxxxxx takuya@test (RSA)

指紋のハッシュをSHA256で取り出すのでサーバーのログと一致して嬉しい。

gitlab などに登録された公開鍵はmd5

管理画面からは指紋がMD5なのでぱっとわからない。

公開鍵のフィンガープリントはMD5でもアプリで表示されることがあるのでその方法でも一致を確認できる

takuya@sample$ ssh-keygen -E md5  -lf  out.pub
2048 MD5:5f:37:90:4b:c3:e1:6a:fe:fd:d2:ea:7a:00:00:00:00 takuya@test (RSA)

指紋のみかたをしっておく

せっかくハッシュを見たら解るのに、意外と使いこなせないので調べた。

参考資料

SSHの鍵の指紋が正しいものかどうかチェックする方法 - くろの雑記帳

中間者攻撃するわ、公衆WiFiを語るのにフィルタリングするわ、これはダメでしょ

とある公衆WiFiにログインしたんですが。

これ、完全に中間者攻撃の状態ですよね。リダイレクトすらしない。WEB技術のマナーも糞もあったもんじゃない。

ログイン画面がこれ

http://t.co のURLに ログイン画面がインジェクション(改竄)されている。

f:id:takuya_1st:20180410011634p:plain

別のログイン画面の結果がこれ。

僕のブログのURLが完全に書き換わっている。

f:id:takuya_1st:20180409202104p:plain

URLそのままでは、通信の改竄に当たる

ドメインそのままで通信内容を書き換えるのは、改竄に値する。通信を提供するサービスとして、あってはならないことだ。

WEBブラウザは、ドメイン単位でセキュリティの権限を管理するSame Origin Policyがあるが、この状態では、同一生成元ポリシーがおかしなことになる。このままでは、パスワードの自動入力が正しく動作しないために、おかしなことになる。

リダイレクトしないから、暗号化通信で中間者攻撃になる。

完全に中間者攻撃としてブラウザに検出されている。

これは、セキュリティ上やっていはいけない感じがある。

f:id:takuya_1st:20180409202209p:plain

なぜだめか?

ドメインの詐称で中間者攻撃を「ただしい」とする仕様はユーザーに間違った知識を植え付ける可能性がある。

とくに、改竄される状態が「正しい」と公式宣言する現状は危うい。

しかも文字コードISO-2022-JP って

いつの時代ですかこれ。。。いまどきUTF-8使わないサイトとか久しぶりに見た。 仮にiOSだとこれどうなるんだろうか。

f:id:takuya_1st:20180409203005p:plain

はてブが止まる。

ニュースの閲覧もダメなんですか。。。

f:id:takuya_1st:20180410004506p:plain

SNSはフィルタリング対象ですか?

f:id:takuya_1st:20180409205050p:plain

HTTPSもIPベースで止めてるんですね。通信エラーにしかみえないのは、問題が多いですよね。フィルタリングしてると明示しないと

f:id:takuya_1st:20180409205200p:plain

f:id:takuya_1st:20180409205515p:plain Google Chromeが通信エラーとして処理するから、画面のキャプチャの状態になりChromeに救われている。

通信エラーによりストップ理由も明示されない。

通信エラーになりストップ理由が閲覧不可能になっている。

ストップされる理由が表示されないはまるで駄目ではないですか?

せめて、ストップされる理由がHTTPSで表示されるようにしてほしいです。

どの通信がストップ対象になるのか明示されないでフィルタリングはありえないと思いませんか。

何処が納入したんですかコレ

どこだよ、この事業者は、と思った。どこの機器ですかね?この辺の業者ですか?フルノ?

この入札要件書いた明石市Wifiをやる市役所職員はなんなのですか?調達要件を書く前に、すこしくらいは他の市町村や公衆無線LANを調べたんですか?

社内(庁内)の無線LANと、公衆WiFiの区別がついてないですよね。

公務員試験の合格者なら

憲法くらいは、ちゃんと勉強してるよね?憲法21条第2項を読み直してください。条文を思い出してほしいです。

利用規約にアレコレ書いたとしてやって良いことと悪いことが在る。とくに一般向けに解放してる公衆WiFiであればなおさらですよ。

盗聴しておいて、「セキュリティは万全です」はちょっと自己矛盾ではないですかね。

関連資料

明石市の職員さんには、以下の資料を読んでいただきたく思います。

日本国憲法第21条 - Wikipedia

Wi-Fi提供者向け手引きの「通信の秘密保護」と「届出義務」について

http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/cmn/wi-fi/Wi-Fi_manual_for_AP.pdf

青少年ではないですから、フィルタリングには同意できないし、同意項目もないですよね。

サービスの提供者と利用条件は市役所や図書館のHPで閲覧できないけどありなの?

そういえば、地方公共団体には届出義務があったはずだけど、165条の通信事業者がフィルタリングや改竄するってありなの?(今度調べる

特定のサイトを閲覧できないようにしていた公衆無線 LAN に行政指導

Wisprについて

調達要件にwisprの文言を入れときゃよかったのに・・・

WISPr について - eggshell blue

ChromeのデフォルトがHTTPSになったので再調査

ChromeがHTTPを「保護されてない通信」としてマーキングするようになったので、再調査。

f:id:takuya_1st:20180727165459p:plain

全然更新されないの。完全に中間者攻撃状態。

図書館の運営をしてるのはドコなんですかね。 そろそろガチでバトったほうがいいか

図書館の自由に関する宣言について

なぜ、わざわざ晒し者にしてるのか、

理由はというと「図書館の自由に関する宣言」にある。 「知る権利」を提供する図書館で、こんないい加減なフィルタリングが行われているから、ムカついたので記述することにした。

図書館の自由に関する宣言

  • 第3 図書館は利用者の秘密を守る
  • 第4 図書館はすべての検閲に反対する

一般向けの公衆無線LANは職員向けの庁内LANと似てるけど同じではないでしょ。

2018-07-27 追記

ぜんぜん更新されないので追記

nginxのサイト毎の設定が面倒なのでワイルドカードでディレクトリの有無で設定する

nginx のサイト毎の設定が面倒くさい。

サイトが追加されるたびに、ドメインとファイルを追加するのは面倒なので、ワイルドカードで設定したい。

Apacheだとワイルドカード的なことを割と面倒くさい感じで rewrite 組合せたり、virtualhost 設定をしたりだったけど、

nginx だと 正規表現と名前付き後方参照パターンマッチングで済む。

設定例

upstream php-fpm {
  server unix:/var/run/php/php-fpm.sock;
}


server {
        listen 81 ;

  server_name "~^(?<domain>.+)$";

        root /var/www/virtualhosts/$domain/www-data;

        # Add index.php to the list if you are using PHP
        index /_h5ai/public/index.php ;

        server_name $domain;

        location / {
    autoindex on;
                try_files $uri $uri/ =404;
        }

  location ~ \.(php)$ {
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
    fastcgi_pass php-fpm;
  }
}

設定のポイント

これで、正規表現のパターンマッチングをして、 domain という名前で後方参照出来るようにする。

  server_name "~^(?<domain>.+)$";

これで、domain にマッチさせる。

        root /var/www/virtualhosts/$domain/www-data;

応用編

サイトのサブドメイン毎に設定したいときも同じ

  server_name "~^(?<subdomain>.+).example.com$";

こうすれば、サブドメインごとのマッチングも簡単に。

   root /var/www/example.com/$subdomain/www-data;

設定するメリット

ドメインディレクトリを作ればサブドメインドメイン毎のサイト公開ができるようになる。

この手順だと誰でも設定できるようになるので、あとはwordpressの中身をコピペすれば動くようになる。

docker で wordpressを作らなくても良くなるのは便利だよ。

参考資料

http://nginx.org/en/docs/http/server_names.html

関連資料

ワイルドカードでApacheのVirtualHost-はてなブログでやってるあれ - それマグで!

WEBサーバー(nginx/apache)で、ディレクトリをオシャレに共有する

ディレクトリのインデックス機能をオシャレにする。

ファイルをネットワーク共有する一番手っ取り早い方法は、HTTPサーバーで共有することだと思いません?

認証を入れればアクセスログが残るし、どのファイルが何処にあるか解るし、Slackに貼って渡すのも便利だし。

h5ai でオシャレする。

h5ai をつかうと、わりとエクスプローラーっぽくなって、html5 auto index の略かな?

インストールした結果は

ためしに、うちのサーバーに入れてみた結果がこれ

f:id:takuya_1st:20180408013031p:plain

インストールと設定

公式のリリース zip を取ってくる

zip を取ってくる。

 curl -LJO https://release.larsjung.de/h5ai/h5ai-0.29.0.zip

公開ディレクトリにインストールする。

cd /var/www/example.com/html

ここで展開する。

 unar h5ai-0.29.0.zip

php の設定をするんだけど、一番手っ取り早い手段があって。それは、Directory Index に設定するだけ

upstream php-fpm {
  server unix:/var/run/php/php-fpm.sock;
}

server{
   ## 略

   index  /_h5ai/public/index.php ;

  location ~ \.(php)$ {
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
    fastcgi_pass php-fpm;
  }

apacheのとき

DrectoryIndex  /_h5ai/public/index.php ;

apache の場合のphp設定は、は mod_phpphp-fpm で設定が大きく異なるので割愛。

あとは、サーバーをリロード(再起動)すれば、ディレクトリ表示が盛れる!

認証に関してはいろいろ手法が在るのでコレは別のエントリに記述する。

参考資料

h5ai · modern HTTP web server index for Apache httpd, lighttpd, nginx and Cherokee · larsjung.de

Indexページは盛れる! | 技術情報ブログ | マネージドホスティングのディーネット

jsのDOM APIで親要素はclosest。使える親を要素的に辿っていく(jquery のfind parents 的なこと

.closest ってめっちゃ便利

document.querySelector('a.current').closest('ul').closest('li')

closest で xpath の ancestor的なことが出来るかも−

xpath の ancestor 的なことができる。そして jQuery で言うところのparent()的なこと。

jQueryのparents とかで出来たので、VanillaJSでコレができるのは便利。

2018-05-16 追記

ieでは動かないので、トランスパイラを入れた方が無難かも

参考資料

https://developer.mozilla.org/en-US/docs/Web/API/Element/closest

スキャンされたファイルが白黒なのでフルカラーにして色つけた編集できるようにする。

モノクロスキャンの画像は割と面倒くさい。

複合機を使って、jpg tiff や pdf でスキャンするときに、モノクロでスキャンすると、JPEGがGrayで作られてしまう。

編集しても色が消える。

グレイで作られた画像ファイルをそのまま編集しても、色情報が失われて、白黒で保存される。たとえば、MacPreview.app などのちゃんとした画像ソフトはモノクロを意識してちゃんと保存してくれる。Photoshopなどでも元ファイルからいったん別ファイルに書き出さないとカラープロファイルが変わらない。

magick でなんとかする。

ちょっとした編集をしたり、スキャンした画像にプレビュー.app で蛍光ペンマーカーを引いても色情報が失われてしまうので、とっととフルカラーつまりsRGBにしたい。

convert input.jpg   -colorspace sRGB -type truecolor out.jpg

またはmogrify で

mogrify input.jpg   -colorspace sRGB -type truecolor out.jpg

実際にやってみる。

たとえば、次のような感じ。

takuya@Desktop$ identify  20180323170514098.tif
20180323170514098.tif[0] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[1] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[2] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[3] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[4] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[5] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[6] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[7] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[8] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[9] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[10] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000
20180323170514098.tif[11] TIFF 4968x3508 4968x3508+0+0 1-bit Bilevel Gray 5.28382MiB 0.000u 0:00.000

フルカラーにしたもの

convert コマンドと colorspaceを組みわせて出力された結果がコレ。

20180323170514098-0.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 4.82438MiB 0.000u 0:00.000
20180323170514098-1.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 2.75272MiB 0.000u 0:00.000
20180323170514098-10.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 2.47305MiB 0.000u 0:00.000
20180323170514098-11.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 3233910B 0.000u 0:00.000
20180323170514098-2.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 5.17893MiB 0.000u 0:00.000
20180323170514098-3.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 2.19638MiB 0.000u 0:00.000
20180323170514098-4.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 2.43567MiB 0.000u 0:00.000
20180323170514098-5.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 2.36627MiB 0.000u 0:00.000
20180323170514098-6.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 2.15146MiB 0.000u 0:00.000
20180323170514098-7.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 2.09416MiB 0.000u 0:00.000
20180323170514098-8.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 7.13491MiB 0.000u 0:00.000
20180323170514098-9.jpg JPEG 4968x3508 4968x3508+0+0 8-bit sRGB 7228270B 0.000u 0:00.000

時々とまどう

白黒で複合機スキャンすると、複合機はGrayなカラー情報を使った画像を出力してくれるのだが、あとでちょいちょい編集をしようとすると割と面倒くさい。カラーだと色補正が効かなったりするので、親切でやってくれるんだろうけど。複合機でカラースキャンしてくれれば十分で、あとでぱぱっと画像編集をすれば済むのでモノクロスキャンののGray埋め込みは、編集時にハイライトが白黒にされてしまって、時々焦ることが在る。便利なのか不便なのかよくわからない感じありますよね。

スキャンが必要な状況が辛い。

もとのExcelシートそのままや、そこからJPG化したり、PDF化して渡してくれればいいのに、どうしてプリント(印刷物)にして配布したり。さらにそれをスキャンして寄越すのだろうか。。。辛さ在る。

参考資料

https://stackoverflow.com/questions/34874771/convert-jpg-image-from-grayscale-to-rgb-using-imagemagick

gitlab のデータベースにアクセスする一番簡単な方法

あれこれ、調べたりしようとしたけど、コレが最短。

takuya@sakura:~$ sudo gitlab-rails dbconsole

gitlabの内部の postgresql /mysql のポートやIPを調べてパスワードを調べて、どのユーザー名でーとか考えなくていいから良いよねコレで。

コマンドを起動するだけなので、docker exec から 直接起動したり出来るので便利。

NHK のニュースのTSとm3u8の動画を保存したりしてffmpegで遊ぶ

 NHKのニュースをアーカイブして後でみたいなと思ったり

用意するもの

はいこれだけ。

これだけで、NHKニュースのHTML5動画を保存できて便利

使い方

python nhk_news_web_video.py URL

きっかけ

このニュースがすごく印象的だったのでどうしても保存したかった。

このニュースはパスワードのクソ仕様に世間がようやく気付いた<嚆矢>だとおもってる。記念に残しておこうと思った。

f:id:takuya_1st:20180329233645p:plain:w200

「パスワードの定期変更は不要」総務省が呼びかけ改める

3月28日 18時27分

インターネットのパスワードを定期的に変更するよう呼びかけてきた総務省は、変更のしかたによってはかえって不正アクセスを受けやすくなるとして、安全なパスワードの場合は定期的に変更する必要はないと呼びかけの内容を改めています。

総務省はインターネットの安全な利用法に関するサイトの中で、パスワードの定期的な変更を呼びかけてきました。

しかし去年11月、この呼びかけの内容を、「定期的に変更する必要はない」に改めました。 その理由について総務省は、パスワードを定期的に変更すると、かえってパスワードの作り方がパターン化したり、複数のサイトで同じパスワードが使い回されるおそれが高まったりして、不正アクセスを受けやすくなるためとしています。

ソースコード(最新版は github から )

https://github.com/takuya/nhk_news_web_video

gist.github.com

NHKのニュースWEBの現在の仕様

  • 基本的に m3u8 を使う。
  • ニュースページに iframe でビデオページが埋まってる
  • iframe のビデオページは サムネイルとvideoタグで構成されてる。
  • iframe のビデオページにm3u8 があり、m3u8の中身はh264 の ts の列挙

このわかりやすい仕様なので、m3u8をとりだして ffmpeg するだけ。

NHKのニュース保存とかでくっそ面倒なアプリを買う必要もないし、ffmpegとHTML解釈さえ出来るとソレで終わるんだけど、、、な・・・

2018-07-25

NHK ニュースの再生が若干変わってたので対応した。

2018-11-15 更新

NHKがiframeをnoscript 化しちゃってiframeのsrcが取れないので対応した。

2019-01-30

地域版などはiframe のsrcにあったので対応した

2019-03-05

UserAgentを入れないと403 にされたので対応

2021-12-19

動作確認した。まだ動く。

2022-02-28

動作確認した。まだ動く。github に移動。

MySQLで複数のIPアドレスを指定

mysql で複数のIPアドレスを指定する

NICを指定したり、アドレスを指定したい。DockerだのVBoxだとか、複数にIPがあるときに全アドレスでlistenするとIptableをしっかり書かなくてはいけなくなったりするので、面倒くさい。

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
bind-address            = 192.168.2.5
#
# * Fine Tuning

2つ書けばOK

'0.0.0.0' で全アドレスをListenしてしまうと不都合が多いので指定できるのは嬉しい。

Raspiのomxplayerがalsaに対応してたので、USBスピーカーが使える

omxplayer が alsa使えるようになってる!

omxplayer は hdmi か raspi の オーディオジャックしか使えなかった。まぁハードウェアのデコーダーを活かすためなんだろうけど。音声くらいなら問題ないので、出力先を変えるほうが便利だよねって思ってた。

いままで

mplayer -ao alsa:device=plughw=1.0 input

これから

omxplayer --hw --timeout 60s -o alsa:plughw:1,0 {input}

omxplayer で済む。

これまでは、シェルスクリプトで再生する系のコマンドは、mplayerとomxplayerを切り替えて使っていたけど、これからはomxplayer だけでいける。楽だわ

出力するスピーカーを選ぶことが出来るようになるのは便利。

バイス一覧のとり方

aplay -l

または

aplay -L

関連資料

参考資料

USBスピーカー