Subscribed unsubscribe Subscribe Subscribe

ナイトライダー風自作5インチベイとその作り方

概要

以下のような5インチベイを自作しました。


Knight 2000 5inch bay - YouTube

電源を入れると、ナイトライダーのナイト2000のように6つのLEDが順番に光ります。

以下で、このベイの作り方を説明します。

ことのあらまし

私のコンピュータの1台には、問題がありました。

f:id:SumiTomohiko:20131222230307j:plain

  • 5インチベイが空いている。ケースに付属していたはずのブランクパネルはどこかにいってしまった。
  • 電源ランプが弱く、ほとんど見えない。電源がONなのかどうか分からない。

この2つの問題を同時に解決する方法として、5インチベイに常時点滅するLEDを設置することを思いつきました。どうせ作るなら、ナイトライダーみたいに格好良くしようと思いました。5インチベイを自作するなんて楽しそうです。

なお、隣の空いている3.5インチベイには、後ほどMOドライブを入れるつもりなので、今回は問題にしません。

材料

回路

キット

LEDの制御回路には、下図の市販されているナイトライダーキットを使います。

f:id:SumiTomohiko:20131222230232j:plain

その他の回路部品

ナイトライダーキットは、説明書どおりには組み立てず、改造を施しました。そのため、以下の部品を用意しました。

  • 高輝度赤色LED: 6本
  • LED光拡散キャップ(白色): 6個
  • ボリューム(1Mオーム、Bカーブ)
  • その他: L字のピンヘッダ、コネクタ、ケーブル、つまみ

構造体

構造体には、以下の2つを使用しました。

  • 厚さ3mmのプラ板
  • 5mmの三角棒

f:id:SumiTomohiko:20131222230308j:plain

楽しい工作シリーズ No.147 プラボード3mm厚B4サイズ 1枚入 (70147)

楽しい工作シリーズ No.147 プラボード3mm厚B4サイズ 1枚入 (70147)

楽しい工作シリーズ No.118 プラ材5mm三角棒 5本入 (70118)

楽しい工作シリーズ No.118 プラ材5mm三角棒 5本入 (70118)

プラ板の厚さを3mmにしたのは、様々な理由によります。これらは順次説明します。

三角棒は、今回以外の工作に使用することを見越して選んだのですが、この5インチベイだけを作るのであれば、角棒を使った方がよいと思います。理由は、三角形だと接着時に向きを考える必要があり、うっかり失敗してしまいそうだからです。角棒なら向きはありませんので、注意することが減ります。また、角棒の方が値段が安いです。

楽しい工作シリーズ No.131 プラ材5mm角棒 6本入 (70131)

楽しい工作シリーズ No.131 プラ材5mm角棒 6本入 (70131)

塗料

塗料には、タミヤのマットタイプの黒色を使用しました。今回のベイを組み付けるPCの筐体の色が、これに近かったためです。

f:id:SumiTomohiko:20131222230027j:plain

タミヤスプレー No.06 TS-6 マットブラック 85006 【HTRC 2.1】

タミヤスプレー No.06 TS-6 マットブラック 85006 【HTRC 2.1】

接着剤

接着剤は、タミヤの以下のものを使用しました。これは以前ターンテーブルを作ったときに使用しましたが、瞬間的に強く接着でき、気に入っています。

f:id:SumiTomohiko:20131222225919j:plain

ペリフェラルケーブル

最後に、回路に電源を供給するためのペリフェラルケーブルが必要でした。このケーブルは、再利用できないほどばらばらになります。

f:id:SumiTomohiko:20131222225922j:plain

組み立て

キット

まず、ナイトライダーキットを組み立てます。キットの組み立て方は、キットの説明書に書いてあるので、省略します。キットは、独自の改造をした結果、最後に以下の様になりました。

f:id:SumiTomohiko:20131222225917j:plain

