横あるき

変なことを書き綴るサイトです。

Nexus 7(2012)を修理しようとしました

3,4年前にサンタさんに貰ったNexus 7(2012)のデジタイザーを去年割ってしまい、タッチができない所ができたのですが、修理するには当時LollipopのOTAも降ってきて力不足感が否めない感じになってきていたため、そのまま放置していました。

近所にハードオフが開いたので、遠出しなくてもジャンク漁りができる!と歓喜し、店内を見てきたところ、バッテリーが死にかけのNexus 7(2012)がショーケースに置いてありました。ディスプレイ部分は大丈夫そうですし、の擦り傷もそんなに酷くなく、これはニコイチにぴったりだと思って購入しようとしました。

ふとその前に、電源を入れて内部の液晶が大丈夫かチェックさせてもらおうとカウンターの店員さんに頼み、「バッテリーに充電する必要がありますので30分ほどお待ちください」と言われ、オーディオコーナーのソファーに座りました。待てども変化がないので店員さんに声をかけたら、「これ、もうバッテリーが死んでますね。動作確認できませんでしたので、500円でどうですか?」と来て、これは買うしかないと即決しました。動作確認大事ですね。

それで家に帰ってから、ニコイチするために開腹、バッテリーを取り外したり放熱シートを剥がしたりして、順調に作業しました。ロットの違いがあって面白いですね。

左が割れたNexus 7、右がジャンク 開腹中

完了したと思ったら、裏返すとまたデジタイザーが割゛れ゛て゛い゛ま゛し゛た゛。

割れた箇所

幸い割れた箇所がベゼル部分に収まっていたために、タッチパネルで反応しない箇所はなかったのですが、せっかくニコイチした意味がだいたいなくなってショックでした。割れた原因は、硬い机の上で何も敷かずに作業していたことと、フロントパネルをネジ締めするときに、ドライバーを強く押し当て過ぎた事だと思います。気をつけましょう。

諦めきれない私は、ヒビにUVレジン(樹脂)を入れて、UVライトで固めたらヒビが目立たなくならないようになったりしないだろうかと思って、車のフロントガラス修理キットとネイルアートにも使えるちゃんとしたUVライトを買いました。

左から保護フィルム、修理キット、UVライト

UVライトにさらしている様子はこちらです。

UVライト照射中

結果としては、レジンを削る段階でヒビが細かすぎて、余分なレジンと一緒に剥がれてしまって、全く効果がありませんでした。この方法はもうバッキバキに割れたiPhoneとかヒビが広くて深いようなやつじゃないとうまくいかない気がしました。

レジンが固まったところ 上手く剥がせなかったのでヒビが見える様子


この話とは別に、タッチパネルは普通に動きますから、非公式のMarshmallowなAndroidを焼いてみたら、Lollipopとは比べ物にならない快適さを感じました。なんかAndroidのランタイムがARTになった絡みか知りませんが、アプリを入れる時とかもう本当に固まってどうしようもなかったんですが、Marshmallowはそういった理不尽なフリーズとは無縁になっていました。

Tegra 3のNexus 7(2012)でこれだけの体感差があるのですから、いかにLollipopが欠陥品質であったかと、Marshmallowが当たりであるかを思い知らされました。

そんな感じで、Nexus 7のために5500円くらいお金を出したら、Android 6.xが載った端末が欲しくなってしまい、思わずHUAWEI P9 liteをポチった話については次の記事で書きたいと思います。

意図しないrmを回避するためのbashrc

皆さん、楽しいターミナルライフしてますか?


先日、私は不注意なrmを実行したことで、フォルダのPicturesとDocumentsがあべししました。写真はバックアップをとってありますし、Documentsに入っていたものも消えても問題ないかバックアップをしてあったので被害は少なかったのですが、それにしたってちょっと雑過ぎるダンシャリ過ぎました。ショックです。

もうこんな過ちを犯すのはごめんなので、rmを実行したら確認のワンクッションを置けるaliasをbashrcに書いてみました。

