Electrical Engineer turned Data Scientist. Married to Awesome. Occasional drawer of Minions.

My writings

72 Posts

Nghĩ lớn, bước nhỏ, đi nhanh, đổi kịp 02 December, 2018

Nhân dịp phải làm OKR (Objective & Key Result) cho bản thân trong năm 2019, và tình cờ đọc tư vấn của Mr. Nguyễn Huyền Linh cho các doanh…

Best practice khi viết code trong khoa học dữ liệu? 11 November, 2018

Dịch từ bài viết gốc Programming Best Practices For Data Science của Srini Kadamati đăng trên Dataquest.io tháng 6 năm 2018. Chắc các bạn…

Review Q3 2018 13 October, 2018

Đã hết Q3 của 2018, 6 tháng đã qua từ lúc làm review Q1 2018 , thời gian trôi nhanh quá, nhiều việc đã diễn ra, việc phải làm/ cần làm sắp…

Một vài ghi chú sau khi thi (và passed) AWS Certified Solutions Architect - Associate ngày 08.10.2018 08 October, 2018

Dưới đây là một vài ghi chép của tôi sau buổi thi AWS Certified Solutions Architect - Associate ngày 08.10.2018 tại NetPro (số 9 Trung Liệt…

Về bước tìm và xử lý dữ liệu của Việt Nam phục vụ Data Visualization nền web 06 May, 2018

Làm việc với D3js được nửa năm, một trong những điều bận lòng là chưa vẽ được một chart nào về Việt Nam (trừ lác đác mấy cái đơn giản kiểu…

Vài ghi chú ngày 30-04-2018 30 April, 2018

Vài ghi chú gộp lại của ngày 28 và 30-04-2018. Chỉ để khỏi quên sau này. Với T.A và M.Đ : Production mindset khác với outsource mindset.…

SVG và cách dùng thẻ <defs> 29 April, 2018

Khi làm việc với SVG và D3.js, thỉnh thoảng ta sẽ gặp từ khóa . Do bản thân từ "defs" không gợi lên ý nghĩa, nên làm ta thấy có chút khó…

Sử dụng D3js và SVG clipPath để tạo hiệu ứng đường chuyển động 29 April, 2018

Nếu dùng D3js, có lúc nào bạn tự hỏi làm thế nào để tạo ra 1 đường thẳng chạy giống như hình dưới? Hehe hình trên chỉ mang tính câu view.…

Joel Spolsky - Thời đại của StackOverflow 28 April, 2018

Tôi đã gặp rất nhiều người muốn làm kinh doanh chỉ đơn giản vì họ muốn kinh doanh. Paul Graham gọi đây là một “Playing House.” Những người…

D3.js & ReactJS: Khi hai ta về một nhà 27 April, 2018

Tại sao phải nói về D3.js và ReactJS? Bởi đây là 2 trong số những thư viện phổ biến nhất giúp xây dựng giao diện web: D3.js : thiên về trực…

D3js - Tiếp tục về panning và zooming 26 April, 2018

Mở đầu Trong bài Sử dụng D3.js để phóng to thu nhỏ SVG , tôi đã có bước đầu tiếp cận d3-zoom ở mức độ tổng quan. Ở bài này, phần trình bày…

Sử dụng D3.js để phóng to thu nhỏ SVG 23 April, 2018

Khi vẽ bằng D3.js, có rất nhiều lúc ta có nhu cầu phóng to, hoặc thu nhỏ một vùng nào đấy để nhìn rõ hơn các chi tiết. Tính năng này được D…

Bước đầu làm quen với Higher-Order Function trong lập trình hàm 22 April, 2018

Cách đây 6 tháng tôi vẫn còn chưa biết gì về Functional Programming, đọc báo thấy mấy bài phản đối phong cách lập trình kiểu này. Vậy mà bây…

ReactJS - Form validation với một hoặc nhiều inputs 21 April, 2018

Bài toán: Validate form Bắt chước tính năng validate form như hình dưới (thegioididong.com): Yêu cầu : Chỉ cần kiểm tra xem số điện thoại…

Dan Abramov on how we approach new things in ReactJS 17 April, 2018

Lưu ý của Dan Abramov (tác giả của Redux).

Uncontrolled vs Controlled forms trong ReactJS 17 April, 2018

Khi học ReactJS qua một số courses/ tutorials online, ta sẽ gặp kha khá lần phải tương tác với form . Cũng phải thôi, form là một trong…

Javascript - inititalValue trong reduce() có quan trọng không? 16 April, 2018

Đọc code mẫu về hàm trong MDN , thấy hàm khá "đơn giản". Số ở thứ 2 chính là , một tham số truyền vào cho nhưng không bắt buộc…

Nodejs để duyệt file, đổi tên file, rồi move vào folder mới vừa được tạo 12 April, 2018

Bài toán: Khi chuyển blog từ Jekyll sang Gatsby, cần phải xử lý đống bài viết từ blog cũ: Format file bài viết của blog cũ (Jekyll) : Chỉ…

JavaScript - vscdoe - thay thế ký tự dùng regular expression 09 April, 2018

Bài toán: Cần sửa dấu " " thành " " trong file JSON khi mở bằng , cụ thể là sửa khoảng 200 mẩu tương tự như đoạn code dưới đây. Không sửa…

Review Q1 2018 08 April, 2018

Đã hết Q1 của 2018, và hơn 7 tháng từ khi chuyển ngành. Cứ mỗi tuần trôi qua lại thấy lâu đằng đẵng, muốn mình lớn nhanh, lớn nhanh hơn nữa…

Layout - Làm thế nào để lên khung layout, và hỗ trợ responsive 06 April, 2018

Day 38 : Bài toán: Tự học ReactJS bằng cách làm one-page app đơn giản ( ví dụ ), vấn đề mình đau đầu nhất là (1) lên layout, và (2) làm…

App vẽ spirograph - Học ReactJs bằng cách tự làm one-page App đơn giản 30 March, 2018

Giới thiệu Tên tiếng Việt: Thước vạn hoa (phiên bản đơn giản) Mục đích: Học React: các khái niệm cơ bản như component, state, props…

React Developer Tool để sờ nắn props, state và method ReactJS 28 March, 2018

Với người mới học Reactjs, việc dữ liệu được truyền từ component con đến component cha thông qua hàm callback truyền từ cha xuống con tương…

JavaScript - const array vẫn có thể push thêm dữ liệu 14 March, 2018

Xưa nay vẫn hiểu trong JavaScript là khai báo hằng số, bât biến, không thể thay đổi chỉnh sửa. Nên khi khai báo mảng bằng và thêm dữ…

React - truyền dữ liệu từ component con đến cha thông qua callback 14 March, 2018

Bài toán : Với 1 React app có tổ chức component như dưới đây, làm sao để mỗi lần có thay đổi ở component , thì component cũng thay đổi…

JavaScript - RegExp - Kiểm tra input nhập vào có phải là percentage 22 February, 2018

Bài toán : Kiểm tra xem input nhập vào có phải là dạng "percentage" hay không? input này là khách hàng tự nhập toàn bộ vào 1 file JSON,…

NodeJS - globals in a global 15 February, 2018

Nếu như khi viết JavaScript, ta gọi object thì nó được coi là ông trùm của mọi object còn lại. Vậy với Node.js thì sao? Node.js không làm…

Nodesjs - Require chưa bao giờ hết thắc mắc 15 February, 2018

Tham khảo: Kipalog - Lê Minh Tuấn: NodeJS - require, exports, module.exports edX - Microsoft: DEV283x: Introduction to Node.js Requiring…

Linux - Curl là gì? một vài bài Kipalog hướng dẫn dùng Curl test API 14 February, 2018

Trong lúc tìm hiểu về phần server-side programming, lệnh rất hay gặp, không thể tàng lờ nó mãi được. Vậy là gì mà tại sao mọi người…

Về Callback Hell 12 February, 2018

http://callbackhell.com/ Callback hell trông như thế nào? Là những thứ oằn tà là vằn như thế này: Là: những dòng code được lùi vào 1, 2,…

Linux - Tìm và đóng ứng dụng đang chiếm cổng của mình 06 February, 2018

Bài toán: Chạy app bị báo cổng 3000 bị chiếm, cần tìm ứng dụng nào đang chiếm cổng 3000 này để đóng nó đi. Thực hiện: Chạy lệnh sau để biết…

D3.js - Packs of circles to present hierarchical data 01 February, 2018

I have just finished another chart today in D3.js, it's Circle Pack . Here are some notes before next move: What is "Circle Pack" Circle…

D3.js - Interpolate là gì 29 January, 2018

Trong toán học tồn tại 1 khái niệm tên là " nội suy (interpolation) ", và trong D3.js cũng vậy. Nội suy là gì? Để giải thích nhanh cho…

Phân vân với readable code 28 January, 2018

Cảm giác khi đọc code của người khác không phải lúc nào cũng đem lại cảm giác dễ chịu. Trừ những lúc khâm phục ra, thì còn lại chủ yếu là vò…

Linux - Chụp ảnh màn hình trong chế độ TTY 27 January, 2018

How to Take a Screenshot of the Terminal Output in Text Mode (TTY) - Ubuntu/Linux Mint http://www.upubuntu.com/2013/01/how-to-take…

Linux - $PATH để làm gì? 26 January, 2018

Ghi chú: Series Today I Learn trong vòng 100 ngày thử thách bản thân. Từ lúc đụng vào Linux, đi đâu cũng thấy . Vừa cài chương trình tên…

ES6 - mấy kiểu cú pháp chưa có cơ hội dùng 25 January, 2018

Bài này gốc từ Medium - 7 Hacks for ES6 Developers . Hầu hết mấy kỹ thuật này mình vẫn chưa có dịp dùng. Ghi chú lại có dịp tìm hiểu tiếp…

ESlint - parseInt phải có base 24 January, 2018

Hôm nay chạy 1 hàm để tách các chữ số trong 1 số nguyên, bị ESlint báo lỗi " Require Radix Parameter (radix) ". Hàm có tên là digitize lấy…

CSS pointer-events 23 January, 2018

Một khi đã dùng SVG với D3.js, khả năng ta gặp thuộc tính CSS (events có s ) rất cao. Thuộc tính này tác động đến hành vi của con trỏ…

Vẽ Spirograph bằng D3.js 21 January, 2018

Chắc hồi trẻ con ai cũng đã từng một lần nghịch 1 cái thước "sáng tạo" tên là " Spirograph " ( /ˈspīrəˌɡraf/ ). Khi ấy ta đặt 1 vòng tròn…

Mint - Làm sao để restart Cinnamon khi bị treo 18 January, 2018

Sau một thời gian dùng Mint thì tình trạng máy bị đơ (freezed, không sao làm được gì) xảy ra tương đối thường xuyên. Hồi đầu luống cuống, cứ…

Webpack 01 - Khi nào thì dùng và tại sao? 16 January, 2018

TL;DR (Dài quá, ứ đọc!): Webpack nghe thì có vẻ rất đơn giản, đó là trong một dự án lớn, nó giúp đóng gói 1 nhiều file JavaScript vốn được…

cá. 09 January, 2018

Nói thực, tôi cũng không biết gì về cho đến hôm bị cô bạn (Linh Ngô) đè ra cài ngấu nghiến trên máy và bảo cái này là " bắt buộc " nếu…

Tại sao tôi viết 07 January, 2018

Tôi vốn đã muốn viết 1 bài tử tế về " Tại sao cần viết blog " từ tầm tháng 10 năm ngoái (2017), với cấu trúc mạch lạc, khoa học, tham chiếu…

Danh sách những blog theo dõi 02 January, 2018

Tập hợp danh sách những blog cá nhân viết về JavaScipt, ReactJS, D3js và lập trình nói chung. Lý do phải có riêng phần này bởi việc follow…

[Tìm hiểu về Blockchain] Bài 01 - Ví dụ siêu đơn giản để giải thích về bitcoin và blockchain 01 January, 2018

Tôi không định đầu tư bitcoin. Tôi chỉ muốn biết " blockchain là gì? ", " tại sao nó lại ầm ĩ như thế trên thế giới và Việt Nam? ", " liệu…

A look back on 2017 before turning to 2018 30 December, 2017

"... Tri túc tiện túc, đãi túc, hà thời túc , Tri nhàn tiện nhàn, đãi nhàn, hà thời nhàn ?... " Nhàn (Nguyễn Công Trứ) "Biết đủ là đủ, đợi…

[JavaScript] Chọn innerHTML, innerText hay textContent 27 December, 2017

Tại sao có bài viết này? Từ hồi đi học cho đến bây giờ đi làm, khi cần thay đổi hiển thị trong (cái này dùng thường xuyên à nha), tôi…

[D3.js] Xuất ảnh từ chart ra định dạng SVG, PNG, JPG và PDF 19 December, 2017

Sau một ngày tìm hiểu về cách xuất chart (vẽ bởi d3.js) sang file ảnh dạng , , và file , tuy chưa thành công nhưng tôi note lại vài…

[JavaScript] Khi Object được tạo từ hư vô 16 December, 2017

Ghi chú: Tiêu đề hoàn toàn mang tính câu view Tại sao lại có bài viết này? Một ngày đẹp giời tôi cần kiểm tra thuộc tính của 1 object trước…

Windows hay Linux cho lập trình front-end? 13 December, 2017

Sau 2 tháng dùng Windows lập trình JavaScript, tôi đã quyết định từ bỏ môi trường này để chuyển sang Linux (Mint). Dưới đây note vài điểm để…

Những "hiệp sĩ không đầu" trong lập trình 12 December, 2017

Thỉnh thoảng lướt bản tin JavaScript Weekly , tôi lại thấy có những thuật ngữ khá lạ như headless browswer , rồi headless mode cho…

ESlint, Prettier và VS Code 08 December, 2017

Cuối cùng cái ngày định mệnh đó cũng đã đến. Tôi đã code xong phần của mình, trong dự án đầu tiên của cuộc đời lập trình viên. Không gì sung…

Sự ra đời của Karma và thế giới của testing tool vào quãng 2013 (phần 4) 03 December, 2017

4. Những giải pháp hiện tại Trong phần này, tôi sẽ mô tả về các giải pháp hiện tại cho việc kiểm thử các ứng dụng web, giải thích các ưu…

Sự ra đời của Karma và thế giới của testing tool vào quãng 2013 (phần 3) 02 December, 2017

3. Vấn đề testing của thế giới lập trình web nằm ở đâu? Trong phần này, tôi muốn nhấn mạnh việc các lập trình viên web không có đủ công cụ…

Sự khác nhau giữa test runner, testing framework, assertion library, và testing plugin? 01 December, 2017

Nếu tưởng tượng Khoa học Máy tính (Computer Science) là một thế giới mới mà bạn đang khám phá, thì mỗi lĩnh vực trong đó lại là những thế…

Sự ra đời của Karma và thế giới của testing tool vào quãng 2013 (phần 2) 01 December, 2017

2. Tại sao lại là Testing (Kiểm thử)? Test Driven Development (TDD) vẫn là cách hữu hiệu nhất để phát triển phần mềm, ít nhất là đối với tôi…

[John Sonmez] Tự học lập trình? Dễ hay khó? Nên chăng? (Phần 2/3) 30 November, 2017

TỰ HỌC LẬP TRÌNH (PHẦN 2) Sách: The Complete Software Developer's Career Guide Tác giả: John Sonmez Xem phần 1 tại đây “DISADVANTAGES TO…

Đêm trước ngày làm việc đầu tiên, vài dòng về hơn 2 tháng vừa qua 15 October, 2017

Vậy là sau 2 tháng học front-end development ở Techmaster Vietnam, tôi đã được 1 công ty phần mềm ở Hà Nội nhận vào làm việc ở vị trí Kỹ sư…

[John Sonmez] Tự học lập trình? Dễ hay khó? Nên chăng? - Phần 1/3 14 October, 2017

Sau một thời gian đi học về lập trình front-end (HTML, CSS, JavaScript) ở trung tâm, tôi có thể mạnh dạn khẳng định là 95% những người mới…

[D3.js] Có đáng để học ở Việt Nam hay không? 04 October, 2017

Học D3.js để làm gì? có công ty nào ở Việt Nam cần nó? liệu đi làm chuyên về D3.js có đáng hay không? sau một thời gian chuyên về D3.js thì…

[D3.js] Chuẩn bị cho phỏng vấn về D3.js 03 October, 2017

Khi ngồi viết bài này là lúc tôi vừa kết thúc phỏng vấn 1 vị trí liên quan đến D3.js (sáng 03.10.2017). Buổi phỏng vấn rất cởi mở, cả phía…

[JavaScript is Sexy] Hiểu về “this” cho rõ và thuần thục các cách dùng nó 27 September, 2017

Sau 2 tháng học Javascript, tôi vẫn không thể thấy thoải mái và tự tin khi nhìn thấy từ khoá "this" trong các đoạn code của người và của…

[Zell Well] Lựa chọn nào cho việc học Javascript 23 September, 2017

Đây là 1 bài dịch từ 1 email của Zell Liew với tiêu đề "JSR - Exploring JavaScript peripherals (The Adult Phase)". Tôi đăng ký nhận thư của…

[Dịch] 16 khái niệm của Javascript cần nắm rõ 07 September, 2017

Lưu ý: Bài gốc ở đây – tác giả  Richard Bovell   Tôi dịch lại bài viết của Richard Bovell ở đây để giúp mình định hình một khung sườn về…

Làm thế nào để tìm và học theo các đoạn code đẹp của Javascript? (phần 1) 23 August, 2017

Phần 1: Viết ngày 23.08.2017 Dù mới học Javascript nhưng tôi thực sự mong mình không chỉ viết được 1 chương trình "chạy được", mà còn phải…

[Rick West @ Medium] Làm thế nào đê bắt đầu xây dựng thương hiệu cá nhân đối với 1 lập trình viên mới vào nghề 13 August, 2017

Sau khi tôi đọc bài gốc trên Medium thì trên TechTalk đã có ngay bài dịch. Tuy vậy, do thấy bài dịch này có mùi Google Translate tương…

2 tuần sau khi học Front-End Web ở Techmaster 11 August, 2017

Hôm nay 11.01.2017 tròn 2 tuần tôi bắt đầu 1 hành trình rất mới – Front-End Web Development ở Techmaster . Cảm giác của tôi ư? Vô cùng…

Tại sao là TechMaster, tại sao là Web Development? 28 July, 2017

Khi tôi manh nha ý định chuyển sang học và làm lập trình, tôi đã đi tìm một trung tâm để có thể gửi gắm tương lai của mình. Việc chuyển nghề…

[Review sách] Làm sao nói về những cuốn sách chưa đọc? 28 July, 2017

Làm sao nói về những cuốn sách chưa đọc? Tác giả: Pierre Bayard, Dịch giả: Bảo Chân Có lẽ giới hạn trong những cuốn sách văn học và lý luận…

Trò chuyện với Thuận Phạm CTO Uber Global 25 July, 2017

Dù thích Uber, nhưng có lẽ tôi không phải là fan của thương hiệu này mà là của công nghệ và sự sáng tạo của họ. Cả gia đình tôi, rồi bạn bè…

Tại sao tôi chuyển sang nghề lập trình 25 July, 2017

Note: Tôi sẽ còn quay lại bài này một vài lần nữa để chỉnh sửa lại câu chữ những suy nghĩ của bản thân khi quyết định từ bỏ ABB, tạm xa con…