カテゴリー別アーカイブ: Windows

Janetterで日本語のままgoogle検索を使う

Janetterってなぜか検索がYahoo!強制で、検索エンジン選べないんですよね。
まあなぜかっていうか株式会社JaneとYahooが協力関係にあるからだと思うんだけど。

んで、使用言語を日本語じゃなくて英語にするとgoogle先生で検索してくれるんだけど、日本語だとyahooで検索。
じゃあ日本語でもgoogleにしましょうというお話。

ステップ1
JanetterのインストールディレクトリThemeCommonjsjanetjanet.js を編集。
C:Program Files (x86)Janetter2ThemeCommonjsjanetらへんにある。

YAHOOCOJP_SEARCH_URI: 'http://search.yahoo.co.jp/search?ei=UTF-8&fr=sb-jane&p=%1',
↓
YAHOOCOJP_SEARCH_URI: 'http://www.google.co.jp/search?q=%1',

に書き換える。

ステップ2
C:Program Files (x86)Janetter2ThemeCommonjsplugins らへんの searchpopup.js を編集

return 'http://search.yahoo.co.jp/search?ei=UTF-8&fr=sb-jane&p=' + encodeURIComponent(selection);
↓
return 'http://www.google.co.jp/search?q=' + encodeURIComponent(selection)

に書き換える。
ちょっとプログラムっぽいのが好きなら

