npm: Tăng tốc gấp 3 lần và cài đặt package offline

Chắc chắn là ai đã từng làm việc với npm thì đều biết một điều rằng npm nó siêu chậm. Vì vậy mình hay hạn chế chạy npm install đến mức tối thiểu và thường không nhận được patch update, ... cũng như nhiều vấn đề khác phát sinh. Trong bài viết này mình sẽ giới thiệu với các bạn một package không ...

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

Làm quen với MithrilJS - Phần 1

Bài viết gốc được đăng ở Ê-ku, có sửa lại xíu cho phù hợp. Mithril là gì? Mithril là một JavaScript framework gọn nhẹ nhưng rất mạnh mẽ, được dùng để xây dựng các ứng dụng web một trang (Single Page Applications - SPA). Mithril được viết hoàn toàn bằng ES5, hỗ trợ xây dựng giao diện với ...

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

Tìm hiểu về Javascript Closure

Javascript Closure Closure là một hàm (function), trong hàm đó có sử dụng những biến độc lập (là biến được sử dụng locally trong hàm nhưng lại được khai báo ở ngoài hàm(function)). Các bạn cũng có thể hiểu nôm na: Closure là những hàm có khả năng ghi nhớ môi trường mà chúng được tạo ra. ...

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

[Javascript] Promise - Lời hứa ngọt ngào (P.1)

Mình cũng viết ở: [Javascript] Promise – Lời hứa ngọt ngào (P1) Live demo: https://repl.it/FqUc/0 Javascript là một ngôn ngữ rất hữu dụng nhưng lại hết sức kì quặc. Khi bạn làm việc với Javascript, một trong những điều khó khăn nhất mà bạn sẽ phải đối mặt đó là xử lí các lệnh bất đồng bộ ...

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

Userscript đổi emoticon lúc chat của Facebook thành Yahoo! Messenger

Cái này mình làm cũng vài tháng trước rồi, giờ chia sẻ cho bạn nào có nhu cầu nghiên cứu cho vui Github: yahoo-messenger-emoticons-for-facebook Cách cài đặt Cài đặt Tamperscript cho Chrome/Cốc Cốc hoặc Greasemonkey cho Firefox Vào link này rồi nhấn Install. Refresh các ...

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

Những vấn đề thường được hỏi khi phỏng vấn về Javascript

Nhu cầu về Javascript developer hiện nay trong thị trường IT là rất lớn. Nếu bạn có kiến thức ở mảng này thì cơ hội nghề nghiệp cũng như thu nhập của bạn cũng sẽ không hề ít. Nhưng trước khi bạn có được công việc mà bạn mong muốn, bạn sẽ phải thể hiện cho nhà tuyển dụng thấy khả năng của mình thông ...

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

Làm quen với MithrilJS - Phần 2

Tiếp tục loạt bài thú vị về framework không ai xài Các hooks trong vòng đời của vnode và component Trong bài viết trước mình đã nói sơ về vnode, là cách thức mithril xây dựng cây DOM trong trang. Bạn dùng hàm m(selector, attributes, children) để tạo ra vnode. // <h1 class="title" ...

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

[Trở lại cơ bản] DOM attribute và property

Trong loạt bài Trở lại cơ bản này mình xin trình bày lại các khái niệm cơ bản về tất cả mọi thứ mình đã từng được học bằng ngôn ngữ đơn giản nhất có thể. Bài viết này, nằm trong mục Web development chủ yếu giải thích về các khái niệm xung quanh HTML và DOM. HTML Như các bạn đã biết ...

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

JavaScript MVVM lib within 200 LOC (part 1)

Build your own rendering engine We’re not going to re-invent the wheel. We’re going to do simple things that help you have deep understanding of how it is implemented. However, the code will not totally useless. The code is actually part of my library named HtmlJs. Hopefully after ...

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

quick note angular 1 autofocus fix

Vừa nãy mình làm một cái search component dùng angular 1, gồm một cái toggle khi ấn vào thì overlay search hiện ra. Tất nhiên cái này thì piece of cake mẹ rồi. Tuy nhiên vấn đề là cái search text input phải tự focus vào nó chứ không thể để người dùng phải thêm 1 extra click được. OK, vậy anh thêm ...

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

