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

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

js

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

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

js

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

Instagram Engineering Challengeを解いてみる

http://instagram-engineering.tumblr.com/post/12651721845/instagram-engineering-challenge-the-unshredder 以上のようにバラバラに切断された画象を以下のように戻せ、という問題。 画象の分割数は予め与えられれているものとする。(自動的に画象の分割…

Yahoo Pipesでフィード名を表示させる

Yahoo Pipesで複数のフィードを1つにまとめて出力させる、の簡単にできるんだけどフィード元がどこなのかわからなくなってしまうのでどうにかしたい。 Regexを使ってitem.titleの末尾にフィード名を追加するのが一番簡単な方法だろう。 しかし、この方法だと…

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

js

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

禅の公安スタイルでCoffeeScriptを学ぶ「coffeescript-koans」

https://github.com/sleepyfox/coffeescript-koans 禅において弟子に与えられる課題に公安というものがある。(「隻手の声」とか) それが転じて、プログラミングの世界では穴埋め形式でプログラミング言語を学ぶことがKoan(Koans)と呼ばれるようになった。(ex…

5分でわかるWatir

以下の文章はŽeljko Filipinによる"Watir in five minutes"の翻訳です。*1 (中略) 僕が初めてWatirを仕事で使った時、すごく驚いたことを今でも覚えている。インストールしてから数時間で、僕はテスト中のWebアプリケーション用のスクリプトを書けるようにな…

PILでHalftonみたいなの

こんな感じですか?わかりません><。 Before After # -*- coding: utf-8 -*- from PIL import Image, ImageDraw def collect(img, h, w, y, x, interval): y2 = (y + interval) if (y + interval) < h else h - 1 x2 = (x + interval) if (x + interval) <…

Javascriptで画象をグリッチ

Canvasの勉強がてらにJavascriptで画象をグリッチするアプリをつくってみた。 http://glitched-canvas.heroku.com/ ソースコード: https://github.com/ninoseki/glitched-canvas Canvas要素にはピクセル単位でアクセスできるので、何でもできそうですね。 参…

Javascript・CSSを圧縮・結合するCodeIgniterライブラリ「Simple assets」

CodeIgniterでJavascript・CSSを圧縮・結合するライブラリ「Simple assets」が便利だったので紹介してみる。 https://github.com/bstrahija/assets 導入 GitHubからダウンロードし、config、helpers、librariesをapplication配下に配置する。 ※すでにapplica…

コントローラー経由でファイルを出力する

すごく単純なことだけど、これまでやったことがなかったのでメモ。 ファイル名はContent-Dispositionヘッダーを使って指定するんすね。今まで知らんかった。 load->helper('file'); $this->load->library('upload'); // ファイルを読み込んで出力 $path = $t…

アップロード不可能な拡張子を指定してファイルアップロードする

CodeIgniterのファイルアップロードクラスはアップロード可能な拡張子を指定することができるけど、逆にアップロード不可能な拡張子を指定できない。 そこでCI_Uploadクラスを拡張して、アップロード不可能な拡張子を指定できるようにしてみる。 MY_Upload.p…

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

js

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

DataMapperことはじめ

DataMapperとは CodeIgniter2.x用のORMライブラリ。 http://datamapper.wanwizard.eu/index.html 特徴 導入・設定が簡単 各プロパティのバリデーションが可能 1対1, 1対多, 多対多のリレーションをサポート (CodeIgniterの)ActiveRecordライクなデータセレク…

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

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ウェブアプリの多重起動を抑制し、単一起動に限定…

CodeIgniterでRailsライクなbefore/afterフィルターを

CodeIgniterでRailsライクなbefore/afterフィルターを実現するライブラリを見つけたんでメモ。 導入 https://github.com/zackkitzmiller/codeigniter-filter からファイルをダンロードし、 /config/hooks.phpの中身を/application/config/hooks.phpに追加。 …

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) { …

ローカルで動くシンプルなWikiを作った

Wiki on hand https://github.com/ninoseki/wiki-on-hand 目的 ちょっとしたメモをとりたいときに、ブラウザがあれば使えてサーバーなしで動くWikiがあったら便利だよなと思って作成。 そんなのTiddly Wikiがあるじゃん、って言われたらそれまでなんだけどさ…

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

js

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

Wikiの更新日時をチェックするRedmineプラグインをつくった

https://github.com/ninoseki/wiki_status Redmineを導入してみたはいいものの、全然チケットを使わない現場がこの世の中にはあるという・・・。 そうすると進捗が見えないので、Wikiに進捗報告を書くことになるという・・・(白目 そんな現場はないと思うけ…

ローカルでデータを管理するポスト・イット的なアプリつくった

PostIt! retrospctiveapp(https://github.com/paulbjensen/retrospectiveapp)をforkして、データをローカルに保存するようにした。 あとデザイン周りも多少いじってる。 よそにデータを送信したりしないので、私的なメモとして使えるんじゃないかな。 コード…

face.comの顔認識APIは二次元キャラの夢をみるか?

はじめに face.bomの顔認識APIは二次元キャラの顔を判断できるのか試してみた。 なんでこんなことするかって?うん暇なんだ。 サンプルとして4chanから適当にクローリングして集めた、顔が描かれている二次元画像623枚を使った。 結果 顔認識できたのは68枚…

js-model チュートリアル

js

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

Content ScriptでJSONPは使えない

Content Scriptから見えるwindowはWebページから見えるwindowとは異なる。 このため、Content ScriptでJSONPを使用しコールバック関数にContent Script内で定義した関数を指定すると、関数が見つかりません的なエラーになる。JSONPのコールバック関数はWebペ…

Calil×BookMeter

図書館蔵書検索サイト・カーリルと読書メーターをマッシュアップしたExtension「Calil×BookMeter」を作った。 読書メーターに登録した「読みたい本」の図書館での貸出状況を調べることができるよ。 こんな感じさ。