カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2017年10月16日(月)

ホームページ、新しいページの英訳中

現在、ホームページの新しいページの英訳作業をしてます。
たまにしかやらない作業なので、頭が疲れますね。

で何となく subscription (購読) の動詞は
subscript かと思って使っていたのですが、
subscribe だったのでw、ファイル名を直したりもしました。

subscript だと、となりの文字 (添字)
みたいな感じになっちゃうのね。

まぁ、そりゃそうか。

ブログ作者のホームページ
ご意見・ご要望連絡窓口


2017年10月13日(金)

ローカルブラウザ、Google AdSense のコードを貼り付けたページを表示するとプチフリーズする場合がある

Google AdSense のコードを貼り付けたページを
ローカルブラウザ で表示するとプチフリーズする場合があります。

数秒から数十秒操作不能に陥ります。
時間が経つと操作可能になりますが、
結構な頻度で発生するので、かなり厄介です。

ローカルブラウザ側での対処は難しかったのですが
html を修正すると、回避することができます。

直し方は簡単で // で始まる URL を使用せず、
必ず https:// とか http:// を使うようにすれば OK です。

Google AdSense の場合は、https でよいでしょう。
↓ のページにも書いたので参考にしてみてください。

Q.Google Adsense を張り付けたページを表示するとプチフリーズする?

ローカルブラウザのダウンロードはこちら です。

・・・

ずっと、気になっていたのですが、やっと原因がわかりました。
今回、原因を調べるためにやったことを書いておきます。

まず、プチフリーズが安定して発生する操作を確定します。
操作はなるべく単純なほどいいです。

今回は、左のファイルツリーのファイルを
順にクリックすることで発生させる手順を採用しました。

次に、プチフリーズが発生したら、ブレークして
プチフリーズの発生個所を見てみます。

今回は、ほぼ 100 %
win32u.dll!_NtGdiDdDDIWaitForVerticalBlankEvent@4
ってな場所でした。

でブレーク時の別のスレッドの状態を見ると、
自分の書いたコードは、同時に走っていないっぽいので
Microsoft 側のコードに問題がありそうです。

そのことを確定させるために、最低限のコードで
問題を発生させてみることにしました。

メインフレームにウェブブラウザーコントロールを
貼り付けて、タイマーで数秒置きに
問題となっているファイルを
自動的に表示されるプログラムです。

で、めでたく?同じ現象が確認できたので、
ウェブブラウザーコントロールの使い方が
おかしいわけでもないことがわかりました。

実際、IE 11 に問題の発生するローカルファイルを
ドロップしてもフリーズするので、間違いないでしょう。

次に、html によっては問題が起きないかもしれないので
html を修正してみました。

まず、body に 1 文字しかないような html で
テストしてみましたが、現象は起きませんでした。

次は、問題の起こったファイルのうち
一番怪しげな、script タグを全て消去して
試したところ、やはり現象は起きませんでした。

これで、script タグが原因で確定したので、
あとは、1 つずつ除去して問題のタグを確定させました。

で問題のタグには、src 属性しかなかったので
空文字列にしたり、http: をつけたりすることで
現象が解消されることが確認できました。

めでたし、めでたし。

ローカルブラウザ
ローカルブラウザのダウンロード
ローカルブラウザの更新履歴
ご意見・ご要望連絡窓口


2017年10月10日(火)

PayPal 本人確認手続きの方法、2017年10月

2010 年に作成した PayPal のアカウント。

代金の受け取りに本人確認が必要になってから、
面倒だったので放置してました。

そろそろ利用したいなと思って本人確認しようとするも、
どうやればいいのか、さっぱりわかりませんでした。

本人確認が必要になるまでは代金を海外から
受け取ったりしてたので、アカウントの種類は、
すでに「プレミアム」です。

今の流れだと、いきなりプレミアムで申し込むことはできず、
パーソナルで申し込んだ後プレミアムにアップグレードする
ときに、本人確認の画面が表示されるみたいですね。

ところが、私はすでにプレミアム。

ビジネスにアップグレードすれば、
本人確認画面に行けそうですが、
プレミアムのまま本人確認する方法を模索することにしました。

とはいえ、色々とボタンをクリックするも
よくわからず、とりあえず名前を変更することに。

というのも、本人確認書類と
アカウントの表記が同じでないと
審査に通らないみたいだからです。

名前の変更方法

名前の変更画面には、普通に辿りつけます。

右上の歯車ボタンを押すと
左上にアカウント設定が表示されるので、
ご利用開始時期の右にある「更新」リンクをクリックです。

私の場合は、アルファベットから漢字に変更なので、
どんどん選択していくと、書類の提出を求められました。

これで、本人確認できるかもと思い、
用意してあった本人確認書類を提出してみることに。

