ubnt-intrepid's blog

書いてあることがブログの内容です

Rust 用のマイクロWebフレームワークを作ってみた

前回 は Hyper 用のルーティングライブラリを作ってみましたが,もう少し手を加えればちょっとしたマイクロフレームワークを作れるのではないと思い至ってしまったので勢いで作ってみました。 github.com 実用には程遠いレベルですが,ある程度フレームワー…

Hyper 0.11用のルーティングライブラリを作った

IronでWebアプリを作っていたら「もういっそのことHyper直に触ったほうが楽なのでは」という悪魔のささやきが聞こえてきたので勢いで作ってみた。 github.com 基本的に Iron のルーティング用ミドルウェアである router と似たような使い勝手になるよう意識…

React + Iron を使った Web アプリケーションのテンプレートを作った

事の発端となったツイート 絶対 Rust on Rails という名前でフレームワーク作って RoR の検索結果を駆逐していこうな— 「」 (@ubnt_intrepid) 2017年5月10日 まぁ正直ただの妄言なのだが(そもそも Ruby on Rails を置き換えるほど影響力のあるフレームワー…

近況

近況報告です. Rust でブログっぽいWebアプリを作った 題意の通り,Rust でブログっぽいWebアプリケーションを作っていました. 諸々作りこみが雑なのでもう少し改善する必要があるのですが,初心を忘れないうちに備忘録がてら作業記録を残しておきます. v…

わん

mattn.kaoriya.net 上の記事を読んでいて,最後のコード例を眺めていたらできそうな気がしたので作ってみました. github.com やってることは wandbox-run と同じ(パクリ)ですが,serde や curl-rust を使っている分 Rust っぽい感じに出来ていると思いま…

Rustacean のためのリポジトリ管理ツールを作りました

何度かつぶやいたりしていましたが、READMEを書くのが面倒になったので より多くの人に使ってもらうため少し真面目に解説記事を作りました。 rhq の概要 GitHub - ubnt-intrepid/rhq: Manages your local repositories 言わずと知れた Golang 製のリポジトリ…

最近作った・メンテしたRustプロダクト

供養および近況報告 rustplotlib github.com Matplotlib の Rust バインディングが欲しいなぁと思っていたので勢いで作ったもの. Rust という言語の特徴を考えると必要となるケースはあまりない気がするが,作ってしまった以上便利なものであるとだけ言って…

rustup を Vim から呼び出すプラグインを作りました

タイトルの通りです。 少し前に rustup のメジャーアップデートがアナウンスされたばかりですがそれとは関係ないです。 Vim のタブライン上に使用中の Rust のツールチェインを表示するように設定を弄っているときに思いつき、この手のプラグインが見つから…

Rust 製の汎用機械学習ライブラリ rusty-machine

本記事は Rust Advent Calendar 2016 10日目の記事です。 Rust Advent Calendar 2016 へ多くの方にご参加いただき、(一応)主催者としては嬉しい限りです。 遅くなってしまいましたが、この場を借りてお礼を申し上げます。 今回は Rust 製の汎用機械学習ラ…

Rust のコマンドラインオプション解析色々

本エントリは Rust その2 Advent Calendar 2016 - Qiita の 10 日目の記事です。 本記事では、Rust を使って CLI アプリケーションを作成してきた過程で得られた知見のひとつとして、コマンドラインオプション解析に用いる crate を簡単にまとめたいと思いま…

近況

衝動的に Rust で色々作ったので、宣伝がてら忘れないようにまとめておく。 正直 Rust 関係ない気もするが気にしない。 あと全体的にドキュメントが貧弱なので他の人に使ってもらうためにはもう少し頑張らないといけない気がする。 ghqrs github.com Git の…

深層カルマンフィルタ (5)

前回は状態空間モデルにおける変分下限を導出した。 この関数をパラメータ について微分可能にするために必要な認識モデル への制約を考えることが今回の目標である。 いよいよ深層学習っぽい話になると期待している。

深層カルマンフィルタ (4)

…さて、ここからが本題。 同じ著者による新しい論文がアップロードされていたので、こちらも適宜参照しながら読み進めていく。 [1609.09869] Structured Inference Networks for Nonlinear State Space Models

深層カルマンフィルタ (3)

今回は変分自己符号化器 (VAE) における確率勾配変分ベイズ (SGVB) の説明。 なお、SGVB 自体の説明は本家の論文、および以下のものを参考にしたのでそちらも参照されたい。 正直、下の資料さえあれば今回の内容は飛ばしても良い気もするが、一応まとめてお…

深層カルマンフィルタ (2)

昨日の続き。 と言いつつ、昨日の内容についてはおろかその他もろもろの理解が不十分だったことに気づいたため、そのあたりを復習しつつ読み進めてる。 そのため、本題に入る前に大幅に脱線するので注意されたい(自然消滅しないよう頑張ります)。

深層カルマンフィルタ (1)

文献: [1511.05121] Deep Kalman Filters の感想 + 学習メモ。 流し読みしてみた感じそこまで難しいことはしてなさそうだったので、RNN の勉強がてら読んでみてる。 参考文献 深層カルマンフィルタ関連 Deep Kalman Filters (Krishnan, Shalit and Sontag, 2…

セミマルコフ決定過程の勉強メモ (2)

前回の続き。 といっても書く気が失せつつあるので一気に準マルコフ決定過程の説明にはいる。 準マルコフ決定過程 準マルコフ決定過程 (semi-Markov decision process; SMDP) とは、簡単に言えば自己遷移における滞在時間 (sojourn time) を考慮したマルコフ…

セミマルコフ決定過程の勉強メモ

ここ数ヶ月ぐらい調子が悪い状態が続いていてろくに文章も書けないでいたのだが、急に元気が出てきたので冷めないうちにメモ。 早く回復しないかなぁ… はじめに マルコフ過程 (Markov process) および マルコフ連鎖 (Markov chain) は基本的な確率過程の一つ…

Rust 製の ghq クローンを作った

少し前からちまちまと作っていたのですが,とりあえず使えそうになったので公開しておきます. github.com もともと Bash on Windows (BoW) で ghq をインストールしようとして失敗したのがきっかけで作り始めたのですが,本家のリリースページのバイナリを…

Rust でメソッドのオーバーロード

Rust でメソッドのオーバーロードをしたい場合,オーバロード対象のメソッドを持つ Trait を用意し,各型ごとに実装を記述する. mod hoge { pub struct Hoge; // 引数の型を引数 pub trait Foo<T> { fn foo(&self, foo: T); } // 引数の型ごとに実装を記述 imp</t>…

Gurobi の Rust API を作ってた

少し前から手をつけていたのですが,Rust から Gurobi を呼び出したいなぁと(少し)思っていたので作ってみました. https://crates.io/crates/gurobi 基本的な API の使用は C++ 版のものを参考にしましたが,言語的な制約から多少異なったものになってい…

C++11で Rust の channelを実装してみる

とあるツールを作る際に非同期処理を実装したくなったのだが, その際に Rust にある channel があると便利そうだなぁと思ったので実装してみた. 概要 実装は この記事 を参考にした. ただし,Golang 版では双方向通信が可能になっているのに対し,移植版…

投稿テスト

#include <iostream> using namespace std; int main(int argc, char const* argv[]) { cout << "hogehoge" << endl; return 0; } use std::io::Write; use std::fs::File; fn main() { let mut file = File::create("hoge.txt").unwrap(); }</iostream>