プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

Annictをローカルで動かそうと試してみてハマった箇所を記録してみた #annict

Annictというアニメ視聴記録サービスがあります。結構前から利用していて、私がアニメ視聴記録サービスに求めているものが結構あるので、個人的に重宝しているサービスです。Github会議の時に開発者の方とお話しする機会があった際、「こんな機能が欲しい*1んですよね!」と訴えるくらいには使っています。

さて、このAnnictというサービス、日本のアニメ視聴記録サービスとしては珍しい特徴(恐らく現時点では唯一?)があります。それはOSSであるということです。

github.com

今回はこのAnnictをローカルで動かそうとしたときにハマってしまったポイントをメモ代わりに残そうかと思います。

前提条件

開発環境はVagrantを使用して、Ubuntu 14.04を仮想マシンのOSに選びました。

Annictを動かすのに必要なツール類はこの記事が書かれた時点でのREADMEに書かれた指示通りにやっていてみました。

bundle installに失敗する

これはnative extensionを必要とするgemをインストールするときに事前に入れておかなければいけないソフトウェアを入れていなかったことが原因でした。具体的に言うとpgとかrmagickとかのgemをインストールするときの話しですね。

具体的に何を入れておけば問題なかったかどうかは色々試行錯誤しながらだったので全ては覚えていませんがrmagickを入れるためにsudo apt-get install libmagick++-devをして、pgを入れるためにpostgresqlだけでなくsudo apt-get install libpq-devをしたのは覚えています。

bundle exec rake db:createが失敗する

bundle installが成功したのも束の間、次はbundle exec rake db:createが失敗して途方に暮れるという事態に。

エラーを見ていてpostgresql周りの設定が出来ていないのだろうと当たりをつけて色々ググった結果、pg_hba.confという設定ファイルの設定の仕方に問題がありそうだということがなんとなく分かりました。

要するにRailsの知識ではなくてPostgreSQLの知識が足りなくて失敗していたということです。

で、根本原因を突き詰めると知識不足もあり果てしなく時間がかかりそうだったので、とりあえず急場しのぎとしてpg_hba.conf内のauth_methodがmd5になっている箇所をtrustに変更してみたら無事bundle exec rake db:createが通るようになり、続くbundle exec rake db:migratebundle exec rake db:seedも成功するようになって解決。

ただ、これはpg_hba.confの設定をよく分からずにやっているよろしくない例なので、今後設定の意味をちゃんと調べて安全なやり方でやってみたいところですね。

ポートフォワーディングしてもVirtualbox上の開発環境にアクセスできない

ここまで出来たから後はアクセスするだけだ!と思ったのも束の間、今度はbundle exec rails sしたVirtualbox内のRailsにホストマシンからアクセスできない状態に苦しめられました。

ここのポイントは「ポートフォワードを正しく設定しているのにアクセスできない」というところで、原因が本当に分からずに死にました。

色々調べて最終的に分かったことは、Rails 4.2からrails serverのデフォルトホストが変わったことが影響しているということでした。

これはRack側の変更の影響とのことですが、これにより仮想マシンで動かしているRailsにアクセスしようとしても依然と同じようにはアクセスできないため、この記事を書いている時点でのREADMEの説明だとアクセスできなくなっていたということが判明したので、Rails 4.2のリリースノートに書いてあるように-b 0.0.0.0オプションをつけてbundle exec rails sして解決しました。

で、コレに関しては既存のものを恐らく壊さないだろうし、私でも間違えずに貢献できそうだと思ったので、Pull Requestを送っていましたが、記事を書いている間にMergeされました!

Twitterの認証に失敗する

で、これでようやくRailsにアクセスできるようになって「やった!」と思ったら、認証にハマりました。

結論を言うと、これも結局Railsの知識とかではなく、Twitterのアプリケーション登録しているかどうかという話しでした。

Twitterのアプリ登録をして得たConsumer KeyとConsumer Secretを、一連の作業の中で出来たconfig/application.ymlの中の設定に書き込んで解決。

この時地味にハマるのが、Twitterのアプリ登録時にCallback URLを設定していないと認証するときにエラーになるということ。(参考記事)

…こう書いていると自分の知識の無さにへこみますね…

最後に

とりあえず画像変換サーバーのtomboを動かしてやっているわけではないので画像周りは表示されませんが、無事にローカルで動くようになったので、とりあえずよしとしたいです。

