親です。

アラサー既婚子持ち、今はカナダのモントリオールで生活してます。という日記です。

【日記】twitter控える、息子ついに歩きそう、Djangoのモデルで逆参照のやり方

日記。

twitterをやめた

twitterをやめた。アカウントは消さないけど、基本的に勉強したことをブログにまとめて流すときに使うくらいで、あんまり日常的に使うのはやめた。理由はtwitter見てると底意地の悪い人が多すぎて疲れるから。情報収集にtwitterはかなり便利だったしそこでしか絡めない好きな人もいたけど、それ以上にtwitter見てると人の悪意を目にして疲れてしまう。自分自身もなんか無闇に攻撃的になるし、そんなところにリソース割くのは馬鹿らしいので、やめた。
ほんで、twitterが担ってた役割を何で代用しようかしらと考えている。twitterの用途は色々あるが、それぞれ代わりのものを下記の通り考えた。

  1. 情報収集 → podcast, Qiita(今回初めてQiita真面目に使ったけどめちゃくそ便利だった...)
  2. リーディングリスト → リーディングリスト使え
  3. アウトプットの放流先 → これはtwitterでもOK(タイムライン見ずに放流できるから)
  4. 考え事 → talkmemo(ラインみたいなUIのメモ帳)
  5. 呟きたいこと → talkmemo
  6. 人と交わる → slowly(文通アプリ。世界中の人と喋れる)
  7. 分からんことのメモ → talkmemo

こんなかんじ。
一点言うなら、以前はマジ四六時中twitter見てたから、絶対に日に一度はDjangoの情報に触れられた。けど、今後はそう言うのなくなるから、意識的にQiitaの好きなタグを見るとかしないとなって思う。

(いまQiita見ててモデルの逆参照ってのを知った。
related_nameの存在意義とは? - Django2の実力をつけるチュートリアルサイトDjangoBrothers
具体的には、

# はてぶろ上で書いてるから色々文法がめちゃくちゃかも
class Parent(models.Model):
    name = models.TextField()


class Child(models.Model):
    name = models.TextField()
    parent = models.ForeignKey(Child, on_delete='CASCADE', null=False)
    

parentとchildってクラスがあったとして、参照ってのがchild.parent、逆参照がparent.child_set.all()。また、childにparentとstep_parentみたいな親を参照する項目が複数ある場合はモデルの定義時にrelated_nameというオプション引数を与える必要がある。

class Child(models.Model):
    name = models.TextField()
    parent = models.ForeignKey(Child, on_delete='CASCADE', null=False, related_name='who_is_parent_of')
    step_parent = models.ForeignKey(Child, on_delete='CASCADE', null=False, related_name='who_is_step_parent_of')
parent = Parent.objects.get(name='やっちゃん')
parent.who_is_parent_of.all()
# <QuerySet ["やっちゃん血縁上の娘", "やっちゃん血縁上の息子"]>
child.who_is_step_parent_of.all()
# <QuerySet ["やっちゃんの再婚相手の子ども、たかしくん"]>

こんな感じ。俺はrelated_nameを関係代名詞みたいにしてるんだけど、なんかそうすると逆参照だって直感的にわかると思う。俺はこうしたいんだ!!!

本題からずれたけど、とにかく、Qiitaってめっちゃ便利じゃんって思った。)

勉強

まあ何やるにしてもただの勉強は分かった気になるだけだな的なことをちょいちょい実感していて、Djangoでサービスを作ってみていた。小説を書くときのツールみたいなのを作るのが一番モチベーションが保てるなと思い、そのサービスの機能としてtrelloみたいなのをweb上で実現しようとしている。
ここ最近はそれを開発しつつ勉強して、責務の話とかはわりと切り分けてやれるようになった。そして一旦切りのいいところまで開発できたので、GitHubKPTまとめつつアップロードして、今回の開発は終わりとした。

今後は機械学習とデータベースの設計について勉強したいなと思ってる。とりま仕事でイチからシステム構築することになりそうなので、データベース設計から。機械学習への道は長い…。

仕事

FileMakerっていうソフトを使った案件に参画する。昔すこしだけ使ったことがあるが、エクセルツール的な立ち位置のツールを作っただけで、今回のは基幹システム。イチから作るってのがちょっと分からんのだよな。
とりまデータベース設計について勉強して、teratail起票しようかと思ってる。

あと、今後の収入について、収入源を増やしたいと思ってる。去年フリーの仕事を一本入れて、それが良かった。確定申告も簡単だったし。広告収入とか、フリーランスの仕事をやるとかかな? twitter経由で3つくらい仕事をもらえそうにもなってるんだけど、色々未確定なんだよな。

息子立つ

今一歳半くらいで、ついに立った。なんか平均的な子どもは一歳くらいで立つらしく、まあ周り見てても確かに立ってて、とはいえまあ彼には彼のペースがあるだろうし下心を言えば正直歩かない方が育児は楽なので特に何も考えずいたら、ついに立った。まだ立てて5秒が限度で普通に倒れ込むので、しばらくは目が離せないな〜〜と幸せな悩み。ちな、子どもが立つとめっちゃテンション上がってしまう。妻と一緒に絶叫する。立ってほしいと思ってたわけではないんだけど、目に見えて成長してるからつい叫んでしまう。うるさい親だな〜〜と妻と一緒に笑った。

英語

英語、そろそろ再開しなきゃなと思ってる。やるのは

  1. Reading - slowlyで手紙を読む
  2. Listening - 自宅で英語耳
  3. Speaking - 自宅で英語耳、外で息子遊ばせつつ瞬間英作文
  4. Writing - slowlyで手紙を書く
  5. 単語 - 単語帳かみかんかDrop。悩み中

こんな感じかなあ。英語はいつも不安。
まあでも、モントリオールでの俺の暮らしって、基本的には日々の買い物とか、役所での申請とかになるんだよな。んで、そういうときに一番必要なのってリスニングだと思う。読み書きはグーグル翻訳使えるし、話すのも俺が下手でも相手はネイティブだから問題ない、けどいきなり話しかけられたときは俺自身の力でどうにかするしかないじゃん? あと単純に一番苦手意識あるし。
戦略としては、隙間時間を見つけて全部色々手を付けるとして、それに加えて毎日そこそこ時間をとってリスニングをやりたい。シャドーイングとか。Netflixで英語字幕つけてUmbrellaAcademy見直したりしようかな。うーむ。

まあそんな感じで、朝Qiita読んで、時間とってUmbrellaAcademyでシャドーイングして、文通しながら英語耳と瞬間英作文する。

以上!