2011年08月16日

3TBのハードディスクを使う

録画データを保存する倉庫ディスクの残り容量が足りなくなってきたので、値段がこなれてきた3TBを購入。2TB超えのHDDが正常に扱えるか心配だが買う。買わずに後悔するくらいなら買って後悔しよう。

購入したのはHGSTの0S03229 (中身はHDS5C3030ALA630 参考資料) 。静音低消費電力モデル。箱入りのものしか出回っていない様子。

Centos5.5 32bitのマシンにつないで、dmesgを見る。 very big deviceとか言われるが、とりあえず3TBの容量があることを認識している模様。 とりあえず安心。

ata3: exception Emask 0x10 SAct 0x0 SErr 0x4060000 action 0xe frozen
ata3: irq_stat 0x00000040, connection status changed
ata3: SError: { PHYInt CommWake DevExch }
ata3: hard resetting link
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ATA-8: Hitachi HDS5C3030ALA630, MEAOA580, max UDMA/133
ata3.00: 5860533168 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata3.00: configured for UDMA/133
ata3: EH complete
  Vendor: ATA       Model: Hitachi HDS5C303  Rev: MEAO
  Type:   Direct-Access                      ANSI SCSI revision: 05
sdc : very big device. try to use READ CAPACITY(16).
SCSI device sdc: 5860533168 512-byte hdwr sectors (3000593 MB)
sdc: Write Protect is off
sdc: Mode Sense: 00 3a 00 00
SCSI device sdc: drive cache: write back
sdc : very big device. try to use READ CAPACITY(16).
SCSI device sdc: 5860533168 512-byte hdwr sectors (3000593 MB)
sdc: Write Protect is off
sdc: Mode Sense: 00 3a 00 00
SCSI device sdc: drive cache: write back
 sdc: unknown partition table
sd 2:0:0:0: Attached scsi disk sdc
sd 2:0:0:0: Attached scsi generic sg2 type 0

パーティションを切る。fdiskを試すと、GPTを使えと怒られる。

WARNING: The size of this disk is 3.0 TB (3000592982016 bytes).
DOS partition table format can not be used on drives for volumes
larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID
partition table format (GPT).

うーむ。1TBのパーティションを3つ作りたいだけなのだがなぁ。 警告を無視してテーブルを切ろうとすると、領域の末尾を2.2TB相当の地点より先に設定できない。

Disk /dev/sdc: 3000.5 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdc1               1      121600   976751968+  83  Linux
/dev/sdc2          121601      243200   976752000   83  Linux
/dev/sdc3          243201      267349   193976842+  83  Linux

fdiskではやはり無理だったので、アドバイス通りにgpartedでテーブルを切る。 1TBの領域を3つ。厳密には最後の一つは900GBくらい。mkpartfsコマンドでフォーマットも一括してできるらしいが、とりあえず後回し。

parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart primary 0 1024GB
(parted) mkpart primary 1023GB 2048GBGB
(parted) mkpart primary 2047GB -0
(parted) quit

出来上がった領域をext4でフォーマットする。

mkfs.ext4 /dev/sdc1

posted by yuji_at_radiance at 13:03| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2011年08月07日

夏休み自由工作:掛け軸っぽい馬鹿ウィジェットを作ってみる

適当に格好いい漢字を掛け軸調にしたらcoolじゃないかなと思った。 なので夏休み自由工作として作ってみた。 自分自身でも何のために使うのか全く分からないが後悔はしていない。 子供の漢字練習にでも使えば良いのではないだろうか。

aji_smartphone_mini.png
こんな感じに漢字を表示する。掛け軸というよりむしろ額縁。
barano_yuutsu.png
設定画面はシンプル。文字列を与えると一文字ずつ表示する。 何も設定しないとランダム表示になる。
kirin_tablet_lcut.png
タブレットで大きく表示。でかい。ちょっと文字にジャギーが出てる。
kirin_tablet_resize.png
Android 3.1以降ならばリサイズできる。

以下、技術的な話。

漢字データ: 漢字データはGlyphWikiからPNG画像で取得する。androidの内部文字コードはUnicodeなので、String#charAtで取得した数値をもとに画像を取ってくる。取得できる画像は200x200なので、拡大するとジャギーが出る。svg形式を使いたいがレンダリングできるライブラリがあったかな?

画像の差し替え: 画像の取得&差し替えを普通に記述するとタイムオーバーするのでAsyncTaskを使う。HTTPコネクションの確立→ビットマップ画像の生成をAsyncTask#doInBackGroundに実装し、画像の差し替えをAsyncTask#onPostExecuteに実装する。あとはウィジェットの更新時にAsyncTaskをキックすればよい。

一定周期の更新: AlarmManagerに次回の更新時刻をセットして、起こしてもらう。持ち越しデータ(ウィジェットの設定や次回以降に表示する文字列)をPendingIntentに格納してAlarmManagerに渡す。

引き伸ばし対策:漢字表示部分は縦横比率を一定に保ちつつ適当にズームしてくれないとまずい。よってscaleType=fitCenterにする。さらにpaddingに適当な数値を入れて隙間を作って額縁らしくする。枠部分はリサイズしても不恰好にならないように、9patch画像にする。

リサイズ(スマフォ向けとタブレット向けの共存): ウィジェットのリサイズはAndroid 3.1(SDK 12)から利用できる。appwidget_providerを設定するXMLにresizeMode="vertical|horizontal"と書く。これではAndroid 3.1以降でしか使えないアプリになるので、ちょっと工夫する。XMLを生成するウィザードで「what kind of resource configuration would you like」と聞かれるので、versionを選んで12と入力する(xml-v12というフォルダが新しく作られるはず)。

良く分からないこと:android3.1向けの設定XMLをxml-v12に置いた状態でBuildTargetをAndroid 2.2にすると、XMLに不正な記述があるとして怒られてしまう。困る。だからといってBuildTargetをAndroid 3.1にすると、エミュレータや実機にアプリケーションをアップロードする際に互換性がないと注意される。どうすればよいというのだろう。

まとめ:スマフォ・タブレットの両対応は色々と奥が深い。

希望があったらor完成したら(SVG読み込みまでやりたいですね)アプリを配布するかも知れないです。欲しい人は連絡ください。善処します。

posted by yuji_at_radiance at 22:58| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。