<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>twitter のアカウントは sarabandejp と masakielastic (仕事関係)です。連絡先は masakielastic ＠gmail.com  です。</description><title>Sarabande.jp</title><generator>Tumblr (3.0; @sarabandejp)</generator><link>http://blog.sarabande.jp/</link><item><title>Backbone.js: イベントハンドラを指定する</title><description>&lt;p&gt;
Backbone.js においてイベントハンドラは events プロパティで指定する。イベントの観測対象となる要素のセレクターは el プロパティもしくはイベントのあとに記述する。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
&amp;lt;div id="result"&amp;gt;
  &amp;lt;button id="mybutton"&amp;gt;クリックしてください&amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script type="text/javascript"&amp;gt;
var AppView = Backbone.View.extend({

  el: "#result",

  events: {
    "click #mybutton": "clicked"
  },

  clicked: function() {
    console.log("クリックされました");
  },

});

var App = new AppView;
&amp;lt;/script&amp;gt;
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50427616160</link><guid>http://blog.sarabande.jp/post/50427616160</guid><pubDate>Wed, 15 May 2013 01:48:57 +0900</pubDate><category>backbone.js</category></item><item><title>Backbone.js: モデルとビューの連携について</title><description>&lt;p&gt;
Q&amp;amp;A によるとモデルとビューのあいだの参照方法は複数存在する。直接のポインターを使い、ビューとモデルが一対一で対応させる(model.view と view.model)。ビューの生成と組織化を調整する中間的な「コントローラー」オブジェクトを用意する方法もある。イベントによるアプローチを好む人もおり、メソッドを直接呼び出す代わりに常にイベントを発動させる。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/50424510040</link><guid>http://blog.sarabande.jp/post/50424510040</guid><pubDate>Wed, 15 May 2013 00:47:45 +0900</pubDate><category>backbone.js</category></item><item><title>Backbone.js: モデルのデフォルトを指定する</title><description>&lt;p&gt;
defaults プロパティを使って、プロパティのデフォルトを指定することができる。デフォルトの値はインスタンス生成の際に指定されなかったプロパティに対して使われる。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var Meal = Backbone.Model.extend({
  defaults: {
    "main": "焼き肉定食",
    "dessert": "アイスクリーム"
  }
});

var order = new Meal;
var order2 = new Meal({'main': 'カレーライス'});

// 焼き肉定食
console.log(order.get('main'));
// カレーライス
console.log(order2.get('main'));
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50424214242</link><guid>http://blog.sarabande.jp/post/50424214242</guid><pubDate>Wed, 15 May 2013 00:41:37 +0900</pubDate><category>backbone.js</category></item><item><title>Backbone.js: テンプレートを使う</title><description>&lt;p&gt;
Underscore.js に template メソッドが用意されているので、さっそく使ってみよう。ビューに template メソッドを用意しておけば、テンプレートを別のものに切り替えたときに、修正する箇所を減らすことができる。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var AppView = Backbone.View.extend({

  el: '#result',

  initialize: function() {
    this.render();
  },

  template: _.template("Hello &amp;lt;%= name %&amp;gt;"),

  render: function(){
    this.$el.html(this.template({ name:'masaki' }));
    return this;
  }
});
 
var App = new AppView;
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50422374706</link><guid>http://blog.sarabande.jp/post/50422374706</guid><pubDate>Wed, 15 May 2013 00:02:00 +0900</pubDate><category>backbone.js</category></item><item><title>Backbone.js: Hello World</title><description>&lt;p&gt;
Backbone.js で Hello World を行う。最小限必要なことは Backbone.View　の extend メソッドを使って initialize メソッドと render メソッドを定義することおよび、ビューのインスタンスを生成することである。
&lt;/p&gt;

&lt;p&gt;
initialize メソッドはビューのインスタンスを生成する際に実行されるメソッドである。今回は render メソッドの実行を指定した。el プロパティはビューのなかにおける DOM 要素(element)の表現である。$el は jQuery によって処理済みの DOM 要素である。jQuery が使えるので、el にはセレクターを指定することができる。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
&amp;lt;script src="http://code.jquery.com/jquery-2.0.0.min.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;div id="result"&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script type="text/javascript"&amp;gt;
var AppView = Backbone.View.extend({

  el: '#result',

  initialize: function() {
    this.render();
  },

  render: function(){
    this.$el.html('hello World');
  }
});
 
