Bài đăng

The algorithm in Golang

Hình ảnh
Qua nhiều lần phỏng vấn mình nhận ra là mình rất yếu về các giải thuật trong lập trình. Nhân dịp mình tìm hiểu các giải thuật lập trình để mình chuẩn bị chiến đấu với các buổi phỏng vấn tiếp theo mình sẽ chia sẽ đến các bạn những gì mình đã tìm hiểu được để các bạn tham khảo :). 1. Sorting a. Bubble sort Bubble sort là một giải thuật sắp xếp đơn giản. Giải thuật sắp xếp này được tiến hành dựa trên việc so sánh cặp phần tử liền kề nhau và tráo đổi thứ tự nếu chúng không theo thứ tự. Ý tưởng thuật toán: Xuất phát từ phần tử cuối danh sách ta tiến hành so sánh với phần tử bên trái của nó. Nếu phần tử đang xét có khóa nhỏ hơn phần tử bên trái của nó ta tiến đưa nó về bên trái của dãy bằng cách hoán vị với phần tử bên trái của nó. Tiếp tục thực hiện như thế đối với bài toán có n phần tử thì sau n –1 bước ta thu được danh sách tăng dần. b. Cocktail sort Cocktail Sort là một cải tiến của Bubble Sort. Sau khi đưa phần tử nhỏ nhất về đầu dãy, thuật toán sẽ giúp chúng ta

Các hệ thống lớn scale-up như thế nào???

Hình ảnh
Nhân cơ hội tìm hiểu về các vấn đề khi phát triển các hệ thống lớn để chuẩn bị cho một công việc mới thì mình sẽ tổng hợp lại những gì mà mình tìm hiểu được từ nhiều nguồn trong bài viết này với mục đích chia sẽ đến các bạn cũng như để lưu lại những gì mình đã tìm hiểu😀. Những hệ thống lớn như Google, Facebook, Tiki, Lazada,.. hoạt động như thế nào khi hàng trăm, hàng nghìn người truy cập cùng một lúc mà hệ thống có thể chịu tải được. Đây là bài toán rất khó và phức tạp. Sao đây mình sẽ cùng nhau tìm hiểu xem hiện nay họ đã giải quyết bài toán đó như thế nào. 1. Vậy các hệ thống nhỏ hoạt động như thế nào? Muốn biết các hệ thống lớn nó hoạt động như thế nào thì chúng ta phải biết các hệ thống nhỏ nó hoạt động như thế nào trước cái đã. Thì hầu như các hệ thống nhỏ nào cũng phải có một database để chứa dữ liệu và một cái web server để đọc ghi dữ liệu từ database và nó hiện thị cho người dùng. Ở hệ thống nhỏ thì con web server và con database server này l

Tự học Golang - tập 1: Hello World

Hình ảnh
Golang là gì???? Go hay Golang là sản phẩm được phát triển bởi các nhân viên của Google, đặc biệt là kỹ sư nổi tiếng của Google, một chuyên gia về Unix, ông Rob Pike, tuy nhưng đó không phải là một dự án của Google. Thay vào đó, Go được phát triển như một dự án open source. Go đơn giản để học, dễ làm việc và dễ dàng đọc bởi các nhà phát triển khác. Và Go không hề có một bộ tính năng lớn, đặc biệt là khi so sánh với các ngôn ngữ như C ++. Ngoài ra Go còn gợi nhớ đến C bởi cú pháp của nó, điều đó giúp các lập trình viên C lâu năm tương đối dễ dàng học nó. Tóm lại, Golang là một ứng viên xuất sắc cho việc xây dựng và phát triển các ứng dụng Server-side, có thể handle một lượng lớn kết nối/request, đúng như những vấn đề mà Google đang giải quyết. Cài đặt môi trường phát triển Go Bước 1: Cài đặt Go runtime Windows Đối với các bạn dùng Windows, cài bằng bộ cài MSI sẽ tiện hơn, nó sẽ tự động config hết mọi thứ cần thiết. Đầu tiên, tải bộ cài tại đây https://golang.org

Giới thiệu về Serverless Achitecture

