2018/10/19

Google Webフォントの使い方

Google の無料Webフォントを使ったので、使い方をメモ
  1. https://fonts.google.com/ を開く
  2. 利用したいフォントを + で追加し、インポート部とスタイルシート部をそれぞれコピペ
※フォントは閲覧時に自動でインポート(ダウンロード)される

ゆうパックが受け取り場所の事前指定を2019年3月18日から開始・時間帯変更は?

クロネコメンバーズには以前からある、荷物の受け取り前や不在通知後に受け取り場所を指定できるサービスが「ゆうパック」でも 2019年3月18日 サービス開始される
https://www.post.japanpost.jp/notification/pressrelease/2018/00_honsha/1018_01_01.pdf

  • 利用者は「ゆうびんID」の登録(無料)が必須
  • 指定場所には、宅配ボックスや郵便受け以外に、メーターボックス、物置、車庫が指定可能
  • 指定できるのは場所だけ、再配達時間帯については資料に記載されていない
  • 発送側に同意が必要

時間指定の変更が記載されていないのが気になる所ですが、配達の人は少しだけ楽になるかも

2018/10/18

Microsoft Edge で「このページを表示できません」

Microsoft Edge を久々に立ち上げたら、どのページも「このページを表示できません」が表示される
IPv6が無効になってるとそーなるらしい

コントロール パネル → ネットワークとインターネット → ネットワーク接続 → 対象のアダプタのプロパティから IPv6を有効にする

2018/10/15

Samsungブックベネフィット(Kindle for Samsung) 終了

Galaxy S7edge についてきた Kindle for Samsung から毎月1冊(いくつかの中から選択)、無料で書籍が取得できる「Samsungブックベネフィット」終了のお知らせが届いた
元々の名称は
「Samsungブックベネフィット」

メールは Amazonからで件名は
 「【重要】サムソン無料本サービス終了のお知らせ」
※メール内のリンクはAmazonのストアに飛ぶだけ

Kindle for Samsung アプリには
「Smsung Bookディール 11月1日に終了」(Samsung Book Deals)


と表現がメチャクチャ

日付があったのは最後のだけなので 2018年11月1日はサービス有りなのだろうか...
かなり、Amazon Prime reading とかぶってたので、個人的には影響ないけど

2018/10/12

Android 8(Oreo) の Gmail + Tasker でラベル毎の鳴り分け

Android 8(Oreo) の Gmail は、ラベルごとの鳴り分けができないので、TaskerのNitification イベントと組み合わせて、鳴り分け

  1. Gmail側で通知音をサイレントにしておく
  2. Notification  Event で Gmailアプリと、Subtext へラベル名のワイルドカードを入れる
  3. 音を鳴らすタスクを作成して、上記のイベントに紐づけするのだが、着信させてみると通知イベントがが連続して入ってきたりするので %GmailSound という変数にテキトーな値を入れて、3秒以内(下記では)のイベントを無視
鳴り分けたいラベル毎に 2と3の手順で作成
バイブも変化をつけたければ、タスクへ入れておく

2018/10/11

Evernote にテンプレート機能ができたけど、日付などの変動値が入らないのでスクリプトを作成

Evernote にテンプレート機能ができたけど、これって単なるノートのコピーであって、日付とか変動するものを入れられないんですね(いまのところ)

ということで、下記を自動化する vbスクリプトを作成してみた
エクスポートしておいたノートを読み込む→文字列を置換→別名で保存(temp)→enscriptでノートを追加

使うまでの準備
  1. 下記のスクリプトをどこかへ保存(ここでは EnImportTemplate.vbs として説明)
  2. テンプレートとなるノートを作成し、enex形式でエクスポート
  3. エクスポートした enexファイルをテキストエディタで開き、置換したい文字列を入力、保存
    ※置換文字列は、スクリプトの最後の方に各自定義する
  4. vbs を実行 ←次回からココだけ
    例>EnImportTemplate.vbs enexファイル 追加先ノートブック名(オプション)
エクスポートした enexファイルの作成日、更新日を利用したくない時は enex内のタグを削除しておく
作成日: <created>~</created>
更新日: <updated>~</updated>


Option Explicit
 
