2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|

2020-03-09 お名前.comとRoute53を連携する方法(その2) [長年日記]

https://kobore.net/DNS2_memo.mm.html


2020-03-10 JS難読化対応ツール [長年日記]

https://beautifier.io/


2020-03-14 MAXWIN(マックスウィン) 金属タイヤチェーン タイヤチェーンの取り付け方、取り外し方 [長年日記]

N-BOXで、スキーに行く準備と、市街地で年に1回は発生する雪の対策用にチェーンを購入しました。

タイヤの3箇所だけをチェーンで巻くというもので、なかなか良い感じがしたので、取り付け方と取り外し方をメモ用に残しておきます。

基本的には、マニュアルを参考にすれば良いのですが、「取り外し」で戸惑うと思うので、こっちにメモを残しておきます。


2020-03-15 go webassembly experiments をローカルPCで動かす [長年日記]

go webassembly experiments をローカルPCで動かす

go webassembly experiments をローカルPCで動かす

  • 2020/03/14

  • 背景
    • ■これからは「C/C++ → Go」と「JavaScript → Webassembly」とシフトしながら色々やっていこうと思っている

      ■正直、どっちも難しい。そういう時は、サンプルをパクって勉強するのが正解 ―― と思っている

  • 目的
  • 環境
    • ■Windows7 or 10
    • ■Go と python3 をインストールしてある
  • やってみたこと
    • ■サンプルプログラムをダウンロードして、コンパイルしてみた
      • ~ https://github.com/stdiopt/gowasm-experiments/tree/master/bouncy
      • コマンドプロンプトからこんな感じでコンパイルできた
        • $ set GOOS=js
        • $ set  GOARCH=wasm
        • $ go build -o main.wasm main.go
        • ちなみに、bashの環境があれば、build.shでコンパイルできる
      • 実際には、コンパイルしなくても、バイナリコード(main.wasm)も、ダウンロードの中に入っているので、コンパイルは不要だったが
    • ■ローカルサーバとしては、色々試してみた
      • python3 -m http.server 8080
      • Goでサーバも作ってみた
      • Perlでもやってみた
    • ■動画がどうしても出てこない
    • ■ここから丸2日間の格闘のスタート
      • もう、色々探しまくった
  • 確認していた問題点
    • ■Google Chromoから、→ 「その他のツール」 → 「ディベロッパーツール」 → 
      • Uncaught (in promise) TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.

        この「Expected 'application/wasm'.」がどうにも、不味いらしい ―― が、解決方法が、どうにも見つからない

    • ■kobore.netのサーバに上げても、改善が見られず
  • ローカルサーバを作ってみた
    • ■httpsrv.pyを作った
      #!/usr/bin/env python3
        import http.server
        import socketserver
        
        PORT = 8080
        
        Handler = http.server.SimpleHTTPRequestHandler
        Handler.extensions_map.update({
        '.wasm': 'application/wasm',
        })
        
        socketserver.TCPServer.allow_reuse_address = True
        with socketserver.TCPServer(("", PORT), Handler) as httpd:
        httpd.allow_reuse_address = True
        print("serving at port", PORT)
        httpd.serve_forever()
        
  • ■httpsrv.pyを起動した
    • $ python3 httpsrv.py
  • http://localhost:8080 で起動
    • ■動いた

      ■動かなかったら、chromo → 「設定」 → 「閲覧履歴データの削除」でキャッシュをクリアてみること

      ■Windows10の環境では、独自につくったmain.wasmを動かすと、Uncaught (in promise) LinkError: WebAssembly Instantiation: Import #1 module="go" function="runtime.scheduleCallback" error: function import requires a callable というエラーが出てくることがある。この場合は、Windows10のGoの環境にあるwasm_exec.jsをパクってくる。私の場合は、C:\Go\misc\wasm にあったので、そこから取ってきた。

  • 以上


  • 2020-03-16 iPad向け外付けGPS [長年日記]

    _ 【CoreLocation】位置情報を取得する

    https://qiita.com/chino_tweet/items/db3a536234a43a3c31d9

    _ iPhoneアプリで位置情報と地図を使うための基礎知識

    https://www.atmarkit.co.jp/ait/articles/1104/04/news117.html


    2020-03-20 ワイルドカードTLS証明書の作成 [長年日記]

    http://kobore.net/wildcard_TLS.html


    2020-03-28 Bad Elf 2300の位置情報をキャプチャするhtmlファイル [長年日記]

    常日頃から御指導頂いているSさんから、Bad Elf 2300の位置情報をキャプチャするhtmlファイルの内容を教えて頂いた。忘れないように、残しておく。

    Bad ElfをBTでリンクしたiPadで稼働を確認済み(iPhoneでは稼働確認できなかった)

    <!DOCTYPE html>
    <html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
        <title>geolocation-sample</title>
    </head>
    <body>
      <div id="output"></div>
     
    <script>
        var output = document.getElementById('output');
     
        // 位置情報の取得に成功した際のコールバック
        const successCallback = (position) => {
            console.log(position);
    		output.innerHTML += "<P>==========";
    		output.innerHTML += "<P>time:" + position.timestamp;
    		output.innerHTML += "<P>latitude:" + position.coords.latitude;
    		output.innerHTML += "<P>longitude:" + position.coords.longitude;
    		output.innerHTML += "<P>altitude:" + position.coords.altitude;
    		output.innerHTML += "<P>accuracy:" + position.coords.accuracy;
    		output.innerHTML += "<P>altitudeAccuracy:" + position.coords.altitudeAccuracy;
    		output.innerHTML += "<P>heading:" + position.coords.heading;	
    		output.innerHTML += "<P>speed:" + position.coords.speeed;	
        };
     
        // 位置情報の取得に失敗した際のコールバック
        const errorCallback = (err) => {
            console.log(err);
    		output.innerHTML += "Error\n";		
        };
     
        // 位置を監視する構成オプション
        // オプションの内容は次のリンクに書かれています。
        // https://developer.mozilla.org/ja/docs/Web/API/PositionOptions
        const options = {
            enableHighAccuracy: true,
            timeout: 5000,
            maximumAge: 0
        };
     
        let watchPositionID;
     
        window.onload = () => {
            // navigator.geolocation.watchPositionについては次のURLにかかれています。
            // https://developer.mozilla.org/ja/docs/Web/API/Geolocation/watchPosition
            watchPositionID = navigator.geolocation.watchPosition(successCallback, errorCallback, options);
        };
     
        // ブラウザーを閉じる前に位置の監視を止めます
        window.onbeforeunload = () => {
            navigator.geolocation.clearWatch(watchPositionID);
        }
    </script>
    </body>
    </html>
    
    syntax2html