stop したり init スクリプトを削除したりすると apache2 cookbook なんかが仕込む delayed な reload アクションがこけて converge 全体が失敗する

また Chef のしょうもない話で恐縮なのですが、表題のようなことに悩んでおりました。 実はこれ、単に次の起動時に立ち上がってきて欲しくないという要求から始まったもので、それだけなら stop も削除もせず、立ち上げたまま chkconfig off でも service リ…

EC2 の Amazon Linux を launch するとき authorized_keys に公開鍵が注入されるユーザを変更したい

変更したくないですか? 私はしたかった。いい加減 recipe 作り込んだし、 ec2-user じゃねえだろって思ってた。例えば oogatta とかにしたかった。でもわからなかった。 今日、 @ainame と話してたら「それは CloudInit です」と教わった。 CloudInit …! …

Rails の n.months って Date の加減演算の引数になると月ごとの日数考慮するんだなあ

知らなかったというか、それについて真面目に考えたことが無かった。 コード class HogeTest < Test::Unit::TestCase def test_hoge Timecop.freeze Date.new(2014, 11, 1) do assert_equal Date.new(2014, 11, 1), Date.today assert_equal Date.new(2014, …

スタートアップ的何かについて考えていることのメモ

企業でもチームでもプロジェクトでも何と呼んでもいいけど人間が複数集まって新しく何かを始める時なんかに… 手法の前に人間なぜなら どんな方面にも手法がいろいろ確立されているもので。たとえば Lean でもいいし、 UX だったら Empathy とか。ここで言う…

IntelliJ ファミリーで OSX の Dvorak キーボードを使うと記号絡みのショートカットがおかしい

ずーっとこれ悩んでて、これのために OSX のキーボードは US にしつつ、 Karabiner で Dvorak に変換していました。でも気持ち悪いですよね。 Karabiner で配列をがらっと入れ替えると、再起動やスリープから復帰した後のログイン画面、 Karabiner 自体のア…

Test-Kitchen で成果物の受け入れテストもやる…のはどうやるの

僕 bats 好きなんですよ。なので Test-Kitchen でめっちょテスト書きます。なんとなくふわっとした複合的な要件は Serverspec で書きます。どちらにせよ、アプリじゃ無くてインフラなので、普段の25倍くらいは書きたいところです。 そんでいっぱしのレシピが…

Vagrant のプラグインで使えるフックポイント

vagrant-aws と Route 53 Vagrant そんな途方も無くすごいかって言うとそういう話じゃないですけど、毎日便利に使わせていただいてます。これまでは VirtualBox か VMware 、遊びで docker だったんですが、こないだ諸事情あって仕事の開発環境をインターネ…

Vagrant のプラグイン開発を VMware Fusion でやる

vagrant-vmware-fusion を入れてライセンスを有効にするには vagrant plugin を使う必要がある。 vagrant plugin はインストーラ版 Vagrant が抱え込んだ Gem リポジトリ環境で動く。 プラグインを作るときの vagrant はプラグインの Bundler 環境で動く。 …

Immutable Infrastructure の現実的なポイント(抄訳+アルファ)

Why you should build an Immutable Infrastructure | via @codeship こないだの Codeship のブログ見てて、自分も今ちょうどまさにそこに取り組んでいたのでいやほんとそうだなーって思って、でもアホだからほっとくと自分でも自分がどういうゴールで仕事し…

CentOS 7 と Vagant と Packer

CentOS 7 の Vagrant の box で vmware_desktop のものが無かったので Packer でちゃちゃっとつくってみました。2点時間がかかったので書いておきます。 VMware Tools の中の vmhgfs のコンパイルがこける CentOS 7 、カーネル 3.10.0-123.4.2.el7 、 Tools …

CentOS の kickstart ファイル

スクリプトでインストールするとき、 Debian / Ubuntu だと preseed ってのを仕込むじゃ無いですか。これまで Ubuntu の box 作るのに Packer でもちろん使ってました。 今回 CentOS 7 にしてみたので、同じようなのないかと調べたら kickstart ファイルであ…

Packer の Shell Provisioner 中で reboot すると再起動が完了する前に次の script がちょっと走っちゃう

Ubuntu でずいぶん前に作ってた Packer の json で CentOS 用の box 作ろうと思ったら途中でハングした感じになってた。どうも reboot したとき、その script は exit するのだけど、 sshd やら network やらはまだちょっとの間生きているので Packer が次の…

golang の intelliJ 用プラグインの用意してくれる Go SDK に入れるパスって何よ

OSX 10.9.3 で最新の brew で go を入れました。 検索すると比較的活発な intelliJ のプラグインがあったので入れました。 File > Project Structure から新しく SDK を設定せよというのでパスを入れるんですが「スカッ」って感じで何も起こりませんし追加も…

Gradle の inputs.property にクロージャ渡したときと変数渡したとき

完全に体調を崩してしまいました。まいったなあ…。 ところで Gradle って名前は有名な割に、ブログ記事、 stackoverflow のポスト、少ない。つまり、わかってる人たちだけが使ってる感じなので、そうそうそれ俺も思ってた!みたいな疑問が表に出て来てない。…

gradle で Berkshelf こないだの続き

こないだの続きで最終的に Docker のイメージを作るんですけど、途中 Dockerfile じゃなくて Chef で作ってます。同じ構成コードで Docker のイメージ以外も作りたくて。というわけで Berkshelf です。 repositories { mavenCentral() } buildscript { repos…

Packer で Chef な Docker に Dockerfile 重ねていきたいので Gradle その1

なにしろいま表題のような感じでいろいろ試してるんです。そうしたら、本当に38.9℃の熱を出して2日間寝込んでしまいました。 寝込んでいる間 Kindle Paperwhite で Manning の『 Gradle in Action 』を途中まで読みました。この作者の Benjamin Muschko さん…

Dockerfile でどうやるのと思って調べた小さい話

このところ Docker やってます。前にやってたのが去年の10月でさすがに半年以上立ってるので進化していて Docker Hub ができてほんと助かります。 private な image の共有はサーバ自分で立てろ、とかだったので…。 Dockerfile 内で、 build を実行している…

packer の既存 VM から box を作り直すやつは罠が多い

virtualbox-ovf Ubuntu precise では、おそらく Waiting for network configuration が出てネットワークインターフェースを見失う。 sudo rm /etc/udev/rules.d/70-persistent-net.rules 消して、シャットダウンし、また起動すると再生成されてしまうので起…

ACM

もっと日記っぽいことも書いてゆきたいと思っております。 こないだ ACM のライブラリ付きの subscription 購入したんです。特にそんときは何も考えて無くて(たまにゃーアカデミックな論文も読みたいけど専門家がキュレートしたやつがいいなあ)てなもんだ…

Vagrant の box を適当に作る

Vagrant Cloud 良いですよね。何が良いって private もあるところと、ゲストをインターネットに一発公開のあれです。 というわけで、横着していままでストックの precise64 から毎回大量の provisioning して作っていた環境を box にしてみました。あ、もち…

RubyMine と Ruby 1.9

RubyMine のテストランナーを便利に利用する RubyMine のテストランナーは進捗もゲージが増えていって爽快だし、テスト対象のファイルと項目がツリーになって表示されてどんどん緑ランプが付いて消えていくのも楽しいし、落ちたら赤いランプが付いてそのまま…

trello の board の権限メモ

trello 使ってます。 trello の board の権限設定はファイルのパーミッションに似ていて、 Read と Write がある。 Read のことを "Visibility" 、 Write のことは board の "Member" と呼んでいる。 Visibility / Read Private Organization Public があり…

Anker の多ボタンマウスを OSX で使う

Windows で RubyMine を操作するために安い多ボタンマウスをと思い Anker の Anker 8200 DPI High Precision Laser Gaming Mouse を購入して使ってみたら、とても具合が良かったです。メインの2つに加え、戻る進むと僕の苦手なホイールクリックを除いてもあ…

Google Chrome の Extension 書いて詰まったりおっと思ったりしたところ

今朝、クロネコさんの荷物問い合わせ結果画面をリロードしつつ「配達中」ステータスになるのを待っていたら、なんかこれは人間のやることじゃないぞと思い立ち、 Chrome の Extension を書きました。 それがこれ、クロネコヤマタブルです。 しかしこの Exten…

cmd.exe と awsome print

すっかり Windows での仕事に慣れたので、これまではそういうものだからと最初から諦めていたことも少しだけ調べてみたりしています。 cmd.exe で ANSI colors cmd.exe 上でも ANSI 色エスケープシーケンス出力を視覚的な色に変換したいです。例えば awsome …

Rails のドキュメントを生成して S3 に置いた

要するに今関わってるプロジェクトの Rails は新しくないのであります。こないだ書いたとおり生成してローカルで見てたけど、布団の中では見れたり見れなかったりする。寝る前に丁寧にマシン落としてると見れない…。 もう私の見たいときにいつでも見られるあ…

Rails の任意のバージョンのドキュメントを生成して閲覧

古い特定のバージョンのものなども見たく、 http://api.rubyonrails.org/ にある公式のもので古いものを見られるのかどうなのか自分の検索力では分からなかったので、手元で立てれば良いじゃんってことで。 rails のリポジトリを clone してきて Rakefile 見…

ConEmu 入れ直し

Chocolatey で入れていた ConEmu ですが、 stable を2年放置で preview が進むタイプの開発だと言うことに気づいたので自分で入れ直し。ついでに、 Clink 入れた。 cmd.exe 向け readline って感じで実に良い。 ConEmu_Clink - conemu-maximus5 - Windows Co…

1.7.0 から出来るリモートブランチの消し方今日知った

git

$ git push origin --delete branch_nameにょーん。1.7.0 って 2010年の2月だ。辛い。

Windows で ruby 2.1.1 をビルドする

事情あってクリーンインストールしたので Windows 8.1 に ruby を入れ直そうと思ったが、 RubyInstaller に 2.1 が来ないのと、 Windows のことだしいつ RubyInstaller の更新止まってしまうか分からない。最低限のことはサードパーティに頼らず自分で出来た…

今日一発で入らなかった gem たち

debugger-ruby_core_source H:\repos\oogatta> gem install debugger-ruby_core_source -- --with-ruby-dir=C:\Ruby193 Windows の Path 全然関係ないんですが setx で時代は変わったぜ的なことを思ってからあんまり環境変数弄るツールのことも考えてなかっ…

相当どうでも良い Vagrant の小技

Vagrantfile の中で gem を require する そんなことすんならプラグイン書けや!ってミッチェル先生の声が聞こえてきそうですが、できます、てか、そもそも Vagrant のプラグインってあれただの gem なんで $ vagrant plugin install httpartyで入れて、普通…

正月に帯状疱疹やったら大変でした

全然関係ない話なんですが、正月に帯状疱疹という病気にしこたまやられておりましてそのことを前に一言だけ書いたら検索してくる方がいて、あ、そういえば自分も検索したなあと思い出したのでここに残しておくことにしました。 前兆 2013年12月25日に、寝違…

アプリ開発の準備のメモ

iOS

仕事で初めて、シミュレータから先の iOS アプリ開発を体験しました。すごいですねこれは。タフだ。いわゆるベータテストしようとすると、 Apple がサインした俺が俺であることを証明する証明書(自分の実機で走らせたいのか、不特定多数で走らせたいのかで…

scriptlet failed, exit status 127 / Non-fatal POSTIN scriptlet failure in rpm package

どうも最近、 kernel のバージョンアップに kmod-VirtualBox が付いていかないなあ。と思っていたら、インストールに失敗していた。 warning: %post(kmod-VirtualBox-3.12.7-300.fc20.x86_64.x86_64) scriptlet failed, exit status 127 Non-fatal POSTIN sc…

Rails on Vagrant on Windows 開発

この正月休み帯状疱疹にかかって都合7日間布団の中におり、その後3日間は出社せず自宅で作業していました。自宅作業の際 Photoshop を使う必要があったため、 Windows 機(エロゲから音楽再生からやっている私のメイン PC 。メモリ32GB)といつもの Ubuntu …

Vagrant が絶対に一個、 host の pwd と guest の /vagrant の synced folder を作ろうとするのを止める

config.vm.synced_folder "./", "/vagrant/", nfs: true, disabled: true disabled: trueする。しかない。えー?本当?

自分で作った box で vagrant up すると "Waiting for machine to boot. This may take a few minutes..." で永遠の時が流れる

vagrant のデバッグ Debugging and Troubleshooting - Vagrant Documentation $ VAGRANT_LOG=info vagrant up とかする。見ると ssh で入れないんだけど!?。って怒ってて、ご丁寧に「ゲストに公開鍵入ってる?ねえ?」って言ってくれてた。あ、 packer は…

Mac ホストで Vagrant の nfs mount がエラー

(追記)Vagrant 1.4.0 で治ってるのを確認しましたMavericks です。 $ vagrant up Bringing machine 'default' up with 'virtualbox' provider... [default] Importing base box 'precise64'... [default] Matching MAC address for NAT networking... [def…

Vagrant で nfs 有効にするときのホストの準備

Fedora19 # yum install -y nfs-utils system-config-nfs # systemctl enable nfs-server # systemctl start nfs-serverうろ覚え。 nfs-lock が有効になっていないとゲストの中で sqlite を DB に使う Rails アプリケーションが起動しないので気をつける。で…

Vagrant が synced folder をマウントした後に rails server を自動起動したい。

独立環境を起動しながらもホストでファイルの編集をしたらそれがすぐにゲストに反映されるように、ということが Vagrant の Synced Folders を使えばできる。例えば Rails プロジェクトのルートディレクトリに Vagrantfile を置き、そこから vagrant up する…

Upstart の job configuration file のデバッグ

job configuration file を書くときの準備。全部 cookbook に書いてあるのですが、一応。ちなみに私が今回書いたのは Vagrant の precise box 用なので、 Upstart のバージョンは 1.5 となります。 ちゃんと認識されているか # initctl listSystem Job は /e…

Vagrant はとても簡単&気づいたこと

とても簡単 「自分の開発環境用だし、既存の Configuration Management System の資産が無いのに使っても意味あるかな?」とか思ってましたが、意味も何もとんでもなく簡単なので、「環境構築のコマンドをメモっておく」くらいなら Vagrantfile 書いたほうが…

組織における開発の地獄パターン

特に誰にも相談したり説明したりせず作り始める 所属組織内で誰も付いてこない 流行らない OR ディスられる がんばってるのに誰も理解してくれない! AND インターネットに共有して(じつはここが最初のプレゼンテーション)初めて「イイネ!」って言われる …

Fedora19 で Ruby コンパイルできない

Can't install on Fedora · Issue #443 · sstephenson/ruby-build ruby build broken in fedora19/20 and other redhat systems · Issue #2321 · wayneeseguin/rvm Bug #8384: Cannot build ruby against OpenSSL build with "no-ec2m" - ruby-trunk - Ruby …

IE11 を IE7 または IE8 モードで動かした時、特定条件下で ActiveXObject の typeof がおかしい

code https://gist.github.com/oogatta/7208821 <html> <head> <script src="test.js"></script> </head> <body> </body> </html> var isFunction = function(object) { // only with 'typeof' return typeof object == 'function'; }; // run in one thread. piled up karma var result = ''; for ( var i…

iOS7 の Safari はゆるふわな HTML に厳しい

こんなゆるふわでファウルな HTML があったとしまして <html> <head> <meta charset=utf-8 /> </head> <body> <div id="firstunko"> <p id="unko">unko</p> </div> <div id="secondunko"> <p id="unko">unko</p> <p id="unko">unko</p> <p id="unko">unko</p> <p id="unko">unko</p> <p id="unko">unko</p> </div> </body> </html>

git でリモートリポジトリを clone する際、特定のブランチだけ取ってきたい

git

$ git clone -b [branch] --single-branch [remote-repository]でした。古い文章だと $ mkdir test $ cd test $ git init $ git remote add [remote] [remote-repository] $ git fetch [remote] $ git co [branch]って書いてるのもあるけど、これだと remote…

urxvt の clipboard プラグイン

選択したら PRIMARY じゃなくて、いや PRIMARY にもだけど、 clipboard にも送りたい。そうなれば xsel -p -b です。 #! /usr/bin/perl sub on_sel_grab { open my $xsel, '| xsel -i -b -p'; print $xsel $_[0]->selection; close $xsel; return (); } なん…

エディタ用 Perl 型推論エンジン PlSense

JavaScript 僕はもともと VisualStudio で JavaScript を書いていて、 VisualStudio の、どのバージョンからだったからか忘れてしまいましたが、「これからは Web だ」って言い出したときに実装された JS 用の Intellisense がかなり高機能で、型推論ばりば…