How to make a Chatbot with Artificial Intelligence (AI)?

The world is slowly moving towards intelligent business systems that can make important decisions or perform vital actions on behalf of humans while offering a personalized experience. AI Chatbots are the latest rage in the current business technology scene ranging from E-commerce systems to ...

Tác giả: Hoàng Hải Đăng viết 14:09 ngày 07/01/2019

Chapter 2: Protocols

Ở chapter 1 chúng ta đã cùng tìm hiểu về sự liên quan của 2 mặt của API, client và server. Để các bạn nắm bắt được chắc chắn hơn cách thức chúng giao tiếp với nhau, chúng ta sẽ nhìn sâu hơn vào cách client và server tương tác với nhau trong nội dung bài viết này. Trước tiên chúng ta nhìn vào mô ...

Tác giả: Trần Trung Dũng viết 14:09 ngày 07/01/2019

Early Testing là gì: Test Early và Test Often nhưng bằng cách nào?

Việc kiểm thử phần mềm nên bắt đầu sớm trong vòng đời phát triển phần mềm (Software Development Life Cycle - SDLC). Việc này giúp nắm bắt được và triệt tiêu sớm những rủi ro và nhược điểm trong phase lấy requirement và phase design trong vòng đời phát triển phần mềm. Việc kiểm thử sớm sẽ giúp giảm ...

Tác giả: Bùi Văn Nam viết 14:09 ngày 07/01/2019

Dev hiện đại phần 2: Chạy ứng dụng trên... localhost

Nghe thì đơn giản nhở, ai là dev mà chả chạy được ứng dụng trên localhost rồi, sao phải hướng dẫn phức tạp loằng ngoằng làm gì? Nhưng nếu bạn đã ở vào hoàn cảnh chạy trên máy mình được mà máy đồng nghiệp không được, hay là máy mình được mà lên server lại tịt ngóm,... thì bạn nên tiếp tục đọc ...

Tác giả: Trịnh Tiến Mạnh viết 14:09 ngày 07/01/2019

Tại sao chúng ta nên dùng Interface Builder (XIB) thay vì Storyboard?

Tôi rất thích sử dụng Interface Builder (IB) khi lập trình iOS. Nó giúp tôi làm giảm bớt rất nhiều dòng code mà có thể xuất hiện trên các view layer. Nhưng sử dụng storyboards cũng mang lại rất nhiều vấn đề. Bài viết này tôi sẽ giải thích cho các bạn vì sao sử dụng file xib riêng biệt giúp hiệu ...

Tác giả: Tạ Quốc Bảo viết 14:09 ngày 07/01/2019

The Complete Guide to Create a Copy of an Object in Ruby: Part I

Tại sao chúng ta lại cần copy các Object? Nhu cầu này xuất hiện khi chúng ta muốn thay đổi hoặc di chuyển chúng mà vẫn phải đảm bảo được tính nguyên bản của các Object này. Trong bài viết này, chúng ta cùng nhau tìm hiểu các chủ đề sau: shallow copy và deep copy dup và clone trong ruby so ...

Tác giả: Bùi Văn Nam viết 14:09 ngày 07/01/2019

4 lợi ích của việc sử dụng Test Automation với Espresso

Nếu bạn là một Android dev, có lẽ bạn cũng không còn lạ lẫm với framework Espresso của Google sử dụng cho automation test. Là một công cụ nguồn mở, nó rất dễ dàng cho các nhà phát triển sử dụng cũng như là tuỳ biến cho việc thực hiện automation test. Nhưng trước khi thảo luận về lợi ích của ...

Tác giả: Trần Trung Dũng viết 14:09 ngày 07/01/2019

SQL Series: Vì sao bạn nên xài SQL CTEs

CTE cho phép bạn lưu trữ một query để xài trong script khi có dịp cần thiết. Tuy vậy, chúng thường bị đánh giá thấp hơn subquery, vốn được xài bởi rất nhiều người. Bài viết này sẽ giải thích lí do vì sao tôi lại thích xài CTE để tạo các SQL query. Cách chúng hoạt động Trong ví dụ ...

Tác giả: Trần Trung Dũng viết 14:09 ngày 07/01/2019

System Recovery - Giới thiệu về khôi phục cơ sở dữ liệu

Như trong phần trước, chúng ta sử dụng thuật ngữ quản lý dữ liệu thay vì quản lý tài nguyên chung chung. Loại quản lý dữ liệu phổ biến nhất là một hệ thống cơ sở dữ liệu. Tuy nhiên, các nguyên tắc áp dụng cho bất kỳ trình quản lý tài nguyên giao dịch nào, chẳng hạn như trình quản lý hàng đợi và các ...

Tác giả: Vũ Văn Thanh viết 14:09 ngày 07/01/2019

Cách tạo custom templates trong Android

Hê-lô 501 anh chị em Mỗi khi chúng ta làm việc trong một dự án mới, chúng ta phải viết rất nhiều code liên tục và trong một khoảng thời gian, nó trở nên rất tẻ nhạt. Tôi đã trải nghiệm nó trong khi tạo Ứng dụng Android nơi tôi phải viết quá nhiều code template bất cứ khi nào tôi tạo một ...

Tác giả: Vũ Văn Thanh viết 14:09 ngày 07/01/2019

Express Framework

