5 minute read

Cơ sở dữ liệu và ngữ cảnh sử dụng

Có rất nhiều loại cơ sở dữ, phải đến hàng trăm loại, phổ biến hiện nay như PostgresSQL, Oracle, MySQL, MariaDB, SQLite, MongoDB, S3, Ceph, …

Có thể phân thành nhiều nhóm và ngữ cảnh sử dụng như sau:

Relational Database: cơ sở dữ liệu quan hệ, có thể sử dụng cho đa số các mục đích ví dụ: Oracle, mySQL, PostgresSQL, SQL Server, …

In-memory store: tốc độ nhanh và kích thước dữ liệu hạn chế do đó lý tưởng cho các loại dữ liệu tính toán hay sử dụng nhanh (caches) ví dụ: Redis, Hazelcast, Aerospike, …

Time-series database: lưu trữ và quản lý dữ liệu đánh dấu theo thời gian ví dụ: InfluxDB, Prometheus, Aeroskipe, …

Graph database: phù hợp với dữ liệu nhiều quan hệ phức tạp và phi cấu trúc ví dụ: Neo4j, OrientDB, ArangoDB, …

Document store: kho tài liệu phù hợp các dữ liệu lớn ít hay không thay đổi ví dụ: Amazon DynamoDB, MongoDB, …

Wide column store: sử dụng cho dữ liệu lớn, như phân tích, báo cáo, các dữ liệu không chuẩn hoá ví dụ: Microsoft Azure Cosmos DB, ScyllaDB, Amazon Keyspaces, …

Ref link

State of CSS 2022

State of CSS là cuộc khảo sát hàng năm về các xu hướng mới nhất của CSS.

Bạn nghĩ mình đã biết gì về CSS? Xem qua khảo sát này để biết thế giới đang dùng gì và bạn đang dùng gì nhé ^^

CSS đã phát triển thành một ngôn ngữ mạnh nhờ các tiến bộ từ Flexbox, Grid và CSS Variables. Danh sách các tính năng có thể làm thay đổi cuộc chơi như parent selector, native nesting, container layer, cascade layer, … sẽ khiến bạn sốc đấy ^^

Danh sách các chủ đề:

Features: bao gồm nhiều loại cú pháp, từ khoá

Layout: cách các thành phần hiển thị trên trang như subgrid, writing modes, css logical properties, aspect-ratio, content-visibility, flexbox gap, @container, object-view-box, viewport percent length unit, media queries range context

Shape & Graphics: blend-mode, filters & effects, backdrop filter, intrinsic sizing, conic-gradient(),

Colors: colors(), accent-color, curentcolor, color-mix, wide gamut color, relative colors, gradient color spaces

Interaction: scroll snap, overscroll behavior, touch action, scroll behavior, scrollbar-gutter

Typography: font-display, line-clamp, variable fonts, font palette,

Accessibility: prefer reduced motion, prefer color scheme, prefer reduced data, color constrast, color scheme, prefers constrast, forced-color, :focus-visibile

Selectors: ::marker, :has(), :where()

Ở mỗi phần sẽ bao gồm tỉ lệ số người biết và số người sử dụng, link CanIUse để kiểm tra support, link MDN để tìm hiểu thêm, và các resource gợi ý để bạn tìm hiểu thêm.

đọc thêm

Kỹ năng tìm kiếm thông tin

Kỹ năng tìm kiếm thông tin (research)

Research skills refer to the ability to search for, extract, organize, evaluate and use or present information that is relevant to a particular topic.

Tạm dịch: Kỹ năng nghiên cứu là nói đến khả năng biết tìm kiếm, phân loại, đánh giá và sử dụng thông tin liên qua đến một chủ đề cụ thể.

Qua định nghĩa trên thì kỹ năng này có thể chia thành các kỹ năng nhỏ sau:

1. Tìm kiếm thông tin: – học cách tìm kiếm, các mẹo tìm kiếm hiệu quả – sử các từ khoá phù hợp – đọc là chìa khoá để tìm các từ khoá về các chủ đề, e có thể đọc sách, – các bài báo, blog, các newsletters – lại search để tìm từ khoá “keyword for …” – hỏi người có kinh nghiệm hơn để tìm gợi ý

2. Trích xuất và phân loại thông tin: – ghi lại những gì bạn đọc được – phân loại nội dung theo chủ đề

3. Sử dụng nội dung – chia sẻ nội dung bạn ghi lại – thảo luận chủ đề bạn tìm hiểu – viết các note tổng hợp theo chủ đề

Bạn ghé đọc thêm về cách nguồn tài nguyên mình gợi ý trong blog này nha.

Security dành cho developer

Hôm qua mình có tham gia nghe buổi chia sẻ của anh HieuPC, chuyên gia về bảo mật do cộng đồng Dwarves Foudation tổ chức.

Dưới đây là một vài note muốn chia sẻ đến bạn.

Lập trình viên thường tập trung phát triển sản phẩm, một ngày nào đó bị hack thì sẽ bảo mật sau. –> đây là mindset chưa đúng và có thể gây hậu quả nghiêm trọng cho dự án, khách hàng và công ty.

An ninh mạng (cybersecurity) chia làm 4 yếu tố:

  1. credentiality – bảo mật tài nguyên hệ thống
  2. competence – nói về năng lực, mỗi con người tham gia nên làm công việc phù hợp với khả năng của mình. Tránh tình trạng không biết mà cố làm gây những lỗi, hạn chế gây ảnh hưởng hệ thống
  3. intellectual property rights – vấn đề quyền sở hữu, ví dụ như việc sử dụng các resource như code sẽ có các loại license khác nhau.
  4. computer abuse – không dùng kỹ năng về bảo mật để làm hại người khác

Việc bảo vệ dữ liệu khách hàng sẽ làm tăng uy tín công ty. Một công ty bị lộ thông tin người dùng thì tỉ lệ bị tẩy chay rất cao (30%).

Hướng dẫn về bảo mật: – bảo mật ngay từ đầu – phòng bệnh hơn chữa bệnh – luôn kiểm tra lỗi bảo mật – xây dựng cơ sở hạ tầng

Tất cả các tài khoản quan trọng cần bật bảo mật 2 bước, vì mỗi mật khẩu thôi thì không đủ.

Lập trình viên nên: – tìm hiểu thêm về các chuẩn bảo mật – thường xuyên thực hiện core review – tập trung vào functional requirement – đưa ra guideline về bảo mật cho dự án, áp bảo mật vào từng giai đoạn phát triển sản phẩm – tìm hiểu và áp dụng OWAP top 10 (https://owasp.org/www-project-top-ten/) – tìm hiểu thêm cheatsheet series owap (https://cheatsheetseries.owasp.org/) – tìm hiểu về security requirements của từng loại công nghệ, tải về benchmark để tìm hiểu thêm (https://www.cisecurity.org/cis-benchmarks/)

Một số nguồn tìm hiểu về bảo mật: – https://www.securecodewarrior.com/ (trial 14 days – good resource to learn & practice) – https://portswigger.net/web-security (free)

Anh HiếuPC cũng chia sẻ rất nhiều về bảo mật trên các kênh của anh ấy, mọi người có thể tìm kiếm thêm nhé.