改造内容を、以下にまとめます。

  • 点滅の速さを調整する半固定抵抗を、ボリュームに交換しました。
  • LEDを高輝度のものにしました。LEDには、光拡散キャップをつけました。
  • LEDは基板に直に設置せず、ケーブルで基板と繋げました。基板には、L字のヘッダピンをつけ、LEDのケーブルには、コネクタをつけました。
  • 電源ケーブルの先端を、ペリフェラルコネクタにしました。

LEDを高輝度のものに交換し、光拡散キャップをつけたのは、以下の理由によります。

  • PCを横から見ることが多いため。問題のPCは、私の机の隣の棚の下の方に置いてあります。このため、正面からしか光が見えないキットに付属のLEDは、使えません。
  • LEDの先端しか見えないため。実際に光るLEDの根元部分は、PCに組み付けたときに横から見ると、フロントパネルに隠れて見えなくなります。

なお、拡散キャップが(赤色ではなく)白色なのは、単に赤いキャップがあるのを知らなかった、というだけです。

ペリフェラルコネクタは、既存のものを切断して流用しました。黄色いケーブルが12V, 黒いケーブルがグラウンドです。

f:id:SumiTomohiko:20131222225921j:plain

あと、このキットを組み立てている途中、基板のパターンがはがれるなどの問題が複数箇所で発生しました。これらの問題を解決するため、ケーブルで応急手当てをしました。基板の中央に見える、黄色や緑や白のケーブルがそれです。これらのケーブルは、ICの足などに直接ハンダ付けされています。

フロントパネル

厚さ3mmのプラ板から、フロントパネルを作成します。フロントパネルの厚さを3mmにしたのは、表面の凹凸を小さくするためです。もしここに厚さ1mmのプラ板を使用していたら、LEDの頭が出っ張ります。これはみっともないです。そこで厚さを3mmにし、LEDのほとんどがフロントパネルに埋まるようにしました。

加工

次にプラ板を切り出し、中央に6つの穴などをあけて、フロントパネルを作成しました。完成したパネルは、以下のとおりです。LEDの高さは、真ん中から少し下のあたりにする方が、落ち着いていいと思います。

f:id:SumiTomohiko:20131222230024j:plain

各寸法は、以下のとおりです。寸法が記入されていない箇所がありますが、対称性から明らかだと思います。

f:id:SumiTomohiko:20131223002342p:plain

寸法の決定には、使われていないCD-ROMドライブが参考になりました。

フロントパネルで注意すべき点は、LEDの穴の径が3.5mmだというところです。LEDの頭の直径は3mm (正確には2.94mm) で、普通なら直径3mmの穴に入りますが、今回は光拡散キャップをはめるので、3mmの穴には入りません。

なおこの工作では、図面も書かず、メモもとらずに作成したため、この記事中の寸法は、間違っている可能性があります。

塗装

次に、フロントパネルを塗装しました。塗装前には、念のため、後の工程で接着剤をつける部分をマスキングテープで保護しました。

f:id:SumiTomohiko:20131222230023j:plain

以下のように塗装できました。

f:id:SumiTomohiko:20131222230234j:plain

私は側面も塗装しましたが、これは正解でした。PCに組み付けたとき、フロントパネルの側面が見えるからです。

なお、マスキングテープの効果は、以下のとおりです。

f:id:SumiTomohiko:20131222230233j:plain

テープで保護したところと、塗装中の持ち手にした割り箸をつけていた箇所は、塗料がかかっていません。とはいうものの、塗料が接着剤にどれくらい影響するかは知りません。実は、マスキングする必要はなかった可能性もあります。

サイドパネル

切り出しとネジ穴

側面のパネルを2枚、プラ板から切り出しました。

f:id:SumiTomohiko:20131222230306j:plain

寸法は、以下のとおりです。開いている穴は、ネジ穴です。

f:id:SumiTomohiko:20131223002339p:plain

ネジ穴の水平方向の位置が指定されていませんが、忘れてしまいました。もしあなたが同じものを作るのなら、ご自分のPCで現物合わせをしたらよいと思います。

