『JCBザ・クラス』のインビテーションが届いた。

これは2019年12月の話。

 

メインカードがJCBで、ゴールドカードを2016年の12月の半ば(15日以降)から使用していて、いつの間にか3年間が経っていた。

ごく普通に使い、一昨年は120万、昨年は230万程使用した。
正直なところ、よくもまあこんなに支払えたものだと思っていたが、
結婚というライフイベントがある昨年から考えれば、妥当だったかもしれない。

 

JCBをある程度使用していると『JCBゴールド ザ・プレミア』というカードインビテーションがくる。

*1

 

そんなことを公式サイトに書いてあるので、カードフェイスが落ち着いており、コスパが良いので、インビテーションが来たら切り替えを考えていた。

 

が、いきなり最上位カードのインビテーションが届いた。

それが『JCBザ・クラス』だった。

f:id:katsuraghi:20200113230701j:plain

インビテーションの封筒。富士山がきれい。

笑えるのは、ご本人の年収記入欄。1500万円が記入例という中々な強気な例。
出す相手間違えているね。

f:id:katsuraghi:20200113230318j:plain

JCB THE CLASSの申込書

さて、ひとまず嫁に相談。結婚したばかりで最初の相談事がクレジットカードの申し込みについてだから、何だか変な顔していた。

審査で落ちると思ったからか、申し込みについて了解を得られた。

そんなわけで、申し込みをしたのが2020年の1月上旬。

いつ結果がわかるのだろうか。

*1:JCBゴールド ザ・プレミアのご招待条件>
MyJCBにメールアドレスのご登録があり、JCBゴールドのショッピングご利用合計金額(集計期間:12月16日~翌年12月15日)が2年連続で100万円(税込)以上の方を対象に、毎年2月下旬頃、Eメールでお申し込みのご案内をしています。と公式サイトに書いてある。

はてなBlogに引っ越しました。

いつ頃から更新していないのかと思ったら、3年位更新していなかったみたいです。

 といってもオリンピック置きに更新しているような気もしますが・・・。

 

さて、数年更新していないと身の回りごとも変わり、販売職からSEになってました。ここの”SE”の定義も難しく、いわゆるセールスエンジンなのか、サポートエンジニアなのか、色々ありますが、私はどちらかというと後者となります。

ハードウェアやソフトウェアどちらかというとどっちもという、まぁ面倒なことをしています。

そこで学んだことをメモして行ければなと思います。

Pushbullet APIをC#で使うには。

主な用途としては、WindowsのプログラムでC#を使っていてスマフォなどに通知を送らなければならない様な時。

他のcsからPush("title","body")で使える。手軽で良い。

using Pushbullet_plugins;

       Push("title","body");

        private void Push(string title, string body)
        {
            Push Test = new Push();
            Test.AccessToken = ""; https://www.pushbullet.com/accountにある
            Test.DeviceToken = ""; GetDeviceList()使って取得する。

            //UrlEncodeでエンコードしないと文字化けする。

            Test.SendNote(System.Web.HttpUtility.UrlEncode(title), System.Web.HttpUtility.UrlEncode(body), Test.DeviceToken, Test.AccessToken);

        }

Push.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Codeplex.Data;
using System.Web;
using System.Net;
using System.Threading.Tasks;
using Codeplex.Data; //DynamicJSONの為

namespace Pushbullet_plugins
{
    public class Push
    {
        public string AccessToken { get; set; }
        public string DeviceToken { get; set; }

        public WebClient AuthenticatedWebClient(string Access_Token)// https://www.pushbullet.com/accountにある
        {
            Access_Token = AccessToken;
            WebClient wc = new WebClient();
            wc.Proxy = null;
            string authEncoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(Access_Token + ":"));
            wc.Headers[HttpRequestHeader.Authorization] = string.Format("Basic {0}", authEncoded);

            return wc;
        }

	//Pushbulletに登録されているデバイスの取得
        public List<string> GetDeviceList()
        {

            System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest)
                    System.Net.WebRequest.Create("https://api.pushbullet.com/v2/devices");

            //認証の設定
            webreq.Credentials =
                new System.Net.NetworkCredential(AccessToken, "");

            //HttpWebResponseの取得
            System.Net.HttpWebResponse webres =
                (System.Net.HttpWebResponse)webreq.GetResponse();

            //受信して表示
            System.IO.Stream st = webres.GetResponseStream();
            System.IO.StreamReader sr = new System.IO.StreamReader(st);
            
