pig's diary

何でも忘れるので万年初心者ね

javascript

マージャンのやつ JavaScript

あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 http://www.itmedia.co.jp/enterprise/articles/1004/03/news002_2.html ※トータルで1週間以上かかっているorz var assert = require('assert'); var test = function(results, answers) {…

Ti ヘッダ 取りにくい

検索クエリ「Ti ヘッダ 取りにくい」の方にのみお送りしております。私の場合 Titanium でHTTP 通信したくなった結果こういうことになりました。 気づいたことなど iPhone だと、getAllResponseHeaders できないらしい。(動きとドキュメント見た限り)だか…

WebDriverJs 〜果たされた約束〜

相変わらずSEO無視気味のうざいブログタイトルシリーズです。WebDriverJs というのがあって、SeleniumのJavaScriptドライバです。npm で簡単に入れられます。 $ npm install selenium-webdriver https://code.google.com/p/selenium/wiki/WebDriverJs WebDri…

PromiseとDeferredを表面的に実装してみた。

promiseにはpromise/A という小さなルールがあって、それに則って皆ライブラリを作っているみたいだけど、それはいいからとにかくthen したくなった。主に、promiseオブジェクトのありかたが本家を無視しています。promiseオブジェクトは、thenを一度しか呼…

npm q べんり

qはPromises/A提案ベースの非同期管理ユーティリティです。 https://github.com/kriskowal/q/wiki/API-Reference と思ってたら、今はPromises/A+ というものがあるようです。 http://promises-aplus.github.io/promises-spec/qがあれば、非同期処理が増えて…

goog.ui.ThousandRows - 大量の一覧を軽快に表示するGoogle Closure Library モジュール

Closure Library で、大量に列のあるリストを軽快に表示できるコンポーネントを作りました。 デモ:http://stakam.net/closure/120722/ GitHub:https://github.com/piglovesyou/closure-thousandrows 特徴 初期表示、スクロール時の動きが速いです。 使える…

goog.ui.Scroller - Google Closure Library モジュール

Closure Library でうごくスクローラーをつくりました。よく、スクロールバーのデザインをカスタムしたいときとかに使うやつです。 縦、横、両方でスクロールを実装できます。デモ:http://stakam.net/closure/120618/ GitHub: https://github.com/piglovesy…

ビットマスクによるフラグ

参考:goog.ui.Control複数の状態(STATE)を、1つの変数で保持する。例えば、DISABLED状態であり、同時にHOVER状態でもある状態を1つの変数で表現する。以下、そのときのフラグの上げ下げのしかた。まずビットマスクに使う定数を用意する。1,2,4,8,16,32..…

CSS3時代にstylus