if Wscript.Arguments.Count > 0 then
 dim xmlData, enNoteBookNameOpt
 dim objStream

 ' 作成先ノートブック(第2引数)
 if Wscript.Arguments.Count >= 2 then
  enNoteBookNameOpt = " /n" & Wscript.Arguments(1)
 end if

 ' 入出力ファイル名
 dim srcFilename, dstFilename
 srcFilename = Wscript.Arguments(0)
 dstFilename = createTempFilename()

 ' 元endxデータ読み込み
 set objStream = CreateObject("ADODB.Stream")
 objStream.Charset = "UTF-8"
 objStream.Open
  objStream.LoadFromFile srcFilename
  xmlData = objStream.ReadText(-1)
 objStream.Close
 set objStream = Nothing

 ' 文字列置換
 xmlData = replaceStr(xmlData)

 ' enexデータ書き込み
 set objStream = CreateObject("ADODB.Stream")
 objStream.Charset = "UTF-8"
 objStream.Open
  objStream.WriteText xmlData
  objStream.SaveToFile dstFilename, 2
 objStream.Close
 set objStream = Nothing

 ' enscript 実行
 dim Commandline
 Commandline = "enscript importNotes /s " & dstFilename & enNoteBookNameOpt
 dim objShell
 set objShell = CreateObject("WScript.Shell")
  objShell.Run Commandline, 0, true

 ' 一時ファイル削除
 deleteFile dstFilename
end if

' -------------------------

function createTempFilename()
 Dim objFSO
 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
     createTempFilename = objFSO.GetSpecialFolder(2) & "\" & objFSO.GetTempName()
 Set objFSO = Nothing
end function

sub deleteFile(filename)
 Dim objFSO
 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
  objFSO.DeleteFile filename, True
 Set objFSO = Nothing
end sub

' 置換
function replaceStr(xmlData)
 ' 置換したい文字をココに記載
 xmlData = Replace(xmlData, "%DATETIME%", FormatDateTime(Now, 1))
 xmlData = Replace(xmlData, "%YEAR%", Year(Now))
 xmlData = Replace(xmlData, "%MONTH%", Month(Now))
 xmlData = Replace(xmlData, "%MONTH0%", Right("0" & Month(Now), 2)) ' ゼロ埋め
 xmlData = Replace(xmlData, "%DAY%", Day(Now))
 xmlData = Replace(xmlData, "%DAY0%", Right("0" & Day(Now), 2)) ' ゼロ埋め
 xmlData = Replace(xmlData, "%HOUR%", Hour(Now))
 xmlData = Replace(xmlData, "%HOUR0%", Right("0" & Hour(Now), 2)) ' ゼロ埋め
 xmlData = Replace(xmlData, "%MINUTE%", Minute(Now))
 xmlData = Replace(xmlData, "%MINUTE0%", Right("0" & Minute(Now), 2)) ' ゼロ埋め

 replaceStr = xmlData
end function

2018/10/09

Google+ 2019年8月で終了(個人向け)

遂にというか、まだやってたのか~な、Google+(プラス)の個人向けサービスが終了のニュース
情報流出がきっかけだけど Googleは、やめたかったハズだ
やっぱ、後追いのサービスは Googleではなく、Microsoftの仕事なんだろう

2018/10/04

Google Assistant (Home) + ifttt で $ を認識しづらい

ifttt の Webhookを用いて、$文字を自身のメモに追加しようとしたが、単語を認識できなかったりする
  1.  「共有メモに $ を追加」 - なかなか認識しない
  2.  「共有メモに追加 $」 - ほぼ認識する

1. の場合、文章の区切りがどこになるのか認識しづらい
特に複数の単語で構成された文字列は、$ に当たる単語をひとつだけ抜き出してしまい、残りがマッチしないため、お役に立てませんとなってしまったりする → 「共有メモに ホット ケーキ を追加

2. の場合、先頭がマッチすれば残りは全て $ となり、スペースが含まれたりするもののほぼ認識する


2018/10/02

Google カレンダーの土日に色を付ける 2018版 (Chrome, Firefox + Stylus)

Chrome or Firefox で、CSSをいじって(Stylus拡張を利用) 新しいGoogle カレンダーの土日に色を付ける


