なっく日報

技術やら生活やらのメモ

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

本日使った技

まとまりがない。 Vim 某ログをMacVimに貼り付けて、見やすくするためにこんなコマンドを打ったの巻 長過ぎる行を切り詰める 140文字に :%s/\v^(.{140}).*/\1/ 不要な行を削除する グローバルコマンドにて ↓の例だとhogehogeが含まれる行を消す :g/hogehoge/…

zshで無名関数

qiita.com に書いてあることの受け売りなのですが、 (function() { var a = 1; console.log(a); })(); な感じで、zshでもスコープを狭めることができます。 () { local a=1 echo $a } 引数を渡すこともできる! ↓は (function(a, b) { console.log(a, b); })…

Vim小技

マニアックな小技。 カレントファイルのパスの一部を置換してファイルを開く vi foo.jsで開いている最中に、:vs %:s/foo/bar/ でbar.jsを縦分割で開ける。 これだけだとあまり有り難みないけど、 :vs %:p:s#foo#bar# とかだと/src/github.com/foo/aaa.jsから…

缶のことを「かんかん」と呼んでしまう私

関西人です🌞 www.weblio.jp ※本日はミーティングエンジニアのため内容ナッシング

estraverseを若干使いやすくする小技

生estraverseの問題 estraverseは素直に書くと ↓みたいになるのでif文が増えて結構見づらくなってきます。 estraverse.traverse(ast, { enter: function (node, parent) { if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration') re…

npm小ネタ3選

今日はなんか元気がないので、npm小ネタだけ。 npm i --link npm i --link のように--linkをつけるとグローバルにインストールしてnode_modulesにシンボリックリンクを貼ってくれるようになります。 eslintとかjshintとかdevDependenciesにあるような、どの…

esprima→escodegenで元のソースに復元されるか試してみた

escodegenを触ったことがなかったので試してみました。 変換コード 元のファイル(original.js) 'use strict'; var fs = require('fs'); var esprima = require('esprima'); var escodegen = require('escodegen'); var original = fs.readFileSync('./orig…

Moshを使っていてなぜかログを遡れない

現象 ローカルで起動したtmuxから、moshを使って、リモートのサーバにログインし、コマンドの出力結果をコピーモードにして遡ろうとしたら遡れない! 原因 mosh.mit.edu FAQに書いてました。 Q: Why is my terminal's scrollback buffer incomplete? Mosh 1.…

Nginx1.9のTCP Load BalancingをMacで試してみた

やってみたかったので試してみました! HomebrewでNginx1.9をインストール デフォルトでのnginxではなく、nginx-fullの方をインストールしました(brew tap homebrew/nginxが必要) brew install nginx-full --devel --with-stream nginx.confの設定 /usr/lo…

ESLintでno-undefのルールに引っかかった変数だけを抜き出す

またまたまたまたESLintの話題です。 歴史的経緯により存在しているglobal変数をno-undefのルールから除外するということをやったのでご紹介。 no-undefルールとは? 未定義の変数を利用している場合に出るエラーです。 1:6 error "Hoge" is not defined no-…

細かすぎて伝わらないESLintのTIPS

ここ2日ほど、ESLintを使っていて気づいた細かい設定など。 デフォルトの結果だとVimで該当行までジャンプできないのをどうにかしたい 問題 デフォルトの出力が /private/tmp/hoge/a.js 2:13 error "require" is not defined no-undef というフォーマットな…

JSのswitch文のcaseにブロックスコープを付ける

ESLint v1.9で追加されたno-case-declarationsルールで、へ~と思ったことがあったのでメモ。 no-case-declarationsルールとは? no-case-declarations - Rules - ESLint - Pluggable JavaScript linter にドキュメントがありますが、 ↓のコードだと、switch…

ESLintの--cacheオプションは積極的に活用するべき

ESLintでv1.4から導入された--cacheオプションを試してみたのですが、 これは使うべき!と思ったのでご紹介。 何か? 前回のeslintにかけた結果を.eslintcacheファイル(デフォルト)に保存します。 二回目以降は、更新されたファイル以外をチェックしなくな…

各種通信プロトコルの区切り文字がCRLFな理由

技術的負債との闘いの中で、ふと過去日報で書いた内容を思い出したので書きます。 HTTPとか各種通信プロトコルの区切り文字はCRLFですが、理由があると。 CRLF ‐ 通信用語の基礎知識 に書いてますが、大昔のテレタイプという装置で1行進めるのに2命令必要だ…

超雑に理解するLDAP

諸事情により、LDAPを少し触ったので、主に自分向けメモ。 LDAPとは? こちらの解説が自分的には一番わかりやすかったです。 www.valinux.co.jp 階層構造を持ったデータベースという感じ。 Javaのjp/co/example/Hoge.javaみたいなディレクトリ構造とか、DNS…