2012年10月27日土曜日

Ubuntu 12.04でethtoolで帯域制御

Ubuntu Server 12.04.1 LTSでの話です。
ちょっとスピードを調整する必要があるので、ethtoolをaptでインストールして
sudo ethtool -s eth0 speed 100 duplex full autoneg on
とetotoolコマンドを実行するんですが
sudo ethtool eth0
で確認しても特に変化なし。ちゃんとifdown eth0してからやってるんですが。
以前のUbuntuではこれでいけたんですけどね。
試しに、/etc/netowork/interfacesのほうに以下を記述してネットワーク再起動したらいけた。
post-up ethtool -s eth0 speed 100 duplex full autoneg on
まあどうせOS再起動しても大丈夫なようにこのように設定するんですが、ちょっと気になったんで一応書いておきました。

2012年10月25日木曜日

Ubuntu 12.04で固定IPアドレスにしたら名前解決できなくなった

Ubuntu Server 12.04.1 LTSをインストールして、/etc/netowork/interfacesを編集してIPアドレスをstaticに設定したところ、名前解決ができなくなってしまった。
とりあえず、/etc/resolv.confを調べたら何も記述なし。なんかコメントが書かれてあったので見てみると
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
どうせ上書きされるから編集するなとか、resolvconfで作られるよとか書いてあるので、とりあえずman resolvconfすると答えが書いてあって、/etc/network/interfacesを編集して
dns-nameservers 192.168.3.45 192.168.8.10
こんな感じでDNSサーバを指定して、ネットワーク再起動するか、resolvconf -uすると/etc/resolv.confにも反映されて名前解決できるようになりました。

なんかDNSレゾルバに関する大きな変更があったとのことですね。

2012年10月24日水曜日

Windowsでgem install thinでエラー

gem install thinすると下記のようなエラー。
C:\Users\kyashiro>gem install thin
Building native extensions.  This could take a while...
ERROR:  Error installing thin:
        ERROR: Failed to build gem native extension.

C:/ruby/bin/ruby.exe extconf.rb
checking for main() in c.lib... no
creating Makefile

nmake
'nmake' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。


Gem files will remain installed in C:/ruby/lib/ruby/gems/1.8/gems/thin-1.5.0 for
 inspection.
Results logged to C:/ruby/lib/ruby/gems/1.8/gems/thin-1.5.0/ext/thin_parser/gem_
make.out

これ前にもあったなと思って手元のメモを検索してみたら、rcovをインストールしたときにも出てたんでそのときの方法を一応書いときます。
ちなみに環境はWindows 7 64bitでRubyのバージョンは1.8.7。
Visual Studioのコマンドプロントからだとnmakeへのパスが通ってるようなのでVisual Studio 2010のコマンドプロントから再度gem install thinすると今度は下記のようなエラー。
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>gem install thin
Building native extensions.  This could take a while...
ERROR:  Error installing thin:
        ERROR: Failed to build gem native extension.

C:/ruby/bin/ruby.exe extconf.rb
checking for main() in c.lib... no
creating Makefile

nmake

