9health / moviegeek

A django website used in the book Practical Recommender Systems to illustrate how recommender algorithms can be implemented.
MIT License
0 stars 0 forks source link

Azure VM Network Data Transfer Out is over #25

Open 9health opened 1 year ago

9health commented 1 year ago

Description

Expected output

Image

Screenshot 2022-12-26 at 09-51-03 Microsoft Azure

References

History

9health commented 1 year ago

Check the limit of Data Transfer Out in Azure Free plan

References: https://azure.microsoft.com/free/free-account-faq/

Azure service Description Type Free monthly amount Free period
Bandwidth (Data Transfer) Transfer data inbound and outbound through our robust network of global data centers. Networking 15 GB outbound 12 months
Bandwidth (Data Transfer) Transfer data inbound and outbound through our robust network of global data centers. Networking 100 GB outbound Always

The author does not really understand which does it mean 12 months and Always.

Though this question is asked to Azure Support once but the answer is hard to understand.

Maybe it should be asked again!!!

9health commented 1 year ago

Check Byte Received and Byte Sent in Metrics page on Azure

Screenshot 2022-12-26 at 21-29-55 Microsoft Azure

Screenshot 2022-12-26 at 21-32-11 Microsoft Azure Crop

Screenshot 2022-12-26 at 21-33-45 Microsoft Azure Crop

It can be seen from the graph that the 15GB Data Transfer Out is caused by Windows VM 14!!!

It should be shut down since the .NET learning is paused now!

9health commented 1 year ago

Check the Data Transfer Out quantity in Detail Billing Account .csv file

date serviceFamily meterName meterCategory meterSubCategory resourceGroupName resourceLocation location effectivePrice quantity unitOfMeasure billingCurrency pricingCurrency costInBillingCurrency costInPricingCurrency costInUsd paygCostInBillingCurrency paygCostInUsd exchangeRatePricingToBilling exchangeRateDate payGPrice frequency term reservationId reservationName pricingModel unitPrice
12/21/2022 Networking Standard Data Transfer Out Bandwidth Rtn Preference: MGN vm_resources_14 FRANCECENTRAL FR Central 0 3.514035646 1 GB USD USD 0 0 0 0.305721101 0.305721101 1 12/01/2022 0.087 UsageBased       OnDemand 0
12/21/2022 Networking Standard Data Transfer Out - Free Bandwidth Rtn Preference: MGN vm_resources_14 FRANCECENTRAL FR Central 0 13.01882823 1 GB USD USD 0 0 0 0 0 1 12/01/2022 0 UsageBased       OnDemand 0

Previous Cost in 2022/Sep using Azure $200 credits

date serviceFamily meterName meterCategory meterSubCategory resourceGroupName resourceLocation location effectivePrice quantity unitOfMeasure billingCurrency pricingCurrency costInBillingCurrency costInPricingCurrency costInUsd paygCostInBillingCurrency paygCostInUsd exchangeRatePricingToBilling exchangeRateDate payGPrice frequency term reservationId reservationName pricingModel unitPrice
09/18/2022 Networking Standard IPv4 Static Public IP Virtual Network IP Addresses VM_Resources_3 KOREACENTRAL KR Central 0,00499858 24 1 Hour USD USD 0.119965925 0.119965925 0.119965925 0.12 0.12 1 09/01/2022 0.005 UsageBased       OnDemand 0.005
09/18/2022 Networking Standard IPv4 Static Public IP Virtual Network IP Addresses VM_Resources_4 KOREACENTRAL KR Central 0,00499858 24 1 Hour USD USD 0.119965925 0.119965925 0.119965925 0.12 0.12 1 09/01/2022 0.005 UsageBased       OnDemand 0.005

Remarks

Final cost calculation formula

costInPricingCurrency = effectivePrice * quantity

Pre-cost (PayGCost) calculation formula

paygCostInBillingCurrency = payGPrice * quantity

Networking meterName category

There are 4 kinds in the Details Billing Account

Not sure to understand all of these. Will be investigated later!

meterName meterCategory meterSubCategory meterRegion productId product payGPrice
Inter Continent Data Transfer Out - NAM or EU To Any Bandwidth Bandwidth Inter-Region Intercontinental DZH318Z0C5TM0003 Bandwidth Inter-Region - Inter Continent - Intercontinental 0.05
Intra Continent Data Transfer Out Bandwidth Bandwidth Inter-Region Europe DZH318Z0C5TM0004 Bandwidth Inter-Region - Intra Continent - Europe 0.02
Standard Data Transfer Out Bandwidth Rtn Preference: MGN   DZH318Z0BNVX005J Rtn Preference: MGN 0.087
Standard Data Transfer Out - Free Bandwidth Rtn Preference: MGN   DZH318Z0BNVX005J Rtn Preference: MGN 0

Cảm ơn GitHub comment có chức năng save state. Tẹo thì mất hết đống copy/paste này vì vuốt nhiều quá hix

9health commented 1 year ago

How Standard Data Transfer Out is calculated

