Programming
このようなゲームが一区切りつき、とりあえず完成ということになりました。以下の記事ではゲームとしての側面を語ったのですが、技術的な側も忘れる前に語っておきたいと思っています。 burion.net 概要 このゲームでは gif 画像のように「虫」と呼んでいる…
非同期なオンラインで平等に当番を決めたいというときありませんか? リモートワークで面倒だけどやらないといけない単純作業が発生した際に、最初に気づいた人がやるのだと偏りが出て不平等じゃない?という声があってサイコロを降ってみたらどうか?となっ…
OS: Ubuntu 22.04.4 LTS Unity: 2022.3.25f1 LTS こういう環境で、アセットストアで無料で登録したアセットをダウンロードしようとしたら、The download could not be completed. See details in console. と出てきてダウンロードが一向に進まなくなった。 c…
【The Garden】このガーデンには虫のような人工生命(強化学習AI)がくらしています。そんな虫たちをただじっくりと観察するだけの生態系シミュレーションゲームです。
MD5 (Message Digest 5) は暗号学的ハッシュ関数で、電子署名やパスワードのハッシュ化のような暗号的な用途に利用されていた(が、今は暗号用途で使ってはいけない)。 暗号学的ハッシュ関数はこの性質を満たさなければいけないとされている。 一方向性: ハ…
趣味で開発しているシミュレーションゲーム的なもので当たり判定っぽいものが必要になった。 ゲームでは何匹もの虫がいる。虫1匹毎に周囲の情報を集めてそれを Neural Network のモデルに渡してから次の移動方向を決定する...、みたいな流れになっている。(…
ミニPC vs 埃ラズパイ 最近ミニPCを買いました。趣味で CPUをそこそこ使う処理を一日中動かしたいなぁという状況になったのですが VPS だと費用がバカにならないので自宅サーバーとして手頃なミニPCにしてみました。 TRIGKEY 製の安価な物で、CPUコアが8個も…
1年以上昔にこんな記事を書いた。 burion.net 久しぶりに読み返してみると、疑似乱数が決定的・周期的なことまではなんとなく示せているものの具体的な予測方法は全然書いてないじゃん!!!と内なる声に突っ込まれた。「予測できるか試したい」なんてタイト…
UUID が16進数がハイフンで分けられた特徴的なフォーマットをしているのはなぜだろう?
デフォルトで tensorflow の model.fit() を実行すると以下のようなログが出てくる。見たいログが埋もれてしまい邪魔なので消そうと思ったがすぐ見つからなかったので残しておく。 Epoch 1 / 8 31ms 122us/step - loss=0.150 verbose (ModelLoggingVerbosity…
誰しも一度くらいは、乱数生成器を疑似体験1してみたいと思ったことがあるのではないでしょうか? あなたは乱数が好きですか?私はどちらかと言えば好きよりの人間です。どれくらいかと言えば、三度は思うほどに。飯の代わりになるほどに。 乱数を疑似体験し…
数学や数式をなるべく使わずに半年前の俺に話すならこんな感じかな~と強化学習をイメージできるように頑張って説明してようと思う。
エスケープだけではXSSを防げないケースをまとめてみる。最後にテスト方法も紹介する。
例えば以下のようなスクリプトがあって、その結果を bash 内で実行し標準出力を環境変数として export したい。しかも、そのスクリプトは失敗する可能性があると仮定する(インターネット接続が必要なのに繋がってない環境で実行された。設定ミスによって権…
Node.js で PostgreSQL にアクセスするために node-postgres を使っている。設定で query_timeout を設定すると、実行時間が長いクエリをタイムアウトさせることができる。 しかし、タイムアウト後に DB 内のプロセスが残ったままになってリソースを圧迫し続…
ある OSS を使いたい。そして、テスト環境と本番環境ではもちろん異なる config ファイルを使う必要がある。 そういった状況での一番単純な方法として、test-config.yaml, prod-config.yaml のように環境毎の設定ファイルを作ることがまず思い浮かぶが、以下…
Tensorflor.js をブラウザで動かし、モデルをループで推論(predict)させていると GPU のメモリがジワジワと増え続け最終的にクラッシュしてしまうという現象があった。結論としては tf.Tensor オブジェクトは状況によっては(WebGL バックエンドが自動的に…
Web アプリケーションの脆弱性、特に有名なものに3つあるが CSRF だけはピンと来なかった。色々調べて理解できたので具体的な例でまとめてみる。 XSS SQL Injection CSRF CSRF の脆弱性 CSRF (Cross-Site Request Forgeries)脆弱性があると、利用している…
Node.js で依存関係をうまく制御するために、Pub/Sub パターンを使いたかった。調べて見つけた Rxjs の Subject を利用することで上手く実装できたと思う。Pub/Sub を使うと何が嬉しいのかと、Subject を使った実装をまとめてみる。 例には以下の FizzBuzz …
このライブラリで作成した consumer が queue を消化できなくなり、メモリ使用率がじわじわと上昇し(300MB/8h 位の速度) OOM で停止してしまった。 RabbitMQ の GUI やサーバーのメトリクスを見ると以下のような状況になっていた。 起動しているすべての c…
このような Dockerfile を $docker build . -t webapp:latest でビルドした後、$ docker run webapp:latest でコンテナを立ち上げることができる。 # Dockerfile FROM python WORKDIR /app COPY . /app RUN pip install flask ENTRYPOINT ["bash", "entorypo…
Jest は Meta(元 Facebook) が保守している、JavaScript のテスティングフレームワーク、らしい。Jest を使うと、コード網羅率(カバレッジ)を簡単に計測できる。 カバレッジを計測することで、テストが不足しているコードが検知できるようになって嬉しく…
UUID は分散システムで一意な Identifier として使えること(= 衝突しない前提で使える)を目的にした ID で、その version 4 はランダムに作るやつ。 この前ふと、uuid v4 をパスワードのような使い方をしていいのか?が気になって調べてみた。 Secure - Cr…
以下のようなサードパーティのクラスがあって、メソッドに渡された引数や結果をログに残すためにインターセプトしたい。 自分らが管理しているクラスなら、デコレーターを作るのがいいと思うが、サードパーティーのクラスを書き換えるのはちょっと嫌だ(保守…
Object.getPrototypeOf() でプロトタイプにアクセスし、そこから Object.getOwnPropertyNames() で得られる。 Object.getOwnPropertyNames()は列挙不可能プロパティも取得できるという特性を持っているので取得が可能になる。
良い設計とは?と聞かれるとパッと答えるのは難しいが「悪い設計とは?」と聞かれたときには以下のようなものが思い浮かぶ。
TypeScript + stripe-node で API の requestId や statusCode 等を取得したい時、API の返り値の lastResponse から得られる。しかし、 Property 'lastResponse' does not exist on type 'Session'. と TypeScript に怒られることがある。 var customer = a…
※細かく調べたり検証を行ったわけではないので、話半分に見てください 以下の記事で疑似乱数(xorshift)について考えていた時にある疑問が浮かんだので、それについて書いてみる。 buri83.hateblo.jp 実験のしやすさのため、周期が 216 - 1 の xorshift を…
世の中には2種類の人間がいる... という文句、妙に説得力がありそうで、この後主語もスケールも大きい名言が続きそうなやつ。 人間だけではなく疑似乱数についても、2種類に分けられるらしい。 「世の中には2種類の疑似乱数がある、次の出力を予測できるか出…
オブジェクト内で同じ意味を持つ変数が複数存在する場合(つまり、DRY な状態になっていない)、不整合が発生する可能性がある。 例えば、注文を表す Order と、商品を表す Item を考えてみる。Order は複数の Item オブジェクトをまとめる役割である。Item …