if((jn.conf && jn.conf.lang ? jn.conf.lang : 'ja')=='ja'){
↓
if((jn.conf && jn.conf.lang ? jn.conf.lang : 'ja')=='jp'){
とか
if(false){

Javascriptの文法ようしらんからif(false)が通るのか知らんけど。

ステップ3
これは見栄えの問題なので、やらなくても機能的には問題ない。
C:Program Files (x86)Janetter2binlocale らへんにある ja.json を編集。

"webSearch":"Yahoo! 検索",
↓
"webSearch":"Google 検索",

として保存。

以上でJanetterを再起動すれば検索がgoogleで行われるようになる。
まあみての通りyahooに検索文字列渡すのをgoogleに変えてるだけだから、当然ほかの検索エンジンのパターンにあわせて書き換えてやればほかの検索エンジンにも変えられる。

あ、書き忘れてたけど Janetter Version 3.2.1.1 でのやり方です。

windowsからext4へのアクセスについてその後

ext4が出始めの頃、アクセスの仕方をしらべたんだけど、その後進展があったようだ。

windowsからext2系ファイルシステムへのアクセスをするのにはext2fsdが一番だと思う。
が、ext4はなかなか色々と拡張がなされていて、特にextentsオプションが指定されたext4ファイルシステムは読み込みさえできなかった。
んだけど、いつの間にやらとりあえず読み込みに関してはサポートされたようだ。

    1, Ext4 extent readonly support by Bo Branten. Writing is
       possible but with no size-extending

ファイルサイズを拡大しない書き込みなら一応書き込みもできるらしい。
まあ、危ないから書き込みはやめておいた方が無難ですな。
ext2fsdの最新バージョンは0.51で0.50からext4のextentsオプション付きの読み込みに対応したようだ。
もちろんWindows7でも使える。
更新履歴を見るとがんばってext4対応を進めているようだ。

どうしてもLinuxのファイルシステムをWindowsから読み書きを今すぐ自由にしたいなら、とりあえずext3を使うかext4をextentsオプション抜きで利用するかかなあ。
extents付きのext4の読み込みサポートまでおよそ1年半か。
書き込みサポートも気長に待たないとだめっぽいですな。

firefoxで2chに書き込めない

長らくfirefoxで2ch書き込めないで居た。
てっきり規制かと思ってた。
というのも、自分は今dion軍。
しょっちゅう規制に引っかかる。

にしても、書き込めた試しがないくらい書き込めない。
そんな中、あるスレでdion軍が書き込んでいるのを見た。
そこで、今なら書けるんじゃないか、と思って書き込もうとした。
が、エラー。
ブラウザはfirefox 5.0、アドオンのchaikaを使って書き込もうとしていた。
エラー内容は

現在、荒らし対策でクッキーを設定していないと書きこみできないようにしています。
(cookieを設定するとこの画面はでなくなります。)

といった感じ。
クッキーは受け入れる設定になってるんだけどなー、とおもい、一回クッキーを削除してみるもうまく行かない。
オプションのプライバシー→履歴のところを「記憶させる履歴を詳細設定する」にして、「自動的にプライベートブラウジングモードで firefox を起動する」にチェックを入れてみて試したものの、やはりうまくいかない。
そこで、一回firefoxを再起動して試してみたら、前回までのセッションがぶっ飛んでた。
で、履歴の設定のところを見てみたら、「履歴を一切記憶させない」になってた。
え?みすった?とか思って設定し直すも、やっぱり記憶させない設定になる。
どうもバグらしい。
firefox自体のバグなのかなんかのアドオンの関係なのかはよくわからない。

でまあ、セッションがぶっ飛んだのは仕方ないとあきらめて、履歴を記憶させるように設定し直した。
これはうまくいった。
で、2chにいって書き込みテストスレで書き込んでみた。
書けた。

つまり、流れとしては以下の通り。

オプション→プライバシー→履歴で、「履歴を一切記憶させない」に設定
firefox再起動
オプション→プライバシー→履歴で、「履歴を記憶させる」に設定

これで自分と同じ原因だったら書き込みができるようになる。かもしれない。

Windowsでlocateを使いたい

Windowsでファイルを検索するときにあまりの遅さに辟易とすることが多々ある。
そういうときに思い出すのがLinuxのlocate。
ということで探してみた。
あった。
Win32 Locate and Updatedb Scripts

若干順序が逆になったような気もするがlocateってなにっていう人のために簡単に説明を。
locateってのはあらかじめインデックスを張っておくことによってファイルを高速に検索するプログラム。
どのくらい高速かというと、70万個のファイルの中から特定のファイルを探し出すのに1秒かからないくらい高速。(実際に自分のマシンで試したっていう)
ただし、「あらかじめ」というところがみそで、事前にインデックスを張る作業が必要。
それをおこなうのがupdatedb。
で、検索はupdatedbによって構築されたインデックスから検索するので、updatedbの最終実行時以降に新規にファイルが追加されたり移動・削除等々が発生してからlocateで検索すると、誤った検索結果がはじき返されることになるので、その点は注意。
locateとupdatedbは、初回インストール時にまずupdatedbで索引データベースを作成、以降は毎日cron.dailyからupdatedbをはじいて索引を更新っていうのがLinuxでの通常運用だろう。
Windowsだと一応cronの代わりにタスクスケジューラがあるんでそれを使う感じか。

んで、WinLocateの使い方。
アーカイブを展開するとご丁寧にバッチ形式ながらインストーラ付きだった。
正直個人的にはこういうのはいらないんだけども作者は親切心からのことなのだろうから従うことにする。
Install.iniでインストール先のフォルダの指定をして、Install.batをはじくとInstall.iniで指定したフォルダ以下にWin32Locateというフォルダを作成して、そこにファイルを配置するということのようだ。
古いバージョンがすでにある場合は掃除もしてくれるらしい。
デフォルトだとInstall.iniにはC:Program Filesが記述されている。
ちなみにインストール時にロシア語か英語のどっちにするか聞かれる。
Install.batでインストールすると指定先のフォルダにWin32Locateフォルダが生まれていて、そこにLocate.batとUpdatedb.batが生まれている。(実際のところは単にコピーしてるだけなはず)
んで、幸せな運用をするなら、インストール先のフォルダにPATHを通す。
マイコンピュータ->プロパティ->詳細設定->環境変数->システム環境変数->PATHの値を。。。あれ、入ってる。
なるほどなるほどこのためのInstall.batか。
ということでインデックスを構築する。
コマンドプロンプトからupdatedbとたたくと以下のような感じで表示される。

C:>updatedb
Updatedb v0.1.4, by Piroi Ninel <ninix20@gmail.com> - 14/May/2010

Use this tool to index available storage units files for faster find.
To search into database use "Locate.bat" script.

Command help:
'Updatedb -a'       - For indexing all available storage units in the system
'Updatedb c: k:'    - Indexing file structure for C: and K: units
'Updatedb -r'       - Indexing new units and whose database is older than one mo
nth
'Updatedb -d'       - Complete remove database
'Updatedb -d z: y:' - Delete drive Z: and Y: from database
'Updatedb -n'       - Remove all units that are no longer connected to the compu
ter
'Updatedb -i'       - Show details about database
'Updatedb -m'       - Menu interface
'Updatedb -h'       - Show this message
'Updatedb -u'       - Uninstall WinLocate

Available units: c: d: f: j: z:
Do you want to index all storage units: [Yes/Select/Cancel]?

インデックスを張りたくないドライブも含まれているのでSelect。
CとDに張りたい。

Enter drives exactly as above without quote
Please select units for indexing: c: d:


---=[ Process begins at (23:39:53.69) ]=---

This will take few minutes depending on the number of storage
units you choice and how many files contains each of them!

Indexing drive 'C:'... [$Recycle.Bin - 422716 files]
Indexing drive 'D:'... [$RECYCLE.BIN - 283289 files]
Full database: 'PC'... [HYDRANGEA - 706005 total files]

---=[ Process finish at (23:40:03.68) ]=---

なんかさっくりと構築完了。
んで、あとはタスクスケジューラにupdatedbを登録すればいい。
自分の場合は

updatedb c: d:

を登録することになる。
ところで、タスクスケジューラに登録してるときに思ったんだけど、「新しい操作」画面の「開始 (オプション)(T)」って何。
引数の追加はわかるけど。

あとついでに基本タスクとタスクの違いがヘルプを見ても全くわからない。
いじってみた感じ基本タスクの作成よりもタスクの作成の方が細かく設定できるような感じはしたけど。
ああ、全般タブの構成のところもよくわからない。

デフォルトだとVista, 2008になってた。
よくわからないけど何となく7, 2008 R2にしておいた。
いろいろと謎めいている。

Windows7でのキーボードレイアウトの指定

方法としては二通りあるようだ。
一つはシステムで使用するキーボードレイアウトの指定。
一つはキーボード別にレイアウトを指定。

いろいろ調べた結果とりあえずWindows7 64bitでのrealforce 86Uと91UBK用のkeyboard.infができたんで最後にdiffを張っておく。
たぶんVista 64でも使える。

続きを読む Windows7でのキーボードレイアウトの指定

TVTestが調子悪かった件

最近突然全体フリーズ現象がちょこちょこ発生したりして、頭を悩ませていた。
突然フリーズするんで、原因がなんなのかさっぱり。

傾向として、TVTestを起動している時に発生している気がする。
んだが、平気なときは数時間経過しても全く何ともない。

直感的にはグラボに関係するような気がしている。
だが、確証は全くない。

グラボを買い換えようかとも考えた。
しかし、現在使っているのがGTX 295であり、買い換えるならシングルでも同等とはいわなくともそれに迫る性能のカードがほしい。
そうすると、RADEON HD 5870あたりのクラスを狙う感じになる。
だが、どうにもRADEONのドライバはゴミっぽい。
ゲームに関してはどう考えてもnVidiaの方が最適化が進んでいるし、GTX 295よりもパフォーマンスがおそらく落ちるであろう5870にわざわざ高い金出して乗り換えるメリットといえばシングルGPUソリューションである点くらいだ。
値段的に中古でも40K近い相場だし、積極的に乗り換える気は起きない。
かといってFermiは高い。
だいたい根本的に原因がグラボだっていうのは完全なる直感だ。

んで、ドライバをふと197系に戻してみることにした。
256系のドライバはなんかいろいろ大改修してるっぽいし、なんかよくわからんバグが潜んでるかもしれないっていうかきっと潜んでるし。
そのなんかにTVTestがひっかかったとかそういうのだったりするかなーとかなんとかかんとか妄想してみて。

結果、2週間以上フリーズせず今に至る。
どうもドライバだったらしい。
ただ、たぶんこれはハードウェア構成とかも関係しているんじゃないだろうかと妄想。
問題が発生しない環境の人はたぶん全然発生しない。
うちがGTX 295でデュアルディスプレイで、両方DVI接続だけども、片方は内部的にはHDMI接続になっており、メインディスプレイがそのHDMI接続のディスプレイであり、サブディスプレイの方がX座標で負の位置(サブディスプレイが物理的に向かって左)にある、っていうことと、TVTestでの描画に関連するなにがしか、これらが絶妙に何かを引き起こしてフリーズが発生しているんじゃないかなー、と何となく予想。

GPUのモニタリングとファン制御

グラフィックカードのファンの回転数は自動制御されているが、これをカスタマイズしたい場合。
RivaTunerを使う。
モニタリングにはRivaTuner用のVistaサイドバーガジェットがあるので、これを使ってみる。

RivaTunerをインストール、起動。
pluginのRivaTuner GPU Monitor Vista Sidebar Gadgetもインストール起動。
RivaTuner初回起動時は警告とレジストリ作成が行われる。

で、まず、SettingsタブでSend to tray on closeとRun at Windows startupにチェック。
レジストリ経由かスタートアップフォルダかは好みで。


MainタブからCustomizeを選び、一番右のHardware Monitoringを選択。


enable background monitoringを選択してHardware monitoringを終了。


これでサイドバーガジェットは使えるようになってるはず。

で、Power userタブを開き、RivaTunerFanのAutoFanSpeedControlの値に3を設定。


Mainタブのcustomizeから一番左のLow-level system settingsを選択。
Enable low-level fan controlにチェックを入れる。
なんか出てきたらdetect nowをクリック。(ほかにファンを制御しているソフト等がある場合は一度再起動した方がいい)
Apply fan settings at Windows startupにチェックを入れる。

ここでファンの回転数の自動制御について設定することになる。

  • Duty cycle min – ファンの最低回転数(%)
  • Duty cycle max – ファンの最大回転数(%)
  • T min – 最低温度。この温度付近までコアの温度が下がるとファンの回転数がDuty cycle minになる。
  • T range – ファンが最大回転数に達するまでの温度幅に関係する。
  • T operating, T low limit, T high limit -T minを動的に操作して ファン回転数を強制する値。リニアに温度とファンの回転数を制御するためは不要なのであり得ない数値を設定する。

各設定値の関係は以下の通り。

T range=2/3*(T max – T min)*100/(Duty cycle max – Duty cycle min)

T max=3/2*T range*(Duty cycle max – Duty cycle min)/100 + T min

何を意味してるのかわかりにくいので、T minから1度上昇するにつれてどれだけファンの回転数があがるのかに着目する。

(Duty cycle current – Duty cycle min) / (T current – T min) = 100*2/3/T range

つまり、66.666/T rangeが1度上昇するにつき増加するファンの回転速度(%)になる。
従って、T rangeが大きくなればなるほど、温度1度あたりのファンの回転速度変化は小さくなる。
ただし、それは分母係数であるため、リニアではなく値が大きくなればなるほどなだらかな変化差となる。

なお、実際にT rangeを定める際は、最低回転速度を20%、最大回転速度を100%、ファンの制御開始温度を50度、最大温度を80度と最大回転数に達する温度を決めて、

T range=2/3*(T max – T min)*100/(Duty cycle max – Duty cycle min)

に値を代入して計算する。
この場合は25になる。

ということで、自分の好みのDuty cycle min, Duty cycle max, T min, T rangeを決めて設定する。
T operating, T low limit, T high limitは151, 0, 151とでも設定しておく。

grub4dosを使ったブート構成

なんか昔書いたけどかなり適当だったので、ちゃんと今回は書く。

今回は以下のようなシステムレイアウト。

RAID0のアレイ1 -+- システムで予約済みのパーティション
                +- Windows7のインストールパーティション
                +- データ用パーティション

RAID0のアレイ2 -+- Ubuntu 10.04のインストールパーティション
                +- swap
                +- Debianのインストールパーティション

アレイ1のMBRにbootmgrを、アレイ2のMBRにgrubをインストールしてある。

bootmgrからはWindows7、grub4dosのエントリを作成、grub4dosはアレイ2のMBRにチェインロードするようにし、Linux系OSの起動はアレイ2のgrubから行う。

まず、Windows7を起動。
grub4dosを入手し、展開する。
ディスクの管理から、システムで予約済みの領域をマウントする。
そのパーティションのルートにはbootmgrがあるはず。
環境によってはすでにマウント済みの領域にあるかもしれない。
そこにgrub4dosのgrldr.mbrをコピーする。
menu.lstを同じフォルダに作成。
内容を以下のように記述。

title linux
rootnoverify (hd1)
chainloader (hd1)+1

これでgrub4dosからは二つ目のアレイのMBRにチェーンロードする形になる。
そこからはgrubが呼び出されるのでそっちに任せる。

bootmgrからgrub4dosを呼び出すエントリを作成する。
コマンドプロンプトを管理者権限で起動して、以下を入力。
{ID}はGRUB4DOSエントリのID。

   bcdedit /create /d "GRUB4DOS" /application bootsector
   bcdedit /set {id} device boot
   bcdedit /set {id} path grldr.mbr
   bcdedit /displayorder {id} /addlast

これでbootmgrからgrub4dosを呼び出せる。

Windows7のインストールパーティションのアロケーションユニットサイズ

アロケーションユニットサイズは通常4KBで、普通にWindows7のインストーラでパーティションをきってインストールすると、やはり4KBになる。
これを変更したい場合、以下のようにする。

  1. Windows7のインストーラでパーティションをきる
  2. インストーラを終了させてコマンドプロンプトを起動する
  3. diskpartを起動
  4. インストールパーティションをアロケーションユニットサイズを指定してフォーマット
  5. 再起動して対象のパーティションにインストール

diskpartでのフォーマットの仕方は、フォーマット対象のディスクを選択、フォーマット対象のパーティションを選択、フォーマットという流れ。
以下のような感じ。

DISKPART> list disk

ディスク      状態           サイズ   空き   ダイナ GPT
###                                          ミック
————  ————-  ——-  ——-  —  —
ディスク 0    オンライン          2000 GB      0 B
ディスク 1    オンライン          1726 GB  1442 GB
ディスク 2    メディアなし             0 B      0 B
ディスク 3    メディアなし             0 B      0 B

DISKPART> select disk 0

ディスク 0 が選択されました。

DISKPART> list partition

Partition ###  Type                Size     Offset
————-  ——————  ——-  ——-
Partition 1    プライマリ              100 MB  1024 KB
Partition 2    プライマリ              200 GB   101 MB
Partition 3    プライマリ             1799 GB   200 GB

DISKPART> select partition 2

パーティション 2 が選択されました。

DISKPART> format fs=ntfs unit=16k quick

いまさらながら、単純にdiskpart使わないでformatコマンドでもよかったきはする。
formatコマンドの場合は

format c: /fs:ntfs /q /a:8192

みたいなかんじ。

ちなみに、Windows7がシステムとして予約する100MBのパーティションはいじらないこと。
あそこはアロケーションユニットサイズが4KBじゃないとうまく動かない。

Windows7のMBR修復方法

MBRが破損した場合に限らず、grubなんかのブートローダからbcdに切り替えたい場合も。

Windows7のインストールディスクから起動して、システム回復オプションを選択するなり、Windows7がブート可能な場合には、F8でコンピュータを修復するを選択して、コマンドプロンプトを立ち上げて、以下のコマンドを入力。

bootrec /fixmbr
bootrec /fixboot
必要があれば
bootrec /rebuildbcd

もしくはWindows7が立ち上がるなら、EasyBCDをインストールして、Manage Bootloaderからreinstall the Vista Bootloaderを選んでWrite MBRでもいける。