2012-01-01から1年間の記事一覧

path.existsがfsに移行

0.7.1からpath.existsはfs.existsになったらしい。existsSyncも同じく。後方互換でpath.existsもまだ使えるけどWarningでる。のでひとまずこうした。 var exists = fs.exists || path.exists;

connectのセッションミドルウェアのcookieのsecure属性について

SSLでCookie使う場合はsecure属性つけて非SSLの場合にはCookie送信しないようにするって仕組みがあるわけだけど、connectのsessionもその実装はされてる。 app.use(express.session({ secret: yourSecret, cookie: { secure: true } })); こんな感じ(コード…

npm install package --save

ってやるとpackage.jsonのdependenciesに勝手にインストールしたモジュール追加してくれるって機能があるらしい。 $ echo '{ "dependencies":{} }' > package.json $ npm install express --save $ cat package.json { "dependencies": { "express": "~2.5.8…

herokuのbuildpackでnode.jsを使うときにdevDependenciesをインストールしない

mochaとexpect.jsくらいならまあ気にしないんだけどコントローラーのテストするのにtobiとかいれてjsdomとかが入ったりするとイヤなのでdevDependenciesをインストールしないようにした。 https://github.com/hokaccha/heroku-buildpack-nodejs/commit/e39ff…

CNAMEレコードの制限

CNAMEレコードだと example.com とかいうドメイン(rootドメインとかいうのかな)は設定できないらしい。RFC違反らしい。なのでCNAMEレコードでドメイン設定する場合は *.example.com みたいにする必要がある。herokuのHostname-Base SSLだとCNAMEレコードを…

syntasticってのがなかなかいい

vim

vimのプラグインでシンタックスチェックやってエラーの行を出してくれる。いろんな言語に対応してるし設定もそんなにいらないし。 https://github.com/scrooloose/syntasticperlとかrubyは何もしなくてもいいけど、jsはjslintとかjshintいれないとダメみたい…

paypal APIの最新のバージョンの調べ方

https://www.x.com/developers/paypal/forums/nvp/latest-paypal-api-version-api-calls サイトのソース見ればそこに書いてあるよ!だって! web version: 85.0-2512177view-source:https://www.paypal.com/ たしかにここのhead内のコメントで書いてあった。…

github pagesのjekyllでlessを使う

ローカルで作ってる時に $ jekyll --auto --serverでやってると、lessをcssにコンパイルするタイミングが難しい。lesscをwatch的なことしてcssに変換してそれをjekyellの--autoが拾って変換ってなるとややタイムラグが発生してちょっと微妙だった。ので--aut…

iOSでのWebSQL Databaseの容量の上限

iOSの場合openDatabase時に大きい容量を指定すると、容量増やすけどOK?みたいなダイアログでる。だけど、指定する容量が50MB以上だとエラーになるっぽい。んで50MBにして1KBのデータをどんだけ保存できるかやってみたら、12000レコードくらい(実データのサ…

CharlesでUAを書き換える

agoさんが書いてた。メモ。 Charlesの場合、Charles起動後、Tools->Rewrite->Enable Rewriteにチェック->Add->LocationのHostに*.example.comを追加->Rulesを以下のように設定すると上記Fiddlerの設定と同じように指定ドメインのみUAの差し替えができます。 …

lessのmixinで定義したのを残したくない場合

// less .foo { display: none; } .bar { .foo; color: red; } これだと .foo { display: none; } .bar { display: none; color: red; } こうなる。でも.fooがmixin用で定義したやつの場合は残したくない場合もある。そういうときは()つければOK。 // less .…

for inとObject.keysの件追記

http://d.hatena.ne.jp/hokaccha/20110729/1311927481 この件にuupaaさんからつっこみ。https://twitter.com/uupaa/status/165692109565870080 http://uupaa.hatenablog.com/entry/2012/02/04/145400Object.keysはスコープつくるので正確には等価じゃないと…

expect.js 0.1.2でthrowExceptionがパワーアップした

expect.jsはかなりいいんだけどthrowExceptionでエラーオブジェクトのチェックができなくて微妙だったんでパッチ投げようかと思ったけどまさに自分が実装しようと思ってた機能が実装された。 var expect = require('expect.js'); var fn = function() { thro…

Mac版chromiumの最新版をダウンロードする

こんなん見つけた。便利。 http://download-chromium.appspot.com/

lessのファイルをwatchrでwatchする

いいのがなくて前に適当に書いたけど、TwitterのBootstarpみたらWatchrっての使ってた。 https://github.com/twitter/bootstrap/blob/master/Makefile watch: echo "Watching less files..."; \ watchr -e "watch('less/.*\.less') { system 'make' }"で $ m…

Android2.3でAudio.preloadの指定

var audio = new Audio('main.mp3'); audio.autobuffer = false; // early HTML5 implementation (non-standard) audio.preload = 'none'; // standard audio.addEventListener('loadstart', function() { alert('loadstart'); }); audio.addEventListener('…

chrome appのhosted appでインストールされてるかチェックする

http://code.google.com/chrome/webstore/faq.html#faq-app-24 chrome.app.isInstalled でチェックできるらしい。

expect.jsとchai.expectのブラウザ対応

BDD Assert系のモジュールでchaiとexpect.jsを試した。機能はほぼ変わらないけどブラウザのサポートでけっこう差が出た。(ここでいう機能が変わらないってのはchai.expectと比較しての話し。chai.assertとかchai.shouldを考えると完全にchaiが高機能) http…

Google inapp payment所感

いいね! 仕様が単純 実装も簡単 微妙だね! 月額課金とかできなくて微妙 一つのアカウントで複数アプリが登録できなくて微妙 請求にドルしか指定できなくて微妙 sandboxが不安定で微妙 微妙の項目は時間が経てば解決されそうなのであんまり心配してない(と…

google inapp paymentのsandbox環境が不安定かも

Google inapp paymentのsandbox環境でテストしてて、buy()を読んだときにポップアップが立ち上がってユーザーの認証までは出るんだけど、その後決済の確認画面になるはずのところで「技術的な問題が発生しました」とかでて先に進めない(具体的なエラーのメ…

JavaScriptファイルをminifyするときとかのビルド方法

jQueryとかjQueryMobileとかを参考にしつつMakefileつくってこんな感じにしてみた。build以下にclosure-compilerをまるっとアップする感じ。 https://github.com/pxgrid/js-flipsnap/commit/34eb5acec21911aa39f3c598133f74d7503dfe88まあこれでもいいんだけ…

AndroidのUserAgentがmp3のリクエストの場合に変わる件

手元のAndroid2.3.4(Xperia arc)で確認。HTML5のAudioの場合。Flashの場合は検証してない。 HTMLファイルの場合のUserAgent Mozilla/5.0 (Linux; U; Android 2.3.4; ja-jp; SonyEricssonSO-01C Build/4.0.1.C.1.9) AppleWebKit/533.1 (KHTML, like Gecko) …

Backbone.Model.prototype.setとかのときに値を渡す

アンドキュメントだけどこんな感じでいける。 var Foo = Backbone.Model.extend(); var foo = new Foo(); foo.bind('change:hoge', function(model, hoge, obj) { console.log(hoge); //=> fuga console.log(obj); //=> { key: 'val' } }); foo.set({hoge: '…

Backbone.ModelのidAttribute

ドキュメントに書いてないけどidAttributeってのでidのキー名を変更できるっぽい。mongoDBとかで_idにするといいっぽい。 https://github.com/documentcloud/backbone/blob/29b60e53fa18b6fffb4a21d0d1c8c9fdbde43b6c/backbone.js#L159-161

Backbone.Eventsのアップデート

underscoreの_.bindと混じるからbindとunbindはonとoffになったっぽい。今のところbindとunbindも後方互換で残ってるけど1.0では消えるっぽい。 https://github.com/documentcloud/backbone/commit/51335bf10f0763f0b9cd1bd9b386b0445cfc8185 https://github…

Android + soundManager2 + basic認証

前書いてたんだけどまたはまった。 Androidでbasic認証 - hokaccha.hamalog v2sounaManager2ってのはクロスブラウザ音声再生用ライブラリ。 SoundManager 2: JavaScript Sound For The Webてか前はAndroid2.3ではいけたって書いてあるけど今回はAndroid2.3(…

flipsnap.jsのアップデートとか

クロスブラウザ対応してみた。 https://github.com/pxgrid/js-flipsnapもともとWindows Phone7のIEで動かすために始めたんだけど、結局mousemoveがバグって全然発火しないので諦めた。PCのIE9では動くんだけど。。AndroidのFirefoxとかOperaで動くようになっ…

Androidでtouchmoveがうまくうごかない件とflipsnapでの対応策

この件。主に2.1とかっぽい。 http://www.youtube.com/watch?v=s6c3n7IjKuY手元の端末だとIS03で同じ現象だった。エミュレーターでも同じ挙動になったので端末依存じゃないかも。んで検証してみたらtouchstartをpreventDefault()すればうまく動くことがわか…

ファイルの変更を監視してコマンドを実行する

lesscでwatch的なことがしたかったんだけどできなくて、他にそういう系のツール探してみたけどいい感じのが見つからなかったんで適当に書いてみた。 https://gist.github.com/1632134 監視するファイルのリストとコマンド指定するだけ何でlessだけじゃなくて…

use strictの影響範囲

use strictは関数内に書けばその関数内だけで有効になるわけだけど、グローバルの領域に 'use strict'; ... とか書くと、人が書いた他のモジュールに影響出ちゃうんで (function() { 'use strict'; ... })(); こうするのが礼儀かと思ってたけど、やってみた…