なっく日報

技術やら生活やらのメモ

SyntasticでVim上のエラーと警告を見やすくする

http://usevim.com/2016/03/07/linting/ から得た情報なんですが。 Syntasticの設定で、 ↓のようにするとサイドバーのエラー箇所が絵文字でいい感じで出るはず(自分の環境のiTerm2だとだめで、ターミナルだといけた) set statusline+=%#warningmsg# set st…

expressでkoa.js的な感じに書く方法

koa.jsがあるので、世の中で需要があるかわかりませんが、そういう方法もあるというご紹介。 generatorを使って、同期風に書く方法があるかというお話です。 方法1 co-expressを使う。 github.com こんな感じでソースが書けます。 var fs = require('mz/fs')…

node-mongodb-nativeのAPM(Application Performance Monitoring)のメモ

node-mongodb-nativeのv2からAPM(Application Performance Monitoring)が入ったそうなので、メモっておきます。 APMとは何か? Mongoドライバにいい感じにフックをかけて、モニタリングできるようにしたAPIです。 ココに仕様が github.com Node.js版ドライバ…

JavaScriptのコード品質を可視化する

いきなり結論から言ってしまうと、 platoを使うのがよいでしょう。 github.com platoとは JavaScriptのコードの品質を数値化&可視化してくれるツールです。 blog.asial.co.jp 結構前の記事になりますが、↑の記事がわかりやすいですね。 ↓のような数値が見ら…

monorepo構成のリポジトリでGitのフックスクリプトを仕掛ける方法

今担当しているプロジェクトで、monorepo構成を試しているのですが、 Gitのフックスクリプトを仕掛けるいい方法は何かないか?と思い、調べてみました。 ちなみに、monorepoって何?という方は↓を見てください。 yukidarake.hateblo.jp monorepoのプロジェク…

主人が英語の勉強を始めて60日が過ぎました

yukidarake.hateblo.jp の続き、経過報告です。 引き続きこのタイトルで押し通すことにしますw 方針の転換 roundsquaretriangle.web.fc2.com というサイトを発見したのですが、 英語は言語であり、音声こそがその実体であるという当然の認識にまず立ってくだ…

eslint_d.jsでESLintを爆速にする

github.com いうものがあるのを知りました。 eslint_dというプロセスを常駐させて、ESLintを爆速にするものらしい。 公式ドキュメント曰く、 Yes, it's actually super fast. But the node.js startup time and loading all the required modules slows down…

