Google Docs Very Very Lite With Action Cable in Rails 5 and AngularJS

Như tiêu đề, bài viết này mình sẽ hướng dẫn các bạn tạo ra một phiên bản google document cự kì thu nhỏ. Nó cho phép nhiều người cùng làm việc realtime trên textarea. Bắt đầu thôi nào ~.~ Các bạn đã biết kể từ khi Rails 5 được phát hành, với sự hổ trợ đắc lực của Action Cable thì việc tạo các app ...

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

Blockchain : Sự khác nhau giữa PoW và PoS

Khi nói về thế giới tiền điện tử , chắc hẳn bạn đã nghe nói về Mining, đặc biệt là 2 giao thức Proof of Work và Proof of Stake. Trong bài viết này , mình sẽ phân tích 2 khái niệm cơ bản PoW (Proof-of-Work) và PoS (Proof-of-Stake) để hiểu sự khác biệt, ưu và nhược điểm của cả 2 giao thức được sử ...

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

react-native-secure-storage

Hôm nay tôi xin phép giới thiệu với các bạn một package thường được sử dụng để lưu trữ an toàn. Nó được xây dựng dựa trên react-native-keychain và tương thích với redux-persist-sensitive-storage. Bước đầu tiên bạn cần làm là chạy lệnh sau: $ npm install react-native-secure-storage --save ...

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

So sánh các class level accessor trong Ruby on Rails

attr_accessor là sự kết hơp giữa attr_reader và attr_writer, nó là một marco rất hữu ích cung cấp getter và setter cho một instance variable. Nhưng đôi khi bạn muốn đạt được hiệu quả tương tự với các class variable. Có ít nhất ba cách để chúng ta có thể giải quyết vấn đề này là: attr_accessor, ...

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

Amazon Web Services for Essential - S3 and EC2

Chào các bạn, như bài lần trước mình có giới thiệu về 2 thành phần ban đầu trong AWS đó là IAM và VPC. Và trong bài viết này mình xin giới thiệu thêm cho các bạn về các thành phần sâu bên trong 1 VPC và là một trong những thành phần quan trọng nhất trong AWS đó là S3 và EC2. Nhắc lại 1 chút về ...

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

Rails AntiPattern: Duplicate Code Duplication (p1)

Nguyên Lý DRY: Don't Repeat Yourself Don't Repeat Yourself hay DRY là một nguyên lý cơ bản nhất của lập trình được đưa ra nhằm mục đích hạn chế tối thiểu việc viết các đoạn code lặp đi lặp lại nhiều lần chỉ để thực hiện các công việc giống nhau trong ứng dụng. Nguyên lý này được nhắc ...

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

Truy vấn Web Service không đồng bộ (Async Request) trong Android

Xin chào các bạn , hôm nay tôi xin hướng dẫn các bạn cách thực hiện truy vấn bất đồng bộ tới Web Service trong Android Trước tiên , đặt ra 1 câu hỏi : "Tại sao chúng ta lại cần thực hiện truy vấn bất đồng bộ đến Web Service ?" Câu trả lời đơn giản là đưa ra 1 ví dụ thực tế , giả sử các bạn cần ...

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

Vui đùa với Active Storage trong Rails 5

Có thể các bạn chưa biết, Paperclip hiện nay đã ngừng cập nhật, và những nhà phát triển của sản phẩm này cũng đang khuyến khích các dev chuyển hướng qua sử dụng ActiveStorage, một gem built-in vừa được merge vào Rails 5 cuối năm vừa qua. Mình viết bài này hy vọng rằng sẽ giúp được những bạn đã quá ...

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

Logic Controllers trong Swift

Có Một thách thức lớn mà hầu hết các Swift developers phải đối mặt theo thời gian, là làm thế nào để đối phó với Massive View Controllers . Cho dù chúng ta đang nói về các subclasses của UIViewController trên iOS và tvOS hoặc NSViewController trên Mac, loại class này có xu hướng phát triển rất ...

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

JavaScript Injection Tutorial: Kiểm thử và ngăn chặn các cuộc tấn công bằng JS injection tới website

Javascript là một trong những công nghệ phổ biến nhất và ngôn ngữ này được sử dụng rộng rãi cho các trang web (phía người dùng ) cũng như phía máy chủ (với Nodejs) và ứng dụng web. Javascript có thể được sử dụng để thực hiện các chức năng trên các trình duyệt khác nhau. Tuy nhiên, công nghệ này ...

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

