Android Design Patterns: The Observer Pattern

Observer Pattern là gì ? Observer Pattern là một design pattern thiết lập sự phụ thuộc một-nhiều giữa các đối tượng. Bất cứ khi nào trạng thái của một trong các đối tượng ("subject" hoặc "observable") thay đổi, tất cả các đối tượng khác ("observers") phụ thuộc vào nó sẽ được thông báo. Lợi ích ...

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

Core Image - Photo Filter

Giới thiệu Core Image Framework: Core Image là kỹ thuật xử lý và phân tích hình ảnh được thiết kế để cung cấp xử lý gần với thời gian thực cho ảnh tĩnh và video trong iOS và OS X. Chúng ta sẽ sử dụng các loại filter sau: CIPhotoEffectChrome CISepiaTone CIPhotoEffectTransfer ...

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

Xây dựng website thương mại điện tử với Spree E-Commerce (Phần 1)

Website thương mại điện tử một khái niệm không quá xa lạ với cộng đồng lập trình viên nói chung. Cùng với sự gia tăng về nhu cầu mua sắm việc sở hữu một website bán hàng với style của riêng mình là khẩn thiết với mỗi nhà kinh doanh. Vậy, làm thế nào để tạo một website thương mại nhanh nhất? đầy đủ ...

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

Multiple Images Uploading using dropzone.js with laravel 5x

Tiếp tục SERIES: Tìm hiểu laravel & Xây dựng website bán hàng cùng Laravel 5x. Phần 1: Blade template, Xây dựng giao diện người dùng Phần 2: User Authentication, Xây dựng trang login Phần 3: Back-end : Category management Phần 4: Back-end : Product management, Upload multiple images Phần ...

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

So sánh code SQL trên store procedure và code trên tầng application

Store procedure là gì: Stored procedure được định nghĩa như một tập các khai báo sql được lưu trữ ngay trong cơ sở dữ liệu (database) và sau đó, được triệu gọi bởi một program, một trigger hay thậm chí là một stored procedure khác. **Các ưu điểm của việc sử dụng store procedure ** ...

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

PHP - 10 lỗi phổ biến mà các lập trình viên PHP thường mắc phải (Phần 2)

Index PHP - 10 lỗi phổ biến mà các lập trình viên PHP thường mắc phải Part 1 PHP - 10 lỗi phổ biến mà các lập trình viên PHP thường mắc phải Part 2 PHP - 10 lỗi phổ biến mà các lập trình viên PHP thường mắc phải Part 3 Sai lầm thứ 4: Thực hiện truy vấn trong ...

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

Login bằng Facebook, Google sử dụng Devise và Omniauth trên Rails

Đối với một website thương mại thì ngoài việc cho phép khách hàng của mình đăng nhập trên chính website thì còn cho phép khách hàng đăng nhập bằng tài khoản mạng xã hội như Facebook hoặc Google là điều cần thiết. Sau đây tôi xin hướng dẫn các bạn thiết lập chức năng login trên website bằng mạng xã ...

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

6 nguyên tắc định hướng thị giác (visual hierarchy) trong thiết kế UX

Đâu đó trong khi chúng ta thiết kế UX hoặc các ấn phẩm truyền thông, quảng cáo… chúng ta có nghe nói đến thuật ngữ “visual hierarchy” – có thể dịch ra là “định hướng thị giác”, có khi nào ta lờ mờ không hiểu nó là cái gì mà trông nguy hiểm thế? Tôi cũng đã từng như ...

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

Clean Code Series - Part 1: Introduction

Clean Code - A Handbook of Agile Software Craftsmanship - Robert C. Martin, một trong những cuốn sách gối đầu giường dành cho các lập trình viên. Luôn nằm trong top các quyển sách được recommend cho giới lập trình viên. http://blog.itviec.com/7-programming-book/ https://techmaster.vn/posts/33900/ ...

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

9 SAI LẦM lớn nhất mà sinh viên IT ngành Phần mềm hay mắc phải

Xin chào các bạn, Hôm nay mình xin đưa ra chủ đề Các sai lầm mà các bạn sinh viên IT hay mắc phải . Dưới đây là 9 ý kiến của mình về chủ đề này. Các bạn xem và cùng thảo luận với mình nha. Đây là điều đầu tiên mà rất nhiều, rất nhiều sinh viên IT mắc phải. Các bạn bị ngợp bởi rất nhiều ngôn ...

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

