カテゴリー
ツール

go-license-detector – オープンソースのライセンスを判定してくれるツール

go-license-detector は、プロジェクトのドキュメントファイルをスキャンして、そのプロジェクトがどんなライセンスかを推定するというツールです。SPDX で400種類近くに分類されている多種多様なライセンスの分類名(identifier)の形でライセンス情報を返します。

従来のツール

Ruby製のLicenseeでは、ライセンスファイルの存在や、既知のライセンスファイルとの一致度を見て、オープンソースのライセンスが何かを判定しています。GitHub 自身も、各リポジトリのライセンスを判定するのに利用しているそうです。

他にもいくつか、Google の licenseclassifier などライセンスを推定するツールはあるのですが、go-license-detector は以下の特徴があるそうです。

  1. 誤判定があっても、「不明」という結果を少なくする方向の検出
  2. Golang による高速な処理
  3. GitHub の人気トップ1000リポジトリ(手動でライセンスが判定されている)をできるだけ当てられることを目指す
  4. SPDX の分類に従う

精度比較

ブログ記事では、既存の各ツールとの判定精度の比較をしています。902のソースコードを判定し、ライセンスがあるものに関して99%という高率の判定結果、また、判定の速度もとても優秀ということ。

現在は LICENSE や READEME など、一定の種類の名前でライセンス情報を探そうとしていますが、それらのファイルについて既存のライセンス文書との一致をみるにしても、単なる一致ではなく単語のゆらぎやミススペルなどまでケアしているようです。

何か一つオープンソースのプロジェクトが有ったとして、そのライセンスが何であるかを当て、それを信じて利用するというよりは、多数のリポジトリをまとめて分析するような用途に向いているのかなと思いました。

via Detecting licenses in code with Go and ML · source{d} blog

カテゴリー
ツール

オープンソース化された結婚式のウェブサイト(GPLライセンス)

Oath社のソフトウェア・エンジニア、ラムさん(Ram)が結婚一周年を記念して GitHub で公開したのは、彼が自身の結婚式のために製作したウェブサイト。

デモサイトも公開されていて、動く様子を見ることができます。

サイトは、二人の出会い(大学の同級生だそうです)、結婚式前後のイベント、参列者がインスタグラムに投稿する際のハッシュタグの案内(その写真はこちらで見られます)、婚約式の写真、結婚式場の地図、が、モダンなレスポンシブデザインで提供されています。

結婚式のウェブサイトのフォーマットとしては、この式が挙げられたインドでもどこでも大きく変わらないと思うのですが、コンテンツ内のメヘンディ、ハルディなどインドの結婚式独特の行事の案内や、そのドレスコードの説明などは興味深いと思いました。新郎新婦にウコンを塗りたくる儀式っていったい…

参加不参加の表明(RSVP)は Google Sheet とメールで、ホスティングは GitHub Pages で実現されていて、同じものを完全に無料で動かすことができます。

ライセンスはGPLv3ということで、これから結婚式を挙げるエンジニアの人は、これをベースにして作るのもいいかもしれませんね。

via Hacker News

カテゴリー
スマートフォン

Aestheticam – 世界一ひどいiPhone用カメラアプリ

A E S T H E T I C A Mは、”The World Worst”を自称する新しいスマートフォン(iOS)カメラアプリです。

「iOS上での最低のカメラ体験ができることを目指した」 というこのアプリ、起動画面は謎のスターリンの写真だったり、撮影したら画面が謎の遷移をしたり、普通ならわかりやすくと工夫するところをわかりにくくしています。

aestheticam-demo

なお、カメラ名である “aesthetic” は、「審美眼のある」という意味。

SwiftによるソースコードがGitHub上で公開されており、オープンソースの力を生かして、世界最低がさらに下を目指して改悪されていくかもしれません。

「日本一まずいラーメン」とかと同じで、怖いもの見たさで使ってみる人は増えるかもしれないですね。アプリのレビューも★4.5と好評で、「どの友達に見せてもキマッテルって言うよ」とか「売り文句通り、過去最低の体験だ!」など好意的なレビューが並んでいます。

[アプリid:1118772061] 指定されたアプリケーションが見つかりませんでした。削除されたのかもしれません Embed iPhone/iPad App

via Digital Trends