Dockerでhubot-slackを動かす

SlackのTokenを取得する これは、Slackから取得するればおk hubotをSlackに接続できるようにする yomanのジェネレーターを使って作成します 簡単ですね。 npm install -g hubot coffee-script yo generator-hubot # hubotの雛形を作成 yo hubot # slackのア…

IntelliJ IDEAのGo言語に関する設定

IntelliJ IDEAでのGoのプラグインをインストール Goで検索すると、候補が出るのでインストールする これだけです Go言語のSDKを作成 homebrewでインストールしたGoのパスの設定をします GO SDKを指定するとパスを指定します 今回は、/usr/local/Cellar/go/1.…

scalaのプログラムをCircleCiを使ってs3にアップロードして、dockerで起動させる

scalaのプログラムをdockerで動かすために sbt-dockerとかありますが、今回はそれは使いません。 起動までの流れ CircleCi のテスト完了後に、ファイルをS3にアップロードする dockerはファイルにアップロードされたファイルを解凍して、起動する 単純に、CI…

slickでHikariCPを使った時の設定値の上書きに関して

slickでHikariCPを使うときに、設定値が上書きされて コードを見てたら気づいたことがあったので残します。 slickでHikariCPを使うときの設定 HikariCP https://github.com/brettwooldridge/HikariCP db.master { url = "jdbc:mysql://hoge:3306/hoge" drive…

個人用のwordpressをdockerで動かす

自分がいじっているwordpressをDockerで動かすようになりました。 前提条件 wordpressのコードは、リポジトリ管理する DBは、RDSを使う ホスト側でnginxを動かす wordpressの運用の良い方法は、あまり知らないので参考しないで欲しいです。 仕事では、このよ…

goをdockerでbuildから起動まで

今回は、とりあえず動くベースでやったのでこの方法を 仕事のサービスでは使わない方がいいです。 https://github.com/oomatomo/go-redirect.git goで簡単なリダイレクトするプログラムを作ったやつです。 これをdockerを使って起動します。 FROM centos:cen…

メモ:rpmからjavaのアップデートをする

www.ipa.go.jp javaの脆弱性が見つかったので、上げるときのメモ Java SE Development Kit 8 - Downloads oracleのサイトから、Accept License Agreement を選択状態にして 取得したいRPMのリンクを取得する http://download.oracle.com/otn-pub/java/jdk/8u…

ActorでDispatchを使うときHttp.configureは使えなかった

Actorでdispatchを使ってRSSを解析しようとしたら。 dispatchの通常の使い方ではエラーとなったので、残しておく。 dispatchを使う時、dispatch.Http を作成して利用するのですが。 Actor内では、Http.configure を使って dispatch.Http を作ろうとすると上…

slimでrubyの変数によってクラスを変えるやり方

slimでrubyの変数によってクラスを変えたい時のやり方です。 よくやるやり方が - if で複数行に渡って書くやり方がある。 - if status == 0 tr.success - else tr.danger ただ、これだとネストするしこのロジックの後に 同じhtmlを生成しようとすると面倒に…

docker-machineをupdateした時に出たエラーの対処

docker-machineでdockerを使ってたら、以下のエラーが出たのでその対応! $ docker ps Error response from daemon: client is newer than server (client API version: 1.21, server API version: 1.20) Error response from daemon: client is newer than …

バックアップファイルを圧縮してs3に保存するメモ

MySQLのバックアップ mysqldump -uroot --single-transaction wordpress | gzip | aws s3 cp - s3://backup/wordpress/`date +'%Y-%m-%d'`.gz 個人で利用している分なので mysqldump で十分な感じです。 mysqldumpしたものを圧縮して s3 に保存するワンライ…

Playでテスト用の設定ファイルを読み込む(Scala)

毎回、忘れるのでメモとして残しとく ScalaのPlayでは、以下のように -Dconfig.file=conf/test.conf で設定しても デフォルトの application.conf しか読み込まれません。 activator -Dconfig.file=conf/test.conf test テスト用の設定を読み込ませたい場合…

CircleCIでScalaのマルチプロジェクトをテストし、カバレッジを出力する

