JSXGraphをReactアプリで使う

JSXGraphというグラフを描画するライブラリがある。 JSXGraph - JSXGraph これをReactアプリに組み込みたかったので、jsxgraph-react-jsを使ってみた。 sytabaresa/jsxgraph-react-js: React component library for use Javascript or JessieCode for make JSXGraph boards インストール。 TypeScript対応はされていないので、JS用のライブラリを使う。 $ yarn add jsxgraph-react-js 1次関数をグラフ化するときは以下のように実装する。 import React from 'react' import JXGBoard from 'jsxgraph-react-js' const Component = () => { const xmin = -10, xmax = 10, ymin = -10, ymax = 10 const logic = (board) => { board.suspendUpdate() const func = (x) => { return x + 1 } board....

May 1, 2021

chronoクレートを使う

Rustアプリで時間を取得したかったので、chronoクレートを使ってみた。 外部クレーなので、インストールして使用する。 $ cargo add chrono 時間関連の処理が色々実装されているらしいが、今回はローカルの現在時刻が欲しかったので以下のように実装。 use chrono::Local; fn main() { println!(Local::now().format("%Y-%m-%dT%H:%M:%S")); } 参考 chrono - Rust Rustで日時を扱う - Qiita

May 1, 2021

Gitのデフォルトブランチをmainにする

Gitのデフォルトブランチがmainになるように設定した。 git v2.28でデフォルトブランチをmainに変更する - Qiitaを参考にしようと思ったが、gitのバージョンが古かったのでこれを更新することから始める。 GitはmacOSにデフォルトで入っていたものだったので、HomeBrewで最新のものをインストールする。 $ brew update $ brew install git $ git --version # 更新されていることの更新 あとは上記を参考に設定を行う。 $ git config --global init.defaultBranch main

May 1, 2021

cargo-editをインストールした

Cargoプロジェクト内でパッケージの追加をかんたんに行いたかったのでcargo-editをインストールした。 $ cargo install cargo-edit これで、add, rm, upgradeがサブコマンドとしてcargoに追加される。 詳細は --help で確認できる。 # add: パッケージのインストール # バージョンを指定しなければ最新がインストールされる $ cargo add reqwest # オプションが色々あり、featureも指定可能 $ cargo add tokio --features full # upgrade: Cargo.tomlで管理しているクレートを更新する $ cargo upgrade # rm: クレートを削除する $ cargo rm reqwest 参考 cargo-edit - crates.io: Rust Package Registry

April 29, 2021

RustでHello World

RustでHello Worldするまで。 最近はasdfを使用しているので、rustもこれでインストールした。 $ asdf plugin-add rust $ asdf install rust latest # このときは1.15.0がインストールされた $ asdf reshim rust $ asdf global rust 1.15.0 $ cargo -V 適当にディレクトリを作って main.rs ファイルを作成する mkdir rust_hello-world cd rust_hello-world vim main.rs fn main() { println!("Hello World"); } 作成したrustファイルをコンパイルして実行する。 $ rustc main.rs $ ./main Hello World 参考 Hello, World! - The Rust Programming Language 日本語版

April 29, 2021

iTerm2のデフォルトシェルをfishに変えた

fish shellはHomeBrew等でインストールし、パスが必要になるので確認しておく。 $ brew install fish $ which fish /opt/homebrew/bin/fish VSCodeをから設定を開き、以下の順番で作業する。 Settingsを開く terminal.integrated.shell.osx を検索 Edit in settings.json をクリック jsonの値としてfish shellへのパスを記入する あとは新規でターミナルを開くとfish shellで立ち上がる。 参考 Mac Visual Studio Code のターミナルのShellをZshに変更する - Qiita

April 29, 2021

ニーアレプリカントをやっている

ニーアレプリカントのリメイクをやり始めた。 難易度ノーマルで20時間ほどで一周目が終わった。 ストーリー進行を優先してやって、サブストーリーは序盤だけ回収した。 アクションRPGだが、操作難易度はそこまで高くない。 むしろ、ストーリーを展開してプレイヤーを引き込もうとするタイプのゲームなので、全体的に何度は高くない。 ストーリーは面白い。 ただ、一周しただけだとおぼろげな部分が多く、はっきりしない部分が多々残っている。 マルチエンドということなので今後何週化することになると思う。 すでに2周目を始めているが、今の所真相が気になるので飽きずに続けられている。 以前やった「十三機兵防衛圏」のように、ゲームという特性を活かして何度も周回させつつ、少しずつ謎を解いていくのも面白い。 これが終わったら、続編であるニーアオートマタも調べてみようと思う。

April 27, 2021

juliaで接線を求める

Juliaで微分した結果を使って接線の方程式を求めるプログラムを書いてみた。 戻り値をlambdaにすることで、微分した結果や接線を求めた結果も関数として再利用できるようにしている。 # 微分の定義を式にする # lambdaを返すことで、戻り値も関数になるようにする diff(f) = (x -> (h = 0.0001; (f(x + h) - f(x)) / h)) # 接線を求める # こちらもlambdaを返すようにして、関数を戻り値にしている g(f, a) = (x -> diff(f)(a) * (x - a) + f(a)) # f(x)のx=1の点における接線を求める f(x) = (x - 1) * (x + 1) f_ = g(f, 1) using Plots plot([f, f_])

January 8, 2021

juliaのPlotsが使いやすい

久しぶりにjuliaのplot関数を使ってみた。 グラフを表示するだけならば、関数を渡すだけでデフォルトの範囲でグラフ化してくれる。 オプションもたくさんあり、いろいろなグラフを書くことができる。(ほとんど使えていないが…) Home · Plots # Plotsのインストールが必要 using Pkg; Pkg.add("Plots") using Plots f(x) = sin(x) g(x) = cos(x) # -5 ~ 5 の区間でf関数のグラフを表示する plot(f) # -2π:0.001:2π の区間でfとgのグラフを表示する plot(-2π:0.001:2π, [f, g])

January 7, 2021

今の作業環境 2020年末版

2020年の棚卸しとして、現在の自分の作業環境をまとめておく。 メインマシン: Macbook Pro 2018 会社で支給されたもの。 サブマシン: ThinkPad 3rd Generation 中古で2万ぐらいで買ったWindownsマシン。 ほとんどMacbook Proで作業しているのであまり出番はないが、カフェで作業したりするときに持ち運んでいる。 キーボード: Happy Hacking Keyboard Professional HYBRID Type-S もともとHHKBを使っていて、在宅が始まったときに自宅用に購入した。 はじめは有線でつないでいたが、めんどくさくなったので現在はBluetoothで接続している。 マウス: Kensington スリムブレードトラックボール こちらも在宅が始まったときに合わせて購入。 腱鞘炎対策としてトラックボールをずっと使っていて、ケンジントンの指全体を使えるものが気に入っている。 スリムブレードはホイール操作のときの操作音も心地よいので、買ってよかった。 メインエディタ: Emacs 今年、VSCodeからEmacsに変更した。 変更した理由は特にはないが、前々から使ってみたかったので思い切って環境を移してみた。 ずっとvimのキーバインドで生きてきたのでまだ戸惑いやショートカットを検索しながら使っているが、思ったよりも快適に使えている。 ブラウザ: Vivaldi もともとBraveブラウザを使用していたが、今年に入ってフリーズすることが増えたのでVivaldiに乗り換えた。 Chromiumベースのブラウザなので拡張機能をインストールしてしまえば、それほど違和感なく使えている。 ただ、なんとなくBraveよりも挙動が重たいように感じる。 設定次第か? 今年の一番大きな変化はエディタがEmacsになったこと。 来年はEmacs Lispも書けるようになりたいが、もしかしたらどこかでVimに戻っているかもしれない。

December 30, 2020