Quần Cam Blog

#programming

Trứng lòng đào và các vấn đề đồng hồ trong lập trình

Vì sao đồng hồ lại không đáng tin cậy? Dùng đồng hồ trong máy tính như thế nào thì hợp lý?

IO data và Vectored IO

Bài viết giới thiệu về IO data, Vectored I/O và tối ưu hóa hệ thống dùng Elixir bằng cách tận dụng Vectored I/O.

[Web nhà nghèo] Tui đã viết tính năng “chém gió” như thế nào?

Trình bày cách tui xây dựng chức năng comment cho blog thay cho Disqus mà không tốn một đồng nào cả.

[XML DoS] Những nụ cười rực rỡ

Làm thế nào để chỉ với một đoạn text vài trăm ký tự, bạn có thể làm ngốn vài gigabyte bộ nhớ và từ chối dịch vụ của một hệ thống dùng XML?

Poolboy và kĩ thuật pooling trong Erlang/Elixir

[Phỏng vấn] Parse file XML kích thước lớn như thế nào?

DOM là cách thông thường và gần như là chuẩn mực để parse file XML, tuy nhiên với những file XML lớn thì dùng DOM không thực sự hiệu quả. Bài viết giới thiệu cách dùng SAX parser với Saxy.

My engineering life

Hôm nay tui muốn kế cho các bạn nghe một câu chuyện phiếm về đời engineering, và cách học mà tui cho là hiệu quả.

[Elixir RSS Reader] Phần 1 - HTTP client

Đây là phần 1 của loạt bài viết hướng dẫn học Elixir của mình qua việc viết một RSS reader. Ở phần này mình sẽ viết về GenServer.

Git LFS - Chí Phèo và nồi cháo hành của Thị Nở

Hắn vừa push vừa chửi. Bao giờ cũng thế, cứ rượu vào push code là hắn chửi. Bắt đầu hắn chửi Linus Torvalds. Có hề gì? Linux có của riêng nhà nào? Rồi hắn chửi Mark Zuckerberg…

Euruko 2017 Notes

Vừa rồi mình đi Euruko 2017 ở Budapest, một số bài nói cũng khá thú vị nên mình sẽ note lại ở đây.

Thế giới của abstraction và khi abstraction bị rò rỉ

Thế giới của chúng ta đang sống được xây dựng dựa trên các abstraction, vậy khi abstraction bị rò rỉ là ra sao?

Six confusing features in Ruby

In this post I am trying to point out some Ruby features you might want to use with a lot of caution.

How to explain rsync to a six year old

What would be the easiest way to explain how rsync works to a six year old?

Tôi đã tiết kiệm $5 mỗi tháng với Heroku như thế nào?

Vừa rồi mình vừa tiết kiệm được $5 mỗi tháng sau khi migrate cái blog cá nhân từ Digital Ocean sang Heroku Free Dyno. Bài viết này chia sẻ lại quá trình đó.

[DIY] Tự viết driver cho Redis trong 30 phút với Rust

Rust là một ngôn ngữ lập trình mới đang khá nổi, vậy ngại gì mà không thử làm một cái gì với nó, như viết driver chẳng hạn

Chạy database migration khi deploy, nên hay không?

Có một thủ pháp thường hay được sử dụng khi deploy app là chạy database migration ngay khi deploy, nhưng liệu đó có phải là một good practice (tam dịch: cách làm tốt)?

[Bật đèn] - Khi chị Dậu làm code review

Có lẽ chính Ngô Tất Tố cũng không ngờ rằng sau khi té ra sân, rời khỏi cái ngôi làng với bao tủi nhục như thầy dạy Văn đã phân tích…

Bundler Gotcha

A few days ago I encountered a strange behavior of Bundler so this post notes down how my experience with it was.

UX for CLI app

As a terminal lover, I always want to get everything done on my terminal, instead of switching to browser or an external app. I personally built up a couple of CLI apps for my personal use (checkout worque and 3llo).

Five Rails Gotchas

It’s undeniable that Rails is a great framework to speedily build up your application. However, despite of its handiness, like other frameworks, Rails has its own flaws and is never a silver bullet. This post is going to show you some of the gotchas (or pitfalls you name it) I encountered while working with Rails.

Sign Git commits with Keybase

Keybase is an public key crypto for everyone, maps your identity to your public keys, and vice versa.

Using Factory Girl with Hanami model

Hanami is one of the most popular and trending Ruby frameworks today, well-known for its clean architecture and testability. In this post we are going to explore how we can use Hanami Model with Factory for fast testing data generation.

Monkey Patching for good

Monkey-patching has been widely considered as bad practice in software development, in terms of source code management and maintainability.

Provision AliCloud

Last month we @ Dadadee were pretty excited to start moving off from Amazon Web Service to AliCloud. This post shares how our application, written in Ruby on Rails, is built and deployed.

Refactor Controller - Extract LoggedIn-Controller

Sometimes your controllers actions require authentication and it makes your code look messy. This post is going to show you the idea of extracting them into LoggedInController

How to BEM your front-end code with sass

I tried to refactor my CSS about two months ago when I started to realize that my CSS became unmaintainable, slow and messy.