Phân biệt Router, Switch, Hub (Mạng máy tính)

Dạo qua một vòng trên Google và qua những câu hỏi mình hay bị mọi người xung quanh "vấn đáp nhanh", ngày hôm nay mình muốn viết blog này để có thể phần nào làm rõ một chút cho các bạn về 3 thiết bị này. Do hiện nay, với công nghệ sản xuất hiện đại và nhu cầu cần mọi thứ đơn giản, đa nhiệm, các bạn ...

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

Hướng dẫn Kiểm thử Đám mây – Hướng dẫn dành cho Người mới bắt đầu

Điện toán đám mây là một nền tảng dựa trên Internet để thực hiện nhiều loại dịch vụ điện toán khác nhau như phần cứng, phần mềm và các dịch vụ khác liên quan đến máy tính từ xa. Có ba mô hình Điện toán đám mây: SaaS - Dịch vụ phần mềm PaaS - Dịch vụ cung cấp nền tảng IaaS - ...

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

Học enumerable trong Ruby

Với bất kì ngôn ngữ lập trình nào cũng như dự án nào thì xử lý dữ liệu luôn là một trong những vấn đề hiện hữu. Dạo gần đây dự án của mình gặp phải trường hợp xử lý khối lượng dữ liệu rất lớn. Yêu cầu xử lý dữ liệu phức tạp. Phải xử lý trên cả client và server. Từ đó mình nhận ra một điều, xử lý ...

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

Thống kê với Aggregation Query trong Elasticsearch (Phần 2 - Metrics aggregation query)

1. Metrics aggregations Những thống kê thuộc dạng này tính toán dựa vào giá trị lấy được từ những documents trả về từ phần query trong phần body của request search, có 2 loại giá trị đầu vào đó là: Giá trị từ những trường (field) trong document Giá trị từ những trường được sinh ra bằng việc ...

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

Một số thư viện và tips css "hay ho"

Clip-path maker Khi bạn cắt giao diện một trang web hoặc một ứng dụng mà bạn thích cũng có khi bản rảnh quá ngồi nghịch tý css cho tăng level lên một tầm cao mới chắc chắn có khi bạn đã gặp trường hợp cắt một hình ảnh theo một hình dạng nào đó. Giải pháp như sau: A: - ê bồ tèo, tao đang ...

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

Laravel: Tìm hiểu về Query Builder (Phần 1)

Query builder cung cấp một giao thức thuận tiện, linh hoạt cho việc tạo và thực thi các truy vấn dữ liệu. Nó có thể sử dụng để thực hiện hầu hết các tính toán dữ liệu trong ứng dụng của bạn, và hoạt động trên tất các các hệ cơ sở dữ liệu được hỗ trợ. Laravel query builder sử dụng PDO parameter ...

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

Làm việc background tasks với WorkManager

Tại Google I/O 2018 Google cho ra mắt một tính năng thực sự thú vị cho phép các nhà phát triển thực hiện các tác vụ background mà nếu theo truyền thống thì cần kiến thức chi tiết về các API level khác nhau và các thư viện tác vụ nền có sẵn cho các API level đó. WorkManager cung cấp chức năng mà ...

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

Giới thiệu về Android Things 1.0

Ngày 7/5/2018, tại sự kiện Google I / O 2018 Google chính thức tung ra Android Things 1.0, nền tảng hoạt động trên các thiết bị IoT như loa thông minh, camera an ninh có kết nối Internet.. Mặc dù trước đó Android Things đã được Google giới thiệu tại Google I/O 2015 . Trải qua hơn 3 năm phát ...

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

Hiển thị các thông báo thân thiện hơn với toastr

Có thể bạn thấy việc hiển thị thông báo với bosstrap là khá nhàm chán, bạn cần một thư việc khác hiển thị thông báo một cách sinh động hơn. Toastr là một lựa chọn rất tốt bạn có thể thử và trải nghiệm. toastr là một thư viện Javascript dùng cho việc hiển thị các thông báo một cách độc lập. Để sự ...

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

Xây dựng ứng dụng chat Laravel

Bài viết này sẽ giúp các bạn xây dựng một ứng dụng chat Laravel với Pusher , với framework Javascript là Vue.js Trước khi bắt đầu thực hiện, hãy xem qua ứng dụng này hoạt động như thế nào? Chúng ta bắt đầu với việc tạo một project laravel với tên laravel-chat. composer ...

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