ノートPCのバックライト交換その後

何ヶ月か前からディスプレイつけると赤みかかってたのでおかしいなと思ってたら今日、蛍光灯が切れる前みたいに点滅して真っ黒になった。

前に2本買いして1つ余ってたのをつけた。5時間くらいかけて。

はんだ付けるのと組み立てるのに時間を消費してしまった。

一年と四ヶ月前に交換したばかりなので寿命が来るのが早いなと感じたけど、14時間くらいつけっぱなしにして寝るときはディスプレイの電源だけを切る状態にしてるのでそのせいなのかもしれない。収縮チューブをバックライトに被せてた部分がキャラメル色に焼けてたのも少し気になる。あれは被せちゃいけないのかな。また、被せたけど

バックライトの寿命が延びるかわからないけどちょっと明るいのでディスプレイの明度を下げるために
コントロールパネル\画面→設定→詳細設定→色→デスクトップの明るさを少し下げておいた

Pythonのurllib2がメモリリークする件

間違ってたら指摘お願いします。

http://mail.python.org/pipermail/python-bugs-list/2005-October/030763.html
三年前に話してることみたいなんですがここではurlopen()したときの話をしてて(英語は細かいことわからないです)

urllib2.py:1095 r.recv = r.read

ここで拡張してるのが原因でaddinfourlの親クラスaddbaseのclose()を呼んでもrecvを解放する処理がないので循環参照したままになっています。
その解決策に

import urllib2
f = urllib2.urlopen('http://www.google.com')
text=f.read()
f.fp._sock.recv=None # hacky avoidance
f.close()

このコードが書かれています。
f.fp._sock.recv=Noneするとgc.garbageに16個あったのが8個に減ります。でも、残ってます。

これは'http://www.google.com'にアクセスするとurllib2内部で302リダイレクトの処理をしていて

http_error_302メソッド内に下記のコードがあるのですが

urllib2.py:579 fp.read()
urllib2.py:580 fp.close()

このclose()もまたrecvを解放されないのでfp.fp._sock.recv=Noneをfp.close()の前に追加するか
addbaseのclose()にif hasattr(self.fp, '_sock') and hasattr(self.fp._sock, 'recv'): self.fp._sock.recv=Noneを追加するのが一番楽そう
addbaseのclose()に処理を追加するのはurllib.pyの話なのでaddinfourlクラスを継承したクラスをurllib2内に適当に書いて使うのが妥当かな。
そうするとurlopen()を使う場合もclose()を呼ぶだけで解放できようになる。
この場合、addinfourlを使っているところを置換しないといけない。

とりあえず、urllib2.pyをスクリプト使うところにコピーしてfp.close()の前にfp.fp._sock.recv=Noneを追加して様子見している。

でも、わざわざclose()を呼んで解放するというのがいまいち好きじゃないのでなにか別の方法はないのだろうか
弱参照をどこかで使うと良いのかな

u.close()を一応書いてるけど書かなくても変わんない。
良さそうなこと思いついた。
urlli2.pyに下記のsocket._fileobjectを継承したクラスを追加(urllib2を直接書き換えるのはどうかと思うので一応スクリプトを使うところにコピーしたのを書き換えてる)

class _socketfileobject(socket._fileobject):
def flush(self):
self._sock.recv = None
super(_socketfileobject, self).flush()

下記の一箇所を書き換える

+ fp = _socketfileobject(r, close=True)
- fp = socket._fileobject(r, close=True)

これで、302以外のHTTPErrorが出た場合や通常の処理の時も解放する処理を書かなくてはいけなかったのを書かないで済む。

import urllib2
import gc
gc.set_debug(gc.DEBUG_SAVEALL)
url = 'http://www.google.com/'
def connect_urllib2():
  u = urllib2.urlopen(url)
#  u.fp._sock.recv=None # 16 -> 8
  u.close()

def gc_print(msg):
  gc.collect()
  print "%s garbage: %d" % (msg, len(gc.garbage))

if __name__ == '__main__':
  connect_urllib2()
  gc_print('urllib2')

ノートPCのバックライト交換

