{"data":[{"id":92244,"title":"[Open Source] #65 - Novu: H\u1ea1 t\u1ea7ng th\u00f4ng b\u00e1o h\u1ee3p nh\u1ea5t tri\u1ec7u ng\u01b0\u1eddi d\u00f9ng v\u1edbi NestJS, Redis v\u00e0 ki\u1ebfn tr\u00fac Workflow Engine","slug":"Nj4vg6q3J6r","url":"https:\/\/viblo.asia\/p\/open-source-65-novu-ha-tang-thong-bao-hop-nhat-trieu-nguoi-dung-voi-nestjs-redis-va-kien-truc-workflow-engine-Nj4vg6q3J6r","user_id":183485,"transliterated":"open-source-65-novu-ha-tang-thong-bao-hop-nhat-trieu-nguoi-dung-voi-nestjs-redis-va-kien-truc-workflow-engine","contents_short":"Vi\u1ec7c qu\u1ea3n l\u00fd th\u00f4ng b\u00e1o (Email, SMS, Push, In-app) cho m\u1ed9t h\u1ec7 th\u1ed1ng quy m\u00f4 l\u1edbn l\u00e0 m\u1ed9t \"c\u01a1n \u00e1c m\u1ed9ng\" v\u1ec1 t\u00edch h\u1ee3p. B\u1ea1n ph\u1ea3i \u0111\u1ed1i m\u1eb7t v\u1edbi vi\u1ec7c duy tr\u00ec h\u00e0ng ch\u1ee5c SDK c\u1ee7a c\u00e1c nh\u00e0 cung c\u1ea5p kh\u00e1c nhau, x\u1eed l\u00fd logic g\u1eedi tin (Retry, Delay, Digest), v\u00e0 qu\u1ea3n l\u00fd t\u00f9y ch\u1ecdn (Preferences) c\u1ee7a t\u1eebng ng\u01b0\u1eddi d\u00f9ng. Novu xu\u1ea5t hi\u1ec7n nh\u01b0 m\u1ed9t gi\u1ea3i ph\u00e1p \"Notification Infrastructure as Code\", gi\u00fap b\u1ea1n t\u1eadp trung v\u00e0o logic s\u1ea3n p...","published_at":"2026-04-05T14:26:50.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T14:48:02.000000Z","edited_at":"2026-04-05T14:26:47.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":3,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/1afa8481-4bef-4a67-96b2-754009098995.png","user":{"data":{"id":183485,"url":"https:\/\/viblo.asia\/u\/PTTGoat","avatar":"b180935b-95f1-43f2-8e59-ce89d4745975.jpg","name":"Trung t\u00edn Ph\u1ea1m","username":"PTTGoat","followers_count":6,"reputation":87,"posts_count":67,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"advanced-typescript","name":"advanced typescript"},{"slug":"nestjs","name":"nestjs"},{"slug":"redis","name":"Redis"}]},"commentators":{"data":[]}},{"id":92243,"title":"[Open Source] #64 - Cal-ID: H\u1ea1 t\u1ea7ng \u0111\u1eb7t l\u1ecbch (Scheduling Infrastructure) quy m\u00f4 l\u1edbn v\u1edbi Next.js, tRPC v\u00e0 ki\u1ebfn tr\u00fac Monorepo","slug":"ymJXDEvgJkq","url":"https:\/\/viblo.asia\/p\/open-source-64-cal-id-ha-tang-dat-lich-scheduling-infrastructure-quy-mo-lon-voi-nextjs-trpc-va-kien-truc-monorepo-ymJXDEvgJkq","user_id":183485,"transliterated":"open-source-64-cal-id-ha-tang-dat-lich-scheduling-infrastructure-quy-mo-lon-voi-nextjs-trpc-va-kien-truc-monorepo","contents_short":"Vi\u1ec7c x\u00e2y d\u1ef1ng m\u1ed9t h\u1ec7 th\u1ed1ng \u0111\u1eb7t l\u1ecbch (Scheduling) d\u01b0\u1eddng nh\u01b0 \u0111\u01a1n gi\u1ea3n nh\u01b0ng th\u1ef1c t\u1ebf l\u1ea1i l\u00e0 m\u1ed9t b\u00e0i to\u00e1n h\u00f3c b\u00faa v\u1ec1 s\u1ef1 \u0111\u1ed3ng b\u1ed9: \u0111\u1ed3ng b\u1ed9 m\u00fai gi\u1edd, \u0111\u1ed3ng b\u1ed9 gi\u1eefa c\u00e1c n\u1ec1n t\u1ea3ng l\u1ecbch kh\u00e1c nhau (Google, Outlook, Apple) v\u00e0 gi\u1ea3i quy\u1ebft c\u00e1c xung \u0111\u1ed9t th\u1eddi gian th\u1ef1c. Cal.com (v\u1edbi b\u1ea3n fork Cal-ID) \u0111\u00e3 xu\u1ea5t hi\u1ec7n \u0111\u1ec3 gi\u1ea3i quy\u1ebft b\u00e0i to\u00e1n n\u00e0y b\u1eb1ng m\u1ed9t h\u1ea1 t\u1ea7ng \u0111\u1eb7t l\u1ecbch m\u00e3 ngu\u1ed3n m\u1edf, cho ph\u00e9p b\u1ea1n to\u00e0n quy\u1ec1n ki\u1ec3m so\u00e1t d\u1eef ...","published_at":"2026-04-05T14:23:52.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T14:24:02.000000Z","edited_at":"2026-04-05T14:23:46.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":1,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/3a7efc35-976d-4209-8a61-45c9e7af1cc5.png","user":{"data":{"id":183485,"url":"https:\/\/viblo.asia\/u\/PTTGoat","avatar":"b180935b-95f1-43f2-8e59-ce89d4745975.jpg","name":"Trung t\u00edn Ph\u1ea1m","username":"PTTGoat","followers_count":6,"reputation":87,"posts_count":67,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"opensource","name":"OpenSource"},{"slug":"prisma","name":"prisma"},{"slug":"scheduling-system","name":"scheduling system"}]},"commentators":{"data":[]}},{"id":92242,"title":"[Open Source] #63 - Zero (Mail-0): H\u1ec7 \u0111i\u1ec1u h\u00e0nh email th\u00f4ng minh v\u1edbi ki\u1ebfn tr\u00fac Edge Computing v\u00e0 Durable Objects","slug":"1j4lQgB7Jwl","url":"https:\/\/viblo.asia\/p\/open-source-63-zero-mail-0-he-dieu-hanh-email-thong-minh-voi-kien-truc-edge-computing-va-durable-objects-1j4lQgB7Jwl","user_id":183485,"transliterated":"open-source-63-zero-mail-0-he-dieu-hanh-email-thong-minh-voi-kien-truc-edge-computing-va-durable-objects","contents_short":"Email l\u00e0 c\u00f4ng c\u1ee5 giao ti\u1ebfp quan tr\u1ecdng nh\u1ea5t nh\u01b0ng l\u1ea1i l\u00e0 th\u1ee9 \u00edt thay \u0111\u1ed5i nh\u1ea5t trong hai th\u1eadp k\u1ef7 qua. Ch\u00fang ta v\u1eabn \u0111ang v\u1eadt l\u1ed9n v\u1edbi h\u00e0ng t\u00e1 email r\u00e1c, vi\u1ec7c t\u00ecm ki\u1ebfm th\u00f4ng tin c\u0169 kh\u00f3 kh\u0103n v\u00e0 phong c\u00e1ch vi\u1ebft l\u00e1ch kh\u00f4 khan. Zero (Mail-0) xu\u1ea5t hi\u1ec7n kh\u00f4ng ch\u1ec9 \u0111\u1ec3 thay th\u1ebf Gmail, m\u00e0 \u0111\u1ec3 t\u00e1i \u0111\u1ecbnh ngh\u0129a c\u00e1ch ch\u00fang ta t\u01b0\u01a1ng t\u00e1c v\u1edbi h\u1ed9p th\u01b0 th\u00f4ng qua s\u1ee9c m\u1ea1nh c\u1ee7a AI v\u00e0 ki\u1ebfn tr\u00fac Edge Computing ti\u00ean ti\u1ebfn nh\u1ea5t...","published_at":"2026-04-05T14:20:44.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T14:31:02.000000Z","edited_at":"2026-04-05T14:20:44.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":3,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/0d8a6653-37ed-4585-9278-9a907018945f.png","user":{"data":{"id":183485,"url":"https:\/\/viblo.asia\/u\/PTTGoat","avatar":"b180935b-95f1-43f2-8e59-ce89d4745975.jpg","name":"Trung t\u00edn Ph\u1ea1m","username":"PTTGoat","followers_count":6,"reputation":87,"posts_count":67,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"nextjs","name":"nextjs"},{"slug":"cloudflareworkers","name":"CloudflareWorkers"},{"slug":"systemdesign","name":"systemdesign"}]},"commentators":{"data":[]}},{"id":92241,"title":"[Open Source] #62 - evcc: H\u1ec7 th\u1ed1ng \u0111i\u1ec1u khi\u1ec3n s\u1ea1c xe \u0111i\u1ec7n th\u00f4ng minh, t\u1ed1i \u01b0u h\u00f3a n\u0103ng l\u01b0\u1ee3ng m\u1eb7t tr\u1eddi v\u1edbi Go v\u00e0 Vue.js","slug":"AWVpX1KkV05","url":"https:\/\/viblo.asia\/p\/open-source-62-evcc-he-thong-dieu-khien-sac-xe-dien-thong-minh-toi-uu-hoa-nang-luong-mat-troi-voi-go-va-vuejs-AWVpX1KkV05","user_id":183485,"transliterated":"open-source-62-evcc-he-thong-dieu-khien-sac-xe-dien-thong-minh-toi-uu-hoa-nang-luong-mat-troi-voi-go-va-vuejs","contents_short":"Vi\u1ec7c s\u1edf h\u1eefu m\u1ed9t chi\u1ebfc xe \u0111i\u1ec7n (EV) mang l\u1ea1i s\u1ef1 b\u1ec1n v\u1eefng, nh\u01b0ng l\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 s\u1ea1c xe m\u1ed9t c\u00e1ch kinh t\u1ebf v\u00e0 th\u00f4ng minh nh\u1ea5t\u2014\u0111\u1eb7c bi\u1ec7t l\u00e0 t\u1eadn d\u1ee5ng t\u1ed1i \u0111a ngu\u1ed3n \u0111i\u1ec7n m\u1eb7t tr\u1eddi \u00e1p m\u00e1i\u2014l\u1ea1i l\u00e0 m\u1ed9t b\u00e0i to\u00e1n h\u00f3c b\u00faa v\u1ec1 \u0111i\u1ec1u ph\u1ed1i n\u0103ng l\u01b0\u1ee3ng. evcc (Electric Vehicle Charge Controller) xu\u1ea5t hi\u1ec7n nh\u01b0 m\u1ed9t \"nh\u1ea1c tr\u01b0\u1edfng\" t\u00e0i ba, cho ph\u00e9p k\u1ebft n\u1ed1i h\u00e0ng tr\u0103m lo\u1ea1i thi\u1ebft b\u1ecb kh\u00e1c nhau \u0111\u1ec3 bi\u1ebfn vi\u1ec7c s\u1ea1c xe tr\u1edf n\u00ean ho\u00e0n to...","published_at":"2026-04-05T14:15:16.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T14:28:02.000000Z","edited_at":"2026-04-05T14:15:03.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":2,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/717992d6-215a-4760-b3a4-e48f3b6f5628.png","user":{"data":{"id":183485,"url":"https:\/\/viblo.asia\/u\/PTTGoat","avatar":"b180935b-95f1-43f2-8e59-ce89d4745975.jpg","name":"Trung t\u00edn Ph\u1ea1m","username":"PTTGoat","followers_count":6,"reputation":87,"posts_count":67,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"co-ban-vuejs","name":"co ban vuejs"},{"slug":"mqtt","name":"mqtt"},{"slug":"opensource","name":"OpenSource"}]},"commentators":{"data":[]}},{"id":92239,"title":"[Open Source] #61 - Papermark: Ki\u1ebfn tr\u00fac chia s\u1ebb t\u00e0i li\u1ec7u b\u1ea3o m\u1eadt v\u00e0 h\u1ec7 th\u1ed1ng Tracking th\u1eddi gian th\u1ef1c v\u1edbi Next.js v\u00e0 Tinybird","slug":"XP4WEoRKL7G","url":"https:\/\/viblo.asia\/p\/open-source-61-papermark-kien-truc-chia-se-tai-lieu-bao-mat-va-he-thong-tracking-thoi-gian-thuc-voi-nextjs-va-tinybird-XP4WEoRKL7G","user_id":183485,"transliterated":"open-source-61-papermark-kien-truc-chia-se-tai-lieu-bao-mat-va-he-thong-tracking-thoi-gian-thuc-voi-nextjs-va-tinybird","contents_short":"Vi\u1ec7c g\u1eedi m\u1ed9t t\u00e0i li\u1ec7u quan tr\u1ecdng (Pitch Deck, h\u1ee3p \u0111\u1ed3ng, b\u00e1o c\u00e1o) qua email th\u01b0\u1eddng l\u00e0 m\u1ed9t \"h\u1ed1 \u0111en\" th\u00f4ng tin: b\u1ea1n kh\u00f4ng bi\u1ebft li\u1ec7u \u0111\u1ed1i t\u00e1c \u0111\u00e3 m\u1edf xem ch\u01b0a, h\u1ecd d\u1eebng l\u1ea1i \u1edf trang n\u00e0o l\u00e2u nh\u1ea5t, hay li\u1ec7u h\u1ecd c\u00f3 chia s\u1ebb n\u00f3 cho ng\u01b0\u1eddi kh\u00e1c kh\u00f4ng. Papermark xu\u1ea5t hi\u1ec7n nh\u01b0 m\u1ed9t l\u1eddi gi\u1ea3i m\u00e3 ngu\u1ed3n m\u1edf m\u1ea1nh m\u1ebd thay th\u1ebf cho DocSend, cho ph\u00e9p b\u1ea1n kh\u00f4ng ch\u1ec9 chia s\u1ebb t\u00e0i li\u1ec7u b\u1ea3o m\u1eadt m\u00e0 c\u00f2n s\u1edf h\u1eefu to\u00e0n b\u1ed9 d\u1eef li\u1ec7u ph\u00e2n ...","published_at":"2026-04-05T14:06:20.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T14:31:02.000000Z","edited_at":"2026-04-05T14:06:14.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":4,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/75749983-0c82-428b-b2f6-9bc7477d4f99.png","user":{"data":{"id":183485,"url":"https:\/\/viblo.asia\/u\/PTTGoat","avatar":"b180935b-95f1-43f2-8e59-ce89d4745975.jpg","name":"Trung t\u00edn Ph\u1ea1m","username":"PTTGoat","followers_count":6,"reputation":87,"posts_count":67,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"advanced-typescript","name":"advanced typescript"},{"slug":"nextjs","name":"nextjs"},{"slug":"prisma","name":"prisma"}]},"commentators":{"data":[]}},{"id":92238,"title":"[Network Basic] Gi\u1ea3i ng\u1ed1 v\u1ec1 \"Host\": Kh\u00e1i ni\u1ec7m quen m\u1eb7t nh\u01b0ng 90% anh em hi\u1ec3u sai","slug":"ym4008w9491","url":"https:\/\/viblo.asia\/p\/network-basic-giai-ngo-ve-host-khai-niem-quen-mat-nhung-90-anh-em-hieu-sai-ym4008w9491","user_id":182653,"transliterated":"network-basic-giai-ngo-ve-host-khai-niem-quen-mat-nhung-90-anh-em-hieu-sai","contents_short":"Ch\u00e0o anh em, l\u1ea1i l\u00e0 m\u00ecnh \u0111\u00e2y.\n\nD\u1ea1o n\u00e0y anh em l\u00e0m backend ch\u1eafc m\u1ea3i m\u00ea ch\u1ea1y deadline, h\u00ec h\u1ee5c d\u1ef1ng m\u1ea5y con API b\u00e1n v\u00e9 xem phim b\u1eb1ng Golang hay v\u1eadt l\u1ed9n t\u1ed1i \u01b0u t\u00ednh n\u0103ng real-time chat b\u00ean Laravel s\u01b0\u1edbng tay qu\u00e1 n\u00ean th\u1ec9nh tho\u1ea3ng hay qu\u00ean m\u1ea5t m\u1ea5y kh\u00e1i ni\u1ec7m n\u1ec1n t\u1ea3ng.\n\nS\u00e1ng nay r\u1ea3nh r\u1ed7i ng\u1ed3i l\u01b0\u1edbt d\u1ea1o xem CV m\u1ea5y b\u00e9 fresher, m\u00ecnh hay h\u1ecfi m\u1ed9t c\u00e2u t\u01b0\u1edfng nh\u01b0 \"cho \u0111i\u1ec3m\" th\u1ebf n\u00e0y: \"Th\u1ebf theo em, Host l\u00e0 c\u00e1i qu\u00e1...","published_at":"2026-04-05T14:01:27.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T14:14:02.000000Z","edited_at":"2026-04-05T14:00:53.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":3,"clips_count":0,"comments_count":1,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/6835189f-c9f4-4335-b424-03aa0a3a0234.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"android-networking","name":"Android Networking"},{"slug":"backend","name":"Backend"},{"slug":"web-server","name":"Web Server"},{"slug":"devops","name":"DevOps"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92237,"title":"[Kh\u00f3a lu\u1eadn\/\u0110\u1ed3 \u00e1n] B\u00ed k\u00edp \"\u0111\u1ed9\" \u0110\u1ec1 c\u01b0\u01a1ng nghi\u00ean c\u1ee9u (Proposal) chu\u1ea9n ch\u1ec9nh t\u1eeb A-Z: T\u1eeb s\u1ed1 0 \u0111\u1ebfn l\u00fac qua m\u00f4n","slug":"AY4qQgjq4Pw","url":"https:\/\/viblo.asia\/p\/khoa-luando-an-bi-kip-do-de-cuong-nghien-cuu-proposal-chuan-chinh-tu-a-z-tu-so-0-den-luc-qua-mon-AY4qQgjq4Pw","user_id":182653,"transliterated":"khoa-luando-an-bi-kip-do-de-cuong-nghien-cuu-proposal-chuan-chinh-tu-a-z-tu-so-0-den-luc-qua-mon","contents_short":"Ch\u00e0o anh em, l\u1ea1i l\u00e0 m\u00ecnh \u0111\u00e2y.\n\nD\u1ea1o n\u00e0y l\u01b0\u1edbt c\u00e1c group IT th\u1ea5y nhi\u1ec1u anh em sinh vi\u00ean n\u0103m cu\u1ed1i \u0111ang kh\u00f3c th\u00e9t v\u1edbi c\u00e1i \u1ea3i \u0110\u1ed3 \u00e1n\/Kh\u00f3a lu\u1eadn t\u1ed1t nghi\u1ec7p. Code ch\u1ee9c n\u0103ng th\u00ec anh em m\u00faa ph\u00edm nh\u01b0 hacker r\u1edfm tr\u00ean phim, nh\u01b0ng c\u1ee9 \u0111\u1ee5ng \u0111\u1ebfn vi\u1ec7c vi\u1ebft \u0110\u1ec1 c\u01b0\u01a1ng nghi\u00ean c\u1ee9u (Proposal) th\u00ec l\u1ea1i x\u00ec tr\u00e9t, ng\u1ed3i c\u1eafn b\u00fat nguy\u00ean tu\u1ea7n kh\u00f4ng n\u1eb7n ra \u0111\u01b0\u1ee3c ch\u1eef n\u00e0o.\n\nNhi\u1ec1u \u00f4ng c\u1ee9 ngh\u0129: \"\u00d4i d\u00e0o, code ch\u1ea1y \u0111\u01b0\u1ee3c l\u00e0 \u0103n \u0111i\u1ec3m\". Sai...","published_at":"2026-04-05T13:48:17.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T14:10:02.000000Z","edited_at":"2026-04-05T13:46:13.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":8,"organization_pinned_at":null,"profile_pin_position":null,"points":1,"views_count":5,"clips_count":0,"comments_count":1,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/9c9f3f4e-a4e9-4cba-affd-8461c1ddc36f.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"ky-nang-mem","name":"k\u1ef9 n\u0103ng m\u1ec1m"},{"slug":"project-management","name":"Project Management"},{"slug":"backend","name":"Backend"},{"slug":"bussiness-manner","name":"bussiness manner"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92219,"title":"[Android] PhotoView: \"C\u1ee9u tinh\" gi\u00fap d\u1eb9p b\u1ecf c\u01a1n \u00e1c m\u1ed9ng Pinch-to-Zoom \u1ea3nh","slug":"RlL5e8wgLbB","url":"https:\/\/viblo.asia\/p\/android-photoview-cuu-tinh-giup-dep-bo-con-ac-mong-pinch-to-zoom-anh-RlL5e8wgLbB","user_id":182653,"transliterated":"android-photoview-cuu-tinh-giup-dep-bo-con-ac-mong-pinch-to-zoom-anh","contents_short":"Ch\u00e0o anh em, l\u1ea1i l\u00e0 m\u00ecnh \u0111\u00e2y.\n\nTrong series l\u1ea7n tr\u01b0\u1edbc, m\u00ecnh \u0111\u00e3 c\u00f9ng anh em \"d\u1eb9p lo\u1ea1n\" m\u1edb b\u00f2ng bong \u0111i\u1ec1u h\u01b0\u1edbng b\u1eb1ng Navigation Component r\u1ed3i. H\u00f4m nay, ch\u00fang ta s\u1ebd quay l\u1ea1i v\u1edbi m\u1ed9t UI component c\u1ef1c k\u1ef3 quen thu\u1ed9c nh\u01b0ng c\u0169ng c\u1ef1c k\u1ef3... \u00e1m \u1ea3nh n\u1ebfu anh em l\u1ee1 tay h\u1ee9a v\u1edbi s\u1ebfp l\u00e0 \"em t\u1ef1 code \u0111\u01b0\u1ee3c\". \u0110\u00f3 l\u00e0 ch\u1ee9c n\u0103ng Pinch-to-Zoom (nh\u00fam ng\u00f3n tay \u0111\u1ec3 ph\u00f3ng to\/thu nh\u1ecf) v\u00e0 vu\u1ed1t (pan) \u0111\u1ec3 xem \u1ea3nh.\n\nBi k\u1ecbch c\u1ee7a k\u1ebb...","published_at":"2026-04-05T08:50:01.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:53:02.000000Z","edited_at":"2026-04-05T08:49:36.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":1,"views_count":9,"clips_count":0,"comments_count":1,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/9126e6b7-78a1-4452-9adc-641f549f5808.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"matrix","name":"Matrix"},{"slug":"atandroid","name":"@android"},{"slug":"activity-android","name":"Activity Android"},{"slug":"huong-dan","name":"h\u01b0\u1edbng d\u1eabn"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92217,"title":"[Android] D\u1eb9p lo\u1ea1n m\u1edb b\u00f2ng bong Intent\/Fragment v\u1edbi Navigation Component: Khi Mobile h\u1ecdc l\u1ecfm Backend","slug":"yZJZlva3Vjm","url":"https:\/\/viblo.asia\/p\/android-dep-loan-mo-bong-bong-intentfragment-voi-navigation-component-khi-mobile-hoc-lom-backend-yZJZlva3Vjm","user_id":182653,"transliterated":"android-dep-loan-mo-bong-bong-intentfragment-voi-navigation-component-khi-mobile-hoc-lom-backend","contents_short":"Ch\u00e0o anh em, l\u1ea1i l\u00e0 m\u00ecnh \u0111\u00e2y.\n\nL\u00e2u nay to\u00e0n h\u1ea7u chuy\u1ec7n anh em d\u01b0\u1edbi t\u1ea7ng \u0111\u00e1y backend r\u00f9i, h\u00f4m nay m\u00ecnh ngoi l\u00ean t\u1ea7ng giao di\u1ec7n, \u0111\u1ed5i gi\u00f3 sang m\u1ea3ng Mobile (c\u1ee5 th\u1ec3 l\u00e0 Android) m\u1ed9t ch\u00fat nh\u00e9.\n\nN\u1ebfu anh em n\u00e0o t\u1eebng l\u00e0m web nh\u1ea3y sang ngh\u1ecbch Android, ch\u1eafc ch\u1eafn s\u1ebd b\u1ecb \"s\u1ed1c v\u0103n h\u00f3a\" \u1edf c\u00e1i m\u00e0n chuy\u1ec3n trang (routing). \u1ede web, v\u00ed d\u1ee5 anh em \u00f4m Laravel \u0111i, m\u1ecdi th\u1ee9 d\u1ec5 th\u1edf v\u00f4 c\u00f9ng. Mu\u1ed1n bi\u1ebft lu\u1ed3ng \u0111i c\u1ee7a app, ch\u1ec9 c...","published_at":"2026-04-05T08:42:04.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:45:02.000000Z","edited_at":"2026-04-05T08:41:46.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":7,"clips_count":0,"comments_count":1,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/924a07d0-f8fa-419f-903b-fbd946f236a7.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"android-navigation-component","name":"Android Navigation Component"},{"slug":"app-mobile","name":"App mobile"},{"slug":"atandroid","name":"@android"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92215,"title":"NpOn.Net-V2 Core: Ki\u1ebfn tr\u00fac Microservices, t\u00edch h\u1ee3p Data Access t\u1ed1c \u0111\u1ed9 cao","slug":"oW4oelBxLml","url":"https:\/\/viblo.asia\/p\/nponnet-v2-core-kien-truc-microservices-tich-hop-data-access-toc-do-cao-oW4oelBxLml","user_id":184916,"transliterated":"nponnet-v2-core-kien-truc-microservices-tich-hop-data-access-toc-do-cao","contents_short":"NpOn.Net-V2 Core: Ki\u1ebfn tr\u00fac Data Access trong m\u00f4i tr\u01b0\u1eddng Microservices\n\nT\u00e0i li\u1ec7u n\u00e0y tr\u00ecnh b\u00e0y c\u00e1c gi\u1ea3i ph\u00e1p ki\u1ebfn tr\u00fac v\u1ec1 t\u1ea7ng Data Access Layer (DAL) \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n ri\u00eang trong h\u1ec7 sinh th\u00e1i NpOn.Net-V2. Qu\u00e1 tr\u00ecnh h\u00ecnh th\u00e0nh th\u01b0 vi\u1ec7n l\u00f5i n\u00e0y b\u1eaft ngu\u1ed3n t\u1eeb m\u1ee5c ti\u00eau t\u00e1ch bi\u1ec7t ho\u00e0n to\u00e0n Business Logic kh\u1ecfi c\u00e1c gi\u1edbi h\u1ea1n c\u1ee7a m\u1ed9t Database c\u1ee5 th\u1ec3, qu\u1ea3n l\u00fd ch\u1eb7t ch\u1ebd Connection Pool, v\u00e0 thi\u1ebft l\u1eadp m\u1ed9t b\u1ed9 ...","published_at":"2026-04-05T08:01:10.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:23:51.000000Z","edited_at":"2026-04-05T07:59:56.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":11,"organization_pinned_at":null,"profile_pin_position":null,"points":3,"views_count":21,"clips_count":1,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/77b3f627-2fa9-48e6-89bf-03a066d28409.png","user":{"data":{"id":184916,"url":"https:\/\/viblo.asia\/u\/LeDucPr","avatar":"adbce8fd-1c7a-4edb-92f8-ecd6d5117652.jpg","name":"L\u00ea \u0110\u1ee9c","username":"LeDucPr","followers_count":1,"reputation":22,"posts_count":0,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"aspnetcore-microservices","name":"aspnetcore-microservices"},{"slug":"access-database","name":"access database"},{"slug":"domain-driven-design-ddd","name":"Domain-Driven Design (DDD)"},{"slug":"design-system","name":"design system"},{"slug":"aspnet-core","name":"ASP.NET Core"}]},"commentators":{"data":[]}},{"id":92212,"title":"[Node.js] V\u01b0\u1ee3t r\u00e0o \"\u0110\u01a1n lu\u1ed3ng\" v\u1edbi Child Process API: B\u01a1m th\u00eam c\u01a1 b\u1eafp cho Server","slug":"K9Vy8YR0LQR","url":"https:\/\/viblo.asia\/p\/nodejs-vuot-rao-don-luong-voi-child-process-api-bom-them-co-bap-cho-server-K9Vy8YR0LQR","user_id":182653,"transliterated":"nodejs-vuot-rao-don-luong-voi-child-process-api-bom-them-co-bap-cho-server","contents_short":"Ch\u00e0o anh em, l\u1ea1i l\u00e0  m\u00ecnh \u0111\u00e2y.\n\n\u1ede b\u00e0i tr\u01b0\u1edbc, m\u00ecnh \u0111\u00e3 c\u00f9ng anh em b\u00f3c tr\u1ea7n s\u1ef1 th\u1eadt v\u1ec1 Event Loop v\u00e0 c\u00e1ch m\u00e0 Node.js (hay JavaScript n\u00f3i chung) \"l\u01b0\u01a1n l\u1eb9o\" \u0111\u1ec3 x\u1eed l\u00fd h\u00e0ng ngh\u00ecn request I\/O c\u00f9ng l\u00fac d\u00f9 ch\u1ec9 mang ti\u1ebfng l\u00e0 k\u1ebb \"\u0111\u01a1n lu\u1ed3ng\" (single-thread). M\u1ecdi th\u1ee9 nghe c\u00f3 v\u1ebb r\u1ea5t ho\u00e0n h\u1ea3o, cho \u0111\u1ebfn khi... anh em b\u1eaft n\u00f3 l\u00e0m to\u00e1n.\n\n\u0110\u00fang v\u1eady, Event Loop r\u1ea5t gi\u1ecfi vi\u1ec7c \"nh\u1edd v\u1ea3\" (ch\u1edd database query, ch\u1edd \u0111\u1ecdc ghi ...","published_at":"2026-04-05T07:45:16.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:13:02.000000Z","edited_at":"2026-04-05T07:45:16.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":12,"clips_count":0,"comments_count":1,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/2380eb0c-7c65-4281-a960-8e07cf45c5aa.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"child-process","name":"child process"},{"slug":"ad-server","name":"Ad Server"},{"slug":"atapi","name":"@api"},{"slug":"event-loop","name":"event loop"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92210,"title":"Event Loop v\u00e0 Web APIs: Ph\u00e9p thu\u1eadt \u0111\u1eb1ng sau s\u1ef1 \"B\u1ea5t \u0111\u1ed3ng b\u1ed9\"","slug":"y0VGwGxDVPA","url":"https:\/\/viblo.asia\/p\/event-loop-va-web-apis-phep-thuat-dang-sau-su-bat-dong-bo-y0VGwGxDVPA","user_id":182653,"transliterated":"event-loop-va-web-apis-phep-thuat-dang-sau-su-bat-dong-bo","contents_short":"Ch\u00e0o anh em,\n\nN\u1ebfu anh em xu\u1ea5t th\u00e2n t\u1eeb c\u00e1c ng\u00f4n ng\u1eef backend tu\u1ea7n t\u1ef1 (nh\u01b0 PHP x\u1eed l\u00fd request theo ki\u1ec3u \u0111\u1ed3ng b\u1ed9), ch\u1eafc ch\u1eafn khi m\u1edbi nh\u1ea3y sang ngh\u1ecbch JavaScript (Node.js ho\u1eb7c Frontend) s\u1ebd b\u1ecb \"kh\u1edbp\". Code vi\u1ebft r\u00f5 r\u00e0ng \u1edf d\u00f2ng s\u1ed1 2, nh\u01b0ng d\u00f2ng s\u1ed1 3 l\u1ea1i ch\u1ea1y xong x\u1eeb n\u00f3 r\u1ed3i.\n\n\u0110i ph\u1ecfng v\u1ea5n d\u1ea1o, 99% anh em s\u1ebd g\u1eb7p c\u00e2u h\u1ecfi m\u1ed1c m\u1ed3m n\u00e0y: \"JavaScript l\u00e0 ng\u00f4n ng\u1eef \u0111\u01a1n lu\u1ed3ng (single-threaded). V\u1eady t\u1ea1i sao n\u00f3 l\u1ea1i c...","published_at":"2026-04-05T07:29:16.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:00:05.000000Z","edited_at":"2026-04-05T07:29:15.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":7,"organization_pinned_at":null,"profile_pin_position":null,"points":3,"views_count":17,"clips_count":0,"comments_count":4,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/ecad942c-6e5f-44b8-83c5-e374fc09be1a.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"v8-engine","name":"V8 Engine"},{"slug":"event-loop","name":"event loop"},{"slug":"web-apis","name":"web apis"},{"slug":"callback-queue","name":"callback queue"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null},{"id":182732,"url":"https:\/\/viblo.asia\/u\/Hieumn","avatar":"b79a0c92-fb82-49df-bda1-2f51c8e45300.jpg","name":"Nguyen Hieu","username":"Hieumn","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null},{"id":184792,"url":"https:\/\/viblo.asia\/u\/nhh","avatar":"1f22eb24-753d-4aa1-96e5-c2644513b184.jpg","name":"Nguy\u1ec5n H\u1eefu Giang","username":"nhh","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null},{"id":184801,"url":"https:\/\/viblo.asia\/u\/Tuanhuu1201","avatar":"765295b3-c266-4756-8f0b-6b149861811c.png","name":"Thanh H\u1ea3i Hu\u1ef3nh","username":"Tuanhuu1201","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92204,"title":"[Java C\u01a1 B\u1ea3n] B\u00e0i 2: Ki\u1ec3u D\u1eef Li\u1ec7u, To\u00e1n T\u1eed v\u00e0 C\u1ea5u Tr\u00fac \u0110i\u1ec1u Khi\u1ec3n (If, Switch)","slug":"bA468RZGLKv","url":"https:\/\/viblo.asia\/p\/java-co-ban-bai-2-kieu-du-lieu-toan-tu-va-cau-truc-dieu-khien-if-switch-bA468RZGLKv","user_id":182653,"transliterated":"java-co-ban-bai-2-kieu-du-lieu-toan-tu-va-cau-truc-dieu-khien-if-switch","contents_short":"Ch\u00e0o c\u00e1c b\u1ea1n! N\u1ebfu \u1edf b\u00e0i 1 ch\u00fang ta \u0111\u00e3 bi\u1ebft c\u00e1ch c\u1ea5u h\u00ecnh m\u00f4i tr\u01b0\u1eddng v\u00e0 ch\u1ea1y th\u1eed ch\u01b0\u01a1ng tr\u00ecnh \"Hello World\", th\u00ec h\u00f4m nay ch\u00fang ta s\u1ebd \u0111i s\u00e2u h\u01a1n v\u00e0o n\u1ed9i t\u1ea1i c\u1ee7a ng\u00f4n ng\u1eef Java. Trong b\u00e0i n\u00e0y, ch\u00fang ta s\u1ebd c\u00f9ng t\u00ecm hi\u1ec3u v\u1ec1 c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u, c\u00e1ch t\u00ednh to\u00e1n v\u1edbi to\u00e1n t\u1eed, v\u00e0 c\u00e1ch ki\u1ec3m so\u00e1t lu\u1ed3ng ch\u1ea1y c\u1ee7a ch\u01b0\u01a1ng tr\u00ecnh th\u00f4ng qua c\u00e1c c\u00e2u l\u1ec7nh \u0111i\u1ec1u ki\u1ec7n.\n\n1. Ki\u1ec3u d\u1eef li\u1ec7u nguy\u00ean th\u1ee7y (Primitive Types)\n\nJava ...","published_at":"2026-04-05T05:03:13.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:00:05.000000Z","edited_at":"2026-04-05T05:02:18.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":12,"clips_count":0,"comments_count":1,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/3cbff2a3-598a-4b46-9078-6c657a80994e.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"if-else","name":"if else"},{"slug":"switch-case","name":"switch case"},{"slug":"advanced-javascript","name":"Advanced JavaScript"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92199,"title":"127.0.0.1 v\u00e0 localhost kh\u00e1c nhau nh\u01b0 th\u1ebf n\u00e0o??","slug":"wd43EKbrLX9","url":"https:\/\/viblo.asia\/p\/127001-va-localhost-khac-nhau-nhu-the-nao-wd43EKbrLX9","user_id":182653,"transliterated":"127001-va-localhost-khac-nhau-nhu-the-nao","contents_short":"Ch\u1eafc h\u1eb3n trong \u0111\u1eddi l\u00e0m dev c\u1ee7a ch\u00fang ta, ai c\u0169ng \u00edt nh\u1ea5t m\u1ed9t l\u1ea7n g\u1eb7p ph\u1ea3i c\u00e1i k\u1ecbch b\u1ea3n d\u1edf kh\u00f3c d\u1edf c\u01b0\u1eddi n\u00e0y: L\u1ea5y source code v\u1ec1, c\u00e0i c\u1eafm database \u0111\u1ea7y \u0111\u1ee7, setup file .env v\u1edbi c\u1ea5u h\u00ecnh DB_HOST=localhost. Ch\u1ea1y app l\u00ean v\u00e0... B\u00d9M! \"Connection refused\" ho\u1eb7c \"Can't connect to local MySQL server through socket\".\n\nCay c\u00fa, b\u1ea1n l\u01b0\u1edbt StackOverflow, th\u1ea5y m\u1ed9t ph\u00e1p s\u01b0 n\u00e0o \u0111\u00f3 b\u1ea3o \u0111\u1ed5i localhost th\u00e0nh 127.0.0.1 \u0111...","published_at":"2026-04-05T02:04:33.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:59:02.000000Z","edited_at":"2026-04-05T02:03:51.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":2,"views_count":38,"clips_count":1,"comments_count":1,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/ee109a1a-269b-4b50-8524-20106d5d0807.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"localhost","name":"localhost"},{"slug":"ipv4","name":"#IPv4"},{"slug":"avg-mysql","name":"AVG MYSQL"},{"slug":"dotenv","name":"dotenv"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92194,"title":"Microservices & Micro Frontend \u2014 Ki\u1ebfn tr\u00fac cho h\u1ec7 th\u1ed1ng l\u1edbn trong 2026","slug":"oKLnqK5aJQO","url":"https:\/\/viblo.asia\/p\/microservices-micro-frontend-kien-truc-cho-he-thong-lon-trong-2026-oKLnqK5aJQO","user_id":95996,"transliterated":"microservices-micro-frontend-kien-truc-cho-he-thong-lon-trong-2026","contents_short":"T\u1ea1i sao Monolith kh\u00f4ng c\u00f2n \u0111\u1ee7?\n\nH\u00e3y t\u01b0\u1edfng t\u01b0\u1ee3ng m\u1ed9t team 50 ng\u01b0\u1eddi c\u00f9ng l\u00e0m vi\u1ec7c tr\u00ean m\u1ed9t codebase duy nh\u1ea5t. M\u1ed7i l\u1ea7n deploy ph\u1ea3i build l\u1ea1i to\u00e0n b\u1ed9. M\u1ed9t bug nh\u1ecf \u1edf module thanh to\u00e1n c\u00f3 th\u1ec3 k\u00e9o s\u1eadp c\u1ea3 trang landing. M\u1ed9t team frontend mu\u1ed1n d\u00f9ng React 19, team kia v\u1eabn m\u1eafc k\u1eb9t \u1edf React 16 v\u00ec kh\u00f4ng ai d\u00e1m upgrade.\n\n\u0110\u00f3 l\u00e0 th\u1ef1c t\u1ebf c\u1ee7a ki\u1ebfn tr\u00fac Monolith khi h\u1ec7 th\u1ed1ng \u0111\u1ea1t \u0111\u1ebfn m\u1ed9t quy m\u00f4 nh\u1ea5t \u0111\u1ecbnh.\n\nMicroser...","published_at":"2026-04-04T15:12:56.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T10:43:02.000000Z","edited_at":"2026-04-04T15:13:24.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":6,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":29,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/acad1967-2e86-413b-9d4b-7d1abc9d2219.png","user":{"data":{"id":95996,"url":"https:\/\/viblo.asia\/u\/tdduydev","avatar":"3e7f984c-96d6-4591-aee8-02cece2324e3.jpeg","name":"Tr\u1ea7n \u0110\u1ee9c Duy","username":"tdduydev","followers_count":130,"reputation":2206,"posts_count":25,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"monolithic","name":"Monolithic"},{"slug":"kien-truc-microservices","name":"ki\u1ebfn tr\u00fac microservices"},{"slug":"micro-frontend","name":"micro frontend"}]},"commentators":{"data":[]}},{"id":92184,"title":"[Java C\u01a1 B\u1ea3n] B\u00e0i 1: L\u00e0m Quen V\u1edbi Ng\u00f4n Ng\u1eef Java D\u00e0nh Cho Ng\u01b0\u1eddi M\u1edbi","slug":"1QLxnYRp4Aw","url":"https:\/\/viblo.asia\/p\/java-co-ban-bai-1-lam-quen-voi-ngon-ngu-java-danh-cho-nguoi-moi-1QLxnYRp4Aw","user_id":182653,"transliterated":"java-co-ban-bai-1-lam-quen-voi-ngon-ngu-java-danh-cho-nguoi-moi","contents_short":"Ch\u00e0o c\u00e1c b\u1ea1n, h\u00f4m nay ch\u00fang ta s\u1ebd c\u00f9ng nhau t\u00ecm hi\u1ec3u v\u1ec1 Java - m\u1ed9t trong nh\u1eefng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kinh \u0111i\u1ec3n v\u00e0 m\u1ea1nh m\u1ebd b\u1eadc nh\u1ea5t hi\u1ec7n nay. D\u00f9 b\u1ea1n l\u00e0 sinh vi\u00ean m\u1edbi b\u1eaft \u0111\u1ea7u hay nh\u1eefng ng\u01b0\u1eddi mu\u1ed1n m\u1edf r\u1ed9ng ki\u1ebfn th\u1ee9c v\u1ec1 Backend, vi\u1ec7c n\u1eafm v\u1eefng n\u1ec1n t\u1ea3ng lu\u00f4n l\u00e0 b\u01b0\u1edbc quan tr\u1ecdng nh\u1ea5t. C\u00f9ng b\u1eaft \u0111\u1ea7u nh\u00e9!\n\n1. Gi\u1edbi thi\u1ec7u t\u1ed5ng quan v\u1ec1 Java\n\nJava kh\u00f4ng ch\u1ec9 l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh m\u00e0 c\u00f2n l\u00e0 m\u1ed9t h\u1ec7 sinh th\u00e1i l\u1edbn...","published_at":"2026-04-04T05:17:24.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:00:05.000000Z","edited_at":"2026-04-04T05:18:27.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":8,"organization_pinned_at":null,"profile_pin_position":null,"points":1,"views_count":31,"clips_count":0,"comments_count":2,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/3bccc77a-8855-40b8-8df6-cff5f61c0c9d.png","user":{"data":{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":33,"reputation":1316,"posts_count":166,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"array-javascript","name":"Array JavaScript"},{"slug":"oracle","name":"oracle"},{"slug":"eclipse","name":"eclipse"},{"slug":"jdk","name":"JDK"},{"slug":"netbeans","name":"NetBeans"}]},"commentators":{"data":[{"id":182653,"url":"https:\/\/viblo.asia\/u\/hhoang","avatar":"c22752a7-2a97-435b-99a2-4780f83a7afa.png","name":"Nguy\u1ec5n Huy Ho\u00e0ng","username":"hhoang","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null},{"id":184801,"url":"https:\/\/viblo.asia\/u\/Tuanhuu1201","avatar":"765295b3-c266-4756-8f0b-6b149861811c.png","name":"Thanh H\u1ea3i Hu\u1ef3nh","username":"Tuanhuu1201","followers_count":0,"reputation":0,"posts_count":0,"banned_at":null,"level_partner":null}]}},{"id":92183,"title":"Phu_tu","slug":"XP4WEopoL7G","url":"https:\/\/viblo.asia\/p\/phu-tu-XP4WEopoL7G","user_id":184534,"transliterated":"phu-tu","contents_short":"[T\u00ecm c\u1ed9ng t\u00e1c vi\u00ean] D\u1ef1 \u00e1n AI c\u00e1 nh\u00e2n \u2014 Ph\u00f9 T\u1eed (PHUTUV10)\nM\u00ecnh \u0111ang x\u00e2y d\u1ef1ng m\u1ed9t h\u1ec7 th\u1ed1ng AI c\u00e1 nh\u00e2n t\u00ean Ph\u00f9 T\u1eed \u2014 kh\u00f4ng ph\u1ea3i chatbot th\u00f4ng th\u01b0\u1eddng, m\u00e0 l\u00e0 m\u1ed9t runtime nh\u1eadn th\u1ee9c c\u00f3 b\u1ed9 nh\u1edb d\u00e0i h\u1ea1n, t\u1ef1 \u0111\u00e1nh gi\u00e1 ch\u1ea5t l\u01b0\u1ee3ng ph\u1ea3n h\u1ed3i, v\u00e0 c\u00f3 identity \u1ed5n \u0111\u1ecbnh qua c\u00e1c phi\u00ean.\nH\u1ec7 th\u1ed1ng hi\u1ec7n \u0111\u00e3 c\u00f3: pipeline nh\u1eadn th\u1ee9c ho\u00e0n ch\u1ec9nh, t\u00edch h\u1ee3p Groq API, memory promotion, metrics engine, v\u00e0 cycle engine t\u1ef1 \u0111\u1ed9ng. Vi\u1ebf...","published_at":"2026-04-04T04:38:28.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T11:22:02.000000Z","edited_at":"2026-04-04T04:38:00.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":0,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":25,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/c9504f99-3747-41d9-b90e-39ba5bdf720d.png","user":{"data":{"id":184534,"url":"https:\/\/viblo.asia\/u\/numito","avatar":"b3e7ea00-42c7-4271-b4aa-a332bd55f5d2.png","name":"B\u00f9i Th\u00e0nh Long","username":"numito","followers_count":0,"reputation":0,"posts_count":1,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"agenticai","name":"AgenticAi"}]},"commentators":{"data":[]}},{"id":92010,"title":"C\u00e1ch m\u1edf local MySQL database cho m\u00e1y kh\u00e1c truy c\u1eadp t\u1eeb xa","slug":"y0VGwGMYVPA","url":"https:\/\/viblo.asia\/p\/cach-mo-local-mysql-database-cho-may-khac-truy-cap-tu-xa-y0VGwGMYVPA","user_id":174815,"transliterated":"cach-mo-local-mysql-database-cho-may-khac-truy-cap-tu-xa","contents_short":"A. \u0110\u1eb6T V\u1ea4N \u0110\u1ec0\nB\u1ea1n l\u00e0 1 data analyst \u0111ang l\u00e0m vi\u1ec7c cho 1 c\u00f4ng ty nh\u1ecf. B\u1ea1n \u0111\u00e3 x\u00e2y d\u1ef1ng \u0111\u01b0\u1ee3c 1 database MySQL \u0111\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u, v\u00e0 m\u1ecdi th\u1ee9 ch\u1ea1y r\u1ea5t \u1ed5n tr\u00ean local.\n\nNh\u01b0ng \u0111\u1ebfn m\u1ed9t l\u00fac n\u00e0o \u0111\u00f3, b\u1ea1n c\u1ea7n truy c\u1eadp database t\u1eeb m\u00e1y kh\u00e1c, ho\u1eb7c team b\u1ea1n c\u0169ng c\u1ea7n truy v\u1ea5n d\u1eef li\u1ec7u t\u1eeb database \u0111\u00f3.\n\nB\u1ea1n ngh\u0129 \u0111\u1ebfn gi\u1ea3i ph\u00e1p thu\u00ea cloud database ho\u1eb7c online server, nh\u01b0ng:\n*  Chi ph\u00ed l\u1edbn (s\u1ebfp b\u1ea1n kh\u00f4ng th\u00edch \u0111i\u1ec1u n...","published_at":"2026-04-04T04:16:22.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:38:02.000000Z","edited_at":"2026-04-04T04:10:41.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":10,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":40,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/c1e5ac51-5027-415a-9aa0-a337ba33467e.png","user":{"data":{"id":174815,"url":"https:\/\/viblo.asia\/u\/Nam_Vi","avatar":"cc595620-f8f2-49b7-bc57-bd57e360ea0e.jpg","name":"Th\u00e0nh Nam Vi","username":"Nam_Vi","followers_count":1,"reputation":15,"posts_count":2,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"localhost","name":"localhost"},{"slug":"access-database","name":"access database"},{"slug":"best-tips","name":"best tips"}]},"commentators":{"data":[]}},{"id":92152,"title":"C\u00e1ch t\u00f4i gi\u1ea3m 67% Initial Bundle cho d\u1ef1 \u00e1n Vue + Vite","slug":"13VM9qX5VY7","url":"https:\/\/viblo.asia\/p\/cach-toi-giam-67-initial-bundle-cho-du-an-vue-vite-13VM9qX5VY7","user_id":156396,"transliterated":"cach-toi-giam-67-initial-bundle-cho-du-an-vue-vite","contents_short":"N\u1ebfu b\u1ea1n \u0111ang l\u00e0m vi\u1ec7c v\u1edbi m\u1ed9t d\u1ef1 \u00e1n Vue + Vite c\u00f3 nhi\u1ec1u module, c\u00f3 th\u1ec3 b\u1ea1n \u0111ang g\u1eb7p c\u00f9ng m\u1ed9t v\u1ea5n \u0111\u1ec1 m\u00e0 t\u00f4i t\u1eebng g\u1eb7p: trang web t\u1ea3i ch\u1eadm kh\u00f4ng ph\u1ea3i v\u00ec code nhi\u1ec1u, m\u00e0 v\u00ec code load sai th\u1eddi \u0111i\u1ec3m.\n\nB\u00e0i vi\u1ebft n\u00e0y ghi l\u1ea1i nh\u1eefng g\u00ec t\u00f4i \u0111\u00e3 l\u00e0m \u2014 kh\u00f4ng c\u00f3 g\u00ec fancy, ch\u1ec9 l\u00e0 thay \u0111\u1ed5i c\u00e1ch import \u2014 nh\u01b0ng k\u1ebft qu\u1ea3 th\u00ec kh\u00e1 \u1ea5n t\u01b0\u1ee3ng.\n\nChuy\u1ec7n g\u00ec \u0111ang x\u1ea3y ra?\n\nD\u1ef1 \u00e1n c\u1ee7a t\u00f4i l\u00e0 m\u1ed9t SPA kh\u00e1 l\u1edbn: h\u01a1n 10 module, h\u00e0ng ...","published_at":"2026-04-04T02:46:21.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T13:39:02.000000Z","edited_at":"2026-04-04T02:57:44.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":4,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":26,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/bad21ab5-2365-48ab-8b88-89242019df58.png","user":{"data":{"id":156396,"url":"https:\/\/viblo.asia\/u\/anhhd99","avatar":"ec0140a7-6a5f-4714-a581-17bf6d3247a2.jpg","name":"Duc Anh","username":"anhhd99","followers_count":0,"reputation":0,"posts_count":1,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"cai-thien-hieu-suat-tren-vuejs","name":"c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t tr\u00ean vuejs"},{"slug":"vite","name":"vite"},{"slug":"vuejs","name":"VueJS"},{"slug":"tang-toc-web","name":"t\u0103ng t\u1ed1c web"}]},"commentators":{"data":[]}},{"id":92177,"title":"[Open Source] #60 - WhoDB: Tr\u00ecnh qu\u1ea3n l\u00fd d\u1eef li\u1ec7u th\u1ebf h\u1ec7 m\u1edbi v\u1edbi ki\u1ebfn tr\u00fac Plugin-driven, GraphQL v\u00e0 AI-Assistant","slug":"k74a9K0r4eO","url":"https:\/\/viblo.asia\/p\/open-source-60-whodb-trinh-quan-ly-du-lieu-the-he-moi-voi-kien-truc-plugin-driven-graphql-va-ai-assistant-k74a9K0r4eO","user_id":183485,"transliterated":"open-source-60-whodb-trinh-quan-ly-du-lieu-the-he-moi-voi-kien-truc-plugin-driven-graphql-va-ai-assistant","contents_short":"Vi\u1ec7c qu\u1ea3n tr\u1ecb c\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00e1c nhau (SQL, NoSQL, Key-Value) th\u01b0\u1eddng \u0111\u00f2i h\u1ecfi ch\u00fang ta ph\u1ea3i c\u00e0i \u0111\u1eb7t h\u00e0ng t\u00e1 c\u00f4ng c\u1ee5 n\u1eb7ng n\u1ec1 nh\u01b0 DBeaver, pgAdmin hay MongoDB Compass. WhoDB xu\u1ea5t hi\u1ec7n nh\u01b0 m\u1ed9t l\u00e0n gi\u00f3 m\u1edbi \u2013 m\u1ed9t c\u00f4ng c\u1ee5 qu\u1ea3n tr\u1ecb d\u1eef li\u1ec7u \"t\u1ea5t c\u1ea3 trong m\u1ed9t\" (All-in-one), si\u00eau nh\u1eb9, hi\u1ec7n \u0111\u1ea1i v\u00e0 t\u00edch h\u1ee3p s\u1eb5n s\u1ee9c m\u1ea1nh c\u1ee7a AI \u0111\u1ec3 h\u1ed7 tr\u1ee3 truy v\u1ea5n.\n\nD\u01b0\u1edbi g\u00f3c \u0111\u1ed9 k\u1ef9 thu\u1eadt, WhoDB l\u00e0 m\u1ed9t minh ch\u1ee9ng xu\u1ea5t s\u1eafc c...","published_at":"2026-04-04T01:59:52.000000Z","scheduled_publish_at":null,"is_shared":false,"updated_at":"2026-04-05T05:53:01.000000Z","edited_at":"2026-04-04T01:59:09.000000Z","translation_source":null,"trend_at":null,"promoted_at":null,"reading_time":5,"organization_pinned_at":null,"profile_pin_position":null,"points":0,"views_count":20,"clips_count":0,"comments_count":0,"rated_value":null,"promoted":false,"trending":false,"is_video":false,"thumbnail_url":"https:\/\/images.viblo.asia\/d8a73c98-b67a-4683-ab1c-8a0cd549dc89.png","user":{"data":{"id":183485,"url":"https:\/\/viblo.asia\/u\/PTTGoat","avatar":"b180935b-95f1-43f2-8e59-ce89d4745975.jpg","name":"Trung t\u00edn Ph\u1ea1m","username":"PTTGoat","followers_count":6,"reputation":87,"posts_count":67,"banned_at":null,"level_partner":null,"following":false}},"tags":{"data":[{"slug":"graphql","name":"graphql"},{"slug":"build-react","name":"build react"},{"slug":"systemdesign","name":"systemdesign"}]},"commentators":{"data":[]}}],"meta":{"pagination":{"total":43392,"count":20,"per_page":20,"current_page":1,"total_pages":2170,"links":{"next":"http:\/\/viblo.asia\/posts\/newest?page=2"}}}}