自分は、ココ に従い本人確認書類として、
健康保険証と水道料金の領収書を用意していたのですが、
名前変更に必要な書類は、写真付きの証明書と追加情報とあり、
何故か、条件が厳しくなってます。

とはいえ、写真付きの証明書は無く、
マイナンバーカードを発行するのにも時間がかかるので、
健康保険証と水道料金の領収書
を提出してみることにしました。

すると、次の日に返信があり、
「登録名、アルファベットのやつね
と書類の氏名 (漢字) は同じですが、
本人確認をご希望ですか?」

みたいな内容のメールが来たので、
「本人確認を希望します。アルファベット
氏名のまま本人確認の処理が進むなら
そのまま、漢字にする必要があるなら
漢字に変更してください。」

な感じで送ると、やはり漢字にする必要があったのか
漢字に変更された上、本人確認を行う方法をご教授いただきました。

ちなみに、アルファベットの名前と漢字の名前は「同じ」
と判断されたみたいで書類はいらないっぽいですね。
(漢字の読みが独特の場合はだめかも・・・)

本人確認の方法

で、本人確認の表示方法ですが、
1. 上側のメニューの「支払いと請求」をクリック
2. 次に「請求書を作成」をクリック
です。すると、本人確認されていない場合には
本人確認画面に移行できます。こりゃわからん。

こちらでも書類のアップロードが必要でしたが、
審査は無事に終わった模様です。

うーん。自分は請求書の機能は使わず、
ペイパルのボタンしか使ってないからわかりにくい。

販売用のボタン作成とかからでも
遷移できるようにするか、
素直に本人確認画面に移行するリンクが欲しいなぁ。

ブログ著者のホームページはこちら です。


2017年09月29日(金)

WinInet で Content-Length が取得できない

WinInet で Content-Length が取得できない場合
について、もう少し調べてみました。

まずは、テスト用の php を書いてテストしてみました。
単純な文字列を echo するだけのやつです。

6 文字くらい echo する php に接続した場合、
ローカルのサーバーでもレンタルサーバーでも
Content-Length が取得できました。

ところが 1024 文字エコーする php だと、
レンタルサーバーでのみ
Content-Length が取得できなくなりました。

さらに、長さを 1024 * 1024 * 1024 にすると
ローカルのサーバーでもレンタルサーバーでも
Content-Length が取得できなくなりました。

Content-Length は、HttpQueryInfo
HTTP_QUERY_CONTENT_LENGTH を指定して取得しているのですが、 HTTP_QUERY_RAW_HEADERS を指定して取得しても同じ結果でした。

HTTP_QUERY_RAW_HEADERS の説明 には、
Receives all the headers returned by the server
って書いてあるので、クライアント (WinInet) で
ヘッダー情報を生成しているわけではなさそうです。

ちなみにローカルサーバーのバージョンは、
Apache/2.4.26 (Win32)、PHP 7.1.7 です。

まぁ、よくわかりませんが、php の出力サイズが
短い場合は、どこかで Content-Length が生成され
長い場合は、生成されないみたいですね。

とりあえず、Content-Length を必ず出力したい場合は、
php の header 関数 で明示的に出力するのがよさそうです。

header('Content-Length: ' . $len);

↑ こんな感じね。

ブログ著者のホームページはこちら です。


2017年09月28日(木)

HTTP の Content-Length に関係する設定は?

HttpQueryInfo に HTTP_QUERY_CONTENT_LENGTH
を指定すると、Content-Length が取得できるのですが、
接続先をローカルサーバーから、レンタルサーバーに
変えたら取得できなくなった。

接続先は、同じ php なので、
ウェブサーバーの設定の違いのせいかな?

ブログ著者のホームページはこちら です。


2017年09月21日(木)

角を丸めるノ 修正中

今日は、角を丸めるノ を Visual Studio 2015
でコンパイルできるように修正していました。

だいたい動くようになりましたが、コードが
気に入らないので、もうしばらく修正します。

・・・

何がいちばん気になるかというと、
メイン画面のソースコードが
長すぎるという点ですね。

通常、メイン画面はたくさんの機能を持つので、
普通に実装すると、そうなっちゃいますけど、
例えば、コマンドごとに専用のクラスを用意すれば
コードをうまく分散できます。

コマンドの機能がそれぞれ独立していて、
他のコマンドのコードに依存しない場合は、
別のクラスに実装を分けた方が、
読みやすくなることが多いですね。

ブログ著者のホームページはこちら です。


2017年09月14日(木)

PHP user_error の処理を set_error_handler で置き替えてみた

phpseclib という PHP ライブラリーが
user_error という関数を呼んだ結果、
詳しいエラー情報が出力されちゃうのを
回避するために、set_error_handler を使って
標準のエラー処理を回避しました。

