birdきょうのつぶやき@digitune

きょうのつぶやき@digitune

image 0Dell XPS12、そもそもDell Active Penは「Coming soon」じゃないか…。イマイチなのかなー>http://www.dell.com/us/p/xps-12-9250/pd (10:45 Twitter Web Clientから・詳細)

image 1820はbig.LITTLE構成ではないクアッドコアに戻るんだ。2.2GHzから、とすると805よりCPU性能は低くなるかも?64bit化やGPU、メモリの向上があるので総合的には良くなるでしょうが…>米クアルコム、「Snapdr… http://ggsoku.com/2015/11/snapdragon-820-debut/ (12:02 Twitter Web Clientから・詳細)

image 2おお!6インチのZenFone!と思ったけどFull HD解像度か…>ASUS、6型ディスプレイを搭載した「ZenFone 2 Laser(ZE601KL)」 ~ZenFone Selfie新色とZenWatch 2も同時発売 http://pc.watch.impress.co.jp/docs/news/20151111_730009.html (12:06 Twitter Web Clientから・詳細)

sqlite3初めて使ってみたけど超お手軽で良いね。当たり前だけどある程度大きなdataの処理ならgrepしまくるより遥かに効率的。 (16:37 Twitter Web Clientから・詳細)

image 3うーん全然物足りない。昔のN-trigが苦手だった定規を当ててゆっくり直線を引いてみたときの挙動とかチェックして欲しいのだが(無理>Apple PencilとSurface Penのトラッキング性能を比較 - GIGAZINE - http://gigazine.net/news/20151112-apple-pencil-surface-pro4-tracking/ (18:52 Plume for Androidから・詳細)

image 4「but only of awful movies」て(^^;> https://twitter.com/verge/statuses/664652590370570240 (18:54 Plume for Androidから・詳細)

知り合いに勧められてkindleで読んだ「orange」、僕的にはイマイチピンと来なかったのだが、最終巻が出たのか…。どうしようかな。 (18:57 Plume for Androidから・詳細)

ペンタブで本格的なお絵描きはしたことがないけれど、そういった用途には「ペンを素早く動かしても滑らかな線が引ける」なんてのはある意味どーでもよくて、ペンを止めているときにもブルブルしないとかミニマムな移動量でミニマムな線がちゃんと引ける、とかの方が大事なんじゃないかと思うんだ。 (19:08 Plume for Androidから・詳細)

素早くても滑らか、は補間技術使えばそんなに難しくないしね。アラも目立たないし。 (19:09 Plume for Androidから・詳細)

「ここさけ」が少し前にオリジナルアニメでは快挙、らしい興収10億円突破!、って言っていたけれど、桐谷美玲さんの「ヒロイン失格」とか有村架純さんの映画とかは軒並み25億円超だったりするのね。そう考えるとアニメ見る人、ってのはまだまだマイナーなのか… (19:23 Plume for Androidから・詳細)

新しいインプレッサセダンもファストバックふうなのね。流行ってるのか。 (19:40 Plume for Androidから・詳細)

ネスケ #急に懐かしい単語を呟きたくなった (22:56 Plume for Androidから・詳細)

birdきょうのつぶやき@digitune

きょうのつぶやき@digitune

RT @tukushiA: 風呂釜は疲れは取れるけど入っててもアイディアは出てこない。
でも立ってシャワー浴びてると不思議とアイディアがちゃんと繋がる。
理屈は分からないけど多分全身の交感神経が絶え間なく刺激…的なアレだろう。 (09:47 Plume for Androidから・詳細)

僕もシャワー浴びてるといろいろ閃く口>RT。潜在バグに気がついたりとか(^^;。 (09:48 Plume for Androidから・詳細)

SH-06F、バックライトの輝度は自動調整にしているけれど、時々単にバックライトの輝度を調整しただけではない、なんとなくディスプレイのガンマ値を調整したかのような変化をピカピカするときがあって微妙に気持ち悪い。 (09:56 Plume for Androidから・詳細)

うぅむ、珍しく電車に酔った(汗。 (09:57 Plume for Androidから・詳細)

演算子の優先順位という概念、研究者やプログラマにとっては常識以前の基礎知識だけど、フツーの人はそんなこと習ったこともすっかり忘れてあんまり意識してないんじゃないかしら。電卓も叩いた順番で計算してくれるし、そのつもりで左から評価する人の方が多くても僕はあんまり驚かないな。 (10:09 Plume for Androidから・詳細)

プログラム書いてても優先順位に由来するバグは結構よく見るし(ほとんどは間違った思い込みによる)、そもそも概念として難しすぎるのでは。紙に数式書いていた時代には括弧を省略できるとかいろいろ合理的だったのだと思うけど、今やもっと別の合理的な書き方がありそう。逆ポーランド記法とか? (10:14 Plume for Androidから・詳細)

GooglePlayミュージック先生、サムダウンした曲はそれ以降二度と流さないで欲しいよ… (10:18 Plume for Androidから・詳細)

RT @amaretto319: 私は以前授業で聞いた「甘えは自分にできない事を他人にお願いするものではない。それは頼ると言います。甘えとは自分でできる事をあえて他人にしてもらう行為を意味します。甘えと頼るのを混同しない」が好きで、それ以来旦那にアイスを買ってきてもらう時など、… (21:56 Plume for Androidから・詳細)

アニメロサマーライブのNHK BSプレミアムでも放送がいよいよ始まる。 (21:58 Plume for Androidから・詳細)

mebaeさんのミクフィギュア、1万6千円ちょっとかー。悩むー<悩むんかい。 (22:01 Plume for Androidから・詳細)

Lytro的テクノロジーやFOVE的なモノまで含めた上でのVRはまだまだコンピューティングパワーを必要とする辺りがこの業界の人にもてはやされる理由なのかな。 (22:12 Plume for Androidから・詳細)

RT @jumbo_usa: @digitune フィギュアは欲しいと思ったときが買い時 (22:23 Plume for Androidから・詳細)

こないだ娘と一緒にとある高校の文化祭に行ったとき、リーダーシップにも音楽の才能にも恵まれた素晴らしい女の子を見たのだが、素晴らしいなぁと思うと同時に(おそらく)彼女があのまま社会に出ることを許さない今の社会のありようにちょっと絶望したりもした。忘れてたけどそういう人たくさんいた。 (22:38 Plume for Androidから・詳細)

単に僕の視野が狭い、ってだけであることを祈る。 (22:39 Plume for Androidから・詳細)

birdきょうのつぶやき@digitune

きょうのつぶやき@digitune

image 0昨日の機能拡張、よく考えたら暴発がヒドイことになることに気がついたのでちょっとだけ修正しました(^^;。メンゴ>どん詰まりまで戻りきったらそのタブを閉じるChrome拡張 - Digitune [memo] http://memo.digitune.org/2015/dead_end_to_close/ (08:28 Twitter Web Clientから・詳細)

Chrome開発者ツールのConsoleに「monitorEvents(window);」と打つとページ内で発生したイベントを全て見ることが出来るんですね。いろいろ便利過ぎる。 (08:32 Twitter Web Clientから・詳細)

.oO(考えてみたらMetaキー、[キーと別々に拾わなくても「Meta修飾された[キー」のkeydownを監視すればいいのか…。今日帰ったら試してみよう。) (08:50 Plume for Androidから・詳細)

うーむ、今日は何だか調子が悪いな。 (13:25 Plume for Androidから・詳細)

先日、タブレットで動画を撮っていたご婦人が、もう少し上の方を映そうとして画面を一生懸命下にドラッグしていた。うむ、気持ちは分かる。 (19:16 Plume for Androidから・詳細)

birdきょうのつぶやき@digitune

きょうのつぶやき@digitune

とりあえずお試ししてみたPS4のAmazonプライムビデオで最初に見たのが「旦那が何を言っているかわからない件」とかw。予想以上にあゆみさんの食いつきが良くてワロタ。 (14:01 Twitter Web Clientから・詳細)

面白かったです>旦那。 (14:02 Twitter Web Clientから・詳細)

今たまたまChromeのデベロッパコンソールを開けたままFacebook開いたら、クソデカい文字で「STOP!これは開発者向けのブラウザ機能です。Facebook機能を有効にするためまたは誰かのアカウントをハッキングするために〜」とか警告出てワロタ。 (14:08 Twitter Web Clientから・詳細)

なるほど、被害者に開発者コンソールを使わせて何ぞかを行う詐欺行為が存在するのか。いろいろ大変だなぁ。 (14:10 Twitter Web Clientから・詳細)

Chrome拡張としてのタブのどん詰まり(history.back()出来ないところ)でマウスのバックボタンを押したらタブを閉じる機能、ウチのMac版Chromeで超簡単に実装出来たのには実はいろいろ訳がありました。 (18:17 Twitter Web Clientから・詳細)

そもそもウチのMacはMagic MouseなどいわゆるMac用のマウスではなく、フツーのWindowsで使うようなBTマウスがつながっています。その状態でマウスのボタン4、5(通常ブラウザの進む/戻るに割り当てられている)を有効にするために、 (18:19 Twitter Web Clientから・詳細)

Karabinerというツールでそれらのボタンを押した時に特定のキー(Macでのブラウザの進む/戻るのためのショートカットとして一般的なCommand+[と])が押された、というイベントを発行するよう設定しているのですね。 (18:21 Twitter Web Clientから・詳細)

つまり今回のChrome拡張でも、マウスの4、5ボタンのイベントではなく、そのキーボードのイベントをJavaScriptでフツーに拾って処理すれば出来ちゃったわけです。 (18:25 Twitter Web Clientから・詳細)

今日ちょっとWindowsにも対応させてみようかしら…とChromeでマウスの進む/戻るボタンのイベントを拾ってみようと調べてみたんですが、そちらは実はかなり難しい(もしかして無理?)ことのようですね。だからこういうChrome拡張が見当たらなかったのか。なるほど。 (18:26 Twitter Web Clientから・詳細)

とゆーわけで、僕自身としては便利になったので結果オーライではありますが(^^;、実はあまり利用できる方の多くない機能拡張となってしまったのでした。 (18:28 Twitter Web Clientから・詳細)

image 0戻るで閉じるChrome拡張について記録しておきました>どん詰まりまで戻りきったらそのタブを閉じるChrome拡張 - Digitune [memo] http://memo.digitune.org/2015/dead_end_to_close/ (19:59 Twitter Web Clientから・詳細)

「いさな」とは鯨のこと、って今娘の人に教えてもらって初めて知った。そうだったんだ。 (20:54 Plume for Androidから・詳細)

birdどん詰まりまで戻りきったらそのタブを閉じるChrome拡張

普段Androidのスマホなどを利用していると、Webページのリンクの設定でたとえ「新しいタブを開く(target="_blank"等が指定されている)」となっている場合も、フツーにBackボタンを押せば自動的にそのタブを閉じ、元のタブに戻ってこれます。そのような操作性にすっかり慣れてしまっていると、PC版Chromeで新しいタブが開かれたとき、単にマウスの戻るボタンを押しても戻れないのが地味に煩わしく思っていました。

ちょっと前からそういった機能を実現する設定や機能拡張は無いものかと探していたんですが、Firefox用としてかなり近いものは見つけたものの1、Chrome用にはぴったり来るものが見つけられずにいました。

そんな時ふと、「もしかしたら自分でも作れるんじゃ?」と思いちょっと調べてみたところ、思いの外あっさり作ることが出来たので、ここに記録しておきたいと思います。ただし僕があっさり作ることが出来たのには実はいろいろな幸運が重なっていました。おそらく僕と同じような環境でMac版Google Chromeを使っている人はあまり多くないと思いますので、適用可能なシーンはあまり多くないものと思います。どうもスミマセン。

注意点

僕の場合の幸運、別の言い方をすると特殊事情は以下の通りです。

  • 我が家では、通常Macに利用されているMagic MouseやMagic Trackpadのようなジェスチャーでスクロールや進む/戻るを行えるようなポインティングデバイスではなく、フツーのWindowsマシンに利用されるようなBluetoothの5ボタン+ホイール付きマウスを使っています2。ただしMacの場合、そういったマウスをそのまま繋ぐだけではブラウザの進む/戻るといった機能は利用できないため、Karabinerというツールを使ってマウスの3〜5ボタンを有効にしています。その辺りの顛末はこちらを参照してください。
  • Karabinerでマウスボタンを有効にしている、ということはすなわち、それらのマウスボタンを押した時に発生するイベントがマウスイベントではなくキーボードイベントとなる、ということを意味します。これが今回機能拡張のJavaScriptで簡単にイベントを処理出来た理由でした。Magic Mouse等でのジェスチャー由来の進む/戻るは言わずもがな、Windows版Chromeでのマウスの進む/戻るボタンのイベントをブラウザのJavaScriptで拾うのは実はとても大変なようです(今回そちらは結局分かりませんでした)。

というわけで、ここで説明する機能拡張は「Mac版Chromeで、かつ通常の5ボタンマウスをKarabiner経由で利用している場合」のみ利用可能、ということになります3

機能拡張の詳細

以下に機能拡張の詳細を記録しておきます。これらのファイルをすべて同じディレクトリに置いて、Google Chromeの拡張機能のページを開き、右上の「デベロッパーモード」のチェックボックスをチェックした後、「パッケージ化されていない機能拡張を読み込む」から読み込ませれば利用可能と思います。

manifest.json

{
   "manifest_version": 2,
   "name": "Dead End To Close",
   "description": "dead end to close.",
   "version": "1.0.0",
   "content_scripts": [ {
      "all_frames": true,
      "matches": [ "http://*/*", "https://*/*", "ftp://*/*" ],
      "js": [ "detc.js" ]
   } ],
   "icons": {
      "48": "back48.png",
      "128": "back128.png"
   },
   "permissions": [ "tabs", "https://*/*", "http://*/*" ]
}

これ以上ないくらいシンプルなmanifestなので説明は不要でしょう(^^;。

detc.js

var back_on = false;
var popstate = false;

window.addEventListener('popstate', function(stateEvent) {
	popstate = true;
}, false);

window.addEventListener('keydown', function(keyEvent) {
	if (keyEvent.keyCode == 219 && keyEvent.metaKey == true) {
        back_on = true;
        popstate = false;
	} else
        back_on = false;
}, false);

window.addEventListener('keyup', function(keyEvent) {
	if (keyEvent.keyCode == 91 && back_on)
        setTimeout(function(){
            if (!popstate)
                window.close();
        }, 200);
	back_on = false;
}, false);

実質、このプログラムの本体は上記のみです。やっていることの本質は極めてシンプルで、ブラウザで開くすべてのページにkeyCode = 91のkeyUpイベントが来たら「200ms後にwindows.close();を実行」するタイマーを仕込む、というイベントリスナーを設定してるだけ。

どうしてこれでうまく動くかというと、実際に「戻る」が発生すると元のページに設定されていたイベントリスナーやタイマーは直ちに破棄されるようで、このイベントリスナーが発動することはないんですね。どん詰まりのページ、つまり戻るボタンを押しても何も起きないページでのみ、実際にイベントリスナーによりタイマーが発動し、200ms後にページが閉じます。

どん詰まりのページではunloadやbeforeunloadイベントが発生しないことを利用したもっと凝ったロジックを利用したコードも見つけたりしたんですが、今回僕がいろいろ調べた限り、少なくとも家の環境では上記だけで期待通りに動いているようでした。

なお、タブを閉じるのに利用しているのが「window.close();」なので、そのmethodを使う時の一般的な注意点、つまりscript等により動的に開かれたtab以外は閉じない、といった制約はそのままかかります。ただこの制約は今回の場合むしろusabilityを上げてくれる形で作用しているので(閉じてほしくないページまで閉じてしまうことがない、という意味で)、そのままにしています4

(11/9 追記) オリジナルのcodeではまさに単純にkeyupイベントでkeyCode = 91が来たらタイマーセット、というものでしたが、それだとコピペ目的などでCommandキーを使った途端に暴発してしまうことに気がついたので(^^;、keydownイベントも監視し「戻る」に相当するキーシーケンス、つまりCommand+[が来た場合のkeyupイベント(keyCode == 91)にのみ反応するようにしました。これで大抵のケースでの暴発は防げるはず。

(12/28 追記) 上記修正で総じてごきげんに使えていたのですが、ごくたまにまだ戻れるhistoryがあるのにタブが閉じてしまうページがあって、ナンジャラホイ?と思っていました。年末になって少し時間が取れたので調べてみたところ、どうもpushState/popStateを使ってJavaScriptでhistoryを操作しているページではタブcloseが暴発してしまっていたようでしたので、その対策を入れてみました。あとaddEventListenerの第3引数 (useCapture) もどこかのページからコピペした時のまま意味もわからずtrueにしていたのを(^^;、この例ではfalseでも良いはずなのでfalseに直しました。

画像

back128.pngback48.png

おしまい

少しでもお楽しみいただければ幸いでした。

birdきょうのつぶやき@digitune

きょうのつぶやき@digitune

#kinoppy 「新刊があります」通知から直接飛べるアプリの「お持ちの本の新刊・続刊」画面が、いつ行っても「検索条件に一致する情報は見つかりませんでした。」になり、しかしストアトップの同コーナーにはちゃんと表示されている。ずっと前からある不思議なバグ。 (12:03 Plume for Androidから・詳細)

調子の悪いWG1200HP中継器の件、昨日またPOWER/CONVERTER LED以外が全部消灯で通信不能状態が再発(24時間持たなかった…orz。ので12時間毎に再起動するよう変更)したんだけど、なんとこの状態で親機側から中継器のWeb UIにアクセス出来、再起動出来た…。 (12:43 Twitter Web Clientから・詳細)

LEDの状態的には親機とのリンク切れを表しているはずなんだが、実際は親機とのリンクは生きており、中継器側の無線LAN AP機能 or ルータ機能が死んでる、と。リモートから再起動かけられる、という意味では朗報だけど、なんだかなぁ。 (12:44 Twitter Web Clientから・詳細)

Mac上のブラウザで以前から欲しかった「マウスのバックボタンを押したとき、戻るページがなかったらそのタブを閉じる」機能、ずっとChrome拡張に見つからない…と思ってたけど、そういえば、と思って自分で作ってみたら超簡単に作れた(^^;。もうしばらく動作確認してそのうち公開しよ。 (23:20 Twitter Web Clientから・詳細)

ここTwitterやFacebook、それからGoogleニュースのような、基本的にリンクが「新しいタブを開く」形になっているサイトを見る時にその方が便利なんですよね。Androidのバックボタンでは当たり前の挙動なので、もはやそうなってないと不便に感じてしまう。 (23:24 Twitter Web Clientから・詳細)

birdきょうのつぶやき@digitune

きょうのつぶやき@digitune

FirefoxやChromeの開発者ツールに、webサーバとのやり取りを「cURL形式でコピー」する超お便利機能があったことに今さらながら気がついた(「ネットワーク」タブで各通信を右クリック)。これスゴい便利。 (07:47 Twitter Web Clientから・詳細)

調子の悪いWG1200HPの件、考えてみればWG1200HPはWeb UIから再起動をかけることが出来るので、おうちサーバからcronでそこを叩いてとりあえず毎日再起動してみることにしてみた。これで様子を見てみよう…。 (07:51 Twitter Web Clientから・詳細)

image 0無線LANルータ再起動スクリプトについて記録しておきました>NEC Aterm WG1200HPを毎日再起動する - Digitune [memo] http://memo.digitune.org/2015/wg1200hp_reboot/ (08:13 Twitter Web Clientから・詳細)

最近の記憶力低下について、記憶自体が出来なくなってるというよりも、「思い出す」ためのフックを維持できなくなってる感じがする。やらないといけないことがあって覚えておかなくちゃ、と思っていても、そのこと自体が意識から消えてしまう。何かの拍子にそのことを意識すると、ちゃんと思い出せる。 (10:27 Plume for Androidから・詳細)

しかしアンチパターンにしろベストプラクティスにしろ日々変わっていくモノだからなぁ…。過去の経験に過剰に期待するのは危険な気がする。 (10:28 Plume for Androidから・詳細)

もちろんアルゴリズム的な意味でのアンチパターンのように古びない知識もあるけどね。 (10:30 Plume for Androidから・詳細)

「インモラリスト」ってなんのアニメで使われてた歌だっけ? (10:34 Plume for Androidから・詳細)

ドラクラか。 (10:35 Plume for Androidから・詳細)

ドラクラはEDも良かったな。 (10:36 Plume for Androidから・詳細)

image 1オモロイ。皆さん何やってんすかw>Sun 4.1.3 上で NCSA Mosaic を動かすまでの顛末 - Togetterまとめ - http://togetter.com/li/896398 (11:15 Plume for Androidから・詳細)

image 2何か引っかかるタイトル…と思ったら単純に「モナリザ・オーヴァドライヴ」に似てるからか>「ウタカタ・オーバードライブ」制作発表会 水島精二の参画が発表 | アニメ!アニメ! - http://animeanime.jp/article/2015/11/05/25561.html (11:22 Plume for Androidから・詳細)

今のところはまだお気に入りのミュージシャンのCDもボチボチ買っているけれど、Google Playミュージックを聴いていると「買うには至らなかったが気になっていた曲」にしばしば遭遇し、そういうものはアルバムごとダウンロードしてしまう。そのうち後者だけになってしまうんじゃないか、 (12:39 Plume for Androidから・詳細)

そうなったらやっぱりミュージシャンの人達は立ちゆかなくなってしまうんじゃなかろうか、とかなり心配になる。 (12:40 Plume for Androidから・詳細)

そういや今朝のルータ再起動スクリプト、最後から二番目の実際に「再起動」ボタンを押したときにPOSTされるHTTPリクエストだけ投げれば再起動されるんじゃ…とお思いかもしれませんが、残念ながらそれだけでは再起動されなかったんですよね。 (12:49 Plume for Androidから・詳細)

ダメな公衆無線LANを掴んじゃってモバイル網以下の状態になっちゃう時って、電波状態が不安定な時よりも電波はギンギンなのにアップリンクが詰まってて全くパケットが流れてこない時の方が多い気がする。そういうときにもうまいこと回避してくれるような機能が欲しい。 (20:27 Plume for Androidから・詳細)

あ、ひょっとしてこないだUSで集団訴訟起こされてたiOSの新機能がそんな感じでしたっけ? (20:28 Plume for Androidから・詳細)

「いきなりステーキ」は新宿と八王子のお店に行ったけど、予想よりもお店ごとの味の差が大きいような気がした。お肉の質はさほど違わないけど、切り方、焼き方の差が大きい。僕が行った二店では新宿のお店の方が美味しかった。 (20:51 Plume for Androidから・詳細)

birdNEC Aterm WG1200HPを毎日再起動する - 改め、中継器の先へpingが届かなくなったら再起動する

無線LANの中継器用途として「デュアルバンド中継機能」に期待して買ったNEC Aterm WG1200HPが、親機とのリンクに2.4GHz帯側を使っているせいか一日くらいすると親機とのリンクが勝手に切れて通信不能になってしまう、という謎の症状が出て困っていました。ググると同じような症状を訴えている人をチラホラ見かけるので初期不良、というよりもこの機種の持病っぽい感じ。

考えてみるとこの機種に限らず最近の無線LAN機器はWeb UIの管理画面を持ち、そこからリブートしたりすることも可能です。そんなわけでとりあえずのその場しのぎとして、毎日自動的に再起動するスクリプトをおうちサーバに仕掛けて様子を見てみることにしました。自宅に常時稼働のサーバがある人(そんな人は最近はあんまり多くないと思いますが^^;)ならば同じようなことをするのも難しくないと思います。

(12/27 追記) WG1200HPのファームウェアを1.0.14に上げてから、以前よりもかなり安定して少なくとも数日間は問題なく動くようになりました。ただ残念ながらまだ完治したわけでないらしく、一週間連続稼働はまだ出来ないようでしたので、「中継器の先にあるhostにpingが届かなくなったらWG1200HPをrebootする」というスクリプトを組んで実行することにしました。

また、rebootに利用しているweb formが1.0.14からCSRF対策としてone-timeのsession IDを要求するようになっていましたのでそちらにも対応してみました。

#!/bin/bash

converter_ip='192.168.0.241'
probe_ip='192.168.0.141'
admin_email='[email protected]'

rebooted=0

while /bin/true; do
	if /bin/ping -i 2 -c 5 $probe_ip; then
        echo "Link is normal."
        sleep 2
        rebooted=0
        continue
	else
        echo "Link seems broken. Converter rebooted."
        output=`curl -v "http://$converter_ip/reboot.htm" -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: ja,en-US;q=0.8,en;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Connection: keep-alive' --compressed`
        curl -v -o /dev/null "http://$converter_ip/aterm.css" -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: ja,en-US;q=0.8,en;q=0.6' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36' -H 'Accept: text/css,*/*;q=0.1' -H "Referer: http://$converter_ip/reboot.htm" -H 'Connection: keep-alive' --compressed
        curl -v -o /dev/null "http://$converter_ip/util_gw.js" -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: ja,en-US;q=0.8,en;q=0.6' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36' -H 'Accept: */*' -H "Referer: http://$converter_ip/reboot.htm" -H 'Connection: keep-alive' --compressed
        curl -v -o /dev/null "http://$converter_ip/menu-images/h1_back.gif" -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: ja,en-US;q=0.8,en;q=0.6' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36' -H 'Accept: image/webp,image/*,*/*;q=0.8' -H "Referer: http://$converter_ip/aterm.css" -H 'Connection: keep-alive' --compressed

        session_id=`echo "$output" | grep hidden | sed -e 's/.*hidden\" value=\"\([^\"]\+\)\".*/\1/g'`
        echo "sleep 3, session_id=$session_id"
        sleep 3

        curl -v -o /dev/null "http://$converter_ip/boafrm/formReboot" -H "Origin: http://$converter_ip" -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: ja,en-US;q=0.8,en;q=0.6' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H "Referer: http://$converter_ip/reboot.htm" -H 'Connection: keep-alive' --data "SESSION_ID=$session_id&reboot=%BA%C6%B5%AF%C6%B0+" --compressed
        curl -v -o /dev/null "http://$converter_ip/menu-images/h1_back.gif" -H 'Accept: image/webp,image/*,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H "Referer: http://$converter_ip/boafrm/formReboot" -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36' --compressed
        if [ $rebooted -eq 0 ]; then
            echo "30 min sleep...sent an email"
            echo "link seems down? converter rebooted." | /usr/bin/mail -s "converter link seems down?" $admin_email
            sleep 1800
        else
            echo "2 hours sleep...sent an email"
            echo "ping probe seems down?" | /usr/bin/mail -s "ping probe seems down?" $admin_email
            sleep 7200
        fi
        rebooted=1
	fi
done

自宅Macでの通信をエミュレートしているのでUser-AgentがMac版Chromeになっています。またウチの場合再起動したいWG1200HPのIPアドレスが192.168.0.241なのでそちらにアクセスするようになっていますが、もし流用する場合は各々の設定に変更してください。ウチではこのスクリプトを下記のように起動して常時動作させています。loggerで受けているのでsyslogにたくさんログが出力されますが、その辺りのログは適宜rotateされるので最近のマシンでなら大きな問題はないかと。ノイズとして気になるなら/dev/nullへ捨てるなりしてください。

${HOME}/bin/wg1200hp_reboot.sh 2>&1 | logger -p local3.info -t wg1200hp_reboot &

crontabへも以下のように登録しておくと、おうちサーバをrebootした時にも自動的に起動してくれて便利です。

#
# reboot wifi converter
#
@reboot		${HOME}/bin/wg1200hp_reboot.sh 2>&1 | logger -p local3.info -t wg1200hp_reboot

birdきょうのつぶやき@digitune

きょうのつぶやき@digitune

先日wifi中継器として導入したNEC Aterm WG1200HP、動いてるときは快調なんだけど、24時間毎くらいにPOWERとCONVERTERモードを示すLED以外が全て消灯して通信不能になる、という症状に悩まされてる。親機とのリンクが切れた、とのことなんだけど、 (10:05 Plume for Androidから・詳細)

電源入れ直せば直るし、直前まで快調に通信できていたりするので訳が分からない。ファームウェアは最新のようだしなぁ。外れ(初期不良)引いたとするとめんどくさいなぁ。もう少し設定変えて様子を見てみよう。 (10:08 Plume for Androidから・詳細)

そういえば昨日あれだけ不安定だったBTイヤフォンが今日は安定してる。昨日からやったことと言えば、再ペアリングしてみたことと、そういえば、とBTを使ってるアプリとしてGarmin Connectを久しぶりに起動してみたこと、くらいか。どっちが聞いたのかは分からないけど一応覚えとこ。 (10:11 Plume for Androidから・詳細)

エレベーターって人が乗っているときに酔ったりしないように加減速を穏やかに行うよう制御されているけれど、逆に言うと人が乗っていないときはもっと激しく動かしてもよいんじゃないだろうか。そうすることで待ち時間を減らすような制御は可能そう。そんなエレベーターはないのだろうか? (19:28 Plume for Androidから・詳細)

今朝のWG1200HPの一日経つとリンク切れの件、価格.comのレビューで似たような症状について書いている人がいるな。それによると2.4GHz側固有の問題っぽいから、5GHz側でリンク出来るか帰ったら試してみよう。多分厳しいと思うんだけど…(距離は近いが間にコンクリの壁有り)。 (19:52 Plume for Androidから・詳細)

下町なんとかは我が家では毎回結構爆笑しながら見ているけど、あゆみさんがいつもツッコむのは「なんでロケット打ち上げプロジェクトに『スターダスト計画』とか名前付けちゃうの?!縁起悪すぎでしょ!」という点。わら。 (19:56 Plume for Androidから・詳細)

中継用WG1200HPと親機とのリンクを2.4GHzから5GHzに切り替えてみたところ、電波弱〜中くらいの状態だけどなんとかつながりそうな雰囲気。しばらくこれで様子を見てみるか…。 (20:52 Twitter Web Clientから・詳細)

親機ー子機間を5GHzに変えた件、やっぱり電波が弱すぎてリンクはされているのにパケットが流れない(DHCPが完了しない)、という結果だったので仕方なく元に戻すことに。そうなると一日ごとのリンク切れには再起動で対処するしかないのかなぁ…orz。 (23:03 Plume for Androidから・詳細)

First | Prev | 201 | 202 | 203 | 204 | 205 | Next | Last