Tips

Mở ứng dụng Local trên Internet bằng tính năng VSCode - Local Port Forwarding

Trong quá trình phát triển ứng dụng, web/app chắc hẳn mỗi chúng ta đều đã từng gặp bài toán cần chia sẻ ứng dụng của mình cho một bên khác thông qua internet. Ví dụ:

  • Bạn muốn demo website đang code cho khách hàng truy cập từ xa
  • Bạn cần trỏ mobile app > backend API endpoint tới server trên máy cá nhân cho tiện debug
  • Bạn muốn test tính năng webhook từ một service bên thứ 3 tới endpoint trỏ tới server trên localhost
4 phút để đọc

Tổng hợp các mẫu tin nhắn xin nghỉ thông dụng gửi cho khách hàng Nhật

Trong khoảng thời gian làm việc với khác hàng là người Nhật Bản, việc đứng ở vị trí trung gian giữa đội phát triển và khách hàng nên mình phải sử dụng tiếng Nhật hằng ngày để truyền tải thông tin. Do có khác biệt về nền văn hoá và phong tục tập quán giữa hai bên nên ngày nghỉ phép, nghỉ lễ giữa phía đội Việt Nam và Nhật Bản cũng khác nhau.

4 phút để đọc

Nâng cấp Node.js lên phiên bản chỉ định hoặc mới nhất trên Unix/Linux

Nay có việc phải code React.js mà Node trong máy hơi cũ, không xài được Typescript do dính lỗi:\

The engine "node" is incompatible with this module. Expected version "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0".

Check phiên bản node hiện tại trong máy thì thấy đang chạy v14.3.0. Lên ngay phiên bản lastest stable version bằng cách chạy lần lượt 3 câu lệnh đơn giản sau:

  • Clear npm cache trên máy
1 phút để đọc

Điều khiển từ xa máy tính Ubuntu qua máy Mac

Hiện tại do nhu cầu công việc nên mình bắt buộc phải dùng 2 máy tính có 2 hệ điều hành khác nhau là Ubuntu 16.04 / Linux và MacOS High Sierra. Do máy Mac là máy làm việc chính nên khi phát sinh nhu cầu cần làm việc trên máy Ubuntu để tiết kiệm thời gian di chuyển chỗ ngồi 😏 mình thường xuyên sử dụng phần mềm remote giúp truy cập sang máy Ubuntu từ máy Mac một cách gọn lẹ 🤗

2 phút để đọc

Làm thế nào để tải video từ các trang web sử dụng giao thứ HLS với m3u8 file

Trước hết, HLS là viết tắt của chữ HTTP Live Streaming, là một giao thức streaming bitrate được phát triển bởi Apple. Không giống như các kỹ thuật thông thường, HLS sử dụng cách chia tệp tin video ra làm nhiều file nhỏ, các file này thường có đuôi .ts và được stream tuần tự về phía player của người dùng.

5 phút để đọc
Top ↑

Life

Mô tả trực quan về virus Corona ở Vũ Hán - Trung Quốc

(Cập nhật: 30/01/2020) Hôm nay là mùng 4 Tết, vậy là chỉ còn 2 ngày nữa là mọi người sẽ đều trở lại với công việc bộn bề hàng ngày, mặc dù là những ngày nghỉ nhưng thông tin về bệnh dịch viêm phổi lạ, do virus Corona được cho là xuất phát từ thành phố Vũ Hán (thành phố đông dân nhất ở miền Trung Trung Quốc) gây ra liên tục xuất hiện trên báo chí, TV, … Ban đầu cá nhân mình cũng không để ý nhiều, nhưng khi con số người bị nhiễm và số ca tử vong tăng theo cấp số nhân thì tâm lý lo lắng bắt đầu xuất hiện. 😥

10 phút để đọc

Làm việc để trưởng thành

Tính tới thời điểm hiện tại, mình cũng đi làm được gần 5 năm, chuyển qua 3 công ty. Sự nghiệp làm dev đó nói ngắn thì ngắn mà dài thì cũng chẳng dài, biết bao nhiêu chuyện, bao nhiêu bài học quý giá mà công việc đã dạy cho mình. Hôm nay, một ngày đẹp trời mình xin phép chia sẻ một suy nghĩ của cá nhân mình, đó là “công việc là nơi giúp bản thân tự trưởng thành”. Làm việc không chỉ để kiếm tiền mà còn giúp bản thân trưởng thành hơn. Trưởng thành ở đây không chỉ là học thêm kỹ năng mới mà còn là sự lớn lên về nhận thức và nhân cách (mặc dù kỹ năng vẫn là điều quan trọng).

9 phút để đọc

Cùi Bắp’s blog

Từ hôm nay mình sẽ viết lại những gì mình học được trong một ngày vào đây.

~1 phút để đọc
Top ↑

Go

Áp dụng design patterns với Go

