日記帳だ! with Tux on Libserver

二度目の大改造!! 日記帳…か?を継承し、より柔軟でパワフルなBlogに変身しました。

RSSに対応しています。リンク・コメント・トラックバックは自由にしていただいてほぼ問題ありません。
RSS購読方法、僕のリンク・コメント・トラックバックについての考えを読むことをおすすめします。

JavaScriptを有効にし、Cookieを受け入れ、以下のブラウザを使うことで完全なコンテンツが楽しめます。
Mozilla Firefox 3.0(Get Firefox)・Opera 9.6・Safari 3.2・Lunascape 4/5(Gecko)・Lunascape 5(WebKit)
Internet Explorer 7/8とそれを使うIEコンポーネントブラウザ(Lunascape・Sleipnirなど)

<< 過去

WSHよりはPowerShell

製品に組み込まれたモジュールとマニュアルで通信する方法を調査していたのだが、

有識者に聞いたら、正攻法でやる方法はないという返答が返ってきて、うーん。

その後、いろいろな資料を調査した結果、システムを停止させて、特定の機能だけ動作する状態にした上で、

メンテナンスツールを使って、内部レジスタに読み書きするという方法でできることが確認できた。


とりあえずこれで最低限の実験は出来たのだが、レジスタの読み書き1つずつを手操作で行うのは大変だ。

これらの操作はWindowsのコマンドライン上で動くメンテナンスツールを操作するので、

操作をまとめてバッチファイルにすればよさそうなのだが……

  • レジスタへの書き込み操作はメンテナンスツール上のプロンプトにデータを入力する必要がある
  • レジスタのリード結果の表示が冗長なので整形が必要

ということで何らかの工夫が必要そう。


そこで共有ディレクトリを検索していたら、JScriptで書かれたスクリプトが出てきた。

目的は違うのだが、同メンテナンスツールを使って、レジスタの読み書きを行うという点では共通している。

これを見てみるとレジスタへの書き込みは、データをパイプで標準入力から入力してやっていた。

ご存じの方もおられるだろうけど、プログラムには標準入力(stdin), 標準出力(stdout), 標準エラー出力(stdout) がある。

通常は、stdout, stderrはコンソール画面に、stdinはキーボードに繋がれている。

これをつなぎ替えて、stdoutをファイルに出力したり、他のプログラムのstdinに繋いだり出来る。

stdoutを他のプログラムのstdinにつなぐ方法をパイプといい、これで書き込みデータを送り込んでいたのだ。

さらに出力データの整形も行っており、かなり参考になった。


ところでJScriptってなんやねんと。JavaScriptのMicrosoftの呼び名といえばそうなのだが……

ただ、それ以上に重要なのが、これがWindows Script Host(WSH)で動くスクリプトであることだ。

WSHはJScriptまたはVisual Basic Script(VBS)で記述されたスクリプトを実行することができ、Windowsの各種機能へのアクセスができる。

コマンド実行、ファイル入出力、レジストリアクセス、そしてJScriptが標準的に備えている文字列処理などを使うことができる。

単純なバッチファイルではできない操作をJScriptに記述して、それを呼び出すバッチファイルを作るような使い方をしていた。

cscript //nologo fooexec.js param1 param2


これでマニュアル通信に必要な操作をJScriptで一括して実行できるようになったわけだけど、なんとなく使いにくい。

それでいろいろ調べていたが、Windows 7以降だとWindows PowerShellが標準搭載されるようになったので、

WSHよりもこちらを使った方がよさそうだとわかった。PowerShellはWSHの事実上の後継となっているようだし。

PowerShellの特徴は .NET Frameworkベースで、.NETのオブジェクトを取り扱うことができるということ。

その上でスクリプト言語としての特徴を備えており、PowerShell専用のコマンドレットを多数備えている。


ところが実際にPowerShellを使ってみて思ったのは「なんてめんどくさい!」ということ。

というのも、コマンドを実行して、標準入力をPowerShellから入れる、ということを書こうとすると、

.NET Frameworkのオブジェクトを直接操作する必要があり、ほとんどC#のプログラムを書いているような感じ。

PowerShellの名に違わぬパワフルさだが、スクリプト言語としてはどうなの? という感じ。

記法も独特で、制御構文はC#っぽいけど、改行の記述方法が “`n” だったり、比較演算子が –lt, –eq だったり。

外面はとっつきやすそうだが、なんでこうなるんだよ、というのが続出するのがPowerShellという感じ。


あと、PowerShellは再利用性も高くて、簡単に他のスクリプトを読み込める。

. .\foolib.ps1

これだけで foolib.ps1 というPowerShellスクリプトを読み込める。(PowerShellのスクリプトは拡張子ps1を使うのが通例とのこと)

これでスクリプト内で定義した関数を再利用できるわけだ。

ところが、初期状態のPowerShellでこのコマンドを実行すると失敗する。

というのも初期設定ではPowerShellは一切のスクリプトの読み込みができない。安全性を考慮してのことらしいが。

なんでそんな厳しいの? と思ったのだが、WSHがセキュリティ上の問題を引き起こしてきた反省らしい。

PowerShell / about_Execution_Policies (Microsoft)