date       | serviceFamily | meterName                         | meterCategory | effectivePrice | quantity    | unitOfMeasure | chargeType |
----       | ------------- | ---------                         | ------------- | -------------- | --------    | ------------- | ---------- |
1/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.107258061 | 1 GB          | Usage      |
2/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.101511772 | 1 GB          | Usage      |
3/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.118369371 | 1 GB          | Usage      |
4/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.086245542 | 1 GB          | Usage      |
5/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.122535942 | 1 GB          | Usage      |
6/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.093228092 | 1 GB          | Usage      |
7/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.080528607 | 1 GB          | Usage      |
8/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.100943283 | 1 GB          | Usage      |
9/12/2022  | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.112458042 | 1 GB          | Usage      |
10/12/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.107185274 | 1 GB          | Usage      |
11/12/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.099798557 | 1 GB          | Usage      |
12/12/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.077037959 | 1 GB          | Usage      |
12/13/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.123988789 | 1 GB          | Usage      |
12/14/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.083237162 | 1 GB          | Usage      |
12/15/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.077914983 | 1 GB          | Usage      |
12/16/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.069540638 | 1 GB          | Usage      |
12/17/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.078275564 | 1 GB          | Usage      |
12/18/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.089565162 | 1 GB          | Usage      |
12/19/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.072196364 | 1 GB          | Usage      |
12/20/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 0.096953855 | 1 GB          | Usage      |
12/21/2022 | Networking    | Standard Data Transfer Out        | Bandwidth     | 0              | 3.514035646 | 1 GB          | Usage      |
12/21/2022 | Networking    | Standard Data Transfer Out - Free | Bandwidth     | 0              | 13.01882823 | 1 GB          | Usage      |
12/22/2022 | Networking    | Standard Data Transfer Out        | Bandwidth     | 0              | 0.074069057 | 1 GB          | Usage      |
12/23/2022 | Networking    | Standard Data Transfer Out        | Bandwidth     | 0              | 0.074243413 | 1 GB          | Usage      |
12/24/2022 | Networking    | Standard Data Transfer Out        | Bandwidth     | 0              | 0.109637599 | 1 GB          | Usage      |
12/25/2022 | Networking    | Standard Data Transfer Out        | Bandwidth     | 0              | 0.052564911 | 1 GB          | Usage      |

Formula

If Total Bandwidth < 15 GB then meterName = Standard Data Transfer Out - Free If Total Bandwidth >= 15 GB then meterName = Standard Data Transfer Out

9health commented 1 year ago

Data Transfer Out every day

Windows VM

date serviceFamily meterName meterCategory meterSubCategory meterRegion productId product resourceGroupName resourceLocation location effectivePrice quantity unitOfMeasure
12/01/2022 Networking Inter Continent Data Transfer Out - NAM or EU To Any Bandwidth Bandwidth Inter-Region Intercontinental DZH318Z0C5TM0003 Bandwidth Inter-Region - Inter Continent - Intercontinental vm_resources_14 FRANCECENTRAL Intercontinental 0 0.000478402 1 GB
12/01/2022 Networking Intra Continent Data Transfer Out Bandwidth Bandwidth Inter-Region Europe DZH318Z0C5TM0004 Bandwidth Inter-Region - Intra Continent - Europe vm_resources_14 FRANCECENTRAL FR Central 0 0.000365944 1 GB
12/01/2022 Networking Inter Continent Data Transfer Out - NAM or EU To Any Bandwidth Bandwidth Inter-Region Intercontinental DZH318Z0C5TM0003 Bandwidth Inter-Region - Inter Continent - Intercontinental vm_resources_14 FRANCECENTRAL FR Central 0 0.107258061 1 GB
12/02/2022 Networking Intra Continent Data Transfer Out Bandwidth Bandwidth Inter-Region Europe DZH318Z0C5TM0004 Bandwidth Inter-Region - Intra Continent - Europe vm_resources_14 FRANCECENTRAL Intercontinental 0 0.00058536 1 GB
12/02/2022 Networking Standard Data Transfer Out - Free Bandwidth Rtn Preference: MGN   DZH318Z0BNVX005J Rtn Preference: MGN vm_resources_14 FRANCECENTRAL FR Central 0 0.000386748 1 GB
12/02/2022 Networking Standard Data Transfer Out - Free Bandwidth Rtn Preference: MGN   DZH318Z0BNVX005J Rtn Preference: MGN vm_resources_14 FRANCECENTRAL FR Central 0 0.101511772 1 GB

Linux VM

date serviceFamily meterName meterCategory meterSubCategory meterRegion productId product resourceGroupName resourceLocation location effectivePrice quantity unitOfMeasure
12/17/2022 Networking Inter Continent Data Transfer Out - NAM or EU To Any Bandwidth Bandwidth Inter-Region Intercontinental DZH318Z0C5TM0003 Bandwidth Inter-Region - Inter Continent - Intercontinental vm_resources_15 WESTUS Intercontinental 0 5.02914E-08 1 GB
12/17/2022 Networking Intra Continent Data Transfer Out Bandwidth Bandwidth Inter-Region North America DZH318Z0C5TM0007 Bandwidth Inter-Region - Intra Continent - North America vm_resources_15 WESTUS US West 0 0.000170927 1 GB
12/17/2022 Networking Standard Data Transfer Out - Free Bandwidth Rtn Preference: MGN   DZH318Z0BNVX005J Rtn Preference: MGN vm_resources_15 WESTUS US West 0 0.004368571 1 GB
12/18/2022 Networking Intra Continent Data Transfer Out Bandwidth Bandwidth Inter-Region North America DZH318Z0C5TM0007 Bandwidth Inter-Region - Intra Continent - North America vm_resources_15 WESTUS US West 0 4.11663E-05 1 GB
12/18/2022 Networking Inter Continent Data Transfer Out - NAM or EU To Any Bandwidth Bandwidth Inter-Region Intercontinental DZH318Z0C5TM0003 Bandwidth Inter-Region - Inter Continent - Intercontinental vm_resources_15 WESTUS Intercontinental 0 1.90465E-05 1 GB
12/18/2022 Networking Standard Data Transfer Out - Free Bandwidth Rtn Preference: MGN   DZH318Z0BNVX005J Rtn Preference: MGN vm_resources_15 WESTUS US West 0 0.00384446 1 GB

