Architecture Patterns: MVC, MVP và MVVM

Bài viết này giới thiệu sơ qua về một số architecture patterns quen thuộc: MVC (Model - View - Controller), MVP (Model - View - Presenter) và MVVM (Model - View - ViewModel). Tại sao lại cần những Architecture Patterns này? Tại sao chúng lại được nhắc tới trong bài viết này? Và tại sao chúng ta ...

Tác giả: Trịnh Tiến Mạnh viết 15:35 ngày 12/08/2018

Machine learning : K-means Clustering

Trong bài trước, chúng ta học thuật toán Hồi qui tuyến tính Linear Regression. Đây là thuật toán đơn giản nhất trong Supervised learning. Bài viết này chúng ta chuyển sang học về một thuật toán cơ bản trong Unsupervised learning - thuật toán K-means clustering (phân nhóm K-means). Đây là là một ...

Tác giả: Bùi Văn Nam viết 15:35 ngày 12/08/2018

Excess XSS

Part One: Overview What is XSS? Cross-site scripting (XSS) là cuộc tấn công mã độc cho phép kẻ tấn công thực hiện mã độc JavaScript trong trình duyệt của người dùng khác. Kẻ tấn công không trực tiếp nhắm vào nạn nhân. Thay vào đó sẽ khai thác lỗ hổng bảo mật trong một trang web mà nạn nhân truy ...

Tác giả: Trịnh Tiến Mạnh viết 15:35 ngày 12/08/2018

3 cách để sử dụng React với Ruby on Rails 5

Có một vài cách khác nhau để sử dụng React trong các ứng dụng Ruby on Rails. Trong bài đăng này, tôi sẽ giới thiệu 3 cách phổ biến nhất. Gem react-rails là cách đơn giản và nhanh nhất để bắt đầu sử dụng React trong ứng dụng Rails của bạn. Nó sử dụng Rails asset mặc định và tự động chuyển JSX ...

Tác giả: Bùi Văn Nam viết 15:35 ngày 12/08/2018

Caddy Server - Web server đơn giản và hiện đại (vs. nginx)

Chắc hẳn các bạn không còn lạ lẫm gì với nginx. Một Proxy mạnh mẽ đã được phát triển và hình thành lên webserver. Tuy nhiên hôm nay mình sẽ giới thiệu 1 webserver khác có tên là Caddy. Nó cực kỳ đơn giản, và theo đánh giá của mình và các tài liệu tìm được thì có thể trong tương lai gần nó sẽ là ...

Tác giả: Hoàng Hải Đăng viết 15:35 ngày 12/08/2018

Tổng quan về Apache Spark cho hệ thống Big Data

Apache Spark in-memory clusters đang là sự chú ý của nhiều doanh nghiệp trong việc ứng dụng công nghệ vào phân tích và xử lý dữ liệu nhanh chóng. Bài viết này tôi sẽ trình bày một cách tổng quan nhất về Apache Spark, một trong những giải pháp đòi hỏi phải có khi xử lý Big data. Tổng quan về ...

Tác giả: Hoàng Hải Đăng viết 15:35 ngày 12/08/2018

RFID data security

