gaggitのブログ

コーディング、ガジェット、TIPS関連、FX

突然、エクスプローラーとMicrosoft Edgeがおかしくなった

突然、エクスプローラーとMicrosoft Edgeがおかしくなりました。症状としては、エクスプローラーは起動しますが、ファイルを選択して、右メニューの表示がおかしくなります。また、Microsoft Edgeも同様に起動はしますが、数秒後に終了します。

 

イベントログもアプリケーションログにID:1000として、ログが出力されています。

詳細にログの調査は行っていませんが、対処方法として、再起動を3回行ったところ、エクスプローラーとMicrosoft Edgeとも無事に修復しました。

 

なんだか、気持ちが悪いです。

 

 

Perl File::ReadBackwards を使用してみた

 PerlでFile::ReadBackwardsモジュールを使用してみました。このモジュールは、ファイルを逆から読み込むので、ファイルの最後付近にある文字列を抽出したい場合に役立ちます。

使用しているPerlWindows版なので、このモジュールのレコードセパレータは\r\nなりますが、読み込むファイルはWindows版のcurlの-oオプションの出力ファイルなのに、なぜかレコードセパレータは\nでした。

幸い、このモジュールには、レコードセパレータを変更できるようにnewメソッドの第2引数で指定できます。

 

修正前:

my $bw = File::ReadBackwards->new($html_file);

 

修正後:

my $bw = File::ReadBackwards->new($html_file,"\n");

 

\nは、ダブルクォーテーションで囲ってください。シングルクォーテーションでは、\とnの文字列を改行として認識して、意図した動作をしません。

Perl readline() on closed filehandle

 普段は、あるディレクトリの下にファイルを作成していますが、今回、少しでも高速にしようと、RAMディスクのEドライブ直下に書き込みを行っていました。一度目は、ファイルのオープンからクローズまで正常に終了するのですが、再度、実行すると、再オープンに失敗し、タイトルのエラーとなりました。

修正前:

open(FD, "< E:text.log");

 

修正後:

open(FD, "< E:\\text.log");

 

PerlWindows版なので、ディレクトリの区切りには\を2度、重ねることは知っていましたが、ドライブとファイル名の間にも必要でした。

 

p.s.

また、しょうもないことで時間を食ってしまいました。orz

 

 

 

 

Perl Undefined subroutineが出たら、やってみたいこと

Perlのモジュールの中のサブルーチンを使用していますが、Perlを実行すると、「Undefined subroutine &main::サブルーチン名」と表示され、エラーとなる場合があります。

その時には、以下のようにソースを修正するとうまくいきます。

修正前:

use モジュール名;

修正後:

use モジュール名 qw(サブルーチン名);

または、

use モジュール名 qw(:ALL);

 

PerlでFusionTablesへのquery接続に成功

Google API ExplorerのRequestを参照して、query後にkey(api_key)を使用して、FusionTablesへweb接続すると、「401 Login Required」(Webでのリプライ)、「401 Unauthorized」(Perlでのリプライ)で失敗します。

webで接続する場合には、key(api_key)ではなくaccess_tokenを使用してください。

 

失敗

ttps://www.googleapis.com/fusiontables/v2/query?sql=select+*+from+FusiontableのId&key={YOUR_API_KEY}

 

成功

ttps://www.googleapis.com/fusiontables/v2/query?sql=select+*+from+FusiontableのId&access_token={access_token}

 

 

参照サイト:

Google APIs Explorer

Using OAuth 2.0 for Authorization to Fusion Tables in Web Applications  |  Fusion Tables REST API  |  Google Developers

 

 

Excelで図形を使用する時には

Excelで図形を使用する時には、「図形」と「図形の選択」を頻繁にクリックすることになるのですが、Excel画面の広さによっては、3,4クリックする羽目になり、大変非効率です。

例えば、ディスプレイ画面の半分の広さでExcel画面を表示させた状態で、「図形の選択」をクリックするには、「ホーム」「編集」「検索と選択」「図形の選択」と4クリック必要になります。

同様に、図形を選択する時にも「挿入」「図」「図形」「(図形)」と4クリックです。

そんな時には、「図形の選択」と「図形」コマンドを「クイック アクセス ツール バー」に設定すると、1クリックで済みます。

 

設定方法

1.「メニュー」で右クリックして、1行目の「クイック アクセス ツール バーのユーザー設定」をクリックします。

2.Excelオプション画面で、「図形」コマンドを選択し、「追加」をクリックします。

3.「コマンドの選択」で、「すべてのコマンド」を選択する。

4.下のリストから「図形の選択」コマンドを選択し、「追加」をクリックします。

5.「OK」ボタンをクリックします。

f:id:gaggit:20170918225415p:plain

設定後のExcel画面

f:id:gaggit:20170918230546p:plain

 

 

 

Perl Net::Google::DataAPI::Auth::OAuth2のインストール

前回、XML::LibXMLモジュールのインストールに成功したので、Net::Google::DataAPI::Auth::OAuth2のインストールを行ってみました。

cpanm Net::Google::DataAPI::Auth::OAuth2であっけなく、インストールできました。(一応、perldoc Net::Google::DataAPI::Auth::OAuth2でインストール確認)

Net::Google::DataAPI::Auth::OAuth2のSYNOPSISを再度、読み返すと、プロンプトから入力をたくしているので、どうやら認証コード(code)を自動で取得し、アクセストークンにできるわけではないようです。

 

 

参照サイト:

gaggit.hatenablog.com

Net::Google::DataAPI::Auth::OAuth2 - search.cpan.org