2018/12/07

ポイントを都度使う、とまとめて使うの違い

ヨドバシの10%還元ポイントをその都度使うのと、まとめて使うのとでどちらが得か計算

800円の買い物を11回利用した場合
※ポイント部分の条件: 10%、小数点以下切り捨て、ポイント利用時は支払額が対象

その都度利用
商品金額支払額ポイント残
180080080
280072072
380072872
480072872
580072872
680072872
780072872
880072872
980072872
1080072872
1180072872
合計¥8,072

ポイントを貯めてから利用
商品金額支払額ポイント残
180080080
2800800160
3800800240
4800800320
5800800400
6800800480
7800800560
8800800640
9800800720
10800800800
1180000
合計¥8,000

その都度利用した場合、支払合計が 8,072円で、72円多く払うが72ポイント残
貯めてから利用した場合、支払合計が 8,000円

ということで、ポイントを含めると差はない

2018/12/06

OD接続のRJ45結線とメーカー別名称

専用線等で使われるODトランクの結線と共にメーカー(NEC, 日立, ナカヨ)ごとに名称がバラバラなのでまとめてみた

VoIP GWへRJ45(A結線)接続した場合のPBX側端子名称

PBX側VoIP GW側
日立ナカヨNECRJ45信号NECナカヨ日立
SSBBSB1(緑白)SGGSRB
SSASSM2(緑)ESRSRA
TBSL24WS(ring)3(橙白)4WR(ring)RL2RB
RBRL24WR(ring)4(青)4WS(ring)SL2TB
RARL14WR(tip)5(青白)4WS(tip)SL1TA
TASL14WS(tip)6(橙)4WS(tip)RL1RA
SRASRE7(茶白)MSSSSA
SRBGSG8(茶色)SBBSSB

一般的にPBX側はクイックコネクタですが、両端が RJ45の場合、SS ⇔ SR, R ⇔ S の上り下りが逆になるように接続

2018/11/16

linux の bash や windows の dos窓で打ち込んだコマンドを消す

Linux の bash や ms-dos窓 のコマンドラインで、打ち込んだコマンドや↑(UP)で履歴を出したけど不要だったときに、削除するショートカットをメモ

bash
ctrl + u 行頭まで削除(切り取り)
ctrl + w 一つ前の単語を削除(切り取り)

ms-dos (プロパティで Ctrlキーショートカットを有効にしておく)
ctrl + Home 行頭まで削除
ctrl + BackSpace 一つ前の単語を削除

2018/11/15

2019年 祝日

12/23の天皇誕生日は 2019年は無し

2019/1/1 元旦
2019/1/14 成人の日
2019/2/11 建国記念の日
2019/3/21 春分の日
2019/4/29 昭和の日
2019/5/3 憲法記念日
2019/5/4 みどりの日
2019/5/5 こどもの日
2019/5/6 振替休日
2019/7/15 海の日
2019/8/11 山の日
2019/8/12 振替休日
2019/9/16 敬老の日
2019/9/23 秋分の日
2019/10/14 体育の日
2019/11/3 文化の日
2019/11/4 振替休日
2019/11/23 勤労感謝の日

2019年 日本の祝日カレンダーってサイトには、天皇誕生日が残ったままだったんだけど、ここのサイトって以前も情報がまちがってたんだけど、そんなのが検索上位に上がって大丈夫なのかね

Microsoft Store にもあるアプリケーションの単体セットアップが失敗する

Microsoft Store にもあるアプリケーションの単体セットアップが失敗する

今回は Windows版 LINE での話、公式サイトからセットアップexeをダウンロードして、実行するものの Microsoft Store が起動して、結局、セットアップ失敗とリトライを繰り返す



Win + x → 「アプリと機能」を開き、「アプリの推奨を無効にする」へ切り替える

「Microsoft Store アプリのみ許可する」になっていると、単体セットアップでインストールしようとするアプリケーションが Store にある場合、そっちを優先してしまう

2018/11/13

パクリ疑惑の Amazonドラマ「チェイス」の第7話が配信開始

盗作疑惑の「チェイス」

配信停止となっていた 第7話 が Amazon Video で配信開始

DNS 1.1.1.1 を利用するスマホアプリ・・・でそんなに速くなるワケないじゃん

