Debugging Swift code với LLDB (P1)

Chuẩn bị Nếu người đọc mới hoàn toàn và chưa biết gì về debug thì bạn nên đọc qua bài này trước: link, còn nếu người đọc là cao nhân, các tiền bối, các lão làng hay các lão quái vật trong lập trình IOS thì cũng ko cần đọc tiếp vì cái gì cũng biết rồi =)), Ở những bài này mình muốn tiếp tục các ...

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

Các mức kiểm thử phần mềm

Định nghĩa Unit Testing là một mức kiểm thử phần mềm với mục đích để xác nhận từng unit của phần mềm được phát triển đúng như được thiết kế. Unit testing là mức test nhỏ nhất trong bất kỳ phần mềm nào. các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức (Method) đều có ...

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

Tìm hiểu những khái niệm lạ trong javascript (Phần 1)

Javascript là ngôn ngữ rất si đa và càng học nó mình càng thấy nó sida vcđ, gần đây mình được tiếp xúc được với một project về react khá thú vị.Mới đầu rất khó khăn trong việc đọc hiểu được từng phần logic của nó, sau một thời gian vừa đọc code vừa tìm hiểu về các cú pháp mới lạ đó mình đã ...

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

Tạo schedule đơn giản với golang và linux

Nếu bạn có riêng 1 server linux. Bạn có thể up site của mình trên đó. Tuy nhiên nếu chỉ dùng để chạy 1 site nào đó thì thật lãng phí. Với mình có rất nhiều thứ hay ho mình có thể sử dụng nó. Chẳng hạn như bạn có thể dùng server để làm một proxy hoặc sử dụng làm vpn, hoặc sử dụng ip server để ẩn ...

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

ObjectBox, một cơ sở dữ liệu Android hiện đại và dễ sử dụng ( phần 2)

ObjectBox được thiết kế dành cho thiết bị di động. Nó là một cơ sở dữ liệu nhúng hướng đối tượng có khả năng thay thế đầy đủ cho SQLite. ObjectBox cũng rất thích hợp cho IoT. ObjectBox được tối ưu hóa cho hiệu suất và được thiết kế để các nhà phát triển ứng dụng không phải xử lý SQL. Vì vậy lợi thế ...

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

Android Gradle 3.0: Sử dụng Implementation hay Api?

Chào mọi người, nếu các bạn từng sử dụng Android Gradle plugin ở các phiên bản cũ khi nâng cấp lên phiên bản 3.0 thì bạn đều biết rằng từ khoá compile đã bị thay đổi thành implementation và api. Vậy implementation và api có gì khác nhau mà phải tách ra như vậy, hãy cùng tìm hiểu trong bài viết sau ...

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

Tìm hiểu React Component, Elements và instances

Sự khác nhau giữa component, những instances của nó và elements có thể gây ra nhưng rắc rối nhỏ và dễ gây nhầm lẫn đối với những người mới bắt đầu với React. Sau đây mình xin chia sẻ một bài viết để hiểu rõ được sự khác nhau đó và sử dụng một cách trôi chảy trong React. Nếu bạn là một người mới ...

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

Thủ thuật quảng cáo mới dành cho Mobile Developer

Bài viết câu từ không hay và thiếu muối, mong các bạn thông cảm, nhưng mình hy vọng các bạn sẽ hiểu được cách quảng cáo mới này Bạn đã biết, Youtube đã đẻ ra một nghề mới cho nền công nghiệp của chúng ta và nó thành trend song song với cái nghề Streamer - đó là Reviewer ! Nghe cái tên quá chi ...

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

Giới thiệu Protocol-Oriented Programming trong Swift (Phần 1)

Bạn đã bao giờ nghe nói về Object-Oriented Programming? Mình đoán là rồi vì nó cực kì phổ biến ngày nay Nhưng còn Protocol-Oriented Programming thì sao? Protocol-Oriented Programming (POP) được giới thiệu lần đầu bởi Apple tại sự kiện WWDC 2015 với Swift 2.0, và họ gọi Swift là POP, ...

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

Tìm hiểu về Blockchain bằng cách làm thử - Part 2

Trong bài viết lần trước, chúng ta đã cùng tìm hiểu đến đoạn làm thế nào để tạo ra một Block mới và cách biểu diễn Block trong blockchain của chúng ta. Có lẽ tiếp theo, chúng ta sẽ băn khoăn xem, liệu chúng ta có thể đào (mine) và tạo ra Bock mới như thế nào, nhưng trước hết, chúng ta phải hiểu về ...

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

