「マンデルブロ集合を鑑賞するツールを作成した」開発日記

マンデルブロ集合を鑑賞するツールを作成した youtu.be 先日動画を公開しました。 マンデルブロ集合を鑑賞するツールを作成しました。 Unity や three.jsなどは使わずに、ゲームエンジン部分も自作です。 よかったら上記の動画も確認してみてください。 また…

「機械式時計をUnityで再現した」開発日記

機械式時計をUnityで再現した youtu.be 先日動画を公開しました。 シンプル目な機械式時計の内部にある、歯車と針の動きを再現しました。 歯車の動きの連鎖と、歯車の形の3Dモデルを自分で開発しました。 よかったら上記の動画の方も確認してみてください。 …

二分探索と線形探索のアルゴリズム

概要 二分探索と線形探索は、リスト探索という問題を解く方法(アルゴリズム)の一種。 リスト探索という問題は、基本的で理解しやすい問題です。 そのため、アルゴリズムの重要性を学ぶのに最適だと思います。 プログラマーでもアルゴリズムを意識する機会…

TypeScriptとWebGLでポリゴンを描画する方法

目次 はじめに webpack + TypeScriptのプロジェクトを作成する シェーダのソースコードをimportする 実際にポリゴンを描画する さいごに 1. はじめに この記事では、WebGLでポリゴンを描画する方法を紹介します。 言語はTypeScriptを使います。 わざわざJava…

いまさら聞けないJavaScriptのPromiseを丁寧に解説

目次 はじめに Promiseとは Promiseを使う 3.1. 基本的な使い方(then, catch) 3.2. 実行される順番に注意 3.3. then, catchが両方実行されることもある Promiseを作る 4.1. Promise.resolve(), Promise.reject() 4.2. new Promise() まとめ 1. はじめに こ…

go言語で、リクエストヘッダーを表示するだけのサーバを開発した

目次 はじめに go言語でサーバを実装する方法 リクエストのパスを取得する方法 リクエストのヘッダを取得する方法 動作確認 さいごに 1. はじめに たまに「このリクエストってどんなヘッダが付いてるんだ?」っておもう時ありませんか? 自分の場合はすでに…

標準正規分布から(いい感じの)乱数をとってみた

目次 はじめに 一様分布と標準正規分布 ボックス=ミュラー法 実装してみた まとめ 1. はじめに (擬似)乱数といえば、みなさん一度は使ったことがあると思います。 各言語で準備されている関数などを使ってランダムな値を取得できます。 特によくあるのは0以…

単純パーセプトロンの重み修正量を導出する