1回設定すれば以後は大丈夫なんだけどね。


LinuxだったらPerlで書いたんだろうけどなぁ。

そもそもUNIX系のOSでは、シェルスクリプトがそれなりに強力だ。

シェルスクリプトでawkとかsedのような文字列処理コマンドを補助的に呼び出して使うこともよく行われてきたようだ。

そして、Perlのようなスクリプト言語の活用もよく行われていた。

Perlはシェルスクリプト内などで補助的に使われることもあるけど。ワンライナーで使っても強力なので。

今どきはPerlというよりPythonなのかなという気はするけど、僕はPerlで慣れてるからPerlを使うかなと。

いずれにせよLinuxならば、標準で使えるものですから。


Windowsでも別途インストールすれば、他のスクリプト言語も使えるんですけどね。

職場でもActive Perlを入れて使ってる人もいるようだけど。今どきActive Perlかよって思うけど。

でもやっぱり標準で入ってる方がよいわけで、これまでWSHで動くJScriptまたはVBSが重用されてきたのもそういうことでしょう。

今後は PowerShell がこの立ち位置になるということだろう。

確かにPowerShellにできないことはないなと思った。書きやすいかはさておき。

全体的にWSHより素性がよいのは間違いないので、乗り換えて行こうとは思ったけど。


Author : hidemaro
Date : 2018/06/22(Fri) 22:18
Windows・Microsoft | Comment | trackback (0)

WinSCPを使えればよかったが

会社のPCで使えるソフトウェアは大きく標準アプリと非標準アプリに分けられる。

標準アプリは全社的に使えるもので、基本的にはプリインストールになっている。

一方、非標準アプリについては、部署で管理するようにということになっている。


有償のものは部署で購入というステップを踏むので、その段階で必要性などが審議されることになる。

一方、無償のものは、購入というステップを踏まないのだが、承認を得た上で使うということになっている。

ここの職場では「部メンバー」「○○課メンバー」のように包括的に承認を得ることが多い。

使用者を名指しにして承認を取ることも可能で、明らかに利用者が限定される場合などではそうしているが、

多くの場合は、同じアプリを複数人で使うのだから、包括的に承認を取った方が好都合だ。


論理シミュレーションを行うワークステーションへのデータ転送にFTPを使うことがある。

かつては標準のFTPクライアントとしてFFFTPがプリインストールされていたらしい。

ところが自分の使っているPCはFFFTPがインストールされていないのだ。

いまどきFTPなんてそんなに使うものではないし、標準アプリから外されてしまったのだろう。

というわけで、非標準アプリとしてFTPクライアントを用意する必要が生じた。


そこで承認済みの無償の非標準アプリ一覧を確認してみた。

そしたら、WinSCPが登録されていた。

WinSCPという名前だが、SCP/FTP/FTPS/SFTPクライアントということで、FTPクライアントとしても使えるようだ。

というわけで、これをインストールすればOKだな!

と思ったのだけど、使用者が「○○課メンバー」と、他の課のメンバーに限るとなっていた。

承認時の使用目的を見ると、その用途で使用することが想定されるのは課内の数人だけだったのだろう。


こういう場合はどうすればいいのかと聞きに行くと、新しい目的・使用者で承認依頼を出すようにとのことだった。

それが承認されれば、使用者を拡大することができるとのこと。

実情として、ワークステーションへのデータ転送にFTPを使うことが想定される人はある程度限られるが、

各課に数人ずつはいるだろうということで、「部メンバー」ということで広く申請しておいた。

特にそれで異論もなく承認され、WinSCPを使って、ワークステーションへのデータ転送ができるようになった。


ちなみに、自宅ののPCで使っているSFTPクライアントはFileZillaですね。

自分で新たに選定するならばFileZillaにしたと思うんだけど、社内での使用実績があったということで引き続きWinSCPを選んでおいた。

こういうのは他にもあって、Telnet・SSHクライアントとして、自宅ではPuTTY、職場ではTeraTermとか。(TeraTermは部全員で承認済みだった)

既登録のもので適するものがあれば、それを使いましょうというのが基本的な考えのようなので。

使う側にとっても管理する側にとっても実績のあるものを選ぶ方が楽という事情はあるだろう。


ところで、ここの職場では非標準アプリの使用者を部署単位で指定することが多い。

ゆえに部署内で使用者が増えたり交代した場合は新たな手続きが必要が無いので好都合だ。

ところが、部署名が変更になったり、組織変更で部署の構成が変わってもそのままになってることが多いんだよね。

単純な部署名変更なら読み替えで対応できるので、登録リストを適宜修正してもらえばよいのだが、けっこう放置されているんだよね。

あと、従来、使用者が1つの部署に収まると思っていたが、2つの部署に分散したというケースだと、

実質的に使用者拡大になるから新たな承認が必要なんだろうなぁ。手続きだけの問題だがちょっとめんどくさい。


Author : hidemaro
Date : 2018/02/07(Wed) 23:05
Windows・Microsoft | Comment | trackback (0)

ノートPCでも時々DVDを使う

最近、業務用のノートPCの選定品が変わった。

メーカーも変わったからかなり大きな変化だ。

そんなわけで新しくレンタル開始になるPCから順次変わっている。


