N-BOXで、スキーに行く準備と、市街地で年に1回は発生する雪の対策用にチェーンを購入しました。
タイヤの3箇所だけをチェーンで巻くというもので、なかなか良い感じがしたので、取り付け方と取り外し方をメモ用に残しておきます。
基本的には、マニュアルを参考にすれば良いのですが、「取り外し」で戸惑うと思うので、こっちにメモを残しておきます。
go webassembly experiments をローカルPCで動かす
2020/03/14
■これからは「C/C++ → Go」と「JavaScript → Webassembly」とシフトしながら色々やっていこうと思っている
■正直、どっちも難しい。そういう時は、サンプルをパクって勉強するのが正解 ―― と思っている
■取り敢えず、https://github.com/stdiopt/gowasm-experiments にある、 https://stdiopt.github.io/gowasm-experiments/bouncy/ をローカルで動かせるようになろう、と考えた
Uncaught (in promise) TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
この「Expected 'application/wasm'.」がどうにも、不味いらしい ―― が、解決方法が、どうにも見つからない
#!/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()
■動いた
■動かなかったら、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 にあったので、そこから取ってきた。
以上
https://qiita.com/chino_tweet/items/db3a536234a43a3c31d9
https://www.atmarkit.co.jp/ait/articles/1104/04/news117.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>