きょうのふりかえり

# やったこと

DP Hを解いた

ABC119 Cを解いた

functionを書いている

オートマタを観た

寝た

# わかったこと
## 再起を使っていい場合とだめな場合

dpかlru_cacheで迷ったらdpのほうが安全

再起を使っていい場合はNが露骨に少ない

## オートマタを観た

観たことあった。

## 寝た

朝風呂に入ると眠くなるらしい。休日は入っていたので入らないようにしたい。

## ふりかえり

面倒なのでやったこと、わかったことをやった時点で書いていた。

思い出すことが大事っぽいのでやったことまででわかったことを書かないようにする。

# つぎやること

昼寝をしないチャレンジ

function部、今できるところをやる

BigQueryをオフラインでテストする方法

PyCharmのフォント変更

Edex-uiの導入

きょうのふりかえり

やったこと

わかったこと

結局、オタクとはなんだったのか

  • オタクとは何者にもなれない人間があるがままで超人を目指す幻想である
  • ニーチェの言う超人の歪な姿である

ABC C

  • やっぱりC問題楽勝なのでは。当たり外れ大きすぎる気がする。

GCPの構成

GAE(django)->DB(BigQuery)<-CloundFunction(BS4) で作るべきな気がする。
* 料金は何をどうしても無料で収まる気がする。

GCP の無料枠 - 無料の長期トライアル、Always Free  |  Google Cloud

  • アルバイト関係API

仕事・アルバイト関連のAPI - API LIST 100+

振り返りに関して

  • 23:30には開始したい。

つぎやること

  • functionsのtest
  • BigQuery部分

雑記

はてなブログのアプリ、超いい。
シンプルで書くことに集中できる。 購読も機能としてはあるけど、書くことを阻害しない。
非常に良いPOの存在を感じる。 機能を入れるのは馬鹿でもできると思ってるので、こういう人間と働きたいまである。
ただMarkdownの改行が2スペっていう仕様がどこまでも邪魔。

結局、オタクとはなんだったのか

ウィザーズコンプレックスの鳴ルートをやり終えた。 ういんどみるから出る作品ということで、元長らしさは無いだろうと高を括り、今までやっていなったが、これは間違いなく元長柾木であり、オタクを理解する上でやらなくてはならない作品である。
僕の中で元長柾木Sense off未来にキスをの前期とギャングスタリパブリカ、アルカディアの後期に分けていた。
ちなみにフロレアールと猫撫は扱いに困っている。 未来にキスをからギャングスタまでは未来にキスをGenesisを無限に強化し続けるものとして認識しているので、作品自体にに意味はない。
未来にキスをGenesisは他者と分かり合えないという絶望を他者と分かり合わない事で自己の中の他者とわかり合うという希望に変換する、一般的にコミュニケーションが苦手であり自己に閉じこもりがちなオタクに対する福音であった。
Sense Offで外界からの刺激と意識に関して、未来にキスをで他者と自己に関して語っている事から、元長柾木はオタクの為のソシオンを提言していたように思える。
この後、彼の言う21世紀の圧倒的な楽園が続くはずだった。
だが、ギャングスタリパブリカで封じたはずの他者が戻ってきた。
アルカディアでそれは致命的になる。 再びのGenesisを迎え人を超越した者は、結局人に戻る事を強要される。
未来にキスををやっていた人間ももうオッサンとなり、薄々Bye bye, humanなんて言ってる場合じゃ無い事に気付いているだろうが、教祖たるお前が言うのかという気持ちがある。
とはいえ、教祖から見放されてしまった信者はどこに行けばいいのか、そもそも目指していた楽園とはなんだったのかというモヤモヤが残る。
そこで、今作の鳴ルートである。
本ルートで二度目ののGenesisを迎えられなかった、かつてのオタクの象徴としてターニャに関する話が掘り下げられる。
何者にもなれない人間がそのままで何者かになれる、そうした幻想を肯定する文化こそがアニメ、ゲームである。
その文化を産んだ日本に来てみたら、その文化を生みながらその文化を幻想として諦めている。そんな惰弱を許すわけにはいかないというのが彼女の主張である。
結局、これこそがドグマだったように思える。
他者と分かり合えない不安を隠す為の最初のGenesis
これを否定した二度目のGenesis
幻想を否定された事への怒り。
幻想を否定されたら何者でも無い、ただのオタクですらない人間達。
何者にもなれないオタク達はどこに行けばいいのか、それはおそらくはぴねす2で語られるのだろう。

余談であるが鳴が事あるごとにメタに逃げるなというセリフを繰り返していた。
このセリフは元長の自身に向けたセリフに思え、2016年の元長の考えに考え抜いたルートである事を感じさせる。

きょうのふりかえり

GWだし毎日振り返りをしていこうと思う。
今日がもう終わったと思ってる時点でアレ。

やったこと

わかったこと

gcdの計算の仕方

ABC125のCがTLE。

  • 最大公約数はgcdという
  • 素数を求めて、素因数分解して、各素因数の最小の次数を使う->遅い
  • ユークリッドの互除法を使う
  • 互除法を引き算でやると遅いのでmodを使う
  • pythonだとmath(旧fractions)にgcdがある->battery included!(いいのかそれで)
  • gcdはPyPy3でも動く。

RPythonとPythonのdiffを調べた

競プロ的には特に気にしなくてはならないことなさそう。 * sys.setrecursionlimit()が要らなくなる。(最大値が設定される) * mathもitertoolsもある。

PyPyとCPythonの違い — pypyja 1.7 documentation

