日々精進

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

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

gradleのどのタスクがコマンドラインから指定されたのかを調べる / 環境別にweb.xmlを変更する

IT

project.gradle.startParameter.taskNames でコマンドラインから指定されたタスク一覧が取得出来る。 web.xmlの設定を環境別に変更するのに使った。 ローカル環境にデプロイする場合deployLocalを実行し、それ以外の場合はdeployコマンドを実行する場合以下…

実行されるはずのgradleタスクが実行されない

IT

現象は以下。 deployタスクが依存しているprocessResourcesタスクのdoLastにタスクを追加したが、deployタスクを実行しても追加したタスクが実行されない ターミナルにはprocessResourcesという名前は表示されている うーんなぜと思っていたら、単にUP-TO-DA…

CharlesでブラウザのHTTPS通信を覗く

IT

任意のサイトとのHTTPS通信内容を見たいときはCharlesを使う。iOS、Androidでも見られる。設定手順は下記参照。 有料だけどお金払う価値のあるアプリだと思う。いつもお世話になっています。

依存するJSライブラリの更新を簡単にチェックする

web

p2oを使うと依存ライブラリの更新をrss feedで受けるのが簡単にできる。やり方は以下記事参照。 これ便利そうなので早速使ってみます。

JIRAで課題タイプがバグのチケットに見積もりを入れられるようにする

IT

バグの見積もりはできないでしょということで入れられないようになっていると思うけど、ちょっと不便だったので入れられるようにした。 以下の記事を参考に設定すればいい。

Google SpreadSheetで別SpreadSheetを参照する

IT

IMPORTRANGE関数を使う。因みにGoogle SpreadSheetではExcelでいうブックがSpreadSheetなのかな?ExcelのシートはSheet?わかりにくいのでブックの方がいいなぁ。。 第一引数はSpreadSheetのID =IMPORTRANGE("abcd123abcd123", "sheet1!A1:C10") 参考:

requirejsで読み込むJSファイルがキャッシュされるのを防ぐ

web

JSファイルがキャッシュされてしまい、変更後のコードのテストが出来ないことがあったのでキャッシュさせないようにした。 以下のようにurlArgsオプションを指定するとできる。 requirejs.config({ urlArgs: "bust=" + (new Date()).getTime(); }); ただし、…

r.jsのビルドオプション

web

今までドキュメント↓を読んでいたけど、 http://requirejs.org/docs/optimization.html サンプルファイルの方がわかりやすかった。コメント豊富だし、いいね!

gulpでRequireJSのビルドをする際にgulp-requirejsを使ってはいけない

web

gulpの公式リポジトリにはblackListというファイルがあり、非推奨なプラグインが指定されている。公式が名指しで使うなって言うってすごいな。。 このblackListの中にgulp-requirejsもある。これを使わずrequirejsを直接使えと書いてある。 なので以下のよう…

jspの拡張子を変更する

web.xmlに以下を追加すればいい。この例だと拡張子がxyzになる。 <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.xyz</url-pattern> </servlet-mapping> 拡張子なしにしようと思ってurl-patternを*にしたらうまくいかなかった。 参考:

IntelliJのアイコンの意味

IT

IntelliJのアイコンの意味一覧↓。よく分かっていなかったのでこれは有り難い。 https://www.jetbrains.com/idea/help/symbols.html

Javaのfor eachは順序が保障されている

for eachでiterateする場合、取り出されるオブジェクトの順序が保障されていない処理系もあるが、 Javaの場合はListをiterateするとindexが0のオブジェクトから順に取り出されることが保障されている。 参考:

Java7でBase64エンコーディング

Java8だとBase64.getEncoder().encodeToString(message);のようにすればいいが、 Java7だとDatatypeConverter.printBase64Binary(message);になる。 参考:

gradleでJDK1.8を使ってJava7のコードをコンパイル・・・できなかった

IT

java pluginによってcompileJavaタスクができるのでその設定を追加する。 compileJava { sourceCompatibility = 1.7 targetCompatibility = 1.7 options.bootClasspath = "${System.getenv()['JAVA7_HOME']}/jre/lib/rt.jar" } bootClasspathにJDK1.8を指定…

gradleで環境変数を取得する

IT

println System.getenv()['PATH']のようにすると取得出来る。 参考: http://www.my-notebook.net/82f61937-bc91-4323-8380-a09c8dede37f.html