            var json = DynamicJson.Parse(sr.ReadToEnd());
            var inputJson = json.devices;
            List<string> lst = new List<string>();
            lst.Clear();
            foreach (var item in inputJson)
            {
                //
                if (item.IsDefined("nickname") == true)
                {
                    string t = item.nickname.ToString() + ":" + item.iden.ToString(); //+ "\r\n";改行コードはいらない
                    lst.Add(t);
                }
            }
            return lst;
        }

        public void SendNote(string Title, string Body, string Device_token, string Access_Token)
        {
            WebClient webreq = AuthenticatedWebClient(Access_Token);

            webreq.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
            webreq.Headers[HttpRequestHeader.Accept] = "application/json";

            //認証の設定
            webreq.Credentials =
                new System.Net.NetworkCredential(Device_token, "");

            //First parameters to send
            string parameters = String.Format("device_id={0}&type={1}", Device_token, "note");
            parameters += String.Format("&title={0}&body={1}", Title, Body);

            string result = webreq.UploadString("https://api.pushbullet.com/" + "/v2/pushes", parameters);
        }
    }
}

なぜドキュメント通りに動作しないのか。

<script type="text/javascript" src="plugins/plugin-loader.js"></script>   
  <script type="text/javascript" charset="utf-8">

ドキュメントの方にあるプラグインの記載ではpluginsフォルダがあることになっているが、ない。
おそらくバージョンアップ後に標準プラグインについては、

    <script src="components/loader.js"></script>

で問題がないことだと推測される。が、ドキュメントに一切記載がない。
てか、よくわからない。

【Monaca】Monacaでバーコードを読み取るには。

2014/07/11時点の話です。

Monacaドキュメントにあるバーコードリーダのソースでは動作しないため、どうすれば動かくかについて記載します。

BarcodeScannerプラグイン(Android、iOS)

といっても変更点は少ないです。
Hello Worldアプリ」を流用します。


その後「設定」からプラグインの管理を押します。

BARCODEScannerを有効にしてください。※画像ではすでに有効済みのため「削除」の項目が表示されています。
その次にphonegap-demo.htmlを開いてください。

ドキュメントにあるJavascriptのメソッドをまるごとペーストします。

<script type="text/javascript">
        function scanBarcode() {
        window.plugins.barcodeScanner.scan( function(result) {
            alert("We got a barcode\n" +
                      "Result: " + result.text + "\n" +
                      "Format: " + result.format + "\n" +
                      "Cancelled: " + result.cancelled);
        }, function(error) {
            alert("Scanning failed: " + error);
        }
  );

次にこれを実行させるボタンの設置です。

「Check Network」の下に追加

    <!-- バーコードスキャンするためのボタン -->
    <a href="#" class="btn large" onclick="scanBarcode();return false;">Check Barcode</a>


あとは実機でテストしてください。

【TIPS】Windows7のガジェットが動作しなくなった時の対処方法

ガジェットが動作しなくなり、時計が以下のような表示になってしまった場合の対処方法。

マイクロソフトはすでにこの不具合を把握しており、「Windows 7 ガジェットが機能しない、または正しく表示されない」(KB2515657)として公開しているが、解消できない場合がある。

んで、この不具合。何らかの理由で発生しており、いつの間にか動作していないみたい。
多分、WindowsUpdateの絡みか、そのあたりで動作しなくなってしまったのだろう。

症状から察するに、Javascript周りが動作していないため発生していると考えた。
ひとまず、Jscript.dllの再登録処理を行うことで改善する。

32Bit用
REG ADD HKCR\CLSID\{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}\InprocServer32 /ve /t REG_SZ /d "%windir%\System32\jscript.dll" /f
REG ADD HKCR\CLSID\{16d51579-a30b-4c8b-a276-0ff4dc41e755}\InprocServer32 /ve /t REG_SZ /d "%windir%\System32\jscript9.dll" /f

64Bit用
REG ADD HKCR\Wow6432Node\CLSID\{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}\InprocServer32 /ve /t REG_SZ /d "%windir%\SysWOW64\jscript.dll" /f
REG ADD HKCR\Wow6432Node\CLSID\{16d51579-a30b-4c8b-a276-0ff4dc41e755}\InprocServer32 /ve /t REG_SZ /d "%windir%\SysWOW64\jscript9.dll" /f
コマンドプロンプトを管理者権限で実行を行うことで登録ができる。