<style> .reveal, .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, "Microsoft JhengHei", Meiryo, sans-serif; } h1, h2, h3, h4, h5, h6 { text-transform: none !important; } .color-yellow{ color: yellow; } .alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; text-align: left; padding: 10px 0; } .alert-info { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; } .alert-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; } .alert-danger { color: #a94442; background-color: #f2dede; border-color: #ebccd1; } .reveal .slides span { text-align: left; display: inline-block; } p, li { font-size: 0.88em !important; } li>p { font-size: 1em !important; } </style> # JuliaTokyo #11 (2024-02-03) ###### tags: `JuliaTokyo` `prezentation` --- # Julia Package Comparisonsの<br>紹介と勧誘 [堀川 由人, ほりたみゅ, @Hyrodium](https://hyrodium.github.io/ja) ---- ### おしながき * 自己紹介 * パッケージあるある * Julia Package Comparisons の紹介 * Contributor募集中! * まとめ --- #### 自己紹介 ![](https://hyrodium.github.io/assets/logo.png =280x) ![](https://media0.giphy.com/media/BWClhsM6ACc7QaPNDc/giphy.gif?cid=790b761199dc032c147fd3e0de271eb710c7d2a1b936172e&rid=giphy.gif&ct=g =280x) ![](https://hyrodium.github.io/en/img/namecard.gif =280x) [堀川 由人, ほりたみゅ, @Hyrodium](https://hyrodium.github.io/ja) * 幾何学と工作と自転車が好き * 大阪在住 * 大阪高専→大阪大学→…→Rist ---- #### 自己紹介 (Julia) * v0.6.2くらい(?)からJulia使ってます * zennでJulia関連の記事書いてます * https://zenn.dev/hyrodium * JuliaCon2023で発表してきました * [ElasticSurfaceEmbedding.jl](https://github.com/hyrodium/ElasticSurfaceEmbedding.jl) * Juliaパッケージメンテナンスしてます * [Rotations.jl](https://github.com/JuliaGeometry/Rotations.jl) * [Quaternions.jl](https://github.com/JuliaGeometry/Quaternions.jl) * [IntervalSets.jl](https://github.com/JuliaMath/IntervalSets.jl) * [FastGaussQuadrature.jl](https://github.com/JuliaApproximation/FastGaussQuadrature.jl) * [StaticArrays.jl](https://github.com/JuliaArrays/StaticArrays.jl) * [BasicBSpline.jl](https://github.com/hyrodium/BasicBSpline.jl) * [RepeatingDecimalNotations.jl](https://github.com/hyrodium/RepeatingDecimalNotations.jl) * etc. --- ### パッケージあるある * パッケージ選定あるある * パッケージ開発あるある ---- #### パッケージ選定あるある * PkgA.jlのアルゴリズムはPkgB.jlに比べて良さそうだがテストが不十分 * 同じ目的を異なる方法で解決するパッケージが5つ以上存在する * 新しいPkgC.jlはREADMEで大きな約束をしてドキュメントも素晴らしい。しかし1人のプロジェクトなので将来性・信頼性が不安 * PkgD.jlよりもPkgE.jlの方が優れてそうだが、StarはPkgD.jlの方が多い * 良さそうなパッケージだったが、Python/C++のラッパーだった →パッケージ選定は大変! ---- #### パッケージ開発あるある 既存の類似パッケージとの比較をしたいが… * 独善的な比較は避けたい * cf. [星取表のアンチパターン](https://zenn.dev/mizchi/articles/antipattern-of-tournament-score-sheet) * しかし類似パッケージの機能を完全に理解している訳でもない * 類似パッケージの機能追加への追従はもっと大変 * 誠実に比較を記載したとしてもポジショントークに映ってしまう →開発者目線でもパッケージ比較は大変! --- ### JuliaPackageComparisonsの紹介 * JuliaPackageComparisons (org) * Franklin.jlで作ったウェブサイト * 比較の例 * Makdownの記述例 * Preview CI ---- #### JuliaPackageComparisons (org) ![image](https://hackmd.io/_uploads/Syy8LXqFT.png =700x) https://github.com/JuliaPackageComparisons * 中立的な場所で * 誰でも編集に参加できるような * ドキュメントをメンテしよう! ---- #### Franklin.jlで作ったウェブサイト ![image](https://hackmd.io/_uploads/rJGuLmqYT.png =800x) https://juliapackagecomparisons.github.io/ ---- #### 比較の例 ![image](https://hackmd.io/_uploads/rk1oEVcFa.png =x480) ![image](https://hackmd.io/_uploads/rkkrNE9tT.png =x480) ![image](https://hackmd.io/_uploads/SyoYV4qFp.png =x480) https://juliapackagecomparisons.github.io/pages/bspline/ ---- #### Markdownの記述例 ```markdown +++ title = "B-spline" +++ # B-spline There are several Julia packages for [B-spline](https://en.wikipedia.org/wiki/B-spline) **This page is still work-in-progress.** \toc ## Packages ### BSplines.jl {{badge BSplines}} ### BasicBSpline.jl {{badge BasicBSpline}} ### BSplineKit.jl {{badge BSplineKit}} ### NURBS.jl {{badge NURBS}} ## Star History {{star_history BSplines BasicBSpline BSplineKit NURBS}} ``` * `+++`ブロックにメタデータ記載 * `{{badge BSplines}}`でバッジ貼り付け * `{{star_history BSplines BasicBSpline BSplineKit NURBS}}`でStar history記載 ---- #### Preview CI 自動的にPRへのプレビューが生成されます! ![image](https://hackmd.io/_uploads/Sy3mq-ic6.png =700x) [PR#69](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io/pull/69) --- ### Contributor募集中! * 現在のコアメンテナ * 今後の開発予定 * Contributor募集中! ---- #### 現在のコアメンテナ (権限獲得順) * [KronosTheLate](https://github.com/KronosTheLate) ![](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/144/12824_2.png =72x) * リポジトリ創始者 * 透明性・心理的安全性に配慮できる人 * [hyrodium](https://github.com/hyrodium) (私) ![](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hyrodium/144/27015_2.png =72x) * メンテナンス諸々 * (英語不得手、言葉足らずになりがち) * [Datseris](https://github.com/Datseris) ![](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/144/13406_2.png =72x) * JuliaDynamicsやJuliaMusicの人 * [Why Julia - a Manifesto.](https://github.com/Datseris/whyjulia-manifesto)の著者 ---- #### 今後の開発予定 * カラムの整理 * 比較項目が多すぎる ([#22](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io/issues/22)) * ロゴの追加 * かっこいいロゴ欲しいよね ([#51](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io/issues/51)) * JuliaDiscourseへのアナウンス * もう少しサイトを整理できてから… * 比較項目・パッケージの追加 * 皆様のお力添えを! ---- #### Contributor募集中! * パッケージ使用者も! * :grin: 使ってみたの比較 * パッケージ開発者も! * :mega: パッケージの宣伝にどうぞ * CSS詳しいニキも! * :art: コアメンテナ達はCSS詳しくない * Franklin.jl詳しいネキも! * :gear: Franklin.jl側で修正が必要なケースも多い * [issue#528](https://github.com/tlienart/Franklin.jl/issues/528), [issue#1071](https://github.com/tlienart/Franklin.jl/issues/1071) 皆様のご活躍をお待ちしてます! --- ### まとめ * JuliaPackageComparisonsで比較しよう! * 中立・公平に文書化できる場所 * ストック型ドキュメント * [Julia Discourse](https://discourse.julialang.org/)はフロー型 * 皆さんのcontributionをお待ちしております! * [リポジトリ](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io/stargazers)へのStar:star:もお待ちしてます! ---- ### おまけ: Fmt.jlも載せたい 開発休止されてそうですが… 必要ならメンテナンスお手伝い可能です! https://github.com/bicycle1885/Fmt.jl <span style="font-size: 50%;"> <blockquote> <p><strong>Related projects</strong></p> <ul> <li>Printf.jl provides C-style formatting macros. In my opinion, it doesn&#39;t match dynamic nature of Julia because it needs type specifier.</li> <li>Formatting.jl provides similar functionality with different APIs. Fmt.jl is much simpler and more performant.</li> </ul> </blockquote> </span>
{"breaks":true,"lang":"ja","dir":"ltr","robots":"noindex, nofollow","slideOptions":"{\"theme\":\"white\",\"transition\":\"slide\"}","description":"堀川 由人, ほりたみゅ, @Hyrodium","contributors":"[{\"id\":\"41421433-16a1-4a57-ac11-6f7b7becb765\",\"add\":8293,\"del\":1460}]","title":"JuliaTokyo #11 (2024/02/03)"}
    506 views