なっく日報

技術やら生活やらのメモ

オライリー本を全冊購入するといくらなのか?(ワンライナーバージョン)

コチラを見て、頭の体操程度で。 qiita.com こんなコマンドで curl -s https://www.oreilly.co.jp/catalog/ | perl -lnE 's/.+"price">([\d,]+).+/$1/ && (tr/,//d, $c++, $s+=$_); END{ say "合計 $c冊 $s円"}' 結果 合計 445冊 1533060円 結構増えてますね…

Reflect.applyとFunction.prototype.applyの速度を計測してみた

ESLintのprefer-reflectというルールをONにした 最近、Node.js v6が出たのでバージョンアップがてら、ESLintのprefer-reflectというルールをONにしました。 そして、既存のソースに早速ESLintをかけたところ・・・ 警告ががが 既存のソースに早速ESLintをか…

Invokeを少し触ってみた

Invokeとは? github.com Python製のタスクランナーだそう。make, rake, gulpみたいな。 ↓みたいにタスクを書いて、invoke clean buildみたいに実行できると。 from invoke import run, task @task def clean(docs=False, bytecode=False, extra=''): patter…

Google Cloud DNSで設定ファイルをimport/exportする

Cloud Deployment Manager にはGoogle Cloud DNSを設定する機能がないっぽいですが、代わりにgcloud dnsコマンドが使えそうです。 コマンド例 エクスポート ↓のコマンドを打つと gcloud dns record-sets export -z example-com-zone example-com-zone.yml ↓…

Slackで絵文字をskin-toneを変えた絵文字全てをクリップボードにコピー

本日は時間がないので一発ネタで。 mihyaeru21.hatenablog.com でお見かけしたネタだと思うのですが、ワンライナーでいけます。 EMOJI= no_good perl -E '$a.=":$ENV{EMOJI}::skin-tone-$_:"for 2..6;say$a'|pbcopy クリップボードに入ったモノをSlackに貼り…

ESLintで拡張子をみてテキストをゴニョゴニョできる話

久しぶりにESLintの話題を。 公式ドキュメントに書いてあるのですが、ESLintプラグインでは拡張子毎にprocessorを設定できるそう。 http://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins processor is 何? このeslint-plugi…

Github Pages + Markdownで楽々プレゼン生活

qiita.com の記事の内容ほぼままなのですが、 自分的にはライフチェインジングな発見だったのでご紹介。 Github Pagesとremarkを組み合わせるとプレゼン資料作成が捗るよというお話です。 Github Pagesとは? みなさん知っていると思いますが、Github上で、y…

一発ネタ。ワンライナーでDynamic Inventory

このままでは使えないですが、何かのヒントにはなるかもしれません。 GCPなんかで、AnsibleのDynamic Inventoryを使う場合、↓の公式ページによれば http://docs.ansible.com/ansible/guide_gce.html#gce-dynamic-inventory gcp.pyでやるのをオススメしてます…

本日NginxでSSLの設定をする際に参考になったサイト