それでノートPCを借り換えた人が、「外付けのDVDドライブを買った方がいいかもね」と。

最近レンタル切れになっているタイプのノートPCはDVDドライブ付きだった。

これが借り換えでDVDドライブなしになったことを受けての意見なのだが、

実はその後にレンタルを開始したPCではすでにDVDドライブなしになっていた。

なので今さらとも言えるが、間もなく完全に ノートPC=DVDドライブなし となるのは大きな変化かも知れない。


外付けのDVDドライブなんて買ってもそんなに高いものではないけど、かといって代替策がないわけでもないし……

と思っていたら、ちょうどDVDに入ったソフトウェアのインストールをする用事が出来た。

自分が職場で使っているノートPCは、すでにDVDドライブなしになっていたものなので、そのままではインストール出来ない。

そして、現時点ではまだ外付けのDVDドライブは職場にはない。

ではどうしたか。デスクトップPCのDVDドライブを使ったのだ。


デスクトップPCのDVDドライブを共有設定した上で、ノートPCにはネットワークドライブとしてマウントしている。

なので、デスクトップPCにDVDを入れて、ノートPCでネットワークドライブにアクセスすると、

デスクトップPCのDVDドライブでアクセスが発生し、DVDからのソフトウェアのインストールができた。

USBではなく、EthernetでDVDドライブにアクセスしてるってわけ。

これでも代替出来るんですよね。特にアクセス速度も問題ないし。


CD・DVDの出番が減っていくだろうというのは、ほぼ世間の共通見解だろうと思う。

ゆえに軽量化・薄型化の妨げになるDVDドライブをなくそうという考えは妥当だ。

ただ、そうはいっても少しは出番が残っているのもまた事実なんだよね。

未だに一部のインストールメディアはCDまたはDVDですからね。

有償ソフトだとしてもWebからダウンロードってのもそこそこあることからも、DVDドライブの出番が減っているのは確かだが、

それでも未だにCD・DVDで提供されるのはあるからねぇ。スタンドアローン環境での利用も想定してるというのもあるんだろうけど。


もう十年もすればDVDドライブなんて無用の長物になるのかなぁ?

ただ、やっぱりスタンドアローン環境では、一番手堅い方法ではあるんだよね。

USBストレージというのもあるし、少なくともフロッピーディスクはすでに代替できている。(古い計測器では残ってるけど時間の問題だろう)

DVD程度の容量であればUSBストレージで代替出来るが、大量生産向きではないし、セキュリティ面で警戒されやすい?

今思っているデメリットが将来デメリットではなくなる可能性は十分ありますけどね。


Author : hidemaro
Date : 2017/12/01(Fri) 21:21
Windows・Microsoft | Comment | trackback (0)

パスワードもコンピュータもBANされた

職場に最近来た人が、パスワードの有効期間が過ぎてPCにログインできなくなってしまった。

あれ有効期限切らすと全くログインできなくなっちゃうんだと少し驚いたが。

どうもWindowsはそういう仕様なんだそうで。


一方で別システムからドメインのパスワードを変えるインターフェースがあるのを知っていたので教えてあげた。

Windowsからパスワード変更できない人のための代替手段として用意されているようだけど。

(Windowsのログイン以外の用途でしか使わない人のためのものらしい)

これでパスワードを変更すれば、しばらくすると新しいパスワードでログインできるようになるはず。

こちらはすでに有効期限を切らしたパスワードも変更することができたので、問題は解決したと思った。


ところがしばらく経っても新しいパスワードでログインできない。

それでエラーメッセージを見てみると「サーバーのセキュリティ データベースにこのワークステーションの信頼関係に対するコンピュータアカウントがありません」となっていた。

こりゃ別の要因なのでは? ということで社内外の情報を調べていたのだが、そしたら真の原因が見つかった。

実はこのコンピュータ、とある事情により上位側でコンピュータ名の変更が行われていたらしい。

こういう場合、移行期間中に実際にコンピュータ名の変更を行うことになっているのだが、これを怠っていたようだ。


とはいえ、パスワードの有効期限が切れるまでは問題なく使えていたというのもまた事実。

なんで使えていたのかというと、一度ネットワークに接続した状態でドメインのユーザー・パスワードでログインすると、

このときログインしたユーザーについては、スタンドアローンでもログインすることができるようになる。

すなわちパスワードの有効期限が切れるまではスタンドアローン扱いでログインできたので、

コンピュータ名変更を忘れていたことの問題は表面化しなかったわけである。

ところがパスワードの有効期限が切れた時点で、スタンドアローン扱いでのログインはできなくなる。

さらに新しいパスワードとの認証を行うためには、ドメインのパスワードとの照合が必要なので、スタンドアローン状態ではどうにもならない。

この結果、一気に問題が表面化したわけである。


そういう問題であれば、他の正常なコンピュータではドメインのユーザー・パスワードでのログインが成立するはずなので、

それで変更後のパスワードでのログインが成立したので、このコンピュータに限った問題であることが確認出来た。

その上で、問題が発生したコンピュータのコンピュータ名変更を行い(管理者の操作が必要で多少時間がかかった)、

とりあえず一連の問題は解決したのだった。

