読者です 読者をやめる 読者になる 読者になる

ikemonn's blog

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

SRM 647 Div2 250 PeacefulLine

問題文 TopCoder Statistics - Problem Statement 書いた class PeacefulLine: def makeLine(self, x): counter = collections.Counter(x) count_arr = [] for word, cnt in counter.most_common(): count_arr.append(cnt) is_continue = True while is_cont…

SRM 642 Div2 250 ForgetfulAddition

問題文 https://apps.topcoder.com/wiki/display/tc/SRM+642 書いた class ForgetfulAddition: def minNumber(self, expression): num = str(expression) res = 0 for i in xrange(1, len(num)): sum_num = int(num[:i]) + int(num[i:]) if res == 0: res = …

SRM 639 Div2 250 ElectronicPetEasy

問題文 https://apps.topcoder.com/wiki/display/tc/SRM+639 書いた class ElectronicPetEasy: def isDifficult(self, st1, p1, t1, st2, p2, t2): first = [] for i in xrange(t1): first.append(st1+(p1*i)) second = [] for i in xrange(t2): second.appe…

SRM 638 Div2 250 NamingConvention

問題文 https://community.topcoder.com/stat?c=problem_statement&pm=13521 書いた class NamingConvention: def toCamelCase(self, variableName): while variableName.count('_') > 0: replace_char_index = variableName.index('_') variableName = vari…

SRM 636 Div2 250 GameOfStones

問題文 Limak has found a large field with some piles of stones. Limak likes perfection. It would make him happy if every pile had the same number of stones. He is now going to move some stones between the piles to make them all equal. Howe…

SRM 635 div2 250 IdentifyingWood

Problem Statement We call a pair of Strings (s, t) "wood" if t is contained in s as a subsequence. (See Notes for a formal definition.) Given Strings s and t, return the String "Yep, it's wood." (quotes for clarity) if the pair (s, t) is w…

【vim】vim <tab>で ファイル名を補完しようとすると、エラーが出る時の解決方法

vim

症状 oh-my-zshを入れたあとに、vim でTabを使ってファイル名を保管しようとすると_vim_files: function definition file not foundというエラーがでる。 解決方法 # 下記のファイルのあとに自分のMacの名前が付いていることがあるので、ls -la等のコマンド…

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

