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-04-06 量子ゲート(トライアル) [長年日記]

package main
 
import "fmt"
import "math"
 
func Xgate(in complex128) complex128{
	 return in * complex(-1,0)
}
 
func Zgate(in complex128) complex128{
	 return in * complex(0,-1)
}
 
func Hgate(in complex128) complex128{
	 a := real(in)
	 b := imag(in)
 
	 c := (a + b) / math.Sqrt(2)
	 d := (a - b) / math.Sqrt(2)
 
	 return complex(c, d)
}
 
func CNOTgate(in1 complex128, in2 complex128) (complex128, complex128){
	 out1 := in1
	 out2 := complex(imag(in2), real(in2))
 
	 return out1, out2
} 
	 
 
 
 
 
func main() {
	 a :=  1 + 3i
	 b :=  3 + 2i
	 c :=  1i
 
	 fmt.Println(a * b)
	 fmt.Println(a / b)
	 fmt.Println(c)
 
	 d := Hgate(a)
 
	 fmt.Println(d)
 
	 e,f := CNOTgate(a,b)
 
	 fmt.Println(e)
	 fmt.Println(f)
 
}
 

2020-04-05 [長年日記]


2020-04-03 異なるAWS間でのEC2のコピペのやり方 [長年日記]

異なるAWS間でのEC2のコピペのやり方

事なるAWS間でのEC2のコピペのやり方

  • 2020/04/03

  • 1.動機
  • 2.目的
    • ■AWSのEC2を、別アカウントのEC2にコピーすること
  • 3.準備
    • ■EC2をコピー元となるAWS(アカウント名を"A"とする)のコンソールを立ち上げる

      ■EC2のコピー先となるAWS(アカウント"B"とする)のコンソールを立ち上げる。アカウント番号をどっかにコピペしておく(例:987698769876)

      ■注意 : AWSコンソール"も"、頻繁にインターフェースを変更するので、下記記載の記述は変っていることがある(というか、確実に変わっているだろう)ので、その時の状況に応じて変更するから             

  • 4.手順(テキストのみ)
    • (Step.1)"A"でのAMI(Amazon Machine Image)の作成する → ラズパイで言うところのSDカードに記載されているカーネルイメージを、Win32DiskImagerでパソコンに書き込むようなイメージ

      • ■EC2ダッシュボード→ターゲットのEC2を選択→右ボタンで「イメージ」→「イメージの作成」

        ■イメージの作成画面で、例えば イメージ名:Image_A_EC イメージの説明:AのEC2のイメージ とでもして、 「イメージ作成」のボタンを押下 → 「イメージ作成リクエストを受けとりました」 とのメッセージがでる

      (Step.2)"A"での、イメージにアクセス権を付与

      • ■EC2ダッシュボード→メニューにある「イメージ→AMI」を選択→"Image_A_EC"を選択して、「アクション」を押下→イメージパーミッションの変更を選択
      • ■AWSアカウント番号のところに、コピペしておいた"B"のAWSアカウント番号(例:987698769876)を入力する
      • ■「パーミッションを作成する時は次の関連付けられたスナップショットに"ボリューム作成"パーミッションを追加する」にチェック

      (Step.2)"B"での、イメージの受けとりと、新しいEC2の作成

      • ■EC2ダッシュボード→メニューにある「イメージ→AMI」を選択→リストに"Image_A_EC"が出てこないと思う(私はここで嵌った)。多分、起動ボタンの下にある表示が「自己所有」となっているので、これを「プライベートイメージ」に変更する→"Image_A_EC"が出てくるはず

        ■「アクション」を選択して「起動」を押すと、新しいEC2を作る手続に入るので、基本的には、いわれるがままにボタンを押していけば大丈夫(だと思う)

        • パスワードやら、秘密鍵やら聞かれてくるが、私は面倒だったので、"B"で共通して使っているものを、そのまま使えるような選択をした
        • あと、SSHでログインしやすくするため、ElasticIPも設定した
  • 5.確認
    • SSHでログインできたら、(多分)成功
  • 以上


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

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

http://kobore.net/wildcard_TLS.html


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-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-14 MAXWIN(マックスウィン) 金属タイヤチェーン タイヤチェーンの取り付け方、取り外し方 [長年日記]

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

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

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


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

    https://beautifier.io/


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

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