2015年9月30日水曜日

作ればわかる!Androidプログラミング 第3版 - 第4章に突入

 BroadcastRecevier なるものが登場してきた。
 名前からしてなんとなくわかるような気がしたらそのまんまだった。

 サンプルはバッテリの状態を知るプロジェクトということで入力してみた。


 だいたい 0.5 秒間隔で表示が更新されていった。
 本当は 78 が 79 になるところを見たかったのだけれども MacBook Air との接続なので期待できなかったので Nexus6 側でアプリを終了させた。
 バッテリの情報がこんなに簡単に取得できるとは思ってもいなかった。

 まだコードを入力しただけなので書籍の説明はこれから読んでいくことにする。


2015年9月29日火曜日

作ればわかる!Androidプログラミング 第3版 - 第3章 完了。


 どこかでみたようなスクロールができた。
 書籍を読んで部分部分は少しずつわかってきたが全体的な構成がみえていない。
 始めたばかりだからこんなものだということで今後も進めていきたい。

 やっぱり動くものが見えるとうれしいものだ。
 動作が理解できればもっと楽しくなるのだが。

2015年9月28日月曜日

作ればわかる!Androidプログラミング 第3版 - 第3章


 エラーが出た。
 サンプル通りに入力しているつもりだけれどもサンプルの入力の仕方が違っているような気がする。
 やはり開発環境が違うから仕方がないのだろうか。

 この画面にたどり着くまでに始めて二時間ほど経過している。
 エラーメッセージが出ているからこれを読み解けば CardView への着手ができるはず。
 きっと。
 たぶん。
 そうだろうと思いたい。
 体力切れなので今日はここまで。
 実はこのエラー画面の前に二回ほどエラーがでて悩んでいたw
 Java や Android の組み方がわかればもう少しなんとかなると思うけど。
 周りに聞ける人がいないのはきついなぁ。

 作ればわかる。
 悩めばわかる。
 できたら嬉しい。
 これぞエンジニアの醍醐味。
 このサンプルが完成するといいなぁ。
 時間はあるからじっくりとやっていこう。

 次の日の朝。
 もう一度コードを見直したら打ち間違いを発見。
 そこを直したら CardView が表示された。

MacBook Air のレスポンスがなんとなく悪くなっているなあと感じた。

 確認したら Trim が無効になってました。
 Yosemite からサードパーティー製のドライブでも対応したコマンドが搭載されていたようで試してみた。

~ $ trimforce
Usage: trimforce enable
trimforce disable
trimforce help
~ $ sudo trimforce enable

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
IMPORTANT NOTICE:  This tool force-enables TRIM for all relevant attached
devices, even though such devices may not have been validated for data
integrity while using TRIM.  Use of this tool to enable TRIM may result in
unintended data loss or data corruption.  It should not be used in a commercial
operating environment or with important data. Before using this tool, you
should back up all of your data and regularly back up data while TRIM is
enabled.  This tool is provided on an “as is” basis. APPLE MAKES NO WARRANTIES,
EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF
NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
REGARDING THIS TOOL OR ITS USE ALONE OR IN COMBINATION WITH YOUR DEVICES,
SYSTEMS, OR SERVICES. BY USING THIS TOOL TO ENABLE TRIM, YOU AGREE THAT, TO THE
EXTENT PERMITTED BY APPLICABLE LAW, USE OF THE TOOL IS AT YOUR SOLE RISK AND
THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND
EFFORT IS WITH YOU.
Are you sure you wish to proceed (y/N)? y
Your system will immediately reboot when this is complete.
Is this OK (y/N)? y
Enabling TRIM...
.
.
Operation succeeded. Your system will reboot momentarily, please wait...

  [復元されました]
Last login: Mon Sep 28 08:01:41 on console
~ $ 


 コマンドの途中で再起動がかかるので注意。

 無事に有効になりました。
 これでなんとなく Mavericks 時代のスピードに戻ったような気がします。

 ちなみに使用している SSD は以下の製品です。

2015年9月26日土曜日

MacBook Air の調子がおかしい気がする

 普通に使っているだけなので問題はないのかなと思いつつシステムレポートを表示してみた。

右下のウインドウがおかしいんですがw
 でもウインドウサイズを変更すると再描画されてきちんと表示される。
 場所によっては真っ白け。
 もしかしたら Yosemite のバグなのかな。そんなことはないか。

 これって買い替えの時期ということかなぁ。
 アップルのサイトで購入すれば一年だったら手数料 が 0% のローンをやっているからそれで支払うか。
 買取も若干ながら上がっているようだし。

 悩むw

2015年9月25日金曜日

作ればわかる!Androidプログラミング 第3版 - 第2章

 メール送信がこんなに簡単にできるとは思ってもいなかった。
 簡単にいえば件名と本文を他へ丸投げできるようになっている Android システムがすごいんだな。
 この章の内容として終わり部分が理解しきれていないので時間があったときに復習のこと。
 またちょっとしたカスタマイズで自分仕様に変更するととても便利になりそうなので週末にでもやってみようっと。
 メーラーは Gmail しか入れていないのでメール送信はタップ一回でおしまい。
 Nexus6 で実機動作させているからそのまま使えてとても便利になりそうだ。

次の章は RecyclerView と CardView を使ってルーレットアプリを作るそうだ。
 とても楽しみ。

 なお開発は MacBook Air (11-inch, Late2010) と Android Studio で行っている。
 Android バージョンは実機に合わせて 5.1.1 にして開発してる。

2015年9月21日月曜日

作ればわかる!Androidプログラミング 第3版

 第1章を終えたところ。
 なんとなくだけれど概要がわかったような気がする。
 まだ飲み込めていないので気がするにしている。
 読んで作っていて感じたのは値を変更しやすいところに置いてあるってことかな。
 変数の内容を変更したい時には res の values にあるはずなのでそこを見る。
 ここって検索できるのかな。Android Studio を使い始めたばかりなので不明。

 第2章では良く聞くアクティビティとインテントが出てくるのでがっつりと読んで作っていこっと。

 Android Studio の挙動で勝手に変数を直してくれる時があるんだけれど条件が良くわかっていないw

2015年9月18日金曜日

OS X Yosemite + Mounty

 ちょっと前に NTFS の読み書きをするために NTFS-3g を用いていたがボリュームラベル名にどんどん数値がカウントアップされていくのが気に入らないので他のツールがないか探してみた。
 なおそれらのボリュームラベルはターミナルで覗くとゴミとして存在しており困ったものである。
 とりあえずアンインストールして再起動をしておいた。

 「Mounty」