C問題の難易度

  • 124と125でかなり難易度に差がある気がする。

スタッカートとアクセント

  • スタッカートは人差し指に力を入れない
  • アクセントは力を入れる
  • 何分音符によってスタッカートの発音時間は変わらない。

肩当て

  • KUN Originalのほうが横幅の調節の自由度が1ピン多い
  • 確かに音は変わった気がする。
  • 気がする。。。

つぎやること

  • DP DEを解く
  • やってないC問題を解く
  • ウイザーズコンプレックスの鳴ルートを終わらせる
  • DeepMuse、はしるところまでいかす
  • AIミニ四駆のルールまとめる
  • Firebaseのやつなんとなくスタートする

Mastodonのスパムアカウント対策

Mastodonにスパムアカウントが増えてきたので対策を行った。

Stop Forum Spamを元にしたdenyの追加

MastodonがStop Forum Spamの対象に入っているかは調べていないので知らないが、どうせこういうのやる奴は業者だし同じだろという発想。
以下のスクリプトを実行し、denyリストを生成する。
blocks ips in nginx using stopforumspam.com - WebHostingNeeds.com

ついでにcronに登録しておく。

メールブラックリストの設定

2.4.3からメールブラックリストの設定が追加されている。
Mastodonのスパムの話を調べると、mxsrv.mailasrvs.pwからくるやつはだいたいスパムみたいな話があり、
実際そんな感じなようなのでブラックリストに登録しておく。
モデレーション->メールブラックリストから設定できる。


Stop Forum Spamを設定しただけではスパムは続き、メールブラックリストの設定後収まったのでメールブラックリストの設定だけで良さそう。

Pythonでwavを作成する

適当なC5のようなコードからwaveを作る。 環境は Ubuntu18.04 Python3.6.5

インストール

pretty_midi

文字列のコードからmidiの作成、fluidsynthの呼び出しまでやってくれるライブラリ。

pip install pretty_midi

pyFluidSynth

pretty_midiからfluidsynthを呼び出すときに使用している。
pritty_midiを入れたただけでは入らないので個別に入れる必要がある。
PyPIに上がっている奴はかなり古く、Python3では動かないため、githubから入れること。

pip install git+https://github.com/nwhitehead/pyfluidsynth

fluidsynth

これで楽器の音をつける。
なくても音を着けることは可能だがピョーっという感じの音になる。

sudo apt install fluidsynth

scipy

fluidsynthでできたwaveを書き出すために使う。
別に書き出さないなら不要だが確認するのに便利。

pip install scipy

コード

import pretty_midi
from scipy.io import wavfile

pm = pretty_midi.PrettyMIDI() 
violin_program = pretty_midi.instrument_name_to_program("Violin")
violin = pretty_midi.Instrument(program=violin_program)

note_number = pretty_midi.note_name_to_number("C5")
note = pretty_midi.Note(velocity=100, pitch=note_number, start=0, end=.5)
violin.notes.append(note)

pm.instruments.append(violin)

# fluidsynthでwavに変換
audio_data = pm.fluidsynth()

# wavファイル書き出し
# fluidsynthのfsが44100なので合わせる
wavfile.write("hoge.wav",44100, audio_data)

音の変更

FluidSynthはSoundFontを使用して音をつけている。
つまり、これを変更することで音の質(?)を変えられる。(なんていうんですかね…。同種の楽器でも音が違うことに対する単語を知らない。)
変更するには上記コード中のfluidsynthにsfファイルのパスを指定してあげれば良い。
上記コードのように何も指定しない場合pretty_midiが入れてきたTimGM6mb.sf2を使うらしい。

変更する場合はTimGM6mbのようなGeneral MIDIという規格にそった、GMサウンドフォントと呼ばれるものを使うのが良さそう。 サウンドフォントのリストは以下のリンクが詳しい。

サウンドフォントと SFZ ファイル | MuseScore

ちなみにFluidSynthインストール時にもサウンドフォントはインストールされている。

/usr/share/sounds/sf2/FluidR3_GM.sf2

FluidR3_GM.sf2で音を作るには以下のコードに差し替える。

audio_data = pm.fluidsynth(sf2_path='/usr/share/sounds/sf2/FluidR3_GM.sf2')

聴き比べたら普通にわかるぐらいFluidR3_GM.sf2のほうがそれっぽい音だった。

Mastodon 2.4.0に上げるときに困ったこと

Mastodon 2.4.0にアップデートするときdb:migrateができなかったのをなんとかした。*1

現象

以下みたいな感じになる。

$ docker-compose run --rm web rake db:migrate
Starting mastodon_redis_1 ... done
Starting mastodon_db_1    ... done
rake aborted!
Gem::LoadError: You have already activated rake 12.0.0, but your Gemfile requires rake 12.3.1. Prepending `bundle exec` to your command may solve this.
/mastodon/config/boot.rb:3:in `<top (required)>'
/mastodon/config/application.rb:1:in `require_relative'
/mastodon/config/application.rb:1:in `<top (required)>'
/mastodon/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

railsの方使えばいいんでしょとrails使うと違うエラー。

$ docker-compose run --rm web rails db:migrate
[FATAL tini (6)] exec rails failed: No such file or directory

解決

以下みたいにコマンドを打つ

$docker-compose run --rm web ./bin/rails db:migrate

ついでにprecompileも。

$ docker-compose run --rm web ./bin/rails assets:precompile

宣伝

ドールMastodonやってます。
mastodoll.net

*1:ドッカーって奴つかうとこういうの無くなるんじゃなかったんですか!!!!