CircleCIでScalaのプロジェクトのテストを回した時の内容です。 circle.ymlは、以下の通りです。 machine: timezone: Asia/Tokyo java: version: oraclejdk8 dependencies: cache_directories: - "~/.sbt/boot" override: - sbt update test: override: - sb…

Slick 3.1.0でのCodeGenerator(joda-timeサポート付き)

自分が前に開発したプロジェクトでslickのバージョンが2系を 利用していたのでslick 3系にアップロードした際に CodeGeneratorの書き方が変わっていたので、そのメモです。 slick 2の場合 import com.typesafe.config.{ Config, ConfigFactory } import scal…

dockerでDynamoDB Localを構築する

DynamoDB LocalをDockerを利用して構築します。 ダウンロードして、展開して実行だけですね。 FROM centos:centos6 MAINTAINER oomatomo ooma0301@gmail.com RUN rpm -Uhv http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm RUN y…

docker-composeで開発用のredisとmysqlを構築する

今回は、docker-composeを使って開発用にredisとmysqlを使います。 最近は、docker-composeをサービスごとに作って利用しています。 docker-composeをインストール方法 brew caskでinstallできます。 brew install caskroom/cask/brew-cask brew cask instal…

Gitで削除したファイルを一括でgit rmする方法

Git

Gitで削除済みのファイルを削除したよっていうコミットを作成する時 git rm ファイル名 をします。 毎回 git rm するのが嫌なので、一括で出来るようにする方法です。 git ls-files -d -z | xargs -0 git rm git ls-files の説明 リポジトリ対象のファイルを…

docker-machineを使ってみる

Install for Mac brew でサクッといけます。 brew install docker brew cask install docker-machine docker-machine https://docs.docker.com/machine/#osx-and-linux dockerを利用する土台用の仮想環境を構築する。 (boot2dockerではじめに作成した環境と…

Grapeではto_jsonはいらないよ

grape側のAPIで { error: "not exist cache" }.to_json format :json 指定したらいらないらしいto_jsonを行った場合に以下のような違いが出てくる。 expected: "{\"error\":\"not exist cache\"}" got: "\"{\\\"error\\\":\\\"not exist cache\\\"}\"" テス…

PerlTidyでの一括整形コマンド

地味に面倒くさかったので、メモとして残します初めにやろうとしたことfind ../lib -name '*.pm' | xargs perltidy -pbp 失敗でした。ただ、整形後のコードが標準出力として表示されただけでした。-pbpは以下の内容が含まれています。 上記のオプションでダ…

Catalystでリクエスト元IPアドレスをいじるテストについて

Catalystでリクエスト元のIPアドレス によって処理を分岐させるコードがあったのですが、テストコードでのテストはしていませんでした。存在しなかったので、テストコード書くことにしました。やったこと・ LWP::UserAgent local_address・ Test::WWW::Mecha…

VagrantでのDisk追加(VirtaulBox)