液晶ディスプレイが暗くなってから10日間調べて分解して交換。
原因はバックライトの寿命。
ハードウェア板 液晶のバックライトを交換してみようやググって実際に交換してるページを参考にした。

  • ノートPC
    • PCメーカー名/型番:SONY VAIO/PCG-GRS50/B
    • 液晶メーカー名/型番:SHARP/LQ150X1LW14
    • 使用年月:4年9ヶ月
  • 道具
    • 冷陰極管(2本セットで1700+送料600=2300円)長さ306mm直径2.0mm。折れなかったので1本でよかった
    • 熱収縮チューブ(ホームセンターコーナンの配線部品コーナーで125円。ダイソーにも売ってるらしいが近くのダイソーにはなかった)φ2.0mm。絶縁するためのL字のゴム代わり
    • 精密ドライバー(ダイソー100均)#0と#00を使用
    • ドライバー(所持)精密ドライバーだと堅いところがあったため長めの#00
    • ペンチ(所持)冷陰極管から出ている針金を切るのに使用。ニッパーが家にはない
    • 半田ごて(所持)20Wのが家にあった。
    • 半田(コーナンで94円)少しだけのやつ買った。スズ50%
    • ビニールテープ(所持)よれよれになったシール類を止めたり絶縁する部分に使った
    • ピン(所持)四隅のゴムを取るのに使用
    • プチプチのやつ(所持)前にハードディスク買ったときに包まってたやつ
    • ポリエチレンの手袋(所持)指紋付かないようにするところで使った。ほんとは薄手のゴム手袋が良いのかな

写真付きで残したいところだけど解像度の低い携帯なのとPCに取り込む線がないのでやめとく。
バッテリーや電源を抜いておく。自分はド素人なので間違ったことをしている可能性もあります。実行する人はくれぐれも自己責任でお願いします。
四隅にゴムっぽいものが付いてるのでピンでほじくる。そうするとネジが出てくるので#0の精密ドライバーではずす。このとき自分が失敗したのは下のネジを取る際に緩めた上体で中々ネジ取れなくて何を思ったか手前に倒してしまった時にバキバキと何かが割れる音がしてしまいました。右下のネジはグッとこちら側に出てきたのですが左下のネジは出てこずネジ回しても空回りなんとか押し付けてネジを取ることができたのですがポロッとネジ止める部分が壊れてしまいました。次は枠をパキパキを外していきます。自分は外し安そうなところに爪を入れて取りました。あとで爪の間が痛いです。マイナスドライバーを使うと良いらしいです。枠を取るとさらにネジが四隅にあるので取る。このとき注意するのは下の部分のネジを取るとき下のネジを取ると一気に後ろに倒れてしまうので手で支えるか後ろに持たれかけれるものがあると良い。枠をキーボードの方に置いて液晶本体をうつぶせになるように倒しておき液晶に繋がってる平べったいコネクタを取りインバータに繋がってるコネクタも取ると液晶単体になる。これを液晶部分をうつぶせにプチプチの上に乗せる。
ここからが本番で見た感じインバータと繋がってた線の先があるところがバックライト(冷陰極管)が入ってるところなのだがどう取り出したらいいものか悩んだ。液晶で言うと下の部分にあたる両端にネジがあるのでそれを#00の精密ドライバーで取れば見れるのかと取るがそれだけではだめで側面の枠を取れないといけない。このネジが精密ドライバーでは自分の力がないのか取れないので長めのグリップの付いた#00のドライバーを使うと楽に外せる。片方が4本ずつのネジで止まっている。さらに枠がありネジが片方2本でもう片方は3本あるのを外し枠も外す。
これでバックライトが見えるのかと思ったらまだ見えずどうやら液晶パネルを分離したほうが良さそう。分離するには基板を開くというか基板に止めてるネジ周辺のシールを最小限剥がし#0の精密ドライバーで取って行く。二つの基板を繋げているオレンジっぽい色のぺらぺらのやつを止めてある白いのを上にあげると取れる。最初コネクタかと思って引っ張ろうとしていた。これでぺロッと基板を開いて白い枠だけを持ち上げるとパネルと分離できる。少し説明しづらいがバックライトがあるほうの白い枠と白い線と銀色のバックライトが入っている入れ物が両面テープで引っ付いているのでぺりぺりと外す。銀色の入れ物をくねくねしながら取るとバックライトが見える。あとはゴムの部分を押しながら丁寧にバックライトを取る。自分は銀色の入れ物を取る前にゴムの部分を触っていたら折れてしまいました。
半田ごてで古いバックライトと線を取りセロテープで折れた部分をつけてメジャーで測ると307mmだった。多少の誤差はあるかもしれない。でも、冷陰極管が1本900円で売っているところには306mmか308mmしかなかったので306mmを注文することにしました。で、よく折れる折れると書いてあるので2本セットで1700円のやつを金曜日の昼ぐらいに注文したら土曜日の17時くらいには届きました。L字型のゴムはハサミで切って開けました。再利用しようと思ってそのまま一度組み立てのですが不安だったのでやめて透明の熱収縮チューブを適度な長さに切って使いました。半田付けをするわけですが半田付けなんて中学生以来です。注意点は後で入れにくくなったりもするので向きを注意する。半田付けのやり方は間違ってるかもしれませんが半田ごてに載せて擦りつけるような感じでつけました。で、組み立てて行くわけなのですが銀色の入れ物が中々元の部分に収まらないという状況になってそのまま組み立ててしまいました。元の部分に収まらないというのはたぶん透明な板にはさむような感じ付くはずなのだがそれが一部分は収まるのだが全体的に収まらなくてそのままにしてしまいました。そのせいなのか組み立てて電源を入れてみると下のほうが一直線明るいです。明るい部分を見ると蛍光灯を直に見る感じで眼がうっとなる。
今のところはこれでいいやという気分。インバータが壊れてなくて良かった。

