Splash Screens Are Evil, Don't Use Them!

Sử dụng màn hình khởi động ứng dụng là một sai lầm, hãy dừng việc đó lại! Bài viết này được tác giản Cyril Mottier công khai từ năm 2012, có thể nhiều bạn đã quên nó, nhưng mình vẫn muốn nhắc lại ở đây. Tại sao ông lại đưa ra lời khuyên là hạn chế sử dụng hoặc nên dùng splash đúng cách. Đó là bởi ...

Tác giả: Vũ Văn Thanh viết 17:27 ngày 07/09/2018

[Swift] Cấu hình nhận push notification từ Firebase trong Swift

Hôm nay chúng ta sẽ tìm hiểu về quá trình khởi tạo và cấu hình 1 project iOS có thể nhận được push notification từ Firebase. Sẽ gồm các phần chính sau: Apple Developer Program Khởi tạo project Cấu hình trên Firebase Console website Implement firebase code trong Xcode Chạy Demo Lý do ...

Tác giả: Hoàng Hải Đăng viết 17:26 ngày 07/09/2018

Học Rail qua các dự án open source

Ruby on Rails (RoR) đã phát triển rất nhanh và trở thành một nền tảng rất phổ biến trong lập trình Web. Chúng ta có thể tìm kiếm rất nhiều các nguồn để có thể học RoR như các tài liệu trên trang chủ http://guides.rubyonrails.org/, các bài hướng dẫn, chương trình mẫu từ các trang Blog hay các khóa ...

Tác giả: Vũ Văn Thanh viết 17:26 ngày 07/09/2018

Swift: Cách sử dụng Inout

Swift: Cách sử dụng Inout 1.Mở đầu Như các bạn đã biết về cách sử dụng return function, ví dụ: cho 2 tham số, trả về tổng của chúng. Thông thường, mình không muốn 1 hàm thay đổi các tham số của nó, bởi vì nếu làm vậy, bạn có thể không nắm chắc được giá trị của parameters và sẽ làm sai lệch ...

Tác giả: Bùi Văn Nam viết 17:26 ngày 07/09/2018

Laravel là gì, tại sao dùng framework Laravel?

Cộng đồng PHP những năm gần đây luôn có những cuộc rượt đuổi và soán ngôi ngoạn mục, trong số đó nổi lên một framework PHP có tên Laravel đã giữ vững ngôi vương trong một thời gian dài và còn dài hơn nữa. Các framework PHP ra đời giúp cho lập trình viên giảm bớt được khối lượng công việc, xây ...

Tác giả: Trần Trung Dũng viết 17:25 ngày 07/09/2018

Mình đã làm bể cá thông minh như thế nào - Wemos authenticate qua laravel (phần 4.3 - Tìm hiểu GET và POST trong Wemos)

Xin chào các bạn, hôm nay mình xin chia sẻ tiếp phần 3 của chủ đề "Wemos authenticate qua laravel" trong loạt bài "Làm bể cá thông minh". Ở phần trước thì ta đã kết nối được web client với server nodejs và authenticate với server PHP (laravel) bằng Jwt. Như trong sơ đồ dưới đây: Client phải ...

Tác giả: Vũ Văn Thanh viết 17:25 ngày 07/09/2018

Autolayout và lifecycle trong IOS

Autolayout và lifecycle trong IOS 1. Lý thuyết: Trước hết, mình xin nói về một vài life-cycle trong swift để mọi người nhớ lại. Một câu hỏi phổ biến là khi nào ghi override viewDidLayoutSubviews, viewDidLoad và viewWillAppear. a. viewDidLoad: viewDidLoad được gọi sau khi View ...

Tác giả: Vũ Văn Thanh viết 17:25 ngày 07/09/2018

Laravel Controller: Ngưng ngược đãi (2)

