2016年5月25日水曜日

自分が所有するSnapShotで、AMIがないものを探索するスクリプトを作ってみた

AWSを使っていて、気軽にEC2をスナップショットとったり、消したりしているのですが、
AMI削除したのに、何故かスナップショットが残ることがあり、地味に課金されていたので、
気が付いたら消していたのですが、そもそも自動で消えない仕様ということらしいので、
探索するスクリプトを作成してみました。

スクリプトはここらあたりにあります。

まぁ実はコンパネから全スナップショットを選択して削除すれば、
AMIがあるやつはエラーになるので、結果的に消せるんですが、警告無視した結果もろとも消してしまったので・・・

2016年5月24日火曜日

ThinkPad X100eとThinkPad Edge 11の液晶を交換してみた。

某所にて、バッテリが充電しないThinkPad Edge 11の中古を入手しました。
バッテリが充電しない原因は単純にバッテリが死んでいただけでしたので、とりあえずX100eのバッテリをつかって、動作確認をしていたのですが、どうもあのピカピカ液晶が我慢ならず、もう引退したX100eの液晶と交換しました。

なお、液晶パネル交換はかなり神経を使う細かい作業になります。
詳細な手順は記載しませんので、まぁこんなものか。と参考程度に見てください。
当然分解すると保証はなくなりますし、接触不良で発煙するかもしれませんし、最悪マザボや液晶を壊すかもしれません。その辺り覚悟のうえ自己責任で行っております。


X100eとEdge 11 は見た目も大きさも大変良く似ているばかりか、キーボードやHDDを付ける金具、バッテリなど結構部品が流用されています。さすが後継機ですね。
通常ノートPCの液晶パネルは、たとえ同じインチ数でも駆動方法やコネクタ、バックライト回りや取り付けるねじの位置など結構差異があり、ほぼ流用は不可なんですが、このX100eとEdge 11は同じコネクタ、駆動方式で流用が可能。ということは調べがついています。

ではまずは移植元となる、X100eの液晶パネルを取り出します。
液晶の外枠の下にある隠しねじを慎重に外し、液晶面から左右の枠を少しづつ外していきます。
ヒンジの個所や、上の角の所は爪が固くなかなか外れませんが、焦って力任せにせず、ほかの外せるところから外していきます。
焦ったり無理やり外すと十中八九、爪が折れます。

外すとパネルがむき出しになります。


いろいろやり方はあるのですが、自分の場合液晶パネルを外す際はこのように180度倒した状態で作業します。
これは、立てたまま作業すると、ねじを外した際パネルが倒れて、後ろにある配線が切れたりすることを防ぐためです。

ではまず、ヒンジの個所にある、パネルを止めているねじから外していき、次にサイドのねじを外していきます。
この再使用する精密ドライバーは、100均のような安物を使わないほうが良いです。高確率でねじの頭を潰します。適切な道具を使用することを強くお勧めします。

パネルのねじを全部外したら、カメラのある上部からゆっくりとパネルを持ち上げます。
パネルの後ろに、両面テープでフィルム状のケーブルが張り付いているので、マイナスドライバーなど先のとがったものではなく、ピンセットなどで少しづつ剥がします。
その際、カメラモジュールを外したほうが作業がやりやすいので、カメラモジュールから配線を外すのが難しい場合は、モジュールごと外してしまうほうがいいです。

この配線は大変細く、切れやすいものになります。慎重に剥がします。
剥がしましたら、ヒンジ部分にあるケーブルに気を付けつつ、パネルをキーボード側に倒します。
ヒンジ側から見て左下に、液晶と接続している金色の小さいコネクタがあります。
その上に透明の割と厚手で丈夫なフィルムが張り付いていますので、指紋など付けないよう慎重にピンセットなどで剥がします。
フィルムがはげたら、液晶パネルを接続している小さいコネクタの左右の出っ張りを細心の注意を払いながら、左右少しづつ押して外します。
絶対に銀色(灰色?)のケーブルを引っ張って抜いてはいけません!!
なかなか抜けませんが、ここでもマイナスドライバーとか持ち出してはいけません。爪の先かプラスティックの角などで慎重に押して外します。

移植先のEdge 11も同様にパネルを外します。
基本的にX100eと同じですが、パネルの後ろに走っているケーブルと、TOPパネルについているLEDへの配線が張り付いているので、気を付けて外します。
参考までに、裏側の配線はこんな感じでついています。


この写真は撮影のため液晶のコネクタを外していますが、実際は接続されているので、カメラの配線がついたまま液晶パネルを倒すと、カメラとパネルの配線の付け根が裂けてお亡くなりになります。

両方外れたら、あとは逆の手順で組み立てます。
パネルのコネクタは、極細で無理するとすぐ壊れますので、慎重に、真っすぐ奥まで差し込みます。
その後、外れないように、もともとついていたフィルムを張り付けます。

ねじを締める際、特にヒンジ部のねじは緩いと将来破損します。かといって絞めすぎると割れます。
ヒンジ部のねじは、ある程度絞めたら、パネルを前後に動かしながら左右均等に絞めるのがコツです。

こんな感じで無事交換完了です。


ノングレア液晶になり、電車内で日が差しても反射することなく快適に過ごせます。
ただし、ホットキーでの液晶の明るさ変更がおかしくなりました。
もしかしたら、明るさを変化する割合が違うのかもしれません。

しかし、なんであんなピカピカ液晶の製品出すんですかね・・・

2016年5月23日月曜日

DockerをWebで管理するツールを試してみた

この記事はすごい広島#157の成果物兼如法会1の発表ネタになる予定のものです。

如法会の当日現場で作っていたスライドはコレです。



DockerをGUIで使いたい! from Akira Kaneda


とある一般家庭の自宅サーバで検証しました。
Hyper-V上でDocerは問題なく動作します。

ただ、今回WeaveScopeのデモも兼ねてたくさんコンテナを稼働させた結果、ディスクIOとメモリが不足するという事態になりました。
メモリ4Gにしたのですが、しばらくするとコンテナがバシバシ死んでいく・・・・

Hyper-Vなど仮想マシンを使っていてもそうなのですが、ディスクIOは割と重要です。
Dockerはさらに頻繁にコンテナが生成、削除をやるので、ディスクIOは結構響きます。
ディスクIO待ちの結果ロードアベレージがガシガシ上がる・・・なんてことになりました。


2016年5月8日日曜日

AnsibleでUnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 79が出る。

Ansibleを使っていて、何かの拍子に上記エラーが出たのでメモ。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 79:
ordinal not in range(128)

ググると、ここが見つかった。

対応方法としては、site-packagesディレクトリ内に以下の内容をsitecustomize.pyというファイル名で保存。

import sys
sys.setdefaultencoding('utf-8')
デフォルトエンコードをutf-8に変更すればよい。