2020年3月29日日曜日

Firefox の遅いレンダリングが直るまで

How to fix Firefox slow rendering

正確な時期は不明ですが、この数ヶ月以内に Firefox をアップデートしてから Web 画面のレンダリングが遅くなりました。
具体的には Web 画面が表示されてから下にスクロールするとしばらく真っ白に表示されます。
下の画像のようなイメージです。

正常に表示されるまで数秒かかります。
原因は不明ですが、Windows の電源設定を変更したら改善したのでその方法をまとめました。


環境

  • Windows 10
  • Firefox 74.0 (これより前のバージョンから起きていました)


電源とスリープの設定を見直す

スタートボタンのコントロールパネルから
システム -> 電源とスリープ
を開き 電源の追加設定 をクリックします。

もし省電力になっていたらバランスに変更します。

この設定変更してから Firefox の画面をスクロールしても真っ白になることはなくなりました。
過去のブログ Windows 10 の冷却ファンの回転を減らす方法 で紹介した最大のプロセッサの状態を低く設定すると真っ白になることが多くなります。
PC の性能によってはバランスより高パフォーマンスを選択した方がいいかもしれません。
原因は不明なままなのでこの設定では直らない可能性もありますのでご了承ください。


関連ブログ

Windows 10 の冷却ファンの回転を減らす方法


2020年2月22日土曜日

Selenium IDE でヤフオク!のブラックリストにIDをまとめて登録する方法

How to register dubious ID at Yahoo Auction blacklist all at once

個人売買サイトのヤフオク!は、特定の ID のユーザーとの取引を拒否できるブラックリストの機能があります。
悪意を持った利用者の ID をブラックリストに登録しておくと嫌がらせやいたずらを防ぐことができます。
ブラックリストに登録されると、同一人物が使っていると推測される ID もブロックの対象になるのでサブアカウントも含めて取引の拒否ができます。
ヤフオク!要注意IDリストの Web サイト(以下「要注意IDリスト」と略します) に記載されている数十件の ID を登録しようと思ったのですが、ブラックリストに登録する画面は一度の操作で一つの ID しか登録できません。
一度の操作で全ての ID を登録したいので、Web ブラウザーの Firefox に自動テストツールの Selenium IDE を使って一括登録しました。
90件の登録に4分くらいで済みました。
一般的な手段ではありませんが、そのときのソースと使い方をまとめました。
blog.fujiu.jp Selenium IDE でヤフオク!のブラックリストにIDをまとめて登録する方法


環境

  • Windows 10
  • Firefox 71.0
  • Selenium IDE 3.16.1


実手順

  1. 要注意IDリスト (http://ochisatsu.com/caution/) のIDを抽出する (配列の書式にならべる)
  2. 抽出した ID をヤフオクのブラックリストに登録する
時間短縮のために1番目は JavaScriptで抽出し、2番目は Selenium IDE を使いました。


要注意IDリスト (http://ochisatsu.com/caution/) のIDを抽出する方法

これが最大の難関です。
ID を一つずつダブルクオーテーションで囲み、カンマでつなげます。
三人分 ID を登録したい場合は次の構文になります。

return ["一人目のID", "二人目のID", "三人目のID"]

要注意IDリストなどに記載されている ID を配列にならべて出力する JavaScript を作りました。
このブログを書いている時点で要注意IDリストの Web サイトを Firefox で開き、F12 キーを押して Console で下の JavaScript を実行すると表示されている ID を全て配列の構文でコンソールに出力できます。




抽出した ID をヤフオクのブラックリストに登録する方法

Firefox に Addon の Selenium IDE をインストールする

Firefox に Selenium IDE がインストールされていなければ下記の URL を Firefox で開いて 「Add to Firefox」をクリックすればインストールできます。
https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/

Firefox のメニューバーに Selenium IDE のアイコンが表示されればインストール成功です。


Selenium IDE のスクリプトをダウンロードし展開する

抽出した ID をヤフオクのブラックリストに登録するスクリプトを Gist に載せました。
https://gist.github.com/mtk-f/4e8c31306171460b9e61021933b026cb

画面右上にある「Download ZIP」をクリックして ZIP ファイルをダウンロードし、展開しておきます。


Selenium IDE を起動してスクリプトファイルを開く

Selenium IDE のアイコンをクリックして Selenium IDE を起動させます。
Open an existing project をクリックします。
Gist からダウンロードして展開したファイルを選択します。

スクリプトを編集する画面が表示されるので、コマンド1行目の Target に要注意IDリストから抽出した return 文をコピー・貼り付けて Run Current test のボタンをクリックします。

これで ID がブラックリストに次々に追加されていきます。

関連ブログ

Selenium IDE でWebブラウザーを自動操作する方法
UWSC でアプリケーションを自動操作する方法
JavaScriptをWebコンテンツを見ながらデバッグする [Intenet Explorer] [firefox]


2020年1月25日土曜日

Androidアプリ Shuffle V! 公開終了のお知らせ

誠に勝手ながら2012年から公開していたAndroidアプリ Shuffle V! が、2020年1月で公開を終了します。
今までご協力いただいた皆様やダウンロードしていただいた皆様には厚くお礼申し上げます。

2019年12月29日日曜日

QC検定2級 攻略法

The Quality Management and Quality Control Examination strategy

私事で恐縮ですが、当ブログの著者はQC検定2級に合格しました。
実際に試験を受けてみて効果があったと思われる攻略方法をまとめました。


「1回で合格」は1冊で合格できない

試験直前、会場に集まった受験者の多くが成美堂の「1回で合格! QC 検定2級テキスト & 問題集」を読んでました。
当ブログの著者もこの参考書を買ってお世話になりました。
blog.fujiu.jp QC検定2級 攻略法
この参考書はQC検定2級の参考書として必須の内容だと思います。
しかし合格に必要な検定の説明が不足しています。
「1回で合格」というタイトルは魅力ですが、これ1冊で合格できる内容ではありません。
特に「1回で合格」に載っていないが出題頻度が高いと思われる検定について計算式を下記にまとめました。
ここに載ってない計算式が必要になることもあるので他の参考書や過去問にも目を通すことをおすすめします。

二つの母集団の差の検定
母集団の分散が既知の場合
検定統計量

両側検定の棄却域

ただし

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)

ただし


母集団の分散が未知で標準偏差が同じ場合
検定統計量

ただし

両側検定の棄却域

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)


