[Learning notes] Elastic Stack: Relevance of search; fine tune precision or recall

https://www.youtube.com/watch?v=CCTgroOcyfM&list=LL&index=1 https://github.com/LisaHJung/Part-2-Understanding-the-relevance-of-your-search-with-Elasticsearch-and-Kibana-

Một số khái niệm

  • True positives: các document LIÊN QUAN và ĐƯỢC trả về cho user.
  • False positives: các document KHÔNG LIÊN QUAN và ĐƯỢC trả về cho user.
  • True negative: các document KHÔNG LIÊN QUAN và KHÔNG ĐƯỢC trả về cho user.
  • False negative: các document LIÊN QUAN và KHÔNG ĐƯỢC trả về cho user.
  • Precision = (True positives) / (True positives + False positive)
  • Recall = (True positives) / (True positives + False negative)
Tiếp tục đọc

[Learning notes] Elastic Stack: Giới thiệu về Elastic và Kibana, hands-on lab

Độ này có mấy task liên quan đến Elastic Stack. Cũng lâu không động đến, nên mình vọc thử một khoá crash course xem sao.

Node markdown bạn có thể xem ở đây: https://github.com/minhphong306/til/blob/master/document/elk-stack/001-intro-to-elastic-and-kibana.md

> https://www.youtube.com/watch?v=gS_nHTWZEJ8&list=LL&index=1&ab_channel=OfficialElasticCommunity > https://github.com/LisaHJung/Part-1-Intro-to-Elasticsearch-and-Kibana?tab=readme-ov-file

Giới thiệu

  • Elastic Stack bao gồm:

    • Elasticsearch: trái tim của hệ thống
    • Kibana: Dùng để visualize.
    • Beats: chưa biết.
    • Logstash: chưa biết.
  • Use case sử dụng:

    • Logging
    • Metrics
    • Security Analytics
    • Business Analytic
  • Mục tiêu bài này:

    • Hiểu các use case của Elasticsearch và Kibana.
    • Hiểu basic architecture của Elasticsearch.
    • Thực hiện CRUD với Elasticsearch và Kibana.
Tiếp tục đọc

[Tutorial] Tìm hiểu về deployment strategy: blue/green deployment, canary release và A/B Testing

— Anh Tèo này, sau khi code xong, anh deploy ứng dụng kiểu gì?

— À, anh ném cmn file PHP lên server bằng FileZilla em ạ.

— Vkl, vậy lỡ ứng dụng lỗi thì…

— Thì anh backup bản cũ rồi. Lỗi thì anh ném bản cũ lại. Hihi.

— Code như dbrr vậy. Anh nên tìm hiểu về một số chiến lược deployment đi nhé. Kinh điển chắc có ba loại: blue/ green, canary release và A/B Testing.

— Nghe thú vị đấy. Kể anh nghe đi.

Tiếp tục đọc

[Golang] Dùng context thế nào cho hợp lí?

https://go.dev/blog/context-and-structs

Contexts and Structs

  • Context giúp bạn control được code flow: truyền dữ liệu, thêm deadline, cancel từ phía caller, pass value giữa nhiều process,…
  • Bài viết này làm rõ quan điểm: Context không nên lưu vào struct mà nên pass vào hàm thành parameter.
    • Bài viết cũng nói khi nào lưu vào struct thì hợp lí.
  • Bài này chắc viết ngắn gọn thôi.
Tiếp tục đọc

[Golang] Một số improvement trên slice của Go 1.22

> https://go.dev/blog/generic-slice-functions

Robust generic functions on slices

  • slices package cũng cấp các functions để xử lý với tất cả các kiểu dữ liệu.
  • Bài này nói về cách sử dụng các functions này một cách hiệu quả, hiểu xem slice được lưu thế nào trong RAM, ảnh hưởng thế nào đến Garbage collector; team Go đã update các functions liên quan đến slice gần đây thế nào để tránh việc gây ra các lỗi “surprising”.
Tiếp tục đọc

[Golang] Package name

https://go.dev/blog/package-names

Intro

  • Go code được tổ chức theo các package. Trong cùng package, code có thể gọi tới nhau thoải mái, còn ngoài package thì những cháu nào export mới gọi được nhau.
  • Tên package luôn nằm phía trước identifier, VD: muốn gọi tới Bar trong package foo, dùng foo.Bar
  • Package name tốt thì giúp code ngon hơn.
    • Tên package thường mô tả context package dùng để làm gì, giúp client dễ sử dụng hơn.
    • Tên package cũng giúp maintainer dễ dàng xác định một identifier mới thuộc package nào (Kiểu thêm tính năng mới, tên giúp dễ định hình là thêm vào đâu hơn)
  • Effective Go cũng cung cấp cách đặt tên package cho xịn. Bài này nói về cách package name tệ, và cách để fix chúng.
Tiếp tục đọc