Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
研究の場においてのRust 製ソフトウェアのバージョン管理について
Search
puripuri2100
June 08, 2023
Programming
0
550
研究の場においてのRust 製ソフトウェアのバージョン管理について
puripuri2100
June 08, 2023
Tweet
Share
More Decks by puripuri2100
See All by puripuri2100
絵文字は構文解析できるのか
puripuri2100
0
35
係り受け解析を用いた法律文書中の略称規定の解析についての報告
puripuri2100
0
2.3k
気胸の胸部CTデータの可視化
puripuri2100
0
260
SATySFiで作成する構文解析器
puripuri2100
0
200
SATySFiの開発についての要望
puripuri2100
0
390
法律文書の自動解析
puripuri2100
1
690
汎用的なコードフォーマットライブラリの作成
puripuri2100
0
290
ユーザーがカスタマイズできるクラスファイル ―v0.0.x と v0.1.x それぞれでの実装 ―
puripuri2100
0
320
mdbook-satysfiを作成しました
puripuri2100
0
600
Other Decks in Programming
See All in Programming
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
ASP.NET Core の OpenAPIサポート
h455h1
0
120
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
6
1.4k
.NETでOBS Studio操作してみたけど…… / Operating OBS Studio by .NET
skasweb
0
120
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.3k
Androidアプリの One Experience リリース
nein37
0
1.2k
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
170
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
560
20241217 競争力強化とビジネス価値創出への挑戦:モノタロウのシステムモダナイズ、開発組織の進化と今後の展望
monotaro
PRO
0
280
AHC041解説
terryu16
0
380
Оптимизируем производительность блока Казначейство
lamodatech
0
950
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
8
1.9k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Become a Pro
speakerdeck
PRO
26
5.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
BBQ
matthewcrist
85
9.4k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Code Reviewing Like a Champion
maltzj
521
39k
Side Projects
sachag
452
42k
Why Our Code Smells
bkeepers
PRO
335
57k
Transcript
研究の場においての Rust 製ソフトウェアの バージョン管理について 筑波大学情報科学類 2 年 puripuri2100 アークエッジ・スペース Rust
勉強会 2023 年 6 月 7 日
1/6 自己紹介 インターネットネーム: puripuri2100
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析 筑波大学情報科学類産学間連携推進室という研究室で研究している
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析 筑波大学情報科学類産学間連携推進室という研究室で研究している 「法律文書の自動解析」というテーマ
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析 筑波大学情報科学類産学間連携推進室という研究室で研究している 「法律文書の自動解析」というテーマ 成果を情報処理学会で発表したところ大会奨励賞と学生奨励賞を受賞
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索)
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい 論文化して再現実験できるようにするには解析ソフトウェアごとに独立して
管理する必要がある
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい 論文化して再現実験できるようにするには解析ソフトウェアごとに独立して
管理する必要がある なぜ Rust
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい 論文化して再現実験できるようにするには解析ソフトウェアごとに独立して
管理する必要がある なぜ Rust cargo・ tokio・ serde・ anyhow があるから
3/6 依存関係のグラフ 法令データ 法令解析用ライブラリ lib.rs 判例データ 解析ソフトウェアA main.rs 解析ソフトウェアB lib.rs
main.rs 解析ソフトウェアC main.rs 解析ソフトウェアD lib.rs main.rs 解析ソフトウェアE main.rs JSON JSON
4/6 ところで 頻繁に各ライブラリが更新される 解析手法のアップデート 新しい解析手法のための新しい関数追加 実験のサイクルを高速に回すにはリリース作業は邪魔 どうする? 法令データ 法令解析用ライブラリ lib.rs
判例データ 解析ソフトウェアA main.rs 解析ソフトウェアB lib.rs main.rs 解析ソフトウェアC main.rs 解析ソフトウェアD lib.rs main.rs 解析ソフトウェアE main.rs JSON JSON
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" }
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い デメリット
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い デメリット たまに破壊される 同じ構造体を使っているつもりでも互換性が無いことがある
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い デメリット たまに破壊される 同じ構造体を使っているつもりでも互換性が無いことがある パッケージマネージャの恩恵が半減(submodule 時代へ逆戻り)
6/6 まとめ 研究で作るソフトウェア群の管理が難しい 実験のしやすさ 他の人にとっての再現のしやすさ 互換性の維持
6/6 まとめ 研究で作るソフトウェア群の管理が難しい 実験のしやすさ 他の人にとっての再現のしやすさ 互換性の維持 モノは https://github.com/japanese-law-analysis に全てあります
6/6 まとめ 研究で作るソフトウェア群の管理が難しい 実験のしやすさ 他の人にとっての再現のしやすさ 互換性の維持 モノは https://github.com/japanese-law-analysis に全てあります 俺ってどうしたらいいですか状態