コンピュータの最近のブログ記事

私がガラケーからスマホに乗り換えたのは、主な理由は時代遅れと見られたくなかったからだが、別の理由は、スマホ上でブログを書きたいと思ったからである。

それは別にスマホから直接投稿するというのではなくて、ドラフトを書いておいて自分のパソコンメールに送っておき、そこで校正する、ということである。

それで、スマホで文字を入力しやすい機種ということで、今のAQUOSにした、という次第である。

それでも最初は文字入力に随分戸惑った。例えば、「あ」を三回押して「う」を入れるようなインターフェースである。これは未だによく押し間違えるが、少しずつミスは減りつつある。

あと、困ったのはカタカナ語の入力である。例えば、テロメアなら、ひらがなで入れるだけで、候補として出てくる。しかし、ガメリンコみたいな変なカナだと候補として出てこないことがある。それで、困って周囲のスマホユーザーに聞いてみたが、機種が違うので、アドバイスしてもらえない。それで、LINEでのオンラインサポートを依頼したら、なんとか分かって、ようやくスマホでブログを書くという希望がかないそうである。

世間一般の人にとって、Windows Updateなんてどうでもいいものであり、これを話題にして盛り上がるなんて、コンピュータ・フリークの間でもまずありえない。

それでも私が偏執狂的にWindows Updateに拘るのは、Windows 7の時代にWindows Updateに随分苦しめられたからである。その主要な原因は、ソフトウェア的というよりもHDDなどのハードウェア的なものだったが、それでも今でもWindows Updateに対する遺恨は残っている。

そんな遺恨を以てWindows 10に臨んでみると、Windows Updateは別の様相を呈してきた。まず特筆したいのは、タスクバーのピン留めの問題である。すなわち、タスクバーのピン留めしたアプリケーションのアイコンが、パソコンを立ち上げなおすと消えてしまう。それは自宅のAcerのWindows 10パソコンでは起きないし、Lenovoパソコン特有であるが、立ち上げ直して10分くらい経過して、既にタスクバーに登録されているアプリを起動して、タスクバーからピン留めを外す操作をし、その直後にピン留めをし直すことで、すべてのアイコンのピン留めが復活するので、あまり気にしなくてもいいといえばそうなのだが、それでもしばらくは、Windows Updateの度にこのバグがfixするものと期待した。ところが何か月経ってもこれがfixされる様子がないので、もう全く期待しないことにした。

あと、比較的最近のWindows Updateの後、パソコンを立ち上げなおす度にファイアーウォールの設定をし直すメニューが出てきて、怪訝である。以前はこれは、一度設定するとその設定は記憶された。まあこれも、ワンクリックなので、そんなに気にすることでもないか。

また、ときどき起きるのが、きちんとWindows Updateが完了したと思ったら、立ち上げなおし時に、うまくいかなったので元に戻すとメッセージが出ることがあり、Windows 10のWindows Updateは大変時間がかかるので、うんざりする。一体何が悪いのだろう。まあ、再度導入すると大抵うまくいくのであるが。

自宅のAcerのパソコンでWindows Updateがundoされたのは、Fall Creators Updateとウイルスバスターで書いたときだけである。あれはきちんと理由が分かっていたので、別にがっかりもしなかったのだが。

と、たえてWindows Updateのなかりせば、パソコンライフはのどけからましなのだが、そうもいかないのだった。

私が日常的に自宅のパソコンでプログラムを書き、コンパイルしているといっても、ほとんどが単なる数値計算で、GUIになることは滅多にないので、大抵はコマンドライン・コンパイラで、それは今のところ、C++ Builder XE4のコマンドライン・コンパイラbcc32.exeである。

ところが、ちょっとしたプログラムをコンパイルしたいだけなのに、LME288エラーが起きて起きて、コンパイルできなくなる。それは複数回立ち上げ直せばなんとかなるとはいえ、何回立ち上げ直せばいいのか、その都度違ったりして、かなりストレスがたまる。