今後の開発者が試しやすくなるようにVagrantfileとかDockerfileとかdocker-compose.ymlとかを用意してPull Requestを送れるようになったら送ろうと考えて今四苦八苦しています。

今後も何かしらいじってみて貢献できたらいいなと思って利用していくつもりです。

*1:「アニメ視聴ステータスにHummingbirdでいうOn Holdにあたるステータスを追加して欲しい」という要望でしたが、これは後日、ありがたいことに「中断という視聴ステータスが追加」という形で実装されました

2015年7月まとめ

はじめに

前回のまとめをまず貼ることから。

takuan-osho.hatenablog.com

今回も当月中にまとめがアップできていないのである。

やったこと

  • gulpでslimやsassのコンパイル楽にする方法を覚えた。
    • 秘伝のタレ化してしまいがちなところに気をつけていれば有用なツールっぽい。
    • とはいえ、秘伝のタレになるくらいならnpmだけで対処した方がいいのかも?とか思う今日この頃。
  • react.jsの基本的なところはやっと覚えてきた。
  • 会社の懇親会に出た。
    • いつもこういうのには出てないので、たまには出るかと思って出てみたら意外とよかった。
    • ただ、コレに出る関係でHちょびよみに一回出られなかったのは痛かった。
  • Swiftの勉強会に再び参加。
  • 久しぶりにHちょびよみに参加。
    • 7/30の回でFuntorとApplicative Functorの箇所を学ぶ。
    • 本格的に始まる前に前回までのノートを写してもらう時間があったので非常に助かりましたね。遅れていた分を少しは取り戻せてよかったかな、と。

所感

なんとなく少しはまともに過ごせた気がする1ヶ月だったと思います。

これから

今回も7月まとめを8月にやっているという状態なので、どうにかしたいところ。

とはいえ、ブログ更新も少しずつまた出来るようになってきたので、少しアウトプットを意識してやってみたいですね。

特に、書いたコードのアウトプットが最近出来ていないのでそこをもう少しどうにかしたいです。

まず手始めに、「最近学んだgulpとか使って開発時に色々楽をする」というところから記事にする、という感じかと思ってます。

PyConJP 2015のプロポーザル一覧を把握しやすいようにざっくり整理してみた

何でこんなことしたか?

PyConJP 2015のプロポーザル一覧ページが種類別とかレベル別にソートできない仕様で、かつabstractも含まれている関係でページが縦長になっていて、投票したくなるプロポーザルを把握できなかったから少しスクレイピングしてデータ整理(リンク付きタイトルを抽出して一覧化)してみたかったというのが理由。

つまり自分用です。なので、リンク間違い・タイトル間違いあっても勘弁して下さい。 後、Twitter見てるとチュートリアルはもう既に採用されたものが何個か決まっているみたいですけど気にしないことにしました。

以下、自分なりに整理したプロポーザルです。ソートは適当。というかしていない。

個人的に把握しやすいように整理したプロポーザル一覧