http://enjoygineering.com/mounty/

 これは便利。
 起動させておく必要はあるが OS X で検知した NTFS を読み書きできるよう再マウントしてくれるアプリ。

 

 デスクトップ上にボリュームアイコンが出てこなくてすっきり。
 また NTFS-3g であったボリュームアイコンが出てこないため数値もなくなりすっきり。
 これからはこちらを使っていこう。
 最初からこちらを使っておけばよかったw

 どこかのブログで読んだんだけれども OS X 自体が読み書きできるようになっているらしいが封印しているらしい。
 それがアップルが公開してくれればいいのに。

 MacBook Retina に USB-C ポートが二つ搭載しなかったのはどうしてだろう。
 アクセサリーを購入させるためだろうか。

2015年9月17日木曜日

明日の到着かと思っていた。

 朝の五時頃にヨドバシ・ドット・コムから荷物発送のメールが届いた。
 そのメールを読んだ時には明日の到着だなと思っていたら当日の午後二時くらいに到着した。みんな仕事早すぎ。

 購入物は以下の二点。
「作ればわかる!Androidプログラミング―SDK5/Android Studio対応 10の
実践サンプルで学ぶAndroidアプリ開発入門 第3版 [単行本]」
「SMF-NX614FLH [Nexus6用 液晶保護フィルム 高精細反射防止 気泡レス]」

 Android 開発は MacBook Air 11-inch, Late 2010 がどこまで頑張れるか。もしくは自分がこけるかの勝負です。
 フィルムは同一シリーズのブルーライト対応仕様でハマったので余計な機能がない無難なアンチグレアタイプの保護フィルムにしておいた。
 これでまた同様な症状が発生したら製作元に問い合わせ予定。
 具体的な症状ですが保護フィルムが近接センサに反応してしまって電話をかけると画面が真っ暗になって操作不能に陥ることです。
 保護フィルムを剥がしたらあっけなく解決したw

 いま書籍を読んでいるのですが紙質が柔らかい。数年前に買った Java の本と比べると手触りが全然違って心地よい。
 簡単に折り曲げることができるので書籍の中盤あたりにさしかかってもきちんと広げて折れるということ。
 これは文鎮が不要になるので助かります。ここ数年本屋さんに足を運んでいないので最近はこんなものなのかな。
 目次を見ていても楽しそうなことをしているので早くコードを入力して Nexus6 実機で試したい。
 とりあえずは焦らずに行こう。

2015年9月15日火曜日

重複した写真データを探せ。

 あちらこちらに散らばっていた写真データをまとめるまでは良かった。
 しかしバックアップしている写真データもまとまってしまったんで重複データがざくざく。
 いちいち目で探すのも馬鹿らしいので何か良いアプリがないかなとググる。

 「dupeGuru Picture Edition
http://goo.gl/ofUc5
なんか強そうな名前なので使ってみることにした。
 アプリは全て英語だけどシンプルなので使う分には問題なし。

 とりあえず比較したい写真データが入っているフォルダを二つ放り込む。
 重複について調査してくれる。
 結果はディレクトリ名と重複率を表示してくれるので該当ファイルにチェックを入れる。
 チェックしたファイルをゴミ箱へ移動する。

 これだけ。
 処理スピードはやはりマシンスペックと USB2.0 でバックグラウンドで作業用 BGM を流しているから重たいw
 外付けハードディスクはアクセスし続けているので USB 扇風機で冷却中。

 最近のマシンが欲しいぞと。
 大蔵省からは購入許可は下りているが今後の子供二人のことを考えるとおいそれと手が出せないw

2015年9月11日金曜日

OS X でインストールしたけど使わなくなったアプリを削除したい。

 調べてみると AppCleaner と呼ばれるものが評価が高そうなので入れてみた。
 画面が他の人と違うぞと思いつつも作業を進めていくと全く違うアプリをインストールしていた。
 インストールしたアプリ「App Cleaner」
 インストールしたいアプリ「AppCleaner」

 AppStore にあるとばかり思ってインストールしてましたよw

 ちょうど良いから練習がてら「App Cleaner」をアンインストールしましたとさ。

OS X Yosemite と Android Studio と Nexus7(2012)

 Android Studio をいじり始めてエミュレータの重さに嫌気がさしていたので実機デバッグという発想にたどり着く。
 手元にあった SOL21 や SGP312 など Xperia 系を試すものの全滅。
 どうにもならない感じがあったのでしばしこの件は放置していたところ Nexus7 を入手できる機会があったので早速入手および実機デバッグを試してみた。

 あっけなく繋がった。さすがは Google 純正品である。
 やはり純正品が一番であるという結果に達した。

 ついでに Nexus6 も試したところあっけなく繋がった。
 作ってみたいアプリがあるからあとは自分次第ってところかな。

 しかしマシンスペックが足を引っ張っているので Android Studio が重たいのなんの。

2015年9月8日火曜日

HTC21 壊れました。

 あれからいろいろいじっていたら WiFi の MAC アドレスが不明になってしまいどうにもならなくなりました。
 こんな形で文鎮化するとは思いもしなかったです。

 なので Google Nexus 6 XT1100 をポチっちゃいましたw

2015年9月7日月曜日

OS X Yosemite が HTL21 を見つけた。

 接続されている HTL21 を無事発見。
~ $ adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
FA2C4S501714 device

~ $ 
 以前から気になっていたんだけれども「FA2C4S501714」という文字列はどこから来ているんだろうか。IMEI ともちがうし。

 HTL21 のダウングレードをやっている run_me.bat を解析しつつ Yosemite で実行可能か調べてる途中なり。
 いままで色々と簡単だった Xperia 機ばかりだったので初の HTC 機の癖の違いに戸惑ってます。しかも Windows 機は無しという状況。
 バッチファイルなので調べながらいけるっしょということで実行できそうなコードを単発で実行。
~ $ adb kill-server>NUL 2>&1
~ $ adb wait-for-device>NUL 2>&1
~ $ adb shell getprop ro.product.model
HTL21
~ $ 
 見事に「HTL21」を見つけてる。
 しかし最後のコード「shell getprop ro.product.model」が何をやっているのか気になるのでググる。
 単にモデル名を取得しているのか。ふむふむ。
 「device_name=HTL21」になるわけだ。
 そうするとバージョンチェックに入る。

:DLX_judge
FOR /F "usebackq" %%t IN (`.\adb\adb shell getprop ro.aa.romver`) DO SET version=%%t
IF "%version%" == "%DLX_J_v1%" SET firm_ver=1369701& goto :HTL21
IF "%version%" == "%DLX_J_v2%" SET firm_ver=1399701& goto :HTL21
IF "%version%" == "%DLX_J_v3%" SET firm_ver=1399703& goto :HTL21
ELSE goto :device_ERR

 今回接続している HTL21 は DLX_J_v3=1.39.970.3 になるので firm_ver=1399703 になって HTL21 のラベルへジャンプと。

 HTL21 の全体は下記のように色々と書かれているので慎重に進めていこう。
:HTL21
CLS
 このコマンドは画面クリアをしているだけだから無視。

