Everything you should know when design a domain-specific language (Pt. 1): General-purpose vs. Domain-specific

Hello guys, this series is going to discuss about the design and implementation of a domain-specific language (DSL). Actually this is not a new topic all over the world, when studying at the university, me and my partner have created a transpilling language based on Java to overcome the ...

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

Tập áp dụng TDD cho dự án sử dụng VueJS

1. TDD là gì? "Test-Driven Development” có thể được tạm hiểu là mô hình phát triển với trọng tâm hướng về việc kiểm thử. TDD được xây dựng theo hai tiêu chí: Test-First (Kiểm thử trước) và Code-Later (Code sau) 2. Các bước tiến hành TDD Viết 1 test cho hàm mới. Đảm bảo rằng test sẽ ...

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

Hàm tham chiếu trong Kotlin: sử dụng hàm như một lambdas khắp nơi

Hàm tham chiếu là sự khác biệt và có bước cải tiến lớn trong Kotlin mà Java không có. Nếu bạn đã từng nghiên cứu hoặc làm việc với Kotlin rồi thì bạn sẽ thấy rằng ** Kotlin hỗ trợ một hàm như một kiểu** tức là Kotlin coi mỗi hàm của chúng ta như một kiểu dữ liệu thông thường, có thể sử dụng nó như ...

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

Bật công tắc bật tắt đèn chỉ với CSS3

Trong bài viết này tôi sẽ giới thiệu tới các bước để tạo nút bật tắt đèn chỉ với CSS3. Hình dưới đây là kết quả của ví dụ này: Hãy bắt tay thực hiện nào. Cấu trúc HTML Cấu trúc HTML như sau, mình có giải thích trong comment. <div id="lamp"> <input type="radio" name="switch" ...

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

Laravel 5.5 + Vue.js: Simple CRUD Project

Tháng rồi dự án của mình dần đi vào giai đoạn cuối, cũng không có gì hay ho để khoe khoang với mọi người. Nên kỳ này mình lại quyết định quay trở lại loạt bài tutorial quen thuộc. Chẳng là trong lúc rảnh rỗi ngồi xem lại dự án cũ (Laravel 5.4 + Angular 2) cũng thấy có nhiều cái hay, mình tranh ...

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

10 lời khuyên cho việc quản lý thời gian trong một thế giới đa nhiệm

Quản lý thời gian là một trong những kỹ năng không có ai dạy cho bạn trong trường, nhưng bạn phải tự tìm hiểu. Nó không quan trọng nữa dù cho bạn sẽ lanh lẹ như thế nào khi bạn không thể sắp xếp thông tin cũng như để tiếp cận nó. Và nó không quan trọng nữa dù cho bạn có kỹ năng tốt như thế nào vì ...

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

ML: Terminology & K-Nearest Neighbors

Machine learning is a large subject to learn, so before we start diving into it I though it would be best to understand some key terminology first. Key Terminology Gathering data is an important part of ML, data usually made up of multiple measurements for example like weight, height, length, ...

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

Tự xây dựng hệ thống CI/CD cùng Ansible, Docker và Drone

1. Giới thiệu Trong các bạn, có khá là nhiều người đã dùng qua các hệ thống CI/CD như Jenkins, GitLab CI, Buildbot, Drone, Concourse ... Bài viết này của mình sẽ hướng dẫn các bạn tự tạo một hệ thống CI/CD dựa trên Ansible, Docker và Drone. Trên Viblo đã có sẵn các bài viết về Ansible, Docker ...

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

Intro to Deep Learning

What is Deep Learning? “Deep learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations ...

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

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

Các ký hiệu còn lại trong biểu thức chính quy: Kí tự Ý nghĩa Khớp 'x' hoặc 'y' Ví dụ, khớp với 'x' trong chuỗi "target x" và 'y' trong chuỗi "target y". {n, m} Kí tự đứng trước phải xuất hiện từ n đến m lần. n và m là số nguyên dương và n <= m. Nếu m bị bỏ qua, nó ...

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

5 Calendar and Date Picker jQuery Plugins

