tDiary から Hugo へ移行した

1 年ほど前から GCP 上で tDiary を Docker 運用していたが、それもやめて Cloudflare Pages で Hugo をビルドする形にした。 数が少なかったのでデータの移行は完全手動で行ったが、それでも面倒は面倒だった。 ...

2024-01-03

Fly.io に GoToSocial のおひとりさまインスタンスを立てた

2017 年の第一次 Mastodon ブームの折にも自前でインスタンスを立ててみたものの、当時使っていたさくらの VPS ではあまりにも重すぎたのと、Mastodon を積極的に使う理由も無く「結局 Twitter でええやん」となり、すぐに使わなくなった 余談だが、行儀の悪い方法でインスタンスを潰したせいか、当時の URI に対して未だにリクエストが来ているのが分かったので、Cloudflare Workers で 410 Gone を返すようにした 最近の Twitter のゴタゴタを受けても、個人的には思想的にどうのこうのという理由で積極的に脱 Twitter しようという感じではないものの、万が一・億が一レベルで物理的に Twitter が残るか怪しい雰囲気も出てきたことや、世間的に脱 Twitter が加速したときの準備をしようと思い、年末くらいから動き始めた Mastodon はおひとりさまインスタンスにはヘビーすぎるので Misskey を試したけど、なぜかリモートフォローができず詰まっていた Cloudflare が悪さして Misskey までリクエストが届いていなかったりしたということはあったものの、その辺りを潰してもなお解消せずお手上げだった そうこうしているうちに脱TwitterしたいのでMastodonに移行しつつ、gotosocialでオレオレサーバーを立ててみたというエントリをはてブ経由か何かで見つけて、これ良さそうだなと思って試し始めた Misskey と同様、Docker で自前で動かしているとなぜかうまくいかなかったが、Fly.io で動かすという方法があることを知り Fly.io で試したら何となく上手く動き始めたっぽい Fly.io、この日記の引っ越しを検討したときにも存在は認知はしていたが禄に調べてなかったけど、Dockerfile や Docker イメージを食わせれば何でも動くっぽいので、そのうちこの日記も移してしまいたい といった経緯で @mfjt@mfjt.jp でおひとりさまインスタンスを始めた。Twitter 自体、自ら発信するというよりは情報を拾うために使う傾向が強く、「今後は GoToSocial の方でばりばりやっていく」という気概も一切ないので、こっちはこっちでテキトーに使っていく。 ...

2023-01-02

2022 年買ってよかったもの

Panasonic MC-NS10K ダイソンのスティック型が壊れたので買い換え。 わしに必要だったのは、吸引力じゃなくてゴミ捨て時に「掃除機の掃除機」が要らない掃除機だった1。どうせ犬小屋住まいだしバッテリー保ちなんかも問題なし。 スプラトゥーン 3 久しぶりにゲームに大ハマりして、現在進行形で大分時間を溶かされている。 ...

2022-12-31

tDiary を GCP に移した

脱 Heroku 一応終わった。Docker にしてしまったあたり、微妙に退化してしまった感があるが、Container Optimized OS にしたのはせめてもの抵抗ということで ...

2022-12-04

2020 年買ってよかったもの

目新しいものは特にない。 サンコー 3 軸式くねくねモニターアーム 在宅勤務関連アイテムその 1。 ディスプレイのスタンドがデカくて、デスクの手前のスペースが狭くなってしまうのが嫌だったので導入。ぐりぐり動かせる必要はなかったので安価なこれにした。ディスプレイが 9 kg 近くあって設置・調整には苦労したけど、1 回固定してからは今のところお辞儀することもなく安定しているので良い感じ。 ...

2020-12-31

tDiary で使っている Heroku の mLab MongoDB add-on を MongoDB Atlas へ移行した

Heroku の mLab Add-on を MongoDB Atlas に移行するというエントリを見ながらやってみたらさくっと終わった。 良い感じの移行先がないようであれば、PaaS はやめて自前 Docker にでもするしかないかなと考えていたが、ひとまずはこれで継続する。 ...