SET filename=%firm_ver%%basename%
IF NOT EXIST %filename% ECHO %filename%のファイルが見つかりません。説明書をお読みになり所定のディレクトリに配置してください。 & goto :file_ERR
 1399703_firmware.zip がカレントディレクトリにあるか調べているようだ。
 なかったらファイルが見つからないエラーだな。
 これは段取りしてある。

.\adb\adb.exe push rooting_tool/device.db /data/local/tmp
.\adb\adb.exe push rooting_tool/run_root_shell /data/local/tmp
 /data にアクセスできるのかなと試したら権限無しと怒られた。
 では 両ファイルのコピー先となる /data/local/tmp にはアクセスできる確認したらできた。なるほどね。
~ $ adb shell
shell@android:/ $ ls /data
opendir failed, Permission denied
1|shell@android:/ $  ls -al /data/local/tmp                                     
shell@android:/ $ 
 読むのが確認できたのでそれじゃ両ファイルを該当箇所へ送ってみようか。

 両ファイルがあることを確認して。
downgrad_tool $ ls rooting_tool/device.db 
rooting_tool/device.db
downgrad_tool $ ls rooting_tool/run_root_shell 
rooting_tool/run_root_shell

 バッチファイルの該当箇所だけをコピペして端末にファイルを送り込む。
downgrad_tool $ adb  push rooting_tool/device.db /data/local/tmp
1680 KB/s (58368 bytes in 0.033s)
downgrad_tool $ adb  push rooting_tool/run_root_shell /data/local/tmp
3725 KB/s (396588 bytes in 0.103s)
downgrad_tool $ 

IF NOT EXIST "mmcblk0p21_misc_backup" (
.\adb\adb.exe shell < rooting_tool\dlxj\pull.txt
.\adb\adb.exe pull /sdcard/mmcblk0p21_misc_backup mmcblk0p21_misc_backup
)
 該当ファイル「mmcblk0p21_misc_backup」の有無を確認してみるとない。
 downgrad_tool $ ls  mmcblk0p21_misc_backup
ls: mmcblk0p21_misc_backup: No such file or directory
downgrad_tool $ 

 二つのコマンドを順次実行していく。
downgrad_tool $ adb shell < rooting_tool/dlxj/pull.txt
cd /data/local/tmp

chmod 755 *

./run_root_shell

dd if=/dev/block/mmcblk0p21 of=/sdcard/mmcblk0p21_misc_backup

exit

exit

exitshell@android:/ $ cd /data/local/tmp
shell@android:/data/local/tmp $ 
shell@android:/data/local/tmp $ chmod 755 *
shell@android:/data/local/tmp $ 
shell@android:/data/local/tmp $ ./run_root_shell


Device detected: HTL21 (JRO03C)

Attempt acdb exploit...
HTL21 (JRO03C 1.39.970.3) is not supported.

Attempt fj_hdcp exploit...

Attempt msm_cameraconfig exploit...
Detected kernel physical address at 0x80608000 form iomem

Attempt put_user exploit...
shell@android:/data/local/tmp # 
0p21 of=/sdcard/mmcblk0p21_misc_backup                                        <
2045+0 records in
2045+0 records out
1047040 bytes transferred in 0.381 secs (2748136 bytes/sec)
shell@android:/data/local/tmp # 
shell@android:/data/local/tmp # exit
shell@android:/data/local/tmp $ 
shell@android:/data/local/tmp $ exit
downgrad_tool $ 

 SD カード上へ作った mmcblk0p21_misc_backup を OS X へ持ってくる。
downgrad_tool $ adb pull /sdcard/mmcblk0p21_misc_backup mmcblk0p21_misc_backup
4405 KB/s (1047040 bytes in 0.232s)
downgrad_tool $ ls -l mmcblk0p21_misc_backup 
-rw-r--r--  1 xueli  staff  1047040  9  7 19:06 mmcblk0p21_misc_backup
downgrad_tool $ 

 さてここからはきちんと理解した上で実行しないと文鎮化になる可能性があるので慎重にやっていこう。
 「hexalter.exe」が何をやっているコマンドなのかがわからないのが実情w
 1.00.000.0 を書き込んでいるようだがどこから書いているのか。本当にそうなのかがわからない。
 ググってもなかなか出てこないし。
 ということでシャワーを浴びて頭をすっきりさせよう。

======== ======== ======== ======== ======== ======== 





copy /Y mmcblk0p21_misc_backup mmcblk0p21_misc_fake
 目視確認を含めて Finder 上で処理。

ECHO ダウングレードに必要なバージョン偽装処理を行っています。
.\rooting_tool\hexalter.exe mmcblk0p21_misc_fake 0x0A0=0x31,0x2E,0x30,0x30,0x2E,0x30,0x30,0x30,0x2E,0x30
 中身をみるとバイナリファイルなので予想だけでバージョン偽装処理を行ってみる。
downgrad_tool $ cat mmcblk0p21_misc
KDDI_801???????DeviceWarmBoot?????????????????CE Serial InUseDebug Cable EnaCE   USB  InUseClearAutoImage 1.39.970.3EBR_Update0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFRINFO111RINFO111FNOCFNOCdowngrad_tool $ 
 コマンド名 hexalter.exe とその引数をみると改行コード後の1.39.970.3 を 1.00.000.0 にしてあげれば良いと勝手に判断。
 それとバッチファイルのコメントにバージョン偽装とあるのでちょうど引数と一致する。
 改行コードではなくて書き換えるべき先頭アドレスを指していたようだ。

 さてここで brew のバイナリエディタ 0xed をインストールするはずなのだがないと言われてしまった。
downgrad_tool $ brew install 0xed
Error: No available formula for 0xed 
==> Searching formulae...
==> Searching taps...
Caskroom/cask/0xed
==> You haven't updated Homebrew in a while.
A formula for 0xed might have been added recently.
Run `brew update` to get the latest Homebrew updates!
downgrad_tool $ 

 しかしよーくみると探してくれていたのでそれをインストールする。
downgrad_tool $ brew install 0xed
Error: No available formula for 0xed 
==> Searching formulae...
==> Searching taps...
Caskroom/cask/0xed
downgrad_tool $ brew install Caskroom/cask/0xed
==> brew cask install Caskroom/cask/0xed
==> Downloading http://www.suavetech.com/cgi-bin/download.cgi?0xED.tar.bz2
######################################################################## 100.0%
==> Symlinking App '0xED.app' to '/Users/xueli/Applications/0xED.app'
🍺  0xed staged at '/opt/homebrew-cask/Caskroom/0xed/latest' (92 files, 2.2M)
downgrad_tool $ 

 早速該当箇所を書き換えた。
CLS
ECHO ダウングレード処理を開始しました。
ECHO 終了するまでしばらくお待ちください。
PAUSE

 段取りは完了というところかな。
 さっき作った mmcblk0p21_misc_fake を SD カードへ入れて push.txt を実行するか。
