SqlAlchemy - Insert/Update by bulk

1. Đặt vấn đề Mình có hàng trăm nghìn tới hàng triệu bản ghi cần insert/update vào MySql một cách nhanh nhất. Việc đầu tiên ta nghĩ tới đó chính là Insert/Update theo bulk. Tại sao lại theo bulk mà không insert từng bản ghi? Vì nếu ta có 1 triệu bản ghi, nếu insert từng bản ghi sẽ cần 1 triệu lần ...

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

Từ PHP nhảy sang code Ruby thì có gì vui?!

Chào các bạn, đến hẹn lại lên hôm nay mình sẽ chia sẻ về một chủ đề mình cho rằng khá là thú vị dựa trên những trải nghiệm thực tế của bản thân khi chuyển sang học một ngôn ngữ mới. Nói một chút về cơ duyên này: Mình - 1 thằng coder PHP chính hiệu bỗng một ngày đẹp trời nhận được một lời đề ...

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

Bài 14: Event handling với VueJS

Chào mừng các bạn quay trở lại với series học VueJS với Laravel của mình, ở bài trước mình đã hướng dẫn các bạn về cách binding form input, bài này chúng ta sẽ cùng tìm hiểu cách xử lý các sự kiện khi người dùng tương tác như click hay bấm các phím trong VueJS nhé. Để bắt các sự kiện này ta dùng ...

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

CRUD với React và Ruby on Rails - Phần 1

Nội dung React là gì? Thiết lập một Rails API cơ bản Xây dựng controller Tích hợp react vào ứng dụng rails Xây dựng component đầu tiên Xây dựng trang hiển thị tất cả các dữ liệu Thêm mới dữ liệu Xóa dữ liệu Sửa dữ liệu React là gì? Reactjs là một thư viện JavaScript tạo ra ...

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

Sử dụng Cookie Authentication trong ASP.NET Core

Nếu các bạn đã từng làm việc với ASP.NET Core Identity thì có thể thấy nó là một bộ đầy đủ các tính năng về authentication cung cấp và bảo trì công việc login. Tuy nhiên, chúng ta có thể muốn tùy chỉnh logic authentication của riêng chúng ta với authentication dựa trên cookie. Bài viết này sẽ giới ...

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

BindingAdapter và InverseBindingAdapter trong Android

Nếu ai đã dùng DataBinding của Android thì không thể bỏ qua các tính năng của BindingAdapter và InverseBindingAdapter đem lại. Bài viết này mình sẽ tập trung 2 chức năng này. BindingAdapter và InverseBindingAdapter là cách thức để custom thuộc tính mới cho View , đại diện cho tính ...

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

Ag - The Silver Searcher

Tìm kiếm đoạn code nào đó là điều mà hầu hết chúng ta thực hiện hàng ngày. Cho dù đó là để refactor hoặc chỉ đơn giản là tìm nơi một biến, lớp, hoặc phương thức đã được thực hiện. Các công cụ tìm kiếm không tốt có thể khiến công việc của chúng ta khó khăn hơn mức cần thiết. Trong bài viết này, ...

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

Giới thiệu CoffeeScript 2 - Phần II

Ở bài trước mình đã giới thiệu các bạn những khái niệm cơ bản cuả CoffeeScript. Trong bài viết này mình sẽ đi sâu vào nhiều khía cạnh của việc sử dụng CoffeeScript. Đầu tiên các bạn nên chú ý: CoffeeScript sử dụng khoảng trắng để phân biệt giưã các blocks. Vì thế bạn không cần sử dụng ; để kết ...

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

ĐÁNH GIÁ HỆ THỐNG ĐỂ TĂNG HIỆU QUẢ CỦA KIỂM THỬ HIỆU SUẤT (PHẦN I)

Tìm hiểu các kỹ thuật để nắm bắt các chức năng của hệ thống một cách hiệu quả và mang lại kết quả tối ưu. Tìm hiểu các kỹ thuật để nắm bắt hoạt động của người dùng mong muốn một cách hiệu quả và mang lại kết quả tối ưu. Tìm hiểu các kỹ thuật để nắm bắt kiến trúc logic và vật lý của hệ thống ...

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

Ruby Metaprograming 2

Bài liên quan: Ruby Metaprograming 1 Bài viết được lược lại từ post này của tác giả Nikola Todorovic. Hẵn bạn thường nghe rằng metaprograming là 1 cái gì đó cao siêu chỉ dành cho các Ruby ninja , chứ ko phải dành cho người dùng bình thường. Nhưng thật sự metaprograming ko đáng sợ như thế. Post ...

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

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