July 4, 2017

Tôi viết sách - quyển sách về kỹ năng sống

Hạnh Phúc Thật Gần - Thiện Từ
Tôi vốn dĩ là một anh chàng IT, niềm đam mê vẫn là những dòng code khô khan nhưng đầy lý thú. Từ khi học lớp 7, tôi đã tiếp xúc với lập trình, ngôn ngữ đầu tiên là tôi tiếp cận là Pascal. Rồi dần dần tôi ngày càng đi sâu hơn vào thế giới IT. Các bài blog trên đây cũng đa phần là những bài viết về IT, kinh nghiệm mà tôi từng học, từng làm, từng trải nghiệm qua. Và đến hôm nay, tôi vẫn là một chàng coder không hơn không kém.

Đã rất lâu rồi mới viết tiếp một bài blog cho cá nhân, hôm nay cũng không chia sẻ gì về IT hay coding nói chung cả. Mà là một vấn đề hoàn toàn khác: "Tôi viết sách".

Có lẽ có một phần ngạc nhiên khi đọc đến đây, bởi một anh chàng IT khô khan thì làm sao viết nên một cuốn sách, có chăng thì đó là một cuốn sách nói về IT hay kỹ thuật gì đó. Nhưng không, tôi lại viết một quyển sách nói về kỹ năng sống (theo thể loại mà Tiki, Vinabook hay một số nhà sách đã liệt vào)

October 6, 2016

Tôi là ai?

http://patnabeats.com/wp-content/uploads/2016/07/who-am-i.jpg
Tôi là ai trong cõi đời tấp nập,
Là bóng vô hình hay một khoảng khắc không gian
Nơi tôi đi quá có để lại dấu chân,
Những điều tôi làm có hiện hữu chăng?

September 26, 2016

Hạnh phúc xa lắm - đừng cố tìm

Có một câu chuyện kể rằng: Khi xưa, có một anh chàng đến gặp một bậc cao nhân sống ẩn sâu, cầu mong cao nhân chỉ giúp làm sao tìm được hạnh phúc. Vị cao nhân nhìn thấy điều anh chàng này muốn, ôn tồn đáp:

- Được rồi, người hãy về nhà đi, rồi sáng mai hãy quay lại đây, ta sẽ chỉ nhà ngươi cách tìm được hạnh phúc. À mà nhớ là từ giờ tới ngày mai, nhà ngươi không được ăn gì hết.

Sáng ngày hôm sau, cậu chàng trai quay lại đúng hẹn với bậc cao nhân, chàng bắt đầu lắng nghe sự chỉ giảng của bậc cao nhân này. Cao nhân giữ đúng lời hứa, nói với chàng trai, đi theo mình và làm những điều mà cao nhân chỉ rồi sau đó sẽ dạy chàng trai. Cao nhân dắt chàng trai băng rừng, vượt suối, leo đèo,..., sau đó tới một cánh rừng đầy táo ngọt. Chàng trai vốn đã nhịn từ ngày hôm trước, đói rã rời, mà bây giờ nhìn khu rừng đầy táo ngọt liền quá thèm định chạy lại hái ăn. Thì ngay lúc đó, bậc cao nhân liền nói:

September 2, 2016

Hậu phương vững chãi - Tiền tuyến xông pha

Ngồi code hoài cũng làm cho bản thân ngợp ngạt, loay hoay một hồi thì cũng có chuyện phải làm - viết bài blog chia sẻ cho vui. Cũng trùng hợp hay sự ngẫu nhiên gì đó, lang thang facebook thì thấy người bạn chia sẻ bài viết về người vợ dịu dàng sẽ giúp chồng thành công càng dữ dội, và thấy đề tài này hay nè, bàn bạc tí cho nó vui.

Dễ hình dung cho cái đề tài này mà, dân gian hay ví von một điều là vợ là hậu phương, còn chồng là tiền tuyến. Và lẽ dĩ nhiên, hậu phương vững chắc, thì tiền tuyến an tâm mà xông pha trận mạc, dám đương đầu sóng gió vì anh ta biết khi quay về nhà (hậu phương) thì anh ta sẽ được chăm lo, được khôi phục, là sẽ luôn tràn đầy năng lượng.

Nhưng, tôi là một coder, không phải nhà tâm lý học hay nhà phân tích thực trạng xã hội, tôi không dám mạnh miệng nói sảng trên vấn đề này. Vậy tôi lảm nhảm cái gì - tôi nói về hậu phương và tiền tuyền trong quá trình phát triển phần mềm.

August 13, 2016

Tản mạn chuyện Tỷ Can moi tim

Tỷ Can moi tim
Coi Đắc Kỷ Trụ Vương - Bảng Phong Thần thì có rất nhiều phân đoạn tuyệt vời (đối với từng người và từng thời điểm), nhưng hôm nay có tí khí chất "văn chương" ngồi viết lảm nhảm suy nghĩ về nhân vật Tỷ Can, và đặc biệt là khi ông moi tim hiến vua cứu Đắc Kỷ. Đây là dòng suy nghĩ miên man rất cá nhân cho vui thôi, vì cuối tuần không biết làm gì, rảnh rỗi sinh nông nổi ấy mà.