var App = new AppView;
&amp;lt;/script&amp;gt;
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50398634769</link><guid>http://blog.sarabande.jp/post/50398634769</guid><pubDate>Tue, 14 May 2013 13:07:00 +0900</pubDate><category>backbone.js</category></item><item><title>Underscore.js: テンプレートにおいてリストを生成する</title><description>&lt;p&gt;
each メソッドを使う。リストの項目は1つのプロパティに配列として渡す。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var list = "&amp;lt;% _.each(menu, function(item) { %&amp;gt; &amp;lt;li&amp;gt;&amp;lt;%= item %&amp;gt;&amp;lt;/li&amp;gt; &amp;lt;% }); %&amp;gt;";

console.log(
  _.template(list, { menu : ['塩ラーメン', 'とんこつラーメン', '醤油ラーメン']})
);
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50395627096</link><guid>http://blog.sarabande.jp/post/50395627096</guid><pubDate>Tue, 14 May 2013 12:22:38 +0900</pubDate><category>javascript</category></item><item><title>Underscore.js: テンプレートを利用する</title><description>&lt;p&gt;
Underscore.js には template メソッドが用意されている。Backbone.js は Underscore.js に依存するので、
このメソッドをそのままテンプレートのために使うことができる。変数識別のための区切り文字は ERB と同じものが採用されているが、
_.templateSettingsを使って変更することもできる。イコール(=)記号の代わりにマイナス(-)記号を使えば変数に escape メソッドが適用される。
ただし、マイナス記号は見わけずらいので、escape メソッドを直接呼び出したほうがわかりやすいだろう。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var compiled = _.template("Hello ");
var compiled2 = _.template("Hello ");

console.log(
  // Hello Masaki
  compiled({ name : 'Masaki' }),
  // Hello &amp;amp;lt;b&amp;amp;gt;Masaki&amp;amp;lt;&amp;amp;#x2F;b&amp;amp;gt;
  compiled2({ name : '&amp;lt;b&amp;gt;Masaki&amp;lt;/b&amp;gt;' })
);
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50394270996</link><guid>http://blog.sarabande.jp/post/50394270996</guid><pubDate>Tue, 14 May 2013 12:04:23 +0900</pubDate><category>javascript</category></item><item><title>Underscore.js: 関数であるプロパティから値を得る</title><description>&lt;p&gt;
プロパティが関数の場合、値を得るには関数を実行する必要があるが、_.defaults メソッドを使えば、あたかも通常のプロパティのように値を得ることができる。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var order = { main: 'カレーライス', dessert: function(){ return 'アイスクリーム'; }};

// アイスクリーム
console.log(
  order.dessert(),
  order.dessert.apply(),
  _.result(order, 'dessert')
);
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50390800808</link><guid>http://blog.sarabande.jp/post/50390800808</guid><pubDate>Tue, 14 May 2013 11:21:31 +0900</pubDate><category>javascript</category></item><item><title>Underscore.js: プロパティのデフォルトを指定する</title><description>&lt;p&gt;
変数のデフォルトを指定するには三項演算子が便利であるが、オブジェクトの複数のプロパティのデフォルトを指定するには Underscore.js の defaults メソッドが便利である。defaults メソッドの第1引数はオブジェクトで、第2引数はデフォルトのオブジェクトである。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var defaults = { main: "カレーライス", dessert: "アイスクリーム" };

// { main: 'カレーライス', dessert: 'アイスクリーム' }
_.defaults({}, defaults)); 

// { main: 'オムライス', dessert: 'アイスクリーム' }
_.defaults({ main: "オムライス" }, defaults);
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50389104198</link><guid>http://blog.sarabande.jp/post/50389104198</guid><pubDate>Tue, 14 May 2013 11:00:00 +0900</pubDate><category>javascript</category><category>underscore.js</category></item><item><title>JavaScript: assert と assertEqual のコードスニペットを用意する</title><description>&lt;p&gt;
「ステートフル JavaScript」は assert および assertEqual メソッドを自前で定義してサンプルコードのさまざまな箇所で使っている。自前で定義すれば、テストフレームワークを使わなくてすむので、サンプルコードを試しやすくなる。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var assert = function(val, msg) {
  if (!val) {
    throw(msg || (val + "は真ではありません"));
  }
}