で、Visual Studio C++ 2017にも当然、コマンドライン・コンパイラはあるよね、と調べてみたら、あった。それは次のようにするらしい。

まず、スタートのメニューで、Visual Studio 2017を探し、それを展開すると、VS 2017用 x64 Native Tools コマンドプロンプトというのと、VS 2017用 x86 Native Tools コマンドプロンプトというのと、VS 2017用 x64_x86 Cross Tools コマンドプロンプトというのと、VS 2017用 x86_x64 Cross Tools コマンドプロンプトというの4つのコマンドプロンプトがあり、とりあえずVS 2017用 x64 Native Tools コマンドプロンプトを選んでみた。

そして、その状態で、私がCLIベースのC++プログラムを書いて保存しているディレクトリに移動し、例えば、プログラムをsample.cppとすると、コマンドプロンプトで、cl sample.cppにより、コンパイル&リンクして、sample.exeを生成することができる。なお、C++ Builder XE4のコマンドライン・コンパイラ用に作成したプログラムは、Visual Studioのclに完全コンパチブルである。

VS 2017用 x86 Native Tools コマンドプロンプトというのを選んでも全く動作は同じであるが、どういう場合かはっきりとは指摘できないが、x86とx64で微妙にコンパイルしたプログラムの動作が異なる場合がある。

なお、VS 2017用 x64_x86 Cross Tools コマンドプロンプトというのは、64bit パソコンで 32bit パソコン用の実行ファイルを作るためのものであり、VS 2017用 x86_x64 Cross Tools コマンドプロンプトというのは、32bit パソコンで 64bit パソコン用の実行ファイルを作るためのものらしいが、具体的にどういう場合に使うのかピンとこない。

ともかくこれで、LME288エラーに全く煩わされることなく、コマンドライン・コンパイラを使えるようになったのは大きい。それで、VS 2017用 x86_x64 Cross Tools コマンドプロンプトと、VS 2017用 x64_x86 Cross Tools コマンドプロンプトを、呼び出しやすいようにタスクバーにピン留めした。

あとは、GUIベースのプログラムであるが、これはVisual Studio C++ 2017で実装することになるが、流石にGUIは、C++ Builder XE4とは全くコンパチでないので、かなり修行が必要である。ともかく今、鋭意?勉強中である。

対局中継サービスというと、今までパソコン・ベースの名人戦棋譜速報を月500円程度で契約してきたが、スマホ・デビューしたことで、スマホ・ベースの将棋連盟棋譜中継アプリも契約してみた。

そこで、名人戦棋譜速報と簡単に比較してみる。まず、名人戦棋譜速報は基本的に順位戦と名人戦のみであるが、その年の順位戦と名人戦はすべてカバーしていて、後からでも内容が観れる。

将棋連盟棋譜中継アプリは、順位戦と名人戦以外もカバーしているが、基本的にその日の注目対局を選択的にのみ観戦可能であり、その他の将棋は基本的に観れない。ただ、対局が終わった将棋も、過去の700局程度が随時観戦できる。なぜか大山、升田、中原などの過去の名局も多少含まれている。

名人戦棋譜速報は、すべての対局の棋譜がkifという拡張子のテキストファイルでダウンロードできる。それは、将棋対局ソフトがパソコンに導入されていたら、ダウンロードされている棋譜を読み込ませて解析できる。棋譜のブログを書くためには、この機能は私にとって必須である。

将棋連盟棋譜中継アプリは、私の知る限り、棋譜のダウンロード機能は存在しない。しかし一番の売りは、スマホで文字通りどこにいても、基地局の電波が届くなら、将棋の対局を観戦できることである。この密着性は到底パソコンは対抗できない。私は将棋連盟棋譜中継アプリを特に帰りの電車内で観戦しているので、時間がいくらでもつぶれる。しかし私は主として電車内で本を読むことにより、ほとんど退屈した記憶がない。なので、スマホというか将棋連盟棋譜中継アプリのせいで、そういう時間が食われてしまうのは残念である。

