Web

ForgejoにAnubisを導入した

悪名高いAnubisだが、さすがにサーバー負荷高すぎて操作不能なのでやむなし……。

Anubisによるbotチェック画面。無駄にハッシュ計算させられるなど、なかなか邪悪。

相変わらずPleromaサーバーの運営を続けているわけですが、そのソースコードを管理するためにForgejoサーバーを立てています。一時期はAWS上で動いていましたが、絶えず続くスクレイパーからのリクエストで結構な金額がかかっていました。そこで自宅のノートPCに移行してみたのですが、自分の作業のために使うにも重すぎて、使い物になりませんでした。

ここで、スクレイパーに対する僕の立場を表明しておきます。

  • robots.txtは設定済み。特にインデックスしても面白いものはないので、全部Disallowしてあります。
  • AIに学習されることは何ら構いません。
  • でも、重いリクエストを無駄に投げられることは勘弁。

まずはリバースプロキシとして使っているnginxだけで何とかできないか考えましたが、limit_reqやlimit_connだけでは、通常の人間の操作まで邪魔してしまう設定しかできずに断念しました。というのも、スクレイパーによる被害は、リクエスト数が多いことではなく、重いエンドポイント(昔のコミットを見たり、blameしたり、リポジトリ全体アーカイブzipをダウンロードしたり)へのアクセスでした。例えば1分間に2リクエストまで許可する、みたいな制限をかけたとしても、2回リポジトリ全体ダウンロードをやられたらたまったもんじゃないです。さらに、同時にやってくるスクレイパーは数種類いるっぽく、IPアドレス単位で制限してもすり抜けられます。

というわけで、嫌いで仕方なかったAnubisに手を出すことにしました。

続きを読む

一発屋サービス「東京極座標」をリリースしました

みなさんは東京の土地勘ありますか? 私は東京で生まれ育ちましたが、未だに赤坂がどこにあるのかいまいちピンと来ません。ただ都心であることは間違いないでしょう。

東京の中心は、言わずもがな、かつての江戸城、現在の皇居です。道路や鉄道は皇居を中心とした同心円状に整備されています。例えば、道路では、環状1~8号線、首都高都心・中央線環状線があります。東京メトロの主要な路線は、東京23区の端から、皇居を半周して、山手線の駅に繋がるような構成になっています。

逆に言えば、皇居は不可侵の場所です。皇居の上を越えていくことはできません。したがって、東京を攻略するには皇居をどっちまわりで抜けていくかを知ることが重要であり、そのためには目的地が皇居からみてどの方角にあるかを知る必要があります。

そこで私はかねてからアイデアがありました。東京はもう住所を廃止して極座標(皇居から見た方角と、皇居からの距離)で表すべきだと。

そしてついに、これを簡単に実現する Web サービスをつくりました!!!

東京極座標 https://tokyopc.azyobuzi.net/

赤坂駅は皇居から 2.08km, -142° の位置にある

このサービスのおかげで、赤坂が皇居の南西2kmにあることがわかりました! このことから、赤坂のお高いイメージは皇居に近いことが影響しており、また普段なぜ縁がない場所かといえば、私は総武線(皇居をの北側を通って東西へ抜ける)沿線の民なので南西方向に行かないからということがわかります。このように東京極座標は、東京攻略を有利にすることができるのです。

続きを読む

結局ブログをMarkdownで書くことにした話

blog.azyobuzi.net を開設して1年強、メンテナンスも AsciiDoc も面倒になってきて、はてなブログに戻るのもアリだなぁという気持ちが若干発生してきていました。そもそもブログ自体書いてないじゃん。はい。すいません。

AsciiDoc というか Asciidoctor を使うことに思うところがあり、 Gatsby + Asciidoctor.js という構成をやめ、 Markdown + お手製静的サイトジェネレータ という構成に変更したというお話です。

(AsciiDoc から Markdown への移行は9月の頭には完了していましたが、記事を書く余裕がなかったので、今書いています。)

続きを読む

さよならはてなブログ、こんにちはGatsby

Qiita 騒動で脱 Qiita といって静的サイトジェネレータに向き合うみなさん、こんにちは。私はほとんど Qiita に書いていない、根っからのはてなブログユーザーだったのですが、以前からいくつかの理由で脱はてなブログしたいなぁ~と考えており、本日ついに、自前のブログ基盤ができたので、移行していきたいと思います!

一発目の記事ということで、ブログの要件と、それに合わせてどうツールを選んだのかについて、書き残しておきたいともいます。

追記

AsciiDoc をやめ Markdown に移行しました。

結局ブログをMarkdownで書くことにした話

続きを読む