How to Optimize Images for Web and Performance

Tin tôi đi, bạn không muốn Google ghét trang web của bạn đúng không? May mắn thay, bạn có thể giảm size ảnh của bạn để giúp cải thiện hiệu năng của website. Một vấn đề với việc định dạng chúng là khi sửa đổi thường làm giảm chất lượng của ảnh (điều này có thể làm người dùng ghét trang web của bạn). Nhưng đó không phải là thứ tồi tệ, miễn là bạn không làm nó nhìn quá xấu. Một vài tips sau giúp bạn cải thiện việc này.

Images make up on average 21% of a web page’s overall weight. 😮 Optimize them!

Read more

[Docker] General guidelines and recommendations

Tài liệu sau mô tả những gợi ý best practices và các các thức để xây dựng các images có hiệu quả.

Phần này lấy từ 1 phần của https://docs.docker.com/develop/develop-images/dockerfile_best-practices/. Còn 1 phần best practice cho Docker instructions, bạn tham khảo tại bài Docker instructions nhé.

Read more

[Docker] Docker volume

Như chúng ta đều biết, đặc điểm của Docker container là chúng chạy độc lập, và không ảnh hưởng đến nhau, thế nhưng vì một lí do nào đó, chúng ta lại muốn chia sẻ data giữa các container ví dụ, bạn có một 2,3 web server nginx và mong muốn khi chúng share chung các file config, hay html tĩnh. May mắn docker cung cấp volume để thực hiện việc đó

Read more

[Docker] Dockerfile instructions

Cùng tìm hiểu một vài instructions được sử dụng nhiều trong Dockerfile. Phần này tôi tổng hợp chủ yếu từ Dockerfile best pratice luôn, chỉ có 1 ít đá ké sang Dockerfile reference. Do đó nếu muốn xem chi tiết instruction đó cú pháp và hoạt động chi tiết, hãy vào Dockerfile reference để đọc.

Read more

PHPCS and PHP-CS-Fixer

Nếu bạn muốn gặp các vấn đề với code convention và loay hoay tìm một công cụ nào đó hiệu quả giúp bạn tự động kiểm tra, auto fix các lỗi đó, thì bạn hãy …… lên Google để tìm kiếm giải pháp. Bài viết sau cũng là một gợi ý =))

Read more

[Laravel] Event vs Notification

Có hai khái niệm mọi người hay lúng túng khi sử dụng, đó là sự kiện (Event) và thông báo (Notification). Hai khái niệm này khá tương đồng, nó được sử dụng để quảng bá (broadcast) một thông điệp gì đó từ server đến cho người dùng. Đôi khi trong ứng dụng của bạn, bạn có thể áp dụng cái này thay cho cái kia, và tất nhiên ứng dụng vẫn hoạt động bình thường. Tuy nhiên để cho đúng ngữ nghĩa, tôi xin so sánh qua về sự khác nhau của 2 khái niệm này và các áp dụng nó trong Laravel.

Read more

Deploy Laravel project with Kubernetes

Kubernetes hay K8s là một hệ thống để quản lý các “container“.

Nói một cách dễ hiểu, nếu bạn biết dùng Docker hoặc rkt [0] để chạy các container, thì K8s là giải pháp để quản lý chúng (quản lý bao gồm: tạo, sửa, xoá, xếp lịch(schedule), hay mở rộng (scale)…) trên nhiều máy. Như vậy, để có thể sử dụng được K8s, bạn phải biết dùng Docker.

Tham khảo thêm tạo Blog: https://www.familug.org/2017/03/kubernetes.html

Vì đây là một chủ đề quá rộng và chưa có kinh nghiệm áp dụng, tác giả xin dừng lại ở mức giới thiệu, cưỡi tên lửa xem hoa.

Github projects: https://github.com/minhnv2306/laravel_6_learn_deploy

Read more

[Circle CI] Auto deploying ứng dựng trên Google Cloud

  • Bài viết sẽ giải thích các tham số để có thể auto deploy 1 project lên Google Cloud. Các bước cụ thể hãy đọc theo Quickstart vì nó khá đơn giản
  • Để tự động deploy được thì tài liệu đang sử dụng deploy trên Google Kubernetes Engine. Các App Engine hay Compute Engine có được hay không thì tác giả không rõ
Read more

[Unit test] PHP Testing Interview 2

Bài viết tổng hợp 1 số note để testing với

  • Một vài packages bạn có thể dùng trong unit test.
  • Thao tác Database.
  • Private/Protected attributes, methods.
Read more

[JS] Event

Thái Bình, chiều 30 Tết, trời âm u, se se lạnh …

Sự kiện và actions hoặc occurrences (sự kiện) xảy ra trong hệ thống bạn đang lập trình, cái mà hệ thống nói cho bạn biết để bạn có thể response với nó trong 1 vài cách nếu bạn mong muốn. Ví dụ nếu bạn người dùng click 1 button trên trang web, bạn có thể muốn response 1 hành động để hiển thị thông tin gì đó.

Mỗi sự kiện khả dụng có 1 event handler, cái là 1 khối code (thường sẽ là JavaScript function do bạn tạo ra) sẽ chạy khi sự kiện kích hoạt. Chú ý rằng đôi khi nó được gọi là event listeners - chúng có thể hoán đổi cho nhau vì mục đích của chúng tôi, mặc dù nói đúng ra, chúng hoạt động cùng nhau.

Note: Web events are not part of the core JavaScript language — they are defined as part of the APIs built into the browser.

Read more

[JS] Making asynchronous programming easier with async and await

Thái Bình, chiều 30 Tết, trời âm u, se se lạnh …

Async/await mới được thêm gần đây, 1 phần của so-callled ECMAScript 2017 JavaScript edition. Chức năng này cải thiện cú pháp của Promises, làm cho code bất đồng bộ dễ dàng viết và đọc hơn. Nó làm cho async code nhìn giống old-school code đồng bộ do đó chúng rất đáng để học. Bài viết này chỉ cho bạn cái bạn cần biết.

Read more

[JS] General asynchronous programming concepts

Thái Bình, chiều 30 Tết, trời âm u, se se lạnh …

Trong phần này, chúng ta sẽ tìm hiểu 1 số khái niệm quan trọng liên quan đến lập trình bất đồng bộ và cách trình duyệt và JavaScript xử lý nó.

Read more

[Unit test] PHP Testing Interview

Một cuộc phỏng vấn với PHP Testing giúp mình tổng hợp các ý tưởng, cách thức về việc testing với developer!

Read more

Một vài điều về sudo command

Chắc hẳn khi dùng Ubuntu, chúng ta ai cũng đã từng gặp phải lỗi kinh điển “Permission denied”. Lúc đó, mặc định với 99% người đang sử dụng Ubuntu là sử dụng lệnh sudo để giải quyết vấn đề, mọi vấn đề được giải quyết 1 cách đơn giản. Trong bài viết tới mình giới thiệu về lệnh sudo này mà chúng ta vẫn sử dụng hằng ngày nhé :D.

Read more

[Circle CI] Auto deploying ứng dụng web trên Heroku

Bài viết lần trước có hướng dẫn qua cách build projects với CircleCI. Tuy nhiên CircleCI còn một ưu điểm nữa là tự động hóa việc deploy ứng dụng sau khi build và chạy tests xong. Phần này chúng ta cùng xem cấu hình để nó tự động deploying nhé. Cũng đơn giản thôi :D

Read more