母集団の分散が未知で標準偏差が異なる場合
検定統計量

両側検定の棄却域

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)



データに対応のあるt検定の場合
検定統計量

ただし

両側検定の棄却域

片側検定の棄却域 (大きくなったか)

片側検定の棄却域 (小さくなったか)



相関係数のt検定

棄却域



d2を使った標準偏差の推定値



二元配置実験の伊奈の式


穴埋め問題は穴の前後に注目する

実践編の穴埋め問題は、問題文を読む前に選択肢に目を通します。
その後、穴の前後の文章から最適と思われる選択肢を選びます。
何を最適と判断するかは国語力と暗記した内容次第なので、実践編も参考書の暗記が基本です。


まとめ

QC検定2級は90分試験時間で100前後の問題数が出題されます。
100問もあると解答用紙のマークシートを塗りつぶす時間も無視できません。
試験本番で解答を導出しようとすると時間が足りないので、出題頻度の高い問題はすぐに解答できるようにしておく必要があります。
特に手法編の計算問題は計算式を使うのかを判断する練習と、必要な計算式を暗記しておくことをおすすめします。


関連ブログ

乙種危険物取扱者試験 攻略法



2019年11月30日土曜日

手入力した HTML を即座にプレビュー表示する HTML の作り方

HTML Previewer in web browser

当ブログの著者は HTML を手入力する機会が多いのですが、入力した内容を確認するために
  • HTML テキストエディターに入力する
  • テキストファイルを保存する
  • Web ブラウザーでテキストファイルを開いて結果を確認する (2回目以降はファイルをリロードする)
という手順を踏んでいました。
PC にプリインストールされているメモ帳と Web ブラウザーさえあればすぐに Web ページを作ることができるのですが、 メモ帳と Web ブラウザーの往復が面倒でした。
そこで、Web ブラウザーだけで HTML を即座にプレビュー表示する HTML を作って上記の手順を不要にしました。
文字の置換機能付きです。
必要としている方がいらっしゃったらご自由にお使いください。
blog.fujiu.jp 手入力した HTML を即座にプレビュー表示する HTML


環境

  • Windows 10
  • Firefox 70 と Internet Explorer 11 で確認済み


ソース



使い方

画面上部のテキストエリアに HTML を入力すると画面下部にプレビューされます。
Firefox や Internet Explorer の F12 キー開発ツールと併用するとデバッグがはかどります。
「保存する」ボタンで入力した内容をファイルに保存できます。
Web ブラウザーを終了したりリロードすると入力した内容が消えてしまう点は要注意です。


関連ブログ

JavaScriptをWebコンテンツを見ながらデバッグする [Intenet Explorer] [firefox]
JavaScript でグラフを作る方法 (Chart.js)
HTMLソースのミスやエラーを素早くチェックする


2019年11月3日日曜日

Visual Studio で WebException が起きた時の直し方

How to fix a WebException error

過去に Visual Studio で作った ASP.NET 用の Web アプリを久しぶりに起動したら WebException や SocketException の例外が発生して起動できなくなってしまいました。
原因と解決の手順をまとめました。


環境

  • Windows 10
  • Visual Studio 2017