とはいえ、将棋連盟棋譜中継アプリで、タイトル戦、あるいは順位戦、藤井七段の対局など注目対局があるときは、それを通勤の帰りの電車で観戦するという誘惑に、どうしても勝てない。それで一手一手予測しながら観戦するのだが、一つ問題があって、それは私が電車で帰る時間は大抵、対局の夕食休憩になっていて局面が動かない。そういう場合は仕方なく、最初に遡って、手を辿って、考えながら進めたりする。その段階で、局面に切断面を入れて、後で棋譜ブログを書く際の足しにもしたりする。棋聖戦第5局のブログはそうやって下ごしらえし、あとは棋譜を激指し14に読ませて検討することにより、仕上げた。

この際なので、囲碁の対応するアプリも調べてみたが、調べてみたら幽玄の間や、e碁BOOKSなどが見つかった。しかし、幽玄の間はプロの対戦が観戦できるものの、将棋連盟棋譜中継アプリほど観戦に特化しておらず、基本的に有料のIDをもつことが望ましいようである。また、e碁BOOKSは、それ自体は無料であるものの、そこで呼び出すコンテンツは有料であったりするので、結局、囲碁アプリは断念することにした。要するに、囲碁もまあ好きといいつつ、将棋と比べて相当比重が小さいのだなあ、と改めて確認した次第。

その代わりといってはなんだが、プロ野球速報のアプリと、J-COMの野球中継アプリを導入した。プロ野球速報は、動画は出ないものの、一々の投打やランナーの出塁状況や試合経過が一覧できて便利なので、導入した。J-COMの野球中継アプリは、どの試合がどのJ-COMチャンネルに対応しているか確認するために使用する。J-COMの野球ファンユーザには必須である。

私の方針は、これ以上、あまりアプリを拡げないというのが基本方針で、インベーダやテトリス形式などのゲームやポケモンGOなども導入するつもりは全くない。でも、流石に数学アプリというのはないよねと思ったら、なんでも、本の数式をカメラでかざしたら、一瞬で答えを出してくれるアプリというのはあるらしい。でも私がほしいのは、数式計算アプリなのだが、だったら関数電卓アプリでもいいかも、と考えているところである。

それと、ほしいのはテキスト・エディタかなと、だんだん疑似パソコン空間をスマホ内に作りたがっている私だった。ほら、もっと早めにスマホやっとけばよかっただろと別の自分が囁くが、うるせぇ、と無視するのだった。

最後に、これはと思ったアプリがあって、それは、マルチ残高リーダーFREE。PASMOやナナコカードを、スマホの裏面にかざすと、残高とポイントを読み取って、画面に表示する。これは軽いがなかなか便利である。

Outlook

user-pic
0

今勤務している会社で、メーラーがOutlookに移行した。なんでも、今まで使っていたメーラーに何か不具合があったらしいのだが、私には詳細はわからない。そういえばかなり前、Outlookはセキュリティ・ホールが指摘されたが、おそらくそれはとっくに解消されたのだろう。何しろ天下のマイクロソフトの製品である。

メーラーの移行には、今まで蓄積したメールログを移行する作業が必要であるが、詳しいガイド付きでツールが提供されたので、私にも困難なく移行作業ができた。Outlookは今まで使ったことがなかったが、分かる範囲で使っているだけでも、今まで使っていたメーラーよりも使い勝手がよい。それで気をよくして、例によってOutlookのガイド本を買うことにした。

その後、自宅でもOutlookを使ってみようとして、自宅のLenovoのパソコンを確認したら、確かにOutlookは導入されていた。それで、自分のniftyのメールをOutlookで見れるようにするため、ウェブで検索して、nifty用のSMTPサーバ、SMTPサーバのポート番号、POPサーバ、などの情報を印刷した。