一般的に、1段のベイにはネジ穴が2段ついていますが、今回はそのうちの上段を使用しました。下段は、補強材などのためにネジ穴があけられない可能性があったためです。

このベイに厚さ3mmのプラ板を使用することに決めた最大の理由は、この側面のパネルにネジ穴を切るからです。3mmくらいないと、十分な数のネジ山ができないだろうと推測しました。しかし、厚さ1.2mmのプラ板にネジ穴を切ったら、ちゃんとしたネジ穴になったので、もしかしたらもっと薄くてもよかったかもしれません。強度上は、どうなのか分かりませんが。

最後に、簡単ですが、ネジ穴の切り方について簡単に説明します。ネジ穴は、以下の手順で切ります。

  1. ドリルで下穴をあける。
  2. タップでネジ山を切る。

私が今回使用したタップは、以下のものです。

f:id:SumiTomohiko:20131222230327j:plain

このパッケージに、「下穴ドリル2.5mm」と指定されているので、まず2.5mmの穴をあけます。その後、その穴にタップを差し込み、回しながらネジ山を切ります。

タップを回すときは、普通は「タップハンドル」という道具を使うのですが、今回はタップハンドルを買う費用をケチって、用意しませんでした。タップを手で回したのですが、ちゃんとネジ山を切ることができました。

また、3つのタップを使って、3段階で徐々にネジ穴を切る場合もあります。むしろ、そちらが一般的でしょう。

補強材を組み付ける

それぞれの側面パネルの端に、垂直に三角棒の補強材を接着します。三角形の向きに注意してください。

f:id:SumiTomohiko:20131222230305j:plain

さらに、下部にも補強材をつけます。同様に、三角形の向きに注意してください。面が上を向いています。この上に底面を載せるためです。

f:id:SumiTomohiko:20131222230304j:plain

この2枚は、同一のものではありません。鏡面対称になっています。

底面

底面を切り出します。4つの穴は直径3mmで、回路を固定するのに使用します。

f:id:SumiTomohiko:20131222230026j:plain

寸法は、以下のとおりです。穴の場所が指定されていませんが、現物合わせをしたため、はっきりした寸法はありません。

f:id:SumiTomohiko:20131223002345p:plain

なお、この底面には厚さが1mm程度のプラ板を使うべきです。理由は、スペーサーのネジが無駄になるからです。普通、基板のスペーサーにはネジがついていますが、一般的にこのネジの長さは3mmだと思います。これでは厚さ3mmの底面を貫通することができないので、別途長いネジを用意する手間がかかります。強度上も、厚さ1mmで問題ないと思います。加工も簡単ですし。今回の場合、この問題に気がついたときが遅かったため、3mmの板を使い続けました。

組み立て

これまで作った部品を組み合わせました。まず、フロントパネルに、側面パネルを接着しました。

f:id:SumiTomohiko:20131222225815j:plain

フロントパネルの下部に、補強材を取りつけました。分かりにくいかもしれないので、写真を2枚掲載します。

f:id:SumiTomohiko:20131223062451j:plainf:id:SumiTomohiko:20131223062450j:plain

次に、底面を取り付けました。

f:id:SumiTomohiko:20131222225814j:plain

続けて底面に回路を取りつけました。LEDやボリュームもフロントパネルに取り付けました。

f:id:SumiTomohiko:20131222225813j:plain

裏から見ると、以下のように、ネジ頭があります。このため、底面の下には空間が必要です。

f:id:SumiTomohiko:20131222225920j:plain

LEDを取り付けるときには、接着剤は使用していません。摩擦だけで十分固定できました。

f:id:SumiTomohiko:20131222225812j:plain

これでベイは完成です。正面から見ると、以下のようになります。

f:id:SumiTomohiko:20131222230025j:plain

PCへの組み付け

完成したベイをPCに組み付けます。プラ板にネジを切っているので、ネジ山の強度は弱いです。ネジを強く回してはいけません。

