jest が watchman
を必要としているらしいので install するとエラーメッセージが出なくなった
% brew install watchman
jest が watchman
を必要としているらしいので install するとエラーメッセージが出なくなった
% brew install watchman
Ruby でいう to_a
のアレを JavaScript で書いてみた
function range(from, to) { return [...Array(to - from + 1).keys()].map(x => x + from) } console.log(range(0, 10)) console.log(range(3, 10))
出力結果
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] [ 3, 4, 5, 6, 7, 8, 9, 10 ]
range 関数の from, to のインターフェースなんですがどっちが一般的なんでしょう?
console.log(range(1, 10)) console.log(Immutable.Range(1, 10).toArray())
出力結果
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
今度誰かと会った時の話題にしよう
一度前の version に戻る
sudo n v6.x.x
npm update をする
npm update -g npm
もう一度 v7 に戻って npm update する
sudo n v7.x.x sudo npm update -g
たぶん直る
ansible やっていてこんなこと聞かれたらこんなタスクを追加しましょう
- name: install python passlib apt: "pkg=python-passlib state=installed"
Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user
とか言われた場合、ドキュメントには pipelining すればいいと書かかれているようです。
http://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user
ということで ansible.cfg に下記を追加すればいいんじゃないかな
[ssh_connection] pipelining = true
おしまい
DB インデックスを知らないエンジニアがいるらしいので啓蒙したいという話です。
DB のインデックス設計は HDD 使っている頃には最重要なスキルだった気がしますが、今の時代、エンジニアに求められる事が増えすぎているのでインデックスの事に関して知らない人(DBインデックスが起因する問題に出会ってない人)がいても不思議ではない気がします。
というわけで何故 DB インデックスを知らない人がいるのか?という事に関しては我々のようなおじさんエンジニアが伝えないといけいない事をちゃんと伝えていないからなんじゃないかと思いペンをとりました。
詳しい事は過去にそういう記事を書いたのでこちらを見てください...
http://okamuuu.hatenablog.com/entry/2013/02/23/005046
昔とある企業でいつも同じクエリーが遅いとインフラエンジニアから苦情が来るので解消してくださいと言われたので調べたら掲示板の全件取得にインデックスが効いてなかった事があります。
どうやら最初は index が効いていたようですが、後から delete_flg を追加するタスクが発生し、そのフラグのせいでフルーテーブルスキャンに変わってしまったようです。日時の経過にともないデータ量が増えてある日インフラチームから警告が発生した。という事だと思います。
上述のエントリーはそのタスクを解消したときの方法を紹介しています。
割とあるあるな話ではあると思いますが、こういう昔ながら話をもう一度してみると誰かの役に立つかもしれませんね。近年のWEB開発者は覚える事が多すぎて以外と知らない事が多いでしょうし。
そういえば 2017/5/27(土) にアットホームなカンファレンスが開催されるようです。昔あなたが困った事を発表したりすると誰かの役に立つかもしれません。
商談の時にコーディングテストがあったのですが解けなかったので復習
function invert(num) { let answer = 0 while (num > 0) { const rightNumber = num % 10 // num 1 の位を取得 num = (num - rightNumber) / 10 // num を位下げする answer = answer * 10 // answer を位上げする answer += rightNumber // 取得した1の位を付け足す } return answer } console.log(invert(12345)) // 54321 console.log(invert(12340)) // 4321 console.log(invert(12040)) // 4021 console.log(invert(12000)) // 21
ちなみに最初は下記のように一回文字列にするやり方で回答したのですが、「文字列にしないで解いて下さい」と言われました。要件を満たしているのに何故なんだろう...
function invert(num) { return parseInt((num + "").split("").reverse().join(""), 10) }