jaredchu.com

Chuyện chiếc gối

Để có được home office thoải mái và tốt cho sức khỏe thì tôi đã đầu tư khá nhiều. Từ bàn phím cơ, màn hình tốt, ghế gaming và một dàn máy tầm trung. Thậm chí mua thêm một chiếc macbook để ngồi cafe làm việc vì ngồi nhà nhiều sẽ rất chán. Nhưng chẳng hiểu sao lại thiếu thiếu một cái gì đó.Cuối cùng tôi nhận ra là ngồi ghế gaming còn thoải mái hơn là nằm trên giường, và lý do xuất phát từ chiếc gối. Khác nhau về chất...

jaredchu.com

Git merge conflict by folder

Mới đây tôi nhận task deploy một dự án từ nhánh develop lên nhánh production. Lúc merge có tới hơn 2000 files conflict. Rất may sau khi kiểm tra và confirm lại với dev trước thì chỉ có file trong thư mục App là cần merge thủ công, còn lại các thư mục khác chỉ cần override code từ nhánh develop sang.Trạng thái hiện tại:Tôi dùng kết gợp GitKraken và CommandTôi đang ở nhánh production và đã CD vào thư mục projectMerge branch ‘develop’ into...

kipalog.com

Next.js

Cài như trong https://nextjs.org/learn/basics npm init -y npm install --save react react-dom next npm run dev then { "scripts": { "dev": "next", "build": "next build", "start": "next start" } } hoặc git clone https://github.com/zeit/next-learn-demo.git npm install npm run dev Cũng tự cập nhật ko cần reload, gọi là Webpack's hot module replacement Không biết có giống cái hot loading của Gatsby hay Angular ko. pages/index.js thêm 1 file js là thêm 1 page link the pages nếu dùng...

kipalog.com

Thắc mắc về asyn/await

Câu hỏi: Có phải asyn/await dùng ThreadPool (quản lý nhiều separate thread), nếu có thì liệu rằng nhiều thread thực thi cùng lúc như vậy chương trình có nhanh hơn không (mình đang hình dung google chrome nguốn RAM nhưng user ngày nay lại thích thực thi nhiều tác vụ cùng lúc thay vì phải chờ đợi)? Trong team mình có anh kia đã từng dùng tới asyn/await khi thao tác dữ liệu lớn, nhưng sau đó a leader có nói dùng cái đó trong trường hợp này là không...

jaredchu.com

Let’s Encrypt Wildcard SSL with Certbot docker

1. Install & run Certbot docker:1234567// all command below needs root privilege$ curl -fsSL https://get.docker.com -o get-docker.sh$ sh get-docker.sh$ service docker start // Replace example.com with your domain$ sudo docker run -it --rm --name certbot -v "/etc/letsencrypt:/etc/letsencrypt" -v "/var/lib/letsencrypt:/var/lib/letsencrypt" certbot/certbot -d *.example.com -d example.com --server https://acme-v02.api.letsencrypt.org/directory --preferred-challenges dns --manual certonly2. Configuration steps:Console message: Are you OK...

kipalog.com

deploy to github pages

build locally and push first, build something locally then go to github.com to create a new repo push to local project to that repo by: Create New Repository Open Terminal. Change the current working directory to your local project. $ git init $ git add $ git commit -m "First commit" $ git remote add origin remote-repository-URL $ git remote -v $ git push origin master git branch gh-pages git checkout gh-pages git push -u origin gh-pages git checkout master publish npm install -g yarn yarn init(this create a package.json) npm...

kipalog.com

Thế nào thì có thể gọi là Micro-Service?