talk(初級)

  1. セカイノカオ by チーム・カオ(ja)
  2. Integrating Django with Centralised Identity Management(en)
  3. Doing Math with Python(en)
  4. Sphinxで作る貢献しやすいドキュメント翻訳の仕組み(ja)
  5. PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう(ja)
  6. Pythonで3Dデータモデリング&3Dプリント(ja)
  7. Cyber attack: About DNS DDoS, and analysis it with Python(en)
  8. データベースドライバーひと巡り(ja)
  9. Translation of Python Programs into non-English Languages for Learners without English Proficiency (en)
  10. PyCon JP を支える技術 2015(ja)
  11. with modern_peripherals: Python and Flask(en)
  12. PyCharm Essentials(en)
  13. 野球Hack!~Pythonを用いたデータ分析と可視化(ja)
  14. MinecraftをPythonで遊ぶ(ja)
  15. なぜWeb画面自動テストはうまく行かないのか(ja)
  16. 14歳からの関数型プログラミング in Python(ja)
  17. 10年続くWebサービスでも使えるOpsのためのfabric入門(ja)
  18. pythonが支える、データ駆動型コンテンツの創出(ja)
  19. Infrastructure as Code with Ansible(en)
  20. Breaking backwards compatibility: The easy way! (en)
  21. Dissecting the Stack: How things were glued together(en)
  22. Teaching Data Structures with Python(en)
  23. Python, the next Brazilian generation(en)
  24. JSONSchema with Python(ja)
  25. Python3を利用して良かったこと(ja)
  26. Mezzanine, the best CMS on Python(en)
  27. エンジニアの技術力評価は難しい? - 相互評価制度を約4年やってみたけど、わりと良い感じかもしれない -(ja)
  28. はじめてのドローン・プログラミング(ja)
  29. Web2.0せんせーが進路相談!(ja)
  30. 日本のオープンデータプラットフォームをPythonでつくる(ja)
  31. Pythonで作る俺様サウンドエフェクター(ja)
  32. Gandi CLI: Open Source command line interface to manage domain names and hosting infrastructures(en)
  33. kaa - Python製テキストエディタ(ja)
  34. tse - Pythonによるテキスト整形ユーティリティ(ja)
  35. Learning by Experience, Devploying pyxbackup(en)
  36. Kivyの基礎: アプリケーション開発の楽しさを考える(ja)
  37. Ways to avoid overfitting when developing a trading strategy(en)
  38. Pythonで作るリコメンデーションシステム(ja)
  39. DevOps ツールの選びかた・使いかた 〜ヌーラボの場合〜(ja)
  40. PyLadies Tokyo-初心者女性向けPython体験ワークショップ開催の裏側(ja)
  41. PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」(ja)
  42. Rise of the Static Site Generator(en)
  43. Better Python DevOps Security(en)
  44. Karaoke-style Read-aloud System Using Speech Recognition and Text-to-Speech Technology(en)
  45. 強くなるためのプログラミング ープログラミングに関する様々なコンテストとそのはじめ方ー(ja)
  46. 失敗と成功のあいだ:ゼロからはじめる強化学習(ja)
  47. 土木でも使えるPython☆彡(ja)
  48. ユニットテストのあれやこれや(ja)
  49. クローラーと僕(ja)
  50. PyPIデビュー 2015(ja)
  51. On SageMathCloud - Doing Mathematics and Python programming on cloud.(en)
  52. Pythonによる科学技術計算入門(ja)

talk(中級)

  1. 組合せ最適化を体系的に知ってPythonで実行してみよう(ja)
  2. Sphinx autodoc: APIドキュメントの自動生成(ja)
  3. データ可視化技術の過去/現在/未来(ja)
  4. Python で作って学ぶ形態素解析(ja)
  5. Program Pepper in Python(en)
  6. Python3 WSGIアプリケーション入門(ja)
  7. Packaging最前線(ja)
  8. Tornado/Websocketを使ったモバイルゲームアプリケーションの事例紹介(ja)
  9. Web Scraping in Python(ja)
  10. Writing Fast Code(en)
  11. Pythonによる未知語・重要語キーワード抽出とその応用(ja)
  12. Tornado/ElasticSearchで実現する大量ツイートのリアルタイム関連文書判定(ja)
  13. Making Python coexist with others(en)
  14. Ansible x AWS -- Infrastructure as Code for Small Team(ja)
  15. Threads and Callbacks for Embedded Python(en)
  16. Building a Scalable Python gRPC Service using Kubernetes(en)
  17. NAO + iPadで実現するコミュニケーションロボット!tornado/websocketで実装するタブレットを使った対話ロボットアプリの事例(ja)
  18. Djangoとフロントエンドフレームワークの共存事例(ja)
  19. pandasによるデータ加工:テストのコツ・注意点やライブラリの紹介(ja)
  20. uWSGI/Dockerを利用したWebサービス運用事例(ja)
  21. How we realize SOA by Python(en)
  22. アドネットワークのデータ解析チームを支える技術(ja)
  23. Python × Bluemix でやったHack-a-thonでの超短期間認識系アプリ開発事例(ja)
  24. Introduction to Theano -- not only for deep learning(en)
  25. Data selection techniques in pandas(en)
  26. Pythonでマイクロサービス構造のWebサービスを実現する(ja)
  27. CFFI Is the Future(en)
  28. Mochiの紹介(ja)
  29. Python と型ヒント (Type Hints)(ja)
  30. 個人の写真から分かる過去と未来 ~機械学習を添えて~(ja)
  31. Introduction to nipype and creating stable NeuroImaging pipelines using it (en)
  32. Cython at rescue .(en)
  33. Machine Learning to solve grass root level problems .(en)
  34. pandas internals(en)
  35. Python and the Semantic Web: Building a Linked Data Fragment Server with Asynco and Redis(en)
  36. Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例(ja)
  37. fabricを用いたサーバーメトリクスの収集と可視化(ja)
  38. Cython による他言語の拡張(ja)
  39. 2015年決定版! 博士のPythonでハードウェアを扱う方法(ja)
  40. Scaling and Launching Python on AWS(en)
  41. Djangoのエントリポイントとアプリケーションの仕組み(ja)
  42. Pythonで作る、少し未来のオフィス(ja)
  43. Give your scripts the power of the Web! Web automation through Python(en)
  44. Let's prevent bugs by checking our types in Python(ja)
  45. Getting started with PySpark(en)
  46. Let it crash: what Python can learn from Erlang.(en)