downgrad_tool $ adb push mmcblk0p21_misc_fake /sdcard/
3503 KB/s (1047040 bytes in 0.291s)
downgrad_tool $ 

 「¥」と「/」の区切りを間違えるのはお約束w
downgrad_tool $ adb shell < rooting_tool\dlxj\push.txt
-bash: rooting_tooldlxjpush.txt: No such file or directory
downgrad_tool $ 
downgrad_tool $ adb shell < rooting_tool/dlxj/push.txt
cd /data/local/tmp

chmod 755 *

./run_root_shell

dd if=/dev/block/mmcblk0p21 of=/sdcard/mmcblk0p21_misc_backup

dd if=/sdcard/mmcblk0p21_misc_fake of=/dev/block/mmcblk0p21

exit

exit

exitshell@android:/ $ cd /data/local/tmp
shell@android:/data/local/tmp $ 
shell@android:/data/local/tmp $ chmod 755 *
shell@android:/data/local/tmp $ 
shell@android:/data/local/tmp $ ./run_root_shell


Device detected: HTL21 (JRO03C)

Attempt acdb exploit...
HTL21 (JRO03C 1.39.970.3) is not supported.

Attempt fj_hdcp exploit...

Attempt msm_cameraconfig exploit...
Detected kernel physical address at 0x80608000 form iomem

Attempt put_user exploit...
shell@android:/data/local/tmp # 
0p21 of=/sdcard/mmcblk0p21_misc_backup                                        <
2045+0 records in
2045+0 records out
1047040 bytes transferred in 0.308 secs (3399480 bytes/sec)
shell@android:/data/local/tmp # 
1_misc_fake of=/dev/block/mmcblk0p21                                          <
2045+0 records in
2045+0 records out
1047040 bytes transferred in 0.100 secs (10470400 bytes/sec)
shell@android:/data/local/tmp # 
shell@android:/data/local/tmp # exit
shell@android:/data/local/tmp $ 
shell@android:/data/local/tmp $ exit
downgrad_tool $ 

 さあいよいよだな。
ECHO RUUを適用します。触らずにそのままお待ちください。
.\adb\adb.exe reboot bootloader
 端末が再起動して BOOTLOADER の画面になった。
 慎重にコマンドを入力してと思いきや exe いらんやん。
downgrad_tool $ fastboot.exe oem rebootRUU
-bash: fastboot.exe: command not found
downgrad_tool $ 
downgrad_tool $ 
downgrad_tool $ fastboot oem rebootRUU
...
(bootloader) Start Verify: 3
OKAY [  0.039s]
finished. total time: 0.039s

downgrad_tool $ 

 ここで HTC21 は画面に HTC を表示して待機している模様。
 さあ zip の書き込みが終わったら再起動した。
downgrad_tool $ fastboot flash zip 1399703_firmware.zip 
sending 'zip' (14931 KB)...
OKAY [  1.589s]
writing 'zip'...
(bootloader) adopting the signature contained in this image...
(bootloader) signature checking...
(bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) checking main version...
(bootloader) checking hboot version...
(bootloader) start image[hboot] unzipping for pre-update check...
(bootloader) start image[hboot] flushing...
(bootloader) signature checking...
(bootloader) [RUU]WP,hboot,0
(bootloader) [RUU]WP,hboot,99
(bootloader) [RUU]WP,hboot,100
(bootloader) ...... Successful
FAILED (remote: 90 hboot pre-update! please flush image again immediately)
finished. total time: 6.469s

downgrad_tool $ 

 またここで HTC21 は画面に HTC を表示して待機している模様。
 HTC の下に棒グラフが現れて何かしらの進捗状態を表示している。
 いまは八割といったところかな。
 おお。もうすぐ終わりそうだぞ。
実行完了はしたけれど端末側は何かしらの処理を行っている模様。
 ステータスが残り 3mm のところから進んでいないような気がする。

 とりあえず実行結果のログを貼り付けておく。