なんやかんやと問題が全部解決するまで半日ぐらいかかってしまった。


それはそうとして、パスワードの有効期限って意味あるんですかね。

かつては推奨されていたが、現在は特に推奨されていないというのが真相らしいんだけどね。

使っているパスワードの強度がどれだけあるかとか、そっちの方が重要なんだという話か。

社内のシステムでもいくつかパスワードの有効期限が切られているものがあって、

そのうち1つはかなり頻繁に変更を要求される上に、2世代か3世代前までのパスワードを覚えていて、それと被ると弾かれるんだよね。

あまり使用頻度が高くないので、ログインするたびに期限切れで変更要求されるというほどで大変。

それに比べると、Windowsログインに使うドメインのパスワードの有効期間はゆるいんだけどさ。


Author : hidemaro
Date : 2017/07/04(Tue) 19:31
Windows・Microsoft | Comment | trackback (0)

Windows 10にしたかった

Windows7からWindows10への無料アップデートをやっているのは知られているとおりだが、

ノートPCがWindows7だからアップデート予約をしていたわけだけど、なかなか回ってこない。

普段起動させないから順番が回ってこないのかな。

そんな中、Windows10へのアップデートに合わせてHDDをSSDに置き換えて、さらなる性能向上・延命を図ることを考えた。


そこで中古のSSDでいいのないかなぁと探しに行ったが、思ったほど安くない。

当初64GB程度でいいから安く買えるかなぁと思ったんだけど、あまり128GBと差がない。

その128GBのSSDは中古と新品で大差ないという。むしろ中古の方が高い。

その中古より安い新品というのがSanDiskのSSD Plusという廉価なものなので、先日のデスクトップPC組み替え時にも使用した。(Windows 10のお供にAMD APU)

もしかすると性能面では並んでいる中古品より劣るのかも知れないけどね。

そんなわけでSSD Plusの128GBを買って帰ってきた。


Windows7からWindows10へのアップデートだが、新規インストールと同時に行う場合は、

Windows10のインストール時にWindows7のシリアルナンバーを入れればよい。それでも通るようになってるんだと。

Windows10のインストールメディアはUSBストレージに書き込めるので特にDVDを用意する必要はない。DVDでもいいけど。

HDDを外して、まっさらなSSDに差し替えて、Windows10を新規インストールしたわけである。


Windows10のインストールが終わった後、画面の解像度が1024x768で動いているので、

グラフィックのドライバーが別に必要ということでインストールしようとした。

ところがこのノートPCのグラフィック、RADEON X1270に対応したドライバーはWindows Vistaまでしかない。

Windows7のときはVistaのドライバーをインストールすれば動いたのだが、インストールしてもうまく反映されない。

調べたところWindows Vistaと7はドライバーは共通であることも多かったが、8以降はドライバーの仕様が変わったようでインストールできないそうだ。

AMDはこの世代のGPUのドライバーをWindows7以降では作らないことにしたので、Windows10では使えないということである。

このノートPCを買ったのは2009年のこと(cf. なぜdv2を選ぼうというのか)、さすがに古すぎるということである。

グラフィックドライバーが入らないならばWindows10になってもメリットは得られない。

というわけでこの目論見は失敗したのだった。


その後、デスクトップPCに元々入っていたHDDと新しく買ったSSDを接続し、パーティションをそっくり移し替えた。

EaseUS Todo Backup Free/Download

Freeでもパーティションを転送するだけなら問題ない。

これで移し替えて、SSDをノートPCに取り付ければSSDでWindows7が動いた。

これまでHDDの音がけっこううるさかったので静かになったなぁと思った。

起動してからログインまで、ログインしてからブラウザなどソフトが立ち上がるまでのスピードは多少速くなった気はする。


買ってしまったのでSSDはこうして活用しているが、当初の目論見は全く外れてしまったわけである。

そもそもあまり稼働率の高くないノートPCにSSDを買うというのはあまりよい買い物とは言えないのでは? という思いはあったものの、

Windows10にできればそこそこ延命できるという期待もあって、それとセットならそこまで悪い買い物ではないと考えたわけである。

まー、SSDはHDDより寿命が長いことが明らかになっているし、ノートPCを捨ててもSSDは何らかの形で活用できるから、

このノートPCで十分活躍できなかったとしても将来はどうだか分からんけどね。


しかしノートPCどうしたもんかなぁ。

過去に何度も買い換えを検討していたのだが、最近ではタブレットの活用が進み、稼働率が下がっている。

曲がりなりにも現状でも動くので別にいいかなぁと思ってやってきたんだけど、

Windows7である以上はソフトウェアの寿命がそろそろ見えてきているという状況でどうしたもんかなぁと。

さっきも書いたけど、2009年に購入してからそろそろ7年に達しようという状況である。

これをWindows10にして延命するというのは10年選手を目指すということだったのだが、そうはいかんかったと。

どうしましょうかね。

短期的には大丈夫だから新しいのを買う気は全く起きないが、このまま放置し続けると使えるノートPCが無くなってしまう。

危機感は持ちつつもとりあえずは様子見とするのは、その程度の問題と捉えているということだ。


Author : hidemaro
Date : 2016/01/21(Thu) 22:03
Windows・Microsoft | Comment | trackback (0)