DNS 1.1.1.1 を利用できるスマホアプリが登場したそうだけど、いずれも VPN経由でDNSを切り替えるアプリケーション
PCや rooted端末みたいに DNSを直接書き換えられるわけでもなく、そもそもDNSは端末やルータでキャッシュを持ってるわけだし、VPNのオーバーヘッドを考えても、速くなるワケないじゃん(w
むしろ電池の無駄

DNSを直接指定できる Wi-Fiやルータ設定を 1.1.1.1 へ変更するならわかるけど、そっちもプロバイダ側にキャッシュがあるからね

2018/11/09

コンソールで esc も コロンも打てない状態で vi から出る

VPS の ssh ポートを変更したが、SELinuxをオフにし忘れ、閉め出されたので Webコンソールから (今回は Cloudatcost) 設定を変更しようとしたが、escキーも :(コロン)も打てなかった話

vi 起動中
ctrl + c に続けて ZZ ←大文字を入力
これで esc → :wq と同じ動作となる

ちなみに = は、テンキーの + で入力できた

2018/11/08

ソフトバンクの付属品を分割で抱き合わせ販売

一年くらい前のソフトバンクのお年寄りホイホイな料金表
付属品(microSDカード)を 822円/月で買わされるパターン
822円×24ヶ月 = 19,728円 てどんな microSDカードだよ(w
(端末代は 3,150円 × 24 = 75,600円)

そもそもこの時点で、Xperia XZ は国内発売から半年くらい経過している上に、米国での発売は更に半年前だったりします
また、ソフトバンクは OSのメジャーアップデートは1回のみなので、Android6 → 7 で終了

デビュー割で少々割引しようが、痛くも痒くもないって事ですな

2018/11/06

古い(ver1系) Bittorrent Sync のログイン情報保存先

古い(ver1系) Bittorrent Sync の設定を変更しようと、WebUI を開いたら ログイン名とパスワードが分からなかったので、保存先でログイン名を確認(パスワードはわかりません)
C:\Documents and Settings\[username]\Application Data\BitTorrent Sync\settings.dat をメモ帳等のテキストエディタで開いて webui.username という文字を検索
その直後の : に続くところにログイン名が記載されている(おそらく :の前はその文字列長さ)

2018/11/01

さくらのレンタルサーバーで「SNI SSLを利用する」が選択できない

さくらのレンタルサーバーで「SNI SSLを利用する」が選択できない

証明書が未発行なので、新規ドメインは、一つ前の画面で

登録から初期設定を行う → 「[さくらインターネット]SSLサーバ証明書発行のお知らせ」という件名で、メールが届くと設定完了(「SNI SSLを利用する」にチェックも入った状態になる)

登録メールアドレスを変更できない、変更に手間取ったサービス

「人に教えるメールアドレス」と「機械に教えるメールアドレス」を分けているが、通販などで利用する後者のメールアドレスを重い腰を上げて変更したが、変更不可だったり変更に手間取ったサービスをメモ


AdGuard
変更不可 (support@adguard.comに連絡しろ)

OpenWeatherMap(API利用)
変更不可

Time4vps
チケットで対応??

fon
変更不可

Samsung
members のみ利用であれば問題なし
developer 登録している場合、変更を行うとデベロッパーサイトで警告が表示される → knoxが利用できなくなる(membersから元のアドレスへ戻せばOKだが、基本的に変更は不可)

CloudAtCost
members の連絡先は可能だが、コンパネのログイン名は変更不可
(コンパネからのパスワードフラッシュは、新アドレスへ到着するので注意)

Parallels
Webからは不可(変更画面があり、無反応やエラー表示となるが根本的に変更できない)
新アドレスで別アカウントを作成した後、facebook チャット等で「新旧アドレス、アクティベーションキー(複数あれば全て)」を連絡して、手動で付け直しを行ってもらう

ヨドバシ.com
連絡先のメールアドレスは変更可だが、会員IDは変更不可
(会員IDを初期メールアドレスにしている場合は、会員IDのみ旧メールアドレス表記のままとなる)

Ponta
ログイン名は変更不可

スシロー
メールアドレス変更不可

2018/10/25

CentOS7 の DNS設定

cloudatcost に centos7 を入れて、早速 yum を使おうとしたら dnsが引けないとかいうエラー
/etc/sysconfig/network-scripts/ifcfg-eth0 を確認したら DNSの欄が無い

ということで、eth0 にDNSサーバ 1.1.1.1 を割り当てると
# nmcli c modify eth0 ipv4.dns 1.1.1.1
eth0 なんて、ありませんとか言われる

デバイスの確認
# nmcli device
DEVICE  TYPE      STATE      CONNECTION  
ens33   ethernet  connected  System eth0 
lo      loopback  unmanaged  --          

ens33 かと思ったら CONNECTION の所を指定するらしい
# nmcli c modify "System eth0" ipv4.dns 1.1.1.1
再起動などで有効になる

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年11月1日は 無料購入可能(選択肢は1冊のみ)でした

【追記】
2018年12月1日での画面表示で終了のお知らせ


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 を Android Studio でビルド

adhell3.1.1.x 系をビルドしたときのメモ 【2018-11-19更新】
(Android Studio がセットアップされた状態)

  1. gitlab からソースをダウンロード・解凍
  2. knox android サイト から Knox SDK 3.2 (API level 26) と supportlib.jar をダウンロードして各 libs の knoxsdk.jar と supportlib.jar を app/libs(なければ作成) へコピー
  3. Android Studio でソースを開く
  4. Android Studio の Settings で Configure on demand のチェックを外す → 2018-11-19 現在 Android 3.2.1 ではこの設定は無くなっているので不要です
  5. パッケージ名を変更 → ファイル app/app.properties (なければテキストファイルを作成)へ下記の形式で記述
    package.name=com.example.adhell3_1_x_x ←他の人とバッティングしないような文字列
    Package Disabler を利用する場合は下記も同じファイルへ記述
    enable.disableApps=true
    enable.appComponent=true
  6. ビルド

    ビルドが完了すると右下に下記のようなのが出てapkが作成されるので、実機へ移してインストールする
    app/build/outputs/apk/debug/app-debug.apk ←コレ

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 が障害か


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