Automation Test: Process, Planning & Tools

Mỗi nhóm phát triển phần mềm đều có qúa trình kiểm tra các sản phẩm của mình trước khi deliver. Để đảm bảo có thể cover và gỉai quyết những lỗi chức năng tiềm ẩn hay lỗi phát sinh trước khi sản phẩm được release. Tuy nhiên, thậm chí với các quy trình kiểm tra thủ công tốt nhất, đôi khi những lỗi ...

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

Giải quyết vấn đề sử dụng paginate kết hợp mệnh đề having trong Laravel

Đặt vấn đề Chào các bạn, ở bài viết này mình sẽ đề cập đến một lỗi mà có lẽ mọi người hay gặp khi làm việc với query trong Laravel. Mình nói sơ qua về ngữ cảnh bài toán đơn giản như thế này: Mình có table shops chứa thông tin cơ bản của một shop như tên, hình ảnh, ngày thành lập. Table locations ...

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

Delegates in Swift

Delegates là gì? ... trong phát triển phần mềm, chúng là những giải pháp kiến trúc để giải quyết các vấn đề thường gặp trong những ngữ cảnh ( trường hợp) nhất định, nó được nói đến phổ biến nhất là "design patterns". Delegates là "design patterns" cho phép đối tượng gửi "message" đến đối tượng ...

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

[Android Performance]Khắc phục triệt để khi ứng dụng của bạn bị "Treo"

Thông thường chúng ta rất hay gặp phải tình trạng crash apps, đó là khi ứng dụng hiện tại không thể hoạt động được nữa mà chỉ có thể bắt buộc tạm dừng (force close). Nhưng có một trạng thái khác ở một mức độ nghiêm trọng thấp hơn đó là Application Not Responding "Ứng dụng bị treo", tại sao tôi nói ...

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

Những sai lầm kinh điển khi quảng cáo bằng mạng xã hội

Mạng xã hội như facebook, zalo, Instagram có mức độ tương tác với người dùng tương đối cao, và hiện nay nó cũng được đánh giá là mỏ vàng cho các doanh nghiệp khai thác, tiếp cận với nguồn khách hàng tiềm năng. Đó là lý do mà nhiều doanh nghiệp cửa hàng chuyển sang tiếp thị trên zalo, bán hàng ...

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

Thôi nhầm lẫn giữa agile và Agile

Một cái là tính trạng, cái kia là phương pháp. Chúng tôi làm Agile. Chúng tôi rất nhanh nhẹn. Thật không may, chỉ có từ "nhanh nhẹn"(agile) đã gây ra một vụ tai tiếng gần đây, được gọi là một số loại thuốc chữa bách bệnh, phân biệt hoặc cơ chế bán hàng giữa các ngành công nghiệp. Bài viết này ...

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

Chọn framework php phù hợp

Giới thiệu PHP là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới, với phát hành gần đây của PHP 7 đã làm cho ngôn ngữ lập trình này nhanh hơn và ổn định hơn nhiều so với các phiên bản trước. PHP được sử dụng rộng rãi trong các dự án lớn. Hiện tại, PHP có chiếm đến 80% các trang ...

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

Các kí tự đặc biệt trong Regular Expressions (phần 1)

Các mẫu có thể chứa các kí tự đặc biệt cho các mục đích tìm kiếm nâng cao mà tìm kiếm trực tiếp sẽ khó khăn như tìm một đoạn chứa một hoặc nhiều hơn một kí tự b, hay tìm một hoặc nhiều kí tự dấu cách (while space). Bảng dưới đây mô tả các kí tự đặc biệt có thể dùng với biểu thức chính quy. Kí ...

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

7 ứng dụng giúp thu gọn URL hữu ích

Trong chúng ta, những ai thường xuyên gửi báo cáo cho khách hàng qua Chatwork hay Slack chắc chắn đều đã từng phải gửi kèm theo những đường link (URL) để khách hàng tham khảo. Tuy nhiên những đường link (URL) thường có text dài loằng ngoằng nên khi gửi cho khách hàng chắc chắn sẽ gây mất thiện ...

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

Reduce trong Ruby

Reduce là một function của Enumerable, tuy nhiên với nhiều Rubyists function này rất ít khi được sử dụng. Mọi người thường sử dụng reduce khi muốn tính tổng. [1, 2, 3].reduce :+ Nhưng từ Ruby 2.4.x trở lên thì chúng ta đã có sum làm việc đó [1, 2, 3].sum Nếu vậy chẳng nhẽ reduce trở lên ...

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