拡張機能 Stylus で、下記のようにCSSを追加し、GoogleカレンダーのURL( https://calendar.google.com/ )を前方一致で設定する


div[role="columnheader"]{
 background-color :#eeeeee !important;
}

div[role="columnheader"]:nth-child(1),
div[class="gGDF0e"] div:nth-child(1){
 background-color :#ffeeee !important;
}

div[role="columnheader"]:nth-child(7),
div[class="gGDF0e"] div:nth-child(7){
 background-color :#eeeeff !important;
}

Chrome と Firefox の Stylusは互いにエクスポート・インポート可能です

2018/09/28

PHP7.2 で Warning: Use of undefined constant On - assumed 'On' な警告

PHPを7.2に上げたところ「Warning: Use of undefined constant On - assumed 'On' (this will throw an Error in a future version of PHP) in 」 な警告

エラー表示をするために

ini_set("display_errors", On);

と書いていたが、

ini_set("display_errors", '1');

のように記述しなければならないらしい

2018/09/21

KDDIビジネスコールダイレクトは保留転送できないのか?

FMC案件で調べていたところ、KDDIビジネスコールダイレクトは携帯端末で保留転送できないらしい
(ドコモのオフィスリンクと、ソフトバンクのホワイトオフィスには機能がある)

携帯同士の通話は問題ないけど、KDDI光ダイレクトと接続して PBX連携した時に、ピックアップした外線通話を他の内線(ビジネスコールダイレクトの)に保留転送できないってことになる

これでは内線番号で使えるってだけで、内線端末の代わりにはならないって事

Nintendo Switch Online 子供(みまもり対象)アカウントのみ課金

Nintendo Switch Online が開始され課金が始まったが「みまもり」設定がされている子供アカウントのみに課金する方法(というか課金対象の意味)

親アカウント => 子供アカウント(みまもり対象)

という構成
これ、あくまでも2つのアカウントが、みまもり(でない場合もある)で紐づけされているというだけで、別のアカウントになります. なので、親アカウントへ個人プランを課金しても、子供アカウントは有料サービスを受けられません. 逆に、親アカウントでオンラインを利用しないなら、ファミリープランを契約する必要はありません

Webで親アカウントでログインした状態から、子供アカウントへ課金するまでの流れ
※Switch本体からも、子供アカウントへ購入することも可能です

  1. 親アカウントへログインして、ファミリーを表示
  2. 課金する子供アカウントの「ログインとセキュリティ」を開いて、IDを確認
  3. 一旦ログアウトして、子供アカウントでログインし直しプラン選択へ移動し、購入する

    ※右上のアカウントへマウスなどを持っていき、アカウント名を確認
  4. 無料体験(7日間)を利用していれば、「購入にすすむ」でその旨が確認できます


2018/09/20

PHP 7.2 で "Fatal error: Cannot redeclare ImageCreateFromBMP"

PHP を 7.2 に切り替えたところ「Fatal error:  Cannot redeclare ImageCreateFromBMP」のエラー

画像処理に http://jp.php.net/manual/ja/function.imagecreate.php#53879 をコピペした所の ImageCreateFromBMP 関数名がバッティングしているので別の名前に変更

Android5以降でmicroSDカードの書き込み権限を得ようとすると「問題が発生したため、ドキュメントを終了します」

VAIO Phone VA-10J (Android 5) が春くらいから投げ売りということで買ってみたが、一部のアプリケーションで外部ストレージへの書き込み権限を取得しようとすると「問題が発生したため、ドキュメントを終了します」の表示

あー、そーゆーのあったね~
当時は、何となく改善されてたような気がするのだが、OSのアップデートは期待できず、Lolipopが出てから既に数年経ち、アプリに今更問題があるとは思えないので自己解決するしかなさそう

で、いろいろ試した結果は
PCに繋いで適当な「ボリュームラベル」(ドライブの名前)を設定して、端末に戻すと問題が解消
※ボリュームラベルを変更しても入っているデータには影響ありません

2018/09/14

iCloud の Webへサインインできない

iCloud の Webへサインインしようとすると、白いクルクルから何度もIDとパスワードを入力させられる


この手の問題、定期的に直面して、あぁ サードパーティ Cookieブロックしてたわ、な話

icloud.com へサインインしようとしているけど、認証しているのは apple.com てのが原因
そーゆーメッセージ出すとか、リダイレクトで済ませるとかサイト側で対策してほしいす

2018/09/08

伝言メモの通知をロック画面から消す Galaxy S7 Edge (Android 8 Oreo)

Android 7 Nougat まではこちら

設定の通知、詳細からアプリケーション一覧(システムアプリも表示させる)に幾つか表示される「電話」の真ん中を開いて、カテゴリなしの待受通知を表示しないに設定
  

2018/08/29

さくらレンタルサーバのphpでUDPを送信しようとしたら socket_create が使えなかったので fsockopen を利用

さくらレンタルサーバのphpでUDPを送信しようとしたら socket_create が使えなかったので fsockopen を利用して UDPを送信

function UdpSender($host, $port, $msg){
 /*
 $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    socket_sendto($sock, $msg, strlen($msg), 0, $host, $port);
 socket_close($sock);
 */
 
 $fsock = fsockopen("udp://${host}", $port);
 if($fsock){
  fwrite($fsock, $msg);
  fclose($fsock);
 }
}

RICOH MP1601 シリーズで、マルチページのFAXをメール転送させた時に、ナンバー・ディスプレイ情報が付加されない

RICOH MP1601 シリーズで、マルチページのFAXをメール転送させた時に、ナンバー・ディスプレイ情報が付加されない

受信FAXをメール転送すると、件名に
From "03-XXXX-XXXX"(Fax Message NO.xxxx)
みたいな情報が入ってくる、上のは送信元FAXに設定された、送信元情報(ハイフンが入っている)

ナンバー・ディスプレイを利用した回線で、ナンバーディスプレイを受信する設定に
RICOH MP1601 のナンバー・ディスプレイ設定はデフォルトでオフになっているので、パラメータ設定で スイッチ25のビット6をオンにする
すると
From "03XXXXXXXX"(Fax Message NO.xxxx)
ハイフンのない番号で表示される

ところが、複数ページのFAXを受診した場合、上記の番号部分が抜け落ちてしまう
この場合、
ナンバー・ディスプレイの優先順位を上げる→ パラメータ設定で スイッチ30のビット5をオンにする
これで、ナンバー・ディスプレイ情報の優先度が上がって、メール件名に発信者番号が表示されるようになる
このパラメータ、デフォルトの最優先が「送信者の発信元名称」なんだけど...

2018/08/22

サマータイム導入時のOSとアプリケーション

日本のサマータイム(+1 or +2時間)が現実のものとなったときのための調査メモ

OS側
ほとんどのOSがUTC(世界標準時)で動作しつつ、ローカルタイムもAPIによってアプリケーションへ提供している。したがって、現行OS(サポートが終了していない)は、アップデートにより日本のタイムゾーンを設定していれば、該当日時にローカルタイムを進めたり戻したりする。
サポートが終了したOSは、タイムゾーン設定による調整(サマータイムを導入した日本の場合)は行われないため、常に UTC + 9でローカルタイムが提供される。これらのサポート終了OSで夏時間を実現するには、タイムゾーンを UTC+10 または UTC+11 の地域に変更すればよい。

このときオーストラリアなど夏時間を利用している地域を選択すると混乱を生じる可能性があるので、その年に夏時間を導入しないであろう、ウラジオストクやサハリンを選択するのがベターかもしれない。
タイムゾーンを変更しても言語やデフォルトエンコードには影響は出ない(例: 日本人が海外で自身の端末を使う場合、タイムゾーンは変更しても言語は日本語のままといった状態)

アプリケーション側
多くのアプリケーションが、表示などについてはローカルタイムを利用しているハズ
ネットワーク関連のアプリケーションやファイルシステムではUTCを用いる事が多いが、表示を現地時間に合わせるため UTCからの時差をOSから取得したりローカルタイムへAPIを利用しているので、結局ローカルタイムに依存することとなる

ローカルタイムを利用したアプリケーションで問題になるのが、サマータイムへ切り替わる時間帯と、戻る時間帯に運用しているアプリケーション。
切り替わり時には、1 or 2時間一気に時刻が進むことになり、製造ラインなどで大きな問題が出る可能性がある(1時間かけて投入する材料を一気に投入するような事故)。
戻る時間には、同じ時刻が 1 or 2時間発生するので、製造ラインなどで先程の逆の事や、受注順序の判別が不能などの可能性。
問題が起こる可能性が考えられる場合、予めOS側で夏時間への切替をオフにしておく
OS側の設定が変更できない環境の場合、UTC + 9 を常に計算する等の修正が必要になるが、それなら UTC とローカルタイムを利用するように根本的に変更すべきかもしれない

ローカルタイム + タイムゾーンからUTCを取得することは可能だが(Win: GetUtcOffset)夏時間終了前は、同じ時間が2度訪れるため、何らかの形でUTCを記録しておくしかない

2018/08/21

さくらレンタルサーバでhttps強制転送(+Basic認証)とサーバ変数一覧

.htaccess で http → https リダイレクト(SSL強制)の設定していたところ、以前と変数が違っているよーな気がしたので調べた結果(2018/08/21時点)
独自ドメイン(SNI) で接続 + php の print_r($_SERVER) による情報

これ、2018/3 にさくらが仕様変更を行ったようで、X_SAKURA_FORWARDED_FOR を利用しなくても、リダイレクトループが起きないようになっているみたい
※転送でも HTTPS の値は消えなくなり、X_SAKURA_FORWARDED_FOR の存在は保証しないので、HTTPS の値を利用すべきな内容

ということは .htaccess の記述はシンプルになり

https へのリダイレクト
RewriteEngine On
RewriteCond %{ENV:HTTPS} !^on$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

https のみ Basic認証をかける
<If "%{HTTP:X-FORWARDED-PROTO} == 'https'">
AuthType Basic
AuthName "Auth Access"
Require valid-user
AuthUserFile パスワードファイル
</If>
判定に "%{ENV:HTTPS} == 'on'" を用いたところ、何故か.htaccess のあるルート / のみ認証がかかってしまい、それ以外は認証がかからなかった

※以下の環境変数を.htaccessで利用する場合 _(アンダーバー)と-(ハイフン)の違いに注意

http:// リクエスト
[REDIRECT_STATUS] => 200
[PHPRC] => /home/さくらユーザー名/www
[PATH] => /usr/local/bin:/usr/bin:/bin
[HTTP_HOST] => www.example.com
[HTTP_X_REAL_IP] => リモートホストIP
[HTTP_X_FORWARDED_PROTO] => http
[HTTP_LISTEN_IPADDR] => サーバIP
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => ja,en-US;q=0.8,en;q=0.5,zh-CN;q=0.3
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_DNT] => 1
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache
[SERVER_NAME] => www.example.com
[SERVER_ADDR] => 100.64.0.93
[SERVER_PORT] => 80
[REMOTE_HOST] => リモートホスト名
[REMOTE_ADDR] => リモートホストIP
[DOCUMENT_ROOT] => /home/さくらユーザー名/www/example.com
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => /home/さくらユーザー名/www/example.com
[SERVER_ADMIN] => support@sakura.ad.jp
[SCRIPT_FILENAME] => /home/さくらユーザー名/www/example.com/check/index.php
[REMOTE_PORT] => 62823
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /check/
[SCRIPT_NAME] => /check/index.php
[PHP_SELF] => /check/index.php
[REQUEST_TIME_FLOAT] => 1534814528.2287
[REQUEST_TIME] => 1534814528

