
[Memento Pattern] Sử dụng NSKeyedArchiver
Một trong những cách triển khai của Memento pattern là Archiving . Nó chuyển đổi object thành 1 stream có thể save và restore lại nhưng không phơi bày các private properties ra các external class . Ta có nhiều lựa chọn để lưu mảng các objects. NSUserDefaults : lưu app ...

Tăng tốc độ tối đa cho ứng dụng viết bằng Angular JS
Gắn bó với AngularJS cũng khoảng 2 năm rồi. Thật sự nhìn lại nhưng app mình làm với nó vẫn chưa gọi là "good" về chất lượng (performance). Có thể do: code sh*t, hoặc do cách tổ chức (structure) chưa tốt, hoặc cũng có thể do dữ liệu quá lớn,... Đến lúc phải nhìn lại xem nó đang bị ảnh hưởng do yếu ...

Sử dụng MessagePack đóng gói dữ liệu gửi qua GCDAsyncSocket như thế nào?
Có rất nhiều ứng dụng đòi hỏi bạn cần phải gửi nhận dữ liệu giữa client và server liên tục. Khi đó bạn cần phải sử dụng socket để làm điều đó. Vậy socket là gì, sử dụng nó như thế nào, làm sao để đóng gói dữ liệu gửi đi và khi nhận được dữ liệu dạng byte thì làm sao để convert nó sang kiểu dữ liệu ...

Tip on Chrome''s console for web developer
Bài viết này sẽ tổng hợp lại một số thủ thuật console trên trình duyệt Chrome cho các nhà phát triển web, giúp các bạn tăng tốc quá trình code cũng như debug. $(selector) trả về tham chiếu đến phần tử DOM đầu tiên với CSS selector quy định. Đây này là alias cho hàm document.querySelector(). Ví ...

Laravel custom messages for array validation
Indexs Laravel: Loading tags with select2 and ajax Như ở bài trước mình có nói thì bài này mình tiếp tục chia sẻ bài viết dạng Vấn Đề - Giải pháp về các issue trong quá trình code để bạn nào có gặp vấn đề tương tự thì có thế tham khảo giải pháp của mình hoặc có giải pháp nào hay hơn ...

AutoLayout Work On A ScrollView iOS
Chắc chắn bạn đã từng gặp vấn đề khi layout một màn hình mà nội dung vượt quá kích thước cho phép hoặc đơn giản là hỗ trợ cho tất cả các devices (iP4,5,6,7) . Ví dụ đơn giản như màn hình chưa nhiều các components hoặc nội layout có thể thay đổi. Thì bắt buộc chúng ta phải dùng scrollview Mình ...

Hướng dẫn sử dụng Navigation trong react-bootstrap
I. Tổng quan về Navigation Navigation là một meta component của bootstrap hỗ trợ tạo một menu tiêu đề điều hướng trong app hoặc website. Navigation được sử dụng rất dễ dàng bằng cách dùng camelCase thay cho css class trong tag. II. Cài đặt Navigation là một component của bootstrap, ...

Thủ thuật cài nhạc chuông cho iPhone của bạn
Liệu tất cả các bạn đã biết cách tạo nhạc chuông yêu thích cho chiếc điện thoại iPhone yêu quý của mình chưa? Sau đây tôi xin hướng dẫn các bạn một số thủ thuật để tạo những bản nhạc chuông vô cùng hấp dẫn về chiếc iPhone của mình. Trên thị trường điện thoại hiện nay chắc hẳn ai cũng đều biết đến ...

Những điểm khác biệt giữa SQL và NoSQL
SQL (Structured Query Language) từng là cơ chế lưu trữ dữ liệu chính hơn bốn thập kỉ qua với sự gia tăng các ứng dụng web như MysSQL , PostgreSQL, SQLite... NoSQL đã tồn tại từ nhưng năm 1960 nhưng gần đây mới trở lên được chú ý và được sử dụng phổ biến như MongoDB, Redis hay Apache Cassandra Bạn ...

