Tự động deploy rails application lên môi trường product (P1)
Chuẩn bị Server ubuntu. Có nhiều nhà cung cấp, nhưng hiện tại mình chọn Amazon Web Service Máy tính có cài đầy đủ môi trường, tool để code rails Đăng ký EC2 Bạn phải có 1 thẻ tín dụng quốc tế, và còn khoảng 2$$để nó check, miễn phí 12 tháng nên yên tâm là nó không charge đâu. Sau khi hoàn ...
Customize UIAlertController
Trong iOS, UIAlertView được dùng rất nhiều để hiển thị một message dialog hoặc confirm dialog... Tuy nhiên, từ iOS 8.0 trở đi, UIAlertView đã bị deprecated và thay thế bởi UIAlertController . Giao diện mặc định của UIAlertController nhìn đơn giản nhưng khá đơn điệu, nhiều khi không đáp ứng ...
Form trong AngularJS
AngularJS bổ sung cho form các tính năng về filling và validation. Bạn có thể dùng ng-click directive để xử lý sự kiện click chuột trên nút và sử dụng các cờ hiệu dirty và invalid để làm cho nó có hiệu lực. Sử dụng novalidate với khai báo form để vô hiệu hóa tính năng valicate của form. Phần điều ...
Tản mạn về Testing
Bài viết này được viết từ những ngày nắng 40 độ C, dẫn nguồn từ blog của mình, với mong muốn chia sẻ một góc nhìn cá nhân. Đây chắc là lần đầu tiên mình viết blog, sẽ có nhiều thiếu sót, rất mong nhận được sự góp ý và phản biện của các bạn: Tôi đang làm việc cho một công ty có định hướng là một ...
Các pattern của bộ tứ (Gang of Four) trong Kotlin
Kotlin ngày càng trở nên phổ biến và thích hợp để thay thế Java. Vậy, các mẫu Design Pattern phổ biến được implement trong Kotlin như thế nào? Bài viết này, chúng ta sẽ cùng nhau implement một số mẫu Design Pattern nổi tiếng nhất trong Kotlin. Mục đích không đơn giản chỉ là implement các pattern. ...
Authenticate multi model with devise
1. Devise là gì? Devise là một gem cho phép các ứng dụng rails có thể thực hiện công việc xác thực thông tin cá nhân, nó được xây dựng dựa trên base của gem warden . Khác với warden rất thô sơ đòi hỏi coder cần có 1 nền tảng khá vững về rails để có thể bắt đầu và xây dụng lên 1 ứng dụng đầy đủ ...
Lý thuyết đồ thị thực tế trong Ruby
Có lẽ bạn đã từng nghe qua về cây nhị phân, ví dụ như hình sau: Vấn đề ở đây là cây nhị phân là một phiên bản đặc biệt của đồ thị, vì vậy chúng ta cần phải có kiến thức về cây nhị phân trước khi muốn biết về lý thuyết đồ thị. Hãy bắt đầu tìm hiểu về những lý thuyết cơ bản nhất về đồ thị, ...
Phần 8: HA cho PrivacyIDEA
Phần 8: HA cho PrivacyIDEA Phần 1 : Cài đặt PrivacyIDEA server Phần 2: Login ubuntu sử dụng OTP token key. Phần 3: Quản lý tập trung ssh-key bằng privacyIDEA. Phần 4: Basic Authen Apache sử dụng OTP token key. Phần 5: Sử dụng OTP PrivacyIDEA cho Freeradius. Phần 6: Policy cho ...
Giới thiệu về ReactJS - Phần II (Cài đặt và cấu hình)
Ở bài trước, tôi đã giới thiệu sơ qua về một số khái niệm cơ bản trong react như virtual DOM là gì, cách hoạt động như nào? Các khái niệm về JSX, component, prop, state...các bạn có thể xem lại tại link : https://viblo.asia/p/gioi-thieu-ve-reactjs-phan-i-cac-khai-niem-co-ban-V3m5WzjblO7 Tiếp theo ...
Laravel echo
Mở bài Xin chào các bạn! Chắc hẳn khi sử dụng laravel bạn đã biết đến Broadcasting của laravel (hay có người gọi là laravel-echo). Broadcasting của laravel trong bài viết này mình sẽ dùng laravel-echo ở phía client và mình sẽ giới thiệu 2 cách để tạo server socket: Dùng laravel-echo-server + ...
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 ...
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 ...
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 ...
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 ...
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ổ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ề ...
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ự 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ó. ...
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 ...
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 ...