downgrad_tool $ fastboot flash zip rom.zip 
sending 'zip' (821718 KB)...
OKAY [ 32.276s]
writing 'zip'...
(bootloader) adopting the signature contained in this image...
(bootloader) signature checking...
(bootloader) rom parsing start ...
(bootloader) rom parsing finish ...
(bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) checking main version...
(bootloader) checking hboot version...
(bootloader) start image[sbl3] unzipping & flushing...
(bootloader) [RUU]UZ,sbl3,0
(bootloader) [RUU]UZ,sbl3,100
(bootloader) signature checking...
(bootloader) ...... Successful
(bootloader) start image[boot] unzipping & flushing...
(bootloader) [RUU]UZ,boot,0
(bootloader) [RUU]UZ,boot,14
(bootloader) [RUU]UZ,boot,27
(bootloader) [RUU]UZ,boot,37
(bootloader) [RUU]UZ,boot,48
(bootloader) [RUU]UZ,boot,60
(bootloader) [RUU]UZ,boot,73
(bootloader) [RUU]UZ,boot,83
(bootloader) [RUU]UZ,boot,94
(bootloader) [RUU]UZ,boot,100
(bootloader) [RUU]WP,boot,0
(bootloader) [RUU]WP,boot,99
(bootloader) [RUU]WP,boot,100
(bootloader) ...... Successful
(bootloader) start image[rpm] unzipping & flushing...
(bootloader) [RUU]UZ,rpm,0
(bootloader) [RUU]UZ,rpm,100
(bootloader) signature checking...
(bootloader) ...... Successful
(bootloader) start image[pg2fs_spcustom] unzipping & flushing...
(bootloader) [RUU]UZ,pg2fs_spcustom,0
(bootloader) [RUU]UZ,pg2fs_spcustom,38
(bootloader) [RUU]UZ,pg2fs_spcustom,99
(bootloader) [RUU]UZ,pg2fs_spcustom,100
(bootloader) ...... Successful
(bootloader) start image[tz] unzipping & flushing...
(bootloader) [RUU]UZ,tz,0
(bootloader) [RUU]UZ,tz,100
(bootloader) signature checking...
(bootloader) ...... Successful
(bootloader) start image[dzdata] unzipping & flushing...
(bootloader) [RUU]UZ,dzdata,0
(bootloader) [RUU]UZ,dzdata,6
(bootloader) [RUU]UZ,dzdata,13
(bootloader) [RUU]UZ,dzdata,20
(bootloader) [RUU]UZ,dzdata,27
(bootloader) [RUU]UZ,dzdata,32
(bootloader) [RUU]UZ,dzdata,37
(bootloader) [RUU]UZ,dzdata,44
(bootloader) [RUU]UZ,dzdata,51
(bootloader) [RUU]UZ,dzdata,58
(bootloader) [RUU]UZ,dzdata,64
(bootloader) [RUU]UZ,dzdata,71
(bootloader) [RUU]UZ,dzdata,78
(bootloader) [RUU]UZ,dzdata,85
(bootloader) [RUU]UZ,dzdata,92
(bootloader) [RUU]UZ,dzdata,99
(bootloader) [RUU]UZ,dzdata,100
(bootloader) [RUU]WP,dzdata,0
(bootloader) [RUU]WP,dzdata,13
(bootloader) [RUU]WP,dzdata,18
(bootloader) [RUU]WP,dzdata,23
(bootloader) [RUU]WP,dzdata,33
(bootloader) [RUU]WP,dzdata,38
(bootloader) [RUU]WP,dzdata,52
(bootloader) [RUU]WP,dzdata,61
(bootloader) [RUU]WP,dzdata,87
(bootloader) [RUU]WP,dzdata,98
(bootloader) [RUU]WP,dzdata,100
(bootloader) ...... Successful
(bootloader) start image[sbl1-2] unzipping & flushing...
(bootloader) [RUU]UZ,sbl1-2,0
(bootloader) [RUU]UZ,sbl1-2,100
(bootloader) signature checking...
(bootloader) ...... Successful
(bootloader) start image[sbl1-1] unzipping & flushing...
(bootloader) [RUU]UZ,sbl1-1,0
(bootloader) [RUU]UZ,sbl1-1,100
(bootloader) signature checking...
(bootloader) verified fail
(bootloader) ..... Bypassed
(bootloader) start image[adsp] unzipping & flushing...
(bootloader) [RUU]UZ,adsp,0
(bootloader) [RUU]UZ,adsp,16
(bootloader) [RUU]UZ,adsp,26
(bootloader) [RUU]UZ,adsp,38
(bootloader) [RUU]UZ,adsp,49
(bootloader) [RUU]UZ,adsp,61
(bootloader) [RUU]UZ,adsp,72
(bootloader) [RUU]UZ,adsp,83
(bootloader) [RUU]UZ,adsp,95
(bootloader) [RUU]UZ,adsp,100
(bootloader) [RUU]WP,adsp,0
(bootloader) [RUU]WP,adsp,100
(bootloader) ...... Successful
(bootloader) start image[tp] unzipping & flushing...
(bootloader) [RUU]UZ,tp,0
(bootloader) [RUU]UZ,tp,100
(bootloader) ...... Successful
(bootloader) start image[sbl2] unzipping & flushing...
(bootloader) [RUU]UZ,sbl2,0
(bootloader) [RUU]UZ,sbl2,100
(bootloader) signature checking...
(bootloader) ...... Successful
(bootloader) start image[recovery] unzipping & flushing...
(bootloader) [RUU]UZ,recovery,0
(bootloader) [RUU]UZ,recovery,11
(bootloader) [RUU]UZ,recovery,22
(bootloader) [RUU]UZ,recovery,36
(bootloader) [RUU]UZ,recovery,48
(bootloader) [RUU]UZ,recovery,74
(bootloader) [RUU]UZ,recovery,85
(bootloader) [RUU]UZ,recovery,95
(bootloader) [RUU]UZ,recovery,100
(bootloader) [RUU]WP,recovery,0
(bootloader) [RUU]WP,recovery,99
(bootloader) [RUU]WP,recovery,100
(bootloader) ...... Successful
(bootloader) start image[system] unzipping & flushing...
(bootloader) [RUU]UZ,system,0
(bootloader) [RUU]UZ,system,1
(bootloader) [RUU]UZ,system,3
(bootloader) [RUU]UZ,system,5
(bootloader) [RUU]UZ,system,6
(bootloader) [RUU]UZ,system,8
(bootloader) [RUU]UZ,system,10
(bootloader) [RUU]UZ,system,12
(bootloader) [RUU]UZ,system,13
(bootloader) [RUU]UZ,system,15
(bootloader) [RUU]UZ,system,17
(bootloader) [RUU]UZ,system,18
(bootloader) [RUU]UZ,system,20
(bootloader) [RUU]UZ,system,22
(bootloader) [RUU]UZ,system,24
(bootloader) [RUU]UZ,system,25
(bootloader) [RUU]WP,system,0
(bootloader) [RUU]WP,system,1
(bootloader) [RUU]WP,system,3
(bootloader) [RUU]WP,system,5
(bootloader) [RUU]WP,system,6
(bootloader) [RUU]WP,system,8
(bootloader) [RUU]WP,system,10
(bootloader) [RUU]WP,system,12
(bootloader) [RUU]WP,system,13
(bootloader) [RUU]WP,system,15
(bootloader) [RUU]WP,system,17
(bootloader) [RUU]WP,system,18
(bootloader) [RUU]WP,system,20
(bootloader) [RUU]WP,system,22
(bootloader) [RUU]WP,system,24
(bootloader) [RUU]WP,system,25
(bootloader) [RUU]UZ,system,25
(bootloader) [RUU]UZ,system,26
(bootloader) [RUU]UZ,system,28
(bootloader) [RUU]UZ,system,30
(bootloader) [RUU]UZ,system,32
(bootloader) [RUU]UZ,system,33
(bootloader) [RUU]UZ,system,35
(bootloader) [RUU]UZ,system,37
(bootloader) [RUU]UZ,system,39
(bootloader) [RUU]UZ,system,41
(bootloader) [RUU]UZ,system,42
(bootloader) [RUU]UZ,system,44
(bootloader) [RUU]UZ,system,46
(bootloader) [RUU]UZ,system,48
(bootloader) [RUU]UZ,system,49
(bootloader) [RUU]UZ,system,51
(bootloader) [RUU]WP,system,25
(bootloader) [RUU]WP,system,26
(bootloader) [RUU]WP,system,28
(bootloader) [RUU]WP,system,30
(bootloader) [RUU]WP,system,32
(bootloader) [RUU]WP,system,33
(bootloader) [RUU]WP,system,35
(bootloader) [RUU]WP,system,37
(bootloader) [RUU]WP,system,39
(bootloader) [RUU]WP,system,41
(bootloader) [RUU]WP,system,42
(bootloader) [RUU]WP,system,44
(bootloader) [RUU]WP,system,46
(bootloader) [RUU]WP,system,48
(bootloader) [RUU]WP,system,49
(bootloader) [RUU]WP,system,51
(bootloader) [RUU]UZ,system,51
(bootloader) [RUU]UZ,system,52
(bootloader) [RUU]UZ,system,54
(bootloader) [RUU]UZ,system,56
(bootloader) [RUU]UZ,system,58
(bootloader) [RUU]UZ,system,59
(bootloader) [RUU]UZ,system,61
(bootloader) [RUU]UZ,system,63
(bootloader) [RUU]UZ,system,64
(bootloader) [RUU]UZ,system,66
(bootloader) [RUU]UZ,system,68
(bootloader) [RUU]UZ,system,69
(bootloader) [RUU]UZ,system,71
(bootloader) [RUU]UZ,system,73
(bootloader) [RUU]UZ,system,75
(bootloader) [RUU]UZ,system,77
(bootloader) [RUU]WP,system,51
(bootloader) [RUU]WP,system,52
(bootloader) [RUU]WP,system,54
(bootloader) [RUU]WP,system,56
(bootloader) [RUU]WP,system,58
(bootloader) [RUU]WP,system,59
(bootloader) [RUU]WP,system,61
(bootloader) [RUU]WP,system,63
(bootloader) [RUU]WP,system,65
(bootloader) [RUU]WP,system,67
(bootloader) [RUU]WP,system,68
(bootloader) [RUU]WP,system,70
(bootloader) [RUU]WP,system,72
(bootloader) [RUU]WP,system,74
(bootloader) [RUU]WP,system,75
(bootloader) [RUU]WP,system,77
(bootloader) [RUU]UZ,system,77
(bootloader) [RUU]UZ,system,78
(bootloader) [RUU]UZ,system,79
(bootloader) [RUU]UZ,system,80
(bootloader) [RUU]UZ,system,82
(bootloader) [RUU]UZ,system,84
(bootloader) [RUU]UZ,system,86
(bootloader) [RUU]UZ,system,88
(bootloader) [RUU]UZ,system,89
(bootloader) [RUU]UZ,system,91
(bootloader) [RUU]UZ,system,93
(bootloader) [RUU]UZ,system,95
(bootloader) [RUU]UZ,system,97
(bootloader) [RUU]UZ,system,99
(bootloader) [RUU]UZ,system,100
(bootloader) [RUU]WP,system,77
(bootloader) [RUU]WP,system,78
(bootloader) [RUU]WP,system,80
(bootloader) [RUU]WP,system,82
(bootloader) [RUU]WP,system,84
(bootloader) [RUU]WP,system,86
(bootloader) [RUU]WP,system,88
(bootloader) [RUU]WP,system,89
(bootloader) [RUU]WP,system,91
(bootloader) [RUU]WP,system,93
(bootloader) [RUU]WP,system,95
(bootloader) [RUU]WP,system,97
(bootloader) [RUU]WP,system,99
(bootloader) [RUU]WP,system,100
(bootloader) ...... Successful
(bootloader) start image[sp1] unzipping & flushing...
(bootloader) [RUU]UZ,sp1,0
(bootloader) [RUU]UZ,sp1,99
(bootloader) [RUU]UZ,sp1,100
(bootloader) [RUU]WP,sp1,0
(bootloader) [RUU]WP,sp1,100
(bootloader) ...... Successful
(bootloader) start image[radio] unzipping & flushing...
(bootloader) [RUU]UZ,radio,0
(bootloader) [RUU]UZ,radio,8
(bootloader) [RUU]UZ,radio,17
(bootloader) [RUU]UZ,radio,25
(bootloader) [RUU]UZ,radio,33
(bootloader) [RUU]UZ,radio,38
(bootloader) [RUU]UZ,radio,46
(bootloader) [RUU]UZ,radio,54
(bootloader) [RUU]UZ,radio,59
(bootloader) [RUU]UZ,radio,67
(bootloader) [RUU]UZ,radio,76
(bootloader) [RUU]UZ,radio,85
(bootloader) [RUU]UZ,radio,92
(bootloader) [RUU]UZ,radio,99
(bootloader) [RUU]UZ,radio,100
(bootloader) [RUU]WP,radio,0
(bootloader) [RUU]WP,radio,33
(bootloader) [RUU]WP,radio,67
(bootloader) [RUU]WP,radio,100
(bootloader) ...... Successful
(bootloader) start image[rcdata] unzipping & flushing...
(bootloader) [RUU]UZ,rcdata,0
(bootloader) [RUU]UZ,rcdata,100
(bootloader) [RUU]WP,rcdata,0
(bootloader) [RUU]WP,rcdata,100
(bootloader) ...... Successful
OKAY [310.247s]
finished. total time: 342.523s
downgrad_tool $ 

 一箇所だけスキップされているところがあるのが気になる。
 HTL21 の画面も進んでいるようには見えないのでもうしばらく待機。

 バッチファイルをみると ping がいっぱい並んでいるんだけれど HTL21 の生存確認のために行っているのか。
 端末を見ながら実行していくとたぶん二回 flash が出来たら成功という意味だと思う。
 ただ上記の状態だと rom.zip を二回実施しないとダメなのかなと思う。
 果たしてどっちなんだろうか。

 もう一回 flash して再起動してみよっと。

