- Mỗi lần tìm vé máy bay giá rẻ, người ta phải trải qua một quy trình phức tạp, đồng thời kiểm tra nhiều quy định như visa, hộ chiếu, yêu cầu cư trú thuế
- Hệ thống nhập cư và thuế của mỗi quốc gia tính ‘ngày lưu trú’ theo các tiêu chí khác nhau, gây ra sự nhầm lẫn
- Để giải quyết việc này, tác giả đã phát triển ứng dụng ‘Residency’ kiểm chứng lịch sử di chuyển và quy định như một trình biên dịch
- Ứng dụng tính toán cục bộ và tự động kiểm tra hộ chiếu hết hạn, visa, IDP, yêu cầu cư trú thuế
- Nó hoạt động như một công cụ giúp quản lý nhất quán lịch sử di chuyển cá nhân và các quy tắc hành chính, từ đó nhận biết trước rủi ro trước khi qua biên giới
20 phút trước khi mua vé máy bay
- Khi tác giả phát hiện vé siêu rẻ đi Iceland, anh ấy phải ngay lập tức kiểm tra visa, hộ chiếu, bằng lái xe, yêu cầu cư trú thuế
- Quá trình này mất khoảng 20 phút, và không chỉ là so giá vé đơn thuần mà là thủ tục rà soát đồng thời nhiều điều kiện hành chính
- Trong 10 năm qua, anh ấy đã xử lý nhiều hồ sơ xin visa và quốc tịch khác nhau dựa trên một bảng tính ghi lại lịch sử du lịch
- Nhưng nhận thấy cách này kém hiệu quả, anh ấy bắt đầu hình dung một hệ thống có thể tự động trả lời câu hỏi “Chuyến đi này có gây ra vấn đề không?”
‘Trạng thái (State)’ mà hệ thống không cho bạn biết
- Schengen, Anh, cư trú thuế, thời hạn hiệu lực hộ chiếu đều đánh giá trạng thái cá nhân theo các tiêu chí khác nhau
- Schengen dùng quy tắc 90/180 ngày, Anh dùng số lần bước qua nửa đêm theo năm thuế, còn hộ chiếu dựa trên thời hạn hiệu lực và số trang trống
- Những thông tin này không được hiển thị trực tiếp cho người dùng, mà chỉ nhân viên kiểm soát biên giới mới có thể truy cập
- Tác giả định nghĩa đây là “bài toán parse State” — phải đồng thời diễn giải góc nhìn của chính phủ và trạng thái của hệ thống
Các trường hợp ngoại lệ trong hành chính
- Khi nộp đơn xin quốc tịch Anh, phải chứng minh rằng vào đúng ngày tương ứng của 5 năm trước tính từ ngày nộp đơn, đương sự đã ở Anh
- Chỉ cần sai lệch một ngày là có thể phải chờ hàng tháng rồi bị từ chối hồ sơ và phát sinh chi phí nộp lại
- Khi quá cảnh ở sân bay Anh, chỉ khi thực hiện một hoạt động không liên quan trực tiếp đến chuyến đi (ví dụ: mua đồ ăn nhẹ, xem biểu diễn) thì mới được tính là ‘lưu trú’
- Việc Morocco đổi múi giờ trong tháng Ramadan (UTC↔UTC+1) có thể làm thay đổi cách tính ngày lưu trú
- Các quy định này nằm rải rác trên nhiều website chính phủ và tài liệu PDF, nên người dùng phải tự mình diễn giải
Mô phỏng chuyến đi như một ‘cảnh báo từ trình biên dịch’
- Tác giả đưa ra khái niệm linter để kiểm tra kế hoạch di chuyển từ góc nhìn “có biên dịch được không?”
- Với lộ trình ví dụ (DUB→EWR→MEX→LHR→TFS), anh ấy so sánh sự khác biệt trong cách tính ngày lưu trú của từng nước
- Ireland 0 ngày, Mỹ 0 ngày, Mexico 2 ngày, Anh 0~1 ngày, Schengen 1 ngày
- Mỗi kết quả có thể thay đổi tùy theo phiên bản cơ sở dữ liệu múi giờ, nên cần cố định phiên bản và tính lại khi có thay đổi
- Mục tiêu là xây dựng một hệ thống xác minh tự động có cùng tiêu chí phán đoán với nhân viên kiểm soát biên giới
Cấu trúc và tính năng của ứng dụng Residency
- Ứng dụng mô phỏng theo nhiều cách câu hỏi “nếu làm hành động này thì điều gì sẽ xảy ra?”
- Ví dụ: khi đặt một chuyến đi Alps, nó kiểm tra có vượt quá số ngày lưu trú Schengen hay không, hoặc việc rời đi trước khi năm thuế kết thúc sẽ ảnh hưởng thế nào
- Quy tắc của từng quốc gia được lưu dưới dạng blob dữ liệu diễn giải có quản lý phiên bản, để vẫn giữ được hồ sơ cũ khi quy định thay đổi
- Hiệu lực của hộ chiếu, visa, IDP cũng được xử lý như một state machine
- Ví dụ: khi quá cảnh ở Dubai, ứng dụng tự động phát hiện trường hợp “còn hiệu lực lúc đến” nhưng “không còn hiệu lực lúc khởi hành”
- Người dùng có thể tự đặt mục tiêu (ví dụ: giới hạn số ngày lưu trú tại một quốc gia cụ thể), và ứng dụng sẽ đưa ra cảnh báo dựa trên đó
Thiết kế ưu tiên cục bộ và bảo vệ quyền riêng tư
- Mọi phép tính đều được thực hiện ngay trên thiết bị, và vẫn hoạt động cả khi không có kết nối mạng
- Loại bỏ giao tiếp với máy chủ để tránh các vấn đề về tốc độ, quyền riêng tư và trách nhiệm pháp lý
- Không hỗ trợ đồng bộ đám mây, thay vào đó có thể xuất trực tiếp ra tệp
- Ban đầu ứng dụng chỉ hỗ trợ tính số ngày Schengen, nhưng về sau đã bổ sung quy tắc thuế của Anh, hết hạn giấy tờ, tính năng mô phỏng
- Lý do công khai ứng dụng là vì tác giả muốn những người khác cũng giảm được 20 phút bất định tương tự
Kết quả sử dụng thực tế và kết luận
- Trước khi mua vé đi Iceland, ứng dụng đã tính chính xác các thông tin như không cần IDP, còn dư 34 ngày Schengen, thời điểm kết thúc cư trú thuế
- Khi nhập cảnh thực tế, đánh giá của nhân viên tại sân bay Keflavík trùng khớp với kết quả của ứng dụng
- Ứng dụng có tên Residency, dành cho iOS và mua một lần, không cần đăng ký thuê bao
- Kết luận lại, thông điệp của bài viết là: “Không thể gọi biên giới bằng cURL, nhưng bạn có thể theo dõi trạng thái của chính mình để nhận được cùng một câu trả lời như chính phủ”
1 bình luận
Ý kiến Hacker News
Tôi không biết rằng người không phải công dân EU lại cần thủ tục phức tạp đến vậy để đi lại
Quy định khi xin quốc tịch Anh phải chứng minh rằng vào đúng ngày cách ngày nộp đơn chính xác 5 năm, bạn thực sự có mặt ở Anh nghe thật nực cười
Chỉ cần lệch một ngày là sau vài tháng chờ đợi vẫn bị từ chối, rồi lại phải nộp khoản phí đắt đỏ một lần nữa
Tôi tự hỏi mấy quy định như vậy ra đời bằng cách nào
Tùy tốc độ chuyển phát của Royal Mail mà có thể lệch vài ngày
Trước khi nộp đơn, tôi đã yêu cầu Home Office cung cấp lịch sử xuất nhập cảnh của mình, nhưng họ hầu như không biết tôi đã ở đâu 5 năm trước
Chỉ khoảng một nửa số chuyến đi được ghi lại, và nhiều khi chỉ còn dữ liệu một chiều. Quản lý rất lộn xộn
Có vẻ thế hệ bây giờ xem lợi ích của quyền công dân EU là điều quá hiển nhiên
Những người ở lâu hơn thường là “digital nomad”, mà đa số đang làm việc bất hợp pháp
Có lẽ mức độ bất tiện đã bị phóng đại đôi chút
Mất 15 phút là hết. Tất nhiên đây không phải ở Anh mà là lục địa châu Âu
Nếu suy nghĩ đầu tiên của ai đó khi quá cảnh ở sân bay là “mua sausage roll ở Greggs”, thì người đó hoàn toàn xứng đáng được cấp quốc tịch
Bài viết rất hay nhưng tiêu đề thì kỳ lạ
Nội dung là về nơi cư trú thuế, visa, quốc tịch và các yêu cầu theo từng quốc gia, nhưng cụm “Downloading a border” lại khá mơ hồ về nghĩa
Có lẽ đây là một phép ẩn dụ cho việc “thông tin chính thức bị rải rác trong nhiều file PDF và trang web nên phải tự gom lại”
Vài người họ hàng của tôi vào châu Âu bằng visa du lịch rồi bỏ vé máy bay về nước và ở lại bất hợp pháp
Vài năm sau họ được hợp pháp hóa và thậm chí còn có quốc tịch, còn tôi vì tuân thủ pháp luật nên vẫn giậm chân tại chỗ
Thật bức bối khi không có cách nào đáp ứng điều kiện visa để làm việc hợp pháp
Tôi đã gặp nhiều người vào bằng visa du lịch, đi làm rồi sau đó được hợp pháp hóa
Trong khi đó, những người có học vấn cao đi theo visa lao động chính thức lại mất bảo lãnh vì công ty cắt giảm nhân sự và phải tìm việc mới trong vòng 30 ngày
Chính sách như vậy tạo cảm giác như một sự mất cân bằng có chủ đích
Tôi khâm phục mức độ tỉ mỉ trong công việc của tác giả
Tôi cũng từng định làm bộ tính Schengen 90/180 ngày và công cụ theo dõi cư trú thuế, thử làm với Claude nhưng phần tính toán quá khó
Cuối cùng tôi phải tự tạo một dự án mới
Tôi tò mò không biết kết quả của ứng dụng đã được kiểm chứng thủ công để xác nhận độ chính xác chưa. Với loại ứng dụng này, kiểm thử xác thực là cốt lõi
Có thể chỉnh sửa quy tắc dễ dàng hơn, và unit test đặc biệt hữu ích
Vì trong cấu trúc đầu vào → thuật toán → đầu ra có vô số edge case
Bài viết không nói rõ, nhưng ứng dụng mà tác giả làm ra thì ai cũng có thể tải về
https://drobinin.com/apps/residency/
Nếu không phải chỉ có Android thì tôi cũng muốn thử trực tiếp
Tôi chợt nhận ra đây là người trước đây từng làm hệ thống ra vào phòng gym bằng Apple Watch
Bài viết khi đó cũng hay, và lần này tôi cũng thích
Link bài trước
Cái kiểu hành văn khoe mẽ bản thân theo hướng “tôi là người quốc tế, sành điệu” khiến tôi thấy khó chịu
Ứng dụng chính thức không hay lắm, nên tôi không cần phải lôi điện thoại ra làm gì
Đọc bài này xong tôi càng nhận ra giá trị của việc được miễn visa theo hộ chiếu mà mình đang có
Về lý thuyết thì làm được, nhưng đây là một quy trình quá kém hiệu quả và tốn thời gian
Tôi thắc mắc vì sao một số nước khi nhập cảnh lại yêu cầu hộ chiếu phải còn hạn ít nhất n tháng
Tôi không hiểu hộ chiếu còn hạn ngắn hơn thời gian lưu trú thì gây vấn đề gì
Tôi nghi ngờ không biết quy định này thực sự ngăn được hành vi bất hợp pháp hay vấn đề kinh tế nào
Nếu việc hồi hương bị chậm lại vì chấn thương hay lý do khác thì hộ chiếu vẫn cần còn hiệu lực, và thời hạn visa trong hệ thống cũng thường chỉ được cấp theo các mốc nhất định
Ngày hết hạn hộ chiếu là thứ có thể biết trước, nên có lẽ đây đơn giản là yêu cầu bạn tự quản lý một cách có trách nhiệm
Bài này rất ấn tượng
Nó cho thấy rõ vì sao phần lớn các quy định hợp lý đều có bao gồm quyền quyết định hành chính (administrative discretion)