特に難しいことはなく以下の通りです。
pm2 start hoge.sh

.shに引数をつける場合は
pm2 start hoge.sh -- run # ここでは run が引数

今回はこれだけです。
それでは。



はじめに

最近オフィスで仕事をしていると、たまに「異常にネットが遅い。。。」と感じるときがあります。
これは計測のしがいがありますね!!
Don’t guess! Measure!
というわけで、ネット回線のスピードテストを自動実行して視覚化してみました。


 

やったこと

  • speedtest-cliをcron実行
  • 結果を記録
  • 記録したデータをグラフにする

計測方法

本当はGoogleスピードテストをヘッドレスブラウザから叩くようにしたかったんですが、環境作るのに手間がかかりそうだったのでやめました。
今回利用したのは、speedtest-cliというCLIで実行できるツールです。
こちらはPython製ですが、Pythonのコードは一切書いていません。
ただ、Pythonの実行環境というかpipというパッケージ管理ツールが必要となります。
以前、Pythonの環境は整えていたので今回はスムーズに導入できました。
実行環境はCentOS6です。


speedtest-cliをインストール

pip install speedtest-cli

インストールが完了したらターミナルから

speedtest

と叩くだけで回線速度の計測ができます。
しかし、これだとpingから最適な計測サーバーを選択するらしく毎回違うサーバーにつながってしまいます。
同じサーバーにつなげて時間以外の条件を変えずに計測を行いたかったので、以下のオプションのようにして実行します。

speedtest --simple --server 14623

--simpleオプションは実行結果をシンプルに表示します。
--server 14623で東京サーバーを指定しています。
サーバーは世界中にあるのですが、日本のサーバーを利用したい場合は以下のようにすると一覧を表示できます。

speedtest --list|grep -i japan
14623) IPA CyberLab (Bunkyo, Japan) [2.57 km]
 6492) denpa893 (Sumida, Japan) [6.13 km]
15047) OPEN Project (via 20G SINET) (Tokyo, Japan) [6.15 km]
18838) BGP Network (Tokyo, Japan) [6.15 km]
20976) GLBB Japan (Tokyo, Japan) [6.15 km]
19256) Love4Taylor (Tokyo, Japan) [6.15 km]
 6508) at2wn (Yokohama, Japan) [28.67 km]
 8407) Allied Telesis Capital Corporation (Sagamihara, Japan) [36.44 km]
 6087) Allied Telesis Capital Corporation (Fussa-shi, Japan) [38.13 km]
 7139) SoftEther Corporation (Tsukuba, Japan) [48.03 km]
19038) poteitooo (Nagoya, Japan) [263.76 km]
 6766) JAIST(ino-lab) (Nomi, Japan) [300.32 km]
 6368) gatolabo (Maibara, Japan) [316.59 km]
 6476) rxy (individual) (Osaka, Japan) [401.52 km]
 6405) Allied Telesis Capital Corporation (Misawa, Japan) [573.40 km]
19915) CloudRemix(IDCF) (Kitakyushu, Japan) [834.67 km]
18709) extride inc (Hitoyoshi, Japan) [914.25 km]
  811) GLBB Japan KK (Chatan, Japan) [1543.58 km]
 6581) haza (Haebaru, Japan) [1556.20 km]
21118) GLBB Japan (Naha, Japan) [1557.98 km]

シンプル表示で実行すると以下のような結果が表示されます。

speedtest --simple --server 14623
Ping: 32.296 ms
Download: 79.92 Mbit/s
Upload: 92.78 Mbit/s

計測結果を記録してグラフにする



ここまでで、ネット回線の速度は計測ができました。
続いてこちらを記録してグラフにします。
ここから急にPHPになりますがご容赦ください。

<?php

$now = date('Y-m-d H:i:s');
$result = array();
exec("speedtest --simple --server 14623", $result);

if (!$result) {
    exit;
}

// あとはcsvファイルとして記録する
$csv = implode(",", $result);
$fileName = "speedtest.csv";
$fp = fopen($fileName, "a");
fwrite($fp, $csv . ',' . $now);
fwrite($fp, "\n");
fclose($fp);

シェルでやるのが面倒くさかったので、PHPからexecで叩いてcsvファイルに記録することにしました。
こちらのPHPをcronに登録して15分毎に計測していきます。
1日あればそこそこデータとれます。
データが貯まったらcsvファイルをスプレッドシートに投げてグラフを表示します。






※実データだとまずい気がしたので、グラフは一部加工しています。


まとめ

実際に計測してみると、やはり夕方から夜にかけてどんどん速度が落ちていることがわかりました。
感覚で遅くなったと言ってもなかなか改善に動いてくれる人は少ないですが、数字とかグラフで視覚化するとあっさり動いてくれたりします。
speedtest-cliはWindowsでもPythonをインストールすれば動きますので、ネット回線の速度を計測したい人は試してみると良いと思います。
それでは、快適なネットライフを。


28. 10月 2018 · Write a comment · Categories: その他 · Tags:



はじめに