ノートPCは指紋があると楽

職場には開発用のデスクトップのコンピュータがある。完全にワークステーションですね。

けど、実験用の機材の横で使うのには持ち運びできるノートPCが必要となる。

自分の席に実際にハードウェアを持ってきて開発することもできるけど、

あまり大規模な装置を置くことはできないし、やりたいこと次第だろう。


職場にやってきてこれまで1ヶ月は他の人の作業環境をノートPCごと借りたり、

ある人が作業場所に据え付けたデスクトップPCを当面使わないという理由で借りたり、

そうやってあれこれやっていたのだが、1人1人作業できる環境ではないので、

1月になったら本格的に僕の作業場所を確保することになっていた。

そこで使う道具を運んだりあれこれしていたのだけど、そこにはノートPCも含まれ、

部署で持っているノートPCを1台渡してくれた。

基本的にはこれを作業場所で使ってよいとのことだ。


社内のコンピュータは基本的に共通のID・パスワードでログインできるので、

今まで誰かが使っていたコンピュータを借りても自分の名前でログインできる。

ところがノートPCはBIOSパスワードがあるのよね。

研修中に使っていたノートPCにもBIOSパスワードがあったんだけど、このBIOSパスワードが難儀なのである。

というのもBIOSパスワードはマシンごとに固定で自分で変えることはできない。

そしてポリシー上、筐体にBIOSパスワードを貼るなどしてはいけないことになっている。

かといって覚えられるものでもないので、現実的にはどこかに書き留めるという話になる。

もっとも研修中、ほとんどの期間で毎日のように打っていると覚えてしまうのだけど。

ノートPCはHDD暗号化をしてるらしくてその都合でこういうことをしているらしい。

盗難・紛失時のデータ漏洩リスクを低減するためなのだろう。


ということはここでもノートPCのBIOSパスワードを覚えないといけないのか?

と思ったかも知れないが、実はある時期から導入されたノートPCには指紋認証機能がついている。

これは指紋認証を行うことで、BIOSパスワードとログインID・パスワードの入力を省略できるもので、

ここの部署では指紋認証機能を使ってる人が多いんだとか。確かに使えるならそっちの方が便利だな。

そんなわけで指紋を登録しておいた。最低1本でいいが、10本まで登録できるので、左右の人差し指・中指を登録しておいた。

登録するのは1人には限らないので、これまでこのノートPCを主に使っていた人と僕と2人分登録されているはず。

どちらでもBIOSパスワードを突破することができるということだ。


デスクトップPCはBIOSパスワードがない、ということは盗難されればデータ流出の可能性はあるのではないかと思う。

とはいえ、基本的には従業員しか入らないわけだし、あんなデカイの持ち出される心配はあまりないと考えているのだろう。

もっとも開発職場で使うノートPCはほとんど社外に持ち出す機会もなくて、専ら社内で使われている。

もちろん社内ではあれこれと運ぶことはあるけどね。主に職場内だが。

じゃあリスクはデスクトップPCとさほど変わらないのでは? ともなる。持ち出す難易度が全く違うが。

会社のポリシーで、ノートPCは一般にHDD暗号化を行いBIOSパスワードで制御すべしとなっているのでそれに従っているまでだ。

もっとも指紋認証でBIOSパスワードとログインID・パスワードの代わりになるならば、デスクトップPCのログインより手間がかからないぐらいなので、

ちゃんと設定さえしておけばこんなに便利なのかという話である。

だから法人モデルで指紋認証機能がついたノートPCが多いということである。


Author : hidemaro
Date : 2016/01/07(Thu) 19:21
Windows・Microsoft | Comment | trackback (0)

GPUを活用できるかできないか

AMD APUを使うメリットの1つとして挙げられていたブラウザや動画再生でのパフォーマンスをあれこれ調べていた。

APUに限らないけど、CPUだけだと大きなリソースを占有してしまうFlashの実行や動画のデコードにGPUを使うことはよく行われており、

これまでも知らないうちに使ってたか知らないけど、具体的にどんなときに働くか調べてみた。

けっこう環境によって違うので調べてみないとわからないかもね。


これまで高解像度の動画を再生すると、再生できるが時々カクついたりすることはあった。

それがWindows Media Playerで再生すると、なんとCPUリソースをほとんど食わずに再生できてしまう。

GPUで処理しているということである。

それ確かめるにはどうすればいいかという話だけど、Open Hardware MonitorではGPUリソースの占有率も見られる。

これで見ると確かにGPUのリソース占有率が上がっていることはわかる。

ところがGOM Playerで再生すると、CPUリソースはそれなりに消費する。

消費するって言っても10~20%ぐらいなんだけどね。それだけパワフルなCPUということなのだと思うけど。

GOM PlayerがGPUをデコードに使っているのかどうかはよくわからないのだが、どうやってもCPUリソースを消費するというところがポイントだ。

このように環境によってGPUを使うことによるCPUの負担軽減効果には大きな差が出るということがポイントである。


これはFlashでも言えることで、ニコニコ動画で「ニコニコベンチマーク」とタグがついている異常にビットレートの高い動画を再生してみるとわかる。