Tìm hiểu về JQuery part 4

Chào tất cả mọi người. Tháng 7 mình sẽ tiếp tục với các bài viết liên quan đến Jquery. Trong 3 phần trước thì Chúng ta đã tìm hiểu kha khá kiến thức về Jquery rồi . Hôm nay chúng ta sẽ tiếp tục đi tìm hiểu "Tìm kiếm trong Jquery". Đối với 1 list thì các item đều sẽ được đánh index theo thứ tự từ ...

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

Scope và closures trong Javascript

Trong JS, scope là những gì liên quan đến context code của bạn, Scope có thể được định nghĩa global hoặc là local Bạn sẽ hiểu được các biến hay function được phép truy cập ở phạm vi nào, liệu có thể thay đổi scope các context trong code của bạn. Việc viết code sẽ trở nên nhanh hơn, dễ maintain cũng ...

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

Tìm hiểu về RxSwift

Reactive programming với ý tưởng chính là ứng dụng của bạn có thể phản ứng với những thay đổi trong dữ liệu cơ bản mà không cần ta phải trực tiếp gọi đến nó. Nhờ đó ta có thể tập trung vào logic hiện tại hơn là bảo trì một trạng thái nhất định. Điều này có thể đạt được trong Objective-C hay ...

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

Unit test cho Nodejs RESTful API với Mocha và Chai

Chúng ta có thể tìm thấy nhiều ví dụ khởi tạo một RESTful API bằng Nodejs. Các bước thường thông thường sẽ là : Định nghĩa các packages sẽ dùng, khởi chạy một server với Express(Framework phổ biến và có nhiều hỗ trợ), định nghĩa các model, khai báo các router sử dụng ExpressRouter, và cuối cúng là ...

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

Network Reachability in Swift

Hầu như mọi ứng dụng di động đều cần kết nối với internet vào một thời điểm nào đó để lấy dữ liệu từ một host, service hoặc upload dữ liệu. Tuy nhiên, kết nốt Internet không phải lúc nào cũng có sẵn, và tính khả dụng của nó có thể thay đổi bất cứ lúc nào. Để biết được trạng thái của mạng hiện tại ...

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

Cùng tìm hiểu map, filter và reduce trong javascript

Khi làm việc trên các dự án Javascript, bạn không thể tránh khỏi những tình huống mà bạn phải làm một số thao tác trên data. Bạn luôn có thể sử dụng các vòng lặp for để có được kết quả mong muốn , nhưng for-loops có thể nhanh chóng gây ra một số rắc rối và có thể rắc rối đó sẽ lớn hơn nếu bạn ...

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

18+ kĩ thuật rút gọn code Javascript của bạn

1. Toán tử 3 ngôi (Ternary Operator) Sử dụng khi cần rút ngắn đoạn if..else thành 1 dòng. Thay vì const x = 100; let result; if (x < 1000) { result = "nhỏ hơn 1000"; } else { result = "lớn hơn hoặc bằng 1000"; } thì const x = 100; const result = (x < 1000) ? "nhỏ hơn 1000" : ...

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

Hướng dẫn tạo ứng dụng chat trong React kết hợp với Firebase - Phần 1

Như các bạn đã biết, hiện nay trên các mạng xã hội hay bất cứ đâu thì ứng dụng chat là điều không thể thiếu, bất cứ ngôn ngữ nào cũng đều có thể viết ra được một ứng dụng chat đơn giản, nhưng hôm nay mình xin hướng dẫn viết bằng React. Do mới học React đang còn non kém nên có gì sai sót mong mọi ...

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

Giới thiệu về Scope và Directive trong AngularJs

Bài viết này mình sẽ giới thiệu về Scope và directive trong Angular mà mình đã có ứng dụng và hiểu được trong thời gian qua. Scopes là gì? Scopes là một đối tượng đề cập đến mô hình ứng dụng. Đó là một bối cảnh thực hiện cho các biểu thức. Scopes được sắp xếp theo cấu trúc phân cấp bắt chước ...

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

Phần 7: Quản lý user client trong PrivacyIDEA (sqlrealm/dbrealm/ldap/Activedirectory)

Phần 7: Quản lý user client trong PrivacyIDEA (sqlrealm/dbrealm/ldap/Activedirectory) 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 ...

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