talk(上級)

  1. Jumping the Python Ship: Better Alternatives To Python(en)

poster

  1. Sphinx-users.jp(ja)
  2. Python x Edison = New World!!(ja)
  3. ニューラルネットの実装が簡単なChainerを用いた音声からの感情識別(ja)

tutorial

  1. Sphinxハンズオン(ja)
  2. 【初心者向けPythonチュートリアル】Webスクレイピングに挑戦してみよう(ja)
  3. Pythonを使った機械学習入門(ja)
  4. Python x Edison x AWSではじめる IoT(ja)
  5. Effective Pandas(ja)
  6. エンジニアのためのベイズ推定入門:確率論的プログラミングのすすめ(ja)
  7. Machine Learning Bootstrap(ja)

どうやってプロポーザル一覧を整理したか?

全然高度なことしていないですが、メモ代わりに残しておきます。

  1. kimonolabsを活用して、プロポーザル一覧ページや各プロポーザル一覧のページのデータをスクレイピングしてjson化する
  2. 作ったjsonPythonで処理して、各プロポーザルの詳細ページへのリンク付きタイトルリストをmarkdown形式にするように吐き出す
  3. markdownを処理できるブログとかに貼り付ける

最初はスクレイピングも勉強がてらPythonでやってみようかと思っていましたが、該当ページのDOMの構造見てたら「面倒臭そう…」と感じてしまったのでkimonolabs使ってサボりました。が、目的は「PyConJP 2015のプロポーザル一覧を早くしやすくする」という所だったので、前処理で疲れ果てると本末転倒だからこれでいいかと思っています。

余談ですが、kimono便利なので、知らない人は活用してみるといいと思います。

思ったこと

公式ページ自体にソートっぽい機能があるといいなと思いました。

あと、投票していないので聴きたいtalkをさっさと投票しないといけないですね。

第1回 カジュアル Swift 勉強会 @ 青葉台に参加してきました

要約

第0回に引き続き、第1回目のSwift勉強会に参加してきて、発表した方がより自分のためになっただろうなあ、と思ったって話しです。

前回の話しは軽くこの記事で触れています

感想

今回は自分は発表しなかったので感想だけ。

今回も改めて思ったのは「少人数&議論多めな勉強会は得るものが多い」ということでした。

少人数であるのと議論多めにするという方針(+会場が自宅から行きやすい)が気に入っていて前回も参加したのですが、これくらいの人数だと一人一人の発言を拾った上で話しを突っ込んでいける余地があるので、気になったことを少し掘り下げられて気がしています。

個人的にこれやっておけばよかったなと思ったのは「今回も発表する。そして前回とは違い、資料はslideshareなどにアップする」ということでした。

というのも、今回の話しの中で「1.2の情報ってもう余り見かけないんですよね」とか「Swift 2以前に、1.1と1.2の違いをまず調べるのが大変」とか「本で書いてあるコードが1.2だと動かない」とかいう話しが少し出ていたので、前回の私の「市販のiOSアプリ開発本(Swift1.1)をSwift1.2で書き直した話」のスライドをアップしておけばそこから話しがもっと面白く展開できたと思うし、そもそも今回も自分で何かしら発表するようにしておけば発表駆動で勉強してきてフィードバックも得られて得るものが多かったのと思うので、次回は何かしらネタを出して発表しようと思いました。