Tương tự bài viết trước, mình lại tiếp tục giải thoát cho controller bởi sự ngược đãi của dev khi luôn tống mọi thứ logic, code vào controller. Ta xét một ví dụ cơ bản về đăng ký user sau: /** * Handle a registration request for the application. * * @param Request $request * * @return ...

Tác giả: Bùi Văn Nam viết 17:24 ngày 07/09/2018

Metaprograming in Ruby

Trong bài viết này, chúng ta sẽ nhìn vào một vài khía cạnh khác nhau của metaprograming trong Ruby. Để bắt đầu, metaprograming là gì? Metaprogramming is the writing of computer programs with the ability to treat programs as their data. It means that a program could be designed to read, ...

Tác giả: Vũ Văn Thanh viết 17:24 ngày 07/09/2018

Swift - Test-Driven Development (TDD) - Chapter 1 - Part 2b - Understanding TDD

Swift - Test-Driven Development (TDD) - Chapter 1 - Part 2b - Understanding TDD Phần 2b này, chúng ta sẽ đi qua một ví dụ khác để có cái nhìn rõ hơn về cấu trúc cũng như quy tắc của TDD. Ví dụ 2 1. Red Như đã đề cập ở phần trước, ta cần 1 cái test khác, bởi vì production code chỉ work ...

Tác giả: Vũ Văn Thanh viết 17:24 ngày 07/09/2018

Mình đã làm bể cá thông minh như thế nào - Wemos authenticate qua laravel (phần 4.2 - Server kết nối với web client)

Xin chào các bạn! Mình đã quay trở lại rồi đây. Hôm nay, mình sẽ chia sẻ tiếp phần Socket-IO Authenticate qua laravel sử dụng jwt token. Như bài trước mình đã chia sẻ cách tạo server authenticate sử dụng laravel với 2 phân quyền người dùng là users và devices. Bài viết hôm nay, mình sẽ chia sẻ ...

Tác giả: Hoàng Hải Đăng viết 17:23 ngày 07/09/2018

Swift - Custom operators - Part 2

Swift - Custom operators - Part 2 Ở Part 1: https://kipalog.com/posts/Swift---Custom-operators---Part-1, mình đã giới thiệu cơ bản về operator và cách custom nó. Trong phần 2 này mình sẽ đi sau tìm hiểu thêm 1 số phần khác nâng cao hơn chút. 1. Generic Operators Bây giờ mình muốn phép luỹ ...

Tác giả: Tạ Quốc Bảo viết 17:23 ngày 07/09/2018

Swift - Test-Driven Development (TDD) - Chapter 1 - Part 2 - Understanding TDD

Swift - Test-Driven Development (TDD) - Chapter 1 - Part 2 - Understanding TDD Qua hai phần Part 1a, Part 1b ở bài trước, mình đã hiểu unit test là gì, chúng có ích như thế nào. Tiếp theo, chúng ta sẽ tìm hiểu tiếp về TDD. Rất xin lỗi các bạn nếu khi các bạn đọc vào thấy bỡ ngỡ, mình cũng chưa rõ ...

Tác giả: Bùi Văn Nam viết 17:23 ngày 07/09/2018

WebRTC basic - Phần 1: Tìm hiểu về NAT, STUN, TURN vs ICE

Hi các bạn, cơ bản là hiện giờ mình đang làm trong một dự án sử dụng WebRTC và mình muốn chia sẻ với mọi nguời những gì mình biết và chúng ta có thể cùng nhau tìm hiểu thêm về WebRTC :D (Đánh lộn phải rủ đông người đánh mới phê, đại loại là vậy đó :D ) Sau khi đi hết các phần cơ bản, mình sẽ ...

Tác giả: Bùi Văn Nam viết 17:22 ngày 07/09/2018

Giới thiệu về Laroute

I. Tình huống Mình xin bắt đầu bằng một trường hợp thế này cho dễ hiểu nhé các bạn: Giả dụ bạn đang có action update trong UserController cần truyền vào param là $id <?php namespace App Http Controllers ; class UserController extends Controller { public function ...

Tác giả: Tạ Quốc Bảo viết 17:22 ngày 07/09/2018

Swift - Closure: Bài 2: CallBack/ Completion (Part 2)

Swift - Closure: Bài 2: CallBack/ Completion (Part 2) 3. Closure with arguments Dữ liệu của ta thường là các kiểu của Networking service, không phải kiểu đơn giản load file local json như bài 1, mà là nhận API, rồi lấy data từ đó, mặc dù nói chung vẫn trả về kiểu json tương tự. Chúng ta ...

Tác giả: Vũ Văn Thanh viết 17:22 ngày 07/09/2018

Swift - Custom operators - Part 1

Swift - Custom operators - Part 1 Trong phần này, các bạn sẽ được tự chế tạo operator cho riêng mình. Nó sẽ biểu diễn cho 1 loạt function phức tạp lặp đi lặp lại nhiều lần. Ví dụ nếu bạn có phép tính 2 nhân 2 nhân 2 v..v thì tại sao không có phép tính luỹ thừa cho gọn. Trước tiên, mình nên làm 1 ...

Tác giả: Trần Trung Dũng viết 17:21 ngày 07/09/2018

Sử dung NSURLProtocol với Swift

1.Bắt đầu Đối với bài viết này, bạn sẽ tạo một trình duyệt web di động cơ bản, chẳng hạn như trình duyệt web bạn có thể thêm vào ứng dụng tiếp theo của mình. Nó sẽ có một giao diện người dùng cơ bản cho phép người dùng nhập và vào một URL. Trình duyệt của bạn sẽ lưu vào bộ nhớ cache thành công ...

Tác giả: Trịnh Tiến Mạnh viết 17:21 ngày 07/09/2018

Higher-Order Function và ứng dụng của nó trong Swift 4

Update Với phiên bản mới nhất của Xcode 9.3 và Swift 4.1, "Sequence.flatMap (_ : )" đã bị deprecated và được đổi tên thành "compactMap (_ : )" 1: Map() Map là một loại chức năng được sử dụng với các đối tượng giả lập như một mảng hoặc các set. Nó có thể áp dụng và biến đổi từ một loại ...

Tác giả: Trần Trung Dũng viết 17:20 ngày 07/09/2018

Swift - Test-Driven Development (TDD) - Chapter 1 - Part 1a - Unit Test

Swift - Test-Driven Development (TDD) - Chapter 1 - Part 1a - Unit Test Phần này mục đích mình sẽ tập trung vào việc giúp mọi người làm quen với unit test. Và chắc chắn cũng có Test-Driven Development (TDD) nơi mà phần test được viết trước khi implement code. 1. Xây dựng Automatic unit test: ...

Tác giả: Tạ Quốc Bảo viết 17:20 ngày 07/09/2018