downgrad_tool $ fastboot flash zip rom.zip 
sending 'zip' (821718 KB)...
OKAY [ 31.692s]
writing 'zip'...
(bootloader) adopting the signature contained in this image...
(bootloader) signature checking...
(bootloader) rom parsing start ...
(bootloader) rom parsing finish ...
(bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) checking main version...
(bootloader) checking hboot version...
FAILED (remote: 44 hboot version check fail)
finished. total time: 134.928s
downgrad_tool $ fastboot reboot
rebooting...

finished. total time: 0.038s
downgrad_tool $ 

 flash したら怒られたので再起動してみたら起動した。

 1.15.970.1 へのダウングレードができたようだ。
 rom.zip で一部エラーをスキップしたようだけれど確認エラーだからほうっておこう。
 たぶんもう一回 rom.zip を書き込めばうまくいくような気がするからということにしておきたい。

 この辺りの入力したコマンドを整理すれば簡単にできるような気がするので後日整理かな。
adb  push rooting_tool/device.db /data/local/tmp
adb  push rooting_tool/run_root_shell /data/local/tmp
adb pull /sdcard/mmcblk0p21_misc_backup mmcblk0p21_misc_backup
adb push mmcblk0p21_misc_fake /sdcard/
adb shell < rooting_tool/dlxj/push.txt
adb reboot bootloader
fastboot oem rebootRUU
fastboot flash zip 1399703_firmware.zip
fastboot flash zip rom.zip
fastboot reboot
adb devices

 しかしこの手順を見つける人ってどういう人なんだろうか。

 バッチファイルでやっていることはわかってきたが端末内部で何が起こっているのか全く理解できていないw

Library が表示されていないので困った。 

 いつの頃からか Library が表示されなくなったのを思い出したので下記の魔法の呪文を唱えます。
~ $ chflags nohidden ~/Library

 これで Finder から普通に Library が見えるようになった。
 adb が入っているはずなのに検索しても引っかかることがなかったけれどこれで目視確認ができた。

 ターミナル で adb を使えるに PATH を通しておこっと。
~ $ set | grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
~ $ vi .bash_profile (adb があるパスを追加する)
~ $ source .bash_profile (環境設定ファイルを再読み込み)
~ $ set | grep PATH (設定されているか確認)
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/xueli/Library/Android/sdk/platform-tools
~ $ 

 adb がある場所については adb の情報を見るからコピペすると間違いがないのでおすすめ。
 やったことに対しては確認が必要。
~ $ adb version
Android Debug Bridge version 1.0.32
Revision 57224c5cff69-android
~ $ 

