サンシャイン牧場の工場データフォーマットが変更になった模様
今までは、工場アイテムは、普通のアイテム情報と一緒に送られてきていたのが、さすがにサイズが大きくなり過ぎたからか、別のコマンドに移された模様。早速データ表のコードも修正しておいた。
前のデータにあった、テントウムシが無くなっている模様。あと、高級アイテムという仕組みも無くなったみたい。
P.S. 高級アイテム自体は残っていた。ただ、確率データが見つからない。
再挑戦
クーラが浮いているのでは? というコメントをもらったので、もう一度挑戦。確かに、クーラが浮いていたら、サーマルダイオードの保護回路作動=>電源入り直しのループになりそうなので、起きている現象がうまく説明できる。
今度は、使ってなかったインテル純正のクーラを使用。
結果は、やはりアウト。現象まったく変わらず。残念。しかしマザーとメモリがもったいないことだなぁ。とりあえずメモリは、サーバ側に回して、8GBにしてやるか。
CPUがとんだ。
日曜の昼ぐらいに、PCが立ち上がらなくなった。電源を入れても、すぐに切れて、自動で入って、また切れてのループ。
なんとなく電源が怪しいので、近所のPCデポで電源を買ってきたが、症状は全く変わらず。
最近どこかいじったかなと思い出してみると、HDDのコピーのためにSATA回りを触っている。SATAケーブルを試しに全部抜いてみる。ダメ。
まさか亜鉛ウイスカ? マザーボードを外してバラックで試してみる。ダメ。
マザーが死んだかなということで、マザーを交換。ダメ
え? ビデオカード? ビデオカードを交換。ダメ。
メモリを1枚だけに。ダメ。
って、あとはCPUくらいしか...大昔のP4に替えてみると、立ち上がった。
最近、定格運用しかしてないから、まさかCPUが死ぬとは、思いもしなかった。それもサーバとかならともかく、そんなに使用時間の長くない、デスクトップで死ぬとはね。
これまで使ってたのは、Core2 DuoのE8400なんだけど、CPUだけ交換するか、i7に行くか。最近i7も値下がりして、コストパフォーマンス的には、i7の方が良さそう。DDR3も、ちょうど先週くらいから下がってきて、値頃感が出てきたんで、i7に乗り換えてみた。せっかくなのでクアッドコアの、i7 875K。マザーはやはりASUSのP7P55D-E。ちょっとBIOSの立ち上がりが遅いのがイマイチかな、このマザー。最近せっかくOSの起動が高速化しているのに、BIOSの方はずっと遅いままだよね。まぁほとんどスタンバイで使うから、実際のところはあまり関係ないんだけど。というわけで、ただいまmemtst86中。最近は、ddでUSBメモリに書き込むためのイメージもダウンロードできる。なんかFDDどころか、CD-R/RWもいらなくなりつつある。
ベートーベン ピアノソナタ 第20番 第2楽章
ベートーベン ピアノソナタ 第20番
Beethoven Piano Sonata No20
この曲って、全曲通じて、強弱記号が2箇所にしか指定されていなかったらしい。自分で強弱を付けてみましょう、みたいな弟子向けの練習問題だったのかもね。
Uq WiMax
秋葉のヨドバシに立ち寄ったら、UQ WiMaxがキャンペーンやってて、ルータとセット(Aterm WM3300R)で、1円になってた。まぁ縛りも無いんでダメならすぐ解約すればいいかなと買ってきてみた。
とりあえず家の中で、机の上でもok。ただ北側の部屋だと窓辺まで持って行かないと厳しい感じ。近所の喫茶店は中でもokだった。
1分に1回アクセスするようにして、電池の持ちを見たら、2時間47分くらい。カタログスペックが2.5時間だから、まぁまぁかな。
で、お次はこいつの出番。
これをつないでみたところ、9時間20分もったから、こいつと一緒なら、1日okな感じ。
電池ケースのところに、SSIDとかパスワードが書かれていて、これって変更できないのかと思ったら、設定画面でSSIDもパスフレーズも変更できた(そりゃそうだ)。「送信出力」という項目があって、12.5%から100%まで選べるようになっている。デフォルトが100%なので、12.5%にして、もう一度電池の持ちを見ると、3時間6分。思ったほどは伸びない。無線LAN側の消費電力はそれほどでも無いらしい。
ベートーベン ピアノソナタ 第20番
確か、習っていた時に初めて弾くことになったベートーベンのソナタ。「ベートーベンのソナタ」と期待したら、クレメンティみたいな小品でがっかりしたもんだが、今あらためて聞くと、なかなかかわいらしい曲だと思う。
ベートーベン ピアノソナタ 第20番
Beethoven Piano Sonata No20
SSD付きHDD買ってみた。
とりあえず、まずは外観など(クリックすると拡大されます)。

今まで使っていた、SAMSUNGの500GBと並べてみた。見た目は、普通のHDD