gradleのdelete "filename"でファイルが消えない

IT

以下のように書いてもファイルは削除されない。 task T2(type: Delete) << { delete 'myTestFile.txt' } 原因はgradleのdeleteはdeleteタスクの設定をしているだけだから。 なので設定フェーズでdeleteを実行しないといけない。実行フェーズでdeleteしたいな…

Google SpreadSheetにCSVを貼り付ける

IT

カンマをTabに置換してから貼り付ける。ほんとはimport機能を使ってやるのが正しいんだろうけど、 単純ににカンマをtabに置換していいケースだとこの方が楽。 参考:

appium, genymotionでandroidエミュレータでWebのテストをする

web

appiumをiOSシミュレータでは動かせるというところからの話。手順は以下。 以下サイトの手順を参考にadbコマンドを実行出来るようにする 但し、以下の点は読み替えること。 「Android SDKのインストール」の14番目の「他の項目全て(例:Android SDK Build-t…

genymotionのエミュレータからホストOSのlocalhostにアクセスする

IT

localhostの代わりに192.168.56.1を使えばいい。 genymotionエミュレータ(ゲストOS)とホストOSの間はホストオンリーネットワークで接続されている。このホストオンリーネットワークのアダプターの設定によって192.168.56.1というIPアドレスが決まっている。 …

シェルスクリプトのファイルのパスを取得する

IT

以下を実行すると取得出来る。 script_path=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd) これでカレントディレクトリがどこでも実行出来るシェルスクリプトが書けるぞー。 参考:

gitのコミットメッセージが指定の書式になっているかチェックする

IT

git commit hookを使う。いくつかhookイベントがあるが、 コミットメッセージをチェックするんらcommit-msgフックで行う。 .git/hook/commit-msgにスクリプトファイルを配置するとコミット時に自動で実行される。 .git/hook/commit-msg/script.shのように配…

gitでスペースの違いを無視した差分を表示する

IT

git diff -wでスペースを無視して差分を出す。 git diff --ignore-space-at-eolは行末のスペースのみ無視する。 参考: Git diff -w ignore whitespace only at start & end of lines

rbenv install --listを実行してもインストールしたいバージョンが出ない

IT

原因はrubyのバージョンリストが古いこと。 brew upgrade ruby-build --HEADを実行するとリストが新しくなる。 参考: rbenvでインストールできるバージョンリストを最新にする - Qiita

mixinと多重継承の違い

web

多重継承はフィールドとメソッドを継承するがmixinはメソッドのみ継承する。 でもGroovyなどのmixinはフィールドも継承する。 そうすると多重継承と同じ問題が発生するんじゃないだろうか。 多重継承はダメだけどmixinはいい理由がよく分からない。 参考: …

Google SpreadSheetでシート名を取得する

IT

組み込み関数では出来ないらしい。 以下のカスタム関数を定義したら取得出来た。 function SHEET_NAME() { return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName(); } カスタム関数の定義方法は以下参照。 Googleスプレットシートでシー…

tslintの各オプションの意味一覧

web

項目が多かったので疲れた。。どの項目を有効にしたのかも記載した。 以下の項目はよく分かりませんでした。。 label-position label-undefined no-any Lintオプションの意味 align 縦方向の揃え方 "parameters" 関数定義の仮引数の開始位置が揃っていること…

「JavaScript Promiseの本」はとてもよい本でした

web

JavaScript Promiseの本 Promiseについてイマイチちゃんと理解出来ていなかったので読んで見たら「マジで!?」ってなることが多く非常に参考になりました。 Promise使う人は必読ですなこれは。。 Free eBookで出しているという点も面白い。Pro Gitは無料な…

「Web制作者のためのCSS設計の教科書」はとても良い本でした

web

Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法作者: 谷拓樹出版社/メーカー: インプレス発売日: 2014/07/24メディア: Kindle版この商品を含むブログ (1件) を見る Web開発をすると大体CSSがカオスになるのでそ…

IntelliJでHTMLの外側のタグを削除する

web

メニューのCode > Unwrap/Remove...で開始タグ、閉じタグの両方を削除出来る。 これだけだとインデントは直してくれない。 参考: How to remove surrounding tags in IntelliJ IDEA

特定のファイルを除外するglobパターン

web

!()の中に除外するパターンを書けばいい。 myProject/src/**/!(*.js|*.map|*.src) 参考: Glob matching, exclude all JS files