今まではnifyのWebメールのインターフェースを使用していたのである。それで、自宅のLenovoのパソコンのOutlookを始めて起動した。すると、いきなりメールアドレスを入れろというので、とりあえず自分のniftyを入れた。すると次に自分のniftyメール用のパスワードを入れろというので、入れた。さあいよいよSMTPサーバなどを入れるのだ、と思っていたら、いきなり自分のniftyメールのアカウントに接続され、受信メールがダウンロードされ始めたので、驚いた。どうも、niftyは有名なプロバイダの一つなので、設定は予め組み込まれているようである。

ところが、Outlookで初めて自分のniftyメールのアカウントに接続したので、なんと6000個以上、180MBものメールがダウンロードされ始めた。なので、しばらく放置しておいた。

受信メールがダウンロードされる間に考えたのだが、nifyのWebメールで受信したメールはOutlookでもダウンロードされるが、送信したメールは移行できないということである。確か会社で提供された移行ツールは、送信したメールのログの保存場所も知っていて、そこからOutlookにコピーしてくるのだった。それでやっとわかったのは、自分が送ったメールにわざわざ自分のメールアドレスをbccする人がいるが、あれは送信メールを受信メールとしても扱うためだ、ということだった。自分のコンピュータ関係の知識はどんだけ晩生なのだろう。

ともかくOutlookの基本的機能しかしらないので、ともかく、数少ない知り合い毎に受信フォルダの下に個別フォルダを作成して、そこに今まで受信したメールを移動して分類してみるという最低限のことはしてみた。これ以上は、例によってガイド本を読むなどして、カレンダやタスク設定の機能など、それなりに便利に使っている次第である。

読売新聞をみていて、ええっ、と目を瞠る記事があった。それは、正義のハッカー女子と題する記事である。

正義のハッカー女子とは誰の事かというと、武蔵野市にあるNTTセキュアプラットフォーム研究所の中島明日香さん。コンピュータ・システムの脆弱性を見出す、ホワイト・ハッカーという役割の仕事をしているという。

中島さんは高校時代はIT音痴だったという。でも、無類の読書好きで、ネットで読んだ、女性プログラマー七瀬晶さんのProject Sevenという本に影響を受けたという。

父親の仕事の関係でニューヨークにいた時期があり、帰国して慶応大の環境情報学部で真剣にコンピュータを学んだ。まだ二十代後半なのに、講談社ブルーバックスで、「サイバー攻撃」という著書もあるという。これは知らなかったので、早速注文した。

NTTは、日本でコンピュータセキュリティの研究のメッカのような場所で、それは一つには、暗号理論の大家、岡本龍明博士がいらっしゃるからだろう。NTTセキュアプラットフォーム研究所も、いわゆるセキュリティのグループと、暗号のグループの二つに分かれるはずである。

日本にはもちろんNTT以外にもコンピュータ・セキュリティを研究している会社は沢山あるが、中島明日香さんの著書以外にも主だったコンピュータ・セキュリティの専門書の著者はたいていNTT所属の人が著者だったりする。例えば、私の愛読書の一つの「コンピュータネットワークセキュリティ」八木・秋山・村山著、コロナ社もそうである。

私は実は仕事の関係でときどき、NTTの武蔵野の研究所を訪れるので、たまたま中島さんにお会いできれば幸いなのだが、そもそもホワイト・ハッカーという人々と気軽に会えると思ったら大間違いで、マーク・グリーニーの暗殺者の飛躍にでてくる范講も天才ホワイト・ハッカーで、そのスキルゆえに西欧の国々から熱望され、一方でそれでは困るので中国当局が暗殺しようと狙い、ジェントリーが必死で護衛したのだった。

最大の素数の続きであるが、もしかして一気に2nで、nが数千万のときの計算を高速で実行する方法として有効なのではとふと、思いついたことがある。それは次のような方法である。

  • STEP1: x = 2と代入し、y ← x*x
  • STEP2: x = yと代入し、y ← x*x
  • STEP3: yが所定の値に達したらyを出力して終わる。そうでなければ、STEP2に戻る。
という極めて素朴なものであるが、2 → 22 → 24 → 28 → 216 → 232 → ・・・と極めて高速に数が増加して、ループがn回まわると、結果は2の2n乗になっている。

