日々精進

新しく学んだことを書き留めていきます

2015-08-01から1ヶ月間の記事一覧

typescriptでclassのmethod内のthisがwindowになってしまう

IT

以下のようにメソッドを定義すると、thisがwindowになってしまう。 class Main { update(): void { requestAnimationFrame(this.update); //thisはwindow } } 以下のようにarrow functionを使って書くとwindowにならない。 class Main { update = () => { re…

jasmineのテストケースを一部スキップする

IT

it, describeの頭にxをつければいい。xit、xdescribeのようなかんじ。mochaはit.skipだから同じでいけるかなと思ったけど違った。 参考:

jasmineのテストを実行すると「Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.」エラー

IT

原因は以下のようにdone仮引数を定義しているが、done();を呼んでないことだった。 it("should work", function(done){ //... }); done仮引数を削除すれば直った。 参考:

jasmine.clock().install();はsetTimeoutの前に実行する必要がある

IT

jasmine.clock().tickを使うと非同期ロジックのテストを同期的にできて便利だけど、jasmine.clock().tick実行後に実行されるはずのsetTimeoutが実行されなかったことがあった。 原因は以下の順序で実行していたこと。 setTimeout(..., 100); jasmine.clock()…

iPhoneシミュレータにMacから文字列をコピペする方法

IT

以下の手順でコピペできる。 Macで文字列をコピー→iPhoneシュミレータでCmd+Vでペースト→iPhoneシュミレータで長押しし、出てくるPasteメニューを選択する 普通にコピペできるようにしてほしい。。 参考:

windows10で拡張子isoのファイルをマウントしようとすると「ディスクイメージファイルが壊れています」

IT

原因はisoでもwindows10が対応していない形式のファイルがあるため。 daemon toolsでマウントするとできた。 isoファイルに複数の形式があるなんて初めて知ったよ。 参考:

gradleから設定したIntelliJの各種設定が反映されない

IT

gradleのideaプラグインを使って、各開発者の設定を揃えるようにしていたが、一部の開発者の設定が変更されなかった。 以下手順で直った。 IntelliJを終了させる .idea, .iml, .iws, *,iprをけす gradle cleanIdea ideaを実行 プロジェクトをimportではなくo…

seleniumから$("ul:eq(1) select")のようにjQueryセレクタで要素を取得しようとすると「SyntaxError: DOM Exception 12」

web

「SyntaxError: DOM Exception 12」はChromeが標準で持っている$関数が吐くエラーメッセージっぽい。 恐らく、jQueryを読み込んでいると思っていたが読み込めてなくてChrome標準の$を使っていたために、jQuery独自のセレクタ文法がエラーになったと思われる…

bootstrapでaタグをDisableにする方法

web

css class の disabledを付ければ良い。 以下のような感じ。 <a href="..." class="disabled">... これだとクリックイベント発生しそうだが、しない。理由はdisabledクラスはpointer-events: none;を設定しており、これを設定するとクリックイベントが発生しなくなるため。 これはCSS3の機能</a>…

divの高さが0pxになる

web

ブラウザの仕様で、float:left、または float:rightが設定された子要素の高さは無視されることが原因。 対応方法として1.clearfixを使う方法、2.overflow属性を使う方法が以下のブログで紹介されている。 http://ogatism.jp/techs/float_height/ 参考: …

プロセスの検索はpgrepを使うと便利

IT

今まで ps aux | grep ... のようにしていたが、pgrepの方が便利だった。 pgrep -fl java でjavaをコマンドに含むプロセス一覧を表示出来る。 参考:

IntelliJ IDEAでpropertiesファイルをコードポイントから日本語に変換する

IT

素のpropertiesファイルはコードポイントで書かれているので編集するのつらい・・となるのでIDEで日本語に変換してもらう。 File > Settings > File Encodings > 画面最下部の「Transparent native-to-ascii conversion」をチェックすると日本語で表示してく…

spanタグの中身を中央寄せにする

web

以下のCSSを設定すれば良い。普通にtext-align: centerさせてくれないものか。。 { display: inline-block; width: 100%; text-align: center; } 参考: http://www.dafuku.com/2014/03/span-css-align-center.html

requirejsでjsをビルドする際にminifyさせない

web

requirejsのoptionでoptimize: "none"を指定すればよい。 参考:

cssでposition:absoluteを使う場合、親要素にposition:relativeを設定する

web

position:absoluteで位置を設定しても親要素の枠からはみ出してしまったりして思うようにいかなかった。 親要素にposition:relativeを設定すると親要素の枠からposition:absoluteで指定したmarginだけ離れた位置に要素が表示された。 なんでこんな仕様なんだ…

jQueryを任意のサイトのChrome Dev ToolのConsoleで使用する

web

Chrome Dev ToolのConsoleで以下を実行すると、$が使えるようになる。 var jq = document.createElement('script'); jq.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"; document.getElementsByTagName('head')[0].appendChild(jq); j…

Androidエミュレータで標準ブラウザを起動してもすぐに落ちる現象

web

ログには「No suitable EGL configs found.」というメッセージが出る。 以下手順で直った。 AVD Manager > Android Virtual Devicesからデバイスを選択し、Edit...ボタンをクリックする Use Host GPUにチェックを付ける エミュレータを起動する なぜこれで直…

Android標準ブラウザで表示中のページをchrome dev toolでデバッグする

web

エミュレータかUSBで接続した実機で標準ブラウザでWebページを表示し、PCのChromeのアドレスバーに 「chrome://inspect」を入力する。あとはInspectしたい端末を選択する。詳細は下記参考のサイトを参照。 すごく簡単にInspectできてびっくりした。これはす…

無線LANの接続が頻繁に途切れる

IT

環境は以下 無線LANルーター:BCW710J2 OS:Mac 10.10 yosemite 11nで接続 これだと頻繁に途切れて困った。 WDC-150SU2MBKを購入して付けてみると接続は安定するようになった。 ELECOM 無線LAN子機 コンパクトモデル 11n/g/b 150Mbps USB2.0 WDC-150SU2MBK出…

jQueryPromiseは一度rejectされるとその後のすべてのfailが呼ばれる

web

以下の例だと#1,#2の両方が呼ばれる。 var firstDeferred = $.Deferred(), secondDeferred = $.Deferred(); firstDeferred.promise() .fail(function (error) { // #1 }) .then(function () { return secondDeferred.promise(); }) .fail(function (error) {…

promiseをthenの中からrejectする

web

thenの中でpromiseチェーンをrejectしたい場合、rejectedなpromiseをreturnすればよい。例は以下。 api.ajaxCall(param).then((result: ResponseJSON<A>) => { return $.Deferred().reject().promise(); }); thenからpromiseをreturnすると、returnしたpromise</a>…

enhancdで選択的にcdする

IT

peco+ghqのように移動したいPATHをフィルタしながら選択できるのは便利そう。 cdコマンドを乗っ取ってしまうのは良くない気がするが。。ecdとか違うコマンドにして欲しかったかなあ。 とりあえずしばらく使ってみます。 参考:

特定の文字列を含まない文字列にマッチする正規表現

IT

否定先読みを使う。 例えば、以下のパターンはabcを含まない文字列にマッチする。 ^(?!.*abc).*$ 先読みはたまにしか使わないから忘れるなぁ。 参考:

web.xmlの要素には仕様で順序が決まっているものがある

そもそもXMLに順序は関係ないと思っていたが、関係ある場合もあるらしい。 XML Schemaを使うとweb.xmlなど特定の用途に使うXMLの仕様を記述できる。 web.xmlのXML Schemaは http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd で、さらにこれは↓を参照して…

Google SpreadSheetで頻繁に「接続を試みています・・・」といったメッセージが出る

IT

このメッセージが出たときにセルに文字を入力していると、入力途中の文字が失われるので結構困る。 原因はAdBlockerとGoogle SpreadSheetの相性が悪いこと。 AdBlockerの設定でGoogleDocsのドメインのページでは動作を停止するようにしたら直った。

gradle-node-pluginをbuild.gradleに追加してbuildすると「Could not resolve com.moowork.gradle:gradle-node-plugin:0.11.」エラー

以下のようなエラーメッセージが表示される。 > Could not resolve com.moowork.gradle:gradle-node-plugin:0.11. > Could not get resource 'https://repo1.maven.org/maven2/com/moowork/gradle/gradle-node-plugin/0.11/gradle-node-plugin-0.11.pom'. > …

gulp taskを実行すると「Error: Task is not configured as a task on gulp. If this is a submodule, you may need to use require('run-sequence').use(gulp).」エラー

web

原因は以下。 * マルチプロジェクト構成にしており、かつ以下のようにnode_modulesが複数ある root/node_modules root/project1/node_modules * 両方のnode_modulesにgulpがインストールされており、gulpのrunSequenceプラグインを使っている この場合、gulp…

WAS LibertyProfileにdeployすると「installDir を設定する場合、lib/ws-launch.jar が含まれるディレクトリーを指すようなものにする必要があります。」エラー

IT

原因はよく分からないがlibertyを再インストールすると直った。「指すようなもの」っていったい何なんだよ。。

MacでJDKのバージョンを切り替える

インストールされているJDKのバージョン一覧を出す /usr/libexec/java_home -V 現在有効なJDKのバージョンを出す /usr/libexec/java_home JDKのバージョンを切り替える export JAVA_HOME=`/usr/libexec/java_home -v 1.7.0_45` 参考:

Picasaでmp4を再生可能にする

IT

Picasaでmp4を再生しようとすると、一覧に表示されないしファイルを追加で動画ファイルを追加しようとすると「選択したファイルの一部を開けませんでした」というメッセージが表示されるので困っていた。 原因はPicasaが動画再生にQuickTimeのコーデックを使…