2013年3月22日金曜日

pythonでredirectするとエンコーディングエラー

Pythonでprintで日本語の文字を書き出している場合、画面に出してると大丈夫なのに、redirectすると したのようなエラーがでることがある。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
調べてみるとttyのときだけ親切に色々やってくれているんだけど、 redirectとかpipeだとそれが機能しなくなり、内部で持ってるunicode表現文字をデフォルトのasciiにエンコードしようとして失敗する、 ということのようだ。 ここにいい方法がのってた。
import sys
import codecs
sys.stdout = codecs.getwriter('utf8')(sys.stdout)
としておくと以降のstdoutへの出力が常にutf8で自動的にencodeされるようになる。

jquery で入力フィールドに透かしを入れる

多分佃煮にするほどあるのだろうけど、 http://digitalbush.com/projects/watermark-input-plugin/にあるのを使ってみる。
としておいて、
  
<script src="jquery.watermarkinput.js"></script>
  
<input id="tag"></input>
とやって作ったinputに対して、
  
$( '#tag' ).Watermark("label", "#999");
とやって出来上がり。第2引数が色。

2013年3月17日日曜日

ubuntu ネットワーク増設

/etcnetwork/interfaces に追記する。
auto eth1
iface eth1 inet dhcp
DHCPで取らない場合には
auto eth1
iface eth1 inet static
    address 192.168.11.15
    netmask 255.255.255.0
    gateway 192.168.11.1
とかするようだ。 で、networkを下げてあげる。
sudo start network-interface INTERFACE=eth1
などとやるとeth1がupする。 service とかつかわずにstart, stopなどを用いるようだ。