2016年6月16日木曜日

VAIOをWindows10へアップグレード

アップグレード対象機種は 10 年前に購入した XP 時代のノート PC。今となっては非力ですが軽い処理担当として今でも現役で活躍。 OS は Windows 7 にアップグレード済み。

仕様:

  • VGN-FS92PS VAIOオーナーメードモデル
  • インテル Pentium M プロセッサー 770 (2.13 GHz)
  • メモリ 2GB
  • NVIDIA GeForce Go 6400 with TurboCache
  • 15.4型ワイドWSXGA+(1680×1050)

今回 Windows 10 へアップグレードするには解決すべき課題がありました。それは NVIDIA GeForce Go 6400 のドライバです。Windows 10 の互換性チェックに引っかかっているためアップグレードできない状態でした。

当然ながら既に SONY のサポートも終了しており Windows 10 用ドライバの提供はなく、本家 NVIDIA のダウンロードリストからも除外されているビデオチップです。 Windows 10 へアップグレードするには、この問題を解決する必要があります。

調べたところ、ドライバの inf ファイルを書き換えてインストールする方法を知りました。

実際の inf ファイルの修正やドライバのインストールについてはこの動画が参考になります。

日本語の情報もありました。

参考: NVIDIA 搭載ノートPCの一覧

これらの情報を元にして Windows 10 へのアップグレードを完了することができました。感謝!
簡単ですが、ここに手順を残しておきます。



Windows 10 へのアップグレードの手順

  1. Windows 10 を入手
  2. アップグレード DVD を使って Windows 10 へアップグレード
  3. NVIDIA ドライバのファイルを修正
  4. NVIDIA ドライバをインストール


1. Windows 10 を入手

アップグレード DVD でアップグレードするための ISO ファイルを取得。

  • Windows 10を取得。
  • 「ツールを今すぐダウンロード」をクリック、「メディア作成ツール」をダウンロードして実行。
  • ダウンロードした ISO ファイルを DVD に書き込む。


2. アップグレード DVD を使って Windows 10 へアップグレード

アップグレード DVD でアップグレードを開始する。この時点では GeForce Go 6400 のドライバが無いため MS 標準のグラフィックスドライバがインストールされます。



NVIDIA ドライバ

NVIDIA ドライバのダウンロードサイト


NVIDIA ドライバをダウンロード

ダウンロード一覧の中に 「GeForce Go 6 シリーズ」が含まれていないため 「GeForce 6 シリーズ」を利用します。

GeForce 309.08 Driver

  • Version: 309.08 WHQL
  • Release Date: 2015.2.24
  • Operating System: Windows 7 32-bit, Windows 8 32-bit, Windows Vista 32-bit
  • CUDA Toolkit: 5.0
  • Language: English (US)
  • File Size: 170.55 MB

ダウンロードファイルを実行してインストール。この時点ではサポート製品のハードウェアでは無いためシステムの互換性チェックの途中で中断されます。

このとき、インストーラによって展開されたファイルがフォルダに保存されています。次の手順では、このフォルダに保存されたドライバの inf ファイルの修正を行います。


ハードウェア ID を取得

事前準備として GeForce Go 6400 の「ハードウェアID」を取得します。デバイスマネージャのディスプレイアダプタ開き、「Microsoft基本ディスプレイアダプタ」のプロパティの詳細タブを開く。プロパティのドロップダウンリストから「ハードウェアID」を選択し、その値を任意のテキストファイルに保存しておきます。

作業対象の VGN-FS92PS は、このような値でした。

PCI\VEN_10DE&DEV_0168&SUBSYS_81EA104D


3. NVIDIA ドライバのファイルを修正

今回ダウンロードしたインストーラはwin8 win7 winvista 32bit用のため、NTx86.6.0, NTx86.6.1, NTx86.6.2の記述が存在します。今回アップグレードする Windows 10 では Windows 8 用のドライバを使用するためNTx86.6.2のセクションを利用します。


参考: infファイル内のセクション名の記述に含まれるNTx86.x.xの意味

NT Ver. プロダクト名
NTx86.6.0 Windows Vista
NTx86.6.1 Windows 7
NTx86.6.2 Windows 8
NTx86.6.3 Windows 8.1
NTx86.10.0 Windows 10


nv_dispi.infを編集