Trong bài này mình sẽ giới thiệu về ExpressJS, một web framework của NodeJS cung cấp cho bạn các công cụ đơn giản nhất, giúp bạn xây dựng một website, hoặc ứng dụng web (web apps) và phần back-end của một hệ thống. Với ExpressJs bạn không cần lo lắng về những phương thức, quy trình xử lý cấp thấp ...

Tác giả: Bùi Văn Nam viết 14:09 ngày 07/01/2019

“Đùa nghịch” với Docker trong 5 phút

Người viết: Codeaholicguy Cảnh báo: Bài viết có nội dung cực kì đơn giản dành cho bạn nào chưa sử dụng Docker bao giờ! Các bạn nào đã sử dụng Docker thành thạo rồi có thể tắt luôn tab ngay khi đọc hết dòng này, còn nếu các bạn muốn đọc tiếp thì cũng cứ thoải mái, và nhớ giữ tư tưởng ...

Tác giả: Tạ Quốc Bảo viết 14:09 ngày 07/01/2019

9 mẹo và thủ thuật cho Chrome Dev Tools

Chrome không chỉ ngày càng trở thành một trình duyệt được nhiều người lựa chọn, mà còn là một tool phát triển mạnh mẽ theo hướng riêng của nó. Các tính năng mới được giới thiệu thường xuyên, và có một số tính năng tôi thấy sử dụng thấy dễ dàng hơn các tính năng khác Dưới đây là ...

Tác giả: Bùi Văn Nam viết 14:09 ngày 07/01/2019

Tổng hợp các lỗi thường gặp khi lập trình viên khởi nghiệp và giải pháp

Người viết: Lê Tất Tùng Vốn là một lập trình viên khởi nghiệp với nhiều thất bại, tôi tổng hợp những thất bại thường gặp ở đây với mong muốn các lập trình viên, kỹ sư sẽ không lặp lại vết xe đổ đó. (Vẫn tiếp tục cập nhật) Những chia sẻ này hẳn sẽ có ích không chỉ với lập trình viên ...

Tác giả: Vũ Văn Thanh viết 14:08 ngày 07/01/2019

Tìm hiểu Transition trong css

TRANSITION Một sự cải tiến mới trong css3 là khả năng viết các hiệu ứng (transition). Các nhà phát triển giao diện người dùng đã tìm ra khả năng thiết kế các tương tác này trong html và css mà không cần Javascript. Với các CSS3 transitions bạn có thể thay đổi diện mạo hành vi của ...

Tác giả: Trần Trung Dũng viết 14:08 ngày 07/01/2019

Xây dựng ứng dụng web với Python + Flask Framework + Angular2 + DynamoDB – Phần 2

Ở bài viết trước mình đã hướng dẫn xong thiết lập cho cả front và server(tại đây). Để chuẩn bị tiếp cho các phần hay ho như xử lý authentication, sessions… thì ở bài viết này mình xin hướng dẫn cách kết nối và liên lạc giữa front-server bằng cách tạo trang CRUD đơn giản. Tương ...

Tác giả: Trần Trung Dũng viết 14:08 ngày 07/01/2019

19 tip cho các kỹ sư phần mềm trong năm 2019

Sắp bước qua năm 2019 và thế giới lập trình sẽ có nhiều điều tuyệt vời xuất hiện. Nhưng đối với nhiều developer mới, triển vọng bước vào sự nghiệp coding có thể gặp nhiều khó khăn. Có rất nhiều công nghệ để học và rất nhiều ngôn ngữ để lựa chọn. Do đó, tôi đã soạn ra một danh sách ...

Tác giả: Trịnh Tiến Mạnh viết 14:08 ngày 07/01/2019

Xây dựng ứng dụng web với Python + Flask Framework + Angular2 + DynamoDB – Phần 1

Kết thúc chuỗi bài viết về chủ đề Xây dựng ứng dụng web với NodeJS + Express FrameWork + AngularJS thì hôm nay mình xin triển khai 1 chủ đề mới đó là Xây dựng ứng dụng web với Python + Flask Framework + Angular2 + DynamoDB. Có lẽ vì thời gian tồn tại và hỗ trợ quá ngắn của angular2 nên ...

Tác giả: Tạ Quốc Bảo viết 14:08 ngày 07/01/2019

Tin Hot: Skype vừa cho ra mắt tính năng real-time code editor cho lập trình viên.

Skype vừa ra mắt một tính năng cho cho phép các lập trình viên có thể tạo cuộc gọi ngay phía trên phần code editor thông qua Microsoft Edge hoặc Chrome Browser. Điều đó có nghĩa rằng lập trình viên có thể luân chuyển dễ dàng từ cuộc gọi sang code editor trong các buổi demo kỹ thuật ...

Tác giả: Vũ Văn Thanh viết 14:08 ngày 07/01/2019

Giới thiệu về kiến trúc Microservices

Một vài năm trở lại đây, khái niệm kiến trúc Microservices hiện là chủ đề rất hot trong cộng động lập trình viên. Thật không khó để có thể tìm thấy một bài viết, một bản báo cáo hay một bài thuyết trình về chủ đề này. Vậy Microservices là gì? Ưu điểm và nhược điểm của kiến trúc ...

Tác giả: Hoàng Hải Đăng viết 14:08 ngày 07/01/2019