Thế nào thì có thể gọi là Micro-Service? Câu hỏi: Thế nào thì có thể gọi là Micro-Service? Gợi ý: Không có định nghĩa rõ ràng, nhưng khi phát triển dựa vào kiến trúc microservice thì thường mong muốn đạt được các điều sau: Thực hiện một chức năng nhất định của business domain Độc lập về development (không phụ thuộc vào team khác, môi trường khác, mỗi team có thể develop một stack khác nhau) Độc lập về delpoy ( thằng khác...

kipalog.com

Build một "basic" Notification Service để send out emails, sms, push notification cho e-com system

Câu hỏi đặt ra: Nếu phải build một "basic" Notification Service để send out emails, sms, push notification cho toàn e-com system thì nên build thế nào? Usecase: trong e-commerce system bạn cần send out emails: order placed, order cancelled, delivery window changed. Sms & push notifications: order ready to pickup, order on the way, order left at door, etc. Question: các service khác giao tiếp với notification service như thế nào và service nào chịu trách nhiệm build msg content. Gợi...

kipalog.com

Các loại mesaage queue thường dùng trong Microservices

Các loại mesaage queue thường dùng trong Microservices Câu hỏi: Trong khi phát triển microservices system thỉnh thoảng chúng ta hay phải dùng mesaage queue, anh em hay dùng queue nào và tại sao? (Rabbitmq, kafka, ...) Context của mình là sẽ gửi 10M msg lên queue hàng ngày (nhiều nguồn), message lại phải đảm bảo được lưu trữ dài lâu, được phân tích để hiển thị Dashboard hoặc gửi notification near real time, msg sẽ được lưu persistance để phục vụ phân...

kipalog.com

Kinh Nghiệm Phỏng Vấn Lập Trình Viên

Đây là một trong loạt bài về kinh nghiệm xin việc, bài trước nói về kinh nghiệm viết resume. Giống như bài trước, bài này cũng chỉ dựa vào những kinh nghiệm cá nhân của tôi trong thời gian làm việc tại Mỹ. Nếu bạn thấy có gì không phù hợp với hoàn cảnh ở Việt nam hoặc muốn bổ sung điều gì, xin hãy comment ở bên dưới. Một resume bắt mắt giống như một miếng mồi ngon, thể nào cũng sẽ có vài công ty gọi đến và muốn...

kipalog.com

SQL Server Động

SQL Server Động Có Phải SQL Động Luôn Luôn Chậm? Gần đây tôi có tranh luận với một người cùng team xung quanh một chức năng của module quản lý nhóm khách hàng. Khi thảo luận về phần sql code, có hai phương án được đưa ra: dùng sql động, hoặc cố gắng dùng sql tĩnh. Dùng sql động thì code rất đơn giản, còn dùng sql tĩnh thì vòng vèo mà phải tạo thêm một số meta data để hỗ trợ. Anh chàng cùng team gợi ý dùng sql tĩnh, với lý...

kipalog.com

So sánh giữa gRPC và REST API

Câu hỏi: So sánh giữa gRPC và REST API Em nghe giới thiệu là gRPC là chuẩn giao tiếp mới giữa các services, có hiệu năng tốt hơn và có thể thay thế REST API. Em đang xây dựng 1 hệ thống mới, đang phân vân nên chuyển qua dùng gRPC hay tiếp tục dùng lại REST từ hệ thống cũ, mong các bác tư vấn giúp Gợi ý: Nên kết hợp bác ạh. Mình đang làm dự án thì internal bên trong mình xài gRPC, 1 vài cái integration với hệ thống cũ cùng sử dụng...

kipalog.com

Thắc mắc về chức năng của Api Getway và Aggregator service

Câu hỏi: Mình có 1 api gateway để điều hướng request và 1 api gateway để tổng hợp kết quả các request trả về client vì mình không muốn client gọi nhìu request khác nhau. Ví dụ khi client xem thông tin chi tiết 1 sản phẩm thì chỉ cần gọi tới api get/product/id, nhưng backend bên trong thì sẽ gọi tới các service product service, rating service, recommend service để lấy và tổng hợp kết quả trả về client. Hiện tại mình viết thêm controller để tổng...

kipalog.com

Thảo luận loạt bài về database mechanism

Thảo luận loạt bài về database mechanism hôm nay chúng ta sẽ phân tích thêm các khái niệm của cơ sở dữ liệu truyền thống nhé Normalization: chuẩn càng cao dư thừa dữ liệu càng ít, độ chính xác cao và hi sinh nhiều về scale out. Trong #cqrs người ta đi ngược lại với khái niệm de-normalization để query nhanh hơn và distributed hơn Partitioning: query trên những tập data nhỏ và vừa (column hoặc row) để tăng tốc độ xử lý, có thể tận dụng...

kipalog.com

gatsby

serve khi chưa develop: Error: ENOENT: no such file or directory, stat '/home/moe/gatsby/hello-world/public/404.html' Phải đủ: new develop serve serve xong coi chừng vô nhầm port nên ko thấy site phòng tránh lỗi Error: ENOSPC ko làm cái này là đang chạy lại lỗi lại develop và serve lại echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p src/pages/index.js Hay thật chỉnh trong đây rồi CTRL + S nó tự hiện ra luôn k cân refresh (hot...

kipalog.com

Angular

Cài app Heroes như guide của Angular Làm theo hướng dẫn nếu port mặc định 4200 bị chiếm rồi thì dùng ng s --open --port=4222 4222 hay là bất cứ cổng nào Các file quan trọng /src/app/app.component.ts /src/app/app.component.html /src/styles.css Có cái hay là sửa html/css rồi save xong thì app tự đổi theo mà không cần refresh trang Từ vựng quy ước template file: html file class file: ts file Tạo component ng generate component heroes Kết quả: moe@moe:~/heroes$ ng...

kipalog.com

Change history commit user

Change history commit user To set up right name and email in the future for commits, you need run command: git config --global user.name "username" git config --global user.email "username@example.com" or put this in ~/.gitconfig file. If you want to FIX pervious unauthored commits: gith show to show WHICH WRONG email has been used. Create a bare cllone of repo: git clone --bare https://github.com/username/repo.git Replace OLD_EMAIL, CORRECT_NAME, CORRECT_EMAIL after cd to the repo and save this script in your repo.git with name...

kipalog.com

JavaScripts - Dump Data Variable thành Binary File

Đây thực tế là 1 tool rất hay dùng để download file bằng Console Window của Browser. Mặc dù nhu cầu ban đầu của mình chỉ là dump 1 biến JS ra 1 file binary trong quá trình nghịch code của đội bạn var downloadBlob, downloadURL; downloadBlob = function(data, fileName, mimeType) { var blob, url; blob = new Blob([data], { type: mimeType }); url = window.URL.createObjectURL(blob); downloadURL(url, fileName); setTimeout(function() { return window.URL.revokeObjectURL(url); },...

jaredchu.com

Mục tiêu của blog trong năm 2019

Với phương châm đặt mục tiêu để không hoàn thành, nhầm, hoàn thành vượt chỉ tiêu. Năm 2019 này sẽ là năm thay da đổi thịt của The Lazy Dev blog.Clear hết bài draft cũ. Do bài draft quá nhiều, hôm nọ tôi đã xóa hơn 1 nửa những bài không mấy thú vị hoặc đã có quá nhiều người viết rồi. Số bài draft còn lại vẫn đang được… viết tiếp.Tập trung vào chủ đề Ubuntu, Freelance và chia sẻ chuyện nghề. Vì những chủ đề này có...

kipalog.com

Custom response cho api laravel/lumen

Tạo file trait App\Http\Response.php <?php namespace App\Http; use Exception; trait Response { protected $data = []; protected $headers = []; protected $statusCode = 200; protected $errors; protected $message; protected $exception; public function addData(array $data) { foreach ($data as $key => $value) { $this->data[$key] = $value; } } public function setHeaders(array $headers) { foreach ($headers as $key => $value) { ...

kipalog.com

Hackintosh ký sự #2.2 - Card Wifi

Mong được đóng góp để update thêm cho list Laptop Wireless Loại bỏ [Intel, Ralink, Realtek, Mediatek …] Broadcom 94322hm8l 943224 943225 94352z 94360 Atheros 92xx, 9380 (mini Pci-e) 9462, 9485, 9565 (M2, hơi kén driver) DELL 1506 1510 1515 1550 1601 1702 1703 1705 1707 1802 1830 1901 USB Wireless Realtek 8188, 8192 (hỗ trợ tốt, giao diện đẹp) Mediatek 7610, 7612, 3070, 3573, 5370, 5572 … (dễ gây xung đột, giao diện không đẹp) Desktop Wireless Broadcom BCM94331CD Broadcom...