Calendar và datepicker được các web developer sử dụng rộng rãi và là một trong những phần quan trọng nhất của thiết kế web. Xây dựng một trang web sử dụng các jQuery plugin này rất đơn giản. Dưới đây là 5 jQuery plugin giúp cho thiết kế UI lịch và ngày: FullCalendar CLNDR.js Simple ...

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

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

Ở phần trước mình đã xây dựng demo được một ứng dụng chat cơ bản, các bạn có thể xem lại tại đây https://viblo.asia/p/reactjs-xay-dung-ung-dung-chat-va-deploy-len-web-phan-1-Az45bAvwlxY Phần này sẽ làm thêm 1 chức năng định danh người chat và hiển thị những ai đang online và deploy ứng dụng lên ...

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

Tôi đã hack 40 website trong 7 phút như thế nào

Đây là bài dịch, bài gốc các bạn có thể xem ở đây : https://hackernoon.com/how-i-hacked-40-websites-in-7-minutes-5b4c28bc8824 Tôi bắt đầu học về bảo mật thông tin và hacking từ mùa hè năm ngoái. Sau một năm kinh qua các cuộc thi CTF, wargame, giả lập kiểm tra thâm nhập (penetration testing ...

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

Basic Tricks

Trong bài này tôi xin giới thiệu một số lệnh git cơ bản mà chúng ta sẽ hay phải sử dụng tới. 1. Saving State Khi bạn đã tạo 1 project với bộ khung sẵn có, và nó đang chạy ổn đinh. Bạn bắt đầu thực hiện phát triển những chức năng thì bạn hãy lưu lại trạng thái lúc nó đang ổn định nhất: $ git ...

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

Routing in Angular (P2)

Tiếp nối chuỗi bài về Angular, hôm nay mình xin trình bày về Routing strategies, Route Parameters,... Routing Strategies Cách ứng dụng Angular phân tích và tạo đường dẫn từ và để định tuyến các định nghĩa được gọi là location strategy. (Nó được biết đến với Angular 1là routing modes) Giá trị ...

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

Creating and working with WebAssembly modules

WebAssembly là một cách để chạy các ngôn ngữ lập trình khác ngoài JavaScript trên các trang web. Trong quá khứ khi bạn muốn chạy code trong trình duyệt để tương tác với các phần khác nhau của trang web, lựa chọn duy nhất của bạn là JavaScript. Trong thực tế, các nhà phát triển có thể sử dụng cả ...

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

Series Hướng dẫn xây dựng ứng dụng bán hàng bằng angular js kết hợp với Rails(Phần 4)

Hey các bạn! Lại một tháng nữa trôi qua, tháng vừa qua thì Đà Nẵng trở mình trong cái ẩm ướt và một chút không khí lạnh. Nó cũng khiến con người ta dễ lười đi. hì hì ^^ Hôm nay tôi sẽ cùng với các bạn tiếp tục những Series xây dựng ứng dụng bán hàng bằng angular js kết hợp với Rails(Phần 4) Những ...

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

ARKit for Apple iOS 11

Với mỗi lần phát hành mới của iOS, Apple dường như đã giới thiệu ít nhất một thư viện hoặc công nghệ mới tạo ra hứng thú thêm cho các nhà phát triển. ARKit là một trong những công nghệ mang lại sự thú vị, nhưng cũng mở ra nhiều con đường mới cho phát triển ứng dụng iOS. Kể từ khi ARKit được công ...

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

Regex trong Python

Regular expression (Regex) là một chuỗi miêu tả một bộ các chuỗi khác, theo những quy tắc cú pháp nhất định. Bạn cũng có thể gọi Regex là một ngôn ngữ. Và hầu như ngôn ngữ lập trình nào cũng hỗ trợ Regular expression. Regular Expression trong Python được thể hiện qua module re, re Module cung ...

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

35 thói quen làm cho code khó bảo trì

Các thói quen xấu là rất khó bỏ và thậm chí là càng khó khăn hơn nếu bạn không nhận ra là những gì bạn làm đang làm giảm hiệu quả công việc. Nếu bạn đã biết nhưng lại không quan tâm đến, thì điều đó lại càng tồi tệ hơn. Với một người lập trình, tôi thấy có rất nhiều thói quen ko tốt, không chỉ xoay ...

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