ここでは GeForce Go 6400 の「ハードウェアID」の値を元に追加する文字列を作成し、その文字列を inf ファイルに追加する作業を行います。

[NVIDIA_SetA_Devices.NTx86.6.2]セクションへ
%NVIDIA_DEV.0168.81EA.104D% = Section002, PCI\VEN_10DE&DEV_0168&SUBSYS_81EA104D
を追加。

[NVIDIA_SetA_Devices.NTx86.6.2]
%NVIDIA_DEV.0168.81EA.104D% = Section002, PCI\VEN_10DE&DEV_0168&SUBSYS_81EA104D

[Strings]セクションへ
NVIDIA_DEV.0168.81EA.104D = "NVIDIA GeForce Go 6400"
を追加。

[Strings]
DiskID1 = "NVIDIA Windows Vista / 7 / 8 (32 bit) Driver Library Installation Disk 1"
NVIDIA = "NVIDIA"
NVIDIA_A = "NVIDIA"
NVIDIA_B = "NVIDIA "
NVIDIA_DEV.0168.81EA.104D = "NVIDIA GeForce Go 6400"

追加作業の完了後 nv_dispi.inf ファイルを保存。



4. NVIDIA ドライバをインストール

インストールオプションで「カスタム」を選択。

カスタムインストールオプションで「グラフィックスドライバー」のみを選択。

Windows セキュリティでは「このドライバーソフトウェアをインストールします」を選択。

インストール終了後に再起動。

デバイスマネージャを開きディスプレイアダプタが認識されていることを確認。

NVIDIA コントロールパネルを開き、適切なディスプレイの解像度に設定。

ディスプレイの解像度の設定は、ディスプレイの詳細設定でも可能。



その他のドライバは VAIO のウェブサイトから入手可能

Windows 7 用ドライバが利用できました。


サウンドドライバ


Fnキー音量コントロール、輝度コントロール

インストール後、設定ファイルVESConfig.iniを 差し替える必要あり。

この設定ファイルは「VAIO Event Service Ver.2.3.00.08110」アップデートプログラムSOAVES-01205105-UN.exeファイルを展開して取り出します。使用したファイル展開ツールはExplzh

手順

  1. ダウンロードしたSOAVES-01205105-UN.exeファイルを展開。
  2. さらに、展開したファイルの中のdata1.cabを展開して VESConfig.ini を取り出す。
  3. 取り出した VESConfig.ini をc:\Program Files\Sony\VAIO Event Service\にコピー。
  4. 再起動後、Fn + F3 or F4で音量コントロール、Fn + F5 or F6で輝度コントロールできることを確認。

BIOS

以上で完了です。

2016年6月15日水曜日

Excelの未使用ユーザースタイルを簡単に削除する

Excel のユーザースタイルは 「XLStylesTool」 を使用することで削除可能ですが、ユーザースタイルを削除するたびに毎回外部ツールを使用しなければならないのはちょっと不便でした。

この投稿では外部ツールやマクロを使用しないで、未使用のユーザースタイルを削除する方法を紹介します。 (動作環境は Windows 10 Pro 64bit, Excel 2013 32 bit です。)



手順は 3 ステップ

  1. すべてのシートを選択。

  2. 移動またはコピーを選択。

  3. 移動先ブック名に「新しいブック」を選択し、「コピーを作成する」をチェック。

このようにすると「新しいブック」には使用中の「ユーザースタイル」のみが引き継がれることになり、結果として未使用のユーザースタイルを削除することができます。



実際に未使用のユーザースタイルを削除する例を紹介します。

対象ファイルのワークブック中に存在するユーザースタイルを、マクロを使って数えたところ 41778 個のユーザースタイルが登録されていることがわかります。

セルのスタイルメニューを開くと、このように多くのユーザースタイルが表示されています。

このワークブックの中で使用しているユーザースタイルを、先日作成した 「Excel のユーザースタイルの使用状況を調べるマクロ」 で調査したところ 41778 個のユーザースタイルの内、実際に使用しているスタイルは標準22のひとつだけで、残り 41777 個のユーザースタイルは全て未使用であることを確認しました。

