forgetting_curve's People
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.