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

Linux: mkpasswd, makepasswd, pwgen -- パスワードを生成するコマンドはどれを使うか

いまCentOSとUbuntuを両方とも対象にした原稿を書いているところです。ランダムなパスワードを生成するという手順の説明で、ちょっと困ってしまいました。CentOS 6.3ではパッケージexpectをインストールするとmkpasswdというコマンドが使えるようになり、Ubu…

Rails, RSpec, Spork: モデルが自動でリロードされない場合の対処法

RSpec + Spork で Rails アプリケーションのテストを実行する際、モデルクラスを書き換えてもテスト結果が変わらないことがあります。config/environents/test.rb の config.cache_classes の値を true から false に変えれば、この症状はとりあえず治まりま…

RSpec: double, stub, stub_chain, etc. -- cheat sheet

double あるメソッドを持ったオブジェクトを作る。doubleは「代役」の意。 user = double("user", name: "Taro") user.name #=> "Taro"第1引数の "user" はRSpecが失敗を報告するのに使うラベルに過ぎない(省略可)。 mock および stub というエイリアスが…

CentOS 6: manはLC_ALLよりLC_MESSAGESを優先する?

setlocale(3)のman pageによれば、環境変数LC_ALLはLC_MESSAGESよりも優先されるはずなのですが、私の CentOS 6.3 では export LC_ALL=ja_JP.UTF-8 export LC_MESSAGES=en_US.UTF-8のように環境変数をセットしても、日本語でマニュアルが表示される。ただし…

CentOS 6.3: cannot change locale (en_US.UTF-8)

CentOS 6.3 で sudo yum update した直後に、export LC_ALL=en_US.UGF-8 という何でもないコマンドで次のような警告が出るようになりました。 -bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): そのようなファイルやディレクトリは…

Ubuntu Server 12.04: 警告「Setting locale failed」への対処法

Ubuntu Server 12.04 で次のような警告が出てパッケージのインストールがうまく行かない場合があります。 perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), LC_CTY…

Rails: namespace と subdomain を用いたルーティング

example.com でアクセスされた場合と m.example.com でアクセスされた場合で、異なるルーティングを適用したい場合、 scope constraints: { subdomain: '' } do resource :session end scope constraints: { subdomain: 'm' }, module: 'mobile' do resource…

ファイル圧縮・展開の時間を短縮したい場合にはlzopを使う

ここに約8.2GBのファイルexample.sqlがあります。これを圧縮したいとします。私のPCでは、bzip2で圧縮すると884秒(15分弱)、gzipでは347秒(6分弱)かかりました。他方、lzopで lzop example.sqlとしたら、120秒(2分)で終わりました。速! lzop -d example.sql…

Rails: 巨大なテーブルのマイグレーション

いま、MySQLのデータベースにusersというテーブルがあって、bdayというカラム名をbirthdayに変更しつつ、新たにdeletedというBoolean型のカラムを追加したいとします。Railsのマイグレーションを使えば簡単です。 class AlterUsers ActiveRecord::Migration …

Dovecot: Permission denied

Cent OS 6.2のDovecot 2.0.9でPOP3サーバを構築中のこと。最後の段階になってDovecotがメールボックスを読み取れないという問題に遭遇しました。/var/log/maillog には次のようなエラーが出ています。 Error: chdir(/var/vmail/kuroda@example.com//) failed…

CentOS: ufw でファイアウォールの管理

ufwはファイアウォールの管理ツールで、Ubuntuで標準的に使われています。ufw allow 80/tcp のような簡単なコマンドでポートを開け閉めできます。 CentOS用のパッケージは用意されていませんが、ソースからインストールすれば使えます。 % sudo yum install …

ubuntu: Firefox/Thunderbird で右クリックが効かなくなる問題

Ubuntu 11.10でFirefox/Thunderbird 13.0.1を使っています。しばらく前から、右クリックでコンテキストメニューが表示されなくなって困っていました。今日、多分これで直るだろうという処方箋を見つけたので紹介します。 Firefoxで[編集]-[設定]メニュー…

SVG: ドーナツのような穴の空いた図形を塗りつぶすには

SVGでドーナツのような穴の空いた図形を塗りつぶす方法が分からずに悩んでいましたが、昨夜答えを見つけてスッキリ。ドーナツの縁を円や楕円ではなくパスで時計回りに描き、穴を反時計回りのパスとして描いて、塗りつぶせばいいのでした。[参考資料] http://…

Rails, DelayedJob: 子プロセスで gem の require に失敗する問題の解消法

class LongTask def perform system("/opt/bin/ruby /home/kuroda/foo.rb") end endというクラス LongTask が定義されていて、これを Delayed::Job.enqueue LongTask.new()のようにして DelayedJob で実行するとします。Rails は /usr/local/bin/ruby (Ruby …

Rails, Postfix: 受信メール処理の設定方法(Postfix Adminを利用している場合)

あるLinuxマシンでPostfix Adminを運用しているとします。また、同じマシンでRailsアプリケーションも動いています。パスは /var/rails/example/current とします。ここで、reg@example.jp にメールが届いたら UserMailer.receive に渡す、という処理を行い…

git stash pop でコンフリクトが発生した時に stash の方を採用するには

以下のようなシナリオを想定してください。A氏が最初のコミットをして、中央リポジトリにpush: % echo 'ABC' > test.txt % git add test.txt % git commit -m '1st commit' % git pushB氏が2番目のコミットをして、中央リポジトリにpush: % git fetch % git …

SSL: 秘密鍵、CSRの作成(メモ)

いつも忘れてしまうのでメモします。K を秘密鍵のファイル名、C をCSRのファイル名とすると、 openssl genrsa -out K 2048 openssl req -new -sha256 -key K -out CでOK。「2048」は鍵の長さ。最近は2048ビットが普通です。ただし、上記はパスフレーズを設定…

ubuntu: マウスの左第二ボタンを無効化する

私はMicrosoftのボタンが5個付いているマウスを使っていますが、左の第二ボタンは間違えて押しやすいので無効化してみました。以下、一般ユーザーで実行してください。まず、マウスのidを調べます。 $ xinput listリストの中から該当する項目を探し、id=9 の…

ubuntu: プリンタのデフォルト設定

ubuntu 11.10 (クラシック表示) でプリンタのデフォルト設定(色とか)を変更したい場合、「システム設定」→「プリンタ」からではできません。ターミナルでsystem-config-printer &と入力すると現れる「印刷」ウィンドウから行ってください。

SELinuxを無効にしないと公開鍵方式でSSH接続できない件

CentOS 6.2で遭遇した現象。公開鍵を ~/.ssh/authorized_keys に書き込んだし、~/.ssh のパーミッションを 700 にしてあるし、authorized_keys のパーミッションも 600 だから、絶対に大丈夫だと思うのだけれど、公開鍵方式でリモートマシンにSSH接続できな…