IdeaVim + JISキーボードで<C-[>を押した際の挙動が変

Vim教からIDEA教への改宗を試みているのですが、その際嵌ったことのメモ。 なお、当方JISキーボードです(これは宗派というよりは成り行きです) 現象 <ESC>キーではなく、<C-[>でエスケープする派なのですが、エスケープできない 解決法 qiita.com が大変参考になりま</c-[></esc>…

ESLintでextendsする設定を動的に変更する

※ 追記:よくよくドキュメントを見てみたら、-c airbnbみたいにオプションでESLintの共有設定の指定もできるそう。なので、この記事は本当に参考程度に。 どこまで使えるかは知りませんが、一応こんなこともできるよというメモ。 github.com ↑みたいな感じで…

2つのESLintの共有設定を見比べる

※追記1:jsondiffpatchを使った方法の方がちゃんと差分を見るにはいいかも ※追記2:--no-eslintrcを足した方が安全(カレントディレクトリにある.eslintrcを読み込まないので) 最初の案 eslint-config-aとeslint-config-bがあるとして .eslintrc-a.yml root…

gitの不要なローカルブランチを一括削除

gutch.hatenablog.com の記事を参考に git branch --merged | grep -v '*' | xargs -I % git branch -d % にて。 現在いるブランチ以外のマージ済みブランチが消えます。 ちなみに、xargsの-I %というオプションを初めて知りました。 これはリプレイサーとし…

yield*って何?

ESLintの↓のルールで初めて知ったのですが、 eslint.org yield*について調べてみました。 何? developer.mozilla.org によれば The yield expression iterates over the operand and yields each value returned by it. The value of yield expression itse…

Node.jsでThreadLocal変数的なやつ2

Node.jsでThreadLocal変数的なモノがないか?ということを再度調べたメモ書きです。 以前、調べた結果は↓。 yukidarake.hateblo.jp 調査メモ 以前調べたnode-continuation-local-storageは健在 github.com Googleの人が作っているzone.jsというモノがある an…

package.jsonのpeerDependenciesについて調べた

諸事情で、peerDependenciesの挙動について調べる機会があったのでそのメモを。 どういう場合に使うのか? https://docs.npmjs.com/files/package.json#peerdependenciesdocs.npmjs.com なんやかんやで、結局公式ドキュメントが一番参考になりました。 In so…

ローカルにインストールしたNodeモジュールのコマンドにPATHを通す

ロ〜ング休暇のため、更新滞ってましたが、本日から再開します。 グローバルやめたい eslint.org お休み中にESLint v2.0.0がリリースされたので、プロジェクトのESLintの設定を修正していたときのこと。 自分はVimをエディタとして使っているので、定番のsyn…

enzymeはReactコンポーネントのユニットテストに使えるかもしれない

時間がないので、ご紹介だけ。 github.com というのを同僚のプロジェクトのpackage.jsonで見かけました。 ↓な感じにReactコンポーネントテストが書けると。 import { shallow } from 'enzyme'; import sinon from 'sinon'; describe('<MyComponent />', () => { it('renders</mycomponent>…

zshの起動を高速化する方法

ネタがないので、昔こんなことをやってzshの起動を高速化したよというのを共有したいと思います。 計測 〜が遅いという場合、プロファイリングするのが定石ですね。 http://blog.uu59.org/2013-06-01-zsh-optimize.html という素晴らしい記事を参考に、 ボト…

女心と秋の空とR e d u x

移ろいやすい?ということでこのタイトルにしてみましたw 本日気づいたReduxとその周辺プロダクトの情報なんですが、この記事の内容も数カ月後には陳腐化していることでしょう SEO的に引っかからないように半角スペースを入れるという配慮もしてみましたw red…

bulkifyを使ってモジュールが増えた場合の設定を自動化する

本日の記事はメモレベルなので、参考程度に。 昔Qiitaで書いたのですが、(もう内容は古い) qiita.com browserifyを使っていて、ファイルが増える度手動でimportして、設定を追加するのは面倒なので、自動化したい場合にbulkifyが使えます。 github.com 例…

@authorをソースコードの冒頭に書くのはやめた方がいいかも

※ タイトルと本文の「行頭」を「冒頭」に修正 特にJavaのプロジェクトとかだとそうだと思うんですが、 ソースコードの行頭冒頭に↓みたいに書くことが多いかと思います。 /** * 何かのクラス * * @author Yuki Darake <nac@example.com> */ だがしかし、この@authorの部分は不</nac@example.com>…

mongo shellは一行あたり4096バイトまでしか読み取れない

こちらにissueがあがってますが、MongoDB v1.9(2011年初頭)くらいから存在している由緒正しい問題のようです。 [SERVER-13980] Interactive shell truncates line input longer than 4096 bytes - MongoDB Jira 再現コード aaaaaaaaの長さは4087文字以上。…

longjohnで非同期処理時に発生したエラーを追う

本日、同僚からよくわからんエラーがあるので、ちょっと見て欲しいと言われ、その際に使ったテクニックの共有を。 なお、エラーが発生していたのはNode.jsで書かれたコードです。 使ったモノ コレ github.com 同様のライブラリとして、 https://github.com/t…

【徒然】各言語でqw演算子的に書く

Jenkinsを触って、maven(!)を触って、シェルスクリプト触って、Jenkinsを触って、シェルスクリプト触って・・・ という微妙な一日でございました。 アレルギーはなくなったものの、シェルスクリプトは相変わらず不慣れです。 が、for文はググらなくても使え…

JSONの差分を見たいならjsondiffpatchが便利

昨日はいろいろと忙しくブログを書けませんでした 本日はJSONの差分をいろいろと見たので、その際に使ったテクの共有をば。 jsondiffpatch コレ。 github.com 便利です。 CLIとして使うなら インストールして npm i -g jsondiffpatch このJSONに対して // a.…

VagrantのSynced Foldersを高速化したいなら

本日は左手首が痛く、気力がないので、個人メモレベル。 riatw.me だそう。 brew cask update brew cask install virtualbox vagrant しておきました。 あとNFSにするのも速くなるそうですが、こちらは後日試す。 http://hamatte-wataru.com/vagrant_nfs/ham…

grep的なツール2016

超雑なエントリですが、書キノコしておきます。 grepするのに 普段はgrep的なコマンドとして、agを使っています。 GitHub - ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster. 最近、v2にバージョンアップして、高速になったp…

fluentdのtail input pluginのposファイルは1つでいい

雪でしたがバッチリ出勤しました 本日もfluentdを触ってましたが、ちょっとしたメモ。 http://docs.fluentd.org/articles/in_taildocs.fluentd.org ↑のtail input pluginではpath /path/to/%Y/%m/%d/*みたいなフォーマットが使えます。 したがって、1つのsou…

fluentdでINSERT先のMongoDBのコレクションを動的に変更する

昨日の続きです。時間がないので、雑なメモ書きとなっております。 実現したかったこと timeというフィールドにUnix time(ミリ秒)が入っているJSONをMongoDBに突っ込む 1時間毎に突っ込む先のコレクションを変える { "_id": "hogehoge", "time": 14528591274…

fluentd経由でlogをMongoDBに突っ込む

諸事情により、fluentd経由でlogをMongoDBに突っ込むのを試してみたので、そのメモ(人生初。最近多い) 1時間程度しか触ってないし、個人的なメモなので、ツッコミどころあればコメントしてください(おてやわらかに) なお、インストールしたのはFluentd v…

coをasync.parallel的に動かす

ちょっと時間がないのでさっくりと。 DBは毎度おなじみのMongoです。 コード 'use strict'; const co = require('co'); const MongoClient = require('mongodb').MongoClient; const MONGO_URL = 'mongodb://localhost:27017/test'; co(function* () { const…