夜食に困って近隣のドラックストアをふらふらしていたところ、ペヤングの辛口を発見
今まで、普通のペヤングしか食べたことがなかったので興味本位で購入。
http://www.peyoung.co.jp/item/product/8
実際に食べてみました。
感想としては、正直ここまで辛いとは思ってませんでした。
あまりの辛さに口を水でゆすぎましたが対処できず、インターネットで検索して牛乳を飲むと良いというので試したところ驚くほど辛さが引いていきました。
完全には辛さが引きませんでしたが、耐えられる程度にはなりました(汗)
2013年9月23日月曜日
2013年9月17日火曜日
iMac 2012 と ロジテックDVD( LDR-PMG8U3LSV)を接続してみた
iMacにDVDドライブが欲しかったので、安めのドライブとしてLogitec社のDVDドライブを購入しました。
接続してみたところ、正常に動作せずまともにDVD再生などできませんでした。
環境
OS : OS X 10.8.5
筐体: iMac 27 inch ( 2012 )
接続対象
DVDドライブ: Logitec社 LDR-PMG8U3LSV
試したこと
まず、バスパワーで動作するとの事だったので、DVDドライブとiMacをUSBのみで接続しました。
Mac接続後は軽快に動作しているように見えましたが、「故障箇所をスキップします」のようなメッセージが頻繁に画面に表示され、しまいにはDVD Player(Mac標準のソフト)が強制終了しました。
なんどかDVDを変更し、試してみましたがうまくいかないため、Windowsへ接続(詳細は省略)
Windowsではなんの問題もなくバスパワー単体で動作するため、DVDドライブの初期不良の疑いを排除しました。
また、バスパワーだけで動作することから、iMacからの供給電力が不足しているのではないかと推測。
純正ではないですが、BUFFALO製の外部電源供給ACアダプタ AC-DC5-BKを接続した状態で再度挑戦。
しかしながら、状況は改善せず。
旧式のMacbookに上記アダプタを接続した状態では、動作しているように見えたので、iMacを疑い、Appleのサポートへ連絡。
いっとお決まりの手順であろう、以下の内容を実施させられるも、効果なし。
・SMCのリセット
・起動時にシフトキーを押した状態での設定リセット
・OS再インストール
結局Mac純正の USB SuperDriveを購入することに。
現在動作確認中ですが、あれだけ「故障」とか表示されてたDVDがなんの問題もなく動作している。
なんか悔しい。
接続してみたところ、正常に動作せずまともにDVD再生などできませんでした。
環境
OS : OS X 10.8.5
筐体: iMac 27 inch ( 2012 )
接続対象
DVDドライブ: Logitec社 LDR-PMG8U3LSV
試したこと
まず、バスパワーで動作するとの事だったので、DVDドライブとiMacをUSBのみで接続しました。
Mac接続後は軽快に動作しているように見えましたが、「故障箇所をスキップします」のようなメッセージが頻繁に画面に表示され、しまいにはDVD Player(Mac標準のソフト)が強制終了しました。
なんどかDVDを変更し、試してみましたがうまくいかないため、Windowsへ接続(詳細は省略)
Windowsではなんの問題もなくバスパワー単体で動作するため、DVDドライブの初期不良の疑いを排除しました。
また、バスパワーだけで動作することから、iMacからの供給電力が不足しているのではないかと推測。
純正ではないですが、BUFFALO製の外部電源供給ACアダプタ AC-DC5-BKを接続した状態で再度挑戦。
しかしながら、状況は改善せず。
旧式のMacbookに上記アダプタを接続した状態では、動作しているように見えたので、iMacを疑い、Appleのサポートへ連絡。
いっとお決まりの手順であろう、以下の内容を実施させられるも、効果なし。
・SMCのリセット
・起動時にシフトキーを押した状態での設定リセット
・OS再インストール
結局Mac純正の USB SuperDriveを購入することに。
現在動作確認中ですが、あれだけ「故障」とか表示されてたDVDがなんの問題もなく動作している。
なんか悔しい。
2013年8月19日月曜日
ScheduledExecutorServiceが停止した。
なんの前触れもなく、ScheduledExecutorServiceが停止してしまった。
実行のため、invokeしていたThreadクラスに問題があったのかどうか調べたけど、そうでも無さそう。
そんなとき、ScheduledExecutorServiceが動かなくなるという現象について書かれた記事を見つけた。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7139684
どうやらスレッドを起動するために利用している OSレベルの処理でシグナル受信に失敗し、起動するはずのスレッドが起動しないままになってしまっているようだ。
しかも、一度失敗すると二度と起動しないという。。。。。
みたところ、回避策は提示されていないので、この現象にはまったら、プロセスの再起動だろうか。
shutdown()と、submit()で、復旧できるといいんだけど。
実行のため、invokeしていたThreadクラスに問題があったのかどうか調べたけど、そうでも無さそう。
そんなとき、ScheduledExecutorServiceが動かなくなるという現象について書かれた記事を見つけた。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7139684
どうやらスレッドを起動するために利用している OSレベルの処理でシグナル受信に失敗し、起動するはずのスレッドが起動しないままになってしまっているようだ。
しかも、一度失敗すると二度と起動しないという。。。。。
みたところ、回避策は提示されていないので、この現象にはまったら、プロセスの再起動だろうか。
shutdown()と、submit()で、復旧できるといいんだけど。
2013年8月17日土曜日
new Date().getTime() と System.currentTimeMillis() どちらが早いのか を調べてみた
先ほどの投稿から、ちょっと気になったので調べてみた。
大したことではないですけど、時間を取得したり計測するのに、よく使うんじゃないかと思いますが、どちらが高速なのか。が気になって調べてみました。
結果から言うと、System.currentTimeMillis()の方が倍高速です。
どちらも1000000回実行した時の合計時間です。
new Date().getTime() 188ms
System.currentTimeMillis() 91ms
インスタンス生成に時間がかかるのでしょうかね。
1000000回なので、どっちを使おうがあまり関係ない位だと思いますが、どちらかというと軽いのでSystem.currentTimeMills()を使ったほうが余計なことしないのでいいかなと。思いました。
計測環境を記載していないのは、実効速度を調べたかったのではなく、どちらが早いかを確認したかっただけなので載せてないです。マシンによって差があるというのであれば考えますが.....
OSはWindows Vistaです。
ソースは汚いですが、以下です。
import java.util.Arrays;
import java.util.Date;
import java.util.Iterator;
public class PerformanceSample {
/**
* @param args
*/
public static void main(String[] args) {
ExecuterIf process = null;
// NewDate
process = new NewDate();
PerformanceMesure.execute(process);
// currentTimeMillis
process = new SystemCurrent();
PerformanceMesure.execute(process);
}
}
class NewDate implements ExecuterIf{
@Override
public void exec(){
long time = new Date().getTime();
}
}
class SystemCurrent implements ExecuterIf{
@Override
public void exec(){
long time = System.currentTimeMillis();
}
}
interface ExecuterIf{
public void exec();
}
class PerformanceMesure{
public static void execute(ExecuterIf process){
long start = 0L;
long end = 0L;
long elapse = 0L;
start = System.currentTimeMillis();
for(int m = 0 ; m < 1000000; m ++)
process.exec();
end = System.currentTimeMillis();
elapse = end - start;
System.out.println(elapse + "ms");
}
}
Exceptionを利用したループのハンドリング性能
Effective Java の Item57 にあるwhileループのやってはいけない例について調べてみました。
たぶん、こんな使い方する人はいないんだと思いますが、悪いことしかないってことを確かめたかったので。
調べたのは性能です。ソースを見るとわかりますが、エラーなのかループの終了なのか判断できないため、使う人はいないと思います。
以下の2つの性能を比較しました。
例1)
例1 230ms
例2 2ms
こんなに差があるとは思ってなかったですが、100倍違います。
EffectiveJavaでは、現在のJVMを利用した場合は遅い。とか書いてありましたが、昔は早かったのでしょうか。
そうだとすると、悪い書き方をしたソースがあるかもしれないですよね....
この例だけでは言えませんが、正当な作り方をしておくと、のちのち性能が上がるかも知れない。
ということでしょうか。
その場しのぎのコーディングはやめようと思います。
たぶん、こんな使い方する人はいないんだと思いますが、悪いことしかないってことを確かめたかったので。
調べたのは性能です。ソースを見るとわかりますが、エラーなのかループの終了なのか判断できないため、使う人はいないと思います。
以下の2つの性能を比較しました。
例1)
// Horrible abuse of exceptions. Don't ever do this!例2)
try{
int i = 0;
while(true)
range[i++].climb();
}catch{ArrayIndexOutOfBoundsException e{
}
int i = 0;配列のサイズは100、試行回数は1万回。累積時間(ms)を計測した結果です。
while(range. length > i)
range[i++].climb();
例1 230ms
例2 2ms
こんなに差があるとは思ってなかったですが、100倍違います。
EffectiveJavaでは、現在のJVMを利用した場合は遅い。とか書いてありましたが、昔は早かったのでしょうか。
そうだとすると、悪い書き方をしたソースがあるかもしれないですよね....
この例だけでは言えませんが、正当な作り方をしておくと、のちのち性能が上がるかも知れない。
ということでしょうか。
その場しのぎのコーディングはやめようと思います。
2013年7月18日木曜日
Tomcatのsharedローダのクラスを監視する Java Intaractive Profiler(JIP)の備忘録
最近、プロファイラを利用してアプリの挙動の確認を行った。hprofでなく、JIPを利用しました。
利用したのは現在(2013年7月)のバージョン(1.2)です。
使い方は色々なページで説明していたり、ドキュメントが付属しているのでなんとなく読めばわかりますが、ちょっとわからなかったことを備忘録として書いておきます。
参考:http://d.hatena.ne.jp/goking/20101125/p1
書きなおした結果
ClassLoaderFilter.1 をTomcatInternalClassLoaderFilterに変えます。これで、sharedloaderのクラスもプロファイル対象となりました。
あとは、excludeの項目に、見たくないパッケージを記載しておけば、ごちゃごちゃしなくなります。
Javaネイティブのクラスをプロファイル対象にできないかどうかは探し中です。
見つかるのかわからないですが....
他にもいくつかプロファイラがありますが、どうやって使うのかはわかりません。
http://www.java2v.com/Open-Source/Java-Document/Profiler/JIP/com.mentorgen.tools.profile.instrument.clfilter.htm
もうひとつついでに。
ダウンロード先のSourceForgeでは、最初あやまってjip-src-1.2.zipをダウンロードしました。
間違ってはいないんですが、JipViewerが見つかりませんでした。
jip-1.2.zipをダウンロードしたらちゃんとありました。
http://sourceforge.net/projects/jiprof/files/jip/1.2/
利用したのは現在(2013年7月)のバージョン(1.2)です。
使い方は色々なページで説明していたり、ドキュメントが付属しているのでなんとなく読めばわかりますが、ちょっとわからなかったことを備忘録として書いておきます。
参考:http://d.hatena.ne.jp/goking/20101125/p1
- Tomcatのアプリと、sharedloaderに指定したライブラリをプロファイルする
どうしても見つけられなかったので、書き残しておきます。
通常、Webアプリのプロファイルをする場合は、プロファイラとしてwebapp.profile.propertiesを指定しますが、こいつを少し編集します。
もともとの内容の一部
#
# Class Loader filters for different runtine environments
# (The system will cycle through these until it finds one that
# can filter in the current environment)
#
ClassLoaderFilter.1=com.mentorgen.tools.profile.instrument.clfilter.WebAppClassLoaderFilter
ClassLoaderFilter.2=com.mentorgen.tools.profile.instrument.clfilter.StandardClassLoaderFilter
書きなおした結果
#
# Class Loader filters for different runtine environments
# (The system will cycle through these until it finds one that
# can filter in the current environment)
#
ClassLoaderFilter.1=com.mentorgen.tools.profile.instrument.clfilter.TomcatInternalClassLoaderFilter
ClassLoaderFilter.2=com.mentorgen.tools.profile.instrument.clfilter.StandardClassLoaderFilter
ClassLoaderFilter.1 をTomcatInternalClassLoaderFilterに変えます。これで、sharedloaderのクラスもプロファイル対象となりました。
あとは、excludeの項目に、見たくないパッケージを記載しておけば、ごちゃごちゃしなくなります。
Javaネイティブのクラスをプロファイル対象にできないかどうかは探し中です。
見つかるのかわからないですが....
他にもいくつかプロファイラがありますが、どうやって使うのかはわかりません。
http://www.java2v.com/Open-Source/Java-Document/Profiler/JIP/com.mentorgen.tools.profile.instrument.clfilter.htm
もうひとつついでに。
ダウンロード先のSourceForgeでは、最初あやまってjip-src-1.2.zipをダウンロードしました。
間違ってはいないんですが、JipViewerが見つかりませんでした。
jip-1.2.zipをダウンロードしたらちゃんとありました。
http://sourceforge.net/projects/jiprof/files/jip/1.2/
2013年5月7日火曜日
Softbankスマートフォン サービス開発支援サイトのサンプルが動かない
ARに興味があるものの、ゼロからの作成は難しいと感じたため、サンプル探し。
Softbankが公開している支援サイトのコードを流用しようと思った。
参考にしようとしたサイトは以下
第10回 ARゲームを作ってみよう(2)
サンプルコードをダウンロードして、実行してみたところ、文字入力はできるが、位置情報の登録ができなかった。
スマートフォンのGPSは有効なっていることを確認し、再度実行したが位置情報が取得できないため
といって動いてくれない。
実行端末:003SH
OSバージョン:2.3.4
カーネルバージョン:2.5.35.7-perf
ざっと探してみたけど、動かないと言っているサイトが見当たらないので探し方が悪いか、そもそもあまり参考にされていないか、動かないのは私だけかの3つくらいが原因かと思い、自分で調べようかと思った。
なぜアプリが動かないか。エラーメッセージからわかることは、位置情報の取得がうまく動いていないようだ。
ソースからわかるように、位置情報(geomagneticField)がnullの場合は描画が全く動かない。
さらに、「位置情報の取得ができません」というメッセージが画面に表示されるようになる。
動かない理由を調べるために、ログ情報を出力させてみた。
ここで、わかったことは、LocationListnerインタフェースを実装した箇所が全く動作していないこと。
これがどういうことなのかは調査中
1点わかったこと
以下の端末だと動作する。ただ、動作可能なバージョンが2.2以上となっているので、2.3.4だから動かないというわけではないと思う。
実行端末:101F
OSバージョン:4.0.4
さて・・・答えは見つかるのだろうか・・・
※1点きになること、003SHは機種変後の余った端末なのですが、GPS情報が正しく取得できていないような気がします。機能制限解除はしたつもりなのですが、GPSは対象外なんでしょうかね。
Softbankが公開している支援サイトのコードを流用しようと思った。
参考にしようとしたサイトは以下
第10回 ARゲームを作ってみよう(2)
サンプルコードをダウンロードして、実行してみたところ、文字入力はできるが、位置情報の登録ができなかった。
スマートフォンのGPSは有効なっていることを確認し、再度実行したが位置情報が取得できないため
といって動いてくれない。
実行端末:003SH
OSバージョン:2.3.4
カーネルバージョン:2.5.35.7-perf
ざっと探してみたけど、動かないと言っているサイトが見当たらないので探し方が悪いか、そもそもあまり参考にされていないか、動かないのは私だけかの3つくらいが原因かと思い、自分で調べようかと思った。
なぜアプリが動かないか。エラーメッセージからわかることは、位置情報の取得がうまく動いていないようだ。
ソースからわかるように、位置情報(geomagneticField)がnullの場合は描画が全く動かない。
さらに、「位置情報の取得ができません」というメッセージが画面に表示されるようになる。
動かない理由を調べるために、ログ情報を出力させてみた。
ここで、わかったことは、LocationListnerインタフェースを実装した箇所が全く動作していないこと。
これがどういうことなのかは調査中
1点わかったこと
以下の端末だと動作する。ただ、動作可能なバージョンが2.2以上となっているので、2.3.4だから動かないというわけではないと思う。
実行端末:101F
OSバージョン:4.0.4
さて・・・答えは見つかるのだろうか・・・
※1点きになること、003SHは機種変後の余った端末なのですが、GPS情報が正しく取得できていないような気がします。機能制限解除はしたつもりなのですが、GPSは対象外なんでしょうかね。
登録:
投稿 (Atom)