Perbatasan tidak bisa dipanggil dengan cURL
(drobinin.com)- Setiap kali mencari tiket pesawat murah, ada proses rumit yang mengharuskan pengecekan sekaligus terhadap berbagai aturan seperti visa, paspor, dan persyaratan domisili pajak
- Sistem imigrasi dan pajak tiap negara menghitung ‘hari tinggal’ dengan standar yang berbeda, sehingga menimbulkan kebingungan
- Untuk mengatasinya, dikembangkan aplikasi ‘Residency’ yang memverifikasi catatan perjalanan dan aturan layaknya compiler
- Aplikasi ini menghitung secara lokal dan secara otomatis memeriksa kedaluwarsa paspor, visa, IDP, dan persyaratan domisili pajak
- Dengan mengelola riwayat perpindahan pribadi dan aturan administratif secara konsisten, aplikasi ini berfungsi sebagai alat untuk mengidentifikasi risiko sebelum melintasi perbatasan
20 menit sebelum membeli tiket pesawat
- Saat penulis menemukan tiket supermurah ke Islandia, ia harus segera memeriksa visa, paspor, SIM, dan persyaratan domisili pajak
- Proses ini memakan waktu sekitar 20 menit, dan bukan sekadar membandingkan harga, melainkan meninjau berbagai syarat administratif secara bersamaan
- Selama 10 tahun terakhir, ia menangani berbagai pengajuan visa dan kewarganegaraan berdasarkan spreadsheet yang mencatat riwayat perjalanannya
- Namun, ia menilai cara ini tidak efisien, lalu membayangkan sistem yang bisa otomatis menentukan, “Apakah perjalanan ini akan menimbulkan masalah?”
‘State’ yang tidak diberi tahu oleh sistem
- Schengen, Inggris, domisili pajak, dan masa berlaku paspor masing-masing menilai status seseorang dengan kriteria yang berbeda
- Schengen memakai aturan 90/180 hari, Inggris memakai jumlah tengah malam berdasarkan tahun pajak, dan paspor memakai masa berlaku serta jumlah halaman kosong sebagai acuan
- Informasi seperti ini tidak diekspos langsung kepada pengguna, dan hanya dapat diakses oleh petugas perbatasan
- Penulis mendefinisikan ini sebagai “masalah mem-parsing State” — harus menafsirkan sudut pandang pemerintah dan status sistem secara bersamaan
Berbagai kasus pengecualian administratif
- Saat mengajukan kewarganegaraan Inggris, seseorang harus membuktikan bahwa pada tanggal yang sama tepat 5 tahun sebelum tanggal pengajuan, ia berada di Inggris
- Jika meleset bahkan satu hari, setelah menunggu berbulan-bulan hasilnya bisa ditolak dan perlu membayar biaya pengajuan ulang
- Saat transit di bandara Inggris, seseorang baru diakui sebagai ‘tinggal’ jika melakukan aktivitas yang tidak terkait perjalanan (misalnya membeli camilan atau menonton pertunjukan)
- Perubahan zona waktu selama Ramadan di Maroko (UTC↔UTC+1) dapat mengubah perhitungan hari tinggal
- Aturan-aturan ini tersebar di berbagai situs pemerintah dan PDF, sehingga pengguna harus menafsirkannya sendiri
Simulasi perjalanan sebagai ‘peringatan compiler’
- Penulis memperkenalkan konsep linter yang memverifikasi rencana perjalanan dari sudut pandang “apakah ini bisa dikompilasi?”
- Melalui contoh rute (DUB→EWR→MEX→LHR→TFS), ia membandingkan perbedaan perhitungan hari tinggal di tiap negara
- Irlandia 0 hari, AS 0 hari, Meksiko 2 hari, Inggris 0~1 hari, Schengen 1 hari
- Setiap hasil dapat berubah tergantung versi basis data zona waktu, sehingga versinya dipatok dan dihitung ulang saat ada perubahan
- Tujuannya adalah membangun sistem verifikasi otomatis dengan kriteria penilaian yang sama seperti petugas perbatasan
Struktur dan fungsi aplikasi Residency
- Aplikasi ini mensimulasikan dalam berbagai bentuk “apa yang akan terjadi jika tindakan ini dilakukan”
- Contoh: saat memesan perjalanan ke Alpen, apakah hari tinggal Schengen akan terlampaui, atau bagaimana dampak keluar negeri sebelum akhir tahun pajak
- Aturan tiap negara disimpan sebagai blob data interpretasi yang dikelola versinya, sehingga riwayat lama tetap dipertahankan saat aturan berubah
- Validitas paspor, visa, dan IDP juga diproses sebagai state machine
- Contoh: saat transit di Dubai, kasus ketika “masih valid saat tiba” berubah menjadi “tidak valid saat berangkat” dapat dideteksi otomatis
- Pengguna dapat menetapkan tujuan sendiri (misalnya batas hari tinggal di negara tertentu), dan aplikasi memberi peringatan berdasarkan itu
Desain local-first dan perlindungan privasi
- Semua perhitungan dijalankan di dalam perangkat, dan tetap berfungsi tanpa koneksi jaringan
- Dengan meniadakan komunikasi server, aplikasi menghindari masalah kecepatan, privasi, dan tanggung jawab hukum
- Sinkronisasi cloud tidak didukung, tetapi data dapat diekspor langsung sebagai file
- Pada awalnya hanya mendukung perhitungan hari Schengen, tetapi kemudian ditambahkan aturan pajak Inggris, kedaluwarsa dokumen, dan fitur simulasi
- Alasan aplikasi ini dirilis adalah karena penulis ingin pengguna lain juga bisa mengurangi 20 menit ketidakpastian yang sama
Hasil penggunaan nyata dan kesimpulan
- Sebelum membeli tiket ke Islandia, aplikasi ini menghitung secara akurat bahwa IDP tidak diperlukan, Schengen masih memiliki sisa 34 hari, dan kapan domisili pajak berakhir
- Saat benar-benar masuk, penilaian petugas di bandara Keflavík sesuai dengan hasil aplikasi
- Nama aplikasinya adalah Residency, tersedia untuk iOS dan dibeli sekali tanpa langganan
- Pada akhirnya, artikel ini ditutup dengan pesan bahwa “perbatasan tidak bisa dipanggil dengan cURL, tetapi dengan melacak status diri sendiri, kita bisa mendapatkan jawaban yang sama seperti pemerintah”
1 komentar
Komentar Hacker News
Saya tidak tahu bahwa orang yang bukan warga EU perlu melalui prosedur yang serumit ini untuk bepergian
Aturan bahwa saat mengajukan kewarganegaraan Inggris, Anda harus membuktikan bahwa Anda benar-benar berada di Inggris pada tanggal yang sama tepat 5 tahun sebelum tanggal pengajuan terasa sangat konyol
Kalau meleset bahkan satu hari saja, setelah menunggu berbulan-bulan permohonan bisa ditolak, lalu harus bayar biaya mahal lagi
Saya penasaran bagaimana aturan seperti ini bisa muncul
Jadi bisa ada selisih beberapa hari tergantung kecepatan pengiriman Royal Mail
Sebelum mengajukan, saya meminta catatan keluar-masuk saya ke Home Office, dan ternyata mereka hampir tidak tahu saya berada di mana 5 tahun lalu
Hanya sekitar setengah perjalanan saya yang tercatat, dan sering kali cuma satu arah saja yang tersisa. Pengelolaannya berantakan
Generasi sekarang tampaknya terlalu menganggap manfaat kewarganegaraan EU sebagai sesuatu yang wajar
Mereka yang tinggal lebih lama biasanya adalah ‘digital nomad’, dan sebagian besar bekerja secara ilegal
Mungkin ketidaknyamanannya agak dibesar-besarkan
Selesai dalam 15 menit. Tentu saja ini bukan di Inggris, melainkan Eropa daratan
Kalau pikiran pertama seseorang saat transit di bandara adalah “beli sausage roll di Greggs”, orang itu sudah sangat layak mendapat kewarganegaraan
Tulisannya bagus, tapi judulnya aneh
Isinya membahas syarat tiap negara soal domisili pajak, visa, kewarganegaraan, dan semacamnya, tetapi ungkapan ‘Downloading a border’ maknanya terasa kabur
Mungkin ini metafora bahwa “informasi resmi tersebar di banyak PDF dan situs, jadi harus dikumpulkan sendiri”
Beberapa kerabat saya masuk ke Eropa dengan visa turis lalu membuang tiket pulang dan tinggal secara ilegal
Beberapa tahun kemudian mereka dilegalkan dan bahkan mendapat kewarganegaraan, sementara saya yang taat hukum masih tetap di tempat
Menjengkelkan sekali bahwa saya tidak memenuhi syarat visa untuk bekerja secara legal
Saya sudah melihat banyak orang masuk dengan visa turis, bekerja, lalu kemudian dilegalkan
Sementara itu, orang-orang berpendidikan tinggi yang masuk dengan visa kerja resmi justru kehilangan sponsor karena perampingan perusahaan dan harus mencari pekerjaan baru dalam 30 hari
Kebijakan seperti ini terasa seperti ketimpangan yang disengaja
Saya kagum dengan kerja teliti penulisnya
Saya juga pernah mencoba membuat kalkulator Schengen 90/180 hari dan pelacak domisili pajak memakai Claude, tetapi perhitungan matematikanya terlalu sulit
Akhirnya saya harus membuat proyek baru sendiri
Saya penasaran apakah hasil aplikasi ini sudah diverifikasi secara manual. Untuk aplikasi seperti ini, validasi pengujian adalah hal yang paling penting
Aturannya jadi mudah diubah, dan unit test sangat berguna
Karena dalam struktur input→algoritma→output ada banyak edge case
Ini tidak disebutkan dengan jelas di tulisan, tetapi aplikasi yang dibuat penulis bisa diunduh siapa saja
https://drobinin.com/apps/residency/
Kalau bukan Android, saya ingin langsung mencobanya
Saya baru sadar bahwa penulis ini adalah orang yang dulu membuat sistem akses gym dengan Apple Watch
Tulisan waktu itu bagus, dan tulisan kali ini juga saya suka
Tautan ke tulisan sebelumnya
Gaya bahasanya terasa terlalu pamer diri, seperti ingin memberi kesan “saya internasional dan berkelas”
Aplikasi resminya kurang bagus, jadi tidak perlu repot mengeluarkan ponsel
Setelah membaca ini, saya kembali menyadari nilai dari perjalanan bebas visa yang diizinkan paspor saya
Secara teknis memang bisa dilakukan, tetapi prosesnya sangat tidak efisien dan menghabiskan waktu
Saya penasaran mengapa beberapa negara mewajibkan saat masuk, paspor harus masih berlaku setidaknya n bulan lagi
Saya tidak paham masalahnya apa jika sisa masa berlaku paspor lebih pendek daripada masa tinggal
Saya meragukan apakah aturan seperti ini benar-benar mencegah tindakan ilegal atau masalah ekonomi tertentu
Jika kepulangan tertunda karena cedera atau hal lain, paspor harus tetap berlaku, dan masa visa juga dalam sistem biasanya hanya diterbitkan dalam satuan tertentu
Tanggal kedaluwarsa paspor adalah sesuatu yang sudah diketahui sebelumnya, jadi ini mungkin sekadar tuntutan agar orang mengelolanya dengan bertanggung jawab
Tulisan ini mengesankan
Ini menunjukkan dengan baik mengapa sebagian besar aturan yang masuk akal biasanya menyertakan diskresi administratif (administrative discretion)