




Bài viết được sự cho phép của tác giả Lê Chí Dũng SSL/TLS certificates thì được dùng phổ biến trong hệ thống nhằm tăng cường security. Và việc load balancer, Gateway,… thì cấu hình này khá phức tạp và AWS Certificate Manage (ACM) sẽ giúp cho việc này dễ dàng quản lý hơn. Trong bài này mình sẽ share cách tích hợp Let’s Encrypt Certificates (miễn phí) trên ACM. 1. Cài đặt Certbot của Let’s Encrypt Certificates Tài liệu tham khảo: https://certbot.eff.org/ Nếu dùng MacOS thì cài từ brew cho lẹ https://formulae.brew.sh/formula/certbot brew install certbot 2. Execute certbot và cấu hình DNS để tạo Certificate cho domain dưới local sudo certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'domain.com' Sau khi execute command ở trên sẽ xuất hiện thông tin set up DNS trên domain. Type: TXT Name: _acme-challenge Value: 3qFPwRcxEd… Sau khi add xong TXT trên DNS thì chờ vài giây hoặc vài phút mới apply. Trong lúc chờ có thể confirm bằng cách access vào URL Toolbox của google check https://toolbox.googleapps.com/ [...]
Read more →
Bài viết được sự cho phép của tác giả Lại Đình Cường Export và Import dữ liệu trong WordPress là 2 chức năng hữu ích nếu như bạn muốn di chuyển hoặc khôi phục dữ liệu. Nếu trang bạn bị virus, bạn có thể export dữ liệu. Sau đó xóa hết mọi thứ. Cuối cùng là bạn import dữ liệu lại. Chức năng này cũng áp dụng cho trường hợp bạn di chuyển hosting hoặc đổi tên miền,… Không chỉ hỗ trợ import dữ liệu từ WordPress. Chức năng import còn cho phép bạn chuyển dữ liệu từ các mã nguồn khác sang WordPress, đặc biệt là Blogger. Hướng dẫn Export và Import dữ liệu trong WordPress Như mình đề cập đến lợi ích của công cụ import và export dữ liệu bên trên. Ở đây mình không nói thêm nữa mà đi vào vấn đề của bài viết luôn. Trong bài này có 2 phần đó là: Hướng dẫn export (xuất) dữ liệu cho WordPress và hướng dẫn import ( [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Sau khi định nghĩa API specs bằng RAML file, chúng ta có thể generate code để implement những API này sử dụng Spring framework và cũng có thể import nó vào Postman để thực hiện việc testing. Trong bài viết này, mình hướng dẫn các bạn cách import RAML vào Postman các bạn nhé! [irp posts="35858" name="Chạy Postgresql trong Docker container"] [irp posts="46391" name="Định nghĩa request body và response với RAML"] Xem thêm việc làm PostgreSQL hấp dẫn trên TopDev Mình sẽ sử dụng tập tin RAML định nghĩa các API quản lý sinh viên như sau: #%RAML 1.0 baseUri: https://localhost:8081/api title: Student Information Management System version: 1.0 /students: get: responses: 200: body: application/json: example: [{ "id":1, "code": "001", "name": "Khanh" }, { "id":2, "code": "002", "name": "Quan" }] /{id}: uriParameters: id: description: Id of the Student type: string example: "1" get: responses: 200: body: application/json: example: { "id":1, "code": "001", "name": "Khanh" } delete: responses: 200: body: application/json: example: { "message": "Student deleted!" } Để import tập tin RAML này vào Postman, các bạn hãy nhấn nút Import trong cửa sổ Workspace chính của Postman: Cửa sổ chọn tập tin [...]
Read more →
Bài viết được sự cho phép của blogchiasekienthuc.com #1. Đặt vấn đề Khi làm việc với các hệ quản trị cơ sở dữ liệu, chắc hẳn có không ít lần các bạn muốn sao chép dữ liệu của một bảng từ cơ sở dữ liệu này sang bảng tương tự của cơ sở dữ liệu khác. Nhiều bạn sẽ trích xuất (Export) dữ liệu thành file Script => và mang sang cơ sở dữ liệu khác, rồi đổi tên và Import ngược lại. Có đúng không ạ ! Cách làm này không sai, nhưng đôi khi nó hơi mất thời gian và tốn nhiều công sức nếu như số lượng dữ liệu tương đối nhiều. Vì vậy, ở trong bài viết này mình sẽ cùng các bạn tìm hiểu về một cách làm khác, để thực hiện thao tác này trong công cụ MYSQL WORKBENCH. [irp posts="34644" name="Cài đặt MySQL Community Server trên macOS"] [irp posts="34158" name="Cấu hình đồng bộ hai database mysql server MySQL Replication"] #2. Hướng dẫn [...]
Read more →
Bài viết được sự cho phép của blogchiasekienthuc.com Chào các bạn, trong các bài viết trước thì mình đã cùng với các bạn cài đặt SQL Server, tạo kết nối đến SQL Server thông qua SSMS (SQL Server Management Studio) và tìm hiểu về một số những thao tác cơ bản với SQL Server rồi phải không ạ. Còn ở trong bài viết tiếp theo này, mình sẽ cùng với các bạn tìm hiểu về cách để mở và chạy một file script (file chứa các câu lệnh SQL) để thực hiện tạo các bảng và Insert dữ liệu mẫu vào SQL Server thông qua SSMS. [irp posts="237" name=" Làm PM, theo anh không cần biết về code, nhưng phải hiểu về SQL, database, những khái niệm cơ bản của code""] [irp posts="39876" name="Các thao tác cơ bản với Database trong Microsoft SQL Server"] Xem thêm nhiều việc làm SQL hấp dẫn trên TopDev #1. Thiết kế của cơ sở dữ liệu Việc hiểu và nắm đượ [...]
Read more →
Bài viết được sự cho phép của tác giả To Thi Van Anh Tình cờ thì hôm vừa rồi mình có được một chị cùng công ty nhờ xem giúp chị ấy xem đoạn công việc của chị như thế này thì có thể automate được không. Mô tả bài toán đấy thì đại khái như thế này. Bên mình có một số các tài liệu liên quan dự án, chúng được tạo và lưu trữ online trên một hệ thống website nội bộ. Vì tình hình dự án chưa ổn định, nên nội dung trong các tài liệu có thể bị thay đổi thường xuyên. Do đó, để thuận tiện hơn cho việc theo dõi tiến độ và quản lý của mình thì chị ấy sẽ cần phải export, lưu trữ file đó trên máy tính khá nhiều lần và định kỳ, vấn đề ở đây là trên hệ thống đó có đến hàng trăm tài liệu cần được tải xuống mỗi lần. Kể cả trường hợp dù sau này có ổn định thì việc [...]
Read more →
Bài viết được sự cho phép của tác giả Tô Thị Vân Anh Không biết viết mở đầu như thế nào, thôi thì đi thẳng vào vấn đề chính luôn cho nhanh. Bây giờ nếu muốn thực hiện tự động download file từ một trang web nào đó bằng Selenium thì chúng ta sẽ phải làm những gì và như thế nào? [irp posts="32922" name="Các kiểu “đợi chờ” trong Selenium Webdriver: Implicit wait, Explicit wait và Fluent wait"] [irp posts="35414" name="JavaScript Executor trong Selenium Webdriver"] Đầu tiên mình sẽ đưa ra các bước mô phỏng được thực hiện trên trình duyệt Firefox như thế này nhé: 1. Mở trình duyệt Firefox và đi tới link có chứa thông tin file cần tải xuống 2. Nếu khi mở link trang web ra mà đã có chứa file cần download ở đó luôn rồi thì sang bước tiếp theo. Hoặc chưa có thì các bạn có thể thực hiện click vào menu nào đó để đi đến trang có thông tin download được là được nhé. 3. Thực hiện click vào link hoặc button để tải file xuống. 4. Lú [...]
Read more →
Bài viết được sự cho phép của tác giả Trần Khôi Nguyên Hoàng Chú ý exports và module.exports chứ không phải là export nhé các bạn. Nhiều bạn hay viết thiếu chữ "s" lắm ấy. Trong Javascript thì có cái từ khóa export nhưng trong NodeJS thì chưa đâu. [irp posts="5311" name="10 Công ty hàng đầu thế giới sử dụng Node.js"] [irp posts="34092" name="Ghi chú file package.json của node module"] Cơ chế Wrapping của NodeJS là gì? Trước khi một đoạn code trong module được thực thi thì NodeJS sẽ wrap code lại như sau: (function(exports, require, module, __filename, __dirname) { // Module code actually lives in here }); JavaScript module.exports và exports khác nhau như thế nào? Trước hết thì module.exports và exports trỏ tới cùng một Object, là một Object rỗng. Tuy nhiên, chỉ có một thằng module.exports là cái thật sự được export khi mình require nó thôi. Còn thằng exports thì không phải. Nó chỉ là một reference tới thằng module.exports thôi. Ví dụ như sau: module.exports.name = "Nguyen"; exports.name = "Nguyen"; console.log(module.exports); console.log(exports); console.log(module.exports === [...]
Read more →
Bài viết được sự cho phép của tác giả Lưu Bình An Mình đã từng nghe một bạn Principle FE trong công ty phát biểu là Đã 2020 rồi mà còn xài lodash là sao, lodash đã tối cổ, chả ai xài nữa đâu Khoan bàn chuyện đúng sai trong phát biểu này, nếu bạn cũng như mình, vẫn đang dùng lodash thì bạn cần biết import nó như thế nào cho đúng Tại sao cần làm đúng? Vì nếu làm sao vô tình bạn sẽ làm phình cục bundle lên gấp mấy chục lần [irp posts="13762" name="PHPExcel - Import và Export xử lý Excel"] [irp posts="14005" name="20 trường hợp sử dụng lệnh Docker cho developer"] Giờ so sánh 3 cách import Cách 1 import _ from 'lodash'; Tại sao lại chọn kiểu này? Không cần quan tâm đến user, cảm giác rất quyền lực như có găng tay vô cực, chỉ với _. chúng ta có tất cả mọi thứ. Điểm yếu, đây là cách tuyệt đối nghiêm cấm, vì gần như là [...]
Read more →
Chào mọi người, nối tiếp bài trước là tận dụng caching ở trình duyệt để tăng tốc cho microservices. Ở bài này mình sẽ chia sẻ một case study khá thông dụng trong các dự án “vừa vừa”, đó là nhu cầu export dữ liệu ra file excel. Nếu như các bạn thường xuyên làm việc liên quan đến các hệ thống quản lý dữ liệu thì data table / grid sẽ xuất hiện khá nhiều, kéo theo tính năng thường xuyên được yêu cầu là export dữ liệu (ra file Excel). Có thể bạn quan tâm: [irp posts="7308" name="Giao tiếp hiệu quả giữa các Microservice"] [irp posts="2958" name="Microservices rất khó, nên đây là hướng dẫn về Microservices vô cùng giá trị dành cho bạn!"] [irp posts="7795" name="Xác thực và phân quyền trong Microservices"] Phương pháp export dữ liệu “cổ điển” Trước khi đi sâu vào cách Teamcrop export dữ liệu, chúng ta cùng nhau bàn về cách tiếp cận “cổ điển” mà có lẽ bạn nào cũng đã từ [...]
Read more →
Đôi lúc chúng ta sẽ cần phải truy - xuất dữ liệu bằng file Excel như: xuất dữ liệu thống kê ra cho người dùng, hoặc import nhiều dữ liệu từ file excel vào Database. Thư viện được sử dụng nhiều nhất hiện nay là PHPOffice/PHPExcel. Đọc và ghi file excel bằng PHP thuần Đọc file excel Các bạn tải file data mẫu excel này mà mình đã tạo sẵn, có nội dung hình dưới và đặt nó nằm cùng cấp với thư mục Classes: Tiếp theo, bạn sẽ tiến hành đọc file này bằng cách tạo thêm 1 file mới tên là docfile.php cùng cấp với thư mục Classes, và gõ theo nội dung bên dưới: <?php // Include thư viện PHPExcel_IOFactory vào include 'Classes/PHPExcel/IOFactory.php'; $inputFileName = 'product.xlsx'; // Tiến hành đọc file excel try { $inputFileType = PHPExcel_IOFactory::identify($inputFileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFileName); } catch(Exception $e) { die('Lỗi không thể đọc file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); } // Lấy thông tin cơ bản của file excel // Lấy [...]
Read more →