JavaScript

underscore.js/lodash.jsのcomposeでハマった

a = _.compose( (v) -> String(v).toLowerCase() (v) -> String(v).toUpperCase() ) a 'Hi!' # => 'hi!' 後方から前方の関数に向かって処理が走るのか!

underscore.js/lodash.js

JavaScriptで学ぶ関数型プログラミング作者: Michael Fogus,和田祐一郎出版社/メーカー: オライリージャパン発売日: 2014/01/18メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見るJavaScriptで学ぶ関数型プログラミングを読んで(全部読ん…

JavaScriptで学ぶ関数型プログラミング 第1章〜第7章

JavaScriptで学ぶ関数型プログラミング作者: Michael Fogus,和田祐一郎出版社/メーカー: オライリージャパン発売日: 2014/01/18メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見るこの本、自分にはスキル的にちょっと早すぎた感があるかも…

技術書を買った

JavaScriptで学ぶ関数型プログラミング作者: Michael Fogus,和田祐一郎出版社/メーカー: オライリージャパン発売日: 2014/01/18メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見るとすべての人に知っておいてほしい スタイルシートデザイン…

名簿の並べ替えをやってみよう

https://codeiq.jp/ace/yanai_masakazu/q528 実行速度とか考えずに、パッパっと書いたコードです。 function yourCode(obj, key) { // 漢字と読みのペアを読みでソートします var pairs = getPairs_(obj.kannji, obj.yomi).sort(function(a, b) { return a.y…

DocumentFragment

要素をループでappendChildするよりも、DocumentFragmentとかを使った方が速いよーとCodeIQのフィードバックでもらったのですが、DocumentFragmentってなんぞやという状態だったので調べつつ試しに書いてみました。 index.html <meta charset="utf-8"> <title>DocumentFragment</title> <ul id="list"></ul> <script src="index.js"></script> index.js</meta>…

ドットインストール AngularJS入門

より。 backbone.jsとknockout.jsを少しやってみて、angular.jsもちょっと気になったのでドットインストールで勉強してみたり。 なんかこう、未だにMVCってよくわかってないんだけど(Viewだけはわかる、かな)尚更わからなくなった感じ。 jQueryだけでごち…

knockout.jsの練習

backbone.jsの勉強をしようと思っていたのだけど、今作ろうとしている物に対しては大きすぎるという感じがしたので、knockout.jsも勉強することに。 knockout.jsはbackbone.jsよりも軽量っぽい。てかMVVMだからそもそもbackbone.jsと違うアプローチのライブ…

CodeIQの「Restricted Words」を解いたよ

https://codeiq.jp/ace/cielavenir/q431をJavaScriptで解きました。ObjectPascalでも解こうと思ったのですが、FreePascalをインストールするのが面倒だったので諦めました。 #!/usr/bin/env node console.log(function() { /* * H - 72 - 1001000 - IOOIOOO …

試して学ぶBackbone.js入門1〜4

Backbone.js使えるようになるべく、試して学ぶBackbone.jsを読みながら試してみました。 JavaScript | Knowledge Note 試して学ぶ Backbone.js入門 | Knowledge Note 試して学ぶ Backbone.js入門2 | Knowledge Note 試して学ぶ Backbone.js入門3 | Knowledge…

ltsv.js ver.0.7.0

ltsv.jsを0.7.0にバージョンアップ、ブラウザでも動作するようにしました。ストリームだけは動作しませんが。 npmとbowerでインストールできます。 正直、ブラウザで動作してなにか嬉しい事あるの……という風には思ってたりします。 今まではnode.js専用だっ…

ClosureLinterが落ちてしまうとき

普段、JavaScriptのコードをlintするときはClosureLinterを使っているのですが、何故か実行できずに失敗して落ちてしまう原因がわかったのでメモしておきます。 index.js ;(function() { // ... }()); 上記のようなスクリプトを用意します。 で、以下のよう…

CodeIQの「はてなインターンの課題を解いてみよう」を解いたよ

http://codeiq.hatenablog.com/entry/2013/08/08/115705を解きました。CodeIQの「複数書式が混在するログをやっつける」を解いたよ - 四角革命前夜の前に書くはずだったのだけど、すっかり忘れてた。 リポジトリはGitHub - hatena/Hatena-Intern-Exercise201…

CodeIQの「複数書式が混在するログをやっつける」を解いたよ

http://codeiq.hatenablog.com/entry/2013/08/19/122201を解いたのでせっかくだしコードを置いておこうかなーと。というわけで私が「Node.jsが1名ということで」の1名なのでした。ついでに「全体を一気にparseする正規表現を用意派」です。 node.jsで書くに…

「オラにじぇじぇじぇなコードを書いてくんろ!」のやつ

http://codeiq.hatenablog.com/entry/2013/08/06/121542 せっかく書いたので、一応ここにも書いておこうかと。言語は現時点で一番得意なJavaScript/node.jsで。 まあ、どちらもあまり綺麗なコードではないのだけど…… rev3 #!/usr/bin/env node console.log(f…

はじめてのエラトステネスのふるい / アルゴリズムを、はじめよう 第11章

第5章まで進んだので、第6章のハッシュ探索法をやる……つもりが諸事情により第11章のエラトステネスのふるいをやることに。 基本的にこの本とWikipediaを参考に書いたのだけど、「平方」の意味がわからなくて困ったという情けなさ…… これ、何回もループするか…

はじめてのバイナリサーチ / アルゴリズムを、はじめよう 第1章〜第5章

アルゴリズムを、はじめようを読んでみたメモ。アルゴリズムとか苦手なんですけど、避けていてもよくないなあと思っていたところ、平易な説明をしてくれている本を見つけたので頑張って書いてみたのですよ。アルゴリズムを、はじめよう作者: 伊藤静香出版社/…

new付け忘れ防止クラス

あー、たまに見るなーと思ったコード。 function Aaa() { if (!(this instanceof Aaa)) { return new Aaa(arguments); } } この関数を呼ぶとき、newを付けていようが付けていまいが同じ動作になる。 でもJavaScript Ninjaの極意にもあったけどそれってうれし…

JavaScript Ninjaの極意とJavaScriptデザインパターンを少し読んだよ

JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング (Programmer's SELECTION)作者: ジョン・レシグ,John Resig,ベア・ビボー,Bear Bibeault,勝亦勇,吉川邦夫出版社/メーカー: 翔泳社発売日: 2013/05/25メディア: 大型本この商品を含むブログ…

ゼロパディングその2

なんか昔に書いたゼロパディングする関数を書き直したくなったので書いてみた。 ちなみに、これ。http://d.hatena.ne.jp/sasaplus1/20110720/1311170750 #!/use/bin/env node function padding(value, column) { return (Array(parseInt(column, 10) + 1).jo…

メンテナブルJavaScriptを読んだよ

メンテナブルJavaScriptをやっと読みました。メンテナブルJavaScript ―読みやすく保守しやすいJavaScriptコードのための作法作者: Nicholas C. Zakas,豊福剛出版社/メーカー: オライリージャパン発売日: 2013/03/06メディア: 大型本購入: 7人 クリック: 31回…

ブラウザを使うプレゼンテーションの作り方

勉強会などに行くと、たまにブラウザを使って発表をする方がいらっしゃると思います。 発表する人によって使っているプレゼンライブラリだったり、デザインだったりが違ったりだとかすると思うのですが、 それ以外にもどうやって作ってるのかなーというのが…

Benchmark.jsでベンチマーク

ずっと前に使ったのだけど、メモもなにもして無くてコードが辛うじて残っていたのでめもめも。 benchmark.jsのインストール $ npm install benchmark node.jsだけじゃなく、RingoJSやRhinoでも動作するみたい。jsperfでも使われていたはずなので、当然ブラウ…

Effective JavaScriptを読んだよ

もう存在しない、日本語で書かれたウェブサイトの方ではなくて、最近発売された本の方です。Effective JavaScript作者: David Herman,吉川邦夫出版社/メーカー: 翔泳社発売日: 2013/02/19メディア: 大型本購入: 1人 クリック: 109回この商品を含むブログを見…

参照とか

ちょっとはまった。 function Aaa() { this.list = []; } Aaa.prototype.test = function() { var aaa = this.list; this.list = this.list.concat([1,2,3]); console.dir(this.list); console.dir(aaa); }; (new Aaa).test(); [ 1, 2, 3 ] []this.listはcon…

deep clone

http://javascript.about.com/od/objectorientedjavascript/a/oop17.htmを参考にちょっと書いてみた。 function clone(obj) { var clonedObject = {}, keys = Object.keys(obj), i = keys.length, value; for (; i--;) { value = obj[keys[i]]; if (value !=…

ドキュメントジェネレータ再訪

以前、JavaScriptのドキュメントジェネレータをいろいろ触ってみたりしたのですが、また必要になりそうなので3つほど触ってみたのでした。 JavaDoc系のコメントをばっちり書かないと駄目なやつは面倒なので避けたいなあと思いつつも(自分は別に良いのだけど…

blanket.jsの使い方がわからない

package.scripts.patternに指定する値が全然意味わからないので、とりあえず今は諦めた。 mochaと連携してるのが良いなあと思ったのだけどなあ…… Yahoo製のhttps://github.com/yahoo/istanbulというのも見つけたので、こっちも触ってみたい感じ。 ただまあ、…

Blanket.jsでコードカバレッジ

コードカバレッジを出力できるツールとか - 四角革命前夜で調べた後にBlanket.jsの存在を知ってちょっと使ってみたり。Blanket.js なかなかお手軽で良いので、それに関する記事を書こうと思ったのだけどpackage.jsonに書くscripts.blanket.patternの指定がい…

短いコードでアイドルの水着画像を取得するやつ?

外部ライブラリ不要で、たった一つのツイートに納まる長さのコードでひたすらアイドル水着画像を集める - uzullaがブログがなんか面白そうだったので、JavaScriptとCoffeeScriptで。というかnode.jsで。 でもRubyとかと比べたら短さでは勝てない……ぐぬぬ。 …