2020-01-01から1年間の記事一覧
MTA含めてハマりまくったので記録しておきます。 ローカルMTAを使う場合、 現在の最新lettre 0.10-alphaの場合、 SmtpTransport::unencrypted_localhost(); 0.9の場合、 SmtpClient::new_unencrypted_localhost().unwrap().transport(); 但し、Dockerで25por…
rusoto_s3でS3非公開bucketへのpresign URLを取得したので記録しておきます。 参考にしたページ rusoto/s3.rs at master · rusoto/rusoto · GitHub rusoto_s3 presignで検索するも上記のテストコードしかめぼしい情報がなく、テストコードを読み進めていく。…
例えば、以下のような関数。 pub async fn func_name() -> String { "".to_string() } 実際は以下のようにimpl futures::Futureが返される関数のようになる。 pub fn func_name() -> impl futures::Future<Output = String> で、こういった関数を、高階関数の引数として与えた</output>…
普段、非同期でデータを取ってきてデータを表示する時は、createdライフサイクルで非同期でこと足りるんだけど、$router.pushで同じコンポーネントに遷移しようとした場合、mount済みコンポーネントを再利用しようとして、created, mountedなんかが呼び出さ…
vue + bootstrapで構成したページ。 signin成功時に this.$router.push("/"); いつも通りvue-routerにpushするも、遷移先のページでbootstrapのJQueryが動作しない...。 ブラウザをリロードすると動作するんだけど(^_^;) ググってみるとRailsにはそういった…
diesel = { version = "1.4.4", features = ["postgres", "chrono", "r2d2"] } で、r2d2でconnection poolingを使用する時。 デフォルトのpool数は10個みたい。 で、actix-webなんかだと起動時にアプリケーションが4スレッド立ち上がるので、4 * 10個のセッ…
以下のような親子(id -> parent)関係のあるレコードを、 [ { id: "1", parent: "", name: "/", path: "/", child_count: 0, depth: 1 }, { id: "2", parent: "1", name: "home", path: "/home/", child_count: 0, depth: 2 }, { id: "3", parent: "2", name:…
actix-webでjwtの発行と検証を行ったので記録しておきます。 Cargo.toml こちら GitHub - Keats/jsonwebtoken: JWT lib in rust を使用しました。 jsonwebtoken = "7" jwtの生成 例として8時間まで有効のjwtを生成。尚、expireを指定しないとjwt decode時にt…
ドキュメントには、 let users = sql_query("SELECT * FROM users WHERE id > ? AND name <> ?") .bind::<Integer, _>(1) .bind::<Text, _>("Tess") .get_results(&connection); diesel::query_builder::SqlQuery - Rust とあるけど、MySQLとPostgreSQLでプレースホルダー指定子が</text,></integer,>…
fetch処理前提 例えば、select * from ...と全カラム取得する場合、bindするmodelの定義は #[derive(Debug, Clone, Queryable, Identifiable)] pub struct Account { pub id: String, pub name: String, pub email: String, pub password: String, pub avata…
actix-webにvalidation処理を導入したので記録しておきます。 使用したcrateはこちら。 GitHub - Keats/validator: Simple validation for Rust structs Cargo.toml validator = { version = "0.12", features = ["derive"] } deriveを指定することでstruct…
UUIDの生成 uuid crateを使用します。 uuid - Rust Cargo.toml uuid = { version = "0.8.1", features = ["serde", "v4"] } 生成処理のサンプル use uuid::Uuid; let uuid = Uuid::new_v4().to_hyphenated().to_string(); パスワードハッシング アルゴリズム…
RustでのUnit test時にモックインスタンスを導入したので記録しておきます。 mockallの導入 Cargo.toml [dependencies] mockall = "0.8.3" mock化するインスタンスの作成 自分の場合はDBアクセスを行うRepositoryインスタンスをモック化した。実際にDBアクセ…
updateの更新結果件数を見てcommit or rollbackなんかしたかったので、明示的にbegin, rollback, commitできるインターフェースが欲しかった。 ちょっと探してみたけど、見当たらなくて、transaction_builderなんてものもあったけど、どうやら隔離レベルを指…
アクセスログについてはこのページのように記述すると actix_web::middleware::Logger - Rust midleware登録でサクっと出ると思うんだけど。 async fn main() -> std::io::Result<()> { std::env::set_var("RUST_LOG", "axtix_web=info"); env_logger::init(…
actix-webでAccess-Control-Allow-Origin絡みのやつ。 actix-corsをmidleware利用する。 actix_cors - Rust Cargo.toml [dependencies] actix-web = "3" actix-cors = "0.5.3" midlewareの登録 上記の実装例を見ながら、全originからのリクエストを許可する…
作業途中だけどメモしておきます。 管理画面テンプレートのCoreUIのコンポーネントを既存Vue(TS)なプロジェクトで利用可能にする。まで。 一から作る場合は、https://github.com/coreui/coreui-free-vue-admin-template のプロジェクトをcloneなんかしてカス…
Rust dieselクレイトを運用中既存DBに適用したので、手順をメモしておきます。 依存関係の定義 データベーススキーマは通常通りDATABASE_URLに定義しておく。 自分の場合は.envに記載しておいた。 DATABASE_URL=postgresql://postgres:password@localhost:54…
ハマったのでメモしておきます。 利用したVueはCDNの <script src="https://cdn.jsdelivr.net/npm/vue@3.0.0/dist/vue.global.js"></script> v-for内にrel属性を配置すると$refsに配列で参照できることを期待したんだけどうまく行かなかった。 <tr v-for="(item, index) in items"> <td> <span v-if="!item.editable" @click="edit(item, index)">{{ item.name }}</span> </td></tr>
データのダウンロード 書籍通り、米国運輸省のサイトからダウンロードします。 https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=On-Time On-Time : Reporting Carrier On-Time Performance (1987-present)は Filter Geograph…
書籍で紹介があったSpark Streamingの動作を試してみます。 HDFSは構築するのが億劫なので、masterノード上にある/tmp/dir01をウォッチします。ファイルの作成を検知した時、" "で区切られた単語を集計する簡単なプログラム。 streaming.py # -*- coding:utf…
最近、Hadoop周りの学習を始めて、Sparkをもと思いこちらの書籍を購入。学習環境を構築しました。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];…
RailsアプリケーションからS3オブジェクトを作成します。 gem aws-adkが必要となるので、Gemfileに記述し、記述後bundle installを行います。 gem 'aws-sdk' AWSクレデンシャルの設定 S3にアクセスロールがあるIAMユーザのクレデンシャルをAWSクライアントに…
ローカルでpg_dumpが実行できる(PostgreSQLがインストール済など)の前提で。 Heroku DBのクレデンシャルを確認 $ heroku pg:credentials:url --app YOUR_APP_NAME で、クレデンシャルが確認できる。 Connection information for default credential. Connect…
opensslの章 しばらくメンテしていないRailsアプリを久しぶりに起動しようとすると以下のようなエラーが。 Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError) 多分、rubyが指すopensslのバージョンとアップデートされたopenss…
ラスト。宇和島まで向います。 広がる田園風景がとても素敵です。 美しい田園風景 広がる田園風景。抜けてて綺麗(^_^) 360度大パノラマ。最高だね(^_^) 何度でも見返す為の記録用。映画とかアニメで出てきそうな風景。 381号(江川崎方面)との合流地点。381号…
今回は愛媛県から。車窓からの風景に癒されます。 愛媛県をドライブ 青空と山の緑のコントラストが綺麗。歩くと大変なんだろうなあ... 木漏れ日が綺麗すぎる一枚。 赤い鉄橋が綺麗。197号から離れて320号に入る。宇和島からの帰り道、ここでよく道に迷ってた…
今回は檮原から。 檮原を出発 檮原の街並み。山間部をドライブしているとこういう街並みにたどり着くとホッとするよね(^_^) 営業してる。よね...?(^_^;) 交通安全用のカカシ。これ夜に運転してるとギョっとするよね(^^;)。鬼北のほうにもう一体見つけたんだ…
今年の夏はどこへも行けそうにないので、気分だけでもと、Google ストリートビューで綺麗な風景を味わってきました。 山での涼と綺麗な田園風景を目の保養にと選んだのは国道197号 + 320号。 この道は交通量も少なく道も綺麗で、免許取り立ての頃、よく友人…
DBSCANとは DBSCANはクラスタに属さないデータポイントも判別できるアルゴリズム。 各データポイントは距離esp内にmin_samplesの他データポイントがあるか確認し、存在する場合は範囲内のデータポイントをクラスタ化する。 距離esp内のデータポイントがmin_s…