本日、バックエンドのJenkinsおじさんをSSLで終端させるためにNginxを設定したので、その過程のメモを。 多分、どなたかの参考にはなるはず・・・ Mozilla SSL Configuration Generatorが便利 Redirecting to ssl-config.mozilla.org... 各種ミドルウェア(A…

Jenkinsにdeploy keysをリポジトリ毎に設定するのが面倒くさい

m(__)m yukidarake.hateblo.jp の記事で Host github.com HostName github.com User git IdentityFile ~/.ssh/github-foo.pem IdentityFile ~/.ssh/github-bar.pem みたいに書けばJenkinsの鍵をいちいち~/.ssh/configに追記しないでOKだと書いたけど、これだ…

AnsibleのVaultで暗号化されたファイルを管理する際のベストプラクティス

はじめに http://docs.ansible.com/ansible/playbooks_best_practices.html#variables-and-vaults ↑のAnsible公式ドキュメントのベストプラクティスの中の「Variables and Vaults」という項目に書いてあったことにプラスアルファした内容です。 ある程度わか…

zshオススメのちょっとした設定

本日は公開できるほどのネタがないので、ちょっと開発環境的なモノを書いておきます。 多分、ネタに困ったら少しずつ放出するんじゃないかと・・・ 特定のコマンドの履歴を残さない rmとかlsとか。 ↓の関数を.zshrcに足します。 zshaddhistory() { local lin…

あまり知られていない~/.ssh/configのIdentityFileの挙動

あまり知られてなさそうなのと、自分が完全に忘れていたのでメモっておきます。 IdentityFileの挙動 man ssh_configでみてみると It is possible to have multiple identity files specified in configuration files; all these identities will be tried in…

Google Cloud Deployment Managerの設定ファイルのJinja2形式での書き方TIPS

特に細かい説明はしないので、分かる人がググったときにたどり着いてもらえればと・・・(雑) envを利用してインスタンス名とかを生成 ロール毎のテンプレートとかにnameを動的に生成するために使えそうな技。 ↓のように書けます。 {% set INSTANCE_NAME = …

Google Cloud Deployment Managerでimportsを使ったときの嵌りどころ

Cloud Deployment Managerで imports: - path: other.jinja みたいに書いて、他の設定ファイル(.pyや.jinja)をインクルードできる機能があるのですが、 エントリポイントにあたるファイルはYAMLにしないといけません(ドキュメントのどこにも書いてない) 結…

やっぱりCloud Deployment Managerの方がいい気がしてきた

妻から犬を買ったという連絡が来て、それなんてエイプリルフールネタ?と思ったのですが、本当っぽいです。 それはさておき、通勤途中に色々考えたのでメモっておきます。 昨日のエントリの補足的なメモになります。 yukidarake.hateblo.jp AWSのCloudFormat…

Terraformを使っていてGrunt/Gulpのことを思い出してもやもやする話

ちょっと今日もやもやしたことがあるので書き残しておきます。 Terraformが何かの説明はしないので、わかる人は読んでくださいということで。 Cloud Deployment Managerの方が良さそう 最近GCPをTerraformで触ってみているのですが、 cloud.google.com の存…

Expressのapp.useが記述した順で動かない?

基本的には設定した順に動く v4からは公式(http://expressjs.com/en/4x/api.html)にある通り、 Middleware functions are executed sequentially, therefore the order of middleware inclusion is important. つまり、設定した順序でmiddlewareが適用される…

Expressで特定のパスだけ静的ファイルを配信する方法

本日APIを眺めていて、たまたま気づいたのでメモ。 何も考えずにやるなら、fs.readFileで読み込んでres.sendなんですが、最初からAPIがありました。 それはこちらのres.sendFile http://expressjs.com/en/4x/api.html#res.sendFile 使い方(APIまんま) app.…

目標設定面談する人は一度読んだ方がいい「無理・無意味から職場を救うマネジメントの基礎理論」

たまには書評でも。 ↓のKAYACの記事経由で知りました(こちらもなかなかいい話) tech.kayac.com 帰りの通勤電車1時間弱くらいで読破できました。 紹介する本 無理・無意味から職場を救うマネジメントの基礎理論 18人の巨匠に学ぶ組織がイキイキする上下関係…

node-inspectorの代わりになりそうなdevtool

本日も軽く情報の紹介だけ。 devtoolというErectronベースのデバッガを知ったのですが、結構よさ気。 github.com Node.jsのデバッガといえば、下記2つが有名だと思うのですが、 github.com github.com 比較して ChromeのDevToolsを使うのは同じ コマンドライ…

最近のPerlが絵文字と相性が良い件

最近ちょろっとPerlを触った際に、何気に絵文字が出力しやすかったという話です。 v5.16から perldoc.jp にあるように、use charnames;なしで、perl -E 'say "\N{BIRD}"'でが出るようになってました。 出力できる文字は? github.com を参考に #!/usr/bin/en…

Browを使えばAlfredでChrome/Firefoxのブックマークも検索できるようになる

今日、サブPCをセットアップしたので、備忘的にメモ。 問題 Macユーザ、ド定番ツールのAlfredですが、Spotlightのインデックスを使っている?せいか、ブックマークがSafariのモノしか検索できません。 なんとかできないか? 公式の見解 www.alfredapp.com に…

コマンド一発でMacのkeychainに登録されているパスワードを取得する

自分向けにメモ パスワードの登録 security add-generic-password -a ACCOUNT_NAME -w PASSWORD -s SERVICE_NAME でKeychainにパスワードが登録できます。 各オプションの意味は以下の通り -a Specify account name (required) # そのサービスで使っているア…

ES6の91%の機能が使えるようになるのはNode.js v6からのよう

本日もさっくりと。 github.com にある通り、nodeのmasterには既にv8のv4.9が取り込まれた模様。 V8 release v4.9 · V8 にある通り、DestructuringとかDefault Parametersとかがあるので、ぜひとも使いたいところ。 でも、v4は当然として、v5に取り込まれる…

Node.jsの標準モジュールのデバッグログを出す

最近書くことがないので、本日も一発ネタで。 http系でエラーが起きて、ログ仕込むのもめんどかったので NODE_DEBUG=http node app.js みたいな感じで、Node.js標準モジュールのデバッグメッセージを出力して解決しました。 多分、↓の記事で見た情報だと思い…

Tmux上で開いたVimだけなぜか<C-s>のキーバインドが効かない

ということが起きたのでその解決手順の流れを記しておきます。 ちなみに、自分の場合、サスペンドをVimの<C-s>に割り当てています。 (tmuxのprefixが<C-z>派なので、サスペンドを<C-s>にしているのです) Tmux上でなく、ターミナルで直接Vimを開いた場合 <C-s>でサスペンドでき</c-s></c-s></c-z></c-s>…

Slackの通知を一時的にOFFにする(Do Not Disturb機能)

以前から、ベルアイコンから一時的に通知をOFFにできることは知っていたんですが、 コマンドからもできるよう(Do Not Disturb機能) 公式ヘルプは↓ get.slack.help 書式 /dnd [時間] 例 /dnd for 15 mins /dnd until 17:00 /dnd until tonight /dnd until t…

tmux-openで選択した文字列をGoogleで検索する

本日も時間ないので一発ネタ。 github.com ですが、ドキュメントには書いてないのですが、設定した検索エンジンで選択文字列を検索できるという機能があります。 詳しくはこの辺の議論をみてもらえれば。 github.com ↓を足すと、copy modeでSを押せばGoogle…

for-ofにはconstが使える

一発ネタ。 for-ofは実はconstでOK。 for (const i of [1,2,3]) { console.log(i) } for-inもいけた。 for (const i in {a:1,b:2}) { console.log(i); } 当然、for (const i = 0; i < 10; i++) {はできません。 参考リンク github.com