Mastodonにプルリクしてみました。
辛い。
でもやる価値があるとおもうんだよ。
コミッターに載れたらめっちゃ嬉しいやん!
機能は簡単なもので、間違えてavatar消してしまったときにavatarを再取得するって言うrake task。
- 手元の環境のrubocopが上手く動いていなくてそこで怒られる。
- ループをnextで飛ばせと怒られる。
→辛い。
でも、たしかに言われたことやるとループの深さも浅くなって見通し良くなった。
これは力がつくね。rubocopは手元の環境をもうちょっときちんとしてそこでつまづきたくないね。
ともかくMastadonから目が離せない今日このごろ。
ていうかブランチ切らないでmasterで作業していたことにプルリクしてから気づく有様。
ちょっと無様だねー
どうか本家に取り込まれますように。お願い!
Mastodonのアップデートv1.2へ(追記あり ほぼ無停止更新)(docker system prune -a追記)
dockerのデプロイ、アップデートの方法がごっそり消えとる(キレ気味)
サンクス@nukosu@pao.moeさん
Main README developer documentation · Issue #1830 · tootsuite/mastodon · GitHub
短絡的。documentの方を整備してから変更してよ。あんまり英語読みきれてないけどお前のshouldとか知らん。
仕方がないので
README.mdを掘る
github.com
docker-compose.ymlとか編集しているので退避しないとだめね~
以下、流したコマンド
git stash save git pull git describe --tags `git rev-list --tags --max-count=1` # versionを確認 git checkout -b v1.2 $(git describe --tags `git rev-list --tags --max-count=1`) git checkout -b v1.3.1 refs/tags/v1.3.1 #こっちが良いかも #追記 2017/04/28 git stash list git stash list -p git stash show stash@{0} git stash apply stash@{0} docker-compose stop docker-compose build docker-compose run --rm web rails db:migrate docker-compose run --rm web rails assets:precompile docker-compose up -d #追記 git stash drop stash@{0}
以上です。
次はdb/redisもバックアップすべきですねー。
2017/4/29 追記 1.3.1
2017/6/24 追記 1.4.6
1.3.1への更新がありました。
あれから考えたのですが、Linuxはプロセスを立ち上げる際に必要なファイルを別領域にコピーして使うので、起動しながらapacheをビルド、とかできるわけです。で、ビルド後restartして最新へ、とかできる。dockerも同じなはずで、今回は、バックアップ取ってから起動しながらdocker-composeのbuildをためしてみました。行けました。
以下、流したコマンド。スクリプトにして一気に行ける感じがでてきました。
2017/6/24 追記 1.4.6
docker system prune -aを追記します。いらないイメージ消しておきましょ。
git stash save git pull git checkout -b local$(git describe --tags `git rev-list --tags --max-count=1`) $(git describe --tags `git rev-list --tags --max-count=1`) git stash apply stash@{0} docker-compose build docker-compose run --rm web rails db:migrate docker-compose run --rm web rails assets:precompile docker-compose stop && docker-compose up -d git stash drop stash@{0} docker system prune -a
基本ほぼ無停止で行けました。
MastodonをDB永続化忘れて起動したけど最小限の犠牲で済ませた
要はdocker psとdocker cp
hoge@ubuntu16:~/tmp/bk$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5b96312a6b26 mastodon_web "bundle exec rails..." About an hour ago Up About an hour 0.0.0.0:3000->3000/tcp, 4000/tcp mastodon_web_1 960bb0ec5396 mastodon_streaming "npm run start" 28 hours ago Up About an hour 3000/tcp, 0.0.0.0:4000->4000/tcp mastodon_streaming_1 e5436243c18a mastodon_sidekiq "bundle exec sidek..." 28 hours ago Up About an hour 3000/tcp, 4000/tcp mastodon_sidekiq_1 69e8481531c6 redis:alpine "docker-entrypoint..." 28 hours ago Up About an hour 6379/tcp mastodon_redis_1 8c5100e9fec4 postgres:alpine "docker-entrypoint..." 28 hours ago Up About an hour 5432/tcp mastodon_db_1
hoge@ubuntu16:~/tmp/bk$ docker cp mastodon_db_1:/var/lib/postgresql/data ./data
あとはdockr rm dbとかしてやればdocker-compose.ymlの設定が反映される
db: restart: always image: postgres:alpine ### Uncomment to enable DB persistance volumes: - /path/to/postgres/data:/var/lib/postgresql/data
最小限の犠牲(3トゥートぐらい)ですんだ。
泥臭いですね!
Mastodonのインストール
いろいろ四苦八苦してサービス提供開始できました。Dockerがむずい。
mastdn.lovesaemi.daemon.asia
是非きてください。
インストールは公式と
github.com
このqiitaでなんとかなる
CentOSとUbuntuの読み替え必要だけど基本同じ
qiita.com
MyDnsは
dotnsf.blog.jp
rvm、nvmはググって。
最初はサブディレクトリ運用出来ないかで四苦八苦した7時間ぐらい→無理と判断
ドメイン取ってすんなり3時間ぐらいで色々成功。
SparkPostがよくわからなくて辛かったよ。
本当は適切なドメインをお金だして買うべきなんだろうけど無料に固執した。
構築はとても楽しくて没頭しました。
サインアップして盛り上がって欲しいな。
Unity5の教科書 8章
おわりー。
レベルデザインはあまりふみこまないようにした。
もっといろいろできるのだろうけど。
とりまUnity触れまーす、初心者でーすぐらいには行けたかと。
Unity WebGL Player | AppleCatch
次はDeepLearningかなー
値渡しと参照渡し
値渡しだとコピーされるので値は変更されない。
参照渡しだと中身を変更できる。
ただし、参照型のオブジェクトだと常に参照渡しの模様。
あえて参照渡しをする意味も無い気がします。
<?php $str = "hoge"; // 値渡し function mod($str){ $str .= "fuga"; } // 参照渡し function modref(&$str){ $str .= "hoge"; } mod($str); echo $str . "\n"; // => hoge modref($str); echo $str . "\n"; // => hogehoge // ただし、参照型だと常に参照渡し $obj = new stdClass(); $obj->x = "10\n"; echo $obj->x; // => 10 function mod2($obj){ $obj->x = "20\n"; } mod2($obj); echo $obj->x; // => 20
参照渡しについては下記によくまとまってる。
qiita.com