Simon Willison Blog
85

Thủ thuật

Tác giả Paint.NET dùng Claude viết lại Direct2D để chạy mượt trên WINE

(giờ Việt Nam)

Tóm tắt AI

Rick Brewster, tác giả Paint.NET, chia sẻ cách sử dụng Claude để giải quyết rào cản Direct2D, giúp phần mềm này cuối cùng cũng có thể vận hành ổn định trên môi trường WINE.

Bản dịch AI

Ngày 2 tháng 9 năm 2026

Direct2D luôn là rào cản lớn nhất đối với Paint.NET trên WINE, và rõ ràng là nó sẽ không bao giờ hoàn thiện đủ để Paint.NET có thể sử dụng. Tôi cũng không thể chỉ đơn giản là "vô hiệu hóa" việc sử dụng Direct2D. Vì vậy, thay vào đó, Paint.NET hiện đã có một bản viết lại Direct2D nội bộ, được xây dựng từ đầu thông qua kỹ thuật đảo ngược (clean-room reverse-engineered) để sử dụng trên WINE (được kích hoạt bằng tham số /wine). Nó nằm trong tệp PaintDotNet.Windows.Direct2D1.Managed.dll. Phần này được viết bởi người bạn tốt Claude của chúng tôi, nếu không có cậu ấy thì điều này sẽ KHÔNG THỂ thực hiện được và sẽ KHÔNG BAO GIỜ xảy ra. [...]

Hầu hết mã nguồn này, như người ta vẫn nói, là "vibe coded" (mã hóa theo cảm tính). Ý tôi là nó chưa được kiểm duyệt kỹ lưỡng, mang phong cách kiểu "tin tôi đi". Tôi không thể nào rà soát hết 180.000 dòng mã, nó thực sự quá nhiều. Để bạn dễ hình dung, phần còn lại của Paint.NET có khoảng 700.000 dòng mã và tôi đã làm việc với nó trong hơn 20 năm qua. [...]

Đôi khi, Claude làm việc với tốc độ và sự quyết liệt của 10 lập trình viên thiên tài cấp độ 10x vừa được giải phóng. Nhưng những lúc khác thì... chà, không được như vậy. Tôi đã phải "trông trẻ" Claude khá nhiều để đảm bảo nó quản lý tài nguyên chính xác (có một thời gian nó không thực hiện lệnh tương đương với AddRef của COM cho các đối tượng đếm tham chiếu, ôi chao). Tôi đã phải "chỉnh" nó vài lần khi phát hiện ra những quyết định thiết kế hoặc kiến trúc thực sự tồi tệ. Và tôi cũng rất ấn tượng với một số công việc kỹ thuật đảo ngược khá thông minh và bền bỉ mà nó đã thực hiện để tìm ra tất cả các công thức cần thiết cho việc triển khai thư viện hiệu ứng tích hợp của Direct2D.

— Rick Brewster, tác giả của Paint.NET

Paint.NETClaudeWINELập trìnhDirect2D
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Simon Willison Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.