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接続できな…

mailman: 別ホストへの移設(作業メモ)

意外に簡単。以下、CentOSでの実施手順: % sudo -s $ /etc/init.d/mailman stop $ cd /var/lib $ tar cf ~/mailman.tar mailmanドメインを切り替える。新ホストにログインして、 % scp oldhost:~/mailman.tar . % sudo -s $ /etc/init.d/mailman stop $ cd …

JavaScript: Chrome で window.scrollBy が効かない場合の解決方法

http://example.com/foo#bar みたいなページがロードされたら、#bar の位置までスクロールされますが、10ピクセルだけスクロールを戻したいとします。Firefoxでは、次のコードでOK。 $(document).ready(function () { window.scrollBy(0, -10); });しかし、C…

Rails: 宛先不明で戻ってくるメールを処理する

ActionMailer でユーザーにメールを送って、「宛先不明」等で戻ってきた時には、ユーザーのアカウントを無効にする処理をする方法のメモ。まず、こんな風に書きます。 class MyMailer default :from => 'info@example.com', :return_path => 'error@example.…

Ubuntu 11.10 amd 64にATOK X3をインストール

Ubuntu 11.10 amd 64にATOK X3をインストール基本的には http://d.hatena.ne.jp/madosuki/20111017/1318831271 の通りです。自分と同僚のためにちょっと整理しておきます。まず、ATOKのCD-ROMをPCに挿入してから、以下のコマンドを順に実行: export LANG=C s…

Capistrano: 環境変数の設定 (メモ)

今日、Capistrano で Rails 3.1 ベースの Web アプリをリモートにデプロイする準備をしていた時のこと。deploy:restart の後に delayed_job のプロセスを再起動したかったので、 require "delayed/recipes"...after "deploy:restart", "delayed_job:restart"…

warning: regexp match /.../n against to UTF-8 string

Ruby 1.9.2 環境で spec を実行した時に、 warning: regexp match /.../n against to UTF-8 stringという警告がたくさん出て困った。ここに書いてある通り、Gemfile に gem 'escape_utils'と書き、config/initializers/escape_utils.rb を作って、 module Ra…

IE7のz-indexに関するバグ: 親エレメントに大きな値を設定で解決

2011年8月(!)にもなってIE7のz-indexに関するバグに初めて遭遇していました。当然、Googleで検索すれば大量のブログ記事が出てきます。jQueryですべてのdiv要素にz-indexを設定するという力業が検索上位に出てくるけれど、これはちょっと、という感じもしま…

mysql, ubuntu: mysql_install_db が失敗する(解決)

Ubuntu Server 10.04 LTS に apt-get で MySQL 5.1 をインストールし、mysqld_multi で複数のインスタンスを動かそうとしました。第2の mysqld は 3307 番ポートを使用し、データディレクトリは /opt/var/lib/mysql とします。最初に行うことはシステムデー…

最新版の nginx を ubuntu 10.4 に apt-get でインストール

nginx を初期状態の ubuntu 10.4 に apt-get でインストールしようとすると、古いバージョン 0.7.5 が入ってしまいます。以下の手順で最新版をインストールできます。 % su - $ apt-get install python-software-properties $ nginx=stable $ add-apt-reposi…

Linux: プログラムごとのメモリ使用量を調べる

2007年の投稿ですが、あるサイトにHow much RAM is used per programという記事があって、プロセス単位ではなくプログラム単位でメモリ使用量を調べてくれるスクリプトが紹介されていました。使い方:このページにあるPythonのコードをps_mem.py というファ…

psql: FATAL: Ident authentication failed for user "foo" (自分用メモ)

普段MySQLしか使わないので、急にPostgreSQLの仕事が来て、少し慌ててしまいました。MySQLと異なりPostgreSQLのデフォルトでは、OSのユーザー名とデータベースのユーザー名が一致しないとpsqlでログインできません。例えば、OSのユーザー名がkurodaで、ユー…

no such file to load -- mongrel_rails

ちょっと古いRailsアプリケーションを移設する仕事を請け負いました。Rails のバージョンは2.0.2で、mongrelで動かしています。これを別のサーバに引っ越しをしたい、というのが顧客の希望です。ゆくゆくはRails 2.3経由でRails 3.xにアップグレードしたいと…

Rails + jpmobile: undefined method `on_load' for ActiveSupport:Module

Rails 2.3.11とjpmobile 0.1.6の組み合わせだと、 undefined method `on_load' for ActiveSupport:Moduleというエラーが出て動きません。ちょっと古いけどjpmobile 0.0.8ならOK。

Rails: auto_link メソッドはバージョン 3.1 で廃止

2011年5月2日のコミットで、auto_linkメソッドがRailsから除かれました。Rails 3.1から標準では使えなくなります。引き続き使いたい人は、rails_autolink gemを使ってください。廃止の理由は「May not be safe!」だそうです。