ハードウェアからサーバ・アプリまでワンストップで開発

第11回 Freshmeat

「更新情報」って欲しくないですか?

先日、何かを調べている時に自分の書いた「生越昌己のオープンソースGTD」のエントリがひっかかりました。

この連載はもう10年以上前(15年過ぎてますね)のもので終了したわけでもないですが担当さんは亡くなってしまわれましたし、この分野に今さら私が新しく何か書く必要があるとも思えないので、これ以上エントリが追加されることはありません。そういったものではありますが、担当氏との思い出とかその時代のこととか思いつつ、うっかり全読してしまいました。実は私は自分の書いた文章の「ファン」なんですw

当然その時代と今とだと色々変化もあるわけですが、その中で「Freshmeat」について言及している箇所がありました。

古い人は知っていると思うのですが、Freshmeatとは主にOSSのリリース情報が新しい順に掲載されているサイトです。これを見れば新規リリースがあったらわかるわけです。私はここで新しいソフトに出会うことが多かったので、しばらくは「Freshmeet」だと思ってました。「肉(meat)」って変ですしね。ちなみに「fresh meat」というのは「新入り」というスラングなんだそうです。それでFreshmeatだったのかと、今更納得です。

知らない人はこっちを見るとちょっとは雰囲気がわかるかも知れません。

生き残るオープンソース

Freshmeatの現状

Freshmeatは随分前(2014年頃らしい)に更新を停止していたのは知っていたのですが、今アクセスしてみると痕跡もなくなったようです。

色々調べてみると、名称変更(Freecodeという名前になりましたが今はSourceForgeにリダイレクトされるだけです)があって、更新停止があって、サイトが消えて... とかあったようで、今は後継サイトとして「fresh(code)」というサイトが作られているようです。

fresh(code)

アクセスしてみると、比較的新しい時代のFreshMeatのUIを踏襲している感じで懐しい感じがしました。

記事もそこそこ新しいものがあるようで、更新はされているようです。よく調べてみると、以前は手動だったリリース情報も、自動的に取得するようになっているようです。まぁその方が嬉しいですからね。

RSSも引けますし、そのソフトを使っているdistroの情報とかもあります。結構使える情報が集められていて、Freshmeatの後継としては妥当な感じになっています。

fresh(code)がFreshmeatの後継であるということは、英語版のWkipediaのエントリで知りました。

Freecode

また、fresh(code)の意義についてはこちらに書いてあります。ここれでもFreshmeatの正式な後継であることがわかります。

About

他に類似のサイトとして「FreshFOSS」というサイトがありますが、これは単にfresh(code)のデータを流用しているだけのようでサイトのあちこちが壊れていますし、fresh(code)の情報が更新されてしばらくしてから情報が更新されています。元情報がCC-BY-SAですし、Freshmeatの経緯やfresh(code)の考え方とかを見ると、このようなミラー的サイトは歓迎なのでしょう。そもそも、fresh(code)からのリンクがあります。

fresh(code)の問題点

じゃあFreshmeatはfresh(code)として生まれ変わったので今後はfresh(code)を見ればいいじゃないか... と一瞬だけ思ったのですが、そこまで甘くはありませんでした。

ちょっと思うところあって(後述)簡単なクローラを作ってデータを吸い出してみました。データを吸い出すためのAPIも用意されていて、至れり尽せりですね。とは言え、

  • 全部のデータが引けない
    どうやらソフトウェアの名前に「.」が含まれているとデータとして引けません。どうしても必要であれば、スクレイピングが必要です。まぁこれはバグなんでしょうけど
  • ソフトウェアの説明が少ない
    確かFreshmeatはもうちょっと「ちゃんとした」感じの整形されたソフト説明があったような気がするんですが、ここは整形されてないテキストだけです
  • ソフトウェアそのものが少ない
    全クロールが1時間程度で終わってしまいました。登録件数を見ると2000件程度です。Freshmeatの時代はもっと大量にあった気がします
  • 更新が落ちてる
    自動更新することになっているのですが、このための情報がメンテされていません。Rubyの最新がVer 2.2.2ですって!