中部地方でWebエンジニアをしています。今回自社運営しているサイトを常時SSL対応しました。
先日、日本時間2018年10月17日にChrome70がリリースされ、HTTPSでないページへの警告がさらにまた1つ進みました。
まだ現状ではHTTPのページも閲覧はできますが、この先常時SSL対応していないサイトはどんどん閉め出されていくことが予想されます。
また、ServiceWorkerなどの技術を導入する際も常時SSL対応がされていないと導入できなかったり(しにくかったり)と常時SSLでないことのデメリットは増えていく一方です。
今回、自社サイトの常時SSL対応をするにあたって行った内容を記述します。
サイト規模はざっくりとしかお伝えできませんが、デイリーPVが200万超えるくらいです。


 

やったこと

  • Mixed Contentの収集
  • ひたすら書き換え
  • 強制SSLリダイレクト

Mixed Contentの収集

常時SSL対応をするにあたってここが一番重要かと思うのですが、実際のユーザーの手元で発生しているMixed Contentを把握する必要があります。
そこで行ったのがContent-Security-Policyの設定です。
どういうことかと言いますと、ヘッダー情報にMixed Contentの発生を通知するような情報を追加します。
これにより、ユーザーの手元で発生したMixed Contentの内容が把握できるようになります。
具体的には.htaccessに以下のような記述を追加しました。


Header set Content-Security-Policy-Report-Only: "block-all-mixed-content; report-uri https://example.com/mixedcontentreport.php"

こうすると、Mixed Contentが発生した際にその内容が https://example.com/mixedcontentreport.php に json で POST されます。
https://example.com/mixedcontentreport.php の部分はご自身の環境にあわせて書き換えてください。
POSTされてくる json は以下のような内容となっています。


{
  "csp-report": {
    "document-uri": "https://example.com/hogehoge/",
    "referrer": "https://example.com/hogehoge/fugafuga/",
    "violated-directive": "block-all-mixed-content",
    "effective-directive": "block-all-mixed-content",
    "original-policy": "block-all-mixed-content; report-uri https://example.com/mixedcontentreport.php",
    "disposition": "report",
    "blocked-uri": "http://example.com/foo.png",
    "line-number": 1,
    "source-file": "https://example.com/hogehoge/",
    "status-code": 0,
    "script-sample": ""
  }
}

上記の例だと https://example.com/hogehoge/ にアクセスした際に http://example.com/foo.png で Mixed Content が発生しています。
この情報を DB に記録してひたすらMixed Contentを潰していかなければなりません。
不毛とも思える対応ですが、他に方法はありません。(あったら教えてください。。。)



ひたすら書き換え

Mixed Content収集の準備が整ったら、続いて HTML、CSS、JavaScript の書き換えを行います。
こちらに関しては要するにリクエストが発生する箇所をすべてHTTPSで読み込むように書き換えます。
使用しているフレームワークによってはある程度システム的に置き換えも可能だと思いますので、こちらに関してはサイトによって対応が変わってきます。


強制SSLリダイレクト

こここまでの対応で常時SSL化の対応準備が整いました。
最後にユーザーからのアクセスを強制的にHTTPSにリダイレクトさせます。
こちらに関しては .htaccess で対応、PHP で対応、ロードバランサで対応などいろいろ考えられますが、まずはアクセスの1%を強制SSLリダイレクトすることをオススメします。
いきなり全アクセスをSSLにしてしまうと影響範囲が大きすぎるため夜中の対応を強いられることになるかもしれません。。。
別に私がそうだったわけではありませんが。。。


まとめ

常時SSL化の対応をしないという選択肢は正直ありえませんので、もしまだ対応をしていないようであれば一刻も早く対応をしたほうが良いかと思います。
やること自体は至ってシンプルですが、ただ面倒くさいのは事実です。
まずは状況把握としてMixedContentの収集をしてみてはいかがでしょうか?


社会に疲れ切っているみなさん!
そう、そこの私!
めぐりズムが良いらしいよ!!


えー、私一応プログラマを生業としていまして、1日の中で画面を見ていない時間は寝ている時だけという日々を送っております。眼精疲労が早くもピークに達してしまいました。こんなことを言いながら画面に向かってブログを書いております。

先日、会社の忘年会の景品を決めるときに「眼をジュワ~ってするのいいよね」と、女子が言っているのを某野々村議員並に聞き耳を立てて聞いておりました。

なるほど、ジュワ~か。
これはよさそうですね、ということでさっそくカカクヤスクKYセイユーで購入してまいりました。

IMG_5248.JPG

5枚入りで473円でした。
中はこのように個別包装になっており、1回使い切りだそうです。

IMG_5250.JPG

付けてみた。

IMG_5256.JPG

普通だ。

IMG_5258.JPG

うおおおおおおおお!!!!
あったかいぞ!!!!!!!

IMG_5257.JPG


いや、しかし蒸気はまったく感じられんな。10分と書いてあったので待ちましょう。

IMG_5259-0.JPG

何も見えませんが、隣でエアー彼女の幸子が10分経ったと言っています。
いや、まだあったかいしイケる。

待ちます……