Remarks

9health commented 1 year ago

Hello @quangvv9Life,

Sorry Quang tớ nhắn tin vào ngày nghỉ và còn là muộn nữa nhé.

Hôm nay với hôm qua làm nhiều việc quá nên tớ cũng chưa kịp viết với kiểm tra hết mấy cái này.

Sáng Thứ 6 tớ có dậy sớm được và cũng khá là đắn đo xem là nên đọc thuật toán, nên thử Django QuerySet hay là nên làm tài liệu về phần cost cho networking mà hôm trước làm tớ khá là lo lắng vì bị tích dấu đỏ dùng quá cái họ cho free trên Azure.

Đúng là càng ngày càng làm mọi thứ cứ phình to ra.

Chỉ 1 yêu cầu đơn giản của Quang là thay thế MovieGEEKs web app này bằng food database mà sinh ra hơn hai chục cái issues rồi...

Câu trả lời có lẽ sẽ có trong các phần tiếp.

Quay lại mấy lựa chọn trên thì có lẽ cứ động đến túi tiền khá là mong manh hiện tại dẫn tới mình cũng khắt khe hơn với bản thân chứ bình thường mấy cái cloud tớ cứ kệ. Trừ $20 một tháng tớ vẫn kệ lúc mình còn có thu nhập hix.

Giờ thì trừ 1$ thôi cũng cảm thấy xót xa lắm rồi mà cũng không biết làm gì hơn hix.

Nên thôi cái này để được 2-3 ngày rồi cũng nên viết cho cẩn thận =.=

Về kiểm tra trên Azure Free FAQ

Đầu tiên tớ quay lại phần tính giá network như đã ghi ở bài post trên =.=

Tớ vẫn chưa hiểu 15 GB/tháng free cho 12 tháng và 100 GB/tháng luôn luôn là gì nữa haizz.

Về kiểm tra detailed cost

Tiếp nữa là tớ nghĩ cứ download bảng giá về như lần trước là tìm được root cause tại sao mình đùng tận 18 GB dữ liệu gửi đi nhỉ =.= Họ cho free là 15 GB/tháng thôi.

Tớ tìm mãi mà không ra =.=

Tớ filter hết theo cái máy ảo mình dùng là máy Linux thôi.

Tớ ngẫm nghĩ mãi không ra lên trang Azure và phát hiện ra có 1 cái rất hay gọi là Metrics.

Vào cái này xem theo đồ thị các thứ phần liên quan tới Network như là số lượng bytes gửi đi và nhận về.

Tớ đặt lại filter theo 1 tháng và nhìn đồ thị mới tá hỏa ra là hóa ra máy ảo Windows mình đang để idle mới là nguồn gốc phát sinh cái gói tin gửi đi nhiều như thế kia!!!

Vậy là tớ quay lại file .csv và filter lại thì ôi thôi đúng rồi.

Hôm đó máy ảo Windows

Và cái 3GB đấy bị tính sang 1 mức khác =.=

Rất may mắn là họ vẫn để $0 ở mức đấy vì là lúc đấy mình chuyển sang kiểu $100 GB/tháng theo gói Always Free rồi @@.

Còn 15 GB đầu tiên sẽ là theo gói 12 months

Khá là loàng ngoằng đến nỗi xưa tơ hỏi Azure support ở Slovenia mà họ trả lời cũng không rõ ràng =.=

Giờ thì tớ hiểu rồi.

Nếu mà tớ dùng hết 100 GB tiếp theo trong vòng 1 tháng thì tớ sẽ bị charge tiền!!!

Còn hiện tại 1 tháng tớ sẽ có 115 GB dùng free =.=

Có lẽ là cái thống kê của họ "Free services for 12 months" không sai nhưng mà nếu thêm được cả gói "Always Free" nữa thì đỡ làm cho người dùng đau tim hơn.

Hoặc là họ có thể ẩn cái bảng đấy ở đâu đó. Chắc khi nào tớ mò lại xem @@.

Một vài phát hiện khác

Khi điều tra kỹ hơn về các gói tin đi đâu thì tớ mới thấy 1 ngày mình phát sinh các gói tin là

Chắc khi nào tớ cũng phải đọc kỹ lại bảng giá Networking và thử Standard Data Transfer Out là gì mất vì tớ thấy nó rất là chung chung @@.

Tớ thấy máy ảo Windows thì 1 ngày gửi ra trung bình 100 MB (chả hiểu gì luôn, OS là Windows Server 2022 Azure Edition) còn máy ảo Linux Ubuntu 18 thì gửi ra mỗi ngày chưa tới chục MB =.=

Túm lại là nếu mình dùng để dev web app thôi tớ nghĩ có lẽ 115 GB tháng cũng là đủ rồi =.=

Chắc cũng không đến nỗi lo lắng lắm hix.

Kết luận và một vài việc khác

Thanks Quang đã đọc tới đây O_O. Quả thật tớ thấy Microsoft ưu đãi thật nhiều khi tớ vẫn develop Django 1 cách free được trên máy ảo của họ hix.

Còn 1 cái nữa mà use-case vary là số lượng I/O đọc ghi vào ổ SSD. Cái này cũng bị charge tiền và có lẽ đến 1 ngày nào đó tớ sẽ tìm hiểu kỹ hơn!!! Chắc là khi cái đấy lại bị vạch đỏ (over) hix.

Về email của Quang ở bên kia thì tớ cũng đọc rồi.

Tớ nghĩ là thực ra mình biết hết càng tốt còn mình không biết thì cũng không sao mà T_T.

