pythonの開発環境

色々あってPythonの開発環境を立てようと思って調べたのだけど、ややこしかったので自分なりのまとめ。現状のまとめとしては以下が一番わかりやすかったですね。 Rubyist が pyenv を使うときに知っておいてほしいこと - Qiita現状の自分の結論的には 2系が…

【メモ】Facebookのogpのキャッシュを一括でクリアする

http://exapmle.com/hoge/:id みたいな下層ページのキャッシュを一括でクリアしたい場合、 for n in `seq 1 10`; do curl -X POST 'https://graph.facebook.com/?scrape=true&id=http://example.com/hoge/'$n ; done でできます。というメモ。

omniauthでtwitter連携画面でキャンセルを押したときの挙動

FAQ · omniauth/omniauth Wiki · GitHubFAQに書いてあった。defaultだとdevelopmentだけ例外投げるようになってるので、それを上書きすればおk

Capistranoでデプロイ時に特定のファイルをデプロイ対象から外す

.gitattributesを用意して、 .gitattributes export-ignore .gitignore export-ignore spec/ export-ignore のように記述します。こうする事でdeploy対象外にすることができます。 これは、以下のp-rの通りdeployする際にgit archiveを使っているからです。U…

Railsでassetsのprecompile先を変更する

public/assetsにもともとコンテンツをおいてしまっていて、precompileしたものと衝突してしまったので。 いちばんいいのはもとからassets以下にはコンテンツをおかないように作ることだとは思う。config/application.rbにて以下を指定。 config.assets.prefi…

Capistrano 3でdeploy時にniceにassets:precompileする方法

config/deploy.rbに以下を書いた。ただ、この方法だと全部のrake taskにniceが効いてしまうのでいまいち。問題はないけど。 namespace :assets do # clear action because Rake DSL on v3 is additive # refs) http://capistranorb.com/documentation/advanc…

Railsのdb:seedでcsvからデータをimportするやつ

を書いた。(db/seeds.rb) あとはテーブル名.csvみたいなCSVファイルをseeds_dirに置けばrake db:seedでimportできる、というメモ。 seeds_dir = "#{Rails.root}/db/seeds/#{Rails.env}" csv_files = Dir.entries(seeds_dir).select {|f| f =~ /\.csv$/ } csv…

Railsアプリの本番環境での運用 -godとか-

perlでdaemontools + Server::Starterで面倒見てたあたりをRailsでもしっかりやりたいなぁと。 以外としっかりとやってるサンプルがウェブに落ちてなかったので、いろいろ調べました。 いろいろ検証してみたけど、最終的に以下のように落ち着きそうです。試…

zshの設定紹介

ふだん僕が使ってるzshの設定を紹介します。 学生時代からzsh使ってて特に気にせず使ってるのですが、新しいPCとかに移るとどんだけzshに助けられてたかを実感したりするわけです。 export WORDCHARS="*?_-.[]~=&;!#$%^(){}<>+" 単語境界にならない文字の設…

よく使うvagrant plugin

最近書けてなかったので、メモがてら、よく使っているVagrantのpluginをいくつか紹介します。 sahara GitHub - jedi4ever/sahara: a plugin for vagrant that allows you manage a sandbox statevagrantのboxの状態を保存して、必要に応じて巻き戻したりでき…

Mac OS X(Mountain Lion)のErlangでwxを動かしたい(動かせてない)

Erlang/OTP trainingでobserver便利そうだったけど、手元で動かせてなかったので。 ちなみに、以下のようなわけで64bitのMac OS Xではwxは動かないらしいです。 http://erlang.org/pipermail/erlang-questions/2013-March/072687.html以下を参考に入れてみま…

Erlang/OTP training 2013に行ってきた

ふだん触ってないパラダイムの言語触るのはだいぶ楽しかったし、いい刺激になりました。 惜しいとすれば、すごい講師の方だったのでもう少し前提知識があればより貴重な情報を拾えただろうことと、@lhoguinはネットワーク系ならだいたいErlang使うって言って…

Erlang/OTP training 2013に来てます

ひょんなきっかけで、Erlang/OTP trainingに参加して、Erlang触ってます。 普段使ってる言語とまったく違う感じで、すごいおもしろい。 言語自体がfault tolerantなsystemを作れるように、みたいな感じ。 key word的には concurrency error encapsulation fa…

Cloud Watchのカスタムメトリクスで特定のurlのhttp status codeを監視する

特定のurlのhttp status codeはこんな感じのshell scriptでとれる。 知らなかったけど、curlいろいろ出力整形できて便利だった。 $ cat /home/ec2-user/cloudwatch/http_status_check.sh #!/bin/sh curl -s $1 -o /dev/null -w "%{http_code}" あとは、cloud…

vagrant + berkshelfを使うときに独自のcookbookをどう使うか

現在、vagrant-berkshlef(ver. 1.2.0)を使うと、cookbooks_pathが乗っ取られるので、もともとそこに指定していた独自のcookbookが見えなくなってしまう。ので、試行錯誤した結果をめも。 方法1 Berksfileでcookbookを管理して、cookbook自体はlocalにinstall…

zabbixで特定のurlのいいね数を監視する