ニコニコのプレイヤーの設定にハードウェアアクセラレーションを有効にするとか設定があるので、そこにチェックを入れる。

それで、Firefox・Chrome・Internet Explorerでそれぞれ再生してみたが、

Chromeは明らかに性能が出ない。どうもChromeのPPAPI版FlashではGPUを使ってもあまりCPU負荷は軽減されないようだ。

FirefoxとInternet Explorerはどちらも同じぐらいだが、Firefoxの方が重い動画もスムーズに再生できた。

もちろんChromeでも常識的な動画であれば重いと感じることはないだろうけど、極端な例で試すと大きな差が出る。

FirefoxでGPUが効いていると、FlashはほとんどCPUリソースを食わずに重い重い動画も再生できてしまった。すごいな。


最近のPCはCPUとGPU、どちらのリソースをどのように使うか、工夫するとかなり性能が向上することも多いかと思う。

あれこれ調べてみると、これがいいというのが見えてくるだろう。

実は今まであまり調べたことがなかったんだけど、今までの環境でもここ工夫してたらもうちょっとよくなってたのかもなと思うこともある。

もちろんCPU・GPUとも性能が大幅に向上したことでCPUを活用する処理でもGPUを活用する処理でも良さを引き出せるようになったというのはあるけどさ。


Author : hidemaro
Date : 2016/01/04(Mon) 23:32
Windows・Microsoft | Comment | trackback (0)

Windows 10のお供にAMD APU

昨日、川崎大師からの帰り道に秋葉原に寄り道をして、あれこれ見ていたのだが、

PCの組み替えのアイデアを探るために、CPUとかマザーボードとか見ていたんだけど、

こうやって詳しく見るのは久しぶりのことで、IntelとAMDがどういうことをやっているか勉強していた。

そして、また今日、秋葉原に行ってPCのパーツを買ってきて、早速組み替えてみたのだった。


そもそも、今までのPCは2011年に組み立ててからほとんど触っていない。

DDR3の時代がやってきたからPCつくりかえる

5740円で買ったAthlon II X2を積んで作ったものだと書いてある。今のCPUの値段と比べると不思議なほど安いな。

こんなに安く組んだPCでこれまで4年半ほど経過しているが、意外にも性能面で大きな問題はなかった。

まぁ大きな問題は無いとは言うけどメモリ不足気味だったし、構成を一新すればなおさらサクサク動くのではという思いもあったが、

とはいえ、わざわざお金をかけて構成を一新する気概というのはあまり起きず、これまで放置してきたという状況である。

そんな状況だったが、最近、Windows 10が出始めて、Windows 7のメインストリームサポートも終了して、

いますぐ問題は起きないにせよ、Windows 10への移行を考えるべき状況となってきた。

そんな状況で、Windows 7のユーザーならばWindows 10への無償アップデートがあるところだが、

このPC、DreamSparkで入手したWindows Server 2008R2を使っているので、Windows 10にはならない。

というわけでWindows 10への移行に合わせてPCの構成を一新しようという考えになったのだった。


弟に言わせれば、「AMDはCPUもIntelにはかなわないし、GPGPUもNVIDIAにはかなわない」との評だが、

調べてみたところ、確かにIntel Core i7のようなハイエンドなCPUに並ぶCPUがAMDにはあまりないし、

GPGPUの世界でNVIDIAのアーキテクチャであるCUDAの評判が高いことは事実で、そうなるとNVIDIAのGPUを使うしかない。

ただ、僕はGPUを使ってゲームをするわけでもないし、計算をするわけでもない。なので、そこにこだわる必要はない。

これまで長らくAMDのAthlonシリーズを使ってきたが、そんな話も聞いていたので、当初はIntelのCPUとグラフィックでやろうと考えてみた。

ところが、実際に店で見てみるとIntelのCPUはかなり高い。Core i5でも2~3万円とかするから思っていたより高い。

一方でAMD APUについて、店に繰り出してみると、AMD APUはWindows 10の性能を引き出すということが宣伝されている。

強い者だけが進化する。AMDの次世代APUが武器になる (ソフマップ)

Intel Core i3との比較になっているが、Intel Core i3より安い値段で、それより性能に優れるものが買えるようだ。

ということで当初Intelで考えていたところが、AMD APUの採用に傾いていったのだった。


ところでAMD APUとはなんぞやという話である。

AMDがRadeon擁するATIを買収したのは2006年の話。

以後、AMDのブランドでGPUとしてRadeonを統合したチップセットが売られるようになったが、

2011年にはAMD FusionとしてCPUとGPUを統合した商品を売るようになった。FusionはまもなくAPUと呼ばれるようになった。

APUは何がいいのか?

革命的な新しいアーキテクチャーHSAによって、1つのAPU上で、CPUとGPUによるデータの共有化、同じメモリーへのアクセスが可能になります。このテクノロジーは、ヘテロジニアス・ユニフォーム・メモリー・アクセス、または「hUMA」と呼ばれます。

このアーキテクチャーには、ヘテロジニアス・キュー、または「hQ」と呼ばれる画期的なテクノロジーも搭載されています。hQは、コンピューティング・タスクを処理するAPU搭載プロセッサーの相互インタラクティブ動作を劇的に変えるものです。以前のシステムでは、CPUがマスターであり、GPUはスレーブでしたが、HSAが開発された現在は、両方がタスクを割り当て、実行できるようになりました。平等なパートナーとして、各タスクに応じた最適なコアでワークロードを管理することができます。