ここで前述の手順どおり 「新しいブック」 にすべてのシートをコピーして、未使用のユーザースタイルを削除します。ユーザースタイルの削除後 「新しいブック」 のセルのスタイルメニューを開くと、ユーザースタイルの項目は標準22だけが残り、未使用のユーザースタイルが全て削除されたことがわかります。

改めてマクロで確認しても、使用中のユーザースタイルが一つだけであることがわかります。



マクロの処理速度の違い

大量のユーザースタイルはマクロの処理速度に大きく影響を与える場合があります。たとえばユーザースタイル (4,000 個以上) が登録されているブックの中で罫線のLineStyleを標準の太さ以外に変更しようとしたとき、マクロの処理速度が大きく低下する経験をしました。 このような場合、未使用のユーザースタイルを削除することによってマクロの処理速度が向上することがあります。

次の動画は、上記のユーザースタイルの削除前と削除後におけるマクロの処理速度を比較しています。

テスト環境:
CPU: Intel Core i5-2540M 2.60 GHz, RAM: 16 GB,
Windows 10 Pro 64 bit, Excel 2013, Excel 2003 SP3


ユーザースタイルの削除前

(描画処理完了まで約 35 秒要しています)




ユーザースタイルの削除後

(描画処理は約 12 秒で完了) 削除前と比較して 3 倍速くなりました。




Excel 2003 の場合

参考までに、同じアドインを使用した Excel 2003 の処理速度はさらに高速でした。 (描画処理は約 6 秒で完了)削除前と比較して 6 倍速いです。これを今まで使用していました。

注: Excel 2003 のスタイル数は最大 4,000 までのため、事前に XLStylesTool を使用してユーザースタイルを削除しています。



おわりに

Excel 2007 以前のセルスタイルは 4,000 まで使用できましたが、Excel 2007 で 拡張されて最大 64,000 まで使用できるようになりました。 それに伴い 「Excel 2007 で、使用されていないスタイルが、あるブックから別のブックへコピーされます。 - KB2553085」 のような、意図しないスタイルの増加のトラブルなどでユーザースタイルが 4,000 を超えてしまうと 「Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック」 を使用して Excel 2000 や 2003 で xlsx 形式のファイルを開くことができないトラブルが起こりましたが、このような場合は「XLStylesTool」を使用することでユーザースタイルを削除することが可能でした。

そのため、これまでの作業の流れは次のようになっていました。

  1. 作業対象ファイル.xlsx を取得
  2. XLStylesTool でスタイル削除
  3. Office 互換機能パックで変換後 Excel 2003 で開きマクロを実行

既に 2 年前の事ですが、Excel 2003 の延長サポートの終了が残り 1 年となったこともあり Excel 2013 へ移行しようとしました。ところが Excel 2013 ではマクロの処理速度が余りにも遅く、移行をためらうことになりました。結局 Excel 2003 を使い続けることに。

今年になって Windows 10 へ移行したこともあって改めて Excel 2013 に切り替えるべく試行錯誤しているなかで今回の解決方法が見つかりました。 これで安心して Excel 2013 に移行することができます。



関連する過去の投稿

Excelワークブックに登録されたスタイルを数えるマクロ。

2016年6月14日火曜日

メモ:特定の範囲をMathJaxにレンダリングさせない方法

ブログで MathJax を使用できるように設定していると数式表示がとても便利になるのですが、ちょっと具合の悪い場合もあります。それは、数式に解釈できる文字列を含んだ Gist のコードを貼り付けた場合です。

例えばこのように、数式の部分が自動的に変換されて表示されます。

これを回避するには、MathJax の ignoreClass を使用します。

以下のように MathJax.Hub.Config の設定にignoreClass: "tex2jax_ignore"を追加すると。MathJax にレンダリングさせないクラスを設定することができます。

MathJax.Hub.Config({
    
    ...
    
    tex2jax: {

        ...

        ignoreClass: "tex2jax_ignore"
    }
});

コードのスクリプトを張り付ける際は、下記のようにclass="tex2jax_ignore"のブロックで囲みます。

<div class="tex2jax_ignore">
<script src="https://gist.github.com/icm7216/8409c6e4e7332a03ef5747f7f030fd58.js"></script>
</div>

これで MathJax にレンダリングされず、そのまま表示できるようになります。

2016年6月10日金曜日

Excelのユーザースタイルの使用状況を調べるマクロ