https:// リクエスト
[REDIRECT_STATUS] => 200
[PHPRC] => /home/さくらユーザー名/www
[PATH] => /usr/local/bin:/usr/bin:/bin
[HTTPS] => on
[HTTP_HOST] => www.example.com
[HTTP_X_REAL_IP] => リモートホストIP
[HTTP_X_FORWARDED_PROTO] => https
[HTTP_X_SAKURA_FORWARDED_FOR] => リモートホストIP
[HTTP_LISTEN_IPADDR] => サーバIP
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => ja,en-US;q=0.8,en;q=0.5,zh-CN;q=0.3
[HTTP_ACCEPT_ENCODING] => gzip, deflate, br
[HTTP_DNT] => 1
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[HTTP_CACHE_CONTROL] => max-age=0
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache
[SERVER_NAME] => www.example.com
[SERVER_ADDR] => サーバIP
[SERVER_PORT] => 443
[REMOTE_HOST] => リモートホスト名
[REMOTE_ADDR] => リモートホストIP
[DOCUMENT_ROOT] => /home/さくらユーザー名/www/ルートパス
[REQUEST_SCHEME] => https
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => /home/さくらユーザー名/www/example.com
[SERVER_ADMIN] => support@sakura.ad.jp
[SCRIPT_FILENAME] => /home/さくらユーザー名/www/example.com/check/index.php
[REMOTE_PORT] => 11490
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /check/
[SCRIPT_NAME] => /check/index.php
[PHP_SELF] => /check/index.php
[REQUEST_TIME_FLOAT] => 1534814441.4968
[REQUEST_TIME] => 1534814441