Design Pattern (Mẫu thiết kế) giúp chúng ta giải quyết vấn đề một cách tối ưu nhất, có thể coi nó như là kim chỉ nam giúp các lập trình viên giải quyết vấn đề thay vì tự tìm kiếm giải pháp cho một vấn đề đã được chứng minh. Design patterns không phải là ngôn ngữ cụ thể nào cả, và có thể thực hiện được ở phần lớn các ngôn ngữ lập trình. Nhưng thường gặp nó nhất trong lập trình OOP, mà đại diện chính là Java (Một ngôn ngữ OOP quốc dân).

8 phút để đọc

[Go] Tránh start một program đang chạy với Flock

Hiện tại mình đang làm một dự án thực hiện xử lý bên dưới server (background processing). Hệ thống được viết toàn bộ bằng Go để tận dụng hết tốc độ cũng như sức mạnh của xử lý bất đồng bộ Goroutines. Cách đây gần một năm mình cũng từng code một dự án Go cho khách để xử lý cỡ ~100Gb dữ liệu, nhưng mà thời gian trôi qua “Nước đổ lá khoai” kiến thức trôi về nơi xa vắng hết.

13 phút để đọc
Top ↑

Cloud

Ngăn chặn truy cập tới ứng dụng web đặt sau AWS CloudFront theo Client IP

Trong bài viết này mình mô tả một sự cố gần đây xảy ra trong hệ thống mà mình gặp phải khiến RDS Database CPU/Memory luôn gặp phải tình trạng quá tải, ảnh hưởng tới trải nghiệm người dùng. Đồng thời chia sẻ về các giải pháp khả thi mà các thành viên trong đội dự án đã thử triển khai thành công. Thực tế, còn có nhiều giải pháp xịn hơn, nếu bạn đã từng gặp phải vấn đề này, hãy để lại comment chia sẻ nhé 🚀

8 phút để đọc

Một số kiến thức cơ bản mà Cloud Engineer cần nắm được

Trong bài viêt này mình muốn giới thiệu với các bạn các kiến thức cần thiết khi làm việc như một Cloud Engineer hay Solution Architect trong dự án mà mình cảm thấy là cần phải biết và hiểu. Đôi khi chỉ đa phần là kiến thức cơ bản, nhưng nếu không hiểu rõ thì sẽ rất dễ nhầm lẫn và đưa ra quyết định sai khi đứng trước những lựa chọn.

24 phút để đọc
Top ↑

Docker

Top ↑

Dart

[Programing] Bắt đầu lập trình với Dart 2

Cách đây 4 năm mình đã từng code thử Dart, và thực sự thấy nó chẳng có gì nổi trội, nên quyết định từ bỏ và ko học. Một thời gian bẵng đi, sau sự kiện Google I/O diễn ra vào tháng 6 năm 2018, khi Google chính thức release bản beta#3 của Flutter thì Dart đã quay trở lại và ăn hại gấp đôi :joy: Thời thế thay đổi, mà dù ngôn ngữ chỉ là công cụ nhưng không học thì không biết nên quyết định đầu tư thời gian học Dart với hi vọng một ngày không xa sẽ build được app cho Android/iOS trên Flutter. :rofl:

8 phút để đọc
Top ↑

Outsource

Top ↑

Javascript

[List.js] Thêm mới và xoá bỏ row trong table

Trong lúc dịch tài liệu dự án, mình bắt gặp 1 yêu cầu nhỏ. Cụ thể là ở màn hình create (tạo mới) cần tạo ra một danh sách input động, các row trong table có thể tăng giảm dựa vào button hoặc . Thực tế, đây là bài toán khá quen thuộc và dễ dàng thực hiện với các framework hỗ trợ data-binding như React, Angular hay VueJs. Tuy nhiên do đặc thù là maintaince một tool khá cũ của khách nên cũng không muốn add thêm mấy cái đao to búa lớn quá. :sunglasses:

2 phút để đọc
Top ↑

Linux

[Capacity Planning] Đo lường và khắc phục sự cố sử dụng tài nguyên

Có rất nhiều thành phần trong một hệ điều hành Linux có thể gây ảnh hưởng tới hiệu năng của hệ thống. Việc chủ động giám sát các (monitoring) components, sẽ là cách duy nhất để bảo vệ hệ thống của bạn. Bài viết này tôi sẽ đề cập tới các công cụ và tiện ích giúp bạn có thể giám sát hệ thống dễ dàng.

29 phút để đọc
Top ↑

Infrastructure

Top ↑

Laravel

Top ↑

Rails

Top ↑

Meetup

Vietnam Kubernetes Community - First meetup

Trong những năm gần đây meetup giữa những người làm công nghệ ngày càng trở nên phổ biến. Rất nhiều hoạt động meetup của cộng đồng các kỹ sư thuộc các mảng công nghệ được tổ chức.

8 phút để đọc
Top ↑

TIL

Top ↑

Migration

Top ↑

Data-Pipeline

Top ↑