(AMDコンピューティング・コア)

今までCPUとGPUは互いに独立していたが、CPUとGPUが同じメモリを共有し、相互に処理のやりとりができるようになると高い性能が発揮できると。

ただし、そのためにはソフトウェア側の対応も必要で、Windows 10ではAMD APUの性能を発揮できるものになっているということらしい。

もっともIntel Core i7・i5・i3もCPUとGPUの統合はやってるんですけどね。


それで今回の構成だけど、ほとんどツクモで買った。大阪撤退以来、ツクモで買い物したことなかったからだいぶ久しぶりである。

  • AMD A8-7670K+マザーボード+DDR2 SDRAM 4GB×2 : 約26800円(うちAPUが13400円ぐらい)
  • SSD 120GB : 約5400円
  • Windows 10 Home Edition DSP版(SSDにバンドル) : 約14900円
  • 300W 電源 : 約5900円

で、しめて53000円ぐらい。けっこうな金額したが、まぁWindows 10も入ってるしね。

APUだけだと13400円ぐらいと書いたけど、この値段で買えるIntelのCPUはさほどないので、お値打ち感がある。

今回、起動などの高速化を期待してシステムドライブ用にSSDを購入した。

最近ではSSDを使う構成が一般的だというのでそれを取り入れたものだ。今はSSDもけっこう安いので。

電源は2011年時点で使い回しだったが、信頼性も考慮してちょっといい電源に買い換えることにした。

とかなんとか。これまでほどケチケチした買い物ではないので高くなったが、長く使うとすれば必要な投資だろう。


とりあえずまだインストールしたばかりで、どれぐらい快適に動くか確かめ切れていない分はあるが、

少なくとも起動はずいぶん速い。それが早くならなければSSDの価値はないが。

いろいろ試しながら良さを確かめていければなと思う。

Windows 10が使い続けられる限り、このPCも活躍してくれるのではないかと思っている。


Author : hidemaro
Date : 2016/01/03(Sun) 23:25
Windows・Microsoft | Comment | trackback (0)

Excelがどこでも使えるからVBAはうれしい

Microsoft Excelの上でVisual Basic for Applications(VBA)で書かれたプログラムを動かす、

というのはわりとよく行われていることだそうだ。

今まで触れる機会はそこまで多くなかったのだが、業務で使ってる職場も多いとか。

そんなことを思っていたら今の職場に来てそうそうにVBAでプログラムを書いて使う必要に迫られたとさ。

一から書いたわけではなくて、元々あるプログラムに書き足して使うという話だったのだが。


ただ、仕事でプログラムを組むということにおいてVBAは1つありがたいことがある。

それはExcelさえあればプログラムの開発も実行もどちらもできるということだ。

なぜ、それがありがたいかというと、職場で使えるソフトウェアが限られるからだ。

主にセキュリティ上の問題を考慮してか、職場で使うソフトウェアは予めリストアップされたものしか使えないことになっている。

もちろん、必要な開発ツールがあるんだ、となれば必要性や安全性を確かめた上でリストアップされることになるのだけど

そういうプロセスが必要なので、無料でダウンロードして使えるソフトウェアでもなかなか使えないのだ。

リストアップされてるソフトだって無条件で使えるとは限らない。

有償のソフトウェアだとライセンスの問題があるからだ。最低限必要な数しかライセンスを買っていないと、他のコンピュータにはもう入れられない。

……という壁に職場に来て早々にぶつかったのだよ。とある作業をするときに問題になったんだけど。

一方でExcelを含むMicrosoft Officeは全社的に使えるソフトウェアと位置づけられているし、ライセンスは全社で全コンピュータ分まとめて契約しているはず。

というわけでExcelほど手を出しやすいプログラムを開発・実行できるソフトウェアはないのだ。


VBAって実用上どうなんだよ、という話だけど、思ってたよりVBなんだね。

もっとも、これまでVBというとVB.netを読み書きしたことがあるぐらい。それだってC#で触る.net Frameworkの知識があってのことだ。

実際、VBAに触れると、サクサク読み書きできる部分もあるが、戸惑う部分もあった。

いくつか列挙すると、

  • Dim foo as Integer とInteger型で宣言すると16ビット整数型(Cでいうところのshort)なので、一般的にCのintに相当する32ビット整数型はLongと書かないといけない
  • Cのfloatに相当する単精度浮動小数点型はSingleと書く (特にこだわりが無ければ倍精度のDouble型を使う方が実行効率に優れるが)
  • 関数を実行するとき、返り値を変数に代入しないときは Call foo() と書かないといけない
  • VBでは"\n"と書いても改行コードではなく \n という文字列として解釈されてしまうので、Cで言うところの"\n"はvbLf、"\r\n"はvbCrLf を使わないといけない
    (ちなみにVBでは文字列結合の演算子は&なので "foobar" & vbCrLf  のように書くことになる)
  • 16進数を書くときは &HC100 のように&Hを接頭辞として付けて書く
    CLng("&H"&hex)とすれば16進表示の文字列を解釈してLong型に変換することもできるが、&H10000以上を変換する可能性があるならCLngにしないとオーバーフローエラーが出る
  • セルに数値化されそうな文字列を文字列として出力したいときは、Excelのセルに打ち込むとき同様に ' を付けて、
    Cells(10,5)="'0001" のように打たなければならない

