How to globally install NodeJs packages without sudo in Linux and macOS

A lot of Linux and macOS newcomers to NodeJs got a problem with NPM installer: Either run npm install -g <package_name> under sudo privilege or install the package locally to the project (under node_modules folder) and call it via full path or npx. Fortunately, there’s a simple workaround that takes you less than a minute […]

Progressive Web App – tương lai của web apps (P2)

Trong bài trước, chúng ta đã bàn luận về việc vì sao các nhà phát triển ứng dụng lại “thích” viết một web app để chạy gián tiếp trong trình duyệt trên máy tính, nhưng lại dành thời gian để dựng ứng dụng native cho thiết bị di động. Tuy nhiên, sự ra đời của […]

Progressive Web App – tương lai của web apps (P1)

1. Sự bùng nổ của Web apps Trong chừng hơn 10 năm nay, với sự phát triển mang tính bùng nổ của web, thì các phần mềm nội tại trên máy tính đang dần mất đi sự quan tâm của các nhà phát triển, đặc biệt là các lập trình viên tự học, thích code […]

React vs Angular vs Vue: mèo nào cắn mỉu nào?

Khi bạn học lập trình Web trong những năm gần đây, sau khi được giới thiệu về HTML + CSS + JS cơ bản, và dựng một vài trang web cơ bản bằng HTML thuần, thì đều bước sang JavaScript frameworks như React hoặc Angular hay Vue. Và ở thời điểm hiện tại, nếu bạn […]

Giới thiệu MaterializeCSS

Như các bạn có thể nhận thấy, từ khi được giới thiệu tại Google I/O 2014 cùng với Android L (sau này là 5.0), ngôn ngữ Material Design đã trở nên phổ biến với tốc độ lan truyền cao. Với Android, đó có thể là một tiêu chuẩn thiết kế chung vì khi bạn tạo […]

Sử dụng SQLite trong Electron

Với các bạn làm Android thì việc sử dụng SQLite rất phổ biến. Và bạn có biết là mình cũng có thể tương tác với SQLite với Electron khi build ứng dụng cho Windows, macOS và Linux theo hướng tương tự? Bài hướng dẫn này sẽ hướng dẫn các bạn tích hợp module sqlite3 vào Electron project […]

Sử dụng Electron để viết ứng dụng xuyên nền tảng

Thực tế đã là dev thì ai cũng muốn viết ứng dụng xuyên nền tảng, tức là một project nhưng build và chạy được trên nhiều nền tảng. Dù lí do phụ là gì, nhưng bao giờ cũng gồm một hoặc cả hai lí do chính, là để chứng tỏ kĩ năng, kĩ thuật và […]

Chuyển đổi JS callback thành Promise

Như tôi đã giới thiệu trong bài Promise, Promise là một công cụ rất hay để giúp bảo vệ mắt tránh khỏi tình trạng lên độ do callback hell gây nên. Thực chất, Promise không ngắn hơn callback, mà ngược lại, còn có thể làm tổng số dòng code dài thêm. Nhưng cái hay của […]

Angularjs, Bài 9: Giới thiệu về ngInclude, ngView và Routes

Trong bài cuối cùng về các directives này, chúng ta sẽ tìm hiểu về ngInclude directive, ngView directive và kèm với đó là Routes với AngularJS. 1. ngInclude Nếu không phải viết một loạt các trang static HTML không liên quan gì nhau thì việc tái sử dụng code HTML là chuyện xảy ra như […]

Angularjs, Bài 8: Giới thiệu về ngClick, ngMouse và ngSubmit

Sau khi đã rành rẽ với các directives về dữ liệu như ngRepeat, ngShow, ngClass, ngSrc và ngHref, chúng ta sẽ đổ bộ sang các directives về events. 1. ngClick Có thể nói đây là event directive quan trọng nhất vì khi tương tác với các ứng dụng thì hoạt động click chuột hoặc chạm […]