なっく日報

技術やら生活やらのメモ

Windowsでシェルスクリプト書きたいときはShellJSが使える

久々のブログ更新となります。 シェルスクリプトをWindows用に移植したい・・・という場面でShellJSが便利だったというお話です。 ShellJSとは? github.com Node.jsでシェルスクリプトが書ける!(※実際書くのはJavaScript。APIが限りなくシェルスクリプト…

fishシェルはじめました

これは(ターミナル開発環境のメンテに疲れた|zshの設定に挫折した)人向けにfishシェルをオススメする記事です。 自分がzshで手放せなかった機能達 プラグインマネージャ・・・zgenを使っていました テーマ・・・pureというシンプルなテーマを使っていました …

静的ファイルを配信する場合にはパスにバージョンを含めるのがいいんじゃなかろうか

最近、思っていることを。 なお、バージョンとは言ってますが、Gitのコミットハッシュ値でもUnixタイムスタンプでも何でもいいです 静的ファイル配信パターン WEBアプリで静的ファイルを配信するパターンは以下3つあるんじゃないかとなんとなく思っています…

Windowsを少しでもMacの環境に近づける

最近転職しました。 で、現状、PCがWindowsしかない + VirtualBoxとかVM使う系禁止という縛りがあるわけです。 というわけで最近のWindowsをMacに近づけられないかという記録をば。 Homebrew(Cask)が恋しい Chocolateyというブツがありました。 chocolatey.o…

ターミナル派の人はHyperTermに近いうちに乗り換えると良いかもしれない

HyperTermというターミナルソフトウェアが大変興味深かったので、そのご紹介を。 hyperterm.org HyperTermとは? 公式サイトで JS/HTML/CSS Terminal と謳っている通り Electron + React + Redux製のターミナルです。 他のElectronアプリのご多分にもれず、J…

Presentational and Container Components

yukidarake.hateblo.jp 結構日にちが経ちましたが、まだボチボチ読まれているようなので、この記事の補足など。 Smart and Dumb Components -> Presentational and Container Components medium.com Redux作者の記事ですが、途中で呼び方を変えた模様。 Pres…

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

yukidarake.hateblo.jp yukidarake.hateblo.jp の続きです。 $ date '+%j' 185 だいぶ空いてしまいましたが、185日過ぎてもぼちぼち続けているのでその報告も兼ねて。 気づいたら今年の折り返し地点過ぎてましたね! 3月:モチベーションの低下 中だるみでし…

グローバルでgitフックスクリプトを仕掛けると`go get`がちゃんと動作しなくなる可能性がある

go getが毎回止まるという現象に悩んでいて、その解決策を見つけたので書いておきます。 原因 yukidarake.hateblo.jp これで、通常のGitHubとGitHub Enterpriseとで、メールアドレスを使いわけるということをやっていたのが原因でした。 解決策 残念ですが、…

Visual Studio CodeのKeyBindingをCTRL+Nを↓、CTRL+Pを↑に変更する

しばらくサボってましたが、今日からは再び頑張りたい。。 諸事情により、Visual Studio Codeを触り始めました。 が、違和感を感じたのが各種ウィンドウでCTRL+N、CTRL+Pのキーバインドが効かないこと。 ググッてみたところ github.com ↑のEmacs向けのキーバ…

Mochaで--delayフラグを使って初期化完了までテストを実行しないようにする

--delayフラグ? http://mochajs.org/#delayed-root-suite で知りました。 setTimeout(function() { // do some setup describe('my suite', function() { // ... }); run(); }, 5000); のように書いて、mocha --delay test と実行すると、run()が呼ばれるま…

Perlのワンライナーでよく使うテクニック

あまり時間がないので5分で! ファイルの中身を置換する ↓はカレントディレクトリ配下のJSファイルのfooという文字列をbarに perl -i -pe 's/foo/bar/' **/*.js 例 findと組み合わせたりもできます。 カレントディレクトリ配下のJSファイルのパスを置換をす…

ESLintでファイルの中身によって設定ファイルを切り替える

yukidarake.hateblo.jp の続きで、実際やってみたという話です。 雑なメモですがご容赦ください。 ESLint plugin作成 ここではeslint-plugin-fooとしておきましょうか。 package.jsonとindex.jsを作ります。 eslint-plugin-fooという文字列があれば、.eslint…

SVNの.svnディレクトリを一発で消す

2016年にSVN!? しかも、Subversion 1.7より前の話!? (1.7以降はルートにのみ.svnディレクトリがあるので今回みたいなことは起きない) というのはさておき、困っていたデザイナーさんがいたので救いました (あと、特に目新しい技術ネタもなかったので…

Ansibleのshellモジュールでヒアドキュメントが使いたいときー

が、あると思います。 shellモジュールでヒアドキュメントを使うと・・・ github.com コチラのissueにコメントがありましたが、 - shell: | cat <

Google Cloud Vision APIを試してみた

画像を送ったら、画像の中身を解析して、顔とか物とかを判別してJSONで返してくれるというヤツです。 昼休みにざっくりと触ってみたのでメモ。 下準備 こちらのブログが詳しく、大変参考にさせていただいたのでみてください(雑) syncer.jp ざっくりいうと …

ウチのチームでKPTが根付いた話

本日はあまりにもネタがないため、今所属しているチームでKPTが根付いた話をしたいと思います。 気づいたら1年くらい続いておりすっかりチームの文化になりました(これは本当に素晴らしいことだなと思ってます) KPTとは何か? 振り返りのフレームワークの…

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

コチラを見て、頭の体操程度で。 qiita.com こんなコマンドで curl -s http://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が便利 Generate Mozilla Security Recommended Web Server Configurati…

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で暗号化されたファイルを管理する際のベストプラクティス

はじめに Best Practices — Ansible Documentation ↑の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に登録されているパスワードを取得する

かなり前の↓の記事等でも書かれている内容なんですが、自分向けにメモ subtech.g.hatena.ne.jp パスワードの登録 security add-generic-password -a ACCOUNT_NAME -w PASSWORD -s SERVICE_NAME でKeychainにパスワードが登録できます。 各オプションの意味は…

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

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

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

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

In Editor Linting with Syntastic から得た情報なんですが。 Syntasticの設定で、 ↓のようにするとサイドバーのエラー箇所が絵文字でいい感じで出るはず(自分の環境のiTerm2だとだめで、ターミナルだといけた) set statusline+=%#warningmsg# set statusl…

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 結構前の記事になりますが、↑の記事がわかりやすいですね。 ↓のような数値が見ら…