歩いたら休め

なんでこんな模様をしているのですか?

2019-01-01から1年間の記事一覧

【GB】gbdkで割り込み処理を実装しました

ボタンを押すたびにカウントアップする実装です。 github.com といっても大したことはなく、CPUにボタン押下時の割り込み処理が存在するので、そのときに実行する関数を指定しているだけです。 私は今までOSが存在しない低レイヤーのプログラミングをしたこ…

【GB】ゲームボーイでライフゲームを実装しました

ゲームボーイソフトを作成の練習のために、gbdkを使ってライフゲームを実装しました。 例えば今後は以下のようなことがしたいと考えています。 NES(ファミコン)向けに作成されたmmlファイルを、GBソフトに変換(トランスコンパイル?)して再生したい いろい…

【Python】クラス内のプライベート変数の名前解決方法についての調査

モジュールの外からアクセスするクラス( from sample import SampleClass )のために、以下のようなモジュール内のprivateな関数に利用するコードを書いていました。 # sample.py class SampleClass(object): def public_method(self): __private_function() …

【Rust】Rustで数値計算プロジェクトを試す その11

振動子の減衰系で、rulinalgの練習も兼ねて実装してみました。この場合のケースならいちいちクロージャ使う必要はなかったですね。 kiito.hatenablog.com 若干ハマった点としては、 rulinalg::vector::Vector<f64> * f64 は実行されるものの、 f64 * rulinalg::ve</f64>…

【Rust】Rustの行列計算ライブラリについて調べる

この間までLotka-Volterraの方程式をRustで解いて勉強していましたが、そろそろPythonの numpy.ndarray のような行列計算を楽にする機構が欲しくなります。 もちろん、実際のソースコードで使われているライブラリ(crate)が良いです(メンテナンスされておら…

【Rust】Rustで数値計算プロジェクトを試す その10

中間目標であったLotka-Volterraの方程式がシミュレーションで解けました。 shimaphoto03.com use gnuplot::{Figure, Caption, Color}; const A: f64 = 0.01; const B: f64 = 0.05; const C: f64 = 0.0001; const X0: f64 = 1000.0; const Y0: f64 = 100.0; …

【Rust】Rustで数値計算プロジェクトを試す その9

以前のコードを改造して、 x と v それぞれで微分方程式を指定できるようにしました。クロージャ便利ですね。 use gnuplot::{Figure, Caption, Color}; const K: f64 = 1.0; const M: f64 = 1.0; const A: f64 = 2.0; const X0: f64 = 0.0; const V0: f64 = …

【Rust】Rustで数値計算プロジェクトを試す その8

昨日のやつから、関数の中で x と y を += するように変更すれば、多少コードがスッキリするんじゃないかと思ってやってみました。 ミュータブルな参照で渡して、参照を外して…って感じなので書きづらい。多分間違った道に来たと思うので引き返します。 stac…

【Rust】Rustで数値計算プロジェクトを試す その7

クロージャを渡す実装をしました。 t の引数は結局使ってないので削除しました。 doc.rust-jp.rs の記法はトレイト境界というもので、これが無いと以下のようなエラーが出るのですが、 error[E0277]: the size for values of type `(dyn std::ops::Fn(f64, f…

【Rust】Rustで数値計算プロジェクトを試す その6

ひとまず、Rust習得の第二の中間目標として「Lotka-Volterra方程式を4次のRunge-Kutta法で近似計算する」ことを置いてみます。いきなり2重振り子を計算するのは、極座標とかラグランジアンみたいな概念が必要っぽくて、「大学時代に触れた覚えがあるけど急に…

【Rust】Rustで数値計算プロジェクトを試す その5

昨日の件を友達に話したところ、crate側がRustのバージョンに対応してなかった可能性が高いようです。 これってちょっと見てみたけど、crate側の実装の問題な気がする。gnuplotのラッパーの方使ったら出力できた。 https://www.mathgram.xyz/entry/rust/gd …

【Rust】Rustで数値計算プロジェクトを試す その4

昨日の続きで、Rustのcratesを利用してサインカーブをプロットしたいのですが、エラーが出てしまっています。gitconfigは、以前source treeを利用していた際のものが残っていただけだったので、ちゃんと設定し直しました。 エラー箇所を確認するためのシンプ…

【Rust】Rustで数値計算プロジェクトを試す その3

数値計算のプロジェクトでは、結局グラフの形式で出力することも多いと思います。csvで出力して古き良きgnuplotでもいいんですが、Pythonのmatplotlibみたいなのが無いか調べます。 pure Rustのこちらのライブラリを試してみます。 github.com しかし、こち…

【Rust】Rustで数値計算プロジェクトを試す その2

前回のあらすじ: 「Rustで数値計算(二重振り子)して結果をアニメーションで表示したい!」と思っています。クソ記事量産してる感もあるんですが、以前チュートリアルをしていて「どこまで自分が分かっていて、どこから先分かってないのか分からない」みた…

【Rust】Rustで数値計算プロジェクトを試す その1

これから伸びていって「今はPython(numpy)でやっているような数値計算もRustで、高速に抽象的に書けるようになるんじゃないかな」と思っています。 github.com 今まで何度かトライしたものの、「お前まだチュートリアルやってるのかよ」ってプログラミング友…

【メモ】「書かれていないこと」に注目する

私には英語圏出身の友達が何人かいるんですが、何を言ってるのか分からないときがあります。大抵プログラマーかアニメ・オタクなのですが、できるだけ自分の意見をしっかり(そしてなるべく建設的に)表明する能力や、時折日本人の私から見ると言動にカウン…

【本】イケてないソフトウェアエンジニアのための『リサーチの技法』

我々ソフトウェアエンジニアは、日々自分なりに新しい技術動向を調べて、それをまとめて適切な分野に投資していく必要があります。 それでなくても、あの新しいライブラリやプログラミング言語が良いとかいう話から、日々の業務で同僚はなんだかよくわからな…

【本】 『組織化の社会心理学』を読みました

『コミュニケーション学がわかるブックガイド』で気になった本で読んだものです。他にも『誰のためのデザイン?』とかも読みました。こちらはプログラマー関連でも有名ですね。 気になったアイデアとしてはこれくらい。ちゃんと読めばいろいろな示唆が得られ…

【Python】pyppeteerでのクローリング時に別ドメインのCSSを読み込む

pyppeteerを使ってクローリングする際、「JSを実行して値を取り出す」ため、セキュリティのための制限にひっかかることが割とあるようです。 私の場合、CSSの情報を取り出す際に、以下の問題に引っかかりました。 > document.styleSheets[0].cssRules VM5262…