この方式で277232917を計算するには、
77232917 = 226 + 222 + 219 + 218 + 217 + 213 + 211 + 210 + 29 + 28 + 27 + 35と分解して計算する。

この分解は、例えば次のようなPerlプログラムを使用する。

IND(72232917);

sub IND     {
 my $n = shift;
 my $m = 1;
 my $i = 0;

 if ( $n < 100 )     {
   printf "reminder = %d\n",$n;
   return;
 }
 
 while ( $n >= $m )     {
   $m *= 2;
   $i++;
 }

 printf "%d\n",$i - 1;
 IND($n - $m/2);
 
 return;

}

これは速いのではと思ったら、大きなボトルネックがあった。それは、多倍長×多倍長という極めてコストの大きい計算を要することで、結果的に却って時間がかかるのだった。

具体的には、以下のとおりである。
  1. 2の215乗までの計算 : 115.875秒
  2. 2の217乗までの計算 : 461.625秒
  3. 2の218乗までの計算 : 924.688秒

このように、2の2n+1乗は、2の2n乗の計算のほぼ2倍の時間がかかると見積もれる。すると、2の227乗までの計算は、924.688×29秒 ≒ 131.5時間 ≒ 5.48日で、結局ストレートに214乗をどんどん掛けていった方が、3日ちょっとで終わる。多倍長×多倍長を使わないので、却って速い。残念。ともかく、ソースコードを以下に示す。


#include <time.h>
#include "MLA4.h"

int n = 5000000;

int main(void)           {
 int i;
 int *a_num, *b_num;
 FILE *fo;
 clock_t t_begin, t_end;
 
 if ((fo = fopen("MMUL.txt","wt")) == NULL ) return -1;
 
 t_begin = clock();  // 計測開始

 
 a_num = new int[n];
 b_num = new int[n];
 
 CLEAR(n,a_num,2);
 CLEAR(n,b_num,2);
 
 for ( i = 0; i < 18; i++ )   {  // 最大の素数の場合、この18が、26程度になる
	MMUL(n, a_num, a_num, b_num);
	COPY(n,a_num, b_num);
 }
 
 DISPF(fo,n,b_num);

 delete[] a_num;
 delete[] b_num;

t_end = clock();  // 計測終了

printf("Elapsed time : %7.3f秒\n",(double) (t_end - t_begin)/1000);

 fclose(fo);
 return 1;
}

最近のC++のコンパイラが64ビット整数を実装しているとは知っていたのだが、どうも使いこなせないできた。

すなわち、知る限りで、64ビット整数はlong long intで宣言するということになっていて、例えば
long long int *a_num; とポインタは宣言できるのだが、
a_num = new long long int[1000];のように実際に配列をアロケートする式が文法エラーになってしまう。

また、long long int a;と宣言して、a = 12399871717171;と大きい数を代入しようとするとコンパイル時に警告が出て、aには実際は想定外の値が代入されてしまう。

さらに、printf("%d\n",a);も想定外の値を表示する。

そこでいろいろウェブで調べていて、long long intと等価な宣言として、__int64があることを知った。これだと、__int64 *a_num;も、a_num = new __int64[1000];も問題ない。

a = 12399871717171;は、a = 12399871717171LL;と、64ビット整数であることを示すLLを末尾に付ければいいことが分かった。

printf("%d\n",a);は、printf("%I64d\n",a);と書けばいいことが分かった。これはprintf("%||d\n",a);と書いても等価なようなのだが、少なくともEmbacadero C++ Buidler XE4だと、正しく動いたり、そうでなかったりすることがあるので、専らprintf("%I64d\n",a);を使うことにした。

以下に、正しく動作したサンプルプログラムのソースコードを掲げる。


#include <stdio.h>

int main()     {

int i;
__int64 a,b,c,d;
__int64 *c_num;

c_num = new __int64[10];

a = 10010277776676688LL;
b = 5555552291LL;
c = a%b;

printf("%I64d\n",a);
printf("%I64d\n",c);

for ( i = 0; i < 10; i++ ) {
 c_num[i] = a++;
}
 
for ( i = 0; i < 10; i++ )  {
 printf("%I64d\n",c_num[i]);
}

delete[] c_num;
return 1;
}

