Có gì mới trong Kotlin 1.2.30

Vào ngày 1/3 vừa qua, kotlin 1.2.30 chính thức được release, Vậy có những gì mới ở bản 1.2.30 này: Thêm một khai báo mới trong thư viện chuẩn, bắt chước trình suspend sửa đổi cho các biểu thức lambda Thêm hỗ trợ cho TestNG trong kotlin.test Cung cấp hỗ trợ cho các mô đun Android trong các dự ...

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

Android - Swipe layout

Chẳng là mình đang tập tành code kotlin cho android, app của mình cho phép người dùng swipe item trái phải các kiểu và thực hiện các action ứng với mỗi trường hợp người dùng vuốt trái, phải. Sau một cả ngày mò mẫm thì mình tìm được một thư viện hỗ trợ khá tốt và đáp ứng được nhu cầu của mình - ...

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

Hướng dẫn tích hợp ARcore vào Unity.

Chào các bạn! Như các bạn cũng đã biết, ARcore đã được google giới thiệu một thời gian, với những khả năng vượt trội giúp nó được cộng đồng lập trình viên đón nhận tích cực, tuy nhiên thời gian đầu nó chỉ hỗ trợ điện thoại galaxy s8 và google pixel, điều này khiến khả năng tiếp cận thị trường của ...

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

6 tips dành cho Django về làm việc với cơ sở dữ liệu

Đối với mỗi 1 framework ORM cung cấp tiện ích tuyệt vời cho các developer để truy cập trừu tượng vào database. Nhằm mục đích tìm kiếm cơ sở dữ liệu và thay đổi một số mặc định thường thấy để có thể cải tiến những chức năng để thao tác mạnh mẽ với các cơ sở dữ liệu hơn. Trong bài này tôi sẽ chia sẻ ...

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

What is machine learning?

Machine learning has caused worldwide technological fever in the past few years. In the academic world, there are thousands of scientific articles on the subject each year. In the industry, from large companies like Google, Facebook, Microsoft to startup companies are investing in machine learning. ...

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

Wemos update firmware qua mạng (phần 5)

Xin chào các bạn! Mình đã quay trở lại rồi đây. Như các bạn đã biết thì khi lập trình cho một phần cứng nào đó ta cần phải nạp chương trình vào cho nó thì nó mới hoạt động được. Mỗi lần sửa một dòng hay chỉ là 1 biến thì ta đều phải biên dịch lại và nạp code cho em nó. Việc nạp phần mềm như thế ...

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

Nhập môn với EC2

Hôm nay, tiếp tục với series bài nhập môn AWS chúng ta sẽ bắt đầu từ dịch vụ cơ bản nhất của AWS-EC2. Mình đã nói qua khái niệm của EC2 ở bài viết này. Những ai không rõ có xem lại ở đây. Tuy nhiên cách học nhanh nhất là thực hành. Bắt đầu xắn tay áo lên thôi nào. Prerequisite Tài khoản AWS đã ...

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

App share photos with Nodejs, Socket.io and ExpressJs

Ở bài trước mình đã hưỡng dẫn làm app chat bằng nodejs và Socket.io. Bài này tiếp tục mình hướng dẫn upload ảnh với Socket.io và ExpressJs. Các bạn có thể apply 2 cái này thành một ứng dụng vừa chát vừa có thể share ảnh cho nhau. OK nói nhiều làm gì. Quất => Các yêu cầu chưa bao giờ là điểu ...

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

Đối tượng Promise & Deferred trong JavaScript - Phần 1: Khái niệm và ý nghĩa

Trong quá khứ không quá xa, công cụ chính dành cho các lập trình viên JavaScript để xử lý các sự kiện không đồng bộ là callback. Một callback là một đoạn mã thực thi được truyền như một đối số cho các mã khác, dự kiến sẽ gọi lại (execute) đối số tại một thời gian thuận tiện. Nói cách khác, một hàm ...

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

Hướng dẫn đưa template BlurAdmin vào Rails (Phần 1)

Xin chào các bạn, hẳn trong chúng ta đã từng sử dụng một số template để đưa vào dự án của mình để đỡ mất thời gian hơn trong việc code template. Có khá nhiều template nổi tiếng và tiện ích hơn template mà mình sắp nói, tuy nhiên theo quan điểm của mình xét về việc đẹp, khỏe, FREE thì chắc không ...

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

