Ide & Wawasan

Mengeksplorasi pengembangan AI-first, coding guardrail, dan arsitektur untuk dibuang.

Anda Dapat Melakukan Model Checking pada Kode Tanpa Mempelajari Temporal Logic

Bounded model checker seperti Kani dan relational model finder seperti Alloy memungkinkan Anda memverifikasi properti dengan assertion dan constraint biasa. Anda mengorbankan pembuktian liveness untuk kurva pembelajaran yang diukur dalam jam, bukan minggu.

Anda tidak perlu mempelajari logika temporal linear untuk menggunakan model checker. Alat seperti Kani, CBMC, dan Alloy memungkinkan Anda memverifikasi…

Anda dapat membuktikan kode Rust benar tanpa menulis satu pun bukti, tapi ruang keadaan adalah tagihannya

Alat model checking seperti Kani memungkinkan Anda memverifikasi properti Rust dengan assertion alih-alih bukti formal. Masalahnya adalah apa yang terjadi ketika loop Anda tidak memiliki batas kecil.

Anda dapat membuktikan kode Rust benar tanpa menulis satu pun bukti. Alat yang melakukannya disebut model checker, dan untuk Rust yang paling praktis saat ini…

Anda Tidak Bisa Melakukan Unit Test pada Protokol Terdistribusi, tetapi Anda Bisa Melakukan Model Checking

Bug terdistribusi mahal untuk diperbaiki setelah deployment. Model checking memungkinkan Anda menemukannya sebelum menulis satu baris kode implementasi pun. Berikut cara melakukannya dengan TLA+.

Anda tidak bisa melakukan unit test pada protocol terdistribusi. Unit test menjalankan satu proses di satu mesin dalam satu urutan. Protocol Anda menjalankan…

Grammar-constrained decoding: memaksa LLM mengeluarkan sintaks yang valid di setiap token

LLM menghasilkan sintaks yang salah karena mereka melakukan sampling token secara probabilistik. Grammar-constrained decoding menyaring kosakata di setiap langkah sehingga hanya token yang mempertahankan validitas sintaksis yang dikeluarkan.

Minta LLM untuk menghasilkan objek JSON dan pada akhirnya ia akan mengeluarkan trailing comma, newline yang tidak di-escape di dalam string, atau bare word di…

Menerjemahkan dari Bahasa Inggris ke tema itu mudah. Menjadikannya deterministik adalah masalah sesungguhnya.

Anda dapat menghasilkan design token dari deskripsi Bahasa Inggris sederhana, tetapi hanya jika Anda memperlakukan deskripsi tersebut sebagai DSL konteks terbatas dengan kontrak schema dan snapshot test.

Ya, Anda dapat mendeskripsikan sebuah tema dalam Bahasa Inggris dan mendapatkan design system yang berfungsi. Masalahnya adalah deskripsi dalam Bahasa Inggris…

Buang file grammar: tulis parser DSL-mu dengan TypeScript biasa

Parser generator terlalu berlebihan untuk sebagian besar DSL bounded-context. Parser combinator memungkinkanmu membangun parser yang berfungsi dalam bahasa yang sama dengan aplikasimu, tanpa kode yang dihasilkan dan tanpa langkah build.

Jika pernah kamu membuka file grammar Yacc dan bertanya-tanya mengapa membangun bahasa memerlukan belajar bahasa kedua, kamu tidak sendirian. Parser generator…

Dependensi kamu bisa membaca variabel lingkunganmu. JavaScript memperbolehkannya.

Ambient authority berarti kode apa pun di proses Node.js-mu bisa menyentuh sistem file, jaringan, dan lingkungan. Berikut cara menghilangkannya dengan lockdown, compartment, dan pemberian capability secara eksplisit.

Satu dependency transitif yang telah dikompromikan dapat mengeksfiltrasi -mu, menulis ke sistem file-mu, dan membuka koneksi keluar. Ia tidak memerlukan…

Kedekatan Jaringan Bukan Identitas: Bagaimana Service Mengautentikasi Tanpa Ambient Authority

Sebagian besar kepercayaan antar-service berasal dari lokasi jaringan, bukan bukti kriptografis. Berikut cara kerja capabilities, mTLS, dan SPIFFE memungkinkan service mengautentikasi tanpa ambient authority, dan mengapa hal ini lebih sulit dari yang seharusnya.

Microservice Anda berbagi VPC, sehingga mereka saling mempercayai. Kepercayaan itu adalah ambient authority: izin untuk memanggil service diberikan bukan oleh…