2018/08/17

埋め込みの Google Map で API key を追加するもののエラーとなる

Google Map の API にキーが必要になって久しいが、忘れてたマップに key を取得して、URLに追加したもののリクエスト数と同じエラー数

よくよく確認したら、課金情報が未設定のアカウントでした~
いつでも課金できる状態じゃないとNGなのね

Firefox のアドオン Skip Redirect を使っていると、Google翻訳が機能しない

Firefox のアドオン Skip Redirect を使っていると、Google翻訳が機能しない


こういうリンクを開くと、翻訳がスキップされて元のページが表示される


Skip Redirect の設定ページで、Blacklist に /translate を追加する

Tasker %WIFII 変数の値

Android アプリ Tasker の %WIFII 変数の情報をメモ

接続中

>>> CONNECTION <<<

"AP1"

Mac: xx:xx:xx:xx:xx:xx
IP : x.x.x.x
Sig: 9
Spd: 144Mbps
Chl: 4


未接続状態

>>> SCAN <<<

AP1
Mac: xx:xx:xx:xx:xx:xx
Cap: [WPA2-PSK-CCMP][WPS][ESS][BLE]
Sig: 9
Chl: 4

AP2
Mac: xx:xx:xx:xx:xx:xx
Cap: [WPA2-PSK-CCMP][WPS][ESS]
Sig: 9
Chl: 36