ノートPCの液晶が真っ暗になってしまった

とりあえず、外部ディスプレイ出力に兄の置いていったCRTディスプレイを繋げて凌いでいる。
ノートPCの方のディスプレイを消しCRTディスプレイの方をプライマリに設定する方法をメモとして残して置く。
デスクトップ上で右クリック→プロパティ→設定→詳細設定→画面

2の部分が赤いと消えている状態になる。デュアルディスプレイってどうやるんだろうかと調べて試したりしてるときに気づいた。
3の部分で◎を選択してCRTディスプレイをプライマリ(メインに使う状態)にしている。

事の発端は昨日の話なのだが画面が異常に乱れて赤みがかかったり真っ暗になったり元に戻ったりというのが続いた。あとで別PCで調べるとどうやらバックライト(蛍光灯のようなもの)かインバーターが寿命とのこと。

一般的に約20,000時間と言われている。わかりやすい数値で表すと、1日24時間連続で使用した場合、寿命は約2年3ヶ月となる。しかし、実際に一日中モニターをつけっぱなしにする例は少ないだろう。仕事で9時から17時まで8時間使用した場合は約6年10ヶ月、1日3時間程度の使用ならば、なんと18年3ヶ月もの期間、一定の輝度が保てるとされているのだ。

http://www.watch.impress.co.jp/lcd-factory/qa/040628/

五年くらい毎日のように長時間に渡り使用していたので寿命としては妥当なところです。

そうなると選択肢は

  • 修理に出す
  • 外部ディスプレイ出力に繋ぐ液晶ディスプレイを買う
  • 自分で修理する
  • PCごと買い換える
  • 誰かから液晶ディスプレイを貰う
  • どこかで液晶ディスプレイを拾う

外部用のモニタを入手しつつノートPCの方を自分で修理してデュアルディスプレイデビューできたら良いな。

Operaでlivedoor Readerにログインできなかったのができた

ツール→クイック設定→Internet Explorerとして認識させる

ってなってたのを

ツール→クイック設定→Operaとして認識させる

としたらできた。

なんでIEにしてたのか自分で変えたのか記憶が曖昧、変えたかもしれない。でも、clipやblogはログインできるのになんでLDRはログインできないんだよ。前できてたのに。Opera嫌われてるのかな、と三ヶ月ぐらい放置してた。
週に二回(水、日の午後9時から)使用するだけなのでFirefox起動してたが最近新たにフィードを登録する機会が多くて、その際にFirefoxを起動するのが疲れてきてgoogle:opera livedoor reader ログインできないGoogle検索。

ブラウザのUSER AGENTを詐称するとログインできないんです

Shu-Style(W-ZERO3 Style):【W-ZERO3】W+BLOG閲覧の注意事項

関係ないけど、もしやとこれで気づいた。

