Sử dụng Codable để parse các Date format khác nhau trong Swift

Giả dụ chúng ta đang có một dữ liệu JSON trả về chứa nhiều định dạng ngày tháng (date format), thì bạn sẽ decode JSON đó như thế nào?. Đáp án đầu tiên đó là sử dụng dateDecodingStrategy, tuy nhiên nó chỉ hỗ trợ ở mức hạn chế cho định dạng .iso8601 và chúng ta cũng chỉ được set một strategy tại cùng ...

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

Tìm hiểu về Java 8 - Streams API

Khái niệm Có lẽ đối với Java 8 Stream API đã qus quen thuộc với những lập trình viên Java rồi. Bài viết này, sẽ là cách nhìn của tôi về Streams API. Stream là một abstract layer mới được giới thiệu trong Java 8. Sử dụng Streams, bạn có thể xử lý dữ liệu theo cách khai báo giống như các câu lệnh ...

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

Truyền tải media trong VOIP - Xử lý và tối ưu hoá dữ liệu

Trong ứng dụng VOIP, âm thành và hình ảnh được truyền từ máy này sang máy khác theo thời gian thực và phải qua nhiều giai đoạn: Biến đổi tín hiệu số thu được thiết bị ngoại vi thành dữ liệu máy. Mã hoá và nén dữ liệu. Chia dữ liệu thành các gói nhỏ và đẩy lên internet. Sắp xếp dữ liệu ...

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

Dùng thử xem Machine Learning có gì ghê gớm ?!?

Bài này là một bài mỳ ăn liền về Machine Learning, giúp bạn thử vọc vạch xem nó có gì hay ho, có gì thú vị và sức mạnh của nó có thực sự kinh hồn như các bài viết khác vẫn hay nói không. Trước hết xin nói rõ đây là 2 khái niệm hoàn toàn khác nhau và hay bị nhầm lẫn, AI (Trí tuệ nhân tạo) ...

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

Tại sao tôi không sử dụng Storyboard

Động lực Tôi muốn chia sẻ quan điểm của riêng tôi về Storyboard với một số giới hạn của nó bằng kinh nghiệm trải qua một số dự án thực tế cùng các dev khác. Mục tiêu Đầu tiên, bạn sẽ học được ở những trường hợp nào tôi thích sử dụng storyboard. Thứ hai, bạn sẽ học những trường hợp nào tôi ...

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

Tìm ra smell code với reek

Code ruby của bạn là smell code. Có lẽ nó là một số phương thức quá dài với các tham biến quá nhiều, một vài class mà chúng ta đã làm cho nó quá nhiều việc ở trong đó, hay là một cái tên bất thường ở chỗ này hoặc chỗ khác. Không có codebase nào hoàn hảo, nhưng đánh chú ý là những thiếu sót và tái ...

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

Phương pháp luận SONIA trong công nghệ phần mềm hướng Agent (Tiếp theo)

Trong các phương pháp phát triển Agent hiện tại, hoặc là quá trình phát triển nhắm mục tiêu một tổ chức đại diện, mà cấu trúc không nhất thiết phải luôn tốt nhất, như trong giai đoạn định nghĩa yêu cầu, hoặc việc xác định và thiết kế của các Agent rất phức tạp,và kinh nghiệm thiết kế đóng một vai ...

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

Vim Editor

Giới thiệu: Vim là một trong những trình biên soạn dòng lệnh mạnh và phổ biến nhất. Nó chỉ sẵn có trên nền của Linux và Unix, những sau đó nó cũng xuất hiện cả trên Windows. Giao diện của nó thì gọn gàng và đơn giản, và bạn có thể kết hợp các phím để thực hiện các công việc như copy-paste, ...

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

Deep learning-Công nghệ trí tuệ nhân tạo

Chao, Mới đây mình có may mắn tham gia một khóa học về trí tuệ nhân tạo do công ty mở khóa. Vì cảm thấy có hứng thú với kiến thức này nên mình có nhu cầu tìm hiểu thêm, và đồng thời cũng muốn truyền cảm hứng cho các bạn-những người đam mê công nghệ trí tuệ nhân tạo. Mình xin phép đi vô nội dung ...

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

Cấu hình Swagger UI để viết document cho API

Chào mọi người, bài viết này mình sẽ hướng dẫn các bạn làm thế nào để chạy và test một document API được viết bằng Swagger. Ở đây mình không đề cập đến các khái niệm, cú pháp và cách viết một file document API sử dụng Swagger, những thứ đó các ban có thể tham khảo ở trang chủ của Swagger ...

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

