尋常でないもふもふ

a software engineer blog

2014-01-01から1年間の記事一覧

Jenkinsのログインシェルを変更する

Jenkins をインストールすると jenkins ユーザーが作成されるが、su コマンドを使っても jenkins ユーザーには切り替えできない。 これはデフォルトのログインシェルが /bin/false に設定されているから。 # cat /etc/passwd | grep jenkins jenkins:x:498:4…

Linuxでたまに使う便利なコマンド

使いたいときに忘れてるのでメモ。 tree コマンドの階層指定 $ tree -L 1 LDAP ユーザーも含めたユーザーの一覧を表示 $ getent passwd sudo 権限の編集 $ visudo $ visudo -f /etc/sudoers.d/sample

Debian系とRedHat系の起動スクリプト

/etc/init.d/nginx start というか、利用するときは service nginx start を叩くけど、こういう起動スクリプトはミドルウェアの起動によく使います。 訳あって自社サービス用の起動スクリプトを Ubuntu 版から CentOS 版へと移行したので、作業にあたって必…

GitHubでEd25519鍵をつかう

TL;DR GitHub 使ってる人のほとんどは RSA 鍵 2048 ビットつかってる でも 2031 年からは強度が弱く非推奨扱い もっと新しい ECDSA 鍵や Ed25518 鍵もあるよ Mac でも対応してるから今すぐ使えるよ GitHub でもっとも使われている公開鍵暗号方式 多くの人は …

Ansibleでファイルの編集

Ansible で設定ファイルの編集をしたいとき用です。 3つのモジュールが用意されています。 lineinfile(1行だけ編集したい人向け) replace(複数行編集したい人向け) ini_file(INI形式のファイルを編集したい人向け) ユースケース Amazon Linux では最…

yumの使い方

yum パッケージを探す $ yum search <package> パッケージの詳細情報 $ yum info <package> パッケージのインストール $ yum install <package> パッケージをすべて表示 $ yum list インストール済のパッケージをすべて表示 $ yum list installed インストール済のパッケージの中から更</package></package></package>…

Ansibleで変なエラー

事象と原因 brew でインストールした ansible を再インストールしたら動かなくなった。 $ ansible-playbook -i hosts simple-playbook.yml --syntax-check Traceback (most recent call last): File "/usr/local/Cellar/ansible/1.7.2/libexec/bin/ansible-p…

DockerでJenkinsを構築

単に Docker で Jenkins 動かしたいなら公式の がすぐ動くし、Dockerfile も読める。 以下は CentOS や Amazon Linux 上で動かしたい人用の最小構成。 Dockerfile FROM centos:centos7 # Change timezone RUN ln -sf /usr/share/zoneinfo/Japan /etc/localti…

CentOS7にJenkinsインストール

準備 タイムゾーンを UTC から JST になおす(※任意、Jenkinsの動作とは関係ない) $ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime インストール Jenkins は Java で動くので JDK7 をインストール $ sudo yum update -y && yum install -y java-1.…

Vagrantfileのテンプレート

# -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "ubuntu/trusty64…

Ubuntu-14.04にnodebrewでNode.jsをインストール

nvm よりもっぱら nodebrew。 ちなみに apt-get install nodejs で直接 apt でインストールすると v0.10.25 の古いバージョンになってしまう。 $ curl -L git.io/nodebrew | perl - setup $ echo "export PATH=\$HOME/.nodebrew/current/bin:\$PATH" >> ~/.b…

Vagrantの使い方

インストール 公式の Download Vagrant - Vagrant からダウンロードしてインストール。 つかう Ubuntu 14.04 を構築 $ mkdir vagrant-sample $ cd vagrant-sample $ vagrant init -m ubuntu/trusty64 -mは生成される Vagrantfile を説明コメントが除かれたミ…

DockerHubのUbuntuのタグの違い

Ubuntu を使う場合、多くの人は最新の LTS(Long Term Support)である 14.04 を選択するはず。 でも DockerHub の Ubuntu 公式のリポジトリをみると 14.04 でもタグが複数あってどれを選ぶべきなのか迷うので、確認してみた。結論は「同じもの」だった。 14…

iTermをAppleScriptで開くと便利

Web サービスを運用してると、頻繁にサーバへログインする必要がでてくる。特にエラーログを眺めたいときとか、本番環境の Web サーバ 4 台にアクセスするとき等、1回1回ログインするのは面倒。 そんな時は AppleScript で iTerm をまとめて開くスクリプトを…

WebStormのメモリ使用量を増やす

(2015-06-29 に WebStorm10 版に更新しました) WebStorm は初期設定のままだとメモリを最大 750MB しか使えないため、それを超えるとカクカクします。 やり方は WebStorm 公式の WebStorm 10.0.0 Help :: Tuning WebStorm に書いてあります。 現在のメモリ…

Kibanaのクエリの書き方

