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

Day 19 - Toon shader

昨日は灰色になった球体に敗北して終了しました。 今日は勝ちます。 Shader script さて、まずはToon/Basic Outlineの中身がどんな事になっているのか見てみましょう。 Shader "Toon/Basic Outline" { Properties{ _Color("Main Color", Color) = (.5,.5,.5,1) _OutlineColor("Outline Color", Color) = (0,0,0,1) _Outline("Outline awidth", Range(.002, 0.03)) = ...

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

Một số phương pháp bảo mật bảo vệ website của bạn tránh khỏi Hacker

Có thể bạn nghĩ rằng, trang web của bạn không có bất kỳ thông tin có giá trị nào để mà bị tin tặc (hacker) tấn công, nhưng bạn đã nhầm, các trang web bị xâm nhập mọi lúc. Phần lớn các xâm nhập an ninh web này không phải là để ăn cắp dữ liệu hoặc phá hỏng website của bạn. Thay vào đó, tin tặc cố ...

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

C言語の文法入門(2)

今回は演算子・条件分岐・ループについてまとめる 算術演算子 基本的な算術演算子は他の言語と変わらない 足し算 x + y 引き算 x - y 掛け算 x * y 割り算 x / y ※答えが少数か整数かは変数の型次第 あまり x % y 論理演算子 && 論理積(AND) || 論理和(OR) ! 否定(NOT) これも他の言語と変わらないですね 比較演算子 小なり a < b 小なりイコール a <= b 大なり a > b 大なりイコール a >= b イコール a == b ノットイコール a != b ...

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

Sử dụng MVVM pattern trong Xamarin Forms

Tổng quan về MVVM pattern Một trong những cách tốt nhất để kiến trúc ứng dụng bằng cách tách mã giao diện người dùng khỏi mã nguồn, đôi khi được gọi là business logic. Một số kỹ thuật tồn tại, nhưng một kỹ thuật được thiết kế cho các môi trường dựa trên XAML được gọi là Model-View-ViewModel hoặc ...

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