jashkenas/underscoreの_.matcherを読んだ。 概要 _.matcher(attrs) 引数の「key : val」と同じものがあるかを判別する部分適用した関数を返す。 var matcher = _.matcher({age: 20, sex: "male"}); console.log(matcher({age: 20, sex: "male", country: "J…

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

jashkenas/underscoreの_.omitを読んだ。 概要 _.omit(object, *keys) 第1引数から第2引数以降で指定したkey値以外のkey値とその値で構成されたObjectを返す。 var x = _.omit( {age: 20, sex: "male", country: "JP", name: "HOGA"}, ['age', 'sex']); cons…

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

jashkenas/underscoreの_.pickを読んだ。 概要 _.pick(object, *keys) 第一引数から第2引数以降で指定したkey値とその値で構成されたObjectを返す。 var x = _.pick({age: 20, sex: "male", country: "JP", name: "HOGA"}, 'age', 'country'); console.log(x…

AtomでXcodeのようにcmd-shift-jで、現在開いているファイルをTree View上で見つける

Atom -> 個人設定 -> Keybindings -> “your keycap file” で下記を追記すればOK。 # 現在開いているファイルをTreeViewで指定する '.platform-darwin': 'cmd-shift-j': 'tree-view:reveal-active-file'

【Underscore.js】_.extendと_.extendOwnを読んだ

jashkenas/underscoreの_.extendと_.extendOwnを読んだ。 概要 _.extend(destination, *sources) _.extendOwn(destination, *sources) extend: sourcesに含まれている全てのプロパティ(プロトタイプを含む。)をdestinationにコピーしたものを返す extendOw…

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

jashkenas/underscoreの_.mapObjectを読んだ。 概要 _.mapObject(object, iteratee, [context]) objectの各値に第2引数で指定した関数を適用した第1引数を返す。.mapは値の配列を返すが、.mapObjectはオブジェクトを返す。 _.mapObject({age: 20, score: 50}…

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

jashkenas/underscoreの_.throttleを読んだ。 概要 _.throttle(function, wait, [options]) functionを一度目は即時実行して、二回目以降はwaitミリ秒待ってから実行する関数を返す。waitミリ秒までに複数回関数を実行しようとしても、最後に受け付けた関数…

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

jashkenas/underscoreの_.deferを読んだ。 概要 _.defer(function, *arguments) ``` 現在のコールスタックがクリアされたあとに、functionを実行させる。 setTimeoutを0msで実行するのと似ている。 処理が重い計算や、HTMLのレンダリング等に使うと便利。 co…

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

jashkenas/underscoreの_.memoizeを読んだ。 概要 _.bind(function, object, *arguments) 一度計算した値をキャッシュしておく機能を関数に付け加える。 var num = 40; var fib = function(n) { return n < 2 ? n : fib(n - 1) + fib(n - 2); }; console.tim…

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

jashkenas/underscoreの_.sortedIndexを読んだ。 概要 _.sortedIndex(list, value, [iteratee], [context]) ソートされているlistに対して、valueがどの位置に入るかを返す。 _.sortedIndex([10, 20, 30, 40, 50], 35); // 3 ソースコード _.sortedIndex = f…

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

jashkenas/underscoreの_.zipを読んだ。 概要 _.zip(*arrays) 引数である各配列のindex値の値をまとめた配列を作る。返される配列のlengthは引数の中で1番長いlengthを持つ配列と同じ長さになる。 var x = _.zip(['moe', 'larry', 'curly'], [30, 40, 50], […

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

jashkenas/underscoreの_.uniqを読んだ。 概要 _.uniq(array, [isSorted], [iteratee]) arrayの各値の中で同じ値があった場合、1つだけにされ各値が重複のない配列として返される。配列がソートされている際に、isSortedをtrueにするとより高速に動作する。 …

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

jashkenas/underscoreの_.intersectionを読んだ。 概要 _.intersection(*arrays) 第一引数の配列の各値の中で、第二引数以降のすべての配列に含まれている値を返す。 var x = _.intersection([1, 10, 10, 3], [3 ,190, 10], [1, 545, 3, 10]); console.log(x…

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

jashkenas/underscoreの_.unionを読んだ。 概要 _.union(*arrays) 引数で与えられた配列を一つにまとめる。 その際に重複した値は削除され、重複した値がない配列となって返される。 var x = _.union([1, 10, 10, 3], [3 ,190]); console.log(x); // [1, 10,…

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

jashkenas/underscoreの_.withoutを読んだ。 概要 _.without(array, *values) arrayからvaluesを除いた配列を返す。 var list = [1, 10, 7, 190, 43]; var x = _.without(list, 7, 43 ,190); console.log(x); // [1, 10] ソースコード _.without = function(…

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

jashkenas/underscoreの_.flattenを読んだ。 概要 _.flatten(array, [shallow]) 入れ子になっている配列を、一次元の配列に変換する。 shallowがtrueの時は、一つだけ入れ子をなくす。 list = [1, 10, 7, [190, 43], [[1]]]; var x = _.flatten(list); conso…

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

jashkenas/underscoreの_.compactを読んだ。 概要 _.compact(array) 配列の中のfalsyな値(false, null, 0, "", undefined, NaN)を除いて返す。 var list = [0, null, undefined, 1, 2, "null", "", NaN]; var x = _.compact(list); console.log(x); // [1, 2…

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

jashkenas/underscoreの_.initialを読んだ。 概要 _.initial(array, [n]) 末尾からn個を除くすべての配列の要素を返す。 nが指定されていない時は、arrayの最後の要素以外のすべてを返す。 var list = [1, 10, 7, 190, 43]; var x = _.initial(list); consol…

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

jashkenas/underscoreの_.partitionを読んだ。 概要 _.partition(array, predicate) listをpredicateを満たすものと満たさないものの2つ配列に分割して返す。 var list = [1, 10, 7, 190, 43];var x = _.partition(list, function(num) { return num % 2 ===…

【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/…