RustによるWebアプリケーション開発を読む
3.3 ヘルスチェックを実装する
anyhow@1.0.75を指定してインストールしたがanyhow@1.0.98がインストールされたようだ。
rustのバージョンに合わせて上がったようだ。
ヘルスチェックはOK
3.3.4 サーバーを起動する

3.4 ユニットテストを書く
cargo-nextestをインストールした。大量にインストールされた。
version 0.9.95がインストールされた。
cargo nextest runでテスト良好のようです

RustによるWebアプリケーション開発を読む
3.2 axumでサーバーを起動する
cargo add axum@0.7.0 --features macros
でインストール完了。続いて
cargo add tokio@1.37.0 --features full cargo add --dev rstest@0.18.2
でインストール完了
3.2.3,3.2.4は飛ばしして3.2.5 簡易サーバーを起動するまで進む
3.2.5 簡易サーバーを起動する
掲載されたコードをそのまま実行。意外とトラブルなく実行できた。

RustによるWebアプリケーション開発を読む
WindowsのWSL上で試すことにした。
rustupのインストールを行う。
rustc ver 1.86.0
rustup ver 1.28.1
がインストールされた。
リンカーはgccを利用するとのことなので
sudo apt install gcc
としたがエラーがでた。
sudo apt-get update実行後
再度インストールしたらOK
WindowsにあらかじめVSCODEがインストールしてあったのでRemoto機能からWSLに接続した。
rust-analyzerもWSL上にインストールした。
2.2 Docker Composeを用いたローカルPCでの開発環境
DockerはWindowsにDocker Disktopをインストールしてあったのでそのまま使用。
compose.yamlとDockerfileをhelloworldフォルダに置いてdocker compose up app --buildをWSL上で実行したらエラーが出た。
=> ERROR [app builder 4/4] RUN cargo build --release 0.2s ------ > [app builder 4/4] RUN cargo build --release: 0.173 error: failed to parse manifest at `/app/Cargo.toml` 0.173 0.173 Caused by: 0.173 feature `edition2024` is required 0.173 0.173 The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.78.0 (54d8815d0 2024-03-26)). 0.173 Consider trying a newer version of Cargo (this may require the nightly release). 0.173 See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature. ------ failed to solve: process "/bin/sh -c cargo build --release" did not complete successfully: exit code: 101
WSL上にインストールしたのがrustの最新バージョン1.86でエディションが2024だったため、DockerfileでDLしたrust環境のエディションが2024をサポートしていなかったのようでDokerfileの
FROM rust:1.78-slim-bookworm AS builderを
FROM rust:1.86-slim-bookworm AS builderに書き替えたら
OKとなった。
2.2.3 PostGresSQL,Redisの追加と起動確認
トラブルなくインストールできた。
2.3 タスクランナーcargo-makeの導入
トラブルなくインストールできた。
前処理大全のデータを使ってDax式で処理する練習
第10章 日時型
10-2年/月/日/時刻/分/秒/曜日への変換
M年 =
YEAR(MAX('reserve'[reserve_datetime]))
M月 =
MONTH(MAX('reserve'[reserve_datetime]))
M日 =
DAY(MAX('reserve'[reserve_datetime]))
M時間 =
HOUR(MAX('reserve'[reserve_datetime]))
M分 =
MINUTE(MAX('reserve'[reserve_datetime]))
M秒 =
SECOND(MAX('reserve'[reserve_datetime]))
MDATE = FORMAT(DATE([M年],[M月],[M日]),"yyyy/MM/dd")
M月数 = DAY(EOMONTH([MDATE],0))

前処理大全のデータを使ってDax式で処理する練習
第9章 カテゴリ型
9-1カテゴリ型への変換
Csex_is_man =
if(
[sex]="man",
TRUE(),
FALSE()
)

PowerQueryでもやってみる
= Table.AddColumn(変更された型, "カスタム", each if [sex] = "man" then true else false)

前処理大全のデータを使ってDax式で処理する練習
第8章 数値型
8-7数値の補完
ISBLANK関数で除去できるか試してみたがCSVファイルから読み込んでいるためNoneという文字列と認識してしまっているので有効に動作しない。
単純な比較にしてNone文字列のある行を除去した。
1000行から892行になった。
TNULLのないテーブル =
FILTER(
'production_missing_num',
NOT [thickness]="None"
)

PowerQueryでもやってみる。
= Table.SelectRows(変更された型, each ([thickness] <> "None"))

定数補完
PowerQueryにで変換
let
ソース = Csv.Document(File.Contents("C:\Users\kjkq2\Documents\PowerBIまとめ\前処理大全をPowerBIでやってみる\data\production_missing_num.csv"),[Delimiter=",", Columns=4, Encoding=932, QuoteStyle=QuoteStyle.None]),
昇格されたヘッダー数 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
置き換えられた値 = Table.ReplaceValue(昇格されたヘッダー数,"None","1",Replacer.ReplaceText,{"thickness"}),
フィルターされた行 = Table.SelectRows(置き換えられた値, each true),
変更された型 = Table.TransformColumnTypes(フィルターされた行,{{"thickness", type number}, {"length", type number}, {"fault_flg", type logical}})
in
変更された型

前処理大全のデータを使ってDax式で処理する練習
第8章 数値型
8-5外れ値の除去
T外れ値除去 =
FILTER(
'reserve',
ABS('reserve'[total_price] - AVERAGE('reserve'[total_price]))/STDEV.S('reserve'[total_price])<=3
)

除去前が4,030行、除去後が3,932行に減った。