最大の素数

user-pic
0

素数が無数にあるということは太古の昔から既知であるので、最大の素数なんて、ない。それで、ここでいう最大の素数というのは、現時点で素数であることが知られている最大の数という意味である。

それは、GIMPSによれば、277232917-1だということである。私は、Lucas-Lehmer判定法を自分のパソコン上で実装してみるというささやかな努力を通じて、それがいかに大変かを認識し、自分でも新たな大きい素数を探究してみようという努力を諦めた。

そこでせめて、277232917-1を計算してみようという、相当に妥協した考えに至った。しかし、ともう一つの自分がつぶやく。そんなの、単なる力業で、なんの工夫もいらないのではないか、と。

で、とりあえず去年作成した多倍長ライブラリを参照してまず考えたのは、int MUL(int n, int *a_num, int a)をナイーブに使用して、2の77232917乗を計算するものである。これの前準備として用意する多倍長計算のための整数配列の長さを決める必要がある。2の77232917乗は桁数としては、23249425桁であり、Radix = 100000とすると、必要な配列数は、これを5で割って、4649885なので、余裕をみて4650000個の配列とする。そして、2を1000回掛けるというナイーブな計算をさせてみると、処理時間は約48秒だった。すると、2を77232917回掛けると、見積の処理時間は、1029時間、すなわちなんと約43日もかかってしまう。

これはいくらなんでも、と思いしばし思考して、そうだ、2でなく2の14乗すなわち、16384ずつ掛ければよいのだと気付いた。これでもなんとか100000進法の枠組みに収まっている。しかも、2でなく2の14乗を1000回掛けても、処理時間はほとんど同じで、これにより処理時間を43日の1/14すなわち、3日程度に短縮できる。なお、欲を出して1000000進法にし、2の15乗を掛けようとすると、4バイト整数の32ビットの枠組みを壊してしまうので、無理である。

一方、77232917 = 5516636×14 + 13なので、2の14乗を5516636回掛け、次に2の13乗を掛け、最後に1を引くことで求めるメルセンヌ素数が得られる。それをプログラミングしたのが以下のとおりである。

といっても、まだ実行していないので、計算結果は得られていない。

#include <stdio.h>
#include <time.h>

int Radix = 100000;
int n = 4650000;
int *a_num;
int CLEAR(int n, int *a_num, int a);
int DISP(FILE *fo, int n, int *a_num);
int MUL(int n, int *a_num, int a);
int SUB(int n, int *a_num, int a);

int main()       {
int i;
clock_t t_begin, t_end;
FILE *fo;

if ((fo = fopen("Max_Prime.txt","wt")) == NULL )
 return -1;

t_begin = clock();  // 計測開始

a_num = new int[n];

// 277232917 - 1の計算
// 77232917 = 5516636×14 + 13

CLEAR(n,a_num,1);
for ( i = 1; i <= 5516636; i++ )
 MUL(n, a_num, 16384); // 2の14乗を5516636回掛ける
 
MUL(n, a_num, 8192); // 2の13乗を掛ける
 
SUB(n,a_num,1);   // 1を引く
 
DISP(fo, n, a_num);

t_end = clock();  // 計測終了

printf("Elapsed time : %7.3f秒\n",(double) (t_end - t_begin)/1000);

delete[] a_num;
return 1;
}

int CLEAR(int n, int *a_num, int a)   {
int i;
for ( i = 0; i < n; i++ )  {
    a_num[i] = 0;	
}
a_num[0] = a;
return 1;
}

int DISP(FILE *fo, int n, int *a_num)   {

int i;
int disp = 0;
int first = 1;

for ( i = n - 1; i >= 0; i-- )     {
 if ( a_num[i] != 0 )  disp = 1;
 if ( disp == 1 )     {
	if ( first == 1 )  {
		fprintf(fo,"%d",a_num[i]);
		first = 0;
    } else             {
		fprintf(fo,"%05d",a_num[i]);
	}
  }
}

if ( disp == 0 ) fprintf(fo,"0");

fprintf(fo,"\n");	

fclose(fo);

return 1;
}

