歩いたら休め

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

【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…

【本】『わざ言語―感覚の共有を通しての「学び」へ』を読みました

年末なので本ばかり読んでます。普段と違う環境だと本に逃げてしまうので、なんとかプログラミングに集中する方法も見つけたいです。 わざ言語―感覚の共有を通しての「学び」へ作者: 生田久美子,北村勝朗出版社/メーカー: 慶應義塾大学出版会発売日: 2011/03…

【本】ソフトウェアエンジニアのための「アサーション入門」

…ってタイトルで書こうと思ったんですが、だいたいこのサイトに書いてある通りの内容ですね。 el.jibun.atmarkit.co.jp アサーションと言っても、assert文を使った契約的プログラミングの話ではなく、この間の『コミュニケーション学がわかるブックガイド』…

【Python】asyncioの代替ライブラリtrioを調べてみた

この記事はPython その2 Advent Calendar 2018の遅れてきた15日目の記事です。 最近、クローリング用のプログラムのasyncioを使った並行処理のプログラミングをしており、「asyncioのベストプラクティス」という趣旨の記事を書こうと思っていたのですが、自…

【本】『コミュニケーション学がわかるブックガイド』で気になった本

これ読みました。けっこう面白い本も紹介されていたので、これから学んでいこうと思った本のアタックリストをメモしておきます。 コミュニケーション学がわかるブックガイド作者: 東京経済大学コミュニケーション学部出版社/メーカー: エヌティティ出版発売…

【Python】pyppeteerの非同期処理をこんな実装で行おうと思ってるんですが、どう思います?

pyppeteerで非同期でクローリングする実装をしていて、エラー時に自動でbrowserとpageを開き直してリトライ…って考えてたんですが、あまりにリトライ処理が煩雑になるので 毎回処理したい固定長のurlのリストを受け取る レスポンスはrequests-htmlのものが便…

【本】ソフトウェアエンジニアが読む『ソーシャル・マジョリティ研究』

普段、ソフトウェアエンジニアとして仕事をしていて「複数人で目的を共有する難しさ」「自分の行動を言語化(説明)する難しさ」を感じています。 私はソフトウェアエンジニアの仕事を「いかに楽に欲しい機能を実現するか(もしくは今までに無かった機能を実…

【Python】pyppeteerを非同期コンテクストマネージャー用のクラスでラップして遊ぶ

Pythonから簡単にHeadless Chromeを利用できるpyppeteerというライブラリがあります。Headless Chromeの操作をラップしてくれてかなり便利なのですが、ほとんどの関数やメソッドが非同期(async)nあので、しばらく遊んでasync/awaitを使った実装に慣れる必要…

【メモ】『アスペルガーと知らないで結婚したらとんでもないことになりました』を読みました

偶然見かけたこちらの本を読んだのですが、個人的にはかなり面白い内容でした。 アスペルガーと知らないで結婚したらとんでもないことになりました (旦那(アキラ)さんはアスペルガー)作者: 野波ツナ,宮尾益知(どんぐり発達クリニック理事長)出版社/メーカー:…

【Python】Requests-HTMLでスクリーンショットを撮る

Pythonの著名なHTTPクライアントライブラリのrequestsに似たAPIで、シンプルなAPIでスクレイピングに必要な機能が実装されています。実際には他のいくつかのライブラリをラップしています。 Requests-HTML: HTML Parsing for Humans (writing Python 3)! — r…

【プログラム】Google Apps Scriptで簡単にSlackニュース通知を作るスクリプトを書きました

社会人になって数年も経つと、オタク趣味を続けるのも大変になってきました。 以前はいくらでも音楽の情報を追って遊んでられていたのですが、そこそこ真面目にプログラマーやろうとすると「あのグループって今は活動してるんだっけ?」とか「知らないうちに…

【メモ】『ノートによる情報管理』を身につけるために読んだ本

『エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)』を読んだり、知り合いにいろいろ聞いてから、自分の情報・タスク管理法、勉強法を見直そうかなと思っています。 ただ、こういうのは人それぞれです。例え…

【メモ】知り合いから薦められた仕事本のアタックリスト

【まとめ】プログラマーが愚直に仕事を進めるための方法 - 歩いたら休め 「最近仕事でもプライベートでも忙しい時期が続いて、『やらなきゃいけないこと』が管理できなくなってきたからGTDの本読んでるんだ」って話したら、知り合いからいろいろと薦められま…

【まとめ】プログラマーが愚直に仕事を進めるための方法

最近、精神的に大変な仕事とか、プライベートでやっているイベントとか、いろいろ重なってしまって大変でした。 私は全く器用なタイプではなく、複数いろいろやっていると、例えば「他の仕事のことが気になってこっちの仕事もなかなか進まない」というような…