Excel のユーザースタイルの使用状況を調べるマクロを作りました。ユーザースタイルを適用している、ワークシートやセルアドレスを知ることができます。以前に作った「スタイル設定をシートに出力する VBAマクロ」の兄弟ツールになります。

結果は新しいシートに表示されます。この一覧ではユーザースタイルが適用されているシート名、セルアドレス、セルの内容、ユーザースタイル名、ユーザースタイルの設定内容などを表示します。


2016年4月9日土曜日

メモ: ワンライナーで計算

コマンドラインの途中で計算結果をコマンド置換して引数の値に使うときの、ワンライナーで(float 値を含む)計算する方法のメモ。


bc コマンドのワンライナーで計算

小数点以下の桁数を指定するには scale 値を設定する。

  • scale 値とは、式の小数部以下の桁数。
  • -lオプションで起動すると数学ライブラリが読み込まれ、 scale 値が 20 に設定される。

 $ echo '(10+90)/3.0' | bc
33
 $ echo "scale=15; (10+90)/3" | bc
33.333333333333333
 $ echo '(10+90)/3' | bc -l
33.33333333333333333333



awk のワンライナーで計算

小数点以下の桁数は書式で指定可能。フォーマット指定子を使い printf で出力するか、 print 出力の OFMT 値を指定する。 OFMT のデフォルト値は"%.6g"

printf で出力


 $ awk 'BEGIN { printf "%.15f\n", (10 + 90) / 3}'
33.333333333333336

print で出力


 $ awk 'BEGIN { print (10 + 90) / 3}'
33.3333
 $ awk 'BEGIN {OFMT="%.15f"; print (10 + 90) / 3}'
33.333333333333336



perl のワンライナーで計算

print で出力

  • print で出力する場合は、関数に続く括弧は計算の優先順位の括弧とはならない。この場合、関数の引数を指定する括弧と解釈されるようだ。回避するには少しばかりの記述の工夫が必要。

 $ perl -le 'print (10+90)/3.0'
100
 $ perl -le 'print ((10+90)/3)'
33.3333333333333
 $ perl -le 'print +(10+90)/3'
33.3333333333333

printf で出力

  • printf で出力する場合、小数点以下の桁数をフォーマット指定子を使って指定可能。また、引数の計算式も正しく解釈してくれるようだ。

 $ perl -le 'printf "%.15f\n", (10+90)/3'
33.333333333333336



python のワンライナーで計算

Python の float 型は内部で 53bit の精度を持っているそうだ。

式の中に float 値を含めると、計算結果は float 値で返される。


 $ python -c 'print (10+90)/3'                                  
33
 $ python -c 'print (10+90)/3.0'
33.3333333333

float() メソッドで float 値に変換


 $ python -c 'print float (10+90)/3'
33.3333333333
 $ python -c 'print float(10+90)/3'
33.3333333333

書式で桁数を指定

%演算子を使う場合(非推奨)


 $ python -c 'print "%.15f" % ((10+90)/3.0)'
33.333333333333336

format() メソッドを使う場合(推奨)


 $ python -c 'print "{:.15f}".format((10+90)/3.0)'
33.333333333333336



ruby のワンライナーで計算

式の中に float 値を含めると、計算結果は float 値で返される。


 $ ruby -e 'p (10+90)/3'
33
 $ ruby -e 'p (10+90)/3.0'
33.333333333333336

組み込み関数Floatto_fメソッドで float 値に変換して計算

  • Float 直後の空白の有無で結果が違うことに注意。

 $ ruby -e 'p (10+90)/3.to_f'
33.333333333333336
 $ ruby -e 'p Float (10+90)/3'
33.0
 $ ruby -e 'p Float(10+90)/3'
33.333333333333336

組み込み関数 sprintf (または format )を使う

  • 小数点以下の桁数をフォーマット指示子を使って指定可能。
  • String#%メソッドでも可能。

 $ ruby -e 'puts sprintf( "%.10f", (10+90)/3.0)'
33.3333333333
 $ ruby -e 'puts format( "%.15f", (10+90)/3.0)'
33.333333333333336
 $ ruby -e 'puts "%.15f" % ((10+90)/3.0)'
33.333333333333336



まとめ