Thuật toán tớ dở lắm nên là tớ cũng không chỉ được gì cho Quang. Còn làm việc nhóm thì tớ cũng dở nữa vì tớ cũng không giỏi lắm phản biện ý kiến của người khác @@. Ai bảo gì là nghe thôi...

Một cái tớ nghĩ ra hôm trước sau buổi họp là khi mà có thông tin người dùng như là chiều cao, cân nặng và suggest theo cái đấy thì cũng đã gọi là personalized rồi đó O_O.

Ngoài ra thì tớ qua với nay làm quét dọn, lau chùi nhiều quá T_T. Chắc mai là rã rời người rồi. Trước tớ có dùng cái Misfit Shine đeo thử cho vui (vì tớ định tặng mà không được hic)

https://www.amazon.com/Misfit-Shine-Activity-Sleep-Monitor/dp/B00FDWN8RM

Tớ cũng dùng thử đâu cũng nửa năm hay 1 năm đấy. Nói chung là cũng không biết đo chính xác đến cỡ nào nhưng mà tớ thấy là hôm nào mà tớ ở quê thì lượng Calorie tớ đốt cháy nhiều dã man, chắc gấp 2-3 lần khi mà Work From Home đấy =.=

Ở quê cứ đi đi lại lại, làm cái này cái kia mà =.=

Còn hôm nào mà tớ không đủ Calorie quy định tối thiểu cho 1 ngày thì tớ cứ vẩy vẩy tay thôi. Hình như mất 15 phút ý và vẫy tay cũng mạnh phết @@. Xong cũng mệt và cũng đủ Calorie rồi ^_^

Cái app của họ có thống kê theo ngày và theo tháng nữa cơ mà tớ hình như uninstall ở máy mẹ tớ đi rồi...

Cơ mà giờ nghĩ lại cũng thấy có 1 cái gì đó tự động tracking mình tiêu thụ calorie bao nhiêu cũng hay.

Vì tiêu thụ Calorie phải dựa vào hoạt động của cơ thể mà cái thiết bi đấy gắn vào tay thì cũng tương đối chuẩn rùi ^_^

Bác founder là 1 người gốc Việt sinh ra ở Mỹ thì phải, bác ý là Tiến sĩ Sinh học nữa.

Ngẫm nghĩ là từ cái đồng hồ tính ra bao nhiêu bước chạy, bước đi và cuối cùng hiển thị cho người dùng là Calorie thì chắc đọc cũng kha khá paper đấy TT. Thực sự nếu có sai chắc cũng không ai kiện cơ mà cái ý đã được chứng nhận ở Mỹ rồi thì chắc là @@.

Điện thoại về mặt lý thuyết có thể làm như thế nhưng mà to và cồng kềnh quá. Apple Watch tất nhiên làm được rồi và cũng là lý do mà Misfit Shine không còn lợi thế cạnh tranh nữa T_T. Cứ 6 tháng phải thay pin và muốn xem data đợi 1 lúc để đồng bộ qua BLE (Bluetooth Low Energy)...

https://discussions.apple.com/thread/7052928

Nói chung cứ không phải muốn làm được thiết bị như thế, firmware như thế và phần mềm như thế mà có 1 đống kiến thức khoa học ở dưới haizzz @_@.

Và những kiến thức y khoa như thế dùng rất là cẩn thận vì nhỡ báo sai làm cho người dùng hiểu nhầm và có khi kiện nữa =.= Có lẽ thế thôi.

À cái Misfit Shine cũng tự động đo cả giấc ngủ nữa.

Cũng là một cái hay khi xem lại và biết mình ngủ trung bình bao nhiêu tiếng 1 tuần. Hôm nào ít ngủ nữa.

Tất cả tự động hết ^_^

Nếu mà ăn uống cũng được y như thế thì tốt.

Chắc lúc ý đặt cái sensor ở lưỡi hay miệng mất hự =.=

Tớ đùa thế thôi...

Anyway, tớ cảm ơn Quang đã tích cực giúp xây dựng food database, food API, đọc lại sách PRS nữa nhé!!!

Chúc Quang năm mới vui vẻ và nhiều sức khỏe nhé!!!

quangvv9Life commented 1 year ago

Hi Hải,

Chúc mừng năm mới Hải, năm mới nhiều may mắn thành công mới thắng lợi mới nhé !!!

Thì tớ cũng đã trình bày ở trong cuộc họp vs chị Nhi và vs anh Công là mình có thể tìm hiểu về thiết bị phần cứng đeo tay để đo glucose giống máy đo tiểu đường mà. Cần gì mà phải đặt trong miệng đâu máy tiểu đường hiện tại đã đo được glucose trong máu sau khi ăn và gắn dưới cánh tay rồi, quan trọng là đọc kết quả đó ra thế nào thôi.

Cũng không cần thiết là phải track lại là ăn gì đâu vì mục đích cuối cùng của việc theo dõi là cũng để xem ảnh hưởng đến cơ thể thế nào thôi. Nếu mình biết glucose trong máu tăng, các hormone khác tăng thì coi như là kết quả cuối cùng rồi còn gì :D

Về phần máy ảo Azure thì cũng may là tớ vs Hải nhảy vào vọc và tìm hiểu trên con Linux cũng không làm phát sinh quá nhiều dung lượng, tuy nhiên đây cũng là 1 bài học để rút kinh nghiệm sau này. Vậy con máy win kia có tắt đi được không? chắc là Hải tắt đi rồi.

Hiện tại tớ nghĩ để phục vụ cho việc học và áp dụng vào use case food của mình thì có thể sử dụng Azure credit để port cái máy ảo hiện tại free sang cũng được :-? như vậy đỡ phải vừa làm vừa lo canh cánh bị charge tiền Hải ạ. Phần này Hải thử nghĩ và cho tớ ý kiến sẽ sử dụng Azure credit như thế nào nhé !!! Vì nếu mình không dùng mà đến ngày đẹp trời MS họ cắt thì phí lắm.