Tìm hiểu ionic framework
Tìm hiểu về ionic framework Giới thiệu Ionic là một framework dùng để phát triển một ứng dụng Hybrid cho mobile. Hybrid có thể được hiểu là con lai giữa ứng dụng native và web mobile. Bản chất của hybrid là một giao diện được viết bởi html, css, javascript nhưng nó cho phép gọi các api native ...

Node.js Tutorial: Phần 6: Middleware trong ExpressJs
ExpressJs khi hoạt động sẽ là một loạt các hàm Middleware được thực hiện liên tiếp nhau. Sau khi đã thiết lập, các request từ phía người dùng khi gửi lên ExpressJS sẽ thực hiện lần lượt qua các hàm Middleware cho đến khi trả về response cho người dùng. Các hàm này sẽ được quyền truy cập đến ...

Cách nhanh hơn để kiểm tra sự tồn tại của một bản ghi
Nhiều người nói Ruby and Rail chậm, điều này cũng không hẳn là sai. Nói chung, Ruby chậm hơn so với các đối thủ cạnh tranh như Node.js hay Python. Tuy nhiên, nhiều doanh nghiệp lớn nhỏ vẫn sử dụng nó làm xương sống cho các hoạt động của mình. Vì sao lại có sự mâu thuẫn này? Điều gì làm cho một ...

Android Làm Việc Với SVG / vector drawables
Trong khi phát triển các ứng dụng android, việc hỗ trợ nhiều thiết bị với những độ phân giải khác nhau đôi khi trở thành cơn ác mộng đối với những nhà phát triển ứng dụng. Việc bao gồm nhiều image cho những độ phân giải khác nhau sẽ làm tăng kích thước của project. Giải pháp ở đây là sử dụng đồ hoạ ...

Giảm size của file APK khi build release upload lên GooglePlay
Để giảm size của APK trước khi upload lên google play, dưới đây mình chia sẻ những cách mình biết và đang sử dụng: Sử dụng Proguard, để mã hóa các class & variable thành (a,b,c,d,..) khi decompile apk và giảm size của APK Enable flag minifyEnabled và shrinkResources khi build release, ...

Into to Machine Learning: Supervised learning
A machine learning has divided into two main categories supervised learning and unsupervised learning. However in this article, we are going to focus on supervised learning only. We'll discuss about what is supervised learning? How does it work? and a few links to resources where you do a further ...

Google api with Rails
Google API is a comprehensive API of Google, which allows applications to access, manipulate with most Google services like Calender, Drive, Gmail, Google+, YouTube ... This article will guide you to build one application by Ruby on Rails web application that allows users to log in via their Google ...

Universal link trên iOS
Việc hỗ trợ universal link cho phép một website chia sẻ nội dung, kết nối tới một ứng dụng iOS. Có nghĩa khi người dùng kích vào đường link HTTP trên điện thoại iPhone, nó dẫn tới một ứng dụng iOS thay vì sử dụng trình duyệt safari, còn nếu không có ứng dụng iOS nào hỗ trợ universal link, đường ...

Lựa chọn phối màu với Trend Color năm 2017
Hàng năm, Trend Color – Màu xu hướng được tuyển chọn dựa theo xu thế của thời đại, phản ánh tình hình xã hội, thị hiếu của mọi người…v.v Đối với web designer – những người sử dụng nhiều màu sắc, thì việc am hiểu về Trend Color được coi như một tiêu chí giảm thiểu rủi ro, giúp bạn tránh được ...

Deal with wrong things when using Realm
Realm là một cơ sở dữ liệu di động và là một sự thay thế cho SQLite. Mặc dù là một cơ sở dữ liệu OO nhưng nó có một số khác biệt với các cơ sở dữ liệu khác. Realm không hoạt động giống như SQLite. Thay vào đó, nó được xây dựng bằng C++ và nhằm cung cấp một giải pháp thay thế cho SQLite. Realm lưu ...

Hướng dẫn làm circle menu
Bài viết này mình xin hướng dẫn viết 1 custom control là circle menu. Các bạn có thể tham khảo theo hình dưới đây Đây là 1 control mình mới viết cách đây không lâu bằng Swift 3. Bây giờ mình sẽ hướng dẫn các bạn cách viết và custom nó theo ý muốn Menu có thể cho phép người dùng tạo được ...