小学生並みの感想文でしかないですが、次回も勉強会が開かれるのが楽しみです。

最近Swiftいじれていなくて、仕事の関係で主にHTML/CSS/JavaScriptをいじる時間で大半占められていますが、時間作ってSwiftいじりたいと思います。

2015年6月まとめ

はじめに

前回のまとめをまず貼る。

takuan-osho.hatenablog.com

9日前に遅まきながらまとめたエントリだが、6月文をまとめるのも23:20になってからなので未だに計画性というものが無い。

やったこと

  • 色々イベントに参加した

    • 第0回カジュアルSwift勉強会
      • ちょうどネタがあったので発表した。書籍に書かれているSwift1.1のコードをSwift1.2に書き直した時の話し。
      • 主催者の方のブログ記事読むと概要が分かります。
      • 本当はちゃんと資料用意してslideshareとかに上げたかったけれど、体調悪い日が続いて当日用意したレベルだったので、slideshareに上げられる形式では作れなかったのがイタイデスね…
    • Plone Symposium Tokyo 2015
      • 仕事でWordPressとかいじっていて、「無理矢理WordPress使ってないか、これ?」と思う機会があったので参加。
      • Ploneのことはほとんど知らなかったけど、当初の印象通り、ワークフローとかをきちっとやりたい場合にはPloneが向いてそう。
      • ただ、見た目がアレだし、4だとデフォルトではレスポンシブ(というかスマホ対応)になってないみたいなので、さっさとPlone 5が正式リリースされてくれませんかね?とは思いました。
    • Go Conference 2015 summer
      • 発表全てのレベルが高くて、100人越える勉強会にはなるべく参加しないようにしていたけれど、これは参加して良かったと思いました。
      • go generateとかASTとか使いこなしたいですね。
    • 第21回Haskellもくもく会 @ 朝日ネット
      • Haskellを家だと勉強しないので強制的に勉強できる空間に行きたかったので参加。2回目。
      • 目論見通り滅茶苦茶集中してすごいH本の写経できたので参加してよかった。惜しむらくは当日寝不足で疲れてなければ途中で返る羽目にはならなかっただろうということです。
  • アニメ

    • ラブライブの劇場版見に行った。近場に映画館が出来たのでちょうどよかったので。
    • 期待してなかったからか、割とよかった。
    • 最近アニメを楽しめていないのは相変わらずだった。
  • ゲーム

    • アニメが楽しめていないのとはうってかわって(?)ゲームを最近楽しんでいる。
    • といっても最近衝動買いしたCHAOS;CHILD(Vita版)をやっているだけだが。
    • ゼノブレイド止まっているのにCHAOS;CHILDの方に時間をたっぷり割いてさっさと1週目クリアしている辺り、能動的にやるゲームより受動的にやるゲームしか出来なくなっていることがよく分かる一幕だった。
    • それはそうと、CHAOS;CHILD、アニメ化決まっているみたいだけど、あれ、アニメが放映されるより前に原作遊んでおいた方が楽しめる作品だと思いました。アニメ放映された瞬間に致命的なネタバレが4つくらいは炸裂してそう。
  • 仕事

    • Middleman使って静的サイトやってます。
    • Ruby力低すぎて、自分がやりたい制御構文とかカスタムヘルパー作るのに四苦八苦。
    • そして相変わらずHTML/CSS難しい。
    • というかこの21世紀に何で人類はCSSというあんな貧弱なものを使っているのが謎。CSS、破綻するような描き方が容易に書けるから辛すぎる。

所感

もう今年も半分が過ぎたのかと思うと大変アレな気持ちになってくる。たいして時間を上手く使えていないので、無性に焦る気持ちを抑えられない。

そんなわけで現実逃避とストレス解消にゲームしている。

これから

生き抜く。遊ぶ。生き抜く。

2015年5月まとめ

はじめに

6月も半ば過ぎてから5月まとめを書くとか、中々習慣化してないことがバレバレだけど、このまま書かなかったら書かないままこの週間が終わりになりそうなので、過ぎても思い出せることだけ書いておく

cf. 2015年4月まとめはこちら