Phần của tớ với anh Công đã note lại trong slide này rồi Hải có thể tham khảo nhé : https://9reatodin-my.sharepoint.com/:p:/g/personal/nineodin_9reatodin_onmicrosoft_com/ETMwtLp-fydBryQtjSHgKhoBBwoznrSKGDOciFmrPJY9sg?e=luPH9m

Thêm nữa về cuộc họp hôm 30/12/2022 thì hình như là tớ chưa ghi lại các phần will do của Hải cho S5 của 2 tuần tới (01-14/01/2023). Hải cứ lên các task ở trên này và note lại cho tớ là 2 tuần tới sẽ triển khai tiếp task nào nhé

Hải có thể vào tham khảo S5 tớ đang plan theo các meeting minute định kì ở đây (phần github của Hải tớ bắt đầu thấy nhiều lên và khó quản lý rồi T_T, taiga cut off từng sprint một nên cái kanban nó nhìn thoáng hơn ở sprint mới ) Đây là sprint 5 (01-15/01/2023) : https://tree.taiga.io/project/9health/taskboard/s5-5

Cám ơn Hải đã dành thời gian tìm hiểu về RS, tớ cũng sẽ đọc lại và theo sát từng chương để cả 2 cùng nắm được và biết cách áp dụng vào app 9Health

Chúc Hải cuối tuần vui vẻ nhé

BR Quang

9health commented 1 year ago

Hello @quangvv9Life,

Sorry tớ trả lời hơi muộn nhé @@. 1 tuần rùi hix. Cũng quên mất là đã làm gì rồi =.=

Cảm ơn về lời chúc của Quang nhé!!!

Về Personal Health Devices

Uhm tớ cũng đồng ý thiết bị hardware thì hiện tại rất mới và giá cũng đắt. Nhưng mà như công nghệ tiến bộ dần thì hi vọng mọi thứ cũng sẽ rẻ đi hơn nhưng chất lượng vẫn được giữ.

Ví dụ như hồi COVID-19 năm ngoái tớ có dính thì cô tớ có mua cho 1 cái máy đo SpO2 cơ mà dùng được 3-4 ngày thì hết pin hay vì lý do gì đó mà không còn đo đúng nữa @@. Máy đấy hình như 300K hay 400K thì phải.

Nguyên lý hoạt động máy SpO2 để đo nồng độ oxy trong máu thì là phát ra 1 tia sáng và có 1 sensor thu lại và xử lý tín hiệu số, hiện thị trên màn OLED (cũn khá nét) là nồng độ Oxy bao nhiêu.

Cơ mà mọi thứ nhìn rất tốt, bật lên phát là chạy luôn lúc demo. Cơ mà dùng lâu thì hỏng thì tớ nghĩ chắc là tiền nào cũng đáng với của ấy :|.

Nhưng có 1 cái là những gì liên quan đến sức khỏe thì không nên làm những hàng kém chất lượng làm gì chỉ khi mà bắt buộc phải dùng hix. Nguyên nhân là vì những cái đấy liên quan tới tính mạng con người và tính mạng con người theo tớ là quý giá :|.

Mọi người cứ hô hào bị COVID-19 thì nên đo nồng độ Oxy trong máu cơ mà thực sự có cần không? Và nếu cần thì dùng cái máy kia có an toàn không? Với những người mà hiểu biết ít thấy nó xuống dưới ngưỡng quy định thì rất là lo lắng!!! Họ sẽ gọi điện tới Trung tâm Y tế hoặc quen biết ai đó làm bác sỹ để hỏi.

Vậy là vì 1 cái máy đo SpO2 không chất lượng mà làm tinh thần người sử dụng lo lắng, làm phát sinh communication không cần thiết tới những người rất là bận. Vậy có nên không???

Tớ nghĩ là đã là personal health device thì ít ra cũng nên đưa ra con số chính xác hoặc nếu không chính xác thì phải nói rõ điều kiện nào không chính xác.

https://support.apple.com/en-vn/HT211027

  • Motion is another factor that can affect your ability to get successful background or on-demand measurements. Certain postures, such as arms hanging by your side or fingers in a fist position will also result in unsuccessful measurements.

  • If your heart rate is too high (above 150 bpm) while at rest, you won't be able to get a successful blood oxygen measurement.

Ví dụ như Apple claim tính năng đo SpO2 sẽ không đúng ở trường hợp nào.

https://www.apple.com/healthcare/docs/site/Blood_Oxygen_app_on_Apple_Watch_October_2022.pdf

Ở phần Learn More họ cũng ghi ra là cách để họ validate xem là cách đo nồng độ Oxy trong máu bằng Apple Watch và thiết bị chuyên dụng như thế nào... Kết quả khác nhau ra sao... Lại xác suất thống kê ở đây ._.

Tuy nhiên tớ thấy mẫu là cũng hơi ít, có 50 người thôi. Cơ mà có lẽ tốn nhiều xiền để làm bài test này hix.

Nói về Apple Watch cũng thử xem 1 cái cơ bản nhất mà có ngay khi từ lúc vừa mới ra là đo nhịp tim.

https://support.apple.com/en-vn/HT204666