Hình ảnh
Serverless là gì? Serverless được dùng để chỉ hai khái niệm khác nhau nhưng lại khá liên quan với nhau: Một số ứng dụng chuyển phần lớn về Front-end, không có server để làm backend (serverless) mà sử dụng các API của bên thứ 3 để thay thế (Backend as a Service - BaaS). Một số trường hợp khác lập trình viên phải tự viết code để làm back-end. Với mô hình client-server thông thường, ta phải thuê server rồi deploy ứng dụng lên server. Với mô hình serverless, thay vì deploy code này lên server, ta deploy nó dưới dạng một Function (Function as a Service - FaaS). Function này có thể được gọi dưới dạng RestAPI hoặc chạy theo lịch đã sắp sẵn. Với FaaS, ta chỉ cần viết code mà không cần quan tâm đến việc server và code sẽ nằm ở đâu. Bên thứ (Amazon, Microsoft, Google) sẽ quản lý việc này. Hiện tại, khi nói đến serverless, người ta thường nói đến khái niệm thứ hai - FaaS. Năm 2014, Amazon là người đi đầu thị trường khi cung cấp nền tảng serverless mang tên AWS Lambda.  Ban đầu nền

Bài 1: Giới thiệu về ThingsBoard IoT Platform

Hình ảnh
I/ Thingsboard là gì? ThingsBoard là một nền tảng IoT mã nguồn mở. Nó cho phép phát triển nhanh chóng, quản lý và mở rộng các dự án IoT. Với nền tảng Thingsboard bạn có thể thu thập, xử lý, hiển thị trực quan và quản lý thiết bị. Thingsboard cho phép kết nối thiết bị thông qua các giao thức IoT tiêu chuẩn công nghiệp – MQTT, CoAP và HTTP, hỗ trợ cả triển khai đám mây và tại chỗ. Ngoài ra ThingsBoard cho phép tích hợp các thiết bị được kết nối với các hệ thống cũ và bên thứ ba bằng các giao thức hiện có. Kết nối với máy chủ OPC-UA, MQTT broker, Sigfox Backend hoặc Modbus slaves chỉ trong vài phút bằng cách kết nối qua IoT Gateway(xem hình trên). ThingsBoard cho phép bạn tạo các Bảng điều khiển (Dashboard) IoT phong phú để hiển thị dữ liệu và điều khiển thiết bị từ xa trong thời gian thực. Bạn có thể xây dựng một bảng điều khiển cho dự án nông trại thông minh để hiển thị trực quan các dữ liệu sản lượng,điều kiện thời tiết trong sản xuất nông nghiệp. Things

I'm ThanhCong Technology

Hình ảnh
Xin chào các bạn, sau một thời gian ấp ủ, cân đo đong đếm thì mình quyết định tạo một trang blog để chia sẽ những kiến thức, kinh nghiệm của mình và những gì mình tìm hiểu, học hỏi về lĩnh vực IoT, Blockchain,... Mặc dù khả năng viết lách, trình bày của mình không được tốt nhưng mình sẽ cố gắng đem đến những bài viết tốt nhất dành cho các bạn. Hẹn gặp các bạn ở những bài viết tiếp theo :) Thân ái,

Giới thiệu về Arduino

Hình ảnh
Arduino là một nền tảng open source bao gồm cả phần mềm và phần cứng được thiết kế giúp làm việc với các board mạch điện tử trở nên dễ dàng hơn bao giờ hết. Arduino che dấu đi sự phức tạp của điện tử bằng cách đơn giản hóa các khái niệm, che đi sự phức tạp của phần mềm bằng các thủ tục ngắn gọn thay phải làm việc xuống mức cấp  thấp của hardware, nhưng với Arduino thì chỉ cần gọi 1 hàm. Bởi vì tính phổ biến và dễ dùng cùng với các vô vàn thư viện được tích hợp sẵn để làm việc với rất nhiều module phần cứng khác nhau, bạn chỉ cần quan tâm đến tính năng sản phẩm mà bỏ qua các khái niệm phức tạp (protocol, datasheet …​) từ đó dễ dàng tiếp cận và làm ra các sản phẩm tuyệt vời mà không cần phải biết nhiều về điện tử. Arduino bao gồm một phần mềm lập trình là Arduino IDE mà bạn sẽ tìm hiểu trong các bài sau và một tập hợp rất nhiều các board mạch Arduino có thể lập trình được bằng phần mềm này với các biến thể khác nhau. Ban đầu phần lớn các board này đều dựa trên các chip họ AVR của