Tỷ Can là một trung quân ái quốc, ai đã từng coi qua bất kỳ bộ phim hoặc truyện Phong Thần thì nhân vật này không thể không được đề cập bên cạnh những nhân vật khiết tiếng như Na Tra, Lý Tịnh, Khương Tử Nha, Đắc Kỷ, Trụ Vương...

Ông ngoài trung cam nghĩa đảm, ông còn được trời ban cho trái tim Thất Khứu Linh Lung, tương truyền là có khả năng làm cho bách yêu trách xa, chính vì điều đó mà yêu hồ Đắc Kỷ không thể tấn công trực tiếp mà phải mượn tay vua Trụ moi tim ông. Khi ông thấy triều đình trở nên mục nát, ông xin vua cáo lão hồi hương, sống an nhàn thanh đạm những ngày cuối đời. Nhưng cũng vì có trái tim thần ban, cộng với tính khí không thể chịu nhường nhịn, khuất phục, mặc kệ cho bọn yêu ma tác quái, ông quay về triều đình và kết quả lãnh nhận cái kết quá bi đát - tự moi tim mà chết.

August 12, 2016

Xây dựng ứng dụng API với NodeJS - Bảo mật ứng dụng với JWT và Passport

source: https://scotch.io/wp-content/uploads/2014/04/restful-api-node-express-4-router.jpg
Ứng dụng xây xong mà không có bảo mật thì thật sự rất đáng nguy, ứng dụng nào cũng vậy chứ không riêng gì API. Hôm nay có tí chút thời gian, viết thêm bài viết về bảo mật ứng dụng bằng PassportJS và JWT. Để dễ hình dung, mình tóm tắt ngón gọn thế nào là PassportJS cũng như JWT:

Passport là một module trong NodeJS, rất linh động và tích hợp tương tác với nhiều kiểu chứng thực (authenticate) phổ biến như: Basic, Digest, OAuth, OAuth2 và dĩ nhiên là phải có JWT (không có sao có bài viết này được ^^). Còn JWT (Json Web Token) là một kiểu chứng thực (authenticate) đơn giản nhưng cũng an toàn dành cho REST API (rất hợp lý cho loạt bài này).

Rào trước đón sau: "Bài viết không có ý định làm rõ những khái niệm này, chỉ là một ghi chú của bản thân để sau này dễ triển khai." Nên nếu ai đó có sự thắc mắc muốn làm rõ hơn thì bạn nên tự thân vận động để nắm được vấn đề, có vậy bạn mới trở nên cao tay hơn.

July 22, 2016

Xây dựng ứng dụng API với NodeJS - Phần 2.4: CRUD - Delete

source: https://scotch.io/wp-content/uploads/2014/04/restful-api-node-express-4-router.jpg
Đi tiếp cho hết quảng đường CRUD của loạt bài này, để còn đi qua một chặng đường khác đầy hào hứng và hấp dẫn hơn rất nhiều, can đoan luôn. Đây là bài cuối trong phần này, liên can chữ D đó là Delete. Bây giờ chúng ta sẽ thêm một phương thức mới vào service user mà chúng ta đã làm mấy lâu nay:
removeUserById: function (id, cb) {
      User
        .destroy({where: {id: id}})
        .then(function (number) {
          return number ? cb(null, true) : cb(null, false);
        })
        .catch(function (error) {
          return cb(error);
        });
    }

Bây giờ, chúng ta sẽ thêm một router mới đảm nhận vai trò xóa user theo email được cung cấp. Chỉnh sửa tập tin user.js trong thư mục app/controllers theo nội dung như bên dưới:

July 19, 2016

Xây dựng ứng dụng API với NodeJS - Phần 2.3: CRUD - Update

source: https://scotch.io/wp-content/uploads/2014/04/restful-api-node-express-4-router.jpg
Tiếp theo những phần trước, bài này sẽ đi tới phần Update trong CRUD. Để minh họa, mình sẽ viết tiếp phần login vừa rồi, sau khi login sẽ cập nhật thông tin "last_logged_in" chính là ngày hiện hành. Bây giờ chúng ta sẽ sửa lại phương thức login của tập tin user.js trong thư mục app/services như sau:
login: function (email, password, cb) {
      var isSuccessful = true;
      User
        .findOne({
          where: {email: email}
        })
        .then(function (instance) {
          if (!instance) {
            return cb(null, false);
          }
          var user = _.clone(instance.dataValues);
          if (user.password !== password) {
            isSuccessful = false;
            return;
          }
          instance.last_logged_in = sequelize.fn('NOW');
          return instance.save({silent: true});
        })
        .then(function () {
          return cb(null, isSuccessful);
        })
        .catch(function (error) {
          return cb(error);
        });
    }