症状

何度実行しても同じ場所でIoException と WebException と SocketException の3種類の例外が同時に発生します。
System.Net.WebException: '接続が切断されました: 送信時に、予期しないエラーが発生しました。。'
SocketException: 既存の接続はリモート ホストに強制的に切断されました。
blog.fujiu.jp Visual Studio で WebException が起きた時の直し方

内部例外 1:
IOException: 転送接続からデータを読み取れません: 既存の接続はリモート ホストに強制的に切断されました。。
内部例外 2:
SocketException: 既存の接続はリモート ホストに強制的に切断されました。


TLS 1.2 を有効にしたら解決した

ネット上の多くの Web サーバーがセキュアな通信のために TLS 1.0 や TLS 1.1 をサポートしていましたが、現在は TLS 1.2 に移行し TLS 1.0 や TLS 1.1 のサポートをやめる傾向があります。
今回の WebException が起きたアプリはネット上の Web サーバーが提供する Twitter API にアクセスする際に発生したのですが、まさに Twitter API が TLS 1.1 のサポートをやめた直後でした。
Visual Studio で開発したアプリは初期状態では Web サーバーへの接続に TLS 1.2 が無効にされていることが原因でした。
そこでこのアプリを次の方法で TLS 1.2 に対応したところ解決しました。

プロジェクトのターゲットフレームワークを.NET Framework 4.5 以降に設定しておきます。
次のコードを追加します。
エラーが起きるコードの前に実行する必要があります。



試してみたけど効果がなかったこと

エラーメッセージからリモートの Web サーバーに接続できないことが原因と推測し、以下のことを確かめましたが効果ありませんでした。
  • PC や Visual Studio を再起動する
  • Web ブラウザーなどでインターネットの Web サーバーに接続できることを確かめる
  • ファイアウォールやセキュリティソフトを停止する
  • IIS Express を削除して再インストールする

Microsoft Network Monitor で Visual Studio の接続の様子を見てみましたが、そもそもサーバーに何かを送受信している様子はありませんでした。


イベントビューアーの記録を調べた結果

TLS 1.2 に対応する前にイベントビューアーの記録を確かめてみました。
スタートボタンを右クリックしてイベントビューアーをクリックし、
Windows ログ -> Applictaion
を開くと例外が発生した時刻にイベントが記録されていました。
圧縮されたコンテンツ %USERPROFILE%\AppData\Local\Temp\iisexpress\IIS Temporary Compressed Files\Clr4IntegratedAppPool のキャッシュ用に指定されたディレクトリは無効です。静的な圧縮は現在無効です。

エクスプローラーで確かめたところ、このディレクトリは存在しませんでした。
このイベントのおかげで TLS が原因であることに気がつくまで時間を要しました。



参考にしたコンテンツ

.NET Framework で TLS1.1 および 1.2 を有効化する方法 -まとめ- – Japan IE Support Team Blog
https://blogs.technet.microsoft.com/jpieblog/2018/10/11/net-framework-tls11-12-2/


関連ブログ

Visual Studio 2017 を全部ダウンロードしてからインストールする方法
古い Visual Studio をまとめてアンインストールする方法


2019年10月19日土曜日

[Firefox] 表示中のWebサイトを画像として保存する方法

How to save Web pages as pictures

Web ブラウザーに表示されている画面を画像として保存する方法を調べたのでその方法をまとめました。

環境

  • Windows 10
  • Firefox 69


アドオン・Fireshot をインストールする方法

Firefox 用アドオンの Fireshot は Firefox で開いている画面を画像として保存出来ます。
画面を画像に保存出来るアドオンはいくつかありましたが、Fireshot はスクロールしないと表示できない範囲も含めて全体を画像にできるのでこれをインストールしました。

下記 URL の Firefox のアドオンのページから Firefox をインストールします。
https://addons.mozilla.org/en-US/firefox/addon/fireshot/

Add to Fierfox をクリックします。
blog.fujiu.jp [Firefox] 表示中のWebサイトを画像として保存する方法

追加をクリックします。

OK をクリックします。

Firefox 右上当たりのツールバーに Fireshot のアイコンが追加されればインストール完了です。


画像に保存する方法

今見ている画面を画像に保存するには Fireshot のアイコンをクリックし、Capture entrie page をクリックします。

Save Screenshot という画面が表示されるので、右上の Save as Image をクリックすると保存先を指定して画像に保存できます。
PDF ファイルとしても保存できます。


関連ブログ

Selenium IDE でWebブラウザーを自動操作する方法
[Fiferox] Firefox のURLの左に隙間が出来たときの直し方
JavaScriptをWebコンテンツを見ながらデバッグする [Intenet Explorer] [firefox]
digiKam パソコン内の画像ファイルを簡単に探せるフリーソフト