このあたりかなぁ。最後のはVBA特有、というかむしろExcelの仕様ですね。

あと最初に書いたIntegerだけど、実はVB.netでは Integer は System.Int32、すなわちC#のintと同じく32ビット整数型ということになっている。

なのでVB 6.0以前の仕様ということになるが、VBAはこの仕様のままなので要注意だ。

型変換演算子もCIntは16bitまでしか対応していないので、整数への変換でもLong型に入れるものはCLngとしないといけないのだ。

このあたりVB以外の感覚では正しそうに見えるので注意が必要だ。


ちなみにVBAの実行効率だけど、純然たるインタプリタではなく中間コードを生成するとのことなので、

そこそこの実行速度は出るんじゃないですかね?

どこぞの Scilab みたいな純粋なインタプリタだと繰り返しさせると途端に遅くなるが(Scilabでは速いとされる)、そういうことはなさそう。

プログラムの実行環境としてはそこそこなんじゃないでしょうかね。PerlとかRubyみたいなもんでしょ。

入出力にExcelのワークシートを使えるのもメリットかもしれない。もっともセルの入出力はVBAでは遅い部類の処理らしいが。

今後もなんしか業務上のツールをExcelのVBAで開発・実行することは多そうだ。


Author : hidemaro
Date : 2015/12/15(Tue) 22:02
Windows・Microsoft | Comment | trackback (0)

多言語対応し始めたが対応していない

なんかここ数日、言葉の話ばかり書いているけど、

今日は1つ、言葉の壁を感じる出来事があった。

困ってしまったのは僕ではなく、教えてくれている技術者なんだけど。


この職場の業務の流れについて順次教えてもらっている中で、とある作業で使うツールに興味を持った。

一体どんなツールなのか想像がつかなかったので、「このツール見せてもらえない?」と頼んだら、見せてもらえることになった。

このツールというのがMicrosoft Office上で動くツールだったもので、コピーして僕の業務用PCに持ってきてくれた。

そこまではよかったのだが、僕の業務用PCのMS OfficeのUIは全て日本語で表示されている。

そしたら、教えてくれている方は日本語が読めないので困ってしまったのだ。

ピクトグラムでわかれば問題ないのだが、もうちょっと複雑な作業が必要なようで、「英語表示にできない?」と聞かれた。

僕もきっと英語表示に切り替えられるはずだと思い、オプションの言語設定を開いて見た。

そしたら日本語しかインストールされてないではないか。

結局、「○○はどこ?」「ここですね」とか、「ウィンドウ閉じたいんだけど」「これがキャンセルですね」とか、

そういうやりとりをしながら実際にツールを操作して、機能を教えてもらうことができた。


この事業所の方にとっては日本語のUIなんか読めたもんではないだろう。

僕だって英語か中国語かドイツ語ならなんとなく操作できただろうけど、例えば韓国語だったらお手上げだっただろう。

どの言語でも基本的に同じ機能があるはずなのにアクセスできないというのはつらいことだ。

もちろんメニューの配置を完全に覚えていればなんとかなるのだけど、そんな人もそうそういないだろう。

申し訳ないことをしてしまったなぁと思ったのだが、僕もまさか切り替えできないとは思わなかったのだ。


また、こんなことがあっては申し訳ないと思い、言語パックはインストールできるのか調べてみた。

ポータルサイトから情報システム部門の情報にアクセスし、多言語対応について調べてみたところ、

ある時点以降に導入された業務用PCでは英語パックは標準インストールになっているとのことで、

そうでないPCはこのページの説明に従えばインストールできると説明が書かれていた。

なので、インストールしておいた。今後はオプションから言語設定を変えればUIを英語にできる。


言語パックさえあれば多言語対応できるのはすばらしいのだが、

よくよく考えてみるとあえて他の言語パックをインストールするかと言われると、微妙な話だ。

そんなに容量を食うわけでもなく、使わなければなにも起きないわけで、インストールするだけしといてもよいのだが、

しかし標準でチェックが入っていないものをあえてチェックを入れに行くかと言われるとなんともかんとも。

ある時点から英語パックは標準インストールになったというのも、英語表示を常用したいユーザーからの問い合わせが多かったのだろう。

日本語を得意としない従業員もいるのは確かで、そんな人たちが英語表示を常用したいと申し出るのは不思議ではない。

そのときについでに中国語パックとかも標準インストールにして問題はなさそうだが、そういうニーズはさほどないのだろう。

真相はどうだか知らんが、英語UIを常用せずとも必要時に切り替えられるのが標準仕様になったのは、いざというときにうれしいことだ。

切替以降に導入された業務用PCなら、スッと切り替えて教えてもらえたのにな、と思うとうらやましい。


Author : hidemaro
Date : 2015/11/06(Fri) 21:46
Windows・Microsoft | Comment | trackback (0)

Tools