トップ «前の日(05-27) 最新 次の日(05-29)» 追記   RSS 1.0 FEED  

Journal InTime


2001-05-28 (Mon)

_ mod_ruby on cygwin

cygwinでmod_rubyが一応動いた。

GET /hello.rbx HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 28 May 2001 08:17:10 GMT
Server: Apache/1.3.20 (Cygwin) mod_ruby/0.8.2 Ruby/1.6.4(2001-05-26)
Connection: close
Content-Type: text/plain

hello world
CGI-Ruby/1.1

まだ、ソースやMakefileをいじったりしないと動かないけど、何とかなりそうな感じ。

_ バイナリ

<URL:http://www.shugo.net/archive/apache-ruby-cygwin-1.3.20-0.8.2.tar.gz>

にRuby込みのバイナリを置いときました。

/usr/local/apache/conf/httpd.confは適当に修正してください。


2004-05-28 (Fri)

_ lily 0.1.5 on mod_ruby

ふと思い立って、lily 0.1.5をmod_rubyで動かしてみた。 やはりそのままでは動かなかったので、色々試行錯誤。

基本的に、以下のような変更で動いたようだ。

  • へッダの出力にCGI#headerを使用。
  • mod_rubyでは$SAFE == 1なのでとにかくuntaint。 (httpd.confに`RubySafeLevel 0'と書くという手もあるけど、modruby.netで使いたい のでなるべく正攻法で対処。)
  • mod_rubyでは既存クラスの変更はできない(ほんとはできるけど)ので、 String#to_eucなどをNKF.nkfを直接使用するように変更。 (というか、呼び出し側ではstr.toeucだったりするので現状でも機能してないような)

あと、プラグインはinstance_evalで評価されるようなので、mod_rubyとの相性も 良さそう(Lilyのインスタンス毎に名前空間が独立になるから)なのだが、プラグインで 例外が発生したバックトレースが見にくいので、ちょっといじってみた。

結局、パッチ(diff -u --ignore-all-space --strip-trailing-cr)はこんな感じ。

<URL:/tmp/lilyset-mod_ruby.diff>

CGIでも同じコードで動作するので、できればマージしていただけるとうれしいです (とかいう報告はTrackbackでいいんでしょうか)。

Tags: Ruby

_ helium.ruby-lang.orgがクラックされました

というわけです。ごめんなさい。

Tags: Ruby
本日のツッコミ(全2件) [ツッコミを入れる]

_ kan [どうも。lilyを作っている者です。 mod_rubyやFastCGIには早く対応させたかったのですが、環境を用意で..]

_ shugo [すみません、どたばたしていてお返事できませんでした。 わたなべさんの日記にも書かれているように途中からreverse..]


2005-05-28 (Sat)

_ プロジェクトページ移動

プロジェクトページを以下のURLに移動しました。

<URL:http://projects.netlab.jp/ximapd/>

また、レポジトリも

<URL:http://projects.netlab.jp/svn/ximapd/>

に移動しました。 httpsでもアクセスできます。*1

もう少し社内で調整してからメーリングリストも用意しようと思います。 QuickMLが楽かな。

Tags: ximapd

*1  CAcert.orgの証明書を使っています。


2006-05-28 (Sun)

_ ポール・ザ・ヤング・デュード~ベスト・オブ・ポール・ギルバート(リミテッド・エディション)

ポール・ザ・ヤング・デュード~ベスト・オブ・ポール・ギルバート(リミテッド・エディション)(初回限定盤)

結局、Tribute to Jimi HendrixはAmazonのマーケットプレイスでもう一回買うはめになった(前のはたしかドイツ盤で買ってるから、まったく同じものじゃないんだよ、無駄遣いじゃないんだよ)のだが、「在庫あと1点、お早目に」みたいなのを見てつい一緒に買ってしまった。

歌上手くなったよねー。Tributeの方も味があって自分は好きだけど。

Tags: 音楽
本日のツッコミ(全2件) [ツッコミを入れる]

_ @@@@ [ついでにじみへんを全部買っておくと良いですょ]

_ shugo [うーん、国内盤だけでもかなりの散財になりそうな気が...。]


2026-05-28 (Thu)

_ Cloudflare R2へのバックアップ時の501

MastodonのデータをrcloneでCloudflare R2にバックアップするようにしていたが、以下のようなエラーが出ていた。

2026/05/28 04:50:29 ERROR : db_20260528.sql.gz: Failed to copy: NotImplemented: Not Implemented
	status code: 501, request id: , host id: 
2026/05/28 04:50:29 ERROR : Attempt 1/3 failed with 1 errors and: NotImplemented: Not Implemented
	status code: 501, request id: , host id: 
2026/05/28 04:50:29 ERROR : Attempt 2/3 succeeded

rclone copy /home/mastodon/backup r2:mastodon-db --dump headers -vv でリクエスト・レスポンスヘッダをダンプしてみると、R2側にまだ存在しないファイルに対するHEADリクエストへのレスポンスで401ではなく501が返って来ていた。

--s3-no-head オプションを付けたら501が出なくなったので、バックアップスクリプトを以下のように書き換えて様子を見ることにした。

#!/bin/bash
set -euo pipefail

# Configurable variables
INSTANCE_DIR="/home/mastodon/live"
SYSTEM_DIR="/home/mastodon/live/public/system"
BACKUP_DIR="/home/mastodon/backup"
BACKUP_LIFETIME_DAYS=7
DATE_FORMAT="%Y%m%d"
DB_USER="mastodon"
DB_NAME="mastodon_production"
RCLONE_DB_DEST="r2:mastodon-db"
RCLONE_MEDIA_DEST="r2:mastodon-media"

# Error handling
trap 'echo "An error occurred. Exiting." && exit 1' ERR

backup_date="$(date +$DATE_FORMAT)"

# Database backup
echo -n "Backup DB... "
DB_BACKUP_FILE="$BACKUP_DIR/db_$backup_date.sql.gz"
pg_dump -Fc -U $DB_USER $DB_NAME | gzip -c >"$DB_BACKUP_FILE"
ls -1 $BACKUP_DIR/db_*.gz | sort | head -n -7 | xargs rm -f
echo "Success!"

# Sync backup
echo -n "Backup to R2... "
rclone copy "$BACKUP_DIR" $RCLONE_DB_DEST
rclone copy --exclude="/cache/**" "$SYSTEM_DIR" $RCLONE_MEDIA_DEST --s3-no-head
echo "Success!"
Tags: Mastodon