高さ的にも同じ。ただSAMSUNGも結構厚い部類だと思われる。まぁ、私の場合はThinkPadのRシリーズなんで、少々大きくても全く余裕なのだけど。
ddコピーが終わったので、SAMSUNGの500GBと比べてみた。
まずは、Ubuntu 10.04が起動して、ログイン画面になるまでの時間。
SAMSUNG: 46sec SEAGATE: 24sec
いやこれは予想外に速い感じ。次に、今プロジェクトで使ってる、DB2のDDL読み込み時間。3回計ってみた。
SAMSUNG 1:22 1:09 1:07 SEAGATE 1:02 0:45 0:44
こちらは起動速度ほどではないけど、それなりに速くなっている。うん、これだけ速くなるなら、十分に投資の価値はありそう。SSDの値段はずっと高いままだから、この手のハイブリッドHDDは十分にアリじゃないかな。
JSF2で、バリデーションエラーが起きると、inputHiddenの値が失なわれる。
こちらは回避策を見つけたけど、やはり結構困る問題。
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@RequestScoped
@Named
public class Bug2 {
long seed;
String value;
String value2;
public String getValue() {return value;}
public void setValue(String value) {this.value = value;}
public String getValue2() {return value2;}
public void setValue2(String value2) {this.value2 = value2;}
public long getSeed() {return seed;}
public void setSeed(long seed) {this.seed = seed;}
public void perform() {
seed = System.currentTimeMillis();
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:form>
<h:inputHidden value="#{bug2.seed}"/>
<h:panelGrid columns="3">
<h:outputLabel value="seed"/>
<h:outputText id="seed" value="#{bug2.seed}"/>
<h:message for="seed"/>
<h:outputLabel value="Value"/>
<h:inputText id="value" value="#{bug2.value}" required="true"/>
<h:message for="value"/>
<h:outputLabel value="Value2"/>
<h:inputText id="value2" value="#{bug2.value2}" required="true"/>
<h:message for="value2"/>
</h:panelGrid>
<h:commandButton value="Submit" action="#{bug2.perform}"/>
</h:form>
</html>
こんな風に操作する。
- Value, Value2に適当な値'1', '2'とかを入れて、Submitをclick。
- seedのところに、値が生成される。
- Valueのところを空にして、Submitをclick。
- required="true"なので、バリデーションエラーになるが、Value2の内容は残っているのに、なぜかseedの方(これはinputHiddenで保持)が消えてしまって0になる。
JSF2では、bookmarkable urlが簡単に作れるので、この手のread-onlyパラメータは、リクエストパラメータとして持たせておけば、回避できるんだけど、ちょっと面倒なんで、バグ報告してみた。
P.S. これ、もうちょっと調べてみたら、hiddenが消えているのではなくて、出力コンポーネントの値が失なわれているということが分かった。エラーがあってページを再表示する時に、出力コンポーネントから、モデルのオブジェクトを見に行くと、エラーになっているから存在していなくて、何も表示できないってことみたいだ。入力コンポーネント系なら、submitted valueを書き戻せるけど、出力コンポーネントはダメってことらしい。入力コンポーネントをreadonlyにしても、やっぱり消えちゃうようだ。とりあえずJavaScriptで、hiddenの値をコピーしてやるくらいしか方法は無さそう。
JSF2で、renderedを指定していると、イベントが配信されない。
JSF2でページ制御のコンポジットコンポーネントを作ってみたら、やっかいな現象に見舞われた。
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@RequestScoped
@Named
public class Bug1 {
int value;
public int getValue() {return value;}
public void setValue(int value) {this.value = value;}
public void decrease() {--value;}
public void increase() {++value;}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:form>
<h:inputHidden value="#{bug1.value}"/>
<h:commandButton value="-" action="#{bug1.decrease}" rendered="#{bug1.value gt 0}"/>
<h:outputText value="#{bug1.value}"/>
<h:commandButton value="+" action="#{bug1.increase}"/>
</h:form>
</html>
これ、実行すると、整数の両側に、'-'、'+'ボタンが表示され、'-'は、値が1以上の時にだけ表示されるんだけど、'-'ボタンが全く機能しない。
どうやら、以下のようなことが起きているっぽい。
- '-'ボタンクリック。
- JSFがBug1インスタンスを生成。
- JSFがイベントを配信しようとするが、その時rendered属性をチェック。でも、Bug1はnewされたばかりなのでvalueフィールドは0なので、rendered=false。このためイベントの配信を中止。
- リクエストの値を、Bug1インスタンスに反映。ここでようやくvalueフィールドが設定されるのだけど、時、既に遅し。
inputHiddenのところに、immediate='true'したら大丈夫かと思ったけど、なぜか効果無し(なんで?)。
仕様なのかもしれないけど、これって困るよなぁ。とりあえずバグ報告してみた。xhtmlのところ思いっきり文字化けしてしまった。なんで、ここのBTSには、preview機能が無いんだろう...





