Migrate Gradle Plugin từ Groovy sang Kotlin

Groovy là một ngôn ngữ lập trình hướng đối tượng trên nền Java. Nó là một ngôn ngữ lập trình động với các tính năng tương tự như Python, Ruby, Perl, và Smalltalk. Hơn nữa, nó cũng có thể được sử dụng như là một ngôn ngữ kịch bản chạy trên nền máy ảo Java. Để migrate Gradle Plugin từ Groovy sang ...

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

Hướng dẫn làm tam giác với css mà không sử dụng Ugly Hacks

Bất cứ ai đã cố gắng tạo ra các mũi tên upvote, bong bóng, lời thoại hay các phần tử nhọn khác, biết rằng để tạo ra một tam giác chỉ có CSS, bạn phải sử dụng một số loại hack. Hai giải pháp phổ biến nhất là tạo tam giác của bạn là sử dụng border hoặc sử dụng các ký tự unicode. Chúng ta phải thừa ...

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

9 công cụ mà người làm trải nghiệm người dùng cần phải có

Bạn đã có bao nhiêu công cụ để làm trải nghiệm người dùng rồi? Hãy tham khảo video dưới đây để biết là các bạn ở bển đã dùng gì để thiết kế trải nghiệm người dùng nào. Bạn tây đen đen có tên Laith Wallace này khá trẻ, ít ra là tôi cảm thấy thế, do đó cách tiếp cận của bạn đó khá hiện đại. Tôi sẽ ...

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

Lời khuyên thiết thực cho người kiểm thử phần mềm

Trong quá trình kiểm thử phần mềm, chúng ta gặp vô vàn những khái niệm những trường hợp mà chưa bao giờ gặp phải mà không biết làm thế nào? Dưới đây là danh sách các nguyên tắc và lời khuyên dành cho người kiểm thử đã được thu thập từ các nhân viên kiểm thử lâu năm để giúp cho người kiểm thử có ...

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

Cucumber & Espressco - Behavior Driven Development (BDD) for Android - Phần 1

|. Introduction BDD (Behavior Driven Development) là một quá trình phát triển phần mềm dựa trên phương pháp Agile(phát triển phần mềm linh hoạt). BDD là sự mở rộng của TDD (Test driven development) với mục tiêu chính mà các bài kiểm tra chấp nhận có thể được quản lý bởi cả chủ sở hữu sản phẩm ...

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

Tối ưu hóa phần Front end cho trình duyệt (part 1)

Tối ưu hóa tức là tập trung vào cải thiện tốc độ và mức độ hài lòng. Việc tối ưu này sẽ khiến cả user, developer happy hơn và đồng thời cải thiện SEO ranking của của trang web. Chúng ta không thể kiểm soát các trình duyệt nhưng thông qua việc hiểu cách chúng hoạt động, chúng ta có thể tối ưu hóa ...

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

Một số style CSS đơn giản mà hữu dụng

.verticalcenter { position : relative ; top : 50% ; -webkit-transform : translateY ( -50% ) ; -o-transform : translateY ( -50% ) ; transform : translateY ( -50% ) ; } html, body { height : 100% ; } div { height : 100% ; } ...

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

Cách cấu hình send mail thông qua sendgrid & track user read mail

Xin chào tất cả các bạn đã đến với bài giới thiệu của mình, như thiêu đề, hôm nay mình sẽ giới thiệu cho các bạn một kỹ thuật send mail thông qua sendgrid và check xem user mình gửi mail đã check mail đó hay chưa. Tại sao mình lại chọn gửi thông qua sendgrid mà không phải là gửi mail thông thường ...

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

Go-lang: Anonymous fields in structs

Go-lang cho phép chúng ta định nghĩa 1 struct theo cách rất thông thường như ngôn ngữ C/C++. Tuy nhiên Go-lang còn cho phép định nghĩa các field trong struct nhưng không cần có tên gọi, chỉ cần kiểu. Các fields này được gọi là anonymous fields (Các thuộc tính/trường nặc, vô danh). Trong bài ...

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

Giải thích thuật ngữ CSS Grid Layout

Trong mô tả CSS Grid Layout, grid được định nghĩa như sau: The grid is an intersecting set of horizontal and vertical grid lines that divides the grid container’s space into grid areas, into which grid items (representing the grid container’s content) can be placed CSS Grid Layout ...

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

Rails với SQL Server - Phần 2: Sử dụng SQL Server trong Rails app

Ở phần trước, mình đã hướng dẫn các bạn cài đặt SQL Server trên Ubuntu. (Link đây ^^) Đến với phần này chúng ta sẽ đi vào vấn đề chính đó là việc sử dụng SQL Server trong một ứng dụng Rails. Chắc chắn rồi, để có thể sử dụng các câu lệnh thân thuộc như User.first, User.find_by, .... thì bạn phải ...

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