var assertEqual = function(val1, val2, msg) {
  if (val1 !== val2) {
    throw(msg || (val1 + "と" + val2 + "は等しくありません"));
  }
}
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/50343712823</link><guid>http://blog.sarabande.jp/post/50343712823</guid><pubDate>Mon, 13 May 2013 23:52:00 +0900</pubDate><category>javascript</category></item><item><title>教育目標を明確に説明できないだろうか？</title><description>&lt;p&gt;
プログラミングの学習に関して、技能の比重が大きいので、読書によって何を得られるのか期待できることをもっと明確に説明できないだろうか。
書籍全般に言えることであるが、それぞれの本がどのような教育目標を掲げ、どのような効果が得られるのかを明記したものはほとんど見られない。
逆にきちんと示すことができれば、書籍の売り上げにも役立つのではないだろうか。
&lt;/p&gt;

&lt;p&gt;
近年、研修効果測定に関する書籍が相次いで出版されている。amazon で検索すると「はじめての教育効果測定」(2007)、「教育効果測定の実践」(2012年)「研修効果測定の基本」(2013年)といった書籍が見つかる。
&lt;/p&gt;

&lt;p&gt;
教育学の分野ではより効果的な教授方法の研究が日夜続いている。
&lt;/p&gt;

&lt;p&gt;
はてなキーワードによれば、インストラクショナルデザインは最も効果的かつ効率的な教育を設計・開発するための方法論であり、教育の場においては、学習者の自由度を保ったままで高い学習効果が生じることを意図して、具体的な計画を立てることである。

Wikipedia によれば、インストラクショナルデザインは「人はいかに学ぶか」「学習とは何か」という問に対峙し、より良い学習の環境を総合的にデザインすることを目指している。
&lt;/p&gt;

&lt;p&gt;
Amazon で調べるとさまざまなサイトで名前が挙げられているガニェの「インストラクショナルデザインの原理」、 ケラーの「学習意欲をデザインする―ARCSモデルによるインストラクショナルデザイン」といった書籍が見つかる。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/50175722077</link><guid>http://blog.sarabande.jp/post/50175722077</guid><pubDate>Sun, 12 May 2013 01:38:32 +0900</pubDate><category>日記</category></item><item><title>演繹よりも帰納のほうがわかりやすい</title><description>&lt;p&gt;
数学や物理のようにプログラミング言語の教科書において、一般的なルールや考え方を説明してから、そのルールを具体的な問題に適用するというやりかたは
広く行われている。しかし、よくある問題は準備段階の説明が長すぎることだ。初心者の段階では、記憶できる情報はかぎられているので、
具体的な練習に取り組むころには忘れてしまう。それよりも身近でよく見かける問題を示した上で、それを解くために必要最小限の知識を確認し、問題を解いてみせる。より高度な問題に取り組むための一般的な考え方を述べるほうが記憶に残りやすいのではないだろうか。数学や物理学の大学受験の教科書では典型的な書き方であるが、大学以降の教科書になるととたんにそのやりかたが忘れ去られてしまうのは何とも不思議なことである。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/50161211054</link><guid>http://blog.sarabande.jp/post/50161211054</guid><pubDate>Sat, 11 May 2013 21:37:00 +0900</pubDate><category>日記</category></item><item><title>説明に不要なコード、コピペして動かないコードはなるべく教科書に使うべきではない</title><description>&lt;p&gt;
プログラミング言語の教科書において、不満なことは、現実的であるということを示すためなのか、ある機能の説明において、不要なコードが記載されていることが多い。しかし、説明に不要なコードは初心者の集中力をそらしてしまうので、掲載すべきではないし、またかぎられた誌面の空間をムダづかいしていることになる。
&lt;/p&gt;