f:id:SumiTomohiko:20131222230229j:plain

ここでひとつ問題に気がつきました。電源ケーブルが垂れる場合、その重さを基板のハンダで支えることになります。これは問題だろうと思い、このベイに繋がる電源ケーブルをインシュロックで適当に固定しました。

これで完成です。

f:id:SumiTomohiko:20131222230231j:plain

電源をつけてみたところ、期待通り、横からもLEDの明滅が分かります。

f:id:SumiTomohiko:20131222230329j:plain

課題

強度

今回はプラ板にネジ穴を切りましたが、強度の面でこれは不安です。側面パネルの内側に強い部材をはり、そこにネジ穴を切るという方法があると思います。

既製品の改造

5インチベイにちょうど収まるサイズのケースなんて既にあるのではないかと思い、千石電商などを探したのですが、見つかりませんでした。そういう需要って、ないんでしょうか。

もし既製品を改造するなら、5インチベイに入れる小物入れがいいかもしれません。今回作ったような、見た目がのっぺりしたものはないようですが。

フィギュアの照明について

フィギュアに照明を当てる際、フィギュアのケースの端に明かりを並べ、全体を明るくする、というのが一般的かと思います。しかし、この方法には以下の問題を感じます。

  • 照明の数(と値段)が増える。
  • 必要ない光を使っている。フィギュアに大事なのは顔であり、顔さえ明るければよい(と私は思う)。顔以外は暗くてよい。

というわけで、私はプラ材と接着剤で下のようなスタンドを作りました。

f:id:SumiTomohiko:20131212210955j:plainf:id:SumiTomohiko:20131212210953j:plain

フィギュアの顔の高さにLED照明を設置し、顔が明かりの中心になるようにしています。下の写真(明るすぎて上手に撮影できなかった)を参照してください。

f:id:SumiTomohiko:20131212210952j:plain

フィギュアの一部がスタンドに隠れますが、私は気にしていません。

LEDは、シリコンハウス共立で売っているもので、値段は315円です。プラ材を合わせても、スタンド1個あたりの材料費は500円程度でしょう。短いLEDリボンがそのくらいの値段なので、同程度の価格で欲しいものが作れ、私は満足です。

自作ターンテーブルと作り方の紹介

フィギュアを鑑賞するため、以下のようなターンテーブルを作りました。テーブルの直径は20cmで、5秒で1回転します。私が試したところでは、400gくらいまでならなんとか動かせます。


Turn table - YouTube

この記事では、このターンテーブルの作り方について説明します。

なぜターンテーブルを自作しようと思ったのか?

ターンテーブルには多くの既製品がありますが、これらは以下の私の要望を満たすものではないようでした。

  • ずっと回転し続けるのではなく、好きなところで止めたい。
  • 右にも左にも回転させたい。
  • ACアダプタで動かしたい。

既製品を改造することも検討しましたが、以下のような問題点を感じました。

  • 既製品のAmazonのレビューを読んでいたら、品質が不安になった。
  • 費用が高くつきそう。

品質が高いものを作れるかどうかは分かりませんし、値段を安くできるかどうかも不明でしたが、自作した方が問題点を修正し易そうだったので、自作することに決めました。

現時点では、上記の要望はすべて満たされているわけではありません。足りない部分は、おいおい改造していきたいと思っています。なお値段は、部品だけで1,400円くらいでした。性能が異なるので単純な比較はできないものの、市販品と同程度だと思います。

また、この記事では、ターンテーブルの機械的な部分についてのみ紹介します。モーターの回路といった電気的な部分は、説明しません(単にスイッチとつながっているだけだし)。

素材

テーブル

テーブルは、イエローサブマリンのものを使用します。*1

f:id:SumiTomohiko:20131211203845j:plain

モーター

モーターには、タミヤのユニバーサルギアボックスを使いました。

f:id:SumiTomohiko:20131211204213j:plain

構造体

