Javascript async và defer

Javascript là 1 trong những tài nguyên chặn trang, có nghĩa là việc hiển thị HTML có thể bị chặn hay làm chậm bởi Javascript. Khi parser đọc đến <script> tag, bất kể là inline hay là external file, quá trình parse sẽ tạm dừng để fetch script đó về và execute. Việc này có thể là vấn đề nếu ...

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

Laravel: Eloquent relationships

1. Vấn đề Input : Cho 2 bảng: Categories (id, name,..) và Posts (id, category_id, title, digest,..) có quan hệ 1-N. Output : Lấy ra danh sách categories, với mỗi category kèm theo 1 post mới nhất. 2. Thực hiện Quan hệ 1-N giữa 2 bảng được định nghĩa như sau: // Category model ...

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

GUIDELINES, BARRIERS, CHAINS AND GROUPS trong CONSTRAINTLAYOUT

ContraintLayout hẳn đã còn còn lạ lẵm đối với mỗi chúng ta, dù có thể các bạn chưa dùng nó lần nào nhưng tôi chắc rằng bạn đã từng thấy hoặc nghe qua về nó. Tôi sẽ chỉ nói qua về nó như sau. ContraintLayout nằm trong gói thư viện android support tương thích với API level 9 trở lên, loại viewgroup ...

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

Tiện dụng, tuyệt vời hơn khi sử dụng OneSignal thay Firebase trong `Push Notification`