FILTERLING の query に記述する 条件 category が "card" のものと、card_id が "goblin" のもののみ表示 category: "sell" AND card_id: "goblin" 日付の範囲指定 2014年10月2日深夜1時から2時のデータのみ表示させたい 日付は必ずダブルクォーテーション…

Nodejsで日付と時間といったらMoment.js

Node.js というか JavaScript 全般だけど、書き方よく忘れるのでメモ。 使い方 インストール $ npm install moment プログラム側で moment の読み込み var moment = require('moment'); moment オブジェクトを作成 var mNow = moment(); //現在時間 var mUni…

Node.jsでキャッシュ機構をつかう

isaacs/node-lru-cache · GitHub が便利。 Java でいうと Ehcache みたいに使える。ただ、Ehcache はキャッシュアルゴリズムを指定できるが、 lru-cache は LRU(Least Recently Used)という名の通り、最近のもっとも使われていないデータを最初に捨てるア…

Jenkinsの結果がUNSTABLEになる

Jenkins でビルドに JUnit を連携させてる場合に、UNSTABLE で終了した。 原因は mocha のテストに console.log() を記述したままになっていたからだけど、なぜそうなるのかわかりにくかったため書いとく。 Jenkins ジョブのコンソール出力 (略) Build ste…

MacのGoogleドライブが同期しないときは

mac

ローカルの ~/Google ドライブ ディレクトリにファイルやフォルダをコピペしても自動同期されない。 しょうがないので、その状態のまま Web からアップロード等行うとコンフリクトが発生してエラーになるため確実にハマる。 正しいやり方 同期したいファイル…

nodebrewでnode.jsをインストール

nvm はもう古い(と思う)。nodebrew は Homebrew 経由でインストールできるようになったので、node のバージョン管理導入が非常にラクになった。 インストール $ brew install nodebrew パスを ~/.bash_profile に追記 if [[ -f ~/.nodebrew/nodebrew ]]; t…

GitHubでタブ幅を調整する

git

タブ幅(タブスペース)の調整にスタイルシートいじってるのがあったけど。 http://rosylilly.hatenablog.com/entry/2014/06/26/152913 実はクエリストリングだけでOK URL の末尾に?ts=2 をつける サンプル GitHub のデフォルトはタブ幅8スペ https://github…

糞コードの直し方メモ

傾向 不明確さ 関数名が実装と合ってない 何のための処理なのかサッパリ読み取れない なぜか意味不明な空行が目立つ 依存関係 関数が別の関数に依存しまくっている場合が多い 処理をいくつかの関数に分けるのはいいが、単体で動かない関数は修正しにくく保守…

AMDとは

インテルと並ぶ CPU の製造メーカー AMD(Advanced Micro Devices)…の方ではなくて、JavaScript 界隈の AMD とは。 てっきり AMD が提唱してる感じのハードウェアに近いレイヤーのソフトウェア技術のことかなと何となく思ってたけど、全然関係なくて Asynch…

SublimeTextの正規表現で複数行を削除

例えば apple という文字列を含む行以外をすべて削除したい場合 Shift + Command + F で検索窓を開く 正規表現のマークにチェックを入れる Find に ^(?!.*apple).+$ を入力 Replace は空白

Homebrew逆引きリファレンス

mac

数週間毎に記憶が消失するので書いとく。 あと brew は「FORMULA」という用語を使うけど、わかりにくいだけなのでパッケージ管理システムとして標準的な用語である「パッケージ」と表記する。 brew自身が正常かチェック brew doctor brew自身を最新にする br…

Macの環境構築メモ

ハードウェア編 FlexScan EV2736W-FS 27インチで解像度が 2,560×1,440 高いけど現存する液晶ディスプレイの中でもチラつき・ギラギラが少なく目にやさしい Monitor Cable PM200 MacBook と液晶ディスプレイを繋ぐためのケーブル Mini DisplayPort(Thunderbo…

JMeterでJSONをPOST

最近の Web アプリの API は従来の GET によるリクエストパラメータを送信する方式ではなく、POST で JSON を送信する方式が増えてる模様。 この形式の場合、Chrome の DeveloperTools でみるとリクエストの部分が Query String Parameters の代わりに Reque…

lodashでよくつかう関数

JavaScript でコード書く時に lodash 使わないとかもう意味わかんないレベル。競合に underscore があるけど、lodash の方が開発スピード(≒コミット数)に分がある。 両者に git log --reverse で初回コミット(2009年8月25日)確認して気づいたけど、元は…

sshのknown_hostsをコマンドで削除

AWS 運用してると気軽に EC2 インスタンス作りなおそってなるけど、作りなおした後に SSH 接続するとREMOTE HOST IDENTIFICATION HAS CHANGED!という SSH エラーがでる。 この場合 ~/.ssh/known_hosts を直接編集して削除する人が多いと思うけど(それで問題…