ikemonn's blog

技術ネタをちょこちょこと

2015-10-01から1ヶ月間の記事一覧

【Underscore.js】_.toArrayを読んだ

jashkenas/underscoreの_.toArrayを読んだ。 概要 _.toArray(list) listを配列にして返す。 var list = {age: 20, sex: "male", country: "JP", name: "hoge"}; var x = _.toArray(list); console.log(x); // [20, "male", "JP", "hoge"] ソースコード _.toA…

【Underscore.js】_.sampleを読んだ

jashkenas/underscoreの_.sampleを読んだ。 概要 _.sample(list, [n]) listからn個のランダムな値を取り出す。nが指定されない時は1つ取り出す。 var list = [1, 4, 15, 200, 3]; var x = _.sample(list); console.log(x); // 4 ソースコード _.sample = fun…

【Underscore.js】_.groupByを読んだ

jashkenas/underscoreの_.groupByを読んだ。 概要 _.groupBy(list, iteratee, [context]) listの各要素をiterateeを使ってグルーピングする。 iterateeが関数でない場合は、そのプロパティの値ごとにグルーピングする。 var list = [ {age: 20, sex: "male",…

【Underscore.js】_.sortByを読んだ

jashkenas/underscoreの_.sortByを読んだ。 概要 _.sortBy(list, iteratee, [context]) listの各要素をiterateeを使って評価した順にソートし、返す。 iterateeはプロパティの名前でも良い。 var list = [ {age: 22, sex: "male", country: "US", name: "fug…

【Underscore.js】_.maxを読んだ

jashkenas/underscoreの_.maxを読んだ。 概要 _.max(list, [iteratee], [context]) listの中の最大値を返す。 iterateeに関数が与えられると、その返り値が比較基準になる。 リストが空だと-Infinityが返るので、isEmptyを使って判定すること。 var list = […

【Underscore.js】_.pluckを読んだ

jashkenas/underscoreの_.pluckを読んだ。 概要 _.pluck(list, propertyName) listの中のpropertyNameで指定したプロパティの値を取得して配列で返す。 mapのよく使われる用途のラッパー。 var list = [ {age: 20, sex: "male", country: "JP", name: "hoge"…

【Underscore.js】_.invokeを読んだ

jashkenas/underscoreの_.invokeを読んだ。 概要 _.invoke(list, methodName, *arguments) 入れ子構造になっている配列の各要素の配列に対して関数を実行する。 _.invoke([[1, 4, 5, 2, 3], [10, 30, 20], [100, 78]], 'shift’); // [1, 10, 100] ソースコー…

【Underscore.js】_.containsを読んだ

jashkenas/underscoreの_.containsを読んだ。 概要 _.contains(list, value, [fromIndex]) listにvalueがあればtrueを返す。 _.contains([1, 2, 3], 3); // true ソースコード _.contains = _.includes = _.include = function(obj, item, fromIndex, guard)…

【Underscore.js】_.someを読んだ

jashkenas/underscoreの_.someを読んだ。 概要 _.some(list, [predicate], [context]) listの値をpredicateに渡し、trueになるものがあればtrueを返す。 var list = [1, 2, 3, 4, 5]; var x = _.every(list, function(n) { return n > 3; }); console.log(x)…

【Underscore.js】_.everyを読んだ

jashkenas/underscoreの_.everyを読んだ。 概要 _.every(list, [predicate], [context]) listの値をpredicateに渡した時に、すべてtrueであればtrueを返す。 var list = [1, 2, 3, 4, 5]; var x = _.every(list, function(n) { return n > 0; }); console.lo…

【Underscore.js】_.rejectを読んだ

jashkenas/underscoreの_.rejectを読んだ。 概要 _.reject(list, predicate, [context]) listの中で、predicateがfalseになる要素の配列を返す。 _.filterの反対のことをする関数。 var list = [1, 2, 3, 4, 5]; var x = _.reject(list, function(n) { retur…

【Underscore.js】_.findWhereを読んだ

jashkenas/underscoreの_.findWhereを読んだ。 概要 _.findWhere(list, properties) propertiesの中にあるkey-valueが含まれるもの中で、listの中の一番最初のものを取得する。 var list = [ {age: 20, sex: "male", country: "JP", name: "hoge"}, {age: 22…

【Underscore.js】_.whereを読んだ

jashkenas/underscoreの_.whereを読んだ。 概要 _.where(list, properties) propertiesで与えられたkey-valueが含まれるすべての要素をlistの中から取得する。 var list = [ {age: 20, sex: "male", country: "JP", name: "hoge"}, {age: 22, sex: "male", c…

【Underscore.js】_.filterを読んだ

jashkenas/underscoreの_.fliterを読んだ。 概要 リストを走査し、渡した関数がtrueとなる要素のリストを返す。 var list = [1, 2, 5, 6, 7]; // var list = {age: 1, score: 30, test: 88}; var x = _.filter(list, function(num){ return num % 2 === 0; }…

【Underscore.js】_.findを読んだ

jashkenas/underscoreの_.findを読んだ。 概要 リストを走査し、渡した関数がtrueとなる最初の要素を返す。 条件を満たす要素がない場合はundefinedを返す。 trueとなる要素が見つかった時点で、リストの走査は終わる。 var list = [1, 2, 5, 6, 7]; var eve…

【Underscore.js】_.reduceを読んだ

概要 リストの要素を一つの値にまとめていく。 引数のmemoは初期値。 iterateeが実行されたあと、その値をメモ化しておき、リストのindex番目の値とともにiterateeに渡し、各値を処理する。 var list = [1, 2, 3]; var sum = _.reduce(list, function(memo, …

【Underscore.js】_.mapを読んだ

jashkenas/underscoreの_.mapを読んだ。 概要 第一引数で与えられたものの値に対して、第二引数の関数を実行してその結果の配列を返す。 var list = [2, 3, 4]; var x = _.map(list, function(n){ return n *= 3; }); console.log(x); // [6, 9, 12] var lis…

【Underscore.js】_.eachを読んだ

jashkenas/underscoreの_.eachを読んだ。 概要 第二引数で指定した関数に第一引数の配列やオブジェクトの各要素を引数として渡して、実行する。 var x = _.each([1,2,3], function(num){ console.log(num); }); // 1 // 2 // 3 ソースコード _.each = _.forE…

【Underscore.js】_.shuffleを読んだ

jashkenas/underscoreの_.shuffleを読んだ。 概要 Returns a shuffled copy of the list, using a version of the Fisher-Yates shuffle. Fisher–Yates shuffleを用いて、シャッフルされたリストのコピーを返す。 x = _.shuffle([1,2,3]); console.log(x); /…

Code Readingを読んだ 1章

本書を読む目的 他人の書いたコードを早く理解して、修正を加えられるようになりたい 自分の書き方をもっと洗練させたい 設計が苦手なので、既存のコードから読み取れるようになりたい はじめに 他人の作品を読まなかった偉大な作家、他人の筆使いを研究しな…

【Node.js】Vagrantとsupervisorでファイル更新後自動でプロセスを再起動させる

概要 Vagrantを使っており、ホスト側(Mac等)のファイルを変更したら自動でプロセスが再起動してほしい nodemonだと-Lオプションでできるが遅いらしい Usage with Vagrant · Issue #146 · remy/nodemon supervisorをつかって、ホスト側のファイルを変更したら…

Stack Overflow 10月「DevDays」に行ってきた

Stack Overflow 10月「DevDays」に行ってきました。 Stack Overflow社では開発者の力になれることは何でもやろうと考えています。その一つとして、開発者のみなさんが主役のイベントの開催を計画しています。 日本の開発者と意見交換しアイデアを聞くため、…

【Node.js】Express4.13.1でHTTPのPUT,DELETEメソッドを処理する

概要 HTMLのformにinput type="hidden"でname=“_method”, value=“put(delete)”を指定する method-overrideとbody-parserをインストールしておく method-overrideをapp.useする時に一工夫する 手順 formにhidden属性のinputを加える(index.ejs) <form class="" action="/posts/<%= i %>" method="post"> <input type="submit" name="name" value="delete"> </form>

【Node.js】ottoでExpressの環境を作る

きっかけ ottoでSymfony2を構築してみちゃったを読んで、Expressで試してみた。 ottoのDL 適当なディレクトリにダウンロードしてきて解凍すればOKです。 ~/binをmkdirして置きました。 $ cd ~/bin $ wget -qO- -O tmp.zip https://dl.bintray.com/mitchellh/…

【Node.js】HTTPクライアントの概要

3つのクラス HTTPクライアントを実装する際には次の3つのクラスについて理解することが必要 http.ClientRequest HTTPクライアントからHTTPサーバへ送信リクエストヘッダ及びボディを扱うクラス http.ClientResponse HTTPクライアントがHTTPサーバから受信し…

【Node.js】httpのエコーサーバを実装してみる

処理のざっくりした流れ http.ServerがHTTPサーバ機能を実現するサーバオブジェクトを生成する HTTPクライアントからサーバへのHTTPリクエストが送信される http.Serverはrequestイベントを発生させる 受信したリクエスト情報を持つ、http.ServerRequestとHT…

【Node.js】イベントループの仕組み

概要 Nodeのイベントループは文字通りwhieで行われている ループ処理はI/Oイベントの処理(リクエスト)の実行時やI/Oイベントの発生を待つオブジェクト(ハンドル)の登録時に維持される 例えば下記のコードはハンドルやリクエストが何も登録されていないので、…

【Node.js】イベントの作成と利用

概要 Node上ではイベント自体を定義して、それを任意のタイミングで発生させ、そのイベントに応じたプログラミングができる。 処理の流れは下記 イベントを発生するオブジェクトを作成する イベント発生時の処理関数を作成する イベントを定義する 任意のタ…

node inspectorを使ってデバッグする

手順 $ npm install -g node-inspector $ node --debug [デバッグしたいファイル] $ node-inspector node-inspectorを実行すると下記のようなログが出るので、表示されているURLにChromeでアクセス(下記の場合はhttp://127.0.0.1:8080/?ws=127.0.0.1:8080&po…

Node.js 4.0.0をEl Captianにinstall(zsh)

手順 $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.27.1/install.sh | bash $ nvm alias default v4.0.0 # 下記の設定をzshrcに追記 $ vim ~/.zshrc ↓追記内容 [[ -s (自分のホームディレクトリ)/.nvm/nvm.sh ]] && . (自分のホームディ…