Tác giả: T.M.L

Blogchain bằng ngôn ngữ Go - 3rd Step: Lưu trữ data trên ổ cứng và giao diện CLI

Blogchain bằng ngôn ngữ Go - 3rd Step: Lưu trữ data trên ổ cứng và giao diện CLI

Series lập trình blockchain với Go Block và blockchain sơ khai Proof of Work Lời mở đầu Qua hai bài viết trước của series, chúng ta đã lập trình được một blockchain đơn giản với khả năng mining để tạo block mới sử dụng thuật toán Proof of Work. Tuy nhiên, thông tin tất cả các block vẫn chưa được lưu trữ cố định và sẽ biến mất hoàn toàn khi chương trình kết thúc. Chương trình blockchain cũng chưa có một giao diện câu lệnh (CLI) để người dùng có thể tương tác một cách dễ dàng hơn. Trong ... »

Blockchain bằng ngôn ngữ Go - 2nd Step: Proof of Work

Blockchain bằng ngôn ngữ Go - 2nd Step: Proof of Work

Series lập trình blockchain với Go Block và blockchain sơ khai Lời mở đầu Trong bài viết đầu tiên của series về lập trình blockchain sử dụng ngôn ngữ Go, ta đã tạo được một data structure cơ bản cho blockchain của mình, đồng thời cũng implement các tính năng để các block mới có thể được add thêm vào chain. Tuy nhiên, khác với các blockchain hoàn chỉnh, hiện tại ở blockchain của chúng ta, các block được thêm vào 1 cách quá dễ dàng, không tốn công sức gì cả. Bài viết này sẽ giới thiệu bước tiếp ... »

Blockchain bằng ngôn ngữ Go - 1st Step: Block và Blockchain sơ khai

Blockchain bằng ngôn ngữ Go - 1st Step: Block và Blockchain sơ khai

Trong các bài viết trước trên blog của Vietnam Lab Center, đã có khá nhiều bài viết giới thiệu về blockchain và tiền ảo. Lần này với mục đích hiểu thêm về blockchain và đồng thời học thêm một ngôn ngữ mới là Go, người viết quyết định dịch (có biến tấu) một series bài viết về chủ đề lập trình Blockchain bằng ngôn ngữ Go và giới thiệu trên blog Vietnam Lab. Phần đầu tiêu của loạt bài viết sẽ giới thiệu qua về ngôn ngữ Go, đồng thời khởi tạo code ban đầu cho dự án. Link cho ... »

Giới thiệu cơ bản về ngôn ngữ Julia

Giới thiệu cơ bản về ngôn ngữ Julia

Lời nói đầu: Why Julia? Julia là một ngôn ngữ lập trình được công bố với thế giới vào đúng ngày Valentine năm 2012 với mục đích sử dụng chính trong lĩnh vực tính toán khoa học (scientific computing). Nhiều người sẽ thắc mắc là sự ra đời của một ngôn ngữ mới có thật sự cần thiết khi đã có rất nhiều ngôn ngữ đã và đang được sử dụng thành công trong lĩnh vực này như C, C++, Fortran, Matlab, R và gần đây là Python, tuy nhiên C, C++, Fortran: Tốc độ nhanh nhưng quá low level, ... »

Viết Unit Test cho chương trình PySpark

Viết Unit Test cho chương trình PySpark

Một số bài viết trước trên blog VietnamLab đã giới thiệu về Apache Spark, một framework rất mạnh phục vụ cho việc tính toán phân tán, đồng thời cũng hỗ trợ rất nhiều các thuật toán Machine Learning. PySpark là giao diện Python hỗ trợ việc viết chương trình Spark sử dụng ngôn ngữ Python (dễ học và dễ dùng hơn nhiều so với Scala). Tuy nhiên việc viết Unit Test tưởng chừng như rất đơn giản đối với các chương trình Python thì lại khá phức tạp và rắc rối đối với các chương trình PySpark (do bản chất ... »

Sử dụng PySpark để cập nhật dữ liệu cho bảng có cấu trúc nested trên Hive

Sử dụng PySpark để cập nhật dữ liệu cho bảng có cấu trúc nested trên Hive

Trong quy trình xử lý big data hiện tại, Spark và Hive thường được sử dụng chung với nhau: Spark đóng vai trò là engine xử lý data Hive là datawarehouse lưu trữ dữ liệu đã xử lý từ Spark Thông thường, việc cập nhật dữ liệu từ Spark vào bảng trên Hive khá đơn giản, chỉ mất 1 vài dòng code, tuy nhiên trong trường hợp khi bảng trên Hive có cấu trúc phức tạp như 1 trường có cấu trúc nested thì việc xử lý sẽ cần tốn công một chút. Bài viết này sẽ cung cấp 2 ... »

Lập trình BloomFilter sử dụng Scala

Lập trình BloomFilter sử dụng Scala

Ở bài blog trước, chúng ta đã tìm hiểu các khái niệm cơ bản về Bloom Filter (Giới thiệu về Bloom Filter), ở bài blog lần này, ta sẽ sử dụng Scala để lập trình 1 Bloom Filter đơn giản sử dụng 2 hàm hash là  MurmurHash và hàm hashCode của mỗi object của Scala. Trước tiên là khung của class BloomFilter và companion object cho class này class BloomFilter[A](val length: Int, val numHash: Int) { def this(length: Int) = this(length, 3) private val bitArr = new util.BitSet(length) } object BloomFilter { def apply[A](length: Int, numHash: Int) ... »

Giới thiệu về Bloom filter

Giới thiệu về Bloom filter

Bloom filter là gì? Bloom filter là 1 cấu trúc dữ liệu xác suất dùng để check xem 1 phần tử có thuộc 1 tập dữ liệu hay không một cách nhanh chóng và tiết kiệm bộ nhớ. Bloom filter chỉ hỗ trợ 2 phương thức tương tác là: Test: Test xem 1 phần tử có thuộc 1 tập dữ liệu đã add vào bloom filter hay không. Nếu kết quả trả về là “không” thì kết quả này chính xác 100%. Tuy nhiên khi kết quả trả về là “có” thì xác suất kết quả này không chính xác ... »