ターミナルの環境設定を開き、「プロファイル」の「キーボード」タブにある「代替スクリーンをスクロール」という項目のチェックを外すと、ターミナルのバッファを遡る挙動に戻った。
そもそも代替スクリーンとは何なのか。
(追記) ターミナルの「表示」メニューにある「代替スクリーンを表示」「代替スクリーンを隠す」で挙動が変わるっぽい。 知らない間にキーボードショートカットを押したのかもしれないが、右端の記号は何なの。
ターミナルの環境設定を開き、「プロファイル」の「キーボード」タブにある「代替スクリーンをスクロール」という項目のチェックを外すと、ターミナルのバッファを遡る挙動に戻った。
そもそも代替スクリーンとは何なのか。
(追記) ターミナルの「表示」メニューにある「代替スクリーンを表示」「代替スクリーンを隠す」で挙動が変わるっぽい。 知らない間にキーボードショートカットを押したのかもしれないが、右端の記号は何なの。
ヨドバシをぶらついていてたまたま手にとって試したこれのノイズキャンセリングの効果がなかなかインパクトがあったので、頻度が増えた電車利用時間を有効活用するのに役立ちそうだと思い、購入した。
【国内正規流通品】BOSE QuietComfort20i ノイズキャンセリング・ヘッドホン(インイヤータイプ)
先月にノイズキャンセリング機能付きヘッドホンの最新型が出てたみたいで、それにも惹かれたが、電車でヘッドホンをするのも気恥ずかしいし、夏場は暑いだろうし、ということでこちらにした。
雑に扱ってると、ケーブルの端末側あたりがすぐにだめになりそうな気がしてちょっと不安ではある。
1つのVert.xプロセス内で複数種類のverticleを起動するには、それらを起動する専用のverticleを作成し、 そのstartメソッド内で各verticleを起動する。
package com.mycompany.myproject; import org.vertx.java.platform.Verticle; public class EventVerticlesStarter extends Verticle { public void start() { container.deployVerticle("com.mycompany.myproject.VerticleA"); container.deployVerticle("com.mycompany.myproject.VerticleB"); } }
gradlewのDEFAULT_JVM_OPTSを修正する。
DEFAULT_JVM_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
./gradlew runModEclipse -i
-iオプションはvertxのログレベルを指定する。 これがないとコンソールになんにも出力されない。
これで、ブレークポイントを設定して処理を実行すればそこで処理が停止してステップ実行などができる。
$ git clone https://github.com/vert-x/vertx-gradle-template.git my-vertx-module $ cd my-vertx-module $ git remote rm origin
Mavenを使った開発環境セットアップ手順の説明も公式サイトにある。
$ ./gradlew test
以下のGradleのタスクを実行すればEclipseのプロジェクトファイルが作成される。
$ ./gradlew eclipse
Package Explorerで右クリック -> インポート -> Existing Projects into Workspace とたどり、プロジェクトのディレクトリを指定する。
$ ./gradlew runModEclipse -i
詳細は http://vertx.io/gradle_dev.html を参照。
~/binディレクトリが存在して、パスが通っている
$ vim ~/bin/rhttpd
ruby -run -e httpd -- --port 8000 .
$ chmod u+x ~/bin/rhttpd
$ rhttpd
以上で、例えばhttp://localhost:8000/index.htmlにアクセスすると、プロセスを起動したディレクトリ直下にあるindex.htmlファイルが表示される。
という問題がいつの間にやら起きるようになり、地味につらさが募っていた。 Webで検索すると下記のページを見つけて原因を把握した。
要するに、「例外が発生したらそこで停止する」というオプションを有効にしていた。
クリックするだけで設定が切り替わるので、意図せずクリックしたのだろう。
jQuery内で例外が発生していたわけだが、ブラウザごとの挙動の違いで処理経路を変える手段として例外を発生させていたようだった。
assert(function( div ) { // Support: Opera 10-12/IE8 // ^= $= *= and empty values // Should not select anything // Support: Windows 8 Native Apps // The type attribute is restricted during .innerHTML assignment var input = doc.createElement("input"); input.setAttribute( "type", "hidden" ); div.appendChild( input ).setAttribute( "t", "" ); if ( div.querySelectorAll("[t^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests if ( !div.querySelectorAll(":enabled").length ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Opera 10-11 does not throw on post-comma invalid pseudos div.querySelectorAll("*,:x"); // ### ここで例外が発生していた ### rbuggyQSA.push(",.*:"); }); }
スッキリした。