hatena.vimで久しぶりに更新してみた。

脆い

TVケーブル切断 2万2800世帯受信不能に 神戸
金属類を盗む途中で逃げたのかなと最初に思ったけど
どこかのプロバイダーの策略だったりして

携帯でZAQのHPに繋いで状況を把握。

PersonalFirewallのログ
2007/04/06 16:36:23.281
2007/04/06 16:44:22.530
この間にネットが繋がらなくなった。

1個目は外からの通信をrejectしたログ
2個目のログはネットが切れるとよく無線LANを無効->有効するのでその時のログ。

TVとネットが両方駄目になったのが痛いな。
でも、ネットに繋がなくてもやることはいろいろあるもんだな。
調べ物ができなかったのが辛いな。

ねぇ、母さん光にしようよ!ってとりあえず言っておいた。

GUBAでダウンロードする時にちょっと便利かもしれないUserJS又はGreaseMonkey

動画共有サイトGUBA(free videos)
二種類あります。好きなほうでもいいし両方、入れてもいいです。
以下をインストール又は任意の場所に置いて下さい。
guba_download_list_view.user.js
ver 1.1

//  Search Title、All SelectionとAll Unselectionで一部のマッチバグ修正
//  tableの幅を固定
//  decodeボタンの廃止
//  operaでenter押した場合二回実行されていたのを修正


guba_add_download_button.user.js

guba_download_list_view.user.js

http://www.guba.com/*以下で動作します。
http://www.guba.com/general以外だとページ内にオリジナルファイルの拡張子を判別する情報がないため拡張子がついてません。(Resolution、Size、Duration、AuthorやViewsも表示されない)
拡張子は後で任意につけたせるようにしています。
検索したりMore VideosのアイコンやBrowse Allをクリックするとhttp://www.guba.com/general以下になります。

http://www.guba.com/watch/3000029472
http://free.guba.com/uploaditem/3000029472/flash.flv

使い方は
一番左下にDownload List View ボタンをクリック

チェックボックスにチェック又はSearch Titleでマッチしたもの又はAll Selectionボタンをクリック(テーブルの下にあるAll Unselectionの右側にあるチェックボックスにチェックされてるもの(最初はオリジナルにチェックが入っている)と投稿者にチェックが入ってるもの)

下のテキストエリアで右クリックコピー

Irvineなどのダウンローダに貼り付ける。

'Search Title'や'Rename Filename(左側)'では正規表現が使えます。そのため正規表現で使われる/()+*{}.\文字を文字として使用する場合は\[や\\などとして使わなければいけません。正規表現を知らない人にはわかりにくいです。大文字、小文字は区別しません。
例:以下を'hogehoge.avi'にリネームする場合
http://free.guba.com/download/original/1/2/0000011111/[][foo] hogehoge [bar].avi
\[\w+\]\s(.+)\s\[\w+\](\.\w+) -> $1$2
とすれば'hogehoge.avi'ができる。または右側を'[ふぉお] ほげほげ$2'とすれば'[ふぉお] ほげほげ.avi'と日本語にできたりもします。
太字部分がRenameやsort(昇順並び替え)の対象になります。

失敗してもundo(元に戻す)かinit(現在チェックされてるURL)をクリックして再チャレンジすればいい。
一発で変換しようとせずに複数回に分けるのもいいと思います。

decodeは%20(空白)などのencodeされた文字を元の表示に戻してテキストエリアの下に表示される。チェックボックスを外すとテキストエリアからそのURLが消えるようになっている。ただ、Rename、undo、initやredoをクリックすると自動で実行されるようになっているので最初以外クリックすることはない。
-注意点

    • Resolution(解像度)やSize(ファイルサイズ)はflvのものどちらか定まってないみたいです。オリジナルはそれより大きい場合や小さい場合があります。(例1:320x240となっていてもオリジナルを落とすと640x480の場合もある。)
    • FirefoxでSearch Titleのボックス内でタイトルにマッチしないものでEnterを押した場合、検索クエリが発行されページが変わってしまう。原因がよくわからない。

guba_add_download_button.user.js

http://www.guba.com/watch以下で動作します。
FlashiPodPSP、Originalのボタンが出てくる。

-注意点

    • PSPiPodのアイコンが表示されていてもない場合もあります