Bài toán tối ưu performance và memory cùng với Akka
Đây là bài toán thực tế trong project của mình Có lẽ cũng nhiều bạn cũng đã gặp trường hợp tương tự Có khi chúng ta thường tặc lưỡi bỏ qua, hay đổ tội cho “con server”,.. but NOT TODAY Problem (đã được lược giản cho phù hợp) 1 con batch chạy hàng ngày để crawl dữ ...
Éo ai quan tâm đến code bạn viết đâu
Lưu ý: Bài viết này được phỏng dịch từ 1 blog tiếng Anh. Có khá nhiều bạn sẽ không đồng ý với ý kiến được đưa ra trong bài viết này, bản thân mình cũng cảm thấy có đôi chỗ chưa đồng tình lắm . Tuy nhiên, những ý kiến cũng như dẫn chứng đưa ra trong bài viết – theo ý mình – là khá chính xác. Mong ...
Road to Ruby Silver (Part 1)
This is just some memos for who want to get Ruby Silver certificate. :) 1. 識別子 (identify) 命名規則 (rules of identify) 0..9 A..Z, a..z underscore Number is not placed in the first Do not same with key of ruby Sample of wrong cases: - 1_to_10 - abc? - abc-1 List of ...
Viết code đẹp trong Ruby
Thật sự việc viết code đẹp không chỉ có ruby mà bất cứ ngôn ngữ lập trình nào cũng phải cần. Viết code đẹp cũng giống như việc nói hay, viết giỏi, làm sao để người xem người đọc có thể hiểu và nắm vững hết logic của các đoạn code đó. Viết code là một nghệ thuật và người viết code cũng là ...
Road to Ruby Silver (Part 4)
This is just some note for who want to get Ruby Silver certification. :) Part 1 Part 2 Part 3 4.5. Class Method 4.5.1. Class Class ① Example about using class method class Foo; end foo_class = Foo.class → Class ② Create an instance of class Class 2.1. Foo = ...
Average Value Với Spark
Như đã nói ở bài trước, mình đang nghiên cứu về Spark nên cần log lại một số thứ để dành sau này dùng đến Đối tượng hướng đến vẫn là những người đã và đang nghiên cứu Spark, Map-Reduce BigData Mình có một dữ liệu như sau name,age,money(k$) A,20,2 B,22,3 C,20,1 D,19,5 E,19,9 Và mình ...
Đếm bit
Mở đầu Bạn đang say sưa hacking code và bắt gặp một hàm với những con số bí ẩn như ở dưới đây: int fbc(unsigned int data) { data = (data & 0x55555555) + ((data >> 1) & 0x55555555); data = (data & 0x33333333) + ((data >> 2) & 0x33333333); ...
Bạn đã thực sự hiểu mutable và immutable?
Link gốc bài viết ở đây Bạn đã từng đọc hay nghe đâu đó nói rằng: mutable là giá trị có thể thay đổi được còn immutable là giá trị không thể thay đổi được. Nhưng bạn đã thực sự hiểu đúng nó chưa? >> test = 3 # => 3 >> test # => 3 >> test = 2 * test # => ...
Maintaining per-class stats with instance variables of class objects
The problem Let's say you have a class and you want to keep track of number of its instances. Using a class variable may be the first thing that come to your mind. Consider this example: class Car @@total_count = 0 def initialize @@total_count += 1 end def self.total_count ...
Create Raw Transaction Bitcoin
Mục tiêu Tạo ra một bitcoin transaction gửi bitcoin từ 1 địa chỉ A sang địa chỉ B. Hiểu được cấu tạo của raw transaction Yêu cầu Nếu bạn chưa nắm các khái niệm căn bản về về private key, public key, address, wallet và transaction. Mình recommend mọi người đọc qua nội dung cuốn ...
69 câu hỏi phỏng vấn về Spring (Phần cuối)
Trong phần cuối cùng này chúng ta sẽ cùng nói về Spring Data Access, Aspect Oriented Programming (AOP), Spring MVC. Spring Data Access 42. Sử dụng JDBC hiệu quả trong Spring framework Khi sử dụng Spring JDBC framework gánh nặng về việc quản lý resource và lỗi sẽ giảm bớt khá nhiều. Vì ...
Học React/Redux qua ví dụ thực tế: Kết nối React với Redux
Hôm trước chúng ta đã setup xong Redux cho project. Tiếp theo chúng ta sẽ cùng tìm cách làm sao để kết nối được React và Redux. Vậy làm sao để kết nối React với Redux nhỉ? Hmm, search google từ khoá react redux thử xem sao. Đùa thế thôi, để kết nối React và Redux chúng ta sẽ dùng một thư viện ...
Ý nghĩa của từ khóa volatile trong C
Trong lập trình nhúng (embedded system), ta rất thường hay gặp khai báo biến với từ khóa volatile. Việc khai báo biến volatile là rất cần thiết để tránh những lỗi sai khó phát hiện do tính năng optimization của compiler. Trong bài viết này, ta sẽ tìm hiểu ý nghĩa của từ khóa này, cách sử dụng nó và ...
69 câu hỏi phỏng vấn về Spring (Phần 2)
Trong bài trước đã có bạn hỏi về cấu trúc các module trong Spring, đây chính là hình minh họa. Trong phần này, chúng ta sẽ lần lượt nói về Spring Beans, Spring Annotations. Spring Beans 21. Spring beans là gì? Spring Beans chính là những Java Object mà từ đó tạo nên khung sườn ...
Team Holistics đã xây dựng hệ thống Background Job Queue với PostgreSQL & Ruby như thế nào
Khi thiết kế các ứng dụng web, đặc biệt là đối với các ứng dụng cần xử lý các tác vụ có thời gian thực thi dài như: resize ảnh, phân tích workload, quét CV,... việc hiện thực một hệ thống background job queue là rất quan trọng. Hiện tại trên thị trường đã có những giải pháp tổng quát như ...
Thêm chức năng phân loại bài viết trên blog Github sau khi xiên xong Jekyll-now
CÁCH PHÂN LOẠI BÀI VIẾT THEO THỂ LOẠI 1.1. Một vài tên thể loại Thật ra trong quá trình viết blog dần dần thì chia thể loại sau cũng chẳng sao nhưng tốt nhất nên rào ngay từ đầu là về cơ bản có những thể loại gì, để mỗi bài viết đều có phân loại chặt chẽ. Ví dụ ban đầu bạn chỉ định viết ...
THE FULL STACK OVERFLOW DEVELOPER
Bài viết này được dựa trên bài viết The Full Stack Overflow Developer trên SitePoint, một bài viết khá thú vị về thực trạng của giới lập trình viên hiện nay, và tôi nghĩ Việt Nam cũng không hề ngoại lệ. Full Stack Overflow developer, họ là ai? Những Full Stack Overflow developer làm việc gần ...
Luận về comment code (Phong cách kiếm hiệp)
Comment code luôn là vấn đề gây tranh cãi sứt đầu mẻ trán trong giới võ lâm. Xưa kia, thuở còn mài đít trên ghê nhà trường, ta thường được các thầy dặn rằng: Code nhớ phải comment. Thuở mới đi làm, sơ nhập gian hồ, mỗi khi đọc code không hiểu, ta cũng hay đập bàn mà chửi: "Thằng này code ngu quá ...
Series Phản Phác Quy Chân – Điều gì ngăn cản bạn đạt cảnh giới tối cao trong “code học”?
Chuyện ngày xưa Đã từng có thời, code là một việc cực kỳ mệt nhọc và nhàm chán. Đã từng có thời, lập trình việc phải làm việc với từng byte từng bit một. Đã từng có thời, code phải được viết ra giấy, đóng thành thẻ rồi đút vào máy. Đã từng có thời, ta phải mất cả năm trời để tạo giao ...
IO: Buffer vs non-buffer technique
Introduction Buffering (buffered IO) là một trong những kỹ thuật kinh điển khi chúng ta cần đọc/ghi dữ liệu. Trong bài viết này mình sẽ đi sâu hơn một chút về kỹ thuật này, với mục đích giới thiệu nó tới các bạn chưa biết hoặc cấu hình chưa phù hợp. TL;DR Buffering: Lưu tạm thời data ...