14分くらいで冷めてきた模様。
外します。

!!!!

すげえぜコレは。
眼がスーパースッキリしています。目の周りがしっとりしているので、蒸気はしっかり出ていたようです。

アイマスクを外した私を見たエアー彼女の幸子が、「さっきと顔が違う」と言っていました。
どうやら、さらにイケメンになってしまった模様。参ったぜ。

母親と父親にも1枚ずつ渡して試してもらったところ、「テレビがよく見える」と言っていました。

エアー彼女の幸子は19分くらい冷めずに付けていたので、時間は検証が必要ですね。

疲れきった現代人にオススメです。
皆さんも眼が疲れたなあと感じたらぜひ試してください。

それでは。

どうも、スタバでオサレデートをして会社でリア充扱いを受けているちはやです。

今回はスタバが提供している無料Wi-Fiを試してみました。


まず、オサレな服に着替えます。
可愛い彼女を連れてスタバに入店しましょう。
ここをクリア出来ない人は諦めてください。

スタバに入店したらおもむろにiPhoneを取り出し「設定」を開きます。

Wi-Fiの項目から「at_STARBUCS_…」を選択してください。


IMG_5162.JPG


IMG_5163.JPG

続けてSafariを開きます。
そして、おもむろにAppleと検索します。(実際は何でも構いません)
すると、スタバのWi-Fiにログインする画面が現れます。


IMG_5164.JPG

IMG_5165.JPG

上のログインフォームは無視して構わないので、下の方にあるSNS連携から好きなものを選んでログインしてください。



ログインが完了するとこの画面になります。


IMG_5166.JPG

これで完了です。
試しに通信速度を測定してみました。


IMG_5167.JPG

まあ、それなりに出ていますね。

今回はiPhoneで試してみましたが、もちろんAndroidでもWi-Fi版のiPad等のタブレットでもOKです。

みなさんもぜひ試してみてください。
それでは。

どうも、カフェイン大好きちはやです。
私もプログラマの端くれでありますので、例に漏れずエナジードリンクが大好きです。
カフェインを摂らないと仕事が出来ないレベルのカフェイン中d…(略)


私はレッドブルよりもモンスターエナジーが好きなのですが、先日モンスターエナジーから新作が出たという情報を耳にし、仕事そっちのけでコンビニへ向かいました。

あった!!

IMG_4671

こ、コーヒーモンスターだと…
もはやカフェインの塊、カフェインの鬼、カフェインの巣窟、カフェインの……
と、とにかく期待できそうです。

一応裏の説明を読みましたが、何やら怪しい文面が。
「よく振ってください」

IMG_4675

エナジードリンクなのに、よく振れとはどういうことだ?
いや、これはあくまで缶コーヒーだということでしょう。それならば仕方がないですね、力いっぱい振ってマグカップに注いでみました。


IMG_4674

ものすごく嫌な予感がしますね。
いや、きっと気のせいです。俺達のモンスターエナジーは、モンスターエナジーならきっとやってくれます。

「ゴクリ」

す、すごく甘いです…
甘すぎだバカ野郎!!

後味もあまりよろしくありません。お前はマックスコーヒーかってくらいの味です。
この後の仕事に支障が出るレベルでした。

ネタとして飲んでみるのは当然ありなのでしょうけど、一回飲んだら二度目は無い商品ですね。
明日からはまた別な方法でカフェインを摂取します。

それでは。

どうも、カフェイン大好きコーヒー大好きちはやです。



今年からITベンチャーで働いていることもあって、職場ではコーヒーサーバーで挽きたてのコーヒーが飲めます。
やはり、その場で豆から挽いたコーヒーは美味いっすね。お陰であっという間にカフェイン中d…(略)

しかし、自宅でもおいしいコーヒーが飲みたいからと言って、わざわざ豆を買ってきて、しかもミルで挽いてなんてとてもじゃないですが無理ですよね。本当にコーヒーが好きな方は当然のようにやってらっしゃるのかもしれませんが。

忙しい現代人は手軽さを求めるものです。でも、やっぱり美味しいほうがいい!!

そこで私は、真空パック個包装のドリップコーヒーを飲んでいます。
こういうやつですね。開封済みですが気にしないでください。

IMG_4609

IMG_4608



この手のタイプが美味しさ、手軽さ、コストパフォーマンス的に最良ではないかと思います。
こちらは近所のドラッグストアで買いましたが、20パック入りで500円くらいでした。
一杯あたり25円くらいですね。家で一日に何杯もコーヒーを飲む方は少ないでしょうから、一月くらいはコレ一袋でもつのではないでしょうか。

IMG_4612

突然写真の雰囲気が変わりましたが、そんなことはどうでもいいです。
淹れるときはこういう感じですね。蒸らす時間が20秒くらい必要ですが、まあ蒸らさなくても美味しいです。
蒸らしても一分もかからずに美味しいコーヒーが飲めます。

さきほど書いたように、500円くらいで買えるので自宅で手軽に簡単に美味しいコーヒーが飲みたいと思っている方は、このタイプのコーヒーを是非お試しください。

それでは。