以下、最終SCAN情報の繰り返し(未接続や接続不可のAPも含む)
SSIDが隠されているアクセスポイントは AP1やAP2の場所が空行になります


接続済みの判断は CONNECTION の文字列、接続先はそれと同時にダブルコーテーションで囲まれた "SSID名"
※未接続時の情報はダブルコーテーションで囲まれていない

2018/08/02

構内PHS互換電池あれこれ

構内PHSに代われる安定した内線網がなかなか登場しない中、昔のPHS端末を電池がダメになったことで諦める事もおおいでしょう
が、案外多いPHSの互換電池、本家より安かったりもします

ドコモの名機 631s や 621s で使えたりする電池

NTT東日本の 電池パック094だけど、日立 HI-D5 PS や HI-D6 PS と 電圧、容量、サイズ、コネクタ極性が同じ電池

2018/07/18

WritePrivateProfileString や GetPrivateProfileString を連続して使用すると関数が失敗する

VB.net から ini ファイルを扱うため iniクラスにまとめて WritePrivateProfileString を連続して利用した所、書き込みに失敗したり、書き込めていなかったり

詳しく調べてみると WritePrivateProfileString へ渡したファイル名(第4引数)の末尾が破損した状態で戻ってきていることが判明
※この症状は GetPrivateProfileString でも発生を確認
ファイル名の末尾が切れた状態になるため偶然パスとして利用できる場合のみ、ファイルが作られて書き込みが出来ていたり

コンストラクタへ渡されたファイル名(下記では strIniFileName )変数を使い回さないようにすることで回避
    Public Function WriteString(ByVal strSection As String, ByVal strKey As String, ByVal strValue As String) As Boolean
        Dim strFilename As String = strIniFileName ' ←メンバのファイル名を使いまわししない
        Try
            Return (WritePrivateProfileString(strSection, strKey, strValue, strFilename) <> 0)
        Catch ex As Exception
            Return False
        End Try
    End Function

2018/07/17

Amazon Prime Day でBusyのため表示される犬

Amazon Prime Day でBusyのため表示される犬は、3種類(たぶん)



2018/07/12

+メッセージのプライバシー

+メッセージ(プラスメッセージ)が利用するプライバシー情報

  • 連絡先をまるごと吸い上げて、番号の持ち主に通知したりはしない
  • 番号を直接打って(連絡先に入っていない)メッセージを送信できない(たぶん)
  • 連絡先を吸い上げないが、登録された番号が+メッセージを利用可能かどうか確認するため、連絡先の番号を一つづつサーバへ問い合わせてるっぽい(利用可否チェックの遅さから)

2018/07/09

adhell3.1.1.x のビルド

adhell3.1.1.x 系をビルドしたときのメモ
(Android Studio がセットアップされた状態)
  1. gitlab からソースをダウンロード・解凍
  2. knox android サイト から Knox SDK 3.1 (API level 25) をダウンロードして libs の knoxsdk.jar を ソースの app/libs(なければ作成) へコピー
  3. knox android サイト から supportlib.jar をダウンロードして libs の supportlib.jar を ソースの app/libs へコピー
  4. Android Studio でソースを開く
  5. Android Studio の Settings で Configure on demand のチェックを外す
  6. パッケージ名を変更 → app/app.properties (なければテキストファイルを作成)へ下記の形式で記述
    package.name=com.example.adhell3_1_x_x ←他の人とバッティングしないような文字列
    Package Disabler を利用する場合は下記も同じファイルへ記述
    enable.disableApps=true
    enable.appComponent=true
  7. ビルド

adhell3.1.1.x の実行には 各 knox ライセンスキーが必要で
  • knox 2.7.1 以前は Samsung Knox License (SKL) key と Backwards-compatible key の2つ
  • 上記以降の knox では Samsung Knox License (SKL) key が必要
いずれも有効期限があり、期限をすぎると再度取得する必要あり

2018/07/09現在、adhell2 や adhell3.0.0.x の利用に必要な Enterprise license key (Development) は作成できない → Samsung EDU SDK を発行すればOK


2018/07/06

バスロケの busit.jp が雨による閲覧集中で障害?