&lt;p&gt;
フレームワークやライブラリ解説書でないかぎり、言語の標準ではないライブラリやフレームワークを使わない動かないコードも避けるべきである。読者が確認する手間が増えるので、検証されない可能性が高くなるし、教科書のテストコードの量も増やすことになる。
&lt;/p&gt;

&lt;p&gt;
教科書を書く上では、できるかぎり、モデル化を心がけるべきである。モデル化とは問題の本質的な部分を抽出して、議論しやすくすることである。
数学や物理ではよく見られる手法であり、プログラミング言語も数学の影響を大きく受けているのであるが、教科書になると、どういうわけか数学のやり方が忘れ去られてしまう。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/50159127838</link><guid>http://blog.sarabande.jp/post/50159127838</guid><pubDate>Sat, 11 May 2013 20:44:57 +0900</pubDate><category>日記</category></item><item><title>情報のフィルタリング、基本学習をこまめにやる、複数の概念を同時並行に操作する練習を心がける</title><description>&lt;p&gt;
初心者の段階では何が必要な情報なのか判断できず、どうでもよい情報を過剰に集めてしまう。またスキルが向上して、情報の処理能力が向上すると、要求水準をどんどん高くしてしまうことがある。
&lt;/p&gt;

&lt;p&gt;
初心者の段階では、最初から効率よく情報を集めるというスタイルをやろうとすると、上達の妨げになるので、たいていのことはムダになることを承知の上でいろいろ試してみる。
&lt;/p&gt;

&lt;p&gt;
わからないことはこまめに調べ、Twitter などに投稿してみる。基本的な説明やかんたんなコードをコピペして記録を続けてゆくと、そのうち、断片的な知識の貼り合わせから、一定の文章やコードが書けるようになる。それまで他人のやりかたをそのまままねてみる。
&lt;/p&gt;

&lt;p&gt;
一定水準のスキルを超えると、学習時間と得られる投資が見合わなくなることがだんだん見えてくるので、そのあたりで、自分がなにを勉強すべきか、判断基準を設けるとよいかもしれない。
&lt;/p&gt;

&lt;p&gt;
初心者の段階では基本操作の1つ1つの負担が大きく、少し概念操作するだけで、集中力が切れてしまう。対策としては、少し練習しては記録して言語化するということをこまめにやる。一定の経験があると、新しい分野を学ぶときに、以前の分野と同じようにコードや文章を書こうとしようしてしまい、スキルに釣り合わない要求を自らに課してしまうことがある。対策としては、
&lt;/p&gt;

&lt;p&gt;
書籍だけ読んで勉強することの問題は複数の概念を同時並行に操作するトレーニングが不足しがちなので、自分でトレーニング方法を考案してみる。どの複数の概念の組み合わればよいのかは、さまざまなものの見方があるので、それが自分自身の個性になる。組み合わせに関して、自分がしっくりくる物語を語れるようになることを心がける。
&lt;/p&gt;

&lt;p&gt;
複数の概念を同時並行に操作する際において、理解の弱い概念が足を引っ張り、学習を進めることができないことが多い。その場合、理解の弱い概念操作について、より適切なトレーニング方法を考えてみるとよいだろう。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/50114233257</link><guid>http://blog.sarabande.jp/post/50114233257</guid><pubDate>Sat, 11 May 2013 06:38:00 +0900</pubDate><category>日記</category></item><item><title>Backbone.js: jQuery 関連の変更について</title><description>&lt;p&gt;
0.9.0:  
ビューに新しいプロパティが追加されました。$el はビュー要素へのキャッシュ済みの jQuery (もしくは Zepto) 参照です。setElement はビューの el を手動で設定する代わりに使うべきです。このメソッドは view.el と view.$el の両方を正しく設定し、新しい DOM 要素にイベントを再度デリゲートを行います。
&lt;/p&gt;

&lt;p&gt;
0.9.9: 
$.ajax のデフォルト利用をオーバーライドするために Backbone.ajax フックが追加された。AJAX の機能が時代遅れであるなら、サーバーとのコミュニケーションのために望ましいメソッドをセットします。
&lt;/p&gt;