構造体には、タミヤのユニバーサルアームセットと、クロスユニバーサルアームセット、スリックタイヤセットを使用しました。スリックタイヤセットは、二つ必要です。

f:id:SumiTomohiko:20131211204214j:plain

楽しい工作シリーズ No.143 ユニバーサルアームセット (70143)

楽しい工作シリーズ No.143 ユニバーサルアームセット (70143)

f:id:SumiTomohiko:20131211203847j:plain

楽しい工作シリーズ No.212 クロスユニバーサルアームセット 20212

楽しい工作シリーズ No.212 クロスユニバーサルアームセット 20212

f:id:SumiTomohiko:20131211204216j:plain

楽しい工作シリーズ No.192 スリックタイヤセット (31mm径) 70192

楽しい工作シリーズ No.192 スリックタイヤセット (31mm径) 70192

このターンテーブルは、ギアボックスとタイヤセットに入っているシャフトを使用します。これらの付属のシャフトで十分な長さがあると思いますが、もし足りなくなったら、シャフトセットを使用するとよいでしょう。

f:id:SumiTomohiko:20131211204101j:plain

楽しい工作シリーズ No.105 3mmシャフトセット (70105)

楽しい工作シリーズ No.105 3mmシャフトセット (70105)

工具

接着剤

接着剤には、下の写真のものを使用しました。ものの数秒で、強く接着できました。

f:id:SumiTomohiko:20131211203718j:plain

タミヤ瞬間接着剤(高強度タイプ)

タミヤ瞬間接着剤(高強度タイプ)

その他

これ以外には、ニッパー、カッターナイフ、ラジオペンチ、精密ドライバー、金のこぎりなどを使用しました。

f:id:SumiTomohiko:20131211204059j:plain

組み立て方

基部

まず、ユニバーサルアームセットの中にある長いアームを1本、以下のように3つに分割します。左右の部品は同じ長さです。真ん中のものは、使用しません。

f:id:SumiTomohiko:20131211203851j:plain

これらの2本で、もう一本の長いアームをはさみ、クロスユニバーサルアームセットの十字の部品で接続します。

f:id:SumiTomohiko:20131211203848j:plain

モーター

次にモーターを組み立てます。ユニバーサルギアボックスは、シャフトの方向と回転速度を選択できるのですが、ここでは、

  • シャフトの方向は、縦
  • 回転速度は、低速

で組み立てます。また、モーターのシャフトを金ノコギリで切断し、長さを40mmくらい(はっきり覚えていない。いま大まかに測ったら、40mmくらいだった)にします。

ここで、モーターを組み立てたときに私が遭遇した問題について述べます。私が購入した製品では、最もモーターに近いギアと、ギアボックスが接触していて、回転しませんでした。そこで、マイナスドライバーを使って、以下の写真のように、隙間をつくりました。

f:id:SumiTomohiko:20131211212826j:plain

f:id:SumiTomohiko:20131211204011j:plain

次に、モーターを基部に設置します。ギアボックスのシャフトを中央の穴にいれ、ギアボックスの片方のネジ穴を固定します。以下の3枚の写真を参考にしてください。ギアボックスにはネジ穴は二つありますが、片方しか固定しません。どうやら、両方とも固定できる方法はないようです。

f:id:SumiTomohiko:20131211204015j:plain

f:id:SumiTomohiko:20131211204014j:plain

f:id:SumiTomohiko:20131211204012j:plain

タイヤを取り付ける

ユニバーサルアームセットの中の、L字の部材を、以下の位置に取り付けます。

f:id:SumiTomohiko:20131211204217j:plain

シャフトを23mm(この長さは、はっきり覚えている)に切断し、タイヤに押し込み、L字の部材の上から2番目の穴に通します。

f:id:SumiTomohiko:20131211204133j:plain

タイヤの反対側から、もう一つのタイヤを取り付けます。

f:id:SumiTomohiko:20131211204218j:plain

これを、全部で4ヶ所に取り付けます。

テーブル

