<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'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)"}