Microsoft(R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        C:\ruby\bin\ruby -e "puts 'EXPORTS', 'Init_thin_parser'"  > thin_parser-
i386-mswin32.def
        cl -nologo -I. -I. -IC:/ruby/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi  -O2b
2xg- -G6  -c -Tcparser.c
cl : コマンド ライン warning D9035 : オプション 'Og-' の使用は現在推奨されていま
せん。今後のバージョンからは削除されます。
cl : コマンド ライン warning D9002 : 不明なオプション '-G6' を無視します
parser.c
        cl -nologo -I. -I. -IC:/ruby/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi  -O2b
2xg- -G6  -c -Tcthin.c
cl : コマンド ライン warning D9035 : オプション 'Og-' の使用は現在推奨されていま
せん。今後のバージョンからは削除されます。
cl : コマンド ライン warning D9002 : 不明なオプション '-G6' を無視します
thin.c
c:\ruby\lib\ruby\1.8\i386-mswin32\config.h(2) : fatal error C1189: #error :  MSC
 version unmatch: _MSC_VER: 1200 is expected.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\cl.EXE"' : リターン コード '0x2'
Stop.


Gem files will remain installed in C:/ruby/lib/ruby/gems/1.8/gems/thin-1.5.0 for
 inspection.
Results logged to C:/ruby/lib/ruby/gems/1.8/gems/thin-1.5.0/ext/thin_parser/gem_
make.out

config.hを覗いてみると
#if _MSC_VER != 1200
#error MSC version unmatch: _MSC_VER: 1200 is expected.
#endif
_MSC_VERっていうのはcl.exe(VC++のコンパイラ)のバージョンらしい。 Wikipediaによると2010の_MSC_VERは1600とのこと。ちなみに1200はVisual C++ 6.0とのことですね。なので
#if _MSC_VER < 1200
とか
#if _MSC_VER != 1600
とか編集すればいけます。Windows面倒いっすね。(嫌いじゃないけど)

2012年10月17日水曜日

Facebookのデバッガーでデバッグできなかった

とあるサイトでFacebookにリンク貼っても画像出ないって言われたのでとりあえずデバッガーを使って調査をしてみたところ
ダウンロードできません: URLからデータを取得できませんでした。
というメッセージが出ててOGPの設定は一応してあるんですが、そもそもそれ以前の問題っぽいのでちょっとGoogleしてみたところ こちらに書いてある文字コードが怪しそうだと思ったらビンゴでした。ありがとうございます。
Ubuntuだと /etc/apache2/conf.d/charset に設定があり
#AddDefaultCharset UTF-8
になってるので
AddDefaultCharset EUC-JP
と設定すると無事いけました。
UTF-8で作れやって話ですが、レガシーなサイトなものでそこはあれで。

2012年9月7日金曜日

特別障害者手当の申請漏れに注意

特別障害者手当というのがあるのですが
精神又は身体に著しく重度の障害を有するため、日常生活において常時特別の介護を必要とする状態にある在宅の20歳以上の者に支給されます。
という要件を満たすと支給されます。

義母はこの要件を満たしてますので(満たしてくはないものですが)、この度申請して支給されるようになりました。月額26,260円は大きいのでありがたいものです。

無事に支給されて一安心なのですが、実は8年程前からこの支給要件は満たしてたんですよね。でも申請してなかったからもらえそびれてた。ちょっと怖いですがざっと計算してみると約250万円!という結果でビビりますね。

年明けくらいから妻の実家に引っ越して同居するようになり、介護のお金関連の知識をインストールしたので、この手当の件について義父に聞いたところ、もらってるということだったので、まあさすがに手続きとかするときに役所の人が教えてくれるよねとか思ってたんですが、よくよく聞いてみるともらってると思ってたのは別の手当でこれは申請してなかったことが判明した次第です。申請主義ということで役所のほうからは特に教えてくれないのかもしれませんね。

2012年8月25日土曜日

Amazon CloudFront エッジロケーションのキャッシュを削除して10分で変更を反映させる

Expiresヘッダーを10年後とかに設定してるけど、CSSファイルの変更をすぐに反映させたいとかいうときに。
まあそんなに長く設定してなくてもデフォルト設定で24時間くらいかかるようなので。
  1. オリジンサーバー上のファイルを修正
  2. AWS Management Console上で該当するDistributionのDistribution Settingsへ
  3. InvalidationsタブでCreate Invalidateボタン押す
  4. 該当ファイルのパスを指定してInvalidate押す
  5. 10分待って変更が反映されてるか確認
普通にAWS Management Console上の操作を書いただけな感じになりましたがまあそんな感じで。

2012年8月23日木曜日

Amazon S3上のファイルのExpiresヘッダーを一括編集する

巷にはいろいろ便利ツールがあふれてると思いますが一応。
今回はRubyで aws-s3 を使ってみました。
require 'rubygems'
require 'aws/s3'

AWS::S3::Base.establish_connection!(
  :access_key_id     => '',
  :secret_access_key => ''
)
# 東京リージョンに設定
AWS::S3::DEFAULT_HOST.replace "s3-ap-northeast-1.amazonaws.com"

AWS::S3::Bucket.objects('static.xcream.net').each do |obj|
  if obj.key !~ /\/$/
    obj.store(
      :cache_control => 'max-age=315360000',
      :expires => Time.now + 60*60*24*365*10).httpdate,
      :access => :public_read
    )
  end
end
特にファイルの種類を区別することなく10年後に設定してます。