Eager Loading trong laravel sử dụng with() hay load()?

Khi chúng ta sử dụng ORM trong laravel, mặc định ORM sẽ ở chế độ "lazy" khi load lên tất cả các model quan hệ (relation). Cụ thể hơn chúng ta cùng xem xét một ví dụ ở docs của laravel như sau: <?php namespace App; use IlluminateDatabaseEloquentModel; class Book extends Model { /** ...

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

Bài toán develop email marketing - với MailChimp API thông qua Java

MailChimp là dịch vụ Email Marketing rất nổi tiếng. Ngoài ý nghĩa marketing chính ra thì MailChimp còn có thể sử dụng cho nhiều mục đích khác nữa. Ví dụ có thể phát triển làm hệ thống mail thông báo khi có event từ user… Việc sử dụng MailChimp cơ bản gồm các bước sau: 1. Tạo LIST tạo ...

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

CFNetwork Guide - Các khái niệm trong CFNetwork

CFNetwork là một low-level, high-performance framework cung cấp cho ta khả năng kiểm soát ở mức độ chi tiết hơn về protocol stack. Nó giống như là một phần mở rộng của BSD sockets (một bộ socket API tiêu chuẩn cung cấp các object để đơn giản hóa các tác vụ như giao tiếp với FTP và HTTP server hoặc ...

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

Thủ Thuật Với Eclipse

Để làm việc được nhanh và hiệu quả hơn với eclipse thì chúng ta cần biết 1 số thủ thuật sau Tự động sinh comment bằng cách vào Source --> Renerate Element Coment hoặc ấn tổ hợp phím ALT + Shift + J Để thay đổi Code template của phần commnet chúng ta vào Windown --> Preferences --> ...

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

Hiểu rõ hơn về Git qua bài toán xây dựng kho hàng

Với người mới bắt đầu tìm hiểu và sử dụng git hẳn sẽ có rất nhiều thắc mắc, khó khắn hay cảm thấy mù mờ không rõ ràng về hệ thống quản lý phiên bản này, mình cũng từng như vậy nhưng sau một thời gian làm việc, vật lộn cùng nó thì đã hiểu ra được ít nhiều và muốn chia sẻ với mọi người sâu hơn, rõ ...

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

Virtus gem in Ruby on Rails

Định nghĩa và cài đặt Gem Virtus cho phép bạn định nghĩa các thuộc tính trên classes, modules hoặc các class instances với các cài đặt không bắt buộc như type, phạm vi read/write các method. Để sử dụng virtus gem ta có 2 cách: #Thực thi command gem install virtus #Thêm vào Gemfile ...

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

Lập trình MacOS cho người mới bắt đầu (phần 2b)

Chào buổi tối các anh chị em. Lại một tuần bận rộn nữa vừa trôi qua, vẫn kịch bản cũ, KH dí, các xếp dí, anh em dí. Ngày nào cũng phải một lon bò húc để duy trì sức chiến đấu. Bắt đầu cảm thấy căng dần đều hơn rồi. Hôm nay deadline, ngồi đọc lại bài report của các anh em trong group, thấy anh ...

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

Dependency Injection với Dagger2

I) Sơ lược về dependency Khi một class cần một class hoặc một interface để thực hiện một hành động nào đó thì class đó có một sự phụ thuộc (dependency). Lúc này có thể hiểu class đó phụ thuộc vào class hoặc interface kia public class Soldier { private Gun mGun = new Gun(); } ...

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

Adapter Pattern [Part1] - Class Adapter

Khi sử dụng laptop hay điện thoại chắc hẳn bạn đã biết đến adapter (hay còn gọi là cục sạc), thiết bị giúp chuyển đổi dòng điện xoay chiều điện lưới thành dòng một chiều để máy tính có thể sử dụng được. Trong ngôn ngữ lập trình, Adapter Pattern cũng mang ý nghĩa tương tự như vậy. Bằng cách chuyển ...

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

Tìm hiểu về Java 9 features

Điểm qua một số features chính mà Oracle đã phát triển cho Java 9, bao gồm Java programming, JVM, Tools và các libraries : Platform Module System (Project Jigsaw) Interface Private Methods Try-With Resources Anonymous Classes @SafeVarargs Annotation Collection Factory Methods Process ...

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