構築作業メインの1日
某構築作業メインの日。
対外活動でHAPSについて学ぶなど。
とりあえず、GEO,LEO,HAPSの並びだけ覚えた
ネットワークグラフの可視化
前々から簡単に使えるアーミーナイフ的なグラフ可視化ツールを手懐けておこうと思っていた。
ということでgraph-toolというツールを導入した。
graph-tool.skewed.de
自分自身がcondaを使ってなかった事もありM1の依存関係諸々でちょいハマりしてしまったがとりあえず入った。
graph-tool,igraph,NetworkXと色々Pythonライブラリはあるみたいだが非常に早いのが売り出そうです。ダイクストラ(Single-Source Shortest Paths)、クラスタリング、ページランク、K-core(K縮退グラフ)、Minimum Spanning Tree(最小全域木)のアルゴリズムをIntel Corei9-9980 24GHzで比較を行っている。結果から見ると非常に早そう。
今日はほぼ環境構築のみで終わってしまったので徐々に使っていきたい。
あとは、環境がマンネリしすぎていたのでディスプレイを縦置きに変更してみた。
割と良さそうかもしれない。
犬を飼う事
サピエンス全史を読んで学んだ事。
犬を飼うと言う文化は、諸説あるが1万2000年前には、すでに行われていたそうである。狩や防衛のために飼っていたそうである。
また、アチェ族がかつて足手まといになる老人や赤子を殺してリスクを減らしていたと言う話に衝撃を受けた。今の文化では考えられないだろう。
今日は、Google App Scriptを書いてたら1日終わった。JavaScriptむずい。
堕落した社会人生活
今日は、10時からのミーティングで提出書類の確認をした。自分がメインで書いている資料と言う事もあり先輩に語気強めに言ってしまったことを反省。
午後からは出社し構築作業へ。NGAPなるAMFと接続するためのインターフェースをちょいと理解。あとは、風呂入って英会話してねるだけ。
Rust Boxの整理
Rustを身につけたく色々記事を覗きながら書く練習を進めているが忘れるのでここに残す。 今回は、Boxについて書く。
まずは、コンピュータのメモリに関して復習から始める。 OSが管理するメモリ領域は、いくつかあるがその中でアプリケーションが利用可能なメモリ領域で「スタック」「ヒープ」がある。 スタックは、コンパイラやOSが自動的に割り当て、開放が行われる領域である。サイズは、コンパイル、リンクする際に決められる。 Rustは、デフォルトではすべての値がスタックに割当てられます。
もう一方のヒープに関しては、アプリケーションがメモリが必要になった際に確保するためのメモリ領域として利用される。 C言語ではmalloc関数を用いて一定サイズの領域を確保する。 今回のRustではBoxと呼ばれる標準ライブラリを用いてメモリ領域の確保を行う。 以下のRust by Exampleを元にまずは、簡単なコードを作る。
struct Point {
x: f64,
y: f64,
}
fn boxed_origin() -> Box<Point> {
Box::new(Point {x:0.0,y:0.0})
}
fn main() {
let boxed_point: Box<Point> = boxed_origin();
println!("{}",boxed_point.x);
println!("{}",boxed_point.y);
}
上記では boxed_origin関数で座標を表すPointという構造体の座標(0.0,0.0)のデータを持つデータ領域をBoxを用いて一つ確保し、 そのデータをメイン関数側でBox型の変数を作り受け渡しを行っている。 二段階にポインタを挟むと以下の様になる。 struct Point { x: f64, y: f64, }
fn boxed_origin() -> Box
fn main() {
let box_in_a_box: Box<Box
}