Ứng dụng beacon trong việc xác định vị trí(Phần 1)

Beacon là thiết bị điện tử nhỏ phát ra tín hiệu bluetooth năng lượng thấp Bluetooth Low Energy (BLE). Bất kỳ thiết bị nào có công nghệ BLE đều có thể bắt được tín hiệu này, chẳng hạn điện thoại thông minh và máy tính bảng. Công nghệ mới này tạo ra cuộc cách mạnh hóa cho quyết định của các công ty ...

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

Don Norman (ông tổ của UX) nói về 3 thứ cảm xúc cần tạo ra cho sản phẩm

Bạn chắc đã biết Don Norman là người đầu tiên gọi tên công việc của mình và in lên name card của mình chức danh: UX Designer. Ông được coi là ông tổ của thiết kế trải nghiệm người dùng hiện đại. Bạn hãy xem video này, nhưng hãy tỉnh táo, video này dễ dàng đánh lừa bạn về điều mà ông Norman muốn ...

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

Beginner / Fresher thì cần học cái gì ?

Sau 1 series dài giành cho các bạn intermediate (kiến trúc hệ thống trên Laravel), giờ mình sẽ chém gió cùng các bạn beginner / fresher 1 chút nhé. Đây là cách nhìn và suy nghĩ của mình, có thể đúng, có thể sai nên các bạn cứ vào comment nhiệt tình nhá </p> <div class= Tác giả: Tạ Quốc Bảo viết 15:15 ngày 12/08/2018

The hidden cost of the invisible queries in Rails

Rails là một framework tuyệt vời được xây dựng trên ngôn ngữ Ruby. Nó cho phép chúng ta tạo ra các ứng dụng web mà không nhất thiết phải hiểu biết hết về các công nghệ cần sử dụng. Để làm được điều đó thì Rails được tối ưu hóa để giảm bớt tối đa khối lượng công việc cho các lập trình viên để họ có ...

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

Cucumber (P4) - Cucumber Options & Report

Bài viết này sẽ giới thiệu 2 kiểu định dạng reports hay dùng: Pretty Format và Json , các tùy chỉnh ( Options ) để chạy tests hiệu quả và tinh chỉnh code gọn nhẹ với Backround Script . Cucumber Options đóng vai trò như một file cài đặt các thuộc tính cho tests. Các thuộc tính và hay dùng của ...

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

Làm thế nào để xây dựng một Recommender System (RS) - Phần 1

Bạn đã bao giờ gặp phải những trường hợp như sau: Bố mẹ bạn mới sử dụng Facebook và mới chỉ kết bạn với một vài người thân trong gia đình bạn. Tuy nhiên vài hôm sau, Facebook đã tự gợi ý cho hai cụ những người họ hàng hang hốc của bạn mà thậm chí ngay cả bạn cũng không biết ??? Bạn ...

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

11 nguyên tắc khi thiết kế Bottom Navigation Bar trên mobile

Đầu tiên tôi phải nói rằng, đã có 1 thời gian dài tôi dị ứng và ko bao giờ có thiết kế mà sử dụng Bottom Navigation Bar. Nguyên nhân thứ nhất thực sự rất hài hước: thiết bị thường ngày của tôi quá nhỏ, một chiếc iphone 5 với màn hình 4.5 inch. Nguyên nhân thứ 2 là Google Material Design lúc đó ...

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

Day 21 - Adventure Game Tutorial

さて、Unityちゃんトゥーン化が中途半端に終わってしまいましたが、今日からはこれをやっていきましょう。 今まで僕がやって来たのは、やりたい事を実行するためにどんなコードを書けばいいのか?という形でした。 しかし、今回からは上のようなチュートリアルなどをベースに学習して、それを元にどんな機能を実装出来るか?という形でやっていきます。 まずは、チュートリアルを進めます。 Overview game what i will make 今回作るのは、クリック移動型のアドベンチャーゲーム。 街を歩いていろいろなアイテムを集めて変装して、警備員を騙して侵入できたらクリアという流れ ...

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

Day 22 - Adventure Game Tutorial 2

今日は昨日かいたコードについて学習していきましょう。 とりあえず、それぞれ関数ごとに見ていきましょう。 この動画で書いたコードですね Start private void Start() { agent.updateRotation = false; inputHoldWait = new WaitForSeconds(inputHoldDelay); destinationPosition = transform.position; } 開始時にこちらを実行すると。 一文ずつ取り出してい ...

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