confirm_rm() {
	echo "rm $@"
	echo "are you sure you want to remove these files?"
	while true; do
		echo -n '(y/n): '
		read res
		if echo "$res" | grep '^[yn]$' 2>&1 >/dev/null; then
			break
		fi
	done
	if [ "$res" = y ]; then
		\rm "$@"
	else
		echo 'these files were saved!'
	fi
}

alias rm="confirm_rm"

rmを実行しようとしたら、もう一度実行内容を確認します。ワイルドカードを使っていたら展開されて消される対象のファイルやフォルダがずらっと出てきます。

$ ls 消したくないフォルダ/
消したくないファイル1  消したくないファイル3  消したくないファイル5
消したくないファイル2  消したくないファイル4
$
$ rm 消したくないフォルダ/*
rm 消したくないフォルダ/消したくないファイル1 消したくないフォルダ/消したくないファイル2 消したくないフォルダ/消したくないファイル3 消したくないフォルダ/消したくないファイル4 消したくないフォルダ/消したくないファイル5
are you sure you want to remove these files?
(y/n): n
these files were saved!
$

本当に消してよい覚悟があるならy、ないならnを入力して、本来なら消えるはずだったものを救済しましょう!

$ rm -rf /*
rm -rf /bin /boot /dev /etc /home /lib /lib32 /lib64 /lost+found /media /mnt /opt /portage-latest.tar.bz2 /proc /root /run /sbin /srv /stage3-amd64-20151203.tar.bz2 /sys /tmp /usr /var
are you sure you want to remove these files?
(y/n): n
these files were saved!
$

あくまで実行する前に確認するだけなので、ないものを消そうとしたり権限が足りなくて消せないはずでも確認します。だるいでしょうけど仕方ないですね。

ぶっちゃけこんなダイアログ的にしなくても、もっと簡単に同じことが出来ますけどね。aliasはコマンドの頭にバックスラッシュを書けば一時的に無効化されるそうです。最初に紹介したやつもこれを利用しています。(参考にしたもの:エイリアスを一時的に無効にするには)

$ alias rm="echo rm"
$ rm 消したくないフォルダ/*
rm 消したくないフォルダ/消したくないファイル1 消したくないフォルダ/消したくないファイル2 消したくないフォルダ/消したくないファイル3 消したくないフォルダ/消したくないファイル4 消したくないフォルダ/消したくないファイル5
$ \rm 消したくないフォルダ/*
$

確認メッセージの英語おかしかったらツッコんで下さい。新幹線で書いてるんですけど、広島行ってきます!では!

単位認定試験pdfのファイル名をちょっと料理しました

放送大学って色々学習支援をネットから受けられるわけですが、微妙に使い勝手が悪い気がします。放送授業の時間割とかGoogleカレンダーと連携させたいけど手作業で打ち込むしかなかったり、資料室のインターネット配信は埋め込み再生のほうが良さそうとかですね。

で、単位認定試験が迫っていて遅まきながら、過去問を落とそうと思ったら、ファイル名が"科目番号-年度+学期+問題か解説.pdf"という規則だったので、科目名が分かりにくいと思いました。

それで、こんな感じのシェルスクリプトを書きました。

#!/bin/sh
if [ ! -f "$1" ]; then
	echo "no such file"
	exit 1
fi
html="$1"

for sbjnum in $(grep -oE '[0-9]{7}' "$html" | uniq); do
	for pdf in $(ls -f | grep -E "$sbjnum-[0-9]{4}[aq]\.pdf"); do
		sbjname=$(
			grep "$sbjnum" "$html" |
			sed 's;.*nowrap="">\([^<]\+\)</td>.*;\1;g')
		echo "found: $sbjname"
		mv "$pdf" $(echo "$pdf" | sed "s;[0-9]\{7\};$sbjname;")
	done
done

exit

"単位認定試験問題・解答・解説一覧"のhtmlそのものと任意の科目のpdfをダウンロードし、引数にhtmlを指定して実行すると、カレントディレクトリ内にある過去問pdfの、ファイル名に含まれる科目番号が科目名に置き換わります。

置き換え中 置き換え後

分かりにくいですがこんな感じです。

わりと雑に書いたので、すぐ使い物にならなくなりそうな気がしますが、まあいいかなぁ