stylus を使ってコードが短くなった例。iPhone HOME みたいな配置がしたかった(アイテムが出てからリサイズしてみてください) のですが、CSS が長ったらしくなりわけが分からなくなりました。 HUNDRED = 100% itemHeight = 240px /* TODO: Use stylus iter…

flickGal v1.2

iPhone で横向きフリックを実装するflickGal プラグインを1.2 にしました。 Android で起きてた問題を直せたからです。(横向きにすると変になってた) tunntunnさんがコメントくれて直しました。 確認は、職場でK さんがAndroid 見てくれました。ありがとう…

muffin.js を入れてみた(Coffeescript の Cakefile用ライブラリ。)

https://github.com/hornairs/muffinmuffin.js をちょっと使ってみました。(v0.2.6)muffin.js は、 (Node.js で動く。) Coffeescript を書いていて、 Cakefile も書いていて、 Cakefile で child_process をいくつも作らなきゃいけない人 が幸せになれるラ…

自分のサイトをNodejs化、さくらVPSで

自分のサイトのコンテンツは皆無に等しいです。あるとしたらjQueryプラグインのflickGalをホストしているくらいです。 このサイトを、Nodejs 化しました。理由は、特にないです。 環境 さくらVPS Cent OS(1,000円/month) node v0.4.10。 nvm を使用。楽。 …

_.niceDate・・・日付データを与えて「〜分前」を簡単に実装するunderscore.js 拡張

underscore.js は、誰かが「ビルトイン拡張しないPrototype.jsだ」って言っていました。実際、そうだと思います。 window._ に、いろいろユーティリティが詰まってるんです。(「 _ 」じゃなくも、できる) // 配列が空かどうかしらべたい _.isEmpty([]) // …

15パズル in coffee script

coffee script で15パズルを書いてみました。 まえに作ったものを、書き直しました。 http://stakam.net/playground/111013/ http://stakam.net/playground/111013/15pzl.coffeecoffee script はすごく楽でいいです。 Class を作るのとかも class Fifteen co…

クロージャ関数のthisは誰?

var f = fHandler(); f(); // yeah! function fHandler () { var handlerSelf = this; return function () { if (handlerSelf === this) { console.log('yeah!'); } else { console.log('ooh...'); } } } うん console.log("we're in " + this); var f = fHa…

【質問終了】ruby on rails3で、rjsを全然使わずにxhrリクエストをさばくapiを作りたいのですが、・・・

質問: Google Closure × Rails がやりたかったんです。 ruby on rails3で、rjsを全然使わずにxhrリクエストをさばくapiを作りたいのですが、書き方がわかりません。例えば、postの xhrで、createメソッドをよんでコメントを書き込んだあと、書き込んだコメ…

Twitter検索系APIを触ったときの気づき

単にsearchAPIを触ってみましたという話なのですが。 jsonpで検索するしくみを作ってみました 数年遅れでSearchAPIの仕組みを知り、やられました 恥ずかしいかぎりです。いくつかはsearchAPIに限らないかもしれません。 OAuthを使わないAPIは、IP単位でアク…

node.jsを始める:サーバがあまりわからないjs書きが

※結論が誤っている可能性があります。 ※だいぶ、間違っていたようです。 id:koichikさん、アドバイスをくださいましてありがとうございます!せっかくJSがすこしは書けるので、サーバjsもやってみたいと思ったので初めてみました。 node.js: 環境を用意 さく…

jQueryAPI自習おさらい - detach() 〜

////////////////////////////////////////////////// // .detach() // // .remove()とほぼ同じ。違いは以下。 // // .remove() ・・・ソースからも、メモリ領域からも削除。 // .detach() ・・・ソースから削除、メモリは残す。(==きっとまた.append()で…

コレクションオブジェクトのこと、prototype.jsをはじめて。

prototype.jsを始めた。jsdo.itを読んでいて、読み切りたいコードが使っていたから。jQuery + prototype.jsと、書き方が全然違うようなので、ちゃんとなじめるか不安でいっぱいです。 $A(コレクションオブジェクト) それで、出て来たのが「$A(コレクションオ…

e.preventDefault() と e.stopPropagation()まとめ

シンプルにまとめたいと思いますが・・・ <div id="box"> <div id="boxInner"> <a href="#">ああ</a> </div> </div> <script> document.getElementById("box").addEventListener("click", clickHandler, false); document.getElementById("boxInner").addEventListener("click", clickHandler, false); document.getElementsByTagNa…

DOM生操作(jQuery使わない):要素を空にするときは

要素を空にするとき、elm.removeChild(e)を使う。 elm.innerHTML = ''だと、ieでエラーが起こる要素を空にするときは while ( elm.childNodes.length >= 1 ) { elm.removeChild( elm.firstChild ); } で、空にしよう。

今日のびっくり:今日知ったjQueryAPI仕様

jQueryをわりと覚えてきたので、本家jQueryAPIページでも見てみようかなと思ったら。 こんなことできたんだ、がいろいろ。忘れないために、メモメモ。知らないことばかりなので、初耳マーク「★」をつけてます。 .delegate__$(セレクタ)内の指定要素に、.…

返り値を関数にして、クロージャ作成完了!

この方のソースをみながら勉強させていただいてます。 http://dev.worksap.co.jp/Members/nogunogu/2010/07/14/iphonesafari-javascript%E3%81%A8css%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%83%95%E3%83%AA%E3%83%83%…

jQuery putitScroll 1.0.0 - divの中だけ、ホバーでクルクルスクロール。

$('.your_classes_here').putitScroll(); 早速作ってみました、jQueryプラグイン。2chまとめブログの方々とか、ぜひ使っていただきたいです。 デモページはこちら>> /***************************************************************************** jQuery…

jQueryプラグインの作り方:テンプレート

なるほどね。で、jQueryオブジェクトをreturn してメソッドチェーンは続きますよ・・・と。 (function(jQuery) { function privateFunctionForPlugin(locale) { }; jQuery.fn.format = function(options) { var options = jQuery.extend({ format: "#,###.00…

Array 驚きの5メソッド

JavascriptのArray.filter()など。知らなかったので。 基本ルール 元の配列に影響はしない。破壊的じゃない。 関数(==コールバック関数)を引数にする。 コールバック関数の引数は3つ: element(値), index(0から始まるインデックス), array(元になる…

関数リテラル == 宣言関数 * 無名関数 の巻き

宣言関数 function yeah(){ alert('yeah!'); } 無名関数 new Function('alert("yeah!!")'); //正直な話何もおこらない function(){alert('yeah!');} //これはエラー。たぶんfunctionが演算子扱いとみなされ。 関数リテラル var yeah = Function('alert("yeah…

print_r

これ便利ですなあ。 http://labs.unoh.net/2006/11/javascript.html firebugいつも使うから、consoleオブジェクトのメソッドにでもしてもらいたい気分になりますなあ。 function print_r(obj) { var count_obj = 0, result = ''; function _output(str) { //…

関数内で、引数として渡されたオブジェクト(配列、ハッシュ)の変更は、グローバルに適用される!

ふつう、関数内のできごとは、外の世界には影響しないと思うよね? でも、配列やハッシュ(オブジェクト)は影響する! 関数内で加えたオブジェクトの変更は、外の世界にも適用される。オブジェクトなんだから、たしかに考えてみればそっかあ。でもよくこれ…