テーブルに回転軸を取り付ける準備をします。まずテーブルを裏返し、テーブルの中心を導きます。円の中心は直径を2本だけ引けば導けるはずですが、私は以下の写真のように、念のため3本引きました。

f:id:SumiTomohiko:20131211204057j:plain

次に、テーブルの中心で互いに直交する2本の直線を引きます。以下の写真の、赤い線です。

f:id:SumiTomohiko:20131211204138j:plain

これらの2本の線を基準にして、クロスユニバーサルアームセットの小さい十字の部品を、テーブルの中心に仮置きします。この部品の周辺をなぞり、この部品をつける位置を決定します。

f:id:SumiTomohiko:20131211204137j:plain

f:id:SumiTomohiko:20131211204135j:plain

最後に、この部品とテーブルを接着剤で固定します。先ほどなぞった部品の輪郭が目印になります。

f:id:SumiTomohiko:20131211204134j:plain

基部とテーブルを組み立てる

ここで一旦、ギアボックスからシャフトを外します。

f:id:SumiTomohiko:20131211204009j:plain

外したシャフトを、テーブルに接続します。

f:id:SumiTomohiko:20131211204103j:plain

テーブルがついたシャフトを、もう一度ギアボックスに取り付けます。この作業は、ちょっと難しいです。

f:id:SumiTomohiko:20131211204100j:plain

機械はこれで完成です。私はこのターンテーブルに、千石電商で買ってきたゴム足を取り付けました。ターンテーブルを裏返して見ると、以下のようになります。

f:id:SumiTomohiko:20131211204230j:plain

今後の課題

より重たいものを回転させたい場合は、プーリーなどを使って回転数を落とすとよいと思います。強いモーターを使用することも考え、様々なモーターの性能も調べてみましたが、それらの強いモーターは、私にとっては許容できないくらい大きかったです。

あともう少し静かにしたい。

*1:2013年12月12日現在、Amazonの画像は間違っているようです

nexec on Android is ready for Python.

nexec is a system to transfer system call requests. You can use applications in an nexec server as same as those in your local machine.

nexec got to support Python 3.3. Furthermore, nexec client for Android is available. So you can enjoy Python programming on Android via nexec.

The Android application is nexec client demo for Android. The documentation is at the author's website. The documentation includes the tutorial for Python.

The application requires nexec client for Android. Please install it, too.

nexecはシステムコールのリクエストを転送するシステムです。これにより、nexecサーバにあるアプリケーションを、ローカルアプリケーションのように使用することができます。

nexecは、Python 3.3をサポートするようになりました。Android用のnexecクライアントもあるので、AndroidPythonを走らせることができます。

Android用のアプリケーションは、 nexec client demo for Androidです。ドキュメントは、 開発者のWebサイトにあります。ドキュメントには、 Pythonのチュートリアルもあります。

このアプリケーションには、 nexec client for Androidが必要です。併せてインストールしてください。

PhotoNote 1.0.0dev1 has been released.

Android

PhotoNote is an Android application to view/edit photos.

f:id:SumiTomohiko:20130731180124p:plain

f:id:SumiTomohiko:20130731175625p:plain

f:id:SumiTomohiko:20130731175633p:plain

It is available at Google play.

animator 1.0.0dev1 has been released.

Android nexec

animator is the Android application to make stop motion movies.

f:id:SumiTomohiko:20130730195130p:plain

f:id:SumiTomohiko:20130730195118p:plain

The sample movie by this application can be seen in YouTube.

This is also the first application using nexec. This application needs nexec client for Android.

Both of animator and nexec are very toy yet. Please read the documentations of animator and nexec before using.

Simple Media Scanner 1.0.0beta3 has been released.

Android

Simple Media Scanner is an Android application to scan media files in your storage. It is available at Google play.

f:id:SumiTomohiko:20130730182634p:plain

I installed FreeBSD 9.1/amd64 into Intel NUC kit (DCCP847DYE).