Ứng dụng của Blockchain ngoài lĩnh vực tài chính

Trong chương trước, chúng ta. đã thấy ngành công nghiệp tài chính nhanh chóng áp dụng công nghệ Blockchain như thế nào. Dù rằng Blockchain có mối liên hệ chặt chẽ với các hoạt động thanh toán và giao dịch, chủ yếu vì khởi đầu với Bitcoin, tiềm năng của công nghệ Blockchain to lớn hơn rất nhiều ...

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

Code ví dụ JSON Web Token cho RESTful API với Spring Security JWT

Code ví dụ JSON Web Token cho RESTful API với Spring Security JWT Nguồn: https://stackjava.com/spring/code-vi-du-json-web-token-voi-spring-security-jwt.html Code ví dụ JSON Web Token với Spring Security JWT. JSON Web Token (JWT) là một chuẩn mở (RFC 7519) xác định một cách nhỏ gọn, khép kín ...

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

Học Python - P3

Trong lập trình, một hàm là một chuỗi các câu lệnh nhằm thực thi công việc nào đó và có thể được sử dụng lại nhiều lần. 1. Gọi hàm: Để gọi một hàm đã khai báo, ta sử dụng cú pháp: name(parameters) Trong đó: name : là tên của hàm chúng ta muốn gọi. parameter: là các tham số chúng ta muốn ...

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

Cài đặt Angular 2

Để bắt đầu làm việc với Angular 2, chúng ta cần phải cài các thành phần chính sau đây: Npm : đây được gọi là trình quản lý Node được sử dụng để làm việc với các kho chứa mã nguồn mở. Và npm có thể được sử dụng để tải cá phụ thuộc và đính kèm chúng vào trong dự án. Git : đây là phần mềm mã ...

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

Ruby: Sử dụng FCM để push notification đến Android, iOS

Giới thiệu Push notification là một tính năng rất phổ biến trong việc phát triển app di động hiện nay. Có rất nhiều cơ chế để gửi push notification, trong bài viết này chúng ta sẽ tìm hiểu về Firebase Cloud Messaging (FCM), 1 dịch vụ hoàn toàn miễn phí của Google. Cách thức hoạt động ...

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

Giới thiệu về Notification Channels và Badges trên Android O

1. Introduction Notification channels và Badges là một trong nhiều tính năng được update trên Android O. Bắt đầu từ Android O, tất cả các notification của bạn sẽ được chia vào các Notification channels khách nhau, tùy thuộc vào từng loại notification mà app gửi đi. Bằng việc sử dụng các channel ...

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

Selenium Testing (Phần 5)

Locators là gì? Locator là một đoạn lệnh để điều khiển Selenium IDE biết là những thành phần GUI nào cần để vận hành. Xác định các yếu tố GUI chính xác là điều kiện tiên quyết để tạo ra automation script. Tuy nhiên, việc xác định chính xác các yếu tố giao diện GUI rất khó. Đôi khi, bạn kết thúc ...

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

Sử dụng Cloudfront với gem carrierwave

Hẳn mọi người đều biết đến aws s3 và gem carrierwave trong rails, gần đây mình có gặp một vấn đề khi vọc làm một trang web chia sẻ ảnh và video, đó là tốc độ load ảnh và video từ s3 về rất chậm. Sau một hồi tìm hiểu thì có thấy rất nhiều gợi ý về việc sử dụng cloud front. Sau khi dùng thử thì thấy ...

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

FreeCodeCamp là gì

Xem lại mấy bài post thì thấy toàn chủ yếu là về Free Code Camp. Vậy thì Free Code Camp là gì? Free Code Camp là 1 tổ chức phi lợi nhuận thành lập bởi Quincy Larson vào tháng 10 năm 2014 tại San Francisco, California với mục đích làm cho việc trở thành Lập trình viên Web trở nên dễ dàng hơn. ...

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

Azure - Kiến trúc hướng sự kiện trong cloud với lưới sự kiện Azure(Phần II)

Xử lý Sự kiện với Chức năng Azure Bây giờ đến phần thú vị của việc đăng ký các sự kiện. Trình xử lý đầu tiên của chúng tôi sẽ là một chức năng Azure. Để tìm hiểu các khái niệm cơ bản về tạo một hàm, xem bit.ly/2A6pFgu. Đối với tình huống này, tôi muốn đăng ký cụ thể các sự kiện cho nhân viên được ...

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