日々精進

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

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

gulpでTypeScriptのSoucemapを生成する

web

gulp-sourcemapsを使う。sourcemaps.writeを引数なしで呼ぶと生成したJSの中にSoucemapを埋め込むが、それだと ChromeDevToolsでうまく動かなかった。"./"を渡すとJSと同じ場所にSoucemapを生成してくれる。これだとちゃんと機能した。 var sourcemaps = req…

gulpでTypeScriptをフォーマットする

tsfmtを使用する。gulp-tsfmtはtsfmtモジュールを使わず独自にフォーマットロジックを組んでいるっぽい。 なのでgulp-shellを使ってtsfmtを実行することにした。 最初は$(npm bin)/tsfmt -r ./**/*.tsをgulpから実行すればいいのかと思ったが、フォーマット…

knockoutでcomputedプロパティの値を変更した時の処理を書く

writeプロパティにfunctionを渡すと変更時の処理を書ける。以下の例はpureComputedだけどcomputedも同様。 this.fullName = ko.pureComputed({ read: function () { return this.firstName() + " " + this.lastName(); }, write: function (value) { var las…

knockoutでラジオボタンのON/OFFをKnockoutObserbable<boolean>に入れる

普通にchecked bindingを使うとtrue, falseが代入されず"on", "off"が代入されてしまう。 <label>Male <input type="radio" name="IsMale" value="true" data-bind="checked:IsMale"/> </label> <label>Female <input type="radio" name="IsMale" value="false" data-bind="checked:IsMale"/> </label> 以下のようにするとtrue, falseを代入することができる。他の値にすることもで…

knockoutで要素の表示・非表示を切り替える。CSSクラスを追加・削除する。

表示・非表示を切り替えるのはvisible bindingを使用する。以下のようにするとconditionがtrueの場合に表示する <div data-bind="visible: condition"> CSSクラスを追加・削除するのは以下のようにする。conditionがtrueの場合に追加され、falseにすると削除される。 <div data-bind="css: { profitWarning: condition }"> 複数のクラスを追加・削除で</div></div>…

gitで直前より古いコミットのメッセージを修正する

IT

手順は以下。GitTowerで出来ればいいんだけどまだできない。SourceTreeのinteractive rebaseはちゃんと動かないことが多いし。。 git rebase -i HEAD~n(※n個前のコミットを直したい場合)を実行する 直したいコミットの先頭のpickをeditに変更し保存する git …

キャメルケースをアッパースネークケースに変換するGoogleSpreadSheet関数

IT

地味に便利だ。。GoogleSpreadSheet使いでがありそうなのでもっと調べたい。 UPPER(REGEXREPLACE(<参照>, "([A-Z])", "_$1") 参考: 正規表現でスネークケース↔キャメルケース/パスカルケースの変換 - Qiita https://support.google.com/docs/table/25273?hl…

gulpでビルド時にフォルダを削除する

web

rimrafを使う。以下でrimrafをインストールする。 npm install rimraf --save-dev 以下のように書けば削除できる。 var rimraf = require('rimraf'); gulp.task('clean', function (cb) { rimraf('./dir', cb); }); 参考: ファイル削除にはgulpプラグインを…

Google SpreadSheetでVLookUpがおかしい

IT

Google SpreadSheetでVLookUpを使うと検索キーと全然違うところの値を表示することがあり、困った。 原因はよくわからないが表をソートすると直った。なんだったんだ。。

asciidoc editorはAtomが良さそう

mac

asciidocを書くことになったのでeditorを探し中。 http://asciidoctor.org/docs/editing-asciidoc-with-live-preview/ を見たところAtomがメジャーっぽい雰囲気だったので、Atomを採用。 AsciiDoc Preview packageとAsciiDoc packageを入れるとasciidoc edit…

半角英数字を折り返す

web

以下のようにword-break: break-all;をCSSで定義すれば折り返される。 p { word-break: break-all; } CSS力なさ過ぎて辛い。。 参考: 半角英数字の文字列を折り返す:CSS小技

gem installを実行すると「Unable to download data from https://rubygems.org/ - no such name (https://rubygems.org/latest_specs.4.8.gz)」

ググると以下の原因がでてきたがこれらではなかった。 DNSで名前解決出来てないことが原因 rubygems.orgがDDNS攻撃を受けて不安定になってる host rubygems.orgでIPアドレスかえってくるしhttps://rubygems.org/latest_specs.4.8.gzはダウンロードできるし。…

sudoを使わずにgem installできるようにする

IT

macはデフォルトだとrubyコマンドは/usr/bin/rubyにあるrubyを実行しようとする。/usr/binはシステム権限の領域であり、全ユーザ共通で使用する。 複数人でMacを使わないのであればそれほど問題無いんだろうけど/usr/local/binにrubyをインストールしてログ…

typescriptでreflection

web

typescriptはコンパイルすると素のJSになり型情報がなくなるのでReflectionは基本できない。 for inを使うとプロパティの列挙は出来るがtypescriptのフィールドはそこにデータを代入するまで存在しないのでfor inを実行しても出てこない。 // thisはsampleFi…

IntelliJとgradleを使っている時にgradleではビルドできるがIntelliJではビルドエラーになる

原因はIntelliJのビルド設定にライブラリへの依存関係が設定されていなかったため。 Project Structure > Modules でアプリモジュールを選択して、Dependencies > +ボタン > Library...からgradleでインストールしたライブラリを選択してOKをクリックすると…

kaleidoscopeをGitTowerやSourceTreeなどから呼び出せない

mac

普段GitTower使ってるんだけど、Diff toolにKaleidoscopeを指定してDiffボタンをクリックしてもKaleidoscopeが起動せず困った。 原因はKaleidoscopeと他のアプリを連携させるにはCommand Line Toolをインストールする必要があるがそれをしていなかったことだ…

無線LANが遅い・接続が切れる問題

IT

原因はBluetoothとWifiの電波干渉だった。Bluetoothを付けると通信速度が80kbpsになり、切ると15Mbpsぐらいになった。 こんなに影響があるとは。。 対策は5Ghz帯を使って通信すること。古い無線LANルータを新しいのに変えるとBluetooth付けた状態でも15Mbps…

MacでIntelliJのJDKの設定をする

web

JDKがどこにあるかわからず困った。以下のようなところにあるのでproject structure>SDKs>+ボタンを押す>JDK から以下のパスを指定すればいい。 /Library/Java/JavaVirtualMachines/jdk1.7.0_XX.jdk/ 参考: MacでOracle JDKをインストールする - oinume jou…

karma-jasmine-jqueryを使ってfixtureを別ファイルから読み込む

web

テストコードとテストデータを分離するためにjasmine-jqueryを導入した。手順は以下。 ・installする npm install karma-jasmine-jquery --save-dev ・karma.conf.js に以下を追加 module.exports = function(config) { config.set({ frameworks: ['jasmine-…

htmlの文法が正しいかどうかを判定する

web

以下サイトにHTMLを貼り付けると悪いところがあれば指摘してくれる。 The W3C Markup Validation Service 以下のサイトはHTMLをブラウザで表示した時に真っ白になってしまう場合の対処法が書いてあって便利そう。 Web開発者必見!サイトが真っ白になったとき…

jQuery objectが同じ要素であることを判定する

web

$("#id")と$("tr")が同じ要素であるかどうかを判定するような場合。is()を使う。 $("#id").is($("tr")) 参考: jQuery object equality

javascriptにbooleanのXORを取る演算子はない

web

a ^ bはビット演算にしか使えないらしい。えー。以下のような関数を定義して使うしかない。 function myXOR(a,b) { return ( a || b ) && !( a && b ); } 参考: http://www.howtocreate.co.uk/xor.html

jQueryを使ってDOM要素を取ってくる方法いくつか

web

.siblings()は兄弟要素を取得する。 .parent()は親要素を取得する。 .children()は子要素を取得する。 $("#id").find("...")のようにしてある要素の子孫のみ検索対象にして要素を取得する。

bootstrapを使ってGlyphiconを出す

web

以下のようにClassを指定する。 <p>Print icon: <span class="glyphicon glyphicon-print"></span></p> 下記ページに使えるアイコン一覧あり。 http://www.w3schools.com/bootstrap/bootstrap_ref_comp_glyphs.asp bootstrap便利だ。

hrタグの太さをCSSで指定する方法

web

以下のように指定する。 hr { border-width: 1px 0 0 0; /* 太さ */ border-style: solid; } CSS勉強しないとなぁ。。 参考: http://step-learn.com/css/20140906-hr.html

alfredでchromeのブックマークを検索する

IT

以下からalfred workflowをダウンロードして実行するとブックマーク検索出来るようになった。これは便利だ。 Chrome Bookmark Search Workflow - Share your Workflows

Karabinerを使ってキーボードでマウスを操作する

IT

Mac - 1分で実現可能!マウスを捨ててキーボードだけで生活する方法 - Qiita 上記記事をみて面白そうなのでやってみた。 今はさらに便利な設定のV2がプリセットされているっぽい。 設定ファイルの内容は↓。 tekezo/Karabiner ただ、この設定だとHが左移動、J…

knockout.jsのcontextを確認しやすくするchrome拡張

knockout.jsを使い始めた。デバッグに役立つChrome拡張があったので使っているがこれは便利。 Knockoutjs context debugger 解説記事: Knockoutjs context debugger - Qiita

iTerm2, JetBrains系IDE, Alfred, ATOKの設定移行方法

IT

iTerm2 設定書きだし Preferences -> General -> Load preferences from a custom folder or URLにチェック Browseでパスを設定してSave settings to Folderをクリック 設定読み込み Browseでパスを設定したところにexportしたファイルがあったら読み込むか…

macのfinderで隠しファイルを表示する方法

mac

ターミナルで以下を実行すると表示出来る。 defaults write com.apple.finder AppleShowAllFiles -boolean true killall Finder 参考: Macの隠しファイルや隠しフォルダを表示する裏技 / Inforati