ボランティアで防災・減災関連のwebサイトの情報を収集しているが、そのようなサイトは災害時にわっと作られるが、その後、閉鎖されたり、メンテナンスされなくなってしまうサイトも少なくない。同様な地方自治体のホームページも少なからずある。

時々そのようなサイトの状況をチェックするのに便利なツールがなかったので自分で作ることにした。

最初はHTTPでアクセスしてレスポンスをチェックするだけと思っていたのでcurl等を使ってちょっとしたスクリプトで済ませようと思った。だた実際に確認してみると個人の作ったWeb サイトは思ったより続けられていないことが分かった。 同じドメインが全く違うサイトに変わっていたり、閉鎖されてNot Found ページが返ってくるのに レスポンスコードは200だったり。ドメインも管理者も変わってなさそうだけど、内容が全く変わっているものもあった。

また、文章ではなく画像に情報が書いてあったり、地図等の外部コンテンツを埋め込んでいるサイトも多く、レスポンスのテキストにキーワードが含まれるかどうかだけではどうも判別が難しい。ということで、チェックは目視ということになるが、いちいちURLにアクセスしていチェックしなくても良いようにスクリーンショットをとる機能を実装することにした。

その他、必要な機能を検討し、以下のようなツールを作ることとした。

  • URLが有効かどうか実際にアクセスして確認する
  • その際、リダイレクトにも追従できる
  • レスポンスのステータスコードが200ならスクリーンショットを取る
  • 単一のURLでなく、URLのリストを読ませて複数のサイトを一度にチェックできる
  • 結果を再利用しやすい形で出力する

最初は Phantom.js を使って作った

HTTPのリクエスト/レスポンスだけなら色々方法はあるが、スクリーンショットを取るとなると使えるツールが限られてくる。 実行中にブラウザがぱたぱた動くのも鬱陶しいし、できればGUIを持たないサーバで動かせるようにしたい。 となると、Phantom.js を使うのが最も手軽かと思い、最初のプロトタイプを作った。 実際には、Phantom.js を使いやすくラップしてくれる CasperJS を利用した。

最低限、動くものを作って、さあ、使いやすくブラッシュアップしていこうかなと思った矢先、Chrome 59にて ヘッドレスブラウジング がサポートされ、それに伴い、Phantomのメンテナがやる気を失ったらしい(参考:Phantom.jsのメンテナー、プロジェクトの将来に疑問を呈し、その座を降りる)

ということで、PhantomJSをインストールしなくても使えるような実装のほうが良いし、いまやシェアトップとなった Chromeを使うほうが、スクリーンショットの結果も普段使っているブラウザとを乖離せず良かろうと、この実装は捨てることにした。

ヘッドレスChromeへの変更

Chromeをプログラムから操るには、DevToolのリモートプロトコルを使えば良いようで、そのためのライブラリchrome-remote-interface を利用して実装を変更した。 このライブラリ、Chrome DevTools Protocolの機能をほぼほぼカバーしているけれど少々プリミティブ過ぎて、使いづらかった。

例えば、通信が一つ一つハンドリングできるので、ページのレスポンスコードを取るのに、ページからリンクされる画像やCSSその他へのリクエストの中からドキュメントへのリクエストを探して得る必要があるとか、それもリクエストIDが取れるのでそのIDで再度結果を取得する必要があるとか、とにかく煩雑で、やりたいことに対して実装しないといけないことが多かった。おまけに、Chromeそのものを起動する機能は持っていないので、GoogleChrome/lighthouseを使ってChromeの起動を実装する必要があった。

このまま実装を続けても、この先の機能追加とか辛そうと思っていた矢先、GoogleChrome/puppeteer を知った。

puppeteer に切り替え

puppeteer だと、次のようにほんの数行書くだけで、Chromeをヘッドレスで起動して、URLにアクセスしてスクリーンショットを撮ってブラウザを終了してくれる。

// puppeteer でスクリーンショットのサンプル
const puppeteer = require(puppeteer);

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  const response = await page.goto(https://example.com);
  await page.screenshot({path: example.png});
  console.log(response.status)

  browser.close();
})();

同じことを chrome-remote-interface を利用すると次のようになる。スクリーンショットの保存も自前で、しかもこれにはChromeの起動/終了が含まれていない。

// chrome-remote-interfaceでのスクリーンショットのサンプル。
// Chromeの起動/終了は別途必要。
const CDP = require(chrome-remote-interface);
const fs = require(fs);

