プログラム

diagram-js 検討

とあるものが必要なきがしてので、どのように作るのがいいか検討していた。 GUIが欲しかったので 表が得意そうなライブラリが豊富なjavascriptで書くことにして、 javascriptで書くのがつらそうなコアのバックグラウンド処理は webassemblyとか使おうかなと…

nodejs Webpack-dev-server js html ウェブブラウザ更新

webpack dev serverの設定メモ エディタでjsをいじるとブラウザで自動リロードされる htmlをいじると自動リロード bundleも更新される(webpack-dev-serverはbundleしたものをメモリ上に置くので実態のファイル自体は更新されない? その他 ファイル構成 app/…

STM32Cube MXプロジェクト生成

自分の使いたいMCUを検索して右上のStart Projectする。 Pin Configuration を適当に FPGAならQuartus 13とかProject Navigatorとか かなり昔からこんな画面のPINコンフィギュレーションソフトウェアがあったのに 代表的なMCUにはなぜないんだろうと思ってい…

STM32Cube MXを導入

MXCubeはStdLibの代替になれるぐらいには洗練されたと聞いたので ようやくSTM32Cubeを利用するためにインストールする。インストーラーをダウンロードする。 www.st.com 登録しなければならないらしい。 メールに送られてくるリンクからダウンロードする。MC…

Ryzen 電力測定⑥

e-tipsmemo.hatenablog.come-tipsmemo.hatenablog.comグラフ表示できるようになったので、 Rustで書いたWebsocketのサーバーから送られてくるjsonでグラフを更新する。 jsonは以下のような形 { "time":2019/01/14 02:50:07, "voltage":102.396, "current":10…

Ryzen サーバー 電力測定⑤/Chart.js

前回はjsonで電力測定値をクライアントに送れるようになった。 e-tipsmemo.hatenablog.com これをきれいにグラフ化したい。 そこでChart.jsを使う。 Chart.jsによる折線グラフ作成<Chart.js<Javascript<木暮仁とりあえず必要 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script> 表示部分は <body> <input type="text" name="message" value=""> </body>

Rust websocket/Ryzen サーバー電力測定④

e-tipsmemo.hatenablog.com の続きで e-tipsmemo.hatenablog.com ができるようになったので。測定された時刻、電圧、電流、ワット数をserde_jsonでシリアライズして送信 Cargo.toml serde = "1.0" serde_derive = "1.0" serde_json = "1.0"#[derive(Serializ…

rust websocket server sender clone

e-tipsmemo.hatenablog.com と e-tipsmemo.hatenablog.com を組み合わせて、 Serverがlistenするスレッドとは別のスレッドからも、sendしたかった。 extern crate ws; use ws::{listen, Sender, Handler, Error, ErrorKind, Result, Message, Handshake}; us…

rust websocket

サーバーアプリ extern crate ws; use ws::{listen, Sender, Handler, Result, Message, CloseCode, Handshake}; use ws::Message::Text; use ws::Message::Binary; use ws::util::Token; struct Server { out: Sender, } impl Handler for Server { fn on_o…

Rust lopdf③

e-tipsmemo.hatenablog.com 文字列を抽出するのは最後 let mut textline : Vec<Object>= vec![]; for l in tmp.split('\n') { match op(CompleteStr(l)) { Ok((_, operate)) => { let operator = operate.operator; match operator.as_str() { "TJ" => { textline.ex</object>…

Ryzen 録画サーバー 電力測定②

e-tipsmemo.hatenablog.com の続き・・・・・ だが、Raspberry piで何度bluetoothctlを利用してWattcheckerに接続し直しても 一向にserialportサービスが見えない・・が 結局OSをRaspberry pi Stretchに変えたらうまくいってしまった・・・www.raspberrypi.o…

ubuntu ocaml install & test

メモ 環境はWSL上で Ubuntu 16.04 fish shell install sudo apt install ocaml OK Syntax Highlight sudo apt install opam opam initopam initをするとインストールされているshellに応じて、 自動で設定を行うか聞いてくる。 最後に以下を実行しろと言って…

Raspberry piでSPI通信

RaspberryでSPIする必要がでてきてその方法を調べたのでメモ。 しかもPythonじゃないといけない。 python好きじゃないけど pi@raspberrypi:~ $ cat /proc/version Linux version 4.14.66-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crossto…

C++ Rest SDKでtwitter④

http://e-tipsmemo.hatenablog.com/entry/2018/07/14/000000e-tipsmemo.hatenablog.com 次は画像をアップロードする方法を示す。 昔は画像のアップロードとツイートを同時にできるENDPOINTがあったらしいが、今は使えないので 画像をアップロードしてからそ…

C++ Rest SDKでtwitter③

e-tipsmemo.hatenablog.com 続き。認証が完了したら、 oauth_tokenはaccess token oauth_token_secretはaccess token secret を得ている。ツイートを行う。 signatureを作るパラメータにはツイートと、画像をアップロードしてmedia_idがあるならばあるならば…

C++ Rest SDKでtwitter②

e-tipsmemo.hatenablog.com の続き。requestTokenが成功すると oauth_token=xxxxxx&oauth_token_secret=yyyyy&hoge=zzzzzみたいな文字列が返ってくる。 Request TokenとRequest Token Secretとなんとかid(つかわない)https://api.twitter.com/oauth/authoriz…

C++ Rest SDKでtwitter①

TwitterつかうアプリケーションでC++ Rest SDKを利用した。 C++ Rest SDKはexperimentalだがoauth1 oauth2の実装もしてあったが使い方がよくわからなかったので httprequestを直接つかった。Twitter認証のステップをメモしておく。最初にrequestTokenを得る…

Visual Studio 2017 boost xml serialization

Nuget パッケージマネージャーでboostと検索して プロジェクトのプラットフォームツールセットのバージョンにあったBoostをインストールする 今回はv140を入れた。 準備 シリアライズしたいクラスに追加する。 #include <boost/serialization/serialization.hpp> #include <boost/serialization/nvp.hpp> #include <boost/serialization/string.hpp> class hoge { p</boost/serialization/string.hpp></boost/serialization/nvp.hpp></boost/serialization/serialization.hpp>…

Visual Studio 2017 C++ Rest SDK static library build

Visual Studio 2017でcpprestsdkの静的リンクライブラリを作成したときにでてきたエラーの解決方法(2018/06/19) Cannot fimd Build/Release.Tests.settings github.com からリポジトリをクローンするのだが、WSLからgitコマンドを利用したところ、一部のファ…

C++のコンパクトなハッシュライブラリ

HMAC-SHA1を計算したかった。 win32にはcrypt32とかあるけどよくわからなかったのでgithub.com便利 #include "../sha1.h" #include "../hmac.h" #include <string> #include <vector> #include <iostream> int main() { std::string input= "what do ya want for nothing?"; std::strin</iostream></vector></string>…

stringとwstringとtstring

Visual Studioで文字列を扱うとき、 以下の設定の違いで TCHARの定義がかわる。 参考 Tchar.h における汎用テキストのマッピング typedef std::basic_string<TCHAR> tstring; typedef std::basic_stringstream<TCHAR> tstringstream; typedef std::basic_ostringstream<TCHAR> tos</tchar></tchar></tchar>…

C++ Rest SDK Visual Studio 2017 E0427 Error

WindowsでWin32のアプリを作っていたとき http requestとかするときいいライブラリないなみたいな記憶があって わざわざC++/CLIで、C#のHttpRequestクラスみたいなものをつかてたけども、MicrosoftのメンテしているC++ Rest SDKという物があったらしい。 (い…

DataContractJsonSerializerでList<T>をシリアライズ・デシリアライズする。

{ "TEST": [ { "name": "aaa", "hoge": "bbb", "foo": "ccc" }, { "name": "ddd", "hoge": "eee", "foo": "fff" }, { "name": "ggg", "hoge": "hhh", "foo": "iii" }] } こういうJSONがある。 まずこれが正しいのかチェックした lab.syncer.jp OK次にこれを…

Rust レイトレーシング ⑩ 三角形

ポリゴンの衝突判定のためにレイと三角形の衝突を実装した。 球と同様にHITトレイトを実装する。 三角形との交差判定は risalc.info にある通り。 面内のベクトルは、三角形の法線と直行するのでそこからがわかる。 ベクトルを求め、三角形を張る、を基底と…

Rust レイトレーシング ⑨ 金属・ガラス

金属とガラスを実装した。 それぞれMaterial Traitを実装し、光が当たったときのその光のゆく方向を計算する。 再帰の呼び出しに条件を付けることで、不必要なほどの反射光の計算を適当に減らす。 fuzzは反射時のランダム要素 ガラスの球と屈折率 わかりにく…

Rust レイトレーシング ⑧ 素材準備

今更このようなサイトを発見してしまったのでここも参考にしていこうと思う。 レイトレーシング入門1「光線の基本と反射」 - Qiita色々な素材を利用できるようにするために、Material Traitを定義してこれを持つ構造体を各素材とする。 このTraitを実装する…

Rust レイトレーシング ⑦床

http://e-tipsmemo.hatenablog.com/entry/2018/02/17/000000e-tipsmemo.hatenablog.com複数の物体を表示できるようにする。 とりあえず複数の球体をvecに入れる。 shapelistにもHITトレイトを実装することで前と同じようにhitを呼ぶだけ。 t0 ~ closest間の…

MIPS 命令順序入れ替えない

前にこのような記事を書いたが、 e-tipsmemo.hatenablog.comこのままだとMIPSの遅延分岐やSW/LW関連の依存の解消のために勝手に命令が入れ替わってしまう。解決法: asmの先頭に.set noreorderをつける。このプログラムを比較してみる。 add $1, $0, $10 add…

Rust レイトレーシング ⑥ スーパーサンプリング

Rustでの演算子オーバーロードを行うために、構造体にAdd/Mul/Div Traitを実装する。これを用いることで足し算、掛け算、割り算の演算子を使える。 スーパーサンプリングは光線の方向にランダムな要素を加えて、その方向から得られた色から平均をとることで…

Rust レイトレーシング ⑤ 法線

http://e-tipsmemo.hatenablog.com/entry/2018/02/05/000000e-tipsmemo.hatenablog.com 法線を用いて球に色を付ける。 交差した点の座標が必要。あとは前回のものを微修正するだけでOK 法線を計算をしてHitRecordに詰める。 matchではSomeの中に引数のような…