2018/07/06 の豪雨により バスロケの busit.jp が障害か


バス会社独自のバスロケサービスがあるところは、そちらで回避するしか無い

2018/07/02

Gmail「迷惑メールにしない」と「POP3受信」を併用するとPOP3で受信トレイをスキップしなくなる

Gmailのフィルタは適用順序などいろいろとブラックボックスなところが多い

  • 差出人Aを含む -> ラベルA を付ける
  • POP3受信 + 受信トレイをスキップ -> ラベルP を付ける

このフィルタで POP3受信に差出人Aが含まれていている場合、受信トレイをスキップしつつ ラベルA および ラベルP が付与される

次に

  • 差出人Aを含む + 迷惑メールにしない -> ラベルA を付ける
  • POP3受信 + 受信トレイをスキップ -> ラベルP を付ける

このフィルタで POP3受信に差出人Aが含まれていている場合、受信トレイをスキップしなくなり ラベルA および ラベルP が付与される

2018/06/27

さくら共用サーバへ Pydio 8 を入れる

久々にさくら共用サーバ(スタンダード)へ、Pydio (旧 ajaxplorer) 8 を入れたメモ
昔より、かなりカンタンになってるけど

下準備
  • phpのバージョンは 5.6以降 7推奨 → さくらコンパネから 7.1 へ切替(他の phpプログラムに注意)
  • 利用DBは mysql がおすすめ(理由↓)です → さくらコンパネからそれ用のDBを作成しておく
    DBは sqlite でも動くが database is locked のメッセージが頻繁に出現、そして sqlite でインストール後に設定から mysql へ切り替えたらトップ画面さえ開かなくなったょ(ワラエン
  • let's encrypt が使えるなら .htaccess にセットアップ後に https 強制を追加する

セットアップ
  1. 公式サイトから Pydio (Zip Archive) をダウンロード
  2. ダウンロードした zip をさくらへアップロード (ローカルで解凍するとすごいファイル数で後のアップロードに時間がかかるので - ssh で wget してもよい)
  3. ssh へ接続して、先程のzipファイルを解凍($ unzip pydio-core-8.2.0.zip とか)して、ディレクトリ名などを適当な名称へ変更(場所も)
  4. 早速(放置すると乗っ取られる)、上記サイトをブラウザで開くと Server charset encoding - WARNING とか出るので pydioのディレクトリ/conf/bootstrap_conf.php を開いて define("AJXP_LOCALE", "ja_JP.UTF-8"); を追加(変更)する
  5. 再度ブラウザで開くと、初期設定画面となり管理者の設定、DBの設定(何故か最初NGで2度入れた)と続いて動作開始~

https 強制と www 無しで統一
セットアップしたディレクトリの .htacess を変更
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L]
に続けて
#
# https 強制
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#
# wwwなしで統一
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
#
を追加
ロゴや背景のカスタマイズ は、こちら

2018/06/20

WebP を paint.net で使えるようにする

Microsoft Edge でも利用可能になる WebP を paint.net で読み書きさせる
  1. paint.net のフォーラムから WebPFiletype.zip をダウンロード
  2. WebPFiletype.zip 内の 3ファイル「WebP_x64.dll, WebP_x86.dll, WebPFiletype.dll」を C:\Program Files\paint.net\FileTypes へコピー
  3. paint.net を(再)起動






2018/06/14

和暦の新元号対応 VB6 / Delphi / VBA / .net

新元号に向けて和暦対応をチェック

OSから情報を取得していれば 2019/5/1以降の和暦が「??」となるのが正しく、決定後レジストリへ??の部分へ登録されれば、そのまま表示される
※取得方法が違うと、表現も変わる可能性があるので参考までに


VB6 - 未対応
遂にvb6終了のきっかけになるか~ でも古いコードの修正頼まれたりするの見てると、何故か自前で書いてるの多いんだよなぁ


Delphi - 対応済
2007 や XE系 といくつか試したが、元々OSから取得しているみたい


VBA(Microsoft Office 2013, 2016) - 未対応
決定後にアップデートで対応するんだろうけど、どれくらい古いバージョンまで対応するのだろうか



