初めてのOSSコミット。Reason言語でGeo3x3を実装
- Next.js 北九州市のイベント情報を取得する
- Next.js × now がやばい
- 競プロ日記 ABC15
- 競プロ日記 ABC159
- Kaggle 住宅価格予測 単回帰分析してみる
- 単回帰分析のFlow
- React Native Styleをいい感じに
- React Movie Search を TS で.
- useRefの使い方がわからん
- Heroku PostgreSQL の使い方
- ラズパイとLEDマトリクスパネルで遊ぶ
- querySelectorAllで取得した要素は配列ではないらしい
- React HookでTodoアプリを作る
- Kaggle 住宅価格予測 重回帰分析してみる
- Kaggle 住宅価格予測 多項式回帰してみる
- Webフロントのすべて
- 新しいMacBook Airが届いた!
- 日向坂46のニュースをスクレイピング
- イコラブのニュースをスクレイピングする!
- 推しのブログをスクレイピング
Geo3x3(ジオスリーバイスリー)とは
簡単に言うと「緯度・経度をまとめて表す」ためのエンコード・デコードプログラムのことです。
GitHubはこちら
Geo3x3はシンプルなWGS84向けジオコーディングです
地球を東(E)と西(W)に分け、再帰的に3x3の9エリアで分割します。長いほど精度が上がります。
実際にGeo3x3を利用すると
緯度: 33.88662989631775
経度: 130.88225978094528
は、E91259371833 と表すことができます。
Geo3x3を利用したサイトはこちらです。
OSS!
Geo3x3のプロジェクトはOSSになっており4月3日現在、75の言語に対応しています。
そして75言語目を私が担当しました。
Reason言語とは
ReasonはFacebookが作成したOcamlを拡張したAltJSの言語です。
拡張子はre
で、Hello Worldは以下です。
Js.log("Hello world");
私がJavaScriptが得意ということもありReasonに挑戦しました。
強い静的型付け言語
ReasonはOcamlとJavaScriptの融合のような言語のため、関数型かつ静的型付け言語となっています。
関数型の特徴としてswitch式
やif式
があったり、
静的型付け言語の特徴として型の違う値同士の演算はコンパイル時にエラーがでるなどがあります。
面白かったのはfloat同士の演算時に
let res = 1.0 +. 1.0;
のように 演算子
+ .
が必要なところです。
PRを送る
OSSのコミットは初めてだったため、とてもワクワクしていました。
手順
- リポジトリをForkする
- コードを書く
- Forkしたリポジトリにpushする
- Fork元にPRを送る
- Mergeされるのを待つ
基本的な流れは以上のようなものです。
私が実際に送ったPRはこちらです。
福野さんが修正を加えてくださり無事Mergeされました。
いつかOSSに貢献できたらいいなと思っていたのですが、
まさか書いて二日目の言語で初コミットするとは思ってもいませんでした。。
OSSへの貢献はエンジニアとしての社会貢献!!