slowjet

is a part of a carburetor

bundle installのjsonでエラーになる

El CapitanからHigh Sierraにアップデートしたら特定のRubyのバージョンでエラーがでるようになって $ bundle install --without production --path vendor/bundle ~~ 中略 ~~ Fetching json 1.7.5 Installing json 1.7.5 with native extensions Gem::Ext::…

地雷になる仕様

十分な吟味が必要 前もって、どれくらいのヤバさを秘めているのかを知っていれば、仕様策定時に一歩引いて考えられる 履歴 ユーザーがトークンを持っていない (トークンなしでの)データの先勝ち HTMLなどの生のデータを保存 こういうことをしてると危険 全…

複数人で開発するときに揃えたほうがいいところ: 機能の実装方法を揃える

例えば、ドラッグアンドドロップを実装するとして、一人はjQueryのプラグインを使って実装して、もう一人はHTML5のDrag & Drop APIを使って実装してしまわないように、その時にいる人たちで話して統一する。後から入った人には、その旨が分かるようにメモで…

GitHubのPull Requstの運用について

GitHubを使っている案件で、何か新しい機能を実装したとき、バグを修正したときはPull Requestを出しているんだけど、これの運用メモ。 作業中は[WIP](Work In Progress)をタイトルの接頭辞にする 作業が完了したら[WIP]を削除する 完了したら誰かに@で確…

大量にDOM操作(追加削除変更)をしていて、そのDOMのイベントを監視している場合は確実にイベントの監視を解除する