.net(Visual Studio 2017 C# .net v4で確認) - 対応済
これもOSから取得しているようです。他のバージョンはどうなんだろう


2018/06/07

Parallels + Windows10 1803 更新プログラム適用後、Windowsが終了できなくなる(再起動してしまう)

Parallels 上の Windows 10 に バージョン 1803 の機能更新プログラムを適用すると

Windowsを終了させようとすると
仮想マシン ○○ が再起動しました。仮想マシンプロセッサがオペレーティングシステムによってリセットされました。と共にWindowsが再起動してしまう

対策
Windowsの電源設定で「高速スタートアップを有効にする」のチェックを外して、高速シャットダウンを無効にする。

RAVPower 6700mAh モバイルバッテリーの延長保証

使っていたモバイルバッテリーが古くなり、容量の割に重いことに気づき、コスパと軽量 2A充電/出力 のRAVPower 6700mAh モバイルバッテリーを購入、延長保証(Amazonから購入のみ)を申し込んだ


公式サイトの製品登録から、メールとAmazon注文番号、パスワードなどを入力して登録 → アドレスにメールとか送ってきそうなんだけど送ってこない
そのまま本国のサイトへ飛ばされる(サードパーティCookieを許可してると飛ばされないかも)ので、改めてログインすると製品が登録されていることがわかる

保証は基本が 18ヶ月で、製品登録すると +12ヶ月、ということは 30ヶ月(ホントかいな)
が、

Lifetime (死ぬまで有効)

2018/06/05

Pydio の画像をカスタマイズ

Pydio のロゴ等、画像をカスタマイズ
オリジナルロゴに変更したり、バックグラウンド画像(jpg)の圧縮率を変更して速度アップが行えます

サインインやファビコン画像
インストールディレクトリ/plugins/gui.ajax/res/themes/common/images

バックグラウンド画像
インストールディレクトリ/plugins/gui.ajax/res/themes/common/images/hires-photos


確認にはキャッシュをクリア

2018/05/30

さくら共用サーバから Gmail へメールが届かない

障害情報ではなく、サポート情報に記載されている
https://help.sakura.ad.jp/hc/ja/articles/206052622

私的な環境では、同サーバで TLS1.0/1.1 が無効化された時刻と近いので、何らかの関連があるかもしれません
Google 側からメールの送信サーバに対して TLS1.0/1.1 でチェックをして、ドメインの正当性をチェックしていたとか~

【追記】2018/5/30 1:15 対応により復旧
http://support.sakura.ad.jp/mainte/mainteentry.php?id=24159


Delphi + Indy + OpenSSL で「SSL で接続する際にエラーが発生しました。プロトコルに違反する EOF が検出されました.」

Delphi + Indy+ OpenSSL 構成で SSL接続できなくなり「SSL で接続する際にエラーが発生しました。プロトコルに違反する EOF が検出されました.」というダイアログが出る


直接の原因は、サイト側(さくら)が TLS1.0/1.1 を無効にしたことで、Indy の TIdSSLIOHandlerSocketOpenSSL のプロパティをデフォルトから変更して TLS1.2以上で接続する必要があった
(とりあえず接続できるようになったけど、ちょっとモッサリな...)

IdHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
with IdHTTP.IOHandler do begin

    SSLOptions.SSLVersions := [sslvSSLv23]; // ←追加(無くても Methodを指定すると選択されます)

    // SSLOptions.Method := sslvTLSv1;
    SSLOptions.Method := sslvSSLv23; // ←変更

    SSLOptions.Mode := sslmUnassigned;
    SSLOptions.VerifyMode := [];
    SSLOptions.VerifyDepth := 0;
end;


「sslvSSLv23」て、SSLとして古いんじゃないの?と思ったが、ここに 変数名の付け方としておかしいとの話が載っていて、本来 sslvSSLBest であり、これを選択した場合  SSLv3, TLSv1, 1.1 or 1.2 とトライするのだとか~ それで遅いのかもね、ただ上記方法であれば 1.2の次が出たときも OpenSSL のアップデートのみで対応できるということになります
※私の修正したコードの Indy バージョンより新しいのは、直接 TLS1.2 とか指定できるかも

2018/05/25

ドコモ おひとりさま用 ベーシックパックとパケットパック比較

ドコモ おひとりさま用 ベーシックパックとパケットパック(2018/5/24新規受付終了)の比較
「部分的に値上げしては、以前のプランを申し込み不可に」これを繰り返して、全体を値上げしていくキャリアのセコい戦略
もぅ、楽天だけでなく外資系も参入しないと、値下げはないんじゃないかと思います

ずっとドコモ割、なし(上)とあり(下)

1GB未満は 600円値下げ
1GB以上-2GB未満は 500円値上げ
2GB以上-3GB未満は 1,000円値下げ

1GB未満は 200円値下げ
1GB以上-2GB未満は 500円値上げ
2GB以上-3GB未満は 800円値下げ
「ずっとドコモ割」ありの場合、1GB未満の値下がりは200円にしかならない