int MUL(int n, int *a_num, int a)     {
int i,j;
	
  for ( i = 0; i < n; i++ )
   a_num[i] = (a * a_num[i]);  // a倍する
  // 桁揃え
  for ( j = 0; j < n - 1; j++ )  {
	a_num[j+1] += (a_num[j] / Radix); // 桁上がり
	a_num[j] = (a_num[j] % Radix);  // 10万進法	
  }	

return 1;

}

int SUB(int n, int *a_num, int a)      {
int i,j;

a_num[0] -= a;

 for (i = 0; i < n-1; i++ )  {
   if ( a_num[i] < 0 )        {
	a_num[i+1]--;
	a_num[i] += Radix;
   }
 }

  // 桁揃え
  for ( j = 0; j < n - 1; j++ )  {
	a_num[j+1] += (a_num[j] / Radix); // 桁上がり
	a_num[j] = (a_num[j] % Radix);  // 10万進法	
  }

return 1;
}

BIOS update

user-pic
0

連休中の5月5日だったと思うが、何かWindows Updateが来ていないかと確認したら、Windows 10バージョン1803の機能更新プログラムというのが来ていた。それで、軽い気持ちで導入を開始したら、なんとこれが重いこと、3時間もかかってしまったが、どうもこれは年に2回のWindows 10のメジャー・アップデートで、もしかしてSpring Updateというものかもしれない。というのは、これがめでたく終わると、いろいろい追加された新機能を紹介する画面になったからである。しかし私はずぼらなので、今までのメジャー・アップデートで、どんな機能が追加になったか確認したこともなく、今まで通り使い続けているだけである。

それと、5月9日は第2水曜日で、定例のWindows Updateの日だったが、Windows Updateフリークの私には珍しくうっかりWindows Updateを忘れていて、なんかパソコンが不安定だよね、大丈夫かな、と能天気に?不安がっていた。すると、勝手にWindows Updateが進んでいたようで、あるタイミングでWindows Updateが終わっているらしいので、パソコンを立ち上げなおしたら、事なきをえた。

いやあ、次々にいろいろなUpdateが来るもんだと怪訝になっていたところ、5月10日の夜、パソコンを立ち上げたまましばらく席を離れて戻ったところ、見慣れないスクリーンが表示されていた。なんだろう、なにかの不具合かと思ってよく見ると、なんとLenovoのBIOS Updateだった。へえ、いまどきはBIOS Updateもこうやってくるのかと思いつつOKをクリックしたところ、しばらく何かのプログラムをダウンロードしたあと、急にパソコンがリブートされ、立ち上がるとBIOS Updateの導入画面になった。

その導入画面の赤い帯の部分を眺めていてふと、もしこれが手の込んだウイルスなら、パソコンのファームウェアは完全に破壊されてお陀仏だよね、と変な不安がよぎった。だとしても、毒食らわばBIOSまでの諺?に従い、開き直って導入したら、無事立ち上がって安心した。しかし、立ち上げ時のLenovoの表示図面が更新され、赤みがかっていて無気味なのが気になる。BIOSなんて縁の下の力持ちなんだから、もっと地味な表示にすべきである。

ともかく、こうして私のパソコンライフは命尽きるまで続くことだろう。しかし、いくら私が長生きしても、AIはこういうシーンではあまり活躍しないと思われる。なぜなら、システムの低レベル(ハードウェア寄りという意味であって、簡単だとか、誰もが理解できるという意味ではない)のところは泥臭くて、人間が思考錯誤しながら作業するよりないと思われるからである。

月別 アーカイブ

このアーカイブについて

このページには、過去に書かれたブログ記事のうちコンピュータカテゴリに属しているものが含まれています。

次のカテゴリはスピリチュアルです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。