Lấy lịch sử price từ sàn Bitfinex bằng Python

Lấy lịch sử price từ sàn Bitfinex bằng Python

Nếu bạn có tài khoản của sàn  Bitfinex và thường hay giao dịch tiền điện tử trên sàn này, bạn có nghĩ có cách nào mà ko phải vào trang web Bitfinex, không cần login mà vẫn lấy được số dư tài khoản, hay tự động thực hiện giao dịch không. Tất nhiên là sẽ có cách, nhưng đòi hỏi rất nhiều thao tác kiểm tra. Thậm chí nếu bạn muốn lấy 1 danh sách lịch sử giá của cặp tiền bitcoin-usd, điều đó cũng là một khó khăn, vì dữ liệu giao dịch trên sàn liên tục được update ... »

Lập trình concurrency cơ bản với Go

Lập trình concurrency cơ bản với Go

IntroLập trình concurrency (đa luồng) là một chủ đề khó nhằn đối với mọi ngôn ngữ lập trình (đã có kha khá đầu sách viết về chủ đề này đối với mỗi ngôn ngữ). Với một ngôn ngữ sinh ra để xử lý các vấn đề về backend cho Google như Go, concurrency là một trong những vấn đề được chú trọng hàng đầu và được gói gọn trong câu slogan sau: Do not communicate by sharing memory; instead, share memory by communicating.Go khuyến khích cách tiếp cận mỗi thread chỉ access đến giá trị chia sẻ tại đúng ... »

Quản lý package trong Kubernetes với Helm [Kỳ 1]

Quản lý package trong Kubernetes với Helm [Kỳ 1]

1. Helm là gì? Deploy một ứng dụng lên Kubernetes cluster - đặc biệt là các ứng dụng phức tạp - đòi hỏi việc tạo một loạt các resource của ứng dụng đó, ví dụ như Pod, Service, Deployment, ReplicaSet ... . Mỗi resource lại yêu chúng ta phải viết một file YAML chi tiết cho nó để deploy. Điều đó dẫn đến các thao tác CRUD trên một loạt các resource này trở nên phức tạp, mất thời gian, dễ bị bỏ sót và gặp vấn đề về tái sử dụng hay chia sẻ cho người khác. Như Ubuntu có apt, ... »

Test Driven Development

Test Driven Development

I. Introduction Test Driven Development (TDD)Chính xác với nghĩa đen của nó: “Test-Driven Development” có thể được tạm hiểu là mô hình phát triển với trọng tâm hướng về việc kiểm thử. TDD được xây dựng theo hai tiêu chí: Test-First (Kiểm thử trước) và Refactoring (Điều chỉnh mã nguồn) . Trong đó, khi một yêu cầu cho một chức năng nào đó (requirement) được đặt ra: Developer chuẩn bị các test case hoặc test scenario cho yêu cầu đó trước tiên và chạy thử các test case hoặc test scenario đó lần đầu tiên. Tất nhiên, việc chạy thử ... »

OWASP ZAP và những vấn đề thực tế

OWASP ZAP và những vấn đề thực tế

Như chúng ta đã biết OWASP ZAP là 1 Tool Test Security hoàn toàn mạnh mẽ, giúp bạn dễ dàng scan và tìm ra lỗ hổng trong hệ thống ứng dụng của bạn. Bạn nào chưa biết về OWASP ZAP thì có thể tham khảo bài viết trước của mình. https://blog.vietnamlab.vn/2018/08/08/owasp-zap-de-test-security-cho-web-application-va-api/ Thực tế là trong bài viết trước, mình chỉ test một chức năng nhỏ trong ứng dụng của mình, nên chưa gặp và lường trước được những vấn đề có thể xảy ra. Sau khi test một ứng dụng lớn chính mình ... »

Monitoring Kubernetes Cluster với Prometheus-Grafana Stack (kỳ 1)

Monitoring Kubernetes Cluster với Prometheus-Grafana Stack (kỳ 1)

Nội dung Giới thiệu Prometheus Prometheus Operator Grafana Installation Kết luận Tài liệu tham khảo Giới thiệu Để bắt đầu với nội dung bài viết này, chắc hẳn bạn đã có kiến thức cơ bản về Kubernetes rồi, và nếu bạn chưa từng nghe về Kubernetes thì xin mời bạn tìm hiểu về K8s ở bài viết trước Tại đây. Hiểu được tất cả các thành phần cũng như cách vận hành của K8s quả là khó và bạn cần thời gian, vì K8s được xây dựng để phục vụ hệ thống lớn. Với một hệ thống lớn hàng chục ... »

[Phần 2] Ansible - Cài đặt LAMP với Playbooks và Roles

[Phần 2] Ansible - Cài đặt LAMP với Playbooks và Roles

Trong bài viết trước, mình đã giới thiệu một số khái niệm cơ bản trong Ansible. Phần này chúng ta đi vào thực hành demo cài đặt một web server cơ bản với PHP, Apache và sau đó hiện ra màn hình "Hello World". Playbooks Tạo một file playbook và viết vào đấy những việc cần làm sau: Install Apache Install PHP Start Apache Show "Hello World!" Cụ thể trong file playbook.yml sẽ được viết như sau: # playbook.yml --- - hosts: all tasks: - name: 1. install Apache apt: name=apache2 state=present - name: 2. install PHP ... »