2020-10-18

Cubase LE 5 の再アクティベーション方法メモ

未だに G2.1Nu にバンドルされていた Cubase LE 5 を使っているが、Windows 再インストールのたびにアクティベーションの方法が分からなくなってしまうのでメモ。 ...

2020-06-03

JAWS-UG 初心者支部&千葉支部 #26 新人さん歓迎!ハンズオン&LT(オンライン) を CLI でやってみる (ハンズオン 3' 編) #jawsug_bgnr

ハンズオン 1 編、ハンズオン 2 編、ハンズオン 3 編の続き。 2 つめの S3 バケットまではハンズオン 3 編を使い回しで。ただし、前回の分は削除してしまったので、改めて作成。 Lambda Function 作成 2 つめのバケットに PUT されたことをきっかけに動く Lambda Function を作成 (後述するけど、これでは動かなかった)。Python で書いたことがないので気持ち悪いところとかあるのかもしれないけれど、とりあえずは動けばいいや的な。 ...

2020-05-10

JAWS-UG 初心者支部&千葉支部 #26 新人さん歓迎!ハンズオン&LT(オンライン) を CLI でやってみる (ハンズオン 3 編) #jawsug_bgnr

ハンズオン 1 編、ハンズオン 2 編の続き。 S3 バケット作成 $ aws s3 mb s3://20200505-transcribe-input-mfjt make_bucket: 20200505-transcribe-input-mfjt $ aws s3 mb s3://20200505-transcribe-output-mfjt make_bucket: 20200505-transcribe-output-mfjt Lambda Function 作成 OutpuBucketName は自分のバケット名に変更しておく。 import json import urllib.parse import boto3 import datetime s3 = boto3.client('s3') transcribe = boto3.client('transcribe') def lambda_handler(event, context): bucket = event['Records'][0]['s3']['bucket']['name'] key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8') try: transcribe.start_transcription_job( TranscriptionJobName= datetime.datetime.now().strftime("%Y%m%d%H%M%S") + '_Transcription', LanguageCode='en-US', Media={ 'MediaFileUri': 's3://' + bucket + '/' + key }, OutputBucketName='20200505-transcribe-output-mfjt' ) except Exception as e: print(e) print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket)) raise e ロールは相変わらず流用で。 ...

2020-05-05

JAWS-UG 初心者支部&千葉支部 #26 新人さん歓迎!ハンズオン&LT(オンライン) を CLI でやってみる (ハンズオン 2 編) #jawsug_bgnr

ハンズオン 1 編の続き。 Lambda Function 作成 ロールはハンズオン 1 のときのものを流用する。 $ zip translate-function-with-apigw.zip translate-function-with-apigw.py adding: translate-function-with-apigw.py (deflated 48%) $ aws lambda create-function \ --function-name translate-function-with-apigw \ --runtime python3.8 \ --role "arn:aws:iam::760182048326:role/translate-function-role" \ --handler translate-function-with-apigw.lambda_handler \ --zip-file fileb://translate-function-with-apigw.zip { "FunctionName": "translate-function-with-apigw", "FunctionArn": "arn:aws:lambda:ap-northeast-1:760182048326:function:translate-function-with-apigw", "Runtime": "python3.8", "Role": "arn:aws:iam::760182048326:role/translate-function-role", "Handler": "translate-function-with-apigw.lambda_handler", "CodeSize": 462, "Description": "", "Timeout": 3, "MemorySize": 128, "LastModified": "2020-05-04T09:48:09.842+0000", "CodeSha256": "NPM1vqsoCFi8HwNW5DdMNMq6gRWzgV6EA0fcLiVblzE=", "Version": "$LATEST", "TracingConfig": { "Mode": "PassThrough" }, "RevisionId": "cc6b2ba0-eb44-4897-b6c5-1709f8d49ef4", "State": "Active", "LastUpdateStatus": "Successful" } API 作成 リソースを作成 ID も確認する。 ...

2020-05-04