問題なし。
 adb が動くことでひとつ山を超えた。


 動画でディスク容量を食われていたが原因がわかった。
 ちょっと前にドライブレコーダーを取り付けたときの動画データ一式を MacBook Air に入れていたw
 これは午前中に気がついたので削除しておいた。
削除が終わったのはいまさっきだけどw
 ここまでの残り容量があれば普通に使っても大丈夫でしょう。
 写真や動画は外付けハードディスクをすることは前提ですが。

 1T な SSD を使ってみたい。

AndroidStudio と hello

 hellow を表示させるだけのプロジェクトを build するのに六秒弱。
 こんなものなのかな。
 MacBook Retina だとどうなのかな。気になるなあ。誰か教えて欲しいなあ。

 build についてはこちらからまったく手を出していないのでうまくいくw









 ちょっと前に SOL21 で試したときには接続できずどうにもならなかった。
 明日か明後日くらいに到着予定の Nexus7 に接続して色々と遊んでみたい。
 Google 純正だから接続トラブルは発生しないものと思いたい。
 実機がくるのが楽しみである。

2015年9月6日日曜日

MacBook Air のゴミ箱が空っぽにならない。

 残りディスク容量が 5GB となっている MacBook Air なので早急に調査開始。
 権限の問題だとは思うんだが対処方法がまったく不明。

 アップルのサイトを発見。
https://support.apple.com/ja-jp/HT201583
ゴミ箱を空にできない、またはファイルをゴミ箱に移動できない場合
たとえば、ゴミ箱を空にしようとすると、「項目 "(項目名)" がロックされているため、操作を完了できません」というメッセージが表示される場合があります。
まず、「option」キーを押しながら「Finder」メニューから「ゴミ箱を空にする」を選択してみます。

 Finder のメニューからも空にできるのをすっかり忘れてた。
 ただ「option」キーは知らなかった。
 削除が進んでいて問題はないけれど削除項目数が十万を超えているから終わりが見えない。
 あちこちの端末の写真や動画のデータをかき集めてあるうえに iTunes ライブラリのバックアップもしてあったからなぁ。
 こうなったら I/F が弾けている MacBook Retina の購入を検討してみるか!
http://www.apple.com/jp/macbook/

 いやいや。
 もう少し考えようw


 投稿してから放置状態で三時間半くらい経つけれどまだ空っぽになっていませんorz
 この調子なら晩ご飯を食べ始める時間には終わるかな。

 晩ご飯時間どころか真夜中まで空っぽにし続けていた。
 いつになったら終わるのかがわからなかったので放置プレイ。
 朝には終わっていたので結果おーらい。
 ストレージ状況をみるとムービーが幅を利かせているので探して引越しだな。
 あと「その他」の容量が大きのが気になるので要調査か放置かと言ったところかな。



2015年9月5日土曜日

osxfuse + ntfs-3g + Yosemite = NTFS の読み書きのテストをしてみた。

 とりあえずは MacBook Air 内にある写真や動画データを外に出して本体の SSD 容量を確保。
 2,630 項目をコピーしてみることにした。

うむ。順調である。半分を超えたあたりで残り一時間程度。
 コピー時間のかかりすぎっていうのは USB2.0 でがんばり屋さんの Late 2010 ですので。
 コピーが終わったら適当に写真や動画をみてコピー完了を確認してみよう。

2015年9月4日金曜日

brew メモメモ

 homebrew-caskで丸ごと入手できる、MacOSXのおすすめフリーソフトまとめ
http://qiita.com/y_hokkey/items/df6d7bf5f367ee13ad1a

 htl21 をダウングレードのするのに必要そうなソフトを探索中。

2015年9月3日木曜日

osxfuse + ntfs-3g + Yosemite = NTFS の読み書き

 USB3.0 が使える Windows パソコンが過去にあったので速度を体感すべく外付けハードディスクを購入して試してみた。
 はえー!はえー!
 と思ったもののすぐにメインマシンを Windows から MacBook Air (11-inch, Late 2010) へ切り替えてしまった。
 外付けハードディスクにはスマフォで撮った写真や動画データを溜め込んであるので簡単には移動ができないしある程度整理してあるのでできればそのまま使いたい。
 OS X Yosemite で外付けハードディスクの NTFS は読めることを確認したが書き込みや削除が行えないのに困って調べてみると brew なるもので使える模様。
どうやらシステムにはあまり手を加えずかつ通常ユーザで扱えるように設計されているらしいので個人的には好みである。

 とりあえずインストールをしなくては話にならないからやってみよう。

~ $ java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
~ $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
==> The following directories will be made group writable:
/usr/local/.
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
==> The following directories will have their group set to admin:
/usr/local/.
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
Password:
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 3724, done.
remote: Compressing objects: 100% (3558/3558), done.
remote: Total 3724 (delta 37), reused 648 (delta 26), pack-reused 0
Receiving objects: 100% (3724/3724), 3.11 MiB | 483.00 KiB/s, done.
Resolving deltas: 100% (37/37), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
HEAD is now at 4fbd40a fix style problems in migrator
==> Installation successful!
==> Next steps
Run `brew help` to get started
~ $ 

 まずは brew help を実行せよとのお達しなので試す。

~ $ brew help
Example usage:
  brew [info | home | options ] [FORMULA...]
  brew install FORMULA...
  brew uninstall FORMULA...
  brew search [foo]
  brew list [FORMULA...]
  brew update
  brew upgrade [FORMULA...]
  brew pin/unpin [FORMULA...]

Troubleshooting:
  brew doctor
  brew install -vd FORMULA
  brew [--env | config]

Brewing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md

Further help:
  man brew
  brew home
~ $ 

 なんか簡単にインストールされた。

 さて次は ntfs-3g をインストールしていくらしい。

~ $ brew uninstall osxfuse
Error: No such file or directory - /usr/local/Cellar

 玄関のチャイムが鳴ったぞ。
 一体誰だろうと思ったら mineo の D プラン用の nano SIM が届いた
 とりあえず作業はここで止めておこう。
 無事に開通したので作業再開。

~ $ brew doctor
Your system is ready to brew.

 brew に問題はなし。

~ $ brew update
Updated Homebrew from 4fbd40a4 to 39ccf013.
==> New Formulae
nyancat

 アップデートされているパッケージがある模様。
 だが今回は関係なさそうなのでスキップしようと思ったけれど ntfs-3g で引っかかるのでアップデート。


 このお手軽さは素晴らしい。
~ $ brew upgrade
~ $ brew update
Already up-to-date.
~ $ 

 バージョンチェックはコマンドラインでよく使うものと同じだな。
~ $ brew -v
Homebrew 0.9.5 (git revision 39cc; last commit 2015-09-03)

 さて本題に行こう。
~ $ brew update && brew install ntfs-3g
Already up-to-date.
Error: No available formula for ntfs-3g 
==> Searching formulae...
==> Searching taps...
homebrew/fuse/ntfs-3g
~ $ 

