(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

CoffeeScript

EmacsでCoffeeScript書くときにC-mがインデント付き改行だったのが嫌だったので変更した。

たぶん、どのモード使っててもC-mって単純なnewlineのことが多いと思うんだけど、何を血迷ったのかcoffee-modeはC-mでインデント付きの改行を採用していていい加減ストレスがたまって仕方ないので変更することにした。 (add-hook 'coffee-mode-hook '(lambda…

Rails4でキャッシュが効いてしまって、304 not modified.が返ってきてしまうとき

やろうとしていることがそもそもRailsの書き方として間違っている気がしないでもないんだけど、ページを読み込んだ後にjQueryでコンテンツを表示したり隠そうとしたときにコンテンツが変更されていない場合キャッシュされてしまって、304 not modified.が返…

CoffeeScriptでProcessing.jsが書けるはずなので試してみた。

ほい。 JavaScript Quick Start | Processing.js の Writing JavaScript-only Processing.js code あたりを参照。まずHTML5でcanvasを用意します。 / Slim doctype 5 html head title "Processing.js Test" script src="processing.min.js" script src="jque…

JavaScriptのArray.prototype.filter()が最高にロックでドハマりした。

jQueryのfilterと全然違って泣きたいと思った。 最初、jQueryと同じだろって思ってこう書いていた。 coffee> array = [1..10] coffee> array.filter -> @ > 5 みたいな。filterの中の@(this)は評価対象だと思っていた。つまり、この場合だと1~10の値を期待し…

jQueryでチェックボックスの一覧からチェックのついてるやつだけ取り出すの。

$('input:checked') はぁ…jQueryのセレクタ一式勉強しよう。これ教えてもらうまで一生懸命$('input').filterとか書いてやってた…。しかも、全然取れなくて困ってた…。 ていうか、正規表現でセレクタ書けたら便利なのになーと思ったり思わなかったり。

アコーディオンパネルの実装

たまにはjQueryのお勉強。 jQueryの仕組み等々なんとなく理解出来てきているので、試しに実装してみた。HTMLこんな感じ(slimだけど)で書いておく。 #accordion .sub-title(data-target="#content_1") | アコーディオン1 #content_1.content .sub-title(data-…

JavaScriptのコンストラクタ関数の使い勝手が最高に良くないと思うので考察というか試行錯誤

JavaScriptのコンストラクタ関数が嫌いです。って話は前に少し書いた気がする。理由は単純にnewを書きたくない、というかnewの有無で意味が変わるってそもそも相当アレな気がするし、Booleanコンストラクタに至ってはnew使わない方がいいとか意味不明だし、…

CoffeeScriptでBrainf*ckを書いた

Rubyで作る奇妙なプログラミング言語を読んでいたら、書きたくなったのでRubyじゃなくてCoffeeScriptで書いた!! String.prototype.to_array = -> this.split('') brainf_ck = -> that = {} tokens = [] jumps = {} that.parse = (src) -> tokens = src.to_ar…

CoffeeScriptのcoffeeコマンドでファイル監視が出来るの知らなかった…

適当にCoffeeを書いて遊ぶときに、別にファイル監視ツールを別で用意するほどでもないけど、ちょっと何回もコンパイルするのめんどくさいなーって思ってたんだけど、coffeeコマンドにデフォルトでファイルの変更監視機能ついてた。。 coffee -w -o dest -c s…

開眼!JavaScriptを読んだ。

薄い本なので、さくっと読めました。とりあえず、どういう本かというと JavaScriptのデザインパターンや、JavaScriptによるオブジェクト指向プログラミングの本ではありません。良いJavaScriptの特徴を悪い特徴と区別しているものでもありません。JavaScript…

_.memoizeを読んだ。

読んだ。 普段からコードリーディングする方じゃないけど、メモ化の実装が気になったのでunderscore.jsのmemoize実装を読んだ。 // Memoize an expensive function by storing its results. _.memoize = function(func, hasher) { var memo = {}; hasher || …

JavaScript: The Good Partsを読んだ。

読みました。昔から苦手意識のあったJavaScriptだけど、この本を読むことによって面白い言語だなって思えるようになりました。 HaxeとかTypeScriptのようなaltJSだと、JavaScriptを勉強する意味があるのかわかりませんが、CoffeeScriptを書くなら普通にため…

JavaScriptのapply呼び出し

この前、Underscore.jsについて書いた。 Underscore.jsがちょっと便利だったので紹介してみる。 - (define -ayalog '()) このときzip関数を紹介していて、それの機能のひとつとしてzip.applyを紹介してしまった。 これ実はapply呼び出しという、JavaScriptの…

Underscore.jsがちょっと便利だったので紹介してみる。

数日前@naoiwata師匠に「JavaScriptにパターンマッチってないですよね?」って聞いていたら「Underscore.jsならあるかも」みたいなことをそそのかされたので少し触ってみた。Underscore.jsは関数型プログラミングをしたい人のための軽量ライブラリだという認…

JavaScriptもしくはCoffeeScriptの連想配列でkeyに変数を使いたい

簡単なTipsです。 _data = {} _data[key] = "value" みたいな。たったこんだけだけど、普通に書こうとするとできないので地味に大事。どうでもいいけど、「coffee」って日本語入力で打つと「こっふぇえ」ってなるので可愛い。

CasperJSをインストールして遊んだ

CasperJSというのが可愛いよ、と@naoiwata師匠より教えてもらったのでちょっとスクレイピングに使ってみたいと思います。 準備 Download | PhantomJS ここを参照しながら、まずはChasperJSが依存しているPhantomJSをインストールします。 $sudo apt-get upda…

Railsでフォームを非同期で送信して更新処理を行う

タイトルママです。 Railsアプリを書いていて、画面遷移を起こさずに更新処理を行って画面にも反映させたかったのでざっくりやってみた。*1例として適当に簡単なアプリケーションを作りたいと思います。 rails new test-app rails g model user name:string …

CoffeeScriptはじめました

Railsアプリケーションを書くときに、JavaScriptを書くことがある場合だいたいCoffeeScriptを書くことになると思います。ご多分に漏れず僕もCoffeeScriptを書くことになります。TypeScriptとかHaxeとか、altJS色々ありますけどRailsのエコシステムに端から組…