CDP(async (client) => {
    const {Page} = client;
    try {
        await Page.enable();
        await Page.navigate({url: https://example.com});
        await Page.loadEventFired();
        const {data} = await Page.captureScreenshot();
        fs.writeFileSync(scrot.png, Buffer.from(data, base64));
    } catch (err) {
        console.error(err);
    } finally {
        await client.close();
    }
}).on(error, (err) => {
    console.error(err);
});

また、puppeteer だと、レスポンスコードも簡単に取れるが、chrome-remote-interface だと更に Networkクラスを使って、Page.navigateのレスポンスコードを探して取り出す必要がある。

これだけ比べても、puppeteer に乗り換えるメリットを感じたし、Chromeチーム謹製というのも安心感があった。 それで、再度実装を変更した。

site-checker として公開

で、作ったツールを この度、公開した。

  • HeRoMo/site-checker: checking web site status and capturing screenshot tool
  • site-checker

我ながら、センスのないベタなネーミングに嫌気がさすが、これというのが思いつかなかったし、npmライブラリとしても使われていない名前だったので、この名前にした。

次のコマンドでインストールできる。

$ npm install -g site-checker

インストールしたら、次のコマンドで、スクリーンショットが取れる。

$ site-checker -u http://hero.hatenablog.jp

できることは次の通り。

  • 指定したURLにアクセスして、レスポンスがあれば スクリーンショットを取る
  • URLのリストを読ませて一括処理も可能
  • アクセス結果は JSONで出力。
  • スクリーンショット見やすいHTML形式での出力も可能。
  • フルページのスクリーンショットも取れる
  • スマートホンをエミュレートしたスクリーンショットも取れる

特に、フルページとエミュレーションは puppeteer に切り替えてとても簡単に実装できた。

詳しい使い方はこちらを参照 => 使い方 · HeRoMo/site-checker Wiki

f:id:dfukunaga:20170417005216p:plain

※Linuxです。

なんて言えばよいのかわからなかったのですが、ip route get xxx.xxx.xxx.xxxと打ったときに出てくる ソース(送信元)アドレスをC/C++内で取得したかった。すぐに思いついた方法は、

  • popenを使ってip route getを実行し、標準出力を取得
  • 一時的にソケットを作って送信元IPアドレスを取得

です。以下のようなサンプルコードを書きました。

get route source address

どちらも同じ出力が得られますが、手元の環境で試したところ、 1000回実行するのにかかる時間がpopenを使った方法では約1秒、 ソケットを使った方法では約0.005秒だった。(コードの改善点はあるかもしれませんが。)

他にもっと良い方法があれば教えてください!

娘の習い事の先生に頼まれた発表会の案内、

無事に中国語版も英語版も完成しました。

1日で完成って、早い!

っが、私がしたわけではありません。。。

中国版は台湾のパルがワードを使って、

簡体字(中国で使われている漢字)で。

英語版は私が作ったものをイギリスのパルにメール添付して

赤ペン先生をしてもらって完成。

「イギリス英語でいいの?」と夫に聞かれたけれど、

アメリカ英語版までいるの?!

そんなに変わらないはず…多分…。

習い事の先生には、

「全く私の実力ではなく、友人たちにしてもらっただけです!」と

きちんと伝えた。

中国語版と英語版がもう完成したので、

来年からは、微修正だけで、中国語圏と英語圏の生徒さん募集できますね~

と先生に話したところ、

「ルー大柴も真っ青な英語で指導しているんだから。無理!」と。

我が家の子どもたちにピアノを教えているときは

吉本新喜劇を見ているような突っ込みとリアクションの

とーっても面白い先生です。

海外公演もされていた先生で、ピアノを弾くと

いつもの先生はどこ行った?!という豹変ぶりでため息がでるほど美しい。

そんな先生に習っているこどもたちですが、

「太郎君、まずは右手から弾こう。」と先生に言われて

左手で弾き始める小1がいたり、

最後の最後で、ダーン!!とかっこよく決めるところで

ポーンとオクターブ間違えて引く小3の指導は椅子からずっこけたり、

「なんでやねん!」と突っ込んだり、先生は忙しそうです。

先生には「フランス語版とオランダ語版、

ドイツ語版にスペイン語版もできますよ!」

と伝えた。

仲良しのパルたちに「翻訳して~」と丸投げ予定ですが。

フランスの元軍人パルに今回のことをメールで話したら、

「フランス語版はチョコのお礼に、いつでもするわよ!」と

すでに言質とってますから。

英語版は完璧!と思って、ロンドンのパルに送ったのに、

untilに私がしていたところを、byにしたほうがいいとか

onにしていたところを、inに修正されたり、

この短い中で、これだけ前置詞を間違えているなら

普段の私の手紙は前置詞って、ほぼ間違っているのでは?!と

私が青ざめてしまったことは先生には秘密で。


にほんブログ村

八塩ダム

2018/07/03

3/13、秋田県由利本荘市、八塩ダムに行ってきました。
2回目。(→前回)


f:id:kazu_ma634:20160421072817j:image:w400
堤体ですが、雪で全体真っ白なのでわかりづらいですね。


f:id:kazu_ma634:20160421072818j:image:w400
天端*1。


f:id:kazu_ma634:20160421072959j:image:w400
ダム湖。
除雪されていないため、これ以上の散策はできなかった。

*1:ダムの一番上の部分

はい私のところは相変わらずの雨です

 

きのこにとってはイイテンキデスナー((((oノ´3`)ノ

 

というわけで今日は前に紹介したゲームのネタを仕入れてきました(∩´∀`)∩

 

※同盟の皆様からは許可をいただいてるはず・・・DEATH☆

 

f:id:momonokinoko:20161206222719j:plain

 

はい、このゲームですね

 

戦国系のゲームにはT.M.Revolutionの曲が合いますな(*´ω`)

てなわけでどーん

 

www.youtube.com

 

おっと話がそれましたな

 

私はいま長宗我部家に属していまする。

 

そしてこのゲームには同盟というものがございます。まぁほかのゲームですとクランってな感じですかな(。-`ω-)

 

私の所属同盟は長宗我部家の5位\(゜ロ\)(/ロ゜)/

 

無論ランカー様方の同盟です(私は除く

 

だがしかーし、ただのランカー様方ではござらぬ!!

 

その証拠にどーん

 

f:id:momonokinoko:20161213225526p:plain

 

基本的にランカー様方の同盟のイメージとしては無駄な会話一切なしのイメージですがそれを払しょくするような無駄な会話!!

 

おとなしくておしとやかな私をカオス呼ばわりする同盟人の皆さんマジカオスです

\(゜ロ\)(/ロ゜)/

 

興味があればぜひご覧くださいませ。またカオスなチャットがあれば随時貼りまする

 

とりあえず盟主の紹介ほどしときましょう♪盟主のきょぴりんさん。この方は凄い!!何がすごいかっていろんなところですよ!! 中でもくじ運のなさには圧巻でしたな(。-`ω-)

 

あとは女性のキャラに対する熱意がすごいですよー

 

ちなみにマジで強い人ですのでww

 

ほかの方々は追々ピックアップしていきまーす

もし合戦の最中私の名前を見つけたらくれぐれも攻撃しないようにお願いします

泣きますよ(*´ω`)

 

きょぴりんさんの名前を見つけたら・・・

 

哀れんでください(´;ω;`)

 

ではではー(@^^)/~~~

 

 

 

 

 

The Traditional Aga Book of Slow Cooking

di Moyenne des commentaires client : 4 étoiles sur 5 : 146 Commentaires client

Télécharger The Traditional Aga Book of Slow Cooking PDF de Louise Walker - Book by Walker Louise

Télécharger The Traditional Aga Book of Slow Cooking PDF de Louise Walker - The Traditional Aga Book of Slow Cooking a été écrit par Louise Walker qui connu comme un auteur et ont écrit beaucoup de livres intéressants avec une grande narration. The Traditional Aga Book of Slow Cooking a été lun des livres de populer Cette année. Il contient 160 pages et disponible sur format E-book, Hardcover. Ce livre a été très surpris en raison de sa note 4 et a obtenu environ 146 avis des utilisateurs. Donc, après avoir terminé la lecture de ce livre, je recommande aux lecteurs de ne pas sous-estimer ce grand livre. Vous devez prendre The Traditional Aga Book of Slow Cooking que votre liste de lecture ou vous serez regretter parce que vous ne lavez pas lu encore dans votre vie.


 

前の記事の続きです。 

私が、こんなふうに

自分の身体と対話しながら練習していく

ということができるようになったのも

以前の記事に書いた、「フェルデンクライス メソッド」

のおかげも、大きかったと思います。

 

先週水曜日、フェルデンクライスのレッスンを受けてきました。

時期的に、演奏の本番前、なので、

ピアノの練習にできるだけ時間を取りたいため、行くかどうか迷ったのですが、

行ってよかったです。

 

はるばる明石まで、

毎月一度、午前と午後のレッスンを受けるため、

丸一日かけて通うようになって、3年ちょっと。

 

以前の記事に書いた、こんなレッスンなのですが ↓

フェルデンクライス・メソッド - かおりピアノ教室~兵庫県川西市 松尾かおり

陽子先生に、演奏本番に向けての体の意識の持ちかたの

アドバイスもいただけました。

 

ピアノの話にもどりますが…

 

前記事に書いた、ピアノのレッスン ↓

kaoripiano.hatenablog.com  

を、受けたときのこと。

 

先生は、すごくよくなった、と褒めてくださったあとに

「いろいろ、やってきたのが、よかったと思うよ」

と、言ってくださったのです。

 

今回、ピアノを見ていただいている古賀先生のレッスンを受けるのも15年ぶり、 

私が、ソロで大きい曲を弾くのも15年ぶりです。

先生とは、

その期間中、ときどき電話で話しをしていたので、

結婚後、ピアノの置けないマンションに住んでいたこと

子育て期間中、演奏活動から遠ざかってしまったこと、

それでもずっと、ピアノ演奏に役立つ、身体の使いかたを探求して、

フェルデンクライスをはじめ、

いろいろなボディーワークのレッスンを受けてきたこと

全部、先生はご存知でした。

 

「いろいろ、やってきたのが、よかったと思うよ。

ずっと、弾いてきた人より…。」

と、言ってくださって、

思わず、涙が出そうになりました。

弾けない時期があったことも、マイナスではなかったと。

 

15年前に私が弾いたシューベルトを

いい音だったと、また聴きたいと言って、

演奏から遠ざかっていた時期に、私を励まして見守ってくださった先生。

 

そして、フェルデンクライスの陽子先生にもレッスンを受けたときに、

その話をしました。

フェルデンクライスも効果がすぐには目に見えないものだけれど、

3年たって、こうやって、ピアノ演奏に確実な効果があった。

話しながら、涙が出そうになりました。

陽子先生も、それは喜んでくれました。

 

私、幸せです。

夫と子どもに恵まれ、

ピアノ教室の生徒さんたちに恵まれ、

それでも、やっぱり

ずっと、演奏活動をしたかったんです。

やっとこうして弾ける。

ほんとうに幸せで、

涙が出そうになるくらいです。 

Qです。

 

2013年も大晦日ですね~。 1年間早かったです。

 

簡単に今年のまとめをしておきます。

(将来の自分のための覚書なので内容は期待しないでくださいませ。)

 

まずは

今年はすっごい建築ラッシュですね。

我が家では、築2年の修繕のために、クロス屋さんや左官屋さんなどの業者さんが 出入りしていますが、話を聞くと本当に忙しそうです。

数分で終わる下見には来ることができるけど、作業は2月以降になるとのこと。

一方で、消費税増税後、、みんな心配してます。

 

いま建築業界が忙しいのは増税前の駆け込みと思われますが、「品質」を求める人は、 いま建てるのはどうでしょうか…

忙しいときに品質が下がるのはどの仕事でも同じような気がします。

数年後、またお得に建築できる時期が来るのではないでしょうか。

 

 

実際、2年前は、住宅エコポイントが、ん十万円分ありましたし、 建築単価もいまよりも安かったわけですからねぇ。

建築業界が不況になれば、このような制度が復活し、 建築単価も(他の物価上昇に対して)下落すると思いませんか?

もちろん保証はできかねますが。

 

次は、

今年の日経平均は6割ぐらい上昇したそうな… 日経平均20131231

年初では、12000円ぐらいまで上昇して春以降に10000円以下に下落すると予想していましたが、 大きく予想を裏切られました

来年は18000円ぐらいまではいくとプロが言っていますが、 この株価水準だと私Qは怖くて買えません。

でも、売ることもできないんですよね~。

なので、いま持ってる株で、こんなような… DCIM0399.jpg

株主優待を貰って満足する一年になりそうです。

 

株じゃないですが、私Qが最近気になる投資対象がなんですよね~。

金相場ドル20131231

「有事の金」と、呼ばれるだけあって、リーマンショックで急上昇しましたが、 その後、かなり下落しています。

 

世界的にみて、金の生産コストが1200ドル/トロイオンスぐらいらしいので、 これ以上下落すると金の鉱山が閉山になり、価格が上昇する。。。

なので、そろそろ底値??かも知れません。

 

経済については、暴れん坊の赤い国の動向も注視する必要があるかも。

あと我が国の国債発行高

来年は、このあたりも視野に入れつつ、住宅ローン金利以上の運用成績を目指します。

ではみなさま、良いお年を

 

 わがQ家には電気自動車(日産リーフ)がありますので、電気自動車用のコンセントを準備してあります( ̄ー ̄)b

f:id:chienokobako:20140816095308j:plain

 両親宅では、 旧型の200Vコンセントが付いていたので、新型の200Vコンセントに交換してもらいました(^▽^)/

 

このコンセントは屋外に設置されているので、漏電対策がされているほうが好ましいです。

 

今日は、 

意外と知られていない??電気自動車の漏電対策

がテーマであります (´ω`)

  

 (1)そもそも漏電とは??

漏電とは、絶縁体の絶縁が破れたり、外的要因により導体間が電気的に接続されたりして目的の電気回路以外に電流が流れること。感電、火災、電力の損失などの原因となる。(ウィキペディアより引用)

 

ふーん、、、、分かりにくいね。

 

 

 

図解すればちょっとは分かりやすいですかね~。 

f:id:chienokobako:20140809150400g:plain

(上図の黒色部分は 日本電気技術者協会のページより引用)

 

 

上の図で、「負荷」が「電気自動車」だと思っていただくとよいですね。

漏電が無い場合、「供給される電流」と、「戻る電流」とが等しくなります。

一方、漏電が発生すると、一部の電流が地球にながれちゃいます(水色部分)。

そうすると、感電する危険性もあるし、電気代も無駄になりますね。

 

(2)普通のブレーカでも漏電対策はされていますが…

普通のブレーカです。

f:id:chienokobako:20140816095215j:plain

左のほうにある白地に黒のブレーカが漏電ブレーカです。

上の回路図でいうところの「検出部」の機能があって、漏電が発生すると、「供給される電流」と「戻る電流」との電流差を電圧として検出して、ブレーカを落とすようになっています。

 

しかし、漏電ブレーカは家全体で1つしかないので、

メインの漏電ブレーカが落ちると…

家じゅうで停電します( TДT)

これは困る。

 

(補足)漏電ブレーカ以外のブレーカは、エアコン用とか電子レンジ用とかで細分化されています。これらのブレーカでは、「電流の総量」が規定値(例えば20アンペア)を超えると遮断する機能がありますが、「漏電」を検知する機能はありません。

なので、これらのブレーカでは漏電を含めた電流が規定値(例えば20アンペア)を超えない限り遮断してくれないのです。

 

 

(3)電気自動車用の漏電ブレーカが推奨されています

電気自動車は雨に濡れる場所で充電されることも多いため、家の中の家電製品よりは漏電の確率が高いのではないでしょうか。

 

 そこで、電気自動車専用の漏電ブレーカを設置することにしました。

 

f:id:chienokobako:20140816095223j:plain

 電気自動車で漏電が発生したときに、このブレーカだけが落ちるようにします。

 

つまり、電気自動車で漏電が発生しても、家の中は停電しない!

 

 これって結構大切なことですよ。

電気自動車は深夜に充電することが多く、この時間に多くの人は寝てますよね。

このとき家全体のブレーカが落ちると、朝まで停電に気付かない…

冷蔵庫の中身が~(ヾノ・ω・`)

 

ってこともあり得ますので。

 

 

(4)家を建てるときに電気自動車用コンセントを付ける場合、専用の漏電ブレーカは必要か?

結論から言うと、電気自動車を持っていなければ「なくてもよい」と思います。

電気自動車用の漏電ブレーカを設置する工事はたいした工事でないからです。

入居と同時に電気自動車を利用する人だけ、専用の漏電ブレーカを設置すればよいと思います。

 

ただし、専用のブレーカを設置するための設置スペースは考えておいたほうがいいかも知れませんね。

 

我が家の場合、既存のブレーカの右側に専用の漏電ブレーカを設置しました。

f:id:chienokobako:20140816095159j:plain

 ブレーカのBOXが2つ並んでいますが、1つにしたい人は、内部に漏電ブレーカを追加できるようなBOXをはじめから選択するのも手でしょうね。

 

 

 (5)盗電防止用のスイッチなど

漏電の話からは変わりますが、電気自動車用のコンセントでは、位置によっては電気を盗まれるってことを心配する必要があるようですね。

いわゆる「盗電」です。

 

我が家の場合… 

f:id:chienokobako:20140816095244j:plain

 庭と駐車場との境界となるゲートの庭側にコンセントを配置しているので、盗まれる心配はしていません。

 

ただし、このような配置にする場合、車までの距離が遠くなるのがデメリットであります。

 

 結論:電気自動車を検討中の人は、「漏電」「盗電」を頭の片隅に!ヽ( ̄▽ ̄)ノ

 

関連記事
  • 購入!電気自動車LEAF(リーフ)購入の決め手と第一印象
  • 電気自動車がやってきた(その2)
  • 電気自動車がやってきた(その1)