月別アーカイブ: 2011年4月

質問

時間をかけて考えることに意味がないような問題は、ヤフー知恵袋とかのサイトでさっさと詳しい人に聞くようにしてるんだけど

質問しようとして、質問文を考えている間に答え、もしくは答えを見つけるためのヒントが浮かぶことが結構あったりする。

質問するためには、何がわかってないかをはっきりさせる必要があるので、その過程で頭の中が整理されるみたい。

サーバー移転メモ

サーバーの更新時期が来て、いつものように行き当たりばったりで作業して酷い目に合った。
サイトを作るときに、リンクの構造とかもろもろ、コピペで移転に対応できるようにしておかないと、後で手に負えなくなる、というのが身を持ってわかった。

あとは、最近はgoogole app engineを使ってるので、レンタルサーバーは、だんだん面倒に感じてきた。最初は逆だったんだけど。
なるべく余計な物は使わないようにして、できるだけシンプルを目指そう。

LED電球を買ってみた。

家の電球が切れたので、試しに家庭照明用のLED電球を買ってみた。

値段はパナソニックや東芝のメジャーなメーカー品で4000~5000円前後。
メーカーの低価格帯の物で2000円くらい。無名メーカーの激安品で1000円くらい。
ざっと売り場を見た感じでは上記のような価格設定だった。

結局1000円の無名メーカーの安いものとパナソニックの一番力を入れてる5000円くらいのを購入(パナソニックのエバーレッズ(EVERLEDS)という物)。明るさのタイプは白と電球(オレンジっぽいもの)の二つがあって、オレンジを購入。

お店で点灯してあるのを見た感じでは、やはり1000円の物は、5000円のものに比べると暗くて明かりにムラがあるのがすぐわかった。

家で取り付けてみると、単独で使うと別に1000円の物でも十分実用的で、パナソニックの5000円の物と横に並べて比べなければ安物には見えない感じ(しばらくしたら何か気になるところが出てくるかもだけど)。

パナソニックのエバーレッズの方はさすがに、高いだけあって隙がないというか、明るさが綺麗で値段を除けば、何も弱点はないというのが第一印象。

電力消費は前付けていた電球が22ワット、今度のLEDが6ワット。
値段さえもう少し安ければ全部LEDに替えたいところ。昔に比べるとずいぶん安くなったと言っても、今の価格だと全部は無理なので少しずつLED化を進めて行く予定。

ジャパンネット銀行のワンタイムデビットが便利

JNB(ジャパンネットバンク)にワンタイムデビットというサービスがあるのを最近知った。(ジャパンネット銀行
ジャパンネット銀行はよく利用しているものの、トップページにある宣伝は全く見ないので今まで気付かなかった・・。

ワンタイムデビットは、こういうのがあればいいなぁ、と以前から思っていたサービスを実現しているのでちょっと嬉しい。

ジャパンネットバンクのワンタイムデビット(正式名称はJNBカードレスVISAデビット)は何ができるかというと、

  • クレジットカードを使わずに、VISAマークがあるネットショップで買い物ができる。(海外通販等で使いやすい)
  • カード番号は使い捨て(同時に4つまで発行、有効期限は10日、それぞれの番号は買い物したショップでしか使えない。)
  • デビットなので、JNBの口座残高から買い物代金が引き落とされる。最高10万円までの利用(もしくは口座残高の範囲)。

よく知らないサイトでの買い物や、海外サイトでの通販など、メインのクレジットカードを使いたくない場合や、クレジットカードを持っていない人が、VISAでの決済しかできない通販サイトで買い物したい時、ネットサービスの料金を支払いたい時などかなり重宝しそう。実際に、需要が多いからこういうサービスが登場したんだろうけど。。最低利用金額は100円とのこと。今はネット系のサービスでの少額決済も増えているので、利用は多そう。

ElementTreeの使い方

google app engine for pythonでXMLを扱うときにElementTreeを使っていくつかはまった。(beautiful soupの方が簡単そうだけどGAPでは使えないっぽい)
基本的な使い方はネットですぐ見つかるので、わかりにくいことだけメモ。
取り敢えず動けばいいという感じでやってるので、用語の使い方などは適当。。

時間を取られたのは、
ネームスペース(名前空間)がある場合。
違う親の下に同じ名前のタグがある場合。

名前空間がある場合は比較的簡単。

name= ‘{‘ + ここにURI + ‘}’

で必要な物を取り出す場合は

xml = fromstring(xmlp)
title = xml.getiterator(namespace+’Title’)

でOK。
表示する場合はfor構文の中で

title[i].text.encode(‘utf-8’)

みたいにする。

次はやっかいで、違う親の中に同じタグがある場合。
例えば

necoの下にnameがあり、
dogの下にnameもあるとする。

これを

xml.findall(.//name)

としたら、猫と犬の名前がごちゃごちゃに入ってしまう。
個別に取り出すには
順番に指定して、

/neco/name
/dog/name
みたいにしてあげる。(一番上から全部書く)

実際には
xml.findall(.//neco/name)

さらに名前空間もある場合は

xml.findall(.//{url}neco/{url}name)

とすればOK。(urlの部分に名前空間のURIを入れる)
直接入れないで、変数に入れてからやったほうがシンプルなんだけど、なぜかエラーが出て上手くいかなかったので直接入れた。

以上で取り敢えずはすべて解決。