RFID (radio frequency identification) là một phương pháp định danh đối tượng bằng sóng radio. RFID được nghiên cứu và phát triển từ những năm 20 của thế kỷ trước tại Mỹ nhưng chủ yếu về mặt lý thuyết . Năm 1946, nhà vật lý người Nga Leon Theremin là người đầu tiên chế tạo thiết bị RFID (thu phát ...

Tác giả: Tạ Quốc Bảo viết 15:35 ngày 12/08/2018

Tự tạo 1 mini Dependencies Injection Container với PHP

Có lẽ rất nhiều người trong chúng ta đã rất quen thuộc với khái niệm Dependencies Injection, cũng như hiệu quả của nó mang lại. Vậy DI hoạt động như thế nào trong PHP và các framework của PHP, để hiểu rõ cách tốt nhất là xây dựng 1 mini DI container dựa theo cách các framework triển khai nó. ...

Tác giả: Tạ Quốc Bảo viết 15:35 ngày 12/08/2018

Sử dụng Fragment trong Android

Hello everyone, mình sẽ chia sẻ với các bạn cách sử dụng fragment trong android. Nó là một thành phần quan trọng. Nó khá giống activity . Hôm nay mình đi vào phần 1 static fragment , phần 2 dynamics fragment mình sẽ chia sẻ vào bài viết lần sau. Giờ chúng ta cùng tìm hiểu nhé. 1. Một số khái ...

Tác giả: Bùi Văn Nam viết 15:35 ngày 12/08/2018

Google Maps KML Importing Utility

Giới thiệu KML là một phần mở rộng của định dạng dữ liệu XML và đại diện cho dữ liệu địa lý trên một bản đồ. Sử dụng tiện ích này, bạn có thể chuyển đổi các đối tượng KML thành các hình dạng địa lý và biến chúng thành một lớp trên bản đồ. Để thêm và xóa dữ liệu KML của bạn đến và đi từ bản ...

Tác giả: Trịnh Tiến Mạnh viết 15:35 ngày 12/08/2018

Phỏng vấn Ruby on Rails Developer

Lời mở đầu Xin chào các bác. Bài viết hôm nay được chia sẻ từ https://rubygarage.org/ Nó có thể hữu ích khi bạn cần phỏng vấn RoR developers vào công ty, hoặc giúp cho những ứng viên tham khảo, chuẩn bị trước. Đối với bản thân mình, bài viết này cũng giống như một bài kiểm tra, giúp rà ...

Tác giả: Hoàng Hải Đăng viết 15:35 ngày 12/08/2018

Phần 1/2: Hệ thống PrivacyIDEA giải pháp xác thực 2 bước, chứng thực - quản lý tập trung.

PrivacyIDEA giải pháp xác thực 2 bước, chứng thực-quản lý tập trung. Giới thiệu: - Bạn đã bao giờ thấy Google/Microsoft/Skype gửi cho bạn 1 đoạn mã qua SMS/Email để đăng nhập chưa? . - Bạn đã dùng thiết bị tạo key OTP của 1 số ngân hàng để thanh toán giao dịch chưa? (vd: techcombank) - Bạn đã ...

Tác giả: Trịnh Tiến Mạnh viết 15:35 ngày 12/08/2018

Cronjob đơn giản trong Laravel 5.4

1. Vấn đề Hiện nay tại công ty, khi làm việc mình thường gặp phải các task như: Đặt lịch mỗi ngày hệ thống đều thống kê số lượng đơn hàng nhập, xuất rồi gửi lại email cho các sếp vào 7h sáng hàng ngày Hệ thống tự động thống kê hoạt động kiểm kho rồi gửi email cho quản lý và nhân viên kho ...

Tác giả: Tạ Quốc Bảo viết 15:35 ngày 12/08/2018

Tản mạn Autoboxing trong java

Với người lập trình viên java thì hẳn không lạ lẫm gì với kỹ thuật autoboxing, các bạn có thể đã gặp kỹ thuật này rất nhiều nhưng để nắm rõ và phân biệt các dạng autoboxing trong java thì nhiều khi các bạn không để ý tới, nay mình xin chia sẻ với các bạn một cách chi tiết về các dạng autoboxing và ...

Tác giả: Bùi Văn Nam viết 15:35 ngày 12/08/2018

Các cách để viết Testcases hiệu quả

Testcases rất quan trọng đối với bất kì dự án nào vì đây là bước đầu tiên trong bất cứ chu trình kiểm thử nào, và nếu có sai sót nào trong bước này nó sẽ ảnh hưởng đến suy luận của bạn trong quá trình kiểm thử. Vậy nên biết làm thế nào để tạo được những testcase tốt là điều vô cùng quan trọng với ...

Tác giả: Trịnh Tiến Mạnh viết 15:35 ngày 12/08/2018

How to build "Compost Helper Alexa Skill"

Using Software apps and online services: Step by step build "Alexa skill" I wanted to build a very simple skill that tells a user if an item can be added to compost. My hope is that a skill like this encourages others to do more composting (and reduce what is added to landfills). The skill is ...

Tác giả: Tạ Quốc Bảo viết 15:35 ngày 12/08/2018

Tổ chức dữ liệu với Swift - Object Storage

Swift trong bài viết nhắc tới, không phải là ngôn ngữ lập trình cho iOS, cũng không phải tên hiệp hội tổ chức liên ngân hàng quốc tế. Đây là tên 1 project của OpenStack (dự án mã nguồn mở để triển khai Cloud Computing ), theo đó OpenStack sẽ gồm rất nhiều project, tùy thuộc vào mục đích xây dựng hệ ...

Tác giả: Tạ Quốc Bảo viết 15:35 ngày 12/08/2018

Lý thuyết xác suất (P2)

1. Góc nhìn trực quan Hai sự kiện độc lập với nhau nếu biết trước một sự kiện sẽ xảy ra không ảnh hưởng tới niềm tin của chúng ta về khả năng sẽ xảy ra sự kiện kia. P(B|A) = P(B) Ví dụ: Hai sự kiện A và B không giao nhau thoạt nhìn có vẻ độc lập. Nhưng nếu biết một sự kiện sẽ xảy ra thì có thể ...

Tác giả: Bùi Văn Nam viết 15:35 ngày 12/08/2018

Git và những thuật ngữ cơ bản

Repository Nơi lưu trữ program và file ở trong hệ thống quản lý Version Trên Git chia repository thành 2 loại là Local repository và Remote repository Local repository Repository đang thao tác hiện tại, trong trường hợp thao tác chủ yếu trên máy tính cá nhân hoặc server phát triển gọi ...

Tác giả: Trịnh Tiến Mạnh viết 15:35 ngày 12/08/2018

Yarn - Một cải tiến đáng kể so với NPM

Trong những năm gần đây, npm được sử dụng rộng rãi và phổ biến như một công cụ quản lý các package. Với một câu lệnh sử dụng npm, bạn đã có thể cài đặt và sử dụng một package (đã được đăng ký trên npm) mà ko cần phải vào trang chủ của package đó download, giải nén, và link chúng đến trang web ...

Tác giả: Tạ Quốc Bảo viết 15:35 ngày 12/08/2018