どうやら fuse/ntfs-3g が無いと言っている模様。

 別のサイトのやり方をやってみよう。
~ $ brew install caskroom/cask/brew-cask
==> Tapping caskroom/cask
Cloning into '/usr/local/Library/Taps/caskroom/homebrew-cask'...
remote: Counting objects: 3127, done.
remote: Compressing objects: 100% (3052/3052), done.
remote: Total 3127 (delta 89), reused 701 (delta 59), pack-reused 0
Receiving objects: 100% (3127/3127), 5.80 MiB | 517.00 KiB/s, done.
Resolving deltas: 100% (89/89), done.
Checking connectivity... done.
Tapped 1 formula (3106 files, 24M)
==> Installing brew-cask from caskroom/homebrew-cask
==> Cloning https://github.com/caskroom/homebrew-cask.git
Cloning into '/Library/Caches/Homebrew/brew-cask--git'...
remote: Counting objects: 3071, done.
remote: Compressing objects: 100% (2990/2990), done.
remote: Total 3071 (delta 100), reused 731 (delta 65), pack-reused 0
Receiving objects: 100% (3071/3071), 5.78 MiB | 698.00 KiB/s, done.
Resolving deltas: 100% (100/100), done.
Checking connectivity... done.
Note: checking out 'b30085af1e10fb6c50c5c1395849af07d67a83ac'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

==> Checking out tag v0.56.0
🍺  /usr/local/Cellar/brew-cask/0.56.0: 2802 files, 11M, built in 24 seconds
~ $ 

~ $ brew cask install osxfuse
==> We need to make Caskroom for the first time at /opt/homebrew-cask/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:
==> Downloading http://downloads.sourceforge.net/project/osxfuse/osxfuse-2.8.0/o
######################################################################## 100.0%
==> Running installer for osxfuse; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are i
==> installer: Package name is FUSE for OS X (OSXFUSE)
==> installer: Upgrading at base path /
==> installer: The upgrade was successful.
🍺  osxfuse staged at '/opt/homebrew-cask/Caskroom/osxfuse/2.8.0' (6 files, 8.5M)
~ $ 

~ $ brew install homebrew/fuse/ntfs-3g
==> Tapping homebrew/fuse
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-fuse'...
remote: Counting objects: 31, done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 31 (delta 0), reused 27 (delta 0), pack-reused 0
Unpacking objects: 100% (31/31), done.
Checking connectivity... done.
Tapped 26 formulae (80 files, 324K)
==> Installing ntfs-3g from homebrew/homebrew-fuse
==> Installing dependencies for homebrew/fuse/ntfs-3g: pkg-config, gettex
==> Installing homebrew/fuse/ntfs-3g dependency: pkg-config
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.28.yosemite.bo
######################################################################## 100.0%
==> Pouring pkg-config-0.28.yosemite.bottle.2.tar.gz
🍺  /usr/local/Cellar/pkg-config/0.28: 10 files, 612K
==> Installing homebrew/fuse/ntfs-3g dependency: gettext
==> Downloading https://homebrew.bintray.com/bottles/gettext-0.19.5.1.yosemite.b
######################################################################## 100.0%
==> Pouring gettext-0.19.5.1.yosemite.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.

OS X provides the BSD gettext library and some software gets confused if both are in the library path.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/gettext/lib
    CPPFLAGS: -I/usr/local/opt/gettext/include

==> Summary
🍺  /usr/local/Cellar/gettext/0.19.5.1: 1921 files, 22M
==> Installing homebrew/fuse/ntfs-3g
==> Downloading https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2015.3.14.tgz
==> Downloading from https://www.tuxera.com/opensource/ntfs-3g_ntfsprogs-2015.3.
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/ntfs-3g/2015.3.14 --exec-prefix=/usr/
==> make
==> make install
🍺  /usr/local/Cellar/ntfs-3g/2015.3.14: 87 files, 2.0M, built in 2.2 minutes
~ $ 

 ntfs-3g がインストールされているかを確認してみる。
~ $ brew list
brew-cask gettext ntfs-3g pkg-config
~ $ 

 ntfs-3g はもともとある /sbin/mount_ntfs を置き換えて使うようだ。
~ $ sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
Password:
~ $ sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs

~ $ ls -l /sbin/mount_ntfs
lrwxr-xr-x  1 root  wheel  26  9  3 18:46 /sbin/mount_ntfs -> /usr/local/sbin/mount_ntfs
~ $ 

 準備もできたので先ほどの USB3.0 の外付けハードディスクを接続してみて書き込みができるかを確認してみた。
 mount_ntfs 自体を使っていなかったので再起動は不要と判断した。
できた。できた!
 もちろんこのあとフォルダごと削除もできました。
 これでいままで通りにスマフォで撮影した写真や動画データのバックアップができる。
 MacBook Air はたまに持ち歩くので iTunes ライブラリを入れることができないのが残念である。
 といっても iTunes はそんなに立ち上げることはないんだけど。
 どちらかというと iFunbox のほうが多いかもしれない。

参考サイトは以下の通りです。
http://qiita.com/ganta/items/f9cc7189e3efe417262f
 こちらのサイトでは権限を変更している箇所がありましたが変更せずに実施してますので注意注意。
 英文サイトで見かけて ntfs-3g がインストールできなくて困ってましたがこちらのサイトで無事に解決することができました。
 感謝です。

 これにて無事完了。
~ $ brew --config
HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew
HEAD: 39ccf013b69758d276d725bf36ee3dbd6da08bdb
Last commit: 3 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: dual-core 64-bit penryn
OS X: 10.10.5-x86_64
Xcode: 6.4
CLT: N/A
Clang: 6.1 build 602
X11: N/A
System Ruby: 2.0.0-p481
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby
Java: 1.8.0_40

 MacBook Air を更新すればこんな苦労はしなくてすむし別件でのコンパイル時間を考えれば  USB3.0 ポートが載った MacBook Pro にすべきという案があるんだけれど懐事情がw

2015年9月2日水曜日

「すぐ家計簿」アプリのデータを無理やり入力しようとしたら。

 CSV ファイルで見えたので Calc を使って消えたデータを一部復旧テストをしてみた。
 どうも入力した年月日と時分秒らしいものも連結しているようでインポートしようとしたらデータがおかしいと言われてインポートできなかった。
 確かに同一項目を表示するときにソートしている感が見受けられていいアプリだなと感心したら記憶はあるw

 こうなったら三月から八月までのデータはすべて諦めて九月から仕切り直しにしたほうが良さそうだな。
 せっかく三年以上続けて入力してきたのが切れてしまうのは残念ではあるが。

MELSECNET/HのリモートI/O局経由のMODBUS(R)通信について

http://fa-faq.mitsubishielectric.co.jp/faq/show/13661  別ネットワークの先にぶら下げるってどういうことだろう。