FreeBSD NUC

As mentioned in the title, I installed FreeBSD 9.1/amd64 into Intel NUC kit (DCCP847DYE).

About this kit

Intel NUC is a small PC kit. CPU of DCCP847DYE is Celeron 847 (1.1GHz).

The following photo show you objects included in the kit.

f:id:SumiTomohiko:20130730032901j:plain

This kit includes

  • Power adapter
  • Case including a motherboard
  • Panel to attach this kit with a monitor and screws
  • Two manuals (white and yellow)
  • Emblem

Photos of the manuals are below.

f:id:SumiTomohiko:20130730033049j:plain

f:id:SumiTomohiko:20130730033057j:plain

f:id:SumiTomohiko:20130730033105j:plain

This kit does not have memory and SSD. I installed these of

  • Memory: ADATA, DDR3 1333 (PC3-10600), 8GB (4GBx2)
  • SSD: Plextor, mSATA, PX-64M5M (64GB)

You can see the memory at upper side of the following photo. The SSD is at bottom side.

f:id:SumiTomohiko:20130730033151j:plain

Installing FreeBSD

I had no problem in installing. The way to install was same as that for usual PC. But I recommend to confirm that TRIM command is enabled in filesystem options of freebsd-ufs. It was disabled by default.

Performance

I did buildword to measure performance. For comparing, I did the same thing on my desktop PC. CPU of it is Celeron G540 (2.5GHz), it has 4GB memory, and the storage of it is an SATA 3.0 HDD (of HITACHI).

The following table shows how much time buildwold took in seconds with the value of -j option for make(1).

-j option DCCP847DYE My desktop PC
nothing 14,308 6,121
2 8,200 4,025
4 8,198 3,983
8 8,249 4,018

dmesg

