js

CoffeeScriptの{}

js

Hoge = require('Hoge').Hoge↓ var Hoge; Hoge = require('Hoge').Hoge; CoffeeScriptで{}を使用することで上記コードを短縮表記できることに気づいた。 {Hoge} = require('Hoge')↓ var Hoge; Hoge = require('Hoge').Hoge; 生成されるJavascriptは等価だ。…

CoffeeScriptを使うべきか、使わざるべきか?

js

最近CoffeeScript界隈のブロゴスフィア(死語)を賑わせていた「CoffeeScriptを使うべきか、使わざるべきか?」という話題についてまとめてみた。 以下の記事紹介は超訳かつ要約なので詳しく知りたい人は元記事を参照のこと。 ことの発端はこの記事。 SnackJS…

クライアントサイドフレームワークbrunchでアプリを作ってみた

js

http://ninoseki.github.com/local-scrum/ こんな感じのスクラムボード風HTML5アプリをクライアントサイドフレームワークbrunchを使って作ってみたのでメモ。 以下はbrunchの紹介。 brunchって? brunchは軽量なクライアントサイドフレームワーク。 Backbone…

Backbone.jsでCollectionを初期化する方法

js

なんらかの条件でもってCollectionにひもづいてるModelを削除しようとしてつまった。 Collection.prototype.destroyAll = function() { this.each(function(model) { if (condition) { model.destroy(); } } } これは動作しない。 Model.destroy()は自分自身…

Backbone.jsを使ってアプリを作ったよ

js

http://hitorigoto.heroku.com/ Wrenライクにタイムラインを見ずにツイートだけができるアプリを、Backbone.jsを使って作ってみた。 ソースはGithubで公開してある。 Backbone.jsのチュートリアルはHello Backbone.js(英語)がとてもわかりやすく参考になった…

見ているページのリンク先画象をまとめてスライドショー化する拡張機能を作った

https://chrome.google.com/webstore/detail/nfmfmnjjhlnmjhoncchpadcphhopcfoc画像リンクが多いWebページを見てる時にいちいちクリックして開くの面倒だよねーってことで、見ているページのリンク先画像をざくっと集めてスライドショーとして見ることのでき…

Javascript製Markdown記法パーサー、markdown-js

js

Githubなどでお馴染みのMarkdown。 Markdown記法パーサーをJavascriptで実装しようとする試みはいくつかあるけれど、markdown-jsは自分が知る中では一番良く出来ている。 ソースを見てもらえればわかると思うけど、Showdownやこれから派生したGFM previewは…

Chromeウェブアプリの多重起動を抑制するためのTips

js

Chromeウェブアプリは基本的に多重起動可能(複数のタブで開ける)。 そのため、ステートフルなウェブアプリで多重起動されてしまうと状態管理がめちゃくちゃになってしまう危険性がある。 ということでChromeウェブアプリの多重起動を抑制し、単一起動に限定…

SNBinderのAjax系メソッドをDefered化してみた

js

https://github.com/ninoseki/SNBinder javascript用テンプレートエンジンSNBinderのAjax系メソッドをDefered Objectを返すように変更してみた。 Before SNBinder.get_named_sections("/static/templates.htm", null, function(templates) { var user = { "n…

JasmineでSammy.jsアプリをテストする

js

RSpecライクなJavascript用BDDフレームワークJasmineで、SinatraライクなWebフレームワークSammy.jsで作られたアプリをテストしてみる。 非同期処理を伴わない場合 Sammy.js app var app = $.sammy(function() { this.get('#/', function() { $('h1').html("…

jQueryプラグインでシンプルなカウントダウンタイマーを作った

js

https://github.com/ninoseki/jquery-countdown jQueryプラグインとしてシンプルなカウントダウンタイマーを作った。 localStorageに終了時刻を記憶しおいて、ウインドウ/ブラウザが閉じられた後でもカウントダウンが終わったかどうか判定できるってのが他と…

By the power of Grayskull!

Chrmome extension版のTweetDeckを日常的に使っている。 あのLanuncherアイコンを押すと本体が新しいタブで立ち上がるって処理はどうやってるんだろう、と疑問に思ってソースコード見てみたら笑ってしまった。コメントが面白い。 function launchApp(app) { …

便利機能満載のライブラリUnderscore.js

js

JavascriptライブラリUnderscore.jsがすごい便利。 すごい便利なのにもかかわらず、あんまり日本語の情報がなかったので、公式のドキュメントをスピリチュアル抄訳してみた。 http://documentcloud.github.com/underscore/ Collection Functions each _.each…

js-model チュートリアル

js

js-modelとは 公式 : http://benpickles.github.com/js-model/ js-modelはjQuery上で動く、JavaScriptでモデルを扱うためのフレームワーク。 以下の文章は公式サイトのチュートリアルの勝手訳。 オブジェクトの生成 モデルクラスはModel()ファクトリーを使…

Chrome ExtensionでGAEのChannel APIを使えるようにしてみる

Chrome ExtentionでGoogle App EngineのChannel APIを使ってみよう思い、channel.jsを読み込もうとしたらエラーが。 Uncaught Error: URI chrome-extension://oejekmbenpogkdncmmjlnjebpinjcnac/_ah/channel/xpc_blank is invalid for field ppu channel.js…

Puhser + Google App EngineでリアルタイムWebアプリ その2

「WebSocketで目指せ“リアルタイムWeb”!」で取り上げられているRetrospectiveappのサーバサイド(Heroku + Sinatra)をGoogle App Engine + Bottleで実装してみる。 クライアントサイドは元ネタとほぼ同じ。 デモ : http://myretrospective.appspot.com/ Mod…

Pusher + Google App EngineでリアルタイムWeb

「WebSocketで目指せ“リアルタイムWeb”!」(http://www.atmarkit.co.jp/fcoding/articles/websocket/02/websocket02b.html) これ読んで面白そうだと思ったので、とりあえずTwitterのpublic timelineを表示していくWebサイトを作ってみるよ。 Pusherに登録 ht…

Underscore.jsでMapReduce

js

Underscore.jsを使うとMapReduce(みたいな書き方)ができる。 おなじみの単語を数えるやつをやってみる。単語の分割はTinySegmenterで。 参照記事:http://www.asahi.com/national/update/1101/TKY201010310358.html var lines = new Array(); lines.push("さ…

Backbone.jsで簡単なチャットを作ってみる

js

MVCモデルなjavascriptフレームワークBackbone.jsで超簡単なチャットを作ってみる。 とりあえずものは試しってことでかなり適当な実装だけど勘弁。バックエンドはGAE。 デモ(動作するのはchromeだけっぽい):http://ninsoeki-lab.appspot.com/ (現在停止中) …

Content Scriptのクロスサイトリクエストに関する私的メモ

js

クロスサイトリクエスト Chrome ExtentionのContent ScriptでXMLHttpRequestする場合はbackground-pageでやらないと駄目なんだぜ? まあ詳しくはここらへんを見てくださいよ。 http://code.google.com/chrome/extensions/overview.html http://src.chromium.…

mixi向けのChrome extentionつくったよー

js

■Tidy Mixi https://chrome.google.com/extensions/detail/edgokddijpmdmldjagbdmemjljihmecp?hl=jaいやーjs面白いですね。 まあjsというかjQueryだけども!もやは素のjsなんていじりたくないでござる。 とりあえずchromeのextentionを作るときに、オプショ…