user_error は、trigger_error の別名だそうです。

set_error_handler の説明はかなりあいまいなので、
わかったことを書いときます。

まず、 trigger_error() にある「E_USER 関連の定数」というのは、
定義済み定数 のうち、E_USER から始まるものということのようです。

それ以外のエラーでは、set_error_handler で設定した
カスタムエラーハンドラはコールされないといいのですが
set_error_handler によると、E_STRICT もくるっぽいですね。

-- 2017/09/15 追記 --
E_NOTICE も来ました。set_error_handler
「以下のエラータイプは、ユーザー定義の関数では扱えません」
にあるタイプが来ないということのようですね。
--

きちんと、調べたわけではないのでわかりませんが、
少なくとも、構文エラーでは呼ばれませんでした。

set_error_handler の説明にある
「必要に応じて die() を コールする責任」は
E_USER_ERROR では die すべきという意味っぽいですね。

というのも、 定義済み定数 の E_USER_ERROR の説明には
「E_ERROR に似ている」とあり、E_ERROR の説明には
「スクリプトの実行は中断されます」とあるからです。

ちなみに、phpseclib の私が利用している部分のコードでは、
user_error を標準の引数、すなわち、E_USER_NOTICE で呼びだした後
エラーを返すみたいなコードになっていたので、
特に die する必要は無さそうでした。

-- 2017/09/15 追記 --
基本的には、定数名に ERROR がついている場合は、
die すべきということっぽいですね。
E_RECOVERABLE_ERROR は微妙ですが、
標準のハンドラーは die するみたいなことが書いてあります。
あと、E_NOTICE は配列の存在しない添字へのアクセスで
発生したので、die した方が安全かもしれません。
--

・・・

ちなみにテスト環境の php は、7.1.7 です。

ブログ著者のホームページはこちら です。


2017年09月12日(火)

PHP user_error どしよっかな?

今日も、新しいシステムのテスト、デバッグ中です。

だいたい、正常な入力に対してのテストは
終わって、単体テストをコツコツ書いたり
異常系のテストを開始したりしました。

で、今は、phpseclib という PHP ライブラリーが
user_error という関数を呼んだ結果、
詳しいエラー情報が出力されちゃうので
どうしよっかなーと考え中です。

認証系のプログラムなので、セキュリティの観点から、
あんまり詳細なエラー内容をユーザーに
見せるべきではないからです。

user_error は、trigger_error の別名のようです。
set_error_handler ってので置き替えるのがいいっぽいかな。

マニュアルには、必要に応じて die() を呼ぶ責任がありますって
あるけど、いつ呼ぶべきか、何も書いてないな〜。

あと「E_USER 関連の定数」って何やねん。
リストはどこにあんねん。

・・・

定義済み定数 の E_USER 接頭辞のやつってことかな。
うーん、色々、よくわからん。説明が足りなすぎる。

ブログ著者のホームページはこちら です。


2017年09月05日(火)

ホームページの文字コードを UTF-8 に変更

ホームページの文字コードを
Shift_JIS から、UTF-8 に変更しました。
改行コードも CR+LF から LF に変更しました。

S.S.Software ホームページ

文字化けする場合は、リロードしてみてください。

ただし、ウェブブラウザーが Chrome の場合は、
リロードだと、javascript とかが何故か更新されないので、
スーパーリロード (Ctrl + Shift + R) が必要です。たぶん。

スーパーリロードとかしても、
文字化けするページを発見した場合は、
連絡いただけるとありがたいです。

連絡先はこちら です。

・・・

連絡先ページは、テスト済みなので、
正しく動くはず・・・。

ブログ著者のホームページはこちら です。


2017年09月04日(月)

ホームページの文字コードを UTF-8 にする作業中

今日は、主にホームページの文字コードを
Shift_JIS から、UTF-8 にする作業をしとりました。

だいたい終わってたので、最後に
公開予定の HTML や css (スタイルシート) などの
文字コードが UTF-8 になっていることを
確認したかったのですが、まともに
動くソフトが見つかんなかったので
簡単なプログラムを書いたりしました。

必要なファイルをピックアップして、
nkf --guess すればよいので、まぁ、
sed とかを使ってやるのが普通かな。

自分の場合、自作のライブラリーが
揃ってきてるので、c++ で書きましたが、
あんまりおすすめではないですね。

ちなみに、
nkf --guess ファイルパス
では、文字コードと改行コードが、
nkf -g ファイルパス
では、文字コードが出力されるようです。

・・・

自分は、結局使いませんでしたが、
dir /b /s *.html *.css
とかやると必要なファイルパスのリストが取得できますよん。

ブログ著者のホームページはこちら です。


<< | 4/16PAGES | >>