Finally, I paste output of dmesg(8) on this kit.

Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013
root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
CPU: Intel(R) Celeron(R) CPU 847 @ 1.10GHz (1098.60-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x206a7 Family = 6 Model = 2a Stepping = 7
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0xdbae3bf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,XSAVE,OSXSAVE>
AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
AMD Features2=0x1<LAHF>
TSC: P-state invariant, performance statistics
real memory = 8589934592 (8192 MB)
avail memory = 7670992896 (7315 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <INTEL DQS77SK >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 2
ACPI Warning: FADT (revision 5) is longer than ACPI 2.0 version, truncating length 268 to 244 (20110527/tbfadt-320)
ioapic0 <Version 2.0> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <INTEL DQS77SK> on motherboard
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 550
Event timer "HPET1" frequency 14318180 Hz quality 440
Event timer "HPET2" frequency 14318180 Hz quality 440
Event timer "HPET3" frequency 14318180 Hz quality 440
Event timer "HPET4" frequency 14318180 Hz quality 440
Event timer "HPET5" frequency 14318180 Hz quality 440
Event timer "HPET6" frequency 14318180 Hz quality 440
atrtc0: <AT realtime clock> port 0x70-0x77 irq 8 on acpi0
atrtc0: Warning: Couldn't map I/O.
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0xf000-0xf03f mem 0xf7800000-0xf7bfffff,0xe0000000-0xefffffff irq 16 at device 2.0 on pci0
agp0: <SandyBridge mobile GT1 IG> on vgapci0
agp0: aperture size is 256M, detected 524284k stolen memory
pci0: <simple comms> at device 22.0 (no driver attached)
em0: <Intel(R) PRO/1000 Network Connection 7.3.2> port 0xf080-0xf09f mem 0xf7c00000-0xf7c1ffff,0xf7c29000-0xf7c29fff irq 20 at device 25.0 on pci0
em0: Using an MSI interrupt
em0: Ethernet address: ec:a8:6b:f2:31:66
ehci0: <Intel Panther Point USB 2.0 controller> mem 0xf7c28000-0xf7c283ff irq 16 at device 26.0 on pci0
usbus0: EHCI version 1.0
usbus0 on ehci0
hdac0: <Intel Panther Point HDA Controller> mem 0xf7c20000-0xf7c23fff irq 22 at device 27.0 on pci0
ehci1: <Intel Panther Point USB 2.0 controller> mem 0xf7c27000-0xf7c273ff irq 23 at device 29.0 on pci0
usbus1: EHCI version 1.0
usbus1 on ehci1
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
ahci0: <Intel Panther Point AHCI SATA controller> port 0xf0d0-0xf0d7,0xf0c0-0xf0c3,0xf0b0-0xf0b7,0xf0a0-0xf0a3,0xf060-0xf07f mem 0xf7c26000-0xf7c267ff irq 19 at device 31.2 on pci0
ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported
ahcich0: <AHCI channel> at channel 0 on ahci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_button0: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xcefff,0xcf000-0xcffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
ctl: CAM Target Layer loaded
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
est1: <Enhanced SpeedStep Frequency Control> on cpu1
p4tcc1: <CPU Frequency Thermal Control> on cpu1
Timecounters tick every 1.000 msec
hdacc0: <Intel Panther Point HDA CODEC> at cad 3 on hdac0
hdaa0: <Intel Panther Point Audio Function Group> at nid 1 on hdacc0
pcm0: <Intel Panther Point (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm1: <Intel Panther Point (HDMI/DP 8ch)> at nid 7 on hdaa0
usbus0: 480Mbps High Speed USB v2.0
usbus1: 480Mbps High Speed USB v2.0
ugen0.1: <Intel> at usbus0
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
ugen1.1: <Intel> at usbus1
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
ugen0.2: <vendor 0x8087> at usbus0
uhub2: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus0
ugen1.2: <vendor 0x8087> at usbus1
uhub3: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus1
uhub2: 6 ports with 6 removable, self powered
uhub3: 8 ports with 8 removable, self powered
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <PLEXTOR PX-64M5M 1.02> ATA-8 SATA 3.x device
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 61057MB (125045424 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad4
SMP: AP CPU #1 Launched!
Timecounter "TSC-low" frequency 8582828 Hz quality 1000
Trying to mount root from ufs:/dev/ada0p2 [rw]...
em0: link state changed to UP

When I rotated an Android tablet in viewing a "private" dialog

Android

Many webpages told me that an internal DialogFragment class must be “public”. I wondered what happens if it is “private”. I had tried, and I got

07-14 03:50:48.849  1500  1500 E AndroidRuntime: FATAL EXCEPTION: main
07-14 03:50:48.849  1500  1500 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.gr.java_conf.neko_daisuki.android.animator/jp.gr.java_conf.neko_daisuki.android.animator.MainActivity}: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment jp.gr.java_conf.neko_daisuki.android.animator.MainActivity$SelectProjectDialog: make sure class name exists, is public, and has an empty constructor that is public
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3188)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.ActivityThread.access$600(ActivityThread.java:122)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1028)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.os.Looper.loop(Looper.java:132)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4123)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:491)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
07-14 03:50:48.849  1500  1500 E AndroidRuntime: Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment jp.gr.java_conf.neko_daisuki.android.animator.MainActivity$SelectProjectDialog: make sure class name exists, is public, and has an empty constructor that is public
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.support.v4.app.Fragment.instantiate(Fragment.java:409)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.support.v4.app.FragmentState.instantiate(Fragment.java:97)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1767)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:208)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at jp.gr.java_conf.neko_daisuki.android.animator.MainActivity.onCreate(MainActivity.java:589)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:4397)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     ... 12 more
07-14 03:50:48.849  1500  1500 E AndroidRuntime: Caused by: java.lang.IllegalAccessException: access to class not allowed
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at java.lang.Class.newInstanceImpl(Native Method)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at java.lang.Class.newInstance(Class.java:1301)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     at android.support.v4.app.Fragment.instantiate(Fragment.java:394)
07-14 03:50:48.849  1500  1500 E AndroidRuntime:     ... 19 more