キの字だけど、最近イベントの監視を解除し忘れていたのが原因で、メモリリークを起こしてブラウザをクラッシュさせるという事案があったので。 View.render = function() { this.$someElem = $('<div class="someView"></div>'); this.$someElem.on('click', function() { ... }); this.…

GitHubとかによくあるEmoji(iPhoneぽいやつ)のライセンスは誰のもの?

まあAppleですよね。 だから、あのEmoji画像が含まれたリポジトリがMITになってたりするんだけど、ライセンスをよく見ると、Emoji画像はAppleに帰属するとか書いてあったりする。 つまり、基本的には使っちゃいけないんですよ。 オープンソースの「絵文字」…

複数人で開発するときに揃えたほうがいいところ: イベントの命名規則

イベントドリブンな持ち回しだと、よくあるイベント名を使いがち。例えば、クリックされたっていうのから、コントローラーとかへ渡す場合 // view _onClick: function(ev) { this.someController.trigger('click', @); } // controller _eventify: function(…

複数人で開発するときに揃えたほうがいいところ: コメントを出来る限り書く

コメントは出来るだけ、分かりやすく書いたほうがいい コードを読めば分かるけど、あっちへいったりこっちへいったり… コメントが適切に書かれていれば、このメソッドはどこでどう必要になっていて なぜこの引数が必要なのかなど、そういう情報が一目で分か…

複数人で開発するときに揃えたほうがいいところ: どのクラス/コンストラクタ/オブジェクトのメソッドを実行しているのかを明示する

気づいたところをメモしていくところ。今さら…とか恥ずかしがらずに書く。 どのクラス/コンストラクタ/オブジェクトのメソッドを実行しているのかを明示する 例えばSuperPagesと、これを継承するBasicPagesという二つのコレクションがあり、これらはどちらも…

$('<div class="hoge">')はIE8以下ではダメ

ふむ、知らなかった。IE8以下だとうまく要素が作れないので $('<div class="hoge"/>') または $('<div class="hoge"></div>') または $('<div>').addClass('hoge') とする。久しぶりにjQuery関連でハマってちょっとだけうれしい。 classがダメなんじゃなくて、属性関連も全部ダメ。単独じゃない場合は、閉じる</div></div>…

ここにGitHubを便利に使うUserScriptが2つあります

GitHubのIssueナンバーをタイトルに表示する GitHubのIssueページに検索ボックスをとても分かりやすい位置に置く 最初のやつはあれば便利っていう感じだけど、 画像がでかいな・・・ 二つめのやつなんか、ぱっとみどこにあるか分かりますかね。 ヘッダーにある・…

Backbone.jsでsetするときにvalidateが動かないじゃん

だまってvalidateオプションをtrueにするんだ model.set('hoge', 'fuga', { validate: true });

パズドラ風アイコンジェネレーター ver.2で画像サイズとフレームなしも選べるようになった

Facebookのアイコンサイズが180x180らしいので、180x180(実際はちょっと大きくなっちゃうけど)も選べるようにした あとフレームなしも選べるようになった

ChromeでCharlesのMap Localとかが動かないとき

Safariで見よう

genymotionとADB(Android Debug Bridge)でAndroidのWebページデバッグ

長らくAndroid対応をしてなかったので浦島状態だったのだけど、Genymotioinっていうのを使うと、さくさく動いてデバッグしやすいというのを聞きまして。 結論から言うと、4.x系だけでした。2.3.x系以前のOSはなかったので、つまり実機か、バーチャルテスト端…

パズドラ風アイコンジェネレーター ver.2 #ここでハマったよiOS

パズドラ風アイコンジェネレーター ver.2 今回はiOSでハマった場所を中心にお送りします。 Android・・・?そんな(うんこ)端末知らねぇぜ・・・ パズドラ風アイコンジェネレーターはinput[type="file"]で選択した画像をFile APIを使って、読み出してCanvasに書き…

パズドラ風アイコンジェネレーター ver.2 #Webフォント編

パズドラ風アイコンジェネレーター ver.2 7月時点ではiPhoneアプリにしたいなと思ってたんだけども、Canvas使ってプラスとレベル表記乗せたらおもろいということに気づきまして、結局Webアプリのパズドラ風アイコンジェネレーターをアップデートしました。 …

Backbone.jsでタッチイベント周りの処理

eventsの遅延評価で、イベント部分を分ける。対象メソッドは共通にしておく。メソッド内で必要になる位置関連のメソッドも用意しておいて、どちらであっても問題なく取得できるようにしておく。 タッチイベント周りと書いたけど、下記のコードはタッチで何ら…

CoffeeScriptではNamed functionが使えない

ふーむなるほどー使えないんですなー 検索したら出てきた笑ったやつ↓ Named function in CoffeeScript - Gists - GitHub こういうのどう書くんだろうと思ったら (function foo() { bar(); setTimeout(foo, 100); }()); CoffeeScriptだと、こうするようだ (fo…

jQueryのajaxError

気がつけば2ヶ月以上ブログを書いていなかった・・・ マメ男にはなれなさそうです ずっとバカの一つ覚えみたいに $('body').ajaxError(function() { foo(); }); としてましたけど、ajaxErrorが1.8系からdocumentにしか使えなくなっていた $(document).ajaxError…

Vim と Marked で快適な Markdown 編集環境

vim-quickrunとMarkedでmarkdown編集が快適になった このエントリーを見て、Marked を導入してみたのだけど、これが快適で。 以下 Vim って書いているのは Mac Vim です。 導入は書かれている通り、vim-quickrun と Marked を使うだけなんですけど Markdown …

コールスタックを辿って、関数が呼ばれた元の位置を知る

プロジェクトが長くなってくると、前に書いたはずのコードも忘れがちだよね… あれ、なんでこれ2回も呼ばれてるの、記憶にないんだけど(いやいや前に書いてる Chrome なら Error オブジェクトの stack で辿れる function hoge() { var err = new Error(); er…

BLOB とは何か

a[download] と Blob で任意のファイルを作ってダウンロードさせる で唐突に出てきた BLOB という物が何かという説明をちょっと。 32KB以上の大きなデータを扱う場合は、 Large Object(LOB) Data Types を利用する。 BLOB はこれのひとつで、Binary Large OB…

Backbone の collection 全てを destroy する

前書いたと思ってたけど書いてなかった。 destroy で DELETE も同時に行う。 collection.each(function(model) { model.destroy(); }); これだと、destroy 実行で collection から model が削除されて length が変わってしまうので、ダメ _.each(collection.…

a[download] と Blob で任意のファイルを作ってダウンロードさせる

これを JSON ファイルとして保存したい { hoge: 1, fuga: 2, piyo: 3 } インターフェース <a href="#" class="download disabled">ダウンロード</a> 1. Blob(*) を使ってバイナリデータを作る var a = document.querySelector('.download'); var obj = { hoge: 1, fuga: 2 , piyo: 3 }; var blob = new …

$.when には Deferred の配列を渡せない

どうも JS Deferred の癖が残っているようでいつもやってる気がする function hoge() { var dfrs = []; _.each(arr, function(obj) { var $dfr = $.Deferred(); dfrs.push($dfr); // 完了したら $dfr.resolve(); }); return $.when(dfrs); } これだとだめ。…

preventDefault()の位置に悩む

どこに書いても気持ち悪いなんとかしてください 気持ち的にはこれなんだけど $('a').click(function(e) { e.preventDefault(); var self = this; // hogehoge }); ちきしょう、varを先頭にまとめたいぜ・・・ かといって $('a').click(function(e) { var sel…

WebStormでJSHintのglobalsを設定する

もちろんコメントでも指定できるけど Settings>JavaScript>Code Quality Tools>JSHint の Predefined でも設定できる。 Librariesに登録してるものはこれで指定してしまってもいいかも。 ところでWebStorm6からはJSHintの設定UIが大幅に変わって、詳細に指定…

Flexible BoxでGrowlみたいな通知UIを実装する

↑の画像のみたいなGrowlぽい通知UIを作るときに、一筋縄ではいかなそうなところと言えば右上から下へ順に流れていってウィンドウに収まりきらなくなったら、列が変わって左へ流れていくようなレイアウトを作るところでしょうか。言葉が下手すぎたので図を見…

Google Chromeのインスペクタのアイコンをスッキリさせる

Chromeのインスペクタは表示してるDockをブラウザの「下・右・独立ウィンドウ」と選べるんだけど、右にしたときにアイコンがでかすぎて一番よく使うConsoleが見えない。。 Macだと「Cmd+[」で前のタブ、「Cmd+]」で次のタブ移動が出来るんだけど、いやもうそ…