VagrantでのDisk追加の方法として Vagrant.configure("2") do |config| file_to_disk = './box-disk3.vmdk' unless File.exist?(file_to_disk) vb.customize [ "createhd", "--filename", file_to_disk, "--size", 80*1024 ] end vb.customize ['storageatta…

windowsでvagrantのネットの接続が遅い件

windowsでvagrantを使って、開発をしています。そこでVagrantfileでprivate_networkを利用してIPアドレスを設定しているのですがネットの接続が異常に遅くなってしましました。以下は、その時に使用していたVagrantfileです。 Vagrant.configure("2") do |co…

Gitをソースコードからインストールした時のエラー

git

Gitがyumでインストールしたら、1.7だったので1.8にバージョンアップしました。 yum remove git-core $ sudo yum install openssl097a.x86_64 openssl-perl.x86_64 curl-devel $ wget https://git-core.googlecode.com/files/git-1.8.5.3.tar.gz $ tar zxf g…

chefでカスタムリソースを作る

https://wiki.opscode.com/display/chef/Lightweight+Resources+and+Providers+(LWRP)http://docs.opscode.com/lwrp_custom_resource.html Githubのコードはこちら自分独自のResourceを作成します。作成したファイルは以下の通り├── providers│ └── test.rb├…

zshのシェルオプションについて

zsh

zshのシェルオプションについて・setopt オプションの有効・unsetopt オプションの無効 setopt auto_menu # タブで補完候補を表示する setopt auto_cd # ディレクトリ名のみ入力時、cdを適応させる setopt auto_list # 補完候補が複数ある時に、一覧表示 set…

Cassandraでのエラー 「The stack size specified is too small」

Cassandra起動時のエラーが出たので解決方法のメモを残します。 OSはcentosです。The stack size specified is too small, Specify at least 160kCould not create the Java virtual machine.環境変数を変更しました。JVM_OPTS="$JVM_OPTS -Xss160k" #変更前…

tmuxのcolor一覧について

tmuxのcolor一覧についてtmuxで利用できる色の一覧のシェルスクリプトです。tmux-powerlineから拝借 for i in $(seq 0 8 255); do for j in $(seq $i $(expr $i + 7)); do for k in $(seq 1 $(expr 7 - ${#j})); do printf " " done printf "\x1b[38;5;${j}m…

Dockerに触れる

最近はDockerで遊んでます。 Chefとか黙々やっていたのですが、気分転換にDockerを使いました。メモ代わりに。 公式が一番 公式 準備 git clone https://github.com/dotcloud/docker.git cd docker vagrant up Puttyからの接続 vagrant ssh-config putty用に…

Ubuntuでsourceコマンドが無かった

Ubuntuを使っていてsourceコマンドが無かったのでインストール方法をググりました。sudo apt-get install build-essential checkinstallだけでおkだった。以上。

PerlでのMRO::Compatの__get_linear_isa_dfsが遅い件について

# Perl MRO::Compat経緯:なんかやたらクローンでまわしている処理が重いためNYTProfで計測しました。分かったことがMRO::Compatの__get_linear_isa_dfsを何十万回と呼び出していました。何回もMRO::Compatを呼んでいたのは、DBIx::Class::Rowのinflate_resul…

Exporterが便利でした

今回、仕事の開発でExporterを利用しての開発を行いました。その際に先輩にExporterの便利さに感動したので簡単にメモを残します。今まで知らなかったのが恥ずかしかったです。Exporterはこちら(metacpan) use Encode qw(encode); Perlで上のuseの使い方を見…

CentOSでのMySQLのダウングレード

CentOSでのMySQLのダウングレードする方法。MySQL5.6 → MySQL5.5 yum --disableexclude=all downgrade \ http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-shared-compat-5.5.34-1.el6.x86_64.rpm \ http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL…

mod_perl × Catalyst でPOST時Apache2::RequestRecを取得できない

Catalystを最新にしたら、詰まった点があったのでメモします。mod_perlでCatalystを動かしているのですが、今回Catalystを最新にしたらPOST時にエラーが出た。Catalystのバージョンは5.90051(2013-11-07)です。エラーの内容としてはPOST or PUT 時に下のコ…

Use innobackupex of Xtrabackup and create MySQL backup

Xtrabackupのinnobackupexというコマンドを利用してバックアップを作成したいと思います。(前回はこちら) かなりシンプルな内容です。やることは、以下の通りです。①ローカルのMySQLのバックアップを作成する。②ローカルのデータベースを削除する。③バック…

Xtrabackup Install on Centos6.4

mysqlXtrabackupのインストールでのちょっとしたメモです。XtraBackupの最新版はこちら #rpm -Uvh percona-xtrabackup-2.1.5-680.rhel6.x86_64.rpm 警告: percona-xtrabackup-2.1.5-680.rhel6.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID cd2efd2a: N…

mysqlでデータが存在するときinsertしないDML

今回はmysqlでinsertするデータが存在するとき、insert文を実行しないDMLを紹介します。よくデータベースの作成時にもし存在しなかったら作成するSQL文をみたことがあると思います。「 IF NOT EXISTS 」です。CREATE TABLE IF NOT EXISTS `Kin` ( `category`…

きんちゃんシステムをChefで実装。

欽ちゃんシステムとは、自分が開発した投票システムです。 これをChefを使ってデプロイ出来るようにしたいと思います。今回行うべきこと・PHP,Nginx,Mysqlのインストール・githubからコードをClone・Nginxの設定・データベースの作成以上です。 下準備まずco…

ShellScriptの特殊変数と比較

今回、oh-my-zshのテーマのカスタマイズで学んだシェルスクリプトについて書きます。 ・特殊変数 ・変数の比較(数値比較、文字列比較) 特殊変数$$・・・・・・現在のプロセス番号(PID)$?・・・・・・直近のコマンドの実行結果のステータスコード$#・・・・…

OpsWorksでインスタンス作成。

実際にアプリのインスタンスを作成したいと思います。やったことをぺたぺた画像を貼っていきたいと思います。概念的なことはこちらに。。。 stack , layer, instance, appの順番で見ていきます。 Stack Stackを作成します。適当に名前をつけて[ Add Stack ]…

Oh-my-zshのテーマをカスタマイズ

今回は、Oh-my-zshをインストールしthemaをカスタマイズしました。curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh install.shでは特に難しいことやっていないため、手動で行っても良いかもしれません。早くて簡単です…

VagrantのPackageでベースの仮想環境を使い回す

Vagrantでの仮想環境を作成する際の話です。 vagrant box add "追加したい仮想環境名" "取得先のURL" vagrant init "追加したい仮想環境名" これで構築できるのですが、毎回300MB以上のファイルのダウンロードを行うのは遅いので 取得したファイルを使い回し…

ShellScriptでifの文字列比較

シェルスクリプトでIf文の文字列比較についてよくある変数の文字列比較でつまった。 if [ $foge = "foge" ]; then echo "yes foge" fi これでうまくいくと思っていたがエラーが出てしまった。以下に変更したらおkだった。 if [ "$foge" = "foge" ]; then ec…

DBICでbelongs_toからmight_have,has_oneへ変更でInvalid rel cond key

DBICのリレーションでエラーが出た部分について。 perlのあるテーブルのリレーションをbelongs_to から might_haveにすることにしました。 #変更前 __PACKAGE__->belongs_to( 'item' => 'Test::Schema::Item', { 'item_id' => 'item_id' , 'date' => 'date }…

findとsedでファイルを一斉書き換え

メモ代わりに。複数のファイルの中身を一斉に書き換えるコマンドの紹介です。find + xargs + sed で実現できます。find ./ | xargs sed -i -e 's/変更前/変更後/' これでおk

AWSのOpsWorksに触れてみる

AWSのOpsWorksを少しいじってみました。今回は触ってみただけなので最低限のことしか行っていません。 OpsWorksとは Awsが提供してるサービスの一つです。環境構築やデプロイを自動で行うサービスです。Chefも利用出来る点やAWS特有のEC2やRDSの設定を行える…

Chefで任意のGitリポジトリをCloneする

Chefです。 今日は任意のGitのリポジトリをChefを使ってCloneしたいと思います。 とっても簡単。 recipeに以下の内容みたいに書くだけ。素晴らしいですね。 git "/home/vagrant/dotfiles" do repository "https://github.com/oomatomo/dotfiles.git" action …

ChefのAttribute:複数ファイルで扱い

今回はChefのAttributeについて。Attribute = 属性 ですね。自分の中では変数として考えています。テンプレートファイルとかで毎回ドメイン名とか指定するのは面倒なんで。ではファイルの種類は「.rb」rubyのファイルです。書き方は以下の通りです。default[…

knife solo init (ディレクトリ説明)

最近はchefでいじっています。今回は knife sole init で作成されるファイルの説明を行いたいと思います。 knife sole init [ directory ] 上のコマンドで出来るフォルダについてBerksfile 公式サイトのopscodeからレシピを持ってきたレシピを定義するファイ…

JenkinsとRedmineを連携させた

今日は、JenkinsとRedmineを連携させました。 JenkinsのRedminePlugin JenkinsとRedmineを連携させたかったのでやってみたのですがはじめJenkinsのプラグインの設定からインストールしようとしたが見つからなかったので上のリンクから直でダウンロードしてJe…