読者です 読者をやめる 読者になる 読者になる

bauer's diary

凡人の凡人による凡人のための備忘録

npmパッケージ公開手順の備忘録

npm

はじめに 最近下記のnpmパッケージを公開したのですが、 手順をすっかり忘れていたので、備忘録としてここにまとめておきます。www.npmjs.com npmデベロッパー登録 まずはこちらのサイトでnpmデベロッパーの登録を行います。 https://www.npmjs.com/signup必…

"狭小住宅" は他人事とは思えない等身大の小説だった

著者:新庄 耕 第36回すばる文学賞受賞作 以下、内容紹介より引用 学歴も経験も関係ない。 すべての評価はどれだけ家を売ったかだけ。 大学を卒業して松尾が入社したのは不動産会社。 そこは、きついノルマとプレッシャー、過酷な歩合給、挨拶がわりの暴力が…

AWS LambdaでサーバーレスにEC2メンテナンスをslackに通知する 〜その4〜

4回に分けて連載しましたが、本記事で最後となります。 ここでは、Lambda関数の実装解説と、実践で困ったことを紹介します。 前回の記事 kitakitabauer.hatenablog.com インストール ご紹介するコードを含めたツールは、実行が可能な状態でnpmかGitHubからイ…

AWS LambdaでサーバーレスにEC2メンテナンスをslackに通知する 〜その3〜

前回の記事 kitakitabauer.hatenablog.com 登場人物おさらい この記事では4を行っていきます。 Lambdaを実行するIAMにアタッチするポリシー スケジュール実行に必要なCloudWatch Events設定 SlackのIncoming Webhooks設定/Webhook URL取得 Lambda Functionの…

AWS LambdaでサーバーレスにEC2メンテナンスをslackに通知する 〜その2〜

前回の記事 kitakitabauer.hatenablog.com 登場人物おさらい 4は少し長くなりそうなので、この記事では1, 2, 3を行います。 Lambdaを実行するIAMにアタッチするポリシー スケジュール実行に必要なCloudWatch Events設定 SlackのIncoming Webhooks設定/Webhoo…

AWS LambdaでサーバーレスにEC2メンテナンスをslackに通知する 〜その1〜

はじめに 直近の業務で下記案件に対応する機会がありました。 EC2メンテナンスイベントが、英語のメールで通知されるだけじゃ見落としがちなのでslackに通知したい 色々な方法が考えられますが、せっかくなので興味があったAWS Lambdaを使ってみました。手順…

GoでSet型を実現する場合の選択肢

Go

はじめに Go言語には標準で Set 型がありません。 ここでは2通りの実現方法を検討してみます。 1. map ✕ structで実現する mapのフィールドに空のstructを使ってsetを定義します。 structは何もフィールドを持たない場合、サイズは0になるのでコストがかかり…

GitHubの2段階認証におけるプロトコル最適解を考える

なに? cloneしたときに選択したプロトコルが、ローカルGit設定の remote url にそのまま設定されるのですが、 そもそもプロトコルは何を選べばいいのか、ベストプラクティスは何かを検討します。 前提 現場では2段階認証が必須となっているので、前提項目と…

golang製のREPL内でUnixタイムスタンプから日付フォーマットを取得する

Go

忘れがちだけど、よくある動作なので書き留めておきます。 準備 goreをインストールしておきます。 github.com $ go get -u github.com/motemen/gore "gore" とは、コード補完もしてくれるREPL(Read-eval-print loop)で、文字通り読んで評価して表示して繰り…

「学力の経済学」は、今の日本の教育を考えさせられる良書だった

この本に出会った経緯 最近、テレビでも話題になっている慶應義塾大学の教育経済学者である、中室牧子さん著書の本を読みました。 投稿時点のAmazonの"経済学・経済事情"カテゴリで、ベストセラー1位になっている人気図書です。「学力」の経済学作者: 中室牧…

Jenkinsの全ジョブに対して条件でフィルタリングするワンライナー

掲題の通りです。 業務で棚卸しするときに必要だったので手順をまとめておきます。コマンド中の "/var/lib/jenkins/jobs" は、 それぞれの環境に合わせてJenkinsのジョブ直下を指定してください。 disabled一覧 不要なジョブを整理するためにdisabledのフラ…

本家の最新を取り込みながら安全に自分のリポジトリで修正したいとき

はじめに 本家リポジトリをforkして、それを上流に設定し、最新を取り込みながらfork先のリポジトリに修正したいときに今回の手順を踏みます。 本家に直接pushができないときに、こういった形を取ることがあります。 この流れを"Fork & Pull モデル"と呼びま…

Goのことはじめ その3:IntelliJ IDEAでGoを書くために