目次 はじめに 変数や関数の定義 パーセプトロンの性能を計測する 最小値問題 勾配降下法 修正量の計算 まとめ はじめに 以前の記事で単純パーセプトロンの学習について、 下記のような計算を行うとご説明しました。 $$ w_j \leftarrow w_j - \alpha\sum_{i=…

最もシンプルな「学習するプログラム」を実装してみた

目次 最もシンプルな「学習するプログラム」 空前のAIブームと単純パーセプトロン ニューロン(神経細胞) 単純パーセプトロン パーセプトロンの出力を計算する AND演算ができるパーセプトロンを考える パーセプトロンの学習 実装 実際に学習させる まとめ …

Go言語でバイナリファイルを読み込む

目次 概要 準備 ソースコード 解説 ハマったところ まとめ 1. 概要 ちょっとしたバイナリファイルを読み込たかったので、 Go言語で実装してみたソースコードを備忘録としてのこしておきます。 ソースコードは下記にあります。 github.com 2. 準備 プロジェク…

Nuxt.js + Typescript + Vuetify の空プロジェクトを作成しました

目次 概要 プロジェクトの作り方 さいごに 1. 概要 Webで新しいプロジェクトを作るときって意外と大変だったりしますよね。 あの設定ファイルってどうするんだっけ。 あのライブラリはどこで有効にできるんだっけ。 そんなことに悩むのが面倒だったので、基…

Nuxt.js と Typescript で Store の変更と読み出し

目次 概要 準備 Storeの変更 Storeの読み出し まとめ 1. 概要 最近Web開発はNuxt.js + Typescriptの組み合わせが気に入っています。 せっかく気に入っているので、この組み合わせでの開発ノウハウを記載しておきます。 今回は基礎の基礎、Storeの変更と読み…

Unity でマウスイベントを扱いやすくするクラスを実装する

目次 この記事の目的 概要 マウスイベントを扱いやすくする 実際に使ってみる まとめ 1. この記事の目的 この記事ではUnityでマウスイベントを扱いやすくする方法を紹介します。 ことの発端は、自分でマウス操作を実装しようとした際に Input クラスを使っ…

フィボナッチ数列の第k項をO(log n)で計算しようとしたけど難しかった話

目次 フィボナッチ数列 ビネの公式 計算誤差について 計算の工夫 最終的な計算時間 サンプルコード 1. フィボナッチ数列 フィボナッチ数列は、イタリアの数学者レオナルド・フィボナッチの名前をとって名付けられた数列です。 数列の決まりは、「ある項は、1…

なぜ数を0で割る「ゼロ除算」はダメなのか

目次 この記事の目的 1を0以外で割るといくつになるのか 結論 1/0 が無限になる時がある 1. この記事の目的 プログラミングをしていると、やってはいけないと言われる「ゼロ除算」ってありますよね。 実際にゼロ除算を行うと、例外が吐かれたり、無限などの…

フィボナッチ数列は再帰で実装するな

目次 この記事の目的 フィボナッチ数列 再帰で実装 ループで実装 計算時間の違い まとめ 1. この記事の目的 プログラミング経験者って、なんだかんだでフィボナッチ数列を実装したことがありますよね。 みなさんはどのように実装しましたか?覚えてらっしゃ…

【Docker】同じソースコードを複数バージョンのJDKで実行する方法

目次 この記事の目的 ソースコードを準備する Dockerコンテナ上でコンパイルと実行 複数バージョンのJDKで実行 まとめ 1. この記事の目的 同じソースコードを複数バージョンのJDKで実行する方法を紹介します。 これができると、JDKごとにパフォーマンス測定…

【Java】文字列を10万回連結してみた【String vs StringBuilder】

目次 この記事の目的 文字列連結の2種類の仕方 パフォーマンスを比較する 10万回ではなく1000回であれば 結論 1. この記事の目的 Javaで文字列を連結する際は、StringとStringBuilderのどちらを使えばいいのかを考えたいと思います。 String と StringBuild…

【Java】なぜ文字列リテラルは演算子で比較できる時があるのか

目次 この記事の目的 String Constant Pool String#intern String#intern の実装を追う まとめ 1. この記事の目的 Javaで文字列同士の比較(等しいか判定)したい時は、 equals メソッドを使いましょう。 とは初心者に最初に教えるべき1つの教訓になってい…

【Java】2つの線分の交点を求める

目次 この記事の目的 x, y-平面上の線分を表すクラス 2つの線分の交点をもとめる方法 まとめ 1. この記事の目的 この記事では2つの線分の交点を求める方法を紹介します。 そのために必要になる、線分を表すクラスのコードも紹介します。 サンプルコードを上…

【Java】2つのベクトルがなす角度を求める

目次 この記事の目的 三点がなす角度の求め方 x,y-平面上の座標を表すクラス ベクトルの差、長さ、内積、外積 三点がなす外角を求める まとめ 1. この記事の目的 この記事では、xy-平面上の点の情報から角度を求める方法について紹介します。 特に、三点を…

UnityでC++のクラスを管理する

目次 この記事の目的 概要 C++のコード C#のコード まとめ 1. この記事の目的 既存のC++の実装をUnityでも使いたい時にこの記事を参照してください。 C++のクラスを使って実装されていれば、そのクラスをUnityで管理できます。 サンプルコードをGitHubにあ…

C++ の std::vector と参照の組み合わせには注意

目次 この記事の目的 問題のコード 理想と現実 何が起こったのか 解決策 まとめ 1. この記事の目的 私がC++に慣れてきたと思った矢先にどハマりした問題を共有します。 C++のstd::vectorを、ただの可変長配列とかリストだと理解している方は注意です。 私は…

タイムアウト検証用のアプリケーションサーバをGo言語で実装しました

目次 この記事の目的 Go言語でサーバをたてる URLのパスに応じて処理を行う その他の処理 最終的なコード まとめ 1. この記事の目的 この記事では簡単なアプリケーションサーバをGo言語で実装します。 例として、クエリストリングで指定した時間が経過したら…

three.jsでカメラとの距離を無視して描画順序を制御する方法

目次 この記事の目的 描画順序を制御する方法 描画処理のソースコード 全ソースコード まとめ 1. この記事の目的 この記事では、カメラからの距離を無視して描画順序を制御する方法を紹介します。 今回は例として、二つのオブジェクトを空間に配置し、描画…

KotlinでRecyclerViewとAdapterを実装しました

目次 この記事の目的 JavaのActivityのソース KotlinのActivityのソース JavaのAdapterのソース KotlinのAdapterのソース まとめ

karmaでテスト実行中に、fetchでローカルファイルを取得する

目次 この記事の目的 テスト対象のコードを準備する karmaの設定ファイルを準備 テストコードでfetchする まとめ

babel, webpack, karmaでnode_modulesを除いてカバレッジを計測する

目次 この記事の目的 テスト対象のコードを準備する karmaとbabel, webpack karmaでカバレッジを測定する テストを実行します まとめ

【WebAssembly】JSとwasmでソートの速度を比較する

目次 この記事の目的 C++でソートを実装 JSでソートを実装 実行用のHTMLを準備する 実際に速度を比較する まとめ

【WebAssembly】JS側で作成したtyped arrayをwasm側に渡す

目次 この記事の目的 wasm側のソースコードを準備 wasmにコンパイルするスクリプトを準備 JSのtyped arrayをwasmに渡す方法 サンプルの動作確認を行うHTMLを準備 まとめ