&lt;p&gt;
Backbone が使う DOM 操作と Ajax 呼び出しを設定するには、setDomLibrary の代わりに Backbone.$ = &amp;#8230; を使います。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/50112144579</link><guid>http://blog.sarabande.jp/post/50112144579</guid><pubDate>Sat, 11 May 2013 06:09:09 +0900</pubDate><category>backbone</category></item><item><title>Backbone.js: イベントの変更について</title><description>&lt;p&gt;
手元の書籍のコードとはだいぶ変わってしまっていたので、チェンジログから抜粋することにした。抜粋した内容はすべてではないことに注意。
&lt;/p&gt;

&lt;p&gt;
0.5.2 で bind メソッドはコールバック関数の this を第3引数で指定できるようになった。
&lt;/p&gt;

&lt;p&gt;
0.5.3 でビューの events プロパティを関数、オブジェクトリテラルで定義できるようになった。これによってプログラミングによるイベントの定義や継承がかんたんになる。
&lt;/p&gt;

&lt;p&gt;
0.9.0 で model.on(&amp;#8220;change:name change:age&amp;#8221;, &amp;#8230;) のように複数のイベントを指定して発動させることができるようになった。
bind と unbind メソッドは jQuery に on と off に改名された。
&lt;/p&gt;

&lt;p&gt;
コレクションの add と remove イベントの範囲において、追加されるもしくは削除されるモデルのインデックスは options.index を通じて利用できるようになった。
&lt;/p&gt;

&lt;p&gt;
undelegateEvents がビューに追加された。これによって設定したイベントデリゲーションをすべて手動で削除できる。
&lt;/p&gt;

&lt;p&gt;
0.9.9 で listenTo と stopListening メソッドが追加された。view.remove() は view.stopListening() を自動的に呼び出す。
Backbone オブジェクトは Events を継承するようになり、グローバルバスとして使うことができるようになった。

once メソッドがサポートされた。jQuery の one および Node.js の once メソッドのアイディアに追随したことになる。
また、jQuery スタイルのイベントマップスタイル (obj.on({click: action})) をサポートするようになった。
&lt;/p&gt;

&lt;p&gt;
0.9.10 で Backbone.history の発動に加えて route イベントが発動されるようになった。
&lt;/p&gt;

&lt;p&gt;
1.0 で listenToOnce を追加した。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/50110837406</link><guid>http://blog.sarabande.jp/post/50110837406</guid><pubDate>Sat, 11 May 2013 05:50:00 +0900</pubDate><category>backbone</category></item><item><title>教科書の設計について</title><description>&lt;p&gt;
自分が学んだことを今後どのようにまとめてゆけばよいのかについて、PHP の教科書を例に考える。
&lt;/p&gt;

&lt;p&gt;
概念を学んでから最終的にアプリケーションをつくるのではなく、最初につくるべきアプリケーションの要件や機能を示した上で、概念を学んでゆく。
個別の課題はできるだけ最終成果のアプリケーションにつながるようにすべきである。重要であるがアプリケーションをつくる上で必須ではない項目は書かないか、最後の補足としてまとめる。
&lt;/p&gt;

&lt;p&gt;
アプリケーションをつくる際にはマイクロフレームワークを使う。素の PHP を書いた上でマイクロフレームワークを使ったコードのリファクタリングしてもよいだろう。マイクロフレームワークを導入する前にテンプレートエンジンの導入を示したほうがわかりやすいだろう。テンプレートエンジンに最小限のロジックしか求めないので、Mustache がよいかもしれない。教科書の説明に必要な最小限のマイクロフレームワークにすれば、フレームワークの学習負担を減らすことができる。
&lt;/p&gt;

&lt;p&gt;
データの保存に関しては、データベースよりも JSON 形式のテキストにすれば SQL および noSQL データベースのセットアップが不要になるので、
練習しやすくなる。データベースを使うのであれば SQLite3 がよいだろう。デフォルトで PHP に搭載されているからだ。
&lt;/p&gt;

&lt;p&gt;
学習において SQL を使わないメリットはフィルタリングの操作を PHP で書く必要があるので、配列関数のトレーニングになる。また SQL に慣れてしない人が SQL でつまずく問題を減らすことができる。もっとも、高度なフィルタリングを考えると、高階関数とクロージャの学習が必要になるので、ここでつまずく可能性がある。
&lt;/p&gt;

&lt;p&gt;
アプリができれば、今度は異なるプログラミングパラダイムに切り替えるために、別のフレームワークに置き換えることも考えられる。
&lt;/p&gt;

&lt;p&gt;
最小限でも実用的なアプリをつくるためには PHP だけでなく、HTML5、JavaScript の学習が必要になる。
&lt;/p&gt;

&lt;p&gt;
バリデーションに関して、PHP、HTML5、JavaScript を統一的に学ぶ必要がある。
&lt;/p&gt;

&lt;p&gt;
JavaScript の部分の実装に関して、素の JavaScript、jQuery、MVC フレームワークの選択肢がある。
&lt;/p&gt;

&lt;p&gt;
教科書の方針としては jQuery を使ったコードから MVC フレームワークを使ったコードにリファクタリングすることである。
&lt;/p&gt;

&lt;p&gt;
DOM、イベント、Ajax の学習について手際よくまとめる必要がある。
&lt;/p&gt;

&lt;p&gt;
PHP と JavaScript を並行して使うために、クロージャを使ったイベント駆動のプログラミングについては PHP にも説明が必要だろう。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/49944898363</link><guid>http://blog.sarabande.jp/post/49944898363</guid><pubDate>Thu, 09 May 2013 02:57:41 +0900</pubDate><category>php</category><category>javascript</category><category>日記</category></item><item><title>配列関数の分類について</title><description>&lt;p&gt;
CRUD(Create、Read、Update、Delete)、一階関数か高階関数かどうか、デフォルトとカスタマイズ方法の3つの分類を挙げることができる。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/49941955099</link><guid>http://blog.sarabande.jp/post/49941955099</guid><pubDate>Thu, 09 May 2013 02:02:00 +0900</pubDate><category>日記</category><category>php</category><category>配列</category></item><item><title>script タグの src 属性で相対 URL を指定することについて</title><description>&lt;p&gt;
cndjs.com のサイトにおいてライブラリの URL の記述において HTTP プロトコルが省略されていたので、正しい書き方なのか &lt;a href="http://stackoverflow.com/questions/550038/is-it-valid-to-replace-http-with-in-a-script-src-http"&gt;stackoverflow&lt;/a&gt; を調べたら、RFC 3986 において相対的な URL として認められているとのことであった。ただし、Mac OSX において HTTP サーバーを立ち上げずに、ファイルシステムから HTML ファイルをブラウザーで表示させるとファイル内の相対パスとして解釈されてしまうので、ローカル環境での開発を考慮すると、省略はしないほうがよいだろう。
&lt;/p&gt;</description><link>http://blog.sarabande.jp/post/49856419611</link><guid>http://blog.sarabande.jp/post/49856419611</guid><pubDate>Tue, 07 May 2013 23:45:22 +0900</pubDate><category>javascript</category></item><item><title>JavaScript: 配列から空の要素を削除する</title><description>&lt;p&gt;
JavaScript の配列から空の要素(falsy な値)を削除するには filter メソッドを使う。これは PHP の array_filter と似たようなふるまいである。stackoverflow の「&lt;a href="http://stackoverflow.com/questions/281264/remove-empty-elements-from-an-array-in-javascript"&gt;Remove empty elements from an array in Javascript&lt;/a&gt;」を参考にした。falsy と truthy に関しては以前&lt;a href="http://blog.sarabande.jp/post/12378191917"&gt;記事&lt;/a&gt;を書いた。
&lt;/p&gt;

&lt;pre class="prettyprint javascript"&gt;
var array = [, 0, false, null, NaN, undefined, ''];
console.log(array.filter(Boolean));
console.log(array.filter(function(elem) { return elem; }));
&lt;/pre&gt;</description><link>http://blog.sarabande.jp/post/49853785015</link><guid>http://blog.sarabande.jp/post/49853785015</guid><pubDate>Tue, 07 May 2013 22:43:00 +0900</pubDate><category>javascript</category></item></channel></rss>