まぁそんな感じで、よく見ると寂れてしまっているんですね。その他にも細かいところで気になることはいっぱいあります。要するに寂れてます(大切なので二度言いました)。そもそも皆さんこのサイト知ってました? 要するに(ry

考えてみればこういったものの網羅性を上げるとすぐ情報爆発してしまいますし、気になるものはGitHubでwatchに入れておけば十分です。新着がダラダラ出て来るだけのサイトにそれ程必要性はないということなのかも知れません。

とは言えFreshmeatのもう一つの価値であった「fresh meet」の部分はどうかと言えば、これを実現したサイトは他にもないような気がします。fresh(code)では高々2000程度なんですぐ全部見てしまうでしょうし、かつて毎日更新されていたMOONGIFTも更新停止して久しいです。ソフトウェア、特にオープンソースなものを網羅的に紹介するサイトは、海外でもあまり見掛けません。「今使える○○ソフト×選」みたいなエントリは見掛けますけど。

じゃあそういった需要がないかと言えば、たとえば当サイトで「オープンソースなローコード、ノーコードまとめ」はとても人気のあるエントリです。類似のオープンソース紹介的なエントリも軒並アクセスの上位にいます。それだけ需要はあるんだろうと思います。「今使える○○ソフト×選」みたいなエントリはつい見てしまいますよね。それだけ「fresh meet」は欲しいのです。

考えたこと

そんなわけで、fresh(code)ってFreshmeatの代替とはなり切れていませんでしたし、ある意味「死んで」いました。とても残念です。

なので、今は金になる仕事がなくて暇ですし金がなくて部品も買えないので、

Freshmeatを発展的に再起動

できたらいいなと思ってコード書き始めました。自分のソフト書くのにお金いらないですからね。

実は背景として

  • 「オープンソースまとめ」的エントリの情報がすぐに古くなる
    バージョンとか更新状態とか書いても執筆時でしかない
  • 気になるソフトのブックマークがすぐに古くなるし忘れる
    すぐ最新情報でなくなりますし整理がイマイチ
  • オープンソース情報って公式サイトへのリンクだけでは不足
    使い方やレビューとかの情報もまとまっていて欲しい

なんてことを思っていました。そのこともあってFreshmeatみたいなサイトがあればなと思っていたのですがこのありさまだということを発見したということがあります。

実はその他でもTwitterが(最新)情報収集ツールとしてイマイチになってしまったとか、RSSは案外役に立つけど廃れつつあるとかというようなこともあって、自分のためのツールが何か必要だなと感じていました。

現状

とりあえず適当なDBを設計して、fresh(code)の情報をクロールして保存するところは出来ています。また、CultureSquareの一部としてページデザインして表示するところまでは作りました。

デザインはそのうち色々いじるでしょう。

タグをまだ表示してませんが、UIを含めてどう実装しようかと思案しているところです。fresh(code)と同じものは作ってはいるのですが、どうも面白くない。

まだ情報を更新する類のことは何もできてなくて、fresh(code)の更新情報を反映する--つまりFreshFOSSと同じ程度だということですね。

とは言え、あとはタグを機能させてインデクスページを作れば、第一段階としては公開できるでしょう。

Ver 1.0に向けて

「現状」の部分出来てしまえば、とりあえずCultureSquareのサイト更新の時に出せると思うのですが、これはあくまでも当座のものでしかありません。

Ver 1.0として考えているのは

  • とりあえず認証機能をつける
    独自情報のための第一歩ですね
  • 基本情報の登録/更新/削除
    外部に公開はまだとしても、自分のまとめたブックマークを登録したい
  • 更新情報の自動取得
    元々ある情報を参考にしつつ...
  • RSS

くらいがまずは出来たら良いなと思ってます。そうすれば、独自ドメインを取るのもいいかなと思ってます。

さらにその先

動き出せばいろいろ欲も出て来れば現実もあるわけなのですが、一応今考えていることです。

  • 基本情報の登録/変更/削除の一般公開
  • 情報オーナー機能
  • 他の情報への展開
  • 自動要約、自動翻訳

項目を見れば何がしたいかはだいたいわかると思いますが、わかりにくそうなことだけ追加で説明しておきます。

情報オーナー機能

基本情報は原則的に誰でも登録できるようにしたいと思いますが、ソフトウェアの場合はオリジネータというものが存在しています。なので、オリジネータが参加していれば基本情報の更新はオリジネータが主な権限を持つということです。

オリジネータが面倒臭くなれば「コミッタ」的な人を任命しても良いですし、リリースが出る割に基本情報が古いままであれば、また誰でも更新できるようにすると良いかなと。

「オリジネータ自身が権限を持つ」ことは意味があると思っていますし、同時に「みんなで作り上げる」ことも大事ですし、「データが更新され続ける」ことも大事だと思っています。

他の情報への展開

元々ソフトウェアの更新情報が欲しいと思って考えたことですが、似たようなものは他にもあると思います。たとえば、

  • お店の特売情報
  • 今日の日替わり定食
  • プレスリリース的なもの

などなどです。

手を拡げ過ぎて発散してしまっても困るのですが、まずはソフトウェアの「隣接領域」から考えて行けばなと思っています。たとえば、AIモデルだとか基板だとかはイメージしやすいですよね。オープンソースでないソフトウェアとかセキュリティ情報とかも。あまり遠くない世界であってもいろいろあると思いますし、多少遠くても似たものはたくさんあります。

自動要約、自動翻訳

fresh(code)の説明を見ていると、時々何のソフトかわからないものがあります。これは公式サイトとかに行ってもそうなんですが、「このソフトウェアは簡単でCPUを食わずに素晴しい体験を提供します」みたいな口上が冒頭にあって、「それで何をするソフトなん?」みたいなところが解決しないものが少なくありません。そういったことは書く方がちゃんとすればいいと思うのですが、「プログラムを書く能力」と「説明口上を書く能力」は別のものなので仕方がありません。

他言語での説明がされているものも英語ならまだしも時々ドイツ語やフランス語があったりしてわからなかったりします。GitHubとか見てると簡体字のページとかも結構ありますね。せめて繁体字ならわからなくもないんですけど。英語を母国語でない人達に英語の説明を要求すると不足した内容の変な文章になりがちです。言語の壁は馬鹿になりません。

それが一度きりの説明ならまだしも、更新の度にリリースノートを頑張るのは大変ですね。

そういったことって今時なAIでかなり解決がつくんじゃないかと思います。試しにいくつかChatGPT(4)に食わせてみたらいい感じにしてくれました。まだランニングコストのことがあるので全面的にこれで行くというのは難しいですけど、翻訳に関して言えばGoogle翻訳でも結構いい感じにしてくれます。

おわりに

「とりあえず」のものは間もなく公開する予定です。「その先」についてはいろんな状況を見ながらやって行こうと考えています。

とりあえずは往時のFreshmeatくらいになれたら嬉しいなと思ってます。エンパワーメントお待ちしております。

PS.

Freshmeatの代替として、「SourceForge」のBrowse Open Source Softwareを更新順に表示するという手がないわけではないです。

とは言え、見てみると色々と「コレジャナイ」って感じがします。ダメじゃないので、欲しいと思う人はfresh(code)よりもマシな体験ができるかも知れません。登録件数が多いのは良いですね。もちろん全部が生きているわけではありませんが。

ただ、これは原則SourceForgeにリポジトリがあるものだけで、それ以外だとリポジトリがある体を装いながら「このプロジェクトはミラーであって実体は...」と書かれていて「お客さん」扱いなんですね。それでもあるのはいいんだけど、なんか違う。やはりSourceForgeはリポジトリのサイトであってインデクスのサイトは別途あった方が嬉しいです。

最近のエントリー

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル

LED行燈の試作(1)