計算式の記述で気を付ける箇所は括弧が先に来る場合。それが式の括弧なのか、引数の括弧なのか、コマンドによって微妙に違うところに注意。

2016年2月6日土曜日

Firefox 44.0 がリリースされました

2016年01月26日に Firefox44.0 がリリースされました。

2016年02月09日に Firefox44.0.1 がリリースされました。

2016年02月12日に Firefox44.0.2 がリリースされました。

デスクトップ版 Firefox のダウンロード
http://www.mozilla.jp/firefox/download/
デスクトップ版 Firefox のリリースノート
http://www.mozilla.jp/firefox/44.0/releasenotes/
http://www.mozilla.jp/firefox/44.0.1/releasenotes/
http://www.mozilla.jp/firefox/44.0.2/releasenotes/

新機能ではWebサイトからのプッシュ通知の受信機能が追加されました。

さらに詳しく

そのほかの新機能の詳細はリリースノートをご覧ください。



デスクトップ版 Firefox の開発ツールに追加された機能



JSON ビューア

JSON ビューアが組み込まれ、拡張なしでデータの閲覧、検索、コピー、そして保存ができるようになりました。

JSON ビューアはブラウザにロードした JSON ドキュメントをパースしてシンタックスハイライトします。配列やオブジェクトは折りたたまれて表示されます。展開するには+アイコンをクリックします。また、JSON ビューアの検索ボックスを使用して JSON データをフィルタリング表示できます。raw データの整形表示も可能です。JSON ドキュメントがネットワーク要求の結果であった場合は、応答ヘッダや要求ヘッダを確認することができます。

この機能は Developer Edition で有効化されていますが、Release 版の Firefox 44 では今のところ無効化されています。

JSON ビューアを Firefox 44 で試すには、
about:configを開きdevtools.jsonview.enabledの値をtrueにします。

さらに詳しく



メモリツール

メモリの使用状況を調査するツールが追加されました。

メモリツールは、カレントタブのメモリヒープのスナップショットを取得してメモリの使用状況を分析します。分析結果はツリー/テーブルの形で表示され、オブジェクトが使用しているメモリや、コードのメモリの割り当て状態などを確認することができます。

このツールは Firefox 44 ではデフォルトで無効化されています。有効化するには開発ツールのオプションを開き、「標準の Firefox 開発ツール」 セクションの 「メモリ」 にチェックを入れます。

さらに詳しく



インスペクタ

HTML ペインに要素のポップアップメニュー新しい項目が追加されました。


属性のサブメニュー項目

また、HTML ツリーでノードの移動をドラッグ・アンド・ドロップで行う場合、Esc キーの押下でドラッグ・アンド・ドロップをキャンセルできるようになりました。

さらに詳しく


CSS ペインに未サポートなルールや無効なルールを含むすべてのスタイルをルールビューで表示するようになりました。

適用されないスタイルの調査に役立ちます。未サポートなルールや無効なルールには黄色の三角アイコンが表示されます。

ルールビューで編集した内容がスタイルエディタに反映されるようになりました。反対に、スタイルエディタで編集した場合も同様にルールビューに反映されます。

さらに詳しく


アニメーションインスペクタ


  • アニメーションインスペクタにアニメーションの「再生/一時停止」ボタンと「始めに戻す」ボタンが追加されました。
  • アニメーションの経過時間を表示するようになりました。
  • セレクタの左側の"標的"アイコンをクリックすると、要素をハイライト表示したままにできます。
  • コンポジットスレッドで動作するアニメーションは、タイムラインのバーにイナズマアイコンが表示されます。

さらに詳しく



Web コンソール

Windows 版と Linux 版の 「Web コンソールの内容を消去する」のキーボードショートカットが変更されました。

  • 従来: Ctrl + L
  • Firefox 44 以降: Ctrl + Shift + L

さらに詳しく


Web コンソールのログに出力されたオブジェクトを、ページ内のグローバル変数として参照できるようになりました。

グローバル変数として参照するにはログに出力されたオブジェクトを右クリック、「グローバル変数として保存」を選択します。ここでの変数名はtemp0が割り当てられます。この変数名が既に使用中の場合は、変数名の数値部分が連番で付与されます。

次の例ではObject { bar: Array[3] }をグローバル変数として保存しています。

続いてグローバル変数temp0barプロパティを参照しています。