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…

GitLabではまったこと(いじっていたら)

NginxとかいじっていたらなぜかGitLabでWebHookあたりで500を返していた。それ以外にもコミットグラフとかが500エラーだったので修正を行った。やったことは以下のコマンドで調べた。 bundle exec rake gitlab:env:info RAILS_ENV=production bundle exec ra…

Redmineをnginxで動かす

今日はmacで動いているRedmineはapacheで動いているので nginxで運用したいので以下のサイトを参考にうまくいきました。 さくらVPSで nginx + MySQL + Unicorn + Redmine の運用 基本的に行ったことは。1、Gemfileに gem 'unicorn'を追加して。2、bundle i…

GitLabとRedmineの連携

自分のmacに入れているGitLabとRedmineを連携させました。以下のサイト参考に。http://qiita.com/yaeda/items/72d5c0e3d802c70fea8b上のサイトの通り、自分のもgitlabのリポジトリとは別でcloneして RedmineからGitのリポジトリを見るができた。 今日は終わ…