カテゴリー
ツール

rss-proxy – 非対応のwebサイトからRSSやJSONを生成する、セルフホストもできるOSSツール

damoeb/rss-proxy は、ウェブサイトが RSS feed を提供していなくても、HTML の構造から類推した新着情報を切り出してくれるオープンソースのツールです。

feed を提供してないウェブサイトのURLを入れると、html の構造から列挙になっている箇所を探し出し、生成する新着 feed の候補を並べてくれます。

それぞれの候補が差している箇所は赤点線で示されるので、ここが自分の欲しい新着情報だと思ったら、右下のfeed生成ボタンを押すと、RSS feed が生成されます。

RSS/ATOM 形式だけでなく、JSON を生成することもできるので、プログラムから利用したい場合はそちらが便利という人もいるでしょう。

デモサイトもあるのでここで動作を試すこともできますが、ソースコードは公開されており、呼び出すだけで動くdockeイメージも配布されているため、ローカルでも簡単に使ってみることができました。

スーパーマーケットの特売情報をJSONで取る、とか手軽にできそうです。

ローカルPC や自分のVPS等で動かしておくことで、これまで RSS リーダーで捕捉できていなかったウェブサイトの新着情報を効率良く受け取ることができるのではないでしょうか。

任意のウェブサイトからフィードを生成するサービスはいくつもあり、RSSリーダーの中にもそのような機能を内蔵しているものもあります。ですが、変換できる数に上限が有ったり、有料だったりと制限のあるものも多いです。

自前でホストすればそのあたりは制限がありませんし、ソースコードがあって自分で中を見ることができるのは、自動の切り出しでは飽き足らず個別に手を加えて新着情報を取りたいサイトが出た場合などに良さそうですね。

rss-proxy on docker
dockerで動かした時のログの様子

via Hacker News

カテゴリー
ツール

hashids – 自然数からか逆なユニークidを生成する多言語に対応したライブラリ

Hashids は、0または正の数をアルファベット+数字の短い並びに変換し、また逆変換で元の数を取り出すことができるライブラリです。

YouTubeの動画ページのURLについている、動画と一対一にマッチした文字列や、bit.ly などのURL転送サービスでURLごとに生成される文字列のような、一意に決まってなるべく短い文字列を作るという目的で作られたそうです。

サイトのトップに列挙されているのですぐにわかりますが、非常に多くのプログラミング言語に移植されています。

JavaScript, Ruby, Python, Java, Scala, PHP, Perl, Perl 6, Swift, Clojure, Objective-C, C, C++11, D, F#, Go, Erlang, Lua, Haskell, OCaml, Elixir, Rust, Smalltalk, ColdFusion, Kotlin, Nim, VBA, Haxe, Crystal, Elm, ActionScript, Bash, R, TSQL, PostgreSQL, PLpgSQL, Dart, Io, Julia, .NET

Rails, Django, WordPress, など言語だけでなくフレームワークやCMSのプラグインも作られていて、多くの言語や環境を超えて生成されたunique id を渡して取り出すこともできそうです。双方向の変換ができますが、ソルトを与えることで変換結果は個々に違わせることができます。
w
昨日のワードフィルタに関する Hacker News の議論で出てきたのでこのライブラリを知ったのですが、このライブラリの十分にコンパクトな仕様の中で面白いと思ったのは、このユニークな文字列の生成時に「よくある英語の卑語が出てこないようにする」ための方法がドキュメントに大きく書いてあることですね。

ユニークな文字列の生成時に、c, s, f, h, u, i, t の文字が連続して並ばないように指定することで、システムが自動的に作ったユニークidの中に英語のマズイ単語が偶然出てくることを防げることが多い、そうです。経験的なものでしょうけどそんなハックがあるんですね。hashid の変換関数ではセパレータとしてこれらの文字を与えることで、セパレータ同士が隣接しないようにできます。これによって使えない文字列が相当数出てしまいユニークidも少し長くなってしまうでしょうけれど、ユニークidに偶然卑語が出るとよくない、と思うサービス開発者も多いのかもしれません。

カテゴリー
ツール

Slacktyping – Slackで相手がタイプ中にこちらもタイプ中と見せかけるジョークツール

自称とても良いプログラム(very good program)は、Slackチャットにおいて相手がタイプしている時に、相手にあなたも「入力しています(typing…)と表示するという小さな Ruby プログラムです。

あなたも何かタイプしてるかと思って相手が手を止めると、あなたの「入力しています」も止まります。

とても良いプログラムかもしれませんが、これ使われたらイライラしそうです。

このような小さなジョークプログラムを多数公開しているウィル・レインウェバーさん(Will Leinweber)、彼のサイトにもネタが多数仕込まれています。

via Hacker News