The optical heart sensor in Apple Watch uses what is known as photoplethysmography. This technology, while difficult to pronounce, is based on a very simple fact: Blood is red because it reflects red light and absorbs green light. Apple Watch uses green LED lights paired with light‑sensitive photodiodes to detect the amount of blood flowing through your wrist at any given moment. When your heart beats, the blood flow in your wrist — and the green light absorption — is greater. Between beats, it’s less. By flashing its LED lights hundreds of times per second, Apple Watch can calculate the number of times the heart beats each minute — your heart rate. The optical heart sensor supports a range of 30–210 beats per minute. In addition, the optical heart sensor is designed to compensate for low signal levels by increasing both LED brightness and sampling rate.

Trong này họ cũng giải thích là đo nhịp tim kiểu như thế nào.

Apple Watch Series 4, Series 5, Series 6, Series 7, Series 8, or Ultra2 also have built-in electrodes in the Digital Crown and the back of Apple Watch, which can measure the electrical signals across your heart when used with the Heart Rate app or the ECG app. When you place your finger on the Digital Crown, it creates a closed circuit between your heart and both arms, capturing the electrical impulses across your chest.

Còn ở bản Apple Watch mới hơn không đo bằng ánh sáng nữa mà bằng cường độ dòng điện lúc chạm vào nút xoay trên Apple Watch luôn =.=

Hay thật, giờ tớ mới biết đấy. Cái này giống như là hồi xưa các thầy thuốc bắt mạch!!!

For best results Start with a good fit. Even under ideal conditions, Apple Watch may not be able to get a reliable heart rate reading every time for everybody. And for a small percentage of users, various factors may make it impossible to get any heart rate reading at all. But there are things you can do to help Apple Watch get the most consistent and best heart rate readings possible. Learn what else affects your reading.

Ở đây họ cũng hướng dẫn làm sao có kết quả đọc nhịp tim từ Apple Watch chính xác nhất.

https://support.apple.com/HT211856

Cardio fitness is a measurement of your VO2 max, which is the maximum amount of oxygen your body can consume during exercise. Your cardio fitness level is a strong indicator of your overall physical health and a predictor of your long-term health. Your Apple Watch gives you a cardio fitness estimate by measuring how hard your heart is working during an outdoor walk, run or hike.

1 số thứ nữa liên quan tới SpO2 là VO2 nữa @@.

Hình như tớ cũng có xem ở WWDC event rồi nhưng mà cũng không nhớ lắm vì hình như tớ cũng không hứng thú lắm với physical exercise =.=

Cơ mà đúng là cơ thể trong lúc tập luyện mà không đủ oxy thì chứng tỏ có vấn đề gì đó về tim thật :|. Có lẽ thế...

https://www.apple.com/watch/battery/

https://support.apple.com/kb/SP879

Và cuối cùng và pin của Apple Watch

Cũng không nói rõ lắm nhưng tớ nghĩ chắc Apple Watch có thể dùng từ 5 tới 7 năm giống như là iOS support cho các thiết bị ra đời từ 5 tới 7 năm trước T_T.

Đấy thì mọi thông tin đều cần transparent (minh bạch) và đưa lên website để ai cũng có thể xem mặc dù mình làm ra thiết bị đã rất tốt rồi nhưng mà sẽ có những sự cố ngoài mong muốn xảy ra T_T.

Ví dụ như Apple Watch mới có tính năng đo là khi nào bị tai nạn xe do bị đâm chẳng hạn và SOS tới 1 số điện thoại nào đó. Cơ mà sau khi người dùng mua về và thử khi đi tàu lượn thì Apple Watch bị phát hiện nhầm =.=

Thật đáng tiếc hự. Lại phải training model và thử lại trong nhiều trường hợp khác nữa...

Nhưng dù gì tớ thấy để làm ra 1 thiết bị đáng tin và trải qua nhiều thử nghiệm thì rất cần nhiều xiền, nhiều trí tuệ nhưng quan trọng nhất là vẫn phải hướng tới độ chính xác, độ bền và độ mở nữa =.=

Chứ cứ mua 1 đống về rùi dùng vài ngày, vài lần hay 1-2 năm rùi cất vào trong tủ hay bỏ đi phí phạm lắm...

Phí cả công làm này, phí cả tài nguyên của Trái đất luôn này T_T. Nên là làm việc gì hay thiết bị hardware gì cũng nên nghĩ xa hơn xíu... Đừng cố ép mình làm những thứ không thể!!!

Về phần Network Data Transfer Out

Cái này thì cảm ơn Quang đã đọc phân tích của tớ ở trên.

Như tớ kết luận thì hiện tại vẫn dùng okay thôi vì tớ với Quang là 2 users cũng chưa dùng nhiều data lắm =.=

Đợt tới nghe Duy bảo Tú sẽ về VN 3 tháng vì sắp sinh em bé @@.

Duy ở Sing chắc là lúc ý sẽ rảnh. Không biết có muốn join cái này không vì Duy có thích xử lý mấy cái NLP (Natural Language Processing) cho mấy cái food @@@@@@@. Duy nấu ăn cũng khá. (Duy cũng hỏi tớ 2 lần về cái dữ liệu food kia rồi)

Với tớ thấy Quang cũng đã biết đầu làm model rồi.

Tớ thì cũng bắt đầu biết dùng QuerySet rồi và có thể support được ai đó mới vào. Ví dụ như Duy muốn thử 1 thuật toán gì đó dựa trên food database từ Cooky.

Có thể tớ sẽ viết thêm 1 cái populate_food.py giống như populate_moviegeek.py, populate_ratings.py.

Tớ cũng suy nghĩ mãi tại sao tác giả làm cái script đấy mà không để luôn database ở trong repository có phải làm tiện hơn cho người dùng hơn không.

