Code Monkey home page Code Monkey logo

forgetting_curve's People

Contributors

neco3s avatar

Watchers

 avatar

forgetting_curve's Issues

忘却曲線のタイミングに合わして過去の日報をslackに送るシステムの構築

https://soudai.hatenablog.com/entry/2020/12/31/165940
前提

  • ソフトウェアでいう設計が仕事

まず○○という機能を実装するためには、hogeってエンドポイントが必要で、hogeが取り出すためのデータの整理が必要で、そのためには…ってことを考えることが設計

  • ソフトウェアでいう実装が作業

よし、やること決まったな。と上から順番にやっていくのが作業

作業を行う価値を認識する

  • 物事を理解するには用語を理解する必要がある
  • 人間は理解した用語を忘れていってしまう
  • 優秀なエンジニアで変数ってなんだっけ?ってググりながら仕事する人は見たことない
  • HCの課題はプログラムの基礎ばかり(上記の変数にあたるものばかり)
  • 記憶を効率よく定着させるには適切なタイミングがある
  • 日々増えていく日報1つ1つの適切なタイミングを覚えることは困難、労力がかかる
  • システムがこの労力を担ってくれれば、用語を効率的に定着させ、用語(曖昧〜厳格)を積み上げて思考することが可能になる。
  • 用語が曖昧から厳格になればなるほど安定した思考が可能となる。

仕事

  • 定期的に実行すればいいのでサーバーは無駄が多い→サーバーレス→Lamda
  • 定期実行をどのように実現するか?→Cloudwatch🔥Lambda
  • スケジュールの精度は?秒?分?時?→分〜時→Cloudwatchは分単位
  • どうやって忘却曲線にマッチした日報を割り出すのか?→
     - 前提
      - レポジトリのurl構造は変わらない
      - 西暦(2023)/月(04)/日(7)のフォルダ構成
     - 固定値
      - 忘却曲線の配列(forgetting_curve_array)[1,7,14,30,60]
     - 入力(必要な情報)
      - githubのレポジトリのurl(my_daily_repo_url)
      - HCで日報を提出し始めた日(first_day)
      - ✅ slackのhookurl
      - ✅ 個人のチャンネル名
     - 処理
      - Array(first_day…today).each do |date|
       - forgetting_curve_days.find do |day|
        - date + day =todayだったらdateを配列に格納して返す。配列のdateの情報をもとに日報のurlを生成して、curlで接続して正常の応答があった(日報があった)urlを配列に格納して、その配列をループして、3秒ごとにslackの自身のチャンネルにポストする。
     - 出力(提供する情報)
      - 今日復習すると記憶が定着するであろう日報のurl群
    • 副作用
      • ffff
  • 🚧 割り出した日報をどのような方法で学習者に届けるのか?→webhook urlのポストで日報を届ける->curlでslackにhello worldを出力できた。

作業

  • slackアプリ作成
  • slack webhookurlでchannelにメッセージ送信テスト
  • lambda関数の作成
  • lambda関数からslackにメッセージ送信テスト
  • 固定値(forgetting_curve_array,)と入力(my_daily_repo_url, first_day)を元に忘却曲線配列の数値にマッチしたDateの配列(match_dates)を出力する
  • match_datesをループして以下の処理を実装する
    • my_daily_repo_url + match_dateで日報のURLを生成
    • get URLをして正常な応答があった場合、slackにurlを送信する
    • get URLをしてページが存在しなかった場合は、urlを送信しない
  • cloudwatchで18:30で送信テスト
  • 🎉

作成時間🍅(25m) ⏳🍅6: ⌛️🍅9

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.