やったこと

  • iOSアプリ作りの勉強
    • 続けてる。
    • mixiのiOSアプリ開発勉強会も続けてる。というか最後まで通い続けた。詳しくは6月まとめに書くつもり。
    • 以前言及した本の実際の所は全て終わった(残っているのはsubmitのところなので、今後割愛するかも)
    • Swift1.2で書き換えながら学んだのは地味に収穫だった(と思いたい)。

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

  • Sphinx関連

    • Sphinx Tea Nightに久しぶりに参加した。
    • たまたま運がよかったのか、「SphinxのbuilderはVisitorパターンを使ってる」「build時に出来るdoctreeの内部構造を知りたいときはdocutilsのpseudo xmlの設定が使えるかも」という情報が得られて非常に満足度が高かった。
    • Sphinxに割く時間増やしていきたい…
      • 現状色々できてない。
  • 仕事

    • Ruby周り、よく分からないです。
    • HTML、CSSムズカシイデス。
  • アニメ
    • 楽しく見たい…

      所感

  • 4月に比べると後々に活かせる活動内容じゃなかった気がする(詳しく覚えていないので不明)

これから

6月まとめは6月中にやる。

ということをGoCon参加後の今日に書くのも何というかアレですね。

2015年4月まとめ

はじめに

先月から始めた月報を今回もやっていきます。

というかそういうことしないとアウトプットしようともしてないというダメな感じ。

やったこと

  • iOSアプリ作りのお勉強
    • 先月に引き続き、Objective-CでもSwiftでもやっている。
    • Objective-CmixiのiOSアプリ開発勉強会というのは変わらず。Swiftスタンフォード大学のSwiftで作るiOSアプリ講座に加えて、本でも勉強を始めた。この項目最後に該当の本を貼っておく。
    • 特に本で集中的にSwiftで書いてみたら段々iOSアプリの作り方が分かってきた気がする。特にSwift1.2になって、本の1.1用コードを自力で直しつつやってみたらCocoaPodsの使い方も含めて何となく分かってきた。
    • そしてCocoaPodsへの恨みが溜まってきた。
    • SwiftによるiOSアプリ開発、SwiftXcodeCocoa touchフレームワークとCocoaPodsを初めとしたエコシステム群の地雷全てを回避できるように動いていって初めてスタートラインになるって気が最近している。

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

  • ゼノブレイドを買った

    • New 3DSを買って一緒に。
    • とかく評判がいいのでとうとう買った。自分への誕生日プレゼント代わり。
    • まだ楽しさをそこまで実感できていないので、少しずつ進めていきたい。
  • gitの勉強してる

    • 仕事で多分これから同僚に対して教える機会が多くなりそうなのでgit力付けないと死ぬ。
    • というのは主要な動機ではないけれど、純粋にバージョン管理がどんな仕組みで動いているのか興味があって、普段(嫌に思いつつも)よく使っていて内部の仕組みに関する資料も豊富なgitを例にして勉強してる。
    • その一環として、自分の技術力向上のためにgitを自分で実装し始めたりしてる。ただ、中々時間が取れなくてまだ全然できてない。
    • 早いところadd, commitくらいできるようになりたい。がindex treeの実装で頭悩ましてる。まず仕様よく分からんし、今までバイナリ扱う機会ほとんど無くて勘所分からん…
  • Pythonに関して。

    • 最近ほとんどいじれてない気がする。
    • 最近Goの方がよくいじっている気がする。
    • 少しアレだなと思いつつ、いいネタが無くて未だにWebアプリ一つも作れてないのは変わらない。
  • 運動に関して

    • 最近空手も稽古日数少なくなっていて本格的にヤバい。
    • ストレスによる間食が増えていて俺の体重がヤバい。
    • なので少しIngressを軽く再開し始めた。
  • 仕事に関して

    • 察しろ。
    • というより書いていいことどれくらいあるのか分からんから書けないというのが正直なところ。
    • はい。
  • アニメに関して

    • 今期だけなのか、それとも年なのか、最近アニメ見ていても前ほど楽しめていない自分を感じている。
    • 将来が気になってアニメに入れ込めないのかも。
    • いずれにしてもあんまりよろしくない傾向な気がしている。

所感

時間の使い方を上手くやらないと死ぬし、運動しないと数年後死にそう。

とはいえ、githubみたいな表だった所に足跡は残せてないけど、3月よりかは後に残る作業をたくさん出来た気がする。

これから

iOSアプリに関しては5月くらいから何か自作のものを作ることを目標にしておく。少しは作り方分かってきたので。