UNCAPTCHA – ĐÁNH BẠI HỆ THỐNG RECAPTCHA ÂM THANH CỦA GOOGLE VỚI ĐỘ CHÍNH XÁC 85%

NGUỒN CẢM HỨNG Trên khắp Internet, hàng trăm nghìn trang web dựa vào hệ thống reCaptcha của Google để phòng chống bot (trên thực tế, Devpost sử dụng reCaptcha khi tạo một tài khoản mới). Sau khi nhóm nghiên cứu của Google chứng minh thất bại hoàn toàn của bản reCaptcha trong năm 2012, hệ thống ...

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

File Storage trong Laravel

Laravel cung cấp một hệ thống tập tin mạnh mẽ trừu tượng nhờ gói Flysystem PHP tuyệt vời của Frank de Jonge. Sự tích hợp Larvell Flysystem cung cấp các trình điều khiển đơn giản để sử dụng với các hệ thống tập tin địa phương, Amazon S3 và Rackspace Cloud Storage. Thậm chí tốt hơn, thật dễ dàng để ...

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

ReactJs - Xây dựng ứng dụng chat và deploy lên web - Phần 1

Ứng dụng này là một web app đơn giản có chức năng chat realtime giữa các người dùng, phần frontend sẽ được xây dựng bằng ReactJs và đây cũng chính là trọng tâm kiến thức mà mình muốn chia sẻ với các bạn. Còn backend sẽ là một server node.js làm nhiệm vụ gửi và nhận tin nhắn giữa các người dùng, tất ...

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

Bắt Đầu với Javascript (P6)

Functions là một trong những khối xây dựng cơ bản trong JavaScript. Một function là một thủ tục JavaScript-một tập hợp các câu lệnh thực hiện một tác vụ hoặc tính toán một giá trị. Để sử dụng một function, bạn phải định nghĩa nó ở đâu đó trong phạm vi mà bạn muốn gọi nó. Trong phần này sẽ tìm hiểu ...

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

Xử lý multi items choice trong Recycler view

Trong khi làm project, sẽ có lúc bạn cần phải xử lý việc lựa chọn nhiều item (multi items choice) từ một list các item. Khi mà số lượng item tăng lên thì một lựa chọn tốt hơn là sử dụng recycler view để chứa các item vì recycler view có cơ chế tái sử dụng (recycle) view nên cho hiệu năng tốt hơn. ...

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

Làm việc với MSSQL trong Ruby với gem Tiny_tds

Trong bài viết này mình xin giới thiệu đến các bạn gem Tiny_tds để làm việc với MSSQL server trong dự án Ruby. Cài đặt. Trước tiên, phải cài đặt FreeTDS , với MacOS thì chỉ cần chạy lệnh đơn giản thế này: brew install freetds Sau khi cài đặt xong thì có thể kiểm tra bằng lệnh tsql -C ...

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

Android Architecture Components: Paging Library

Nhiều ứng dụng của chúng ta cần load rất nhiều data information từ Database. Queries đến Database có thể mất nhiều thời gian và sử dụng rất nhiều bộ nhớ. Do đó Google đã release thư viện mới là Paging Library có thể giúp bạn sử lý vấn đề này. Main component of Paging Library là PagedListAdapter ...

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

Load ảnh SVG từ sever với Androidsvg kết hợp với Glide

Xin chào mọi người, hôm trước mình gặp 1 bài toán là load 1 file ảnh từ sever về và hiển thị lên Imageview. Nhưng ảnh đó lại là ảnh svg. Ngồi hì hục mãi, cứ ngỡ là chỉ cần Glide là có thể load được lên như ảnh thường, lỗi này cũng do mình hơi chủ quan không xem lại document của glide. Sau 1 hồi ...

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

Design Pattern - Decorator

Tiếp tục chủ đề về design pattern, pattern của ngày hôm nay là Decorator, một pattern thuộc nhánh Structural Pattern. Định nghĩa Decorator là gì? Mình xin phép bê nguyên định nghĩa từ wikipedia cho tiện. In object-oriented programming, the decorator pattern is a design pattern that allows ...

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

Giới thiệu về hệ thống gợi ý (Recommender systems hoặc Recommendation systems)

I. Tổng quan về hệ thống gợi ý Hệ thống gợi ý (Recommender systems hoặc Recommendation systems) là một dạng của hệ hỗ trợ ra quyết định, cung cấp giải pháp mang tính cá nhân hóa mà không phải trải qua quá trình tìm kiếm phức tạp. Hệ gợi ý học từ người dùng và gợi ý các sản phẩm tốt nhất ...

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