いいね数はAPI経由で取得できるので(参考:Facebookのいいねボタンのいいね数を取得するAPI - Hello API)、jsonで返ってくるresponseをjq(参考:jq)を使ってparseしていいね数のみを取得するshell scriptを用意する。ここでは、jqのinstallは省略します。 $ …

nginxでproxyしてるときにカスタムのエラーページを表示する

結論としては、proxy_intercept_errors onを使う。nginxで、error_pageディレクティブを指定するとカスタムのエラーページを表示できる。 でも、下記のような書き方だと、proxy先の返すhttp statusまで見てエラーページが表示されたりまではしない。 server …

nginx, redisの同時接続数を増やす

node+websocketを使っていて、nginx, redisあたりの同時接続数を増やしたいなぁと思って調べたのでめも。一番詳しかったのはこちらの記事。 Linux サーバでの「Too many open files」対策について - akishin999の日記簡単にまとめると、 ulimit -nで開けるフ…

CentOSでs3cmdを使ってみる

わりと簡単に入れられた。 $ cd /etc/yum.repos.d $ curl -O http://s3tools.org/repo/RHEL_6/s3tools.repo $ sed -i -e s/enabled=1/enabled=0/ /etc/yum.repos.d/s3tools.repo $ yum install s3cmd --enablerepo=s3tools $ s3cmd --configureconfigureの際…

vagrantのchefによるprovisioningでgitのprivte repositoryを扱う

いろいろと要求と制限があったけど、わりときれいに解決したのでめも。まずはssh forward agentの設定 # ~/.ssh/config Host * ForwardAgent yes $ eval `ssh-agent` $ ssh-add ~/.ssh/id_rsa Vagrantfileにもforward agentの設定を書く。 # Vagrantfile Vag…

vagrant-awsでmkdir -p /vagrantで失敗する

だいぶはまったのでメモ。aws用の設定書いてvagrant upすると以下のようなエラーが出てしまう。これ出てても、けっこうスルーしてる人が多い気がする。。。 The following SSH command responded with a non-zero exit status. Vagrant assumes that this me…

AWSでインスタンスIDからそのインスタンスのIPアドレスを調べる

いまvagrant, was, chefあたりを使いつつサーバのセットアップをしてるのですが、その中でEIPを振ってないインスタンスに対してknife走らせるにはどうすればいいか検討している中で試したのでめも。EIPのないインスタンスはstop/startするとIPが変わってしま…

rbenvでchef + knife-solo 0.3.0をセットアップするshell scirpt

knife-solo 0.3.0をgithubから入れるようにしてみた。 #! /bin/sh sudo yum -y install git libxml2-devel libxslt-devel git clone https://github.com/sstephenson/rbenv.git ~/.rbenv && echo 'checkout repository' echo 'export PATH=$HOME/.rbenv/bin:…

いろいろな方法でvagrantをprovisioningしてみる

vagrantはいくつかの方法で、起動時にいろいろな処理を走らせることができます。 今回は、 shell script chef berkshelf によるprovisioningをそれぞれ試してみました。 shell まずは、provisionningがどういうタイミングで走るのかを試しがてら、shell scir…

rbenv + chefをセットアップするやーつ。

母艦のMacの方じゃなくて、VMに入れる想定で。 #! /bin/sh sudo yum -y install git git clone https://github.com/sstephenson/rbenv.git ~/.rbenv echo 'export PATH=$HOME/.rbenv/bin:$PATH' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc so…

Vagrant 1.2.2でSaharaを導入

vagrantでスナップショットを取って変更を巻き戻したりできるsandboxを使えるようにするplugin, Saharaをいれる。けっこうmajorっぽい。 $ git clone https://github.com/ryuzee/sahara.git $ bundle install $ bundle exec rake build $ vagrant plugin ins…

boxenでログインシェルをzshにする

osx_chshを使うのだけど、このResourceはpuppet-osxに依存してるので、それも追加しておく。 dotfilesちゃんと管理して.zshrcとかもよしなにしたいけど、それはまたそのうち。 # ~/src/our-boxen/Puppetfileに追記 github "osx", "1.0.0" # ~/src/our-boxen/…

boxenで必要なものをいれてから、はじめてのvagrantまで。

Vagrant(Vagrant by HashiCorp)で遊ぼうと思い立ったのだけど、せっかくboxen入れたので、必要なものをとりあえずboxen経由で入れてみようかと。ということで、まずboxen経由でvirtualboxとVagrantをinstall # ~/src/our-boxen/Puppetfileに追記 # 現在のと…

boxenを使ってMacのセットアップ

気になってたので使ってみた。 Boxen (redirecting)いくつか記事を参考にやろうとしたけど、どうやらversion上がって、boxenのinstall方法(というかinstall先の構成か)が変わったらしく、とりあえずboxenをuninstallしてやり直すところから。 $ /opt/boxen…

本番サーバでperlの環境構築するのにxbuildを使う

開発はplenv + cartonでやってたのですが、いざ本番サーバセットアップするときにどうしようとなって、んじゃxbuild使うか!となりました。お手軽。本番環境でのperl/ruby/nodeのセットアップ - たごもりすメモ GitHub - tagomoris/xbuild: Language runtime…