Tác giả đã dùng thử OneSignal- một service Push Notification được Y Combinator đầu tư và đang phát triển cực kỳ nhanh chóng. Cũng miễn phí giống như Firebase, nhưng OneSignal lại có tính mềm dẻo linh hoạt như Parse (A/B Test, Tự động gửi tin, User Property ...) Vướng mắc của Firebase (Property ...

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

Tìm hiểu mô hình xoắn ốc Win - Win (Win – Win Spiral Model)

I. Tổng quan mô hình xoắn ốc Win - Win Là mô hình nhằm thỏa hiệp giữa người phát triển và khách hàng, cả hai cùng Win (tức là đôi bên cùng có lợi). Mô hình này sử dụng lý thuyết W( win-win) để phát triển phần mềm và những yêu cầu hệ thống, giải pháp kiến trúc, như những điều kiện thắng đã ...

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

Hướng dẫn về Web Components

Bài viết được dịch từ bài gốc: A Guide to Web Components của tác giả Rob Dodson, được đăng trên trang CSS-Tricks. Bài viết dưới đây là của một vị khách, Rob Dodson (@rob_dodson). Rob và tôi đã thảo luận về cách CodePen hỗ trợ để Polymer (một web components polyfill, đại loại vậy) hoạt động trên ...

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

Angular 2 căn bản - Phần 1: Giới thiệu về angular 2 và tạo web app đơn giản

1. Angular 2 là gì? Như các bạn đã biết, hiện có rất nhiều các framework về javascript trên thị trường như ReactJS, Vue.js, AngularJS.... Và trong bài viết này, mình sẽ giới thiệu đến các bạn một trong những framework được cho là tốt nhất hiện nay, đó là Angular 2. Và phiên bản này của Google ...

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

Software Development Process Model - Part 1

Software Life Cycle Phases Requirements, analysis, and design phase. System design phase. Program design phase. Program implementation phase. Unit testing phase. Integration testing phase. System testing phase. System delivery. Maintenance. The software process A structured ...

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

Kotlin Tips : Sử dụng Singleton, Utility Functions, Group Object Initialization và nhiều hơn nữa

Tất cả những Tips này để hỗ trợ các bạn viết code Kotlin trở nên tốt hơn và sử dụng tối đa những gì mà ngôn ngữ cung cấp. Có rất nhiều lợi ích cho Android Developer chúng ta khi sử dụng Kotlin như ngắn gọn, súc tích, an toàn và quan trọng hơn nó có thể tương tác với Java 100%. Và ngôn ngữ này ...

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

Databases on Android with Anko and Kotlin

Chào mọi người, hiện tại kotlin đã được google support trực tiếp và công nhận là một ngôn ngữ để phát triển android. Trong bài viết này, mình sẽ chia sẻ một vấn đề mà chúng ta rât hay gặp phải khi làm việc với android đó là database. Vậy với kotlin thì làm việc với database như thế nào cho tiện ...

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

Điều khiển thời gian với gem timecop

Khi viết unit test với rspec trong ứng dụng ruby on rails đôi khi sẽ gặp phải một số case thao tới với thời gian(Date time) mà ta khó có thể control được nó. Ví dụ như chỉ được tạo bản ghi sau 5 phút kể từ khi có request, nhưng khi viết spec sẽ có thêm một case thời gian là invalid - thường thi ở ...

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

7 pattern để cấu trúc lại ActiveRecord Models

Khi team muốn nâng cao chất lượng ứng dụng Rails, chúng ta phải tìm cách để loại bỏ thói quen làm model trở lên Fat. Fat models là gây ra các vấn đề về bảo trì trong các ứng dụng lớn. Vì sao Model lại Fat ? 1. Áp dụng sai SRP Chỉ gia tăng chứ không tập hợp các controllers vào theo miền ...

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

Sử dụng gem Pundit trong ứng dụng rails

Khi được giao cho làm một chức năng liên quan đến phân quyền. Mình bị comment và được suggest sử dụng Pundit. Lúc đấy cũng thắc mắc tự hỏi, sao lại dùng nó làm gì nhỉ, dùng thì được lợi ích gì chứ? Cũng từ lúc ấy, mình mới bắt đầu tìm hiểu về Pundit là gì? Dùng như thế nào và tại sao lại nên dùng ...

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

Unit test Nodejs project with mocha, chai, supertest and sinon

Hiện nay việc viết unit test là một phần không thể thiếu trong mỗi dự án. Điều đó cũng cần thiết khi chúng ta thực hiện deploy với hệ thống CI/CD. Hôm nay mình sẽ giới thiệu qua việc viết test api với cho Nodejs project với mocha, chai, supertest và sinonjs. Getting started Trước tiên cần chuẩn ...

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

Một số thủ thuật khi làm việc với Chrome DevTools

1. CSS Coverage Tính năng này khá hữu ích. Nó giúp chúng ta nhận biết được đoạn css hay js nào trong app mà chúng ta không dùng đến từ đó chúng ta có thể xóa block css đó đi để làm nhẹ file, 1 phần nào đó giúp tăng performance. Lưu ý: Đối với những file JavaScript thì chúng ta cũng làm ...

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

JPA tut

Table Of Contents Introduction Project setup Basics 3.1. EntityManager and Persistence Unit 3.2. Transactions 3.3. Tables Inheritance Relationships 5.1. OneToOne 5.2. OneToMany 5.3. ManyToMany 5.4. Embedded / ElementCollection Data Types and Converters Criteria API Sequences ...

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

Facial Recognition System: Face Alignment

In my last post I've shown how to identify the face from the given image or video. In this post we are going to talk about "Face Alignment" which is a normalization technique, often used to improve the accuracy of face recognition algorithms, including deep learning models. A process of facial ...

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

Tìm hiểu về testNG framework (Phần 4)

A. TestNG Parameters Mọi người đều biết tầm quan trọng của Parameterization trong thử nghiệm và trong kiểm thử tự động hóa. Nó cho phép chúng ta tự động chạy một trường hợp thử nghiệm nhiều lần với các giá trị đầu vào và xác nhận khác nhau. Vì Selenium Webdriver là một khuôn khổ thử nghiệm tự ...

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

Optional trong Swift

Chắc hẳn các bạn đã được nghe rất nhiều từ những lập trình viên Swift nói về sự tuyệt vời của Optional, một trong những đặc điểm cơ bản của ngôn ngữ lập trình Swift. Optional là một khái niệm mới trong ngôn ngữ lập trình Swift. Với việc sử dụng optional, ngôn ngữ Swift được Apple giới thiệu là ngôn ...

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

ASP.NET MVC Tip #8 – Tạo ASP.NET MVC GridView Helper Method

Trong thủ thuật này, bạn sẽ tìm hiểu làm thế nào để mở rộng ASP.NET MVC framework với một phương pháp helper mới sẽ hiển thị một bảng HTML của dữ liệu trong cơ sở dữ liệu. Hiện nay, framework ASP.NET MVC không bao gồm bất cứ điều gì đó là tương đương trực tiếp đến ASP.NET Web Forms GridView ...

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