はじめに これまでNode.jsやPythonではVimを使ってきましたが、WebStormなど優秀なIDEが登場してきたこともあり、Goをお仕事で書くタイミングでそろそろIDEにも慣れておきたく、IntelliJ IDEAを使うことにしました。 IntelliJ IDEA(インテリジェイ アイディ…

ISUCON6で屈辱的に負けてきた

はじめに 去る2016年9月18日(日)に、ISUCON6の予選に参加しました。 結果は最高スコア12023で屈辱的に敗退しました・・・ その一部始終をまとめておきたいと思います。 ISUCONとは? お題となるWebサービスを決められたレギュレーションの中で限界まで高速化…

ghq/peco/hubを組み合わせてローカル・リモートリポジトリに即座にたどり着く

はじめに あまりにも有名な下記ツールを組み合わせて、ストレスなく、リポジトリにたどり着くような設定にしたのでまとめておきます。あまりにも有名なので、ツールの説明は割愛します。が、ざっくりいうと、Go製のリポジトリ管理ツール github.com 同じくGo…

Goのことはじめ その1:GOPATHとghqのルート指定

Go

はじめに 業務でGoを触ることになったので、Goに関して気になったことをまとめていこうと思います。 GOPATH GOPATHはGoで使う環境変数なのですが、2つの役割があります。 ビルド時のインポートパスのルート(正確には$GOPATH/src配下) go getコマンドで外部パ…

dotfiles整理 その2:zshrcから分割した設定ファイルが読み込まれない問題への対処

kitakitabauer.hatenablog.com 前回の記事はこちら。 この構成に変えたあと、.zprofileに記述した部分が読み込まれなくなりました。 ターミナルアプリで起動されるのは、ログインシェルではなく、インタラクティブシェル という事実を下記記事にて知りました…

dotfiles整理 その1:zshの構成を見なおそう

はじめに 最近ちょっと時間ができたので、随分放置してきたdotfilesを整理をすることにしました。 まずはzsh。 これまでは.zshrcに全て記述していたので、前々から役割毎に分けたいと思っていました。 大まかな方針は下記の通りです。 ZDOTDIR を指定して、"…

きたるISUCON6向け武者修行その4 -kataribeでHTTPリクエストのパフォーマンスを可視化しよう-

kitakitabauer.hatenablog.com 前回はNginxのチューニングを行いました。 今回はISUCONの過去問でも登場してきたプロファイリング用のツールを予習しておきます。 kataribeとは? "Nginx/Apache/Varnishncsa Log Profiler"と書かれている通り、 アクセスログ…

Node学園 22時限目メモ

eventdots.jp こちら、参加してきたのでメモる。 「Node学園祭 2016の告知」by yosuke furukawa さん 11/12(土) dotsイベント会場で開催する予定。13日とは異なるので注意。 ハンズオンメイン 今年もpaypalがスポンサー 11/13(日) サイバーエージェントオフ…

きたるISUCON6向け武者修行その3 -Nginxのチューニングをしてみよう-

kitakitabauer.hatenablog.com 前回MySQLのチューニングを行いました。 今回はNginxのチューニングを行います。 Nginxのバージョン確認 $ nginx -v nginx version: nginx/1.6.1 古すぎないので問題なさそうです。 デフォルトのnginx.confを確認 /etc/nginx配…

きたるISUCON6向け武者修行その2 -MySQLのチューニングをしてみよう-

kitakitabauer.hatenablog.com 前回プロビジョニングしたリポジトリにインストールされたMySQLの設定を確認していじっていきます。 MySQLのバージョンを確認 $ mysql --version mysql Ver 14.14 Distrib 5.6.31, for Linux (x86_64) using EditLine wrapper …

きたるISUCON6向け武者修行その1 -仮想環境を構築して負荷試験を実行してみよう-

強い意志の元、今年こそISUCONに参加しようと思います。 ISUCONとは? お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、それがISUCON isucon.netそこで、まずはチームメンバーとISUCON4(2014年開催)の復習…

Object.assignのパフォーマンス

掲題の通り、Object.assignのパフォーマンスについて計測してみました。 Object.assignとは ECMAScript2015の仕様書 ECMAScript 2015 Language Specification – ECMA-262 6th Editionmixinメソッド。 ソースオブジェクトから列挙可能かつ直接所有のプロパテ…

Linuxサーバの現場向きオペレーション

yuuki.hatenablog.com説明もわかりやすく、良記事でした。 プロセスツリーをみる(ps) fをつけるとプロセスの親子関係を把握しやすい これは地味にうれしい。 NICやIPアドレスの確認(ip) いまだifconfigを使っていたので、ipのほうが俄然見やすい。 top cをつ…

package.jsonのdependenciesにローカルファイルを指定する

依存するプロジェクトを同時に修正している場合どうしていますか? 自分はこれまでは使いたいプロジェクト側(Aとします)のpackage.jsonに、対象プロジェクト(Bとします)のパスを直接書いていました。 { … "dependencies": { "test": "../workspace/test" } ……

Nodeのバージョンアップに伴うグローバルパッケージの移行

Nodeのバージョンを上げるときに、旧バージョンでグローバルインストールしたパッケージを移行できます。 指定するX.X.Xはそれぞれ移行元version。 nodebrewの場合 $ nodebrew migrate-package vX.X.X グローバルにインストールされたパッケージを、カレント…

サーバがなんか重い…そんなときの調査の流れ

Web開発の基礎という本を読んだ。とても良くまとまっている中で、サーバが重いときの調査の流れは改めて復習しておきたい部分だった。状態:なんか重い!ロードアベレージを確認 uptime 低い:パケットロスなどNWを疑う netstat -i or スイッチのポートのモ…

gitの内製GUI

$ gitk 知らなかった。

gitで、二度目以降https認証でアイパスを聞かれないようにする設定

gitで、HTTPSでpush/pullするときに毎回パスワードを聞かれないようにする。環境:Mac OS X 10.6.8Macでは、キーチェーンと連携するための認証ヘルパーを使用することができる。 Homebrewでのインストール時、Gitのインストール時に認証ヘルパーも自動でイン…

dotfilesをGitHubで管理

HomeBrewでやります。 $ cd ~ $ mkdir .dotfiles $ mv .vimrc .dotfiles/ $ mv .zshrc .dotfiles/ $ ln -s .dotfiles/.vimrc .vimrc $ ln -s .dotfiles/.zshrc .zshrc $ cd .dotfiles $ touch README.md $ git init $ git add -A $ git commit -m 'first com…

oh-my-zshを導入してみる

zsh

oh-my-zshって何? 導入 1.oh-my-zshって何? https://github.com/robbyrussell/oh-my-zsh 下記の恩恵を一気に受けることができる、zshローカル設定のフレームワーク。 推奨されるzshのバージョンは4.3.9。 40以上のプロンプトテーマ 便利なプラグイン集 コ…

colorsvnで幸せなsvnライフを。

svn

git主流ですが、既存のプロジェクトではまだまだSVNを利用しているところも多いはず。 そんなあなたに、色分けされる便利なツールを紹介 rpmがない場合は、ソースからconfigure,makeする。 % wget http://www.console-colors.de/downloads/colorsvn/colorsvn…

SVNで異なるリモートリポジトリを向いている箇所があるか確認する

svn

branchの一部のみ、異なる向き先を向いていたので、それを確認するためのコマンド。 % find . -type d -a ! -regex '.*\.svn.*' -exec svn info {} \; | grep [検索したいリポジトリURL] または % svn stat | awk '$1 == "S"' ⇒statのステータス'S'は 「the …

GitHubで相手のリポジトリをforkせずにcloneして編集した内容をpull requestするまで

通常の手順だと、 1.相手のGitHubリポジトリから自分のリポジトリにfork 2.自分のリポジトリに作業ブランチを作成 3.ローカルで編集 4.変更内容をadd・commit 5.自分のリポジトリにpush 6.相手のリポジトリにpull request となるのだが、 相手の…

いまさら秘密鍵・公開鍵のおはなし

GitHubを使うときに必要になる知識なので。 Gitでアクセスする端末やサーバのSSH公開鍵をGitHub側に登録する。 公開鍵はssh-keygenコマンドで作成する。 別の端末へのリモートアクセスで既に利用している場合もあるので、 GitHub専用の公開鍵を登録したい場…

array.forEach()を間違って使っているケース

array.forEach()を間違って使っているケースが結構見受けられたので、 注意が必要。 ☆array.forEach()を使ったケース--------------- function(array) { array.forEach(function(element) { if (バリデート) { // リターンせず、次の要素を処理する return; …

macでseqの代わりにjotを使う

シェルスクリプトでseqコマンドを使って数字をインクリメントしたいときがあります。 ですが、Macにはseqコマンドが標準でインストールされていません。 代替案としては、 coreutilsをインストールしてgseqを使う。 $ brew install coreutils $ gseq 1 10 ex…

ctagsインストール

macはデフォルトでインストールされているが、 -Rの再帰的にインデックスを作成するオプションや、 バージョン表示もなく使いものにならないため、homebrewでインストールする。 % brew install ctags .zshrcにalias作成 alias ctags='/usr/local/Cellar/cta…

NeoBundleでVimprocを自動インストール

Vim

NeoBundle 'Shougo/vimproc', { \ 'build' : { \ 'windows' : 'make -f make_mingw32.mak', \ 'cygwin' : 'make -f make_cygwin.mak', \ 'mac' : 'make -f make_mac.mak', \ 'unix' : 'make -f make_unix.mak', \ }, \ } :NeoBundleInstall

最近導入したvim設定・プラグイン

Vim

neobundle.vim ctrlp.vim NERDTree.vim YankRing.vim

MacのAutomatorを使ってWindowsのファイルパスを変換しつつFinderで開く方法

Automaker色々使えそう。 下記の記事はWinパスをMacに変換する設定のお話。 http://ameblo.jp/tsq/entry-11400112359.html

ctrlp.vimのよさ

Vim

で起動 検索結果はキャッシュされる 候補は、で移動 ヒストリは、で移動 部分一致検索モード⇔正規表現検索モードのスイッチ でフルパスモードからファイルモード でMRUファイル検索 でバッファ検索 パターンの後ろに":"で、候補ファイル群にコマンドを実行…

よろしく!

はてブロはじめました!