Cơ bản về async await trong javascript

Nếu cho tôi 6 tiếng để đốn hạ một cái cây, tôi sẽ dành 4 tiếng đầu tiên để mài rìu. -- Abraham Lincoln Bạn có thể đọc bài gốc tại đây Khi bắt đầu lập trình với nodejs, vì javascript(js) là bất đồng bộ(asynchoronous) nên mình gặp khó khăn trong việc tổ chức code giống như trong lập trình ...

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

k-prime sum problem with jasmine specs

A friend of mine liked a programing problem on Facebook. The header say something like: 90% of silicon valley engineers take more than 20 minutes to solve this problem. Sounds like an intrigue lure, huh? Not sure if they actually clicked like it or it's just Facebook that wants me to see. Anyway, I ...

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

Phân biệt Lexical Scope và Block Scope trong javascript

Trong javascript có 2 loại scopes: lexical scope và block scope Lexical scope là không gian biến được khai báo ở trong hàm (function) . Từ khoá “var” được dùng để khai báo biến trong lexical scope của hàm . Ví dụ: ...

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

Share framework data-binding mình tự viết.

Chào các bạn, sau 2 năm nghiên cứu, mình đã viết 1 framework JavaScript. Hôm nay mình xin chia sẻ mong đem lại lợi ích cho cộng đồng JS Việt Nam. Framework của mình tên là HtmlJs. Link trang chủ, Github Tại sao lại cần 1 framework khác? Đầu tiên mình muốn nhấn mạnh là mình không muốn chỉ ...

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

Sự khác nhau giữa Scala và Java 8 (Phần 1)

1. Scala - ngôn ngữ lập trình hàm (Functional Language) "write less, do more" Ví dụ , nhu cầu ứng dụng của bạn cần lựa chọn một số từ (string) thích hợp thỏa mãn tiêu chí điều kiện của bạn từ một danh sách các từ - List(). Để thực hiện logic này trong Java (7, 6), cú pháp sẽ có ...

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

Javascript Tips - Những điều có thể hay trong JS (ep1)

Những điều có thể bạn đã biết hoặc chưa, những kinh nghiệm nho nhỏ của mình chia sẽ khi lập trình javascript, mong nó có thể giúp ích cho các bạn đang lập trình ngôn ngữ này Tránh lỗi khi dùng những default function của array Các default array function của javascript như map, forEach, ...

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

Giới thiệu series học lập trình Angular (Angular 2)

Xin chào các bạn, trong thời gian vừa qua cộng đồng Javascript lại đón nhận một đứa con mới đến từ "nhà" Google. Trải qua quá trình thiết kế, phát triển từ rất nhiều ý kiến của người dùng từ phiên bản Angularjs (Angular 1), Angular 2 - mình sẽ gọi là Angular cho thống nhất với tên phiên bản hoàn ...

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

Tìm hiểu về Biến trong CSS

Sử dụng biến trong CSS Những website lớn thường sẽ sử dụng rất nhiều CSS với lượng lớn giá trị bị lặp lại. Giả sử khi bạn muốn sửa màu chủ đạo của website thì rất có khả năng bạn sẽ phải sửa ở rất nhiều vị trí ví dụ như button, navbar, title,.... Điều này gây ra rất nhiều khó khăn khi code cũng ...

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

JavaScript Closures

Chào mừng sự trở lại sau kì nghỉ, đây cũng là bài viết cuối cùng trong năm 2015 của tôi. Trong bài viết này tôi sẽ giới thiệu với các bạn về Closure. Một khái niệm vô cùng quan trọng trong Javascript. Nếu muốn master Javascript một trong những thứ quan trọng bạn cần phải hiểu đó là Closure. ...

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

Code Monk(ey): Kiểm tra Array trong JS

Chuyên mục Code Monk(ey) bàn về những lỗi tai hại thường gặp khi code. Những lỗi này thoạt nhìn có vẻ rất hiển nhiên và vặt vãnh. Khi cần kiểm tra một Array có phải là một Array hay không trong JS, một số người sẽ viết đoạn code như thế này: // Giả sử `kips` là biến cần kiểm tra if (kips ...

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