Một chút về Python

Python dùng indent để đánh dấu đó là một block code nếu chúng cùng indentation, ruby sử thì sử dụng {} hoặc từ khóa do ... end if 1 > 2: print("1 is greater than 2") elif 2 > 1: print("1 is not greater than 2") else: print("1 is equal to 2") Biểu thức điều kiện của Python không ...

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

Gem Bullet

Các Bullet gem được thiết kế để giúp bạn tăng hiệu suất của ứng dụng bằng cách giảm số lượng lượt truy vấn . $ gem install bullet Hoặc thêm vào Gemfile rồi bundle install: gem 'bullet' , group : 'development' Lưu ý: Phải thêm gem bullet vào sau activerecord (rails) và mongoid. ...

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

Những lỗi mà tôi đã làm như một Beginner Programmer

Trước tiên tôi muốn làm rõ ràng một điều. Nếu bạn là một beginner programmer, bài viết này không phải làm cho bạn cảm thấy tồi tệ về những sai lầm mà bạn mắc phải, mà là để bạn, cũng như tôi nhận thức về nó, nhắc nhở chúng ta nên tránh. Tôi đã mắc phải những lỗi này và học được nhiều thứ từ mỗi ...

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

Tạo 1 ứng dụng đọc API với React và Axios

Thử thách thứ 302 của FreeCodeCamp là 1 ứng dụng xếp hạng người dùng của FreeCodeCamp, sử dụng API của FreeCodeCamp để đưa ra dữ liệu người dùng. Tuy nhiên, FreeCodeCamp hiện tại khóa học React trống không nhưng vẫn tồn tại project với React. Vậy ta phải làm thế nào? 1. Phân tích Ứng dụng ...

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

UIView vòng đời Auto Layout

Auto Layout là một trong những thủ thuật quan trọng nhất khi lập trình IOS . Và để control được nó bạn phải hiểu vòng đời của nó trong suốt quá trình phát triển để tiết kiệm thời gian tránh những sai lầm ngớ ngẩn . Nếu bạn thiếu những kiến thức này không sớm thì muộn sẽ gặp đến vấn đề về giao diện ...

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

Rethinking JavaScript Part III - Replace break by going functional (Translated)

Trong bài viết trước, "Death of the for Loop", tôi đã cố gắng thuyết phục các bạn từ bỏ vòng lặp for và thay bằng kỹ thuật lập trình hàm. Đổi lại, các bạn lại đưa ra câu hỏi rất tuyệt: "Thế còn break thì sao?" break is the GOTO of loops and should be avoided. (break là GOTO của các vòng ...

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

Bốn cách để refactor và tăng tốc RSpec

Viết test là một phần hết sức quan trọng khi chúng ta phát triển bất cứ một chương trình nào. Tuy nhiên đôi khi tạo gặp khó khăn để làm sao test của chúng ta viết ra thật clean và chạy nhanh nhất là đối với một project có nhiều member tham gia việc phát triển trong một thời gian dài. Trong bài này ...

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

Beta vs. Field Testing

"Thử nghiệm Beta" là tên gọi được sử dụng rộng rãi nhất để mô tả các thử nghiệm của khách hàng trước khi phát hành. Trong thực tế, nhiều người nhầm lẫn sử dụng từ này khi nói đến Alpha và Field Tests. Qúa trình khách hàng xác nhận sản phẩm sẽ trải qua những giai đoạn nhất định. Mỗi giai đoạn này ...

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

UIKit Animations Trong Swift

Bài viết trước của tôi có tiêu đề Animation cơ bản trong Swift có nói về những cách xử lý với animation cơ bản trong Swift , hôm nay chúng ta sẽ tiếp tục tìm hiểu thêm một số thuộc tính mới của animations. Khi update bản cập nhật SwiftSwift4 / IOS 11 chúng ta có thêm hai thuộc tính mới cho ...

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

Trên tay React v16.3.0

Như tiêu đề, hôm nay chúng ta sẽ cùng review một số thay đổi đáng chú ý trong React phiên bản 16.3.0 mới được release vào hôm 30/3 vừa rồi. Phiên bản này mang đến khá nhiều tính năng mới nhưng cũng kèm theo khá là nhiều hoang mang. Không để các bạn phải chờ lâu chúng ta sẽ bắt đầu ngay với điểm ...

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