Có lẽ 1 phần liên quan tới copyright các thứ nữa. Mặc dù dữ liệu từ TMDB là open thật cơ mà dữ liệu ý update liên tục. Tác giả cũng không thể nào update theo dữ liệu đấy được... Dùng script là hay nhất rùi. Đấy cũng là 1 lý do O_O.

Còn lấy dữ liệu từ Cooky liệu có đúng hay không thì tớ nghĩ câu hỏi đấy tớ cũng chưa trả lời được, Quang cũng như thế. Phải các bạn học Law hay Copyright các thứ hay Legal mới trả lời được cơ... Dữ liệu của Cooky thực chất cũng từ user đóng góp hix, chả hiểu có điều khoản gì quy định dữ liệu của user là Cooky có copyright nữa không... Tớ cũng không rõ nữa.

Có khi thì mình cũng phải tự làm 1 trang web hay 1 app kiểu như Cooky để user log các thứ liên quan tới food vào đấy.

Tất nhiên cái đấy cũng hơi reinvent the wheel thật.

Hi vọng các bạn Cooky đọc được comment này cũng đừng làm quá...

https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata

Như TMDB cũng có 1 bộ dữ liệu trên Kaggle để những ai thích data có thể phân tích...

Tớ cũng từng giới thiệu cái này 1 lần rùi thì phải.

https://www.kaggle.com/datasets/irkaal/foodcom-recipes-and-reviews

Ví dụ ở đây có 1 bạn đưa lên dữ liệu về các recipes cơ mà lấy từ trang nào ý và tự đặt License là CC0: Public Domain chả biết đúng không nữa hix.

https://www.kaggle.com/datasets/kaggle/recipe-ingredients-dataset

Hoặc là dataset này là của Kaggle chẳng hạn. Cũng không thấy License là gì.

Tất nhiên bài toán mình đang giải quyết là recommend food cơ mà bài toán cơ bản hơn là dữ liệu về food lấy ra ở đâu, có chính xác không...

Nếu mà không có mình tạo ra (hay đi xin) 1 cái trước có được không rồi mới tiến hành recommend.

Nếu mà dữ liệu đấy như TMDB open-source và đưa lên Kaggle thì cũng có rất nhiều người Việt Nam hay người nước ngoài benefit nữa...

Tớ cũng đang dắn đo cái ý mà chưa có thời gian tìm hiểu.

Quay lại vấn đề chính về Networking

https://azure.microsoft.com/pricing/details/ip-addresses/

1 All Instance level public IPv4 addresses (ILPIP) are charged at $0.004/hour. Each Cloud Service gets a free public VIP. Additional VIPs are charged at $0.004/hour.

How is a Standard Public IP different from a Basic Public IP?

In addition to the features included in the Basic Public IP, the Standard Public IP provides zone resiliency. Coupled with the Standard Load Balancer, this provides high availability and zone resiliency.

Trước tớ cũng hơi nghi ngại vì việc tại sao Microsoft lại đưa ra Basic Public IP với Standard Public IP làm gì T_T. Liệu họ có thay đổi trong tương lai không?

Có vẻ như là sẽ không sao trong vòng 1 năm ^_^. Dùng kiểu Standard có thêm tính năng zone resiliency. Chắc là sẽ truy cập dễ hơn từ nhiều vùng (các nước) khác nhau :-?.

https://learn.microsoft.com/en-us/previous-versions/azure/virtual-network/virtual-networks-instance-level-public-ip

https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/deployment-models

Chữ ARM ở trang trên nữa là viết tắt của từ Azure Resource Manager.

Còn chữ Classic là kiểu cũ.

https://azure.microsoft.com/pricing/details/bandwidth/

*Starting from July 1, 2023, Data transfer billing between Virtual machines across availability zones will begin(Egress and Ingress). Please see FAQ for additional details.

Còn về phần Network hay còn gọi là Bandwidth thì ở trang trên có 1 cái note nhỏ xíu.

What type data transfer will be charged by Availability Zones data transfer meters beginning July 1, 2023?

Following Availability Zone data transfer is charged:

  • Data transfer, ingress and egress, from a VNet resource deployed in an Availability Zone to another resource in different Availability Zone in the same VNET

Following Availability Zone data transfer is NOT charged:

  • Data transfer between VNet resources located in same Availability Zone
  • Data transfer between a VNet resource and a Public IP address in the same Azure Region
  • Data transfer between VNet resources located in peered VNets across Availability Zones. This data transfer will be charges as per VNet peering rates.
  • An Azure Virtual Machine that does not have a specified Availability Zone will not be charged for inter-Availability Zone traffic charge, but VNet peering charges still apply

Đọc cái này tớ cũng chưa hiểu lắm Availability Zones là gì cả =.=

Cơ mà cũng thấy chưa có vấn đề gì lắm vì phần Microsoft cho mình 100 GB/month Always Free (Data Transfer Out) mà.

https://azure.microsoft.com/pricing/details/bandwidth/

Còn tớ xem Data Transfer In thì luôn luôn free rồi =.=

Từ những cái trên thì nói thật là giả sử có thêm Duy nữa thành tổng cộng 3 user cũng chưa lo lắm về phần Network Data Transfer trong 1 năm!!!

Còn chữ Bandwidths tớ thấy Microsoft dùng không đúng lắm =.=

https://en.wikipedia.org/wiki/Bandwidth_(computing)

In computing, bandwidth is the maximum rate of data transfer across a given path. Bandwidth may be characterized as network bandwidth, data bandwidth, or digital bandwidth. Wikipedia

Bandwidth thường hay nói đến băng thông nghĩa là khả năng xem mạng ý hỗ trợ download hay upload tối đa bao nhiêu. Ví dụ mạng nhà tớ 100 Mbps, mạng văn phòng cũ là 200 Mbps, mạng tớ thử ở Google Cloud là 1 Gbps.

Cái đấy là đơn vị đo giống như vận tốc km/h thôi =.=

Có lẽ dùng đúng hơn Network Data In, Network Data Out O_O.

Về Azure benefits

Uhm cái này thì hình như tớ với Quang nói 2-3 lần rồi =.=

Cơ mà như tớ nói rùi ý, thui Quang làm cho quen đi :(. Nhỡ tớ không còn sau này thì sao :(.

https://github.com/9health/moviegeek/wiki/[11]-Azure-VM-Create

Tớ cũng cảm ơn Quang đã nghĩ đến chuyện Microsoft cắt nhé.

Cơ mà thực sự họ có ghi ở trang Founders Hub là mình có quyền redeem trong vòng 1 năm.

Mà MIcrosoft là 1 công ty to chứ không làm ăn chộp giật, vì thế họ đã nói là làm thôi T_T.

Và 1 cái nữa là họ cũng đã có budget để support người tham gia (có lẽ thế) và nhất trong giai đoạn kinh tế thế giới khó khăn, ảm đạm thế này thì tớ nghĩ có 2 khả năng

Tớ thiên về ý thứ 2 nhiều hơn vì dù gì khó khăn thì nhân sự cũng cắt, cũng sa thải rồi T_T. Mấy cái này đầu tư (mạo hiểm, lâu dài, 4-năm) vào tương lai thì chắc cũng là cần thiết T_T.

Có lẽ thế thôi vì nói thật tớ không hiểu lắm về investment.

Nhưng năm 2022 là năm mà vẫn còn đang COVID-19, kinh tế Mỹ vẫn khó khăn mà họ vẫn đưa ra được chương trình này thì đúng là tuyệt T_T.

Về Sprint

Thanks Quang đã nhắc tới Sprint nhé @@.

Tớ thấy phần slide hiện tại của mình tiêu đề đặt theo Sprint thôi chứ bên trong nội dung chưa ghi gì cả.

Tớ nghĩ có khi cũng có 1 trang ghi Sprint vào để cho rõ và nhắc nhở (remind) nữa.

Task của tớ chỉ có đọc sách và giải quyết những issue phát sinh trong lúc làm thôi :|.

Ví dụ mà mấy cái có vẻ tương đối tốn thời gian là

Mỗi cái ý giải quyết cũng ngốn nhiều thời gian phết ấy @@. Nhiều vì là mỗi ngày có 2 tiếng mà tìm hiểu viết report cho từng cái tốn ít nhất cũng 1 tới 2 tiếng rùi =.=

Và cũng cảm ơn Quang đã nhận xét là khó quản lý nhé @@.

Tớ thì nghĩ ra 2 cách để cho dễ nhìn hơn

Vì có mỗi 1 quyển sách và 2 người làm mà dùng cách 1 có vẻ hơi hao sức.

Mặc dù tớ thấy cách 1 có vẻ hay thật.

Cơ mà tớ nghĩ tạm thời dùng cách 2 xem thế nào. Không hiệu quả chuyển sang cách 1 hự hự.

Các tag tớ tạm nghĩ ra là

Ngoài ra tớ vừa check thì GitHub Projects cũng hỗ trợ cả tính năng Milestones ấy Quang.

https://github.com/users/9health/projects/1

Tớ vừa thêm 2 cái views mới để support mấy cái trên

Tớ nghĩ có khi sẽ tạo Milestones theo như là các Sprint của Quang ý @@.

Hay là labels nhỉ.

Cơ mà nói thật càng nhiều labels tớ lại thấy càng loạn @@.

Tớ cũng vừa mới thử dùng tính năng Filter và gõ enhancement chẳng hạn thì cũng ra được những issue có enhancement thôi.

Chắc là dùng labels quản lý task đấy ở trong Sprint nào vậy =.= Haizzz.

Thanks Quang đã góp ý!!!

Về thời gian biểu hôm nay của tớ

Sáng nay thì 7 giờ tớ mới dậy.

Mẹ tớ hôm qua về chắc mệt vì dọn dẹp suốt @@ nên tớ cũng không dám dậy sớm @@.

Tớ sạc laptop, đánh răng, rửa mặt rồi ngồi vào máy.

Băn khoăn không biết nên đọc Chương 5 tiếp hay làm việc khác vì 8h15 chắc là mẹ gọi ăn sáng rồi.

Thôi cứ làm việc khác như là check email, chat vậy @@@@. Dù gì cũng để lâu quá, 2-3 ngày rồi....

Có khi mình làm xong mấy việc đấy sẽ thanh thản hơn @@.

Xong rồi ăn sáng xong tớ thấy nhà bẩn quá (3 ngày chưa lau rồi) lại quay ra lau nhà, sạc laptop tiếp rồi mới ngồi vào @@.

Ngồi vào lại đắn đo xem đọc Chương 5 hay trả lời email của Quang nhỉ vì tồn đọng nhiều quá rùi @@.

Thôi lại trả lời email vậy :(

Tớ còn 1 cái task riêng tớ to đùng viết cái note gặp chị kia từ hôm Thứ 5 tuần trước từ 5h chiều tới 9h30 tối @@. Sợ thật. 2 tiếng đầu nói về mỗi học tiếng Anh với Grounded Theory @@. Cũng hay phết.

https://en.wikipedia.org/wiki/Grounded_theory

Chưa hiểu tớ sẽ làm gì tiếp đây hay off hôm nay vì tớ dành thời gian nhiều cho cái QuerySet quá rùi huhu.

Thanks Quang đã đọc tới đây!!!

Chúc Quang ngày tốt!!!