Bạn đã thực sự hiểu mutable và immutable?

Bạn đã thực sự hiểu mutable và immutable?

Mở đầu Bạn đã từng đọc hay nghe đâu đó nói rằng: mutable là giá trị có thể thay đổi được còn immutable là giá trị không thể thay đổi được. Nhưng bạn đã thực sự hiểu đúng nó chưa? >> test = 3 # => 3 >> test # => 3 >> test = 2 * test # => 6 >> test # => 6 Bạn nghĩ đoạn code trên(trong ruby) chứng tỏ biến test có phải là ...

Giải thích cụ thể về this trong javascript

Giải thích cụ thể về this trong javascript

1. Mở đầu Trước khi học hiểu về this bạn nên học trước về scope và closure Trong js, từ khóa this là thứ rất hay nhưng cũng là thứ gây ra bao rắc rối cho nhiều người, nhất là đối với những người đi từ ngôn ngữ lập trình khác sang js. Lý do lớn nhất khiến this gây hiểu nhầm cho bao nhiêu người chính là v&igr...

Download private file trên S3 về browser trong rails

Download private file trên S3 về browser trong rails

Nếu file trên S3 được public thì chỉ cần trả về url của file cho user, khi user click vào url đó trên browser thì họ sẽ download được. Còn nếu file trên S3 là private và ta muốn download file thông qua API thì làm như sau: Download S3 file rồi lưu về file tạm(temporary file) trên server. Gửi nội dung file tạm về cho người dùng Xóa file tạm trên server(có thể xóa hoặc không nhưng nên xóa đi) Khi không cần xóa file tạm thì bạn chỉ cần làm như sau (ở đây mình d&ug...

Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Khi sử dụng transaction trong RoR, có lúc ta không cần phải gọi câu lệnh ActiveRecord::Rollback , cũng có lúc ta phải gọi nó. Xét ví dụ: self.transaction do first_operation begin second_operation call_other_function rescue Exception => e #deal with the error raise ActiveRecord::Rollback #force a rollback end end Nếu bỏ raise ActiveRecord::Rollback : Mọi thay đổi tới DB xảy ra ở second_operation và call_other_function đều được r...

Ghi chú về EC2 và ECS trong AWS

Ghi chú về EC2 và ECS trong AWS

EC2 launch configuration: là thiết lập để khởi tạo EC2, trong đó có phần user data để khởi tạo hoặc kết nối tới ECS Load balancer: Để cân bằng tải tới các target (= EC2 instance) ECS ECS cluster: là 1 cụm các service, có thể bao gồm một hoặc nhiều EC2 instantce ECS service: Là khái niệm để nhóm các service task lại với nhau. Ví dụ một service clone dữ liệu có 3 container...

eval trong javascript

eval trong javascript

Ta nên tránh dùng eval vì một số lý do sau: Dễ bị tấn công injection. Không debug được code trong eval. Hiệu năng khi chạy code trong eval. Có 2 cách gọi eval là gọi trực tiếp(Direct call) và gọi gián tiếp(Indirect call) Direct call là gọi trực tiếp bằng cách gọi eval(...your code...)  Indirect call là gọi gián tiếp thông qua một biến trung gian(xem VD phía dưới) Xét ví dụ sau: ...

Thơ Hồ Xuân Hương

Thơ Hồ Xuân Hương

Hồ Xuân Hương khi đi qua chơi chùa Trấn Quốc, ngó lên cái chuông chùa và mời các thầy làm thơ về vẫn Uông, các thầy nhìn nhau không biết nói gì, cô liền tự mình ngâm: Một đàn thằng ngọng đứng xem chuông. Chúng bảo nhau rằng "ấy ái uông".   Cảnh chồng chung: Kẻ đắp chăn bông, kẻ lạnh lùng Chém cha cái kiếp lấy chồng chung! Năm thì mười hoạ chăng hay c...

Tự động deploy khi push git sử dụng circleCI và deploy server

Tự động deploy khi push git sử dụng circleCI và deploy server

Khi quá trình deploy trở lên phức tạp và mất thời gian để làm nhiều thứ, lúc đó các bạn nên nghĩ đến giải pháp tự động deploy. Bằng cách này, bạn không phải quan tâm tới việc deploy mỗi lần nữa mà mọi thay đổi sẽ được tự động deploy lên server cho bạn mỗi khi bạn thay đổi code của mình. Ví dụ khi hệ thống của bạn sử dụng các dịch vụ của AWS như EC2, ECS, Cloudfront, S3,... thì sẽ rất mất nhiều thời gian để bạn deploy thủ công bằng tay. Tự động deploy giúp bạn không còn phải quan tâm g&i...

Extract zipped file in ipage.com

Extract zipped file in ipage.com

For who can not extract zipped file in ipage.com. I build my app by using laravel framework, zip my project, upload to ipage.com via FileZilla and extract it through archive gateway of the page but can not be done. Solution: using .tar file Archive gateway of ipage can extract zip, Gzip and tar file so I compressed my folder to myapp.tar - tar file from terminal: tar -zcvf myapp.tar myapp/ - upload myapp.tar to ipage and extract normally....

Dùng laravel với docker-compose

Dùng laravel với docker-compose

Bài này mình xin trình bày không cụ thể về cách sử dụng laravel project với docker dùng docker-compose. 1. Yêu cầu. - Bạn phải biết dùng cơ bản về docker, docker-compose. - Bạn phải cài đặt docker trên máy trước. - Muốn cho một project web PHP như laravel chạy được thì bạn phải có các thứ sau: PHP, hệ cơ sở dữ liệu như mysql, máy chủ web như apache hoặc nginx (bài này dùng nginx), đối với laravel thì phải cần thêm composer(là tool để quản lý các thư viện php). Nếu bạn từng cà...