4 poin oleh GN⁺ 2023-12-15 | 1 komentar | Bagikan ke WhatsApp
  • Setelah lelah dengan industri perangkat lunak dan media sosial yang ada, penulis juga mencoba Mastodon, tetapi yang sebenarnya dibutuhkan bukanlah linimasa yang berpusat pada orang, melainkan feed reader pribadi untuk mengumpulkan tulisan dan notifikasi dari web
  • Tujuannya bukan daftar tunggakan ala kotak masuk email seperti RSS reader, melainkan antarmuka berbentuk stream tempat konten menarik mengalir setiap kali dibuka, seperti home feed Twitter atau Mastodon
  • Kriteria desainnya adalah pengalaman pengguna > kemudahan operasional > kemudahan pengembangan, dan penulis memprioritaskan pilihan yang mudah dioperasikan secara sederhana, seperti htmx·hyperscript, aplikasi web monolitik, SQLite, Python, serta ekstensi gevent dan Huey
  • Dalam penggunaan nyata, fitur seperti membaca artikel di dalam aplikasi, pin untuk dibaca nanti, bookmark, pengurutan berdasarkan frekuensi publikasi sumber, dan penandaan otomatis “sudah dilihat” saat scrolling ditambahkan
  • Setelah sekitar 3 bulan pengerjaan santai, penulis membuat feedi dan menggunakannya selama beberapa bulan sebagai “halaman depan internet”, sehingga kembali mendapatkan rasa kendali atas informasi yang dikonsumsi

Cara Menggunakan Web yang Ditemukan Kembali Setelah Burnout

  • Penulis mengalami burnout karier akibat serangkaian proyek buruk dan kekecewaan terhadap industri perangkat lunak
  • Penulis mengurangi pekerjaan, resign, mulai terapi, serta memperbaiki kebiasaan seperti makan, olahraga, dan meditasi
  • Untuk sementara waktu, penulis menjauh dari pemrograman dan bacaan terkait perangkat lunak, serta meninggalkan Twitter, media sosial terakhir yang digunakan
  • Saat membaca How to Do Nothing, penulis kembali meninjau Mastodon sebagai komunitas online alternatif

Batasan yang Terlihat di Mastodon

  • Mastodon menyediakan feed kronologis tanpa perantara algoritmis, sehingga memberi rasa kembali mengendalikan feed
  • Orang-orang yang merasakan ketidaknyamanan serupa terhadap industri perangkat lunak dan web mulai meninjau kembali elemen web lama seperti RSS, BBS, digital gardens, dan webrings, atau membayangkan web yang lebih terbuka dan independen
  • Tujuan penggunaan sebenarnya lebih dekat ke hub informasi daripada microblogging
    • Alasan mengikuti orang adalah untuk mendapat notifikasi saat mereka menulis di situs web mereka
    • Alasan mengikuti bot adalah untuk menerima konten dari link aggregator
  • Setelah mengenal konsep social readers dari IndieWeb, penulis menyimpulkan bahwa alat yang dibutuhkan bukan Mastodon, melainkan feed reader yang bisa disesuaikan sendiri

Tujuan Pengguna untuk Reader Pribadi

  • Penulis menginginkan stream tempat konten menarik mengalir setiap kali aplikasi dibuka, bukan daftar tunggakan ala kotak masuk email seperti RSS reader pada umumnya
  • Feed perlu mencampur berbagai sumber
    • Tulisan dari blog, majalah, situs berita, dan link aggregator
    • Notifikasi akun pribadi seperti Mastodon, Goodreads, dan GitHub
  • Karena bentuk data tiap sumber berbeda, diperlukan kustomisasi parsing agar tampilan dan nuansanya tetap konsisten
  • Fitur sosial dari reader IndieWeb penuh bukan target implementasi
    • Membuka tab lain untuk berkomentar bukan masalah
    • Konten yang tersebar di situs pihak ketiga juga tidak apa-apa
  • Tujuan jangka pendeknya adalah cepat memastikan apakah alat ini bisa menjadi sumber utama, bahkan satu-satunya, untuk informasi web; jika tidak, proyek akan segera dihentikan

Prinsip dan Cakupan Pengembangan

  • Prinsip pengembangannya adalah user > ops > dev
    • Dalam prioritas kerja dan kompromi desain, penulis memilih kemudahan operasional dibanding kemudahan pengembangan
    • Di atas itu, penulis menempatkan pengalaman pengguna
  • Karena ini aplikasi pribadi, “mengutamakan pengguna” berarti memenuhi kebutuhan sendiri terlebih dahulu sambil menggunakannya langsung (dogfooding)
  • Penulis menilai membuat alat yang secara ergonomis cocok untuk diri sendiri kemungkinan lebih berguna daripada membayangkan pengguna ideal
  • Proyek ini tidak boleh menjadi proyek pembelajaran atau proyek portofolio
    • Tujuannya bukan produktivitas, melainkan kembali terhubung dengan kesenangan mengembangkan perangkat lunak
    • Kesenangan itu harus datang bukan dari “membuat sesuatu”, melainkan dari “menggunakan sesuatu yang dibuat sendiri”
  • Dengan mengasumsikan satu target pengguna, banyak keputusan bisa ditunda
    • Autentikasi pengguna yang belum dibutuhkan saat itu ditunda
    • Fitur yang sangat spesifik seperti kirim ke Kindle bisa ditangani sejak awal
    • Hal-hal seperti kustomisasi parser feed atau login Mastodon bisa mengasumsikan pengetahuan pemrograman

Pilihan UI dan Arsitektur

  • Agar bisa diakses tidak hanya dari laptop tetapi juga dari ponsel, aplikasi harus berupa aplikasi web
    • Ini adalah cara hemat biaya untuk mendukung dua perangkat dengan satu antarmuka
    • Penulis bisa menggunakan HTML dan CSS yang sudah familier
    • Penyimpanan state di server menyelesaikan sinkronisasi antarperangkat
  • UI web perlu cukup dinamis, tetapi penulis tidak ingin membuat aplikasi frontend terpisah atau mempelajari framework baru
  • Mengikuti saran boring tech dan radical simplicity, penulis mencari pustaka server-side rendering, lalu menggunakan htmx bersama hyperscript
  • Demi kemudahan operasional, deployment dan pengaturan lokal harus mudah, dan penulis tidak ingin mengasumsikan infrastruktur seperti Docker atau Nix
  • Reader IndieWeb formal yang dijelaskan Aaron Parecki dibagi menjadi berbagai komponen per protokol seperti Micropub, Microsub, dan Webmentions, tetapi untuk penggunaan pribadi itu hanya membuat pengembangan dan operasional lebih rumit tanpa banyak manfaat
  • Hasilnya, penulis memilih aplikasi web monolitik, dan menggunakan SQLite untuk mengurangi jumlah komponen yang perlu dipasang dan dikonfigurasi

Bahasa dan Pekerjaan Latar Belakang

  • Go tampak cocok untuk proyek ini karena sederhana dan serbaguna, memiliki garbage collection, cukup cepat, serta unggul dalam model concurrency dan binary yang mudah di-deploy
  • Namun penulis belum pernah menulis satu baris pun Go, dan tidak ingin proyek ini berubah menjadi proyek pembelajaran
  • Dari bahasa yang sudah familier, penulis memilih Python karena paling cepat untuk membuat prototipe
  • Python tetap memiliki kelemahan pada lingkungan dan dependensi, terutama dependensi pustaka OS host
  • Untuk feed polling berkala, penulis tidak ingin menambah komponen terpisah, dan setelah riset menggunakan gevent serta ekstensi mini-huey dari Huey untuk menjalankan pekerjaan latar belakang di dalam proses aplikasi
  • Sebagai gantinya, Python memiliki pustaka yang baik untuk HTTP, feed parsing, dan scraping

Alasan Menunda Pengujian

  • Pada tahap awal, penulis memutuskan untuk tidak menulis test
  • Karena berencana bereksperimen dengan menambah, menghapus, dan menyusun ulang fitur, biaya pemeliharaan unit test dinilai lebih besar daripada nilainya
  • Bug kecil pada logika bisa diterima, dan karena ini aplikasi yang dipakai sendiri setiap hari, bug penting diharapkan akan muncul seiring waktu
  • Penulis menilai integration test lebih bernilai untuk memberi keandalan, tetapi banyak bug dalam proyek ini berasal dari integrasi sumber eksternal dan UI
  • Integration test mungkin bisa menangkap sebagian bug dan regresi lebih awal, tetapi dinilai tidak cukup berharga untuk biaya awal yang diperlukan

Bagaimana Penggunaan Nyata Mengarahkan Fitur

  • Dengan menggunakannya sendiri setiap hari sebagai pengguna akhir, ide, eksperimen, dan prioritas ditentukan
  • Setelah mencoba berbagai tata letak UI dan fitur, pola penggunaan mulai terbentuk
    • Membuka aplikasi
    • Scroll feed utama
    • Memberi pin pada item untuk dibaca nanti
    • Membuka item yang ingin dibaca sekarang
    • Memberi bookmark pada item untuk rujukan nanti
  • Penulis menginginkan fitur membaca artikel tanpa meninggalkan aplikasi, salah satu alasannya untuk menghindari paywall dan pop-up persetujuan
  • Untuk ekstraksi konten HTML, penulis mencoba beberapa pustaka Python, tetapi tidak ada yang bekerja sebaik readability yang digunakan Firefox
  • Karena readability adalah paket JavaScript, penulis akhirnya menambahkan Node.js sebagai dependensi opsional

Pengurutan Feed dan Penanganan “Sudah Dilihat”

  • Bahkan setelah fitur dasar tersedia, pengurutan hanya berdasarkan tanggal terbit menyulitkan penulis menemukan konten menarik
    • Tulisan blog yang jarang muncul terkubur di belakang toot Mastodon
    • Artikel panjang dari majalah terkubur di belakang artikel berita harian
  • Karena semua sumber yang diikuti adalah sumber yang menarik, penulis berasumsi ingin melihat konten dari sumber dengan frekuensi publikasi rendah terlebih dahulu
  • Jika newsletter bulanan terbit dalam beberapa hari terakhir, ia seharusnya tampil di atas microblogging atau berita harian
  • Penulis mengelompokkan sumber ke dalam “frequency buckets” dan mengurutkan feed agar bucket dengan frekuensi lebih rendah muncul lebih dulu
  • Untuk menghindari masalah konten langka terus menempel di bagian atas setiap kali aplikasi dibuka, penulis menambahkan fitur yang otomatis menandai item sebagai “already seen” saat pengguna scroll ke bawah
  • Dengan cara ini, penulis bisa selalu melihat konten baru tanpa melewatkan pembaruan yang jarang muncul

Dari Lokal ke VPS

  • Awalnya, penulis menjalankan aplikasi dari tab terminal di laptop sambil mengembangkan dan menggunakannya sekaligus
  • Saat mulai menyukai konten yang muncul di feed, penulis memindahkannya ke server Raspberry Pi di jaringan lokal agar selalu bisa diakses
  • Setelah dipakai terus-menerus di Raspberry Pi, penulis memperbaiki rendering mobile untuk akses dari ponsel
  • Ketika mulai merindukan penggunaan aplikasi saat berada di luar rumah, penulis men-deploy-nya ke VPS
  • Deployment VPS mendorong penulis menambahkan autentikasi dan dukungan multi-pengguna yang sebelumnya ditunda, sehingga beberapa teman bisa diberi akses beta testing
  • Pengaturan VPS menjadi pemicu untuk membeli domain dan membuat situs web ini, sekaligus menjadi proses mendekat ke ideal IndieWeb yang sejak awal menginspirasi

Hasil feedi

  • Setelah sekitar 3 bulan pengerjaan santai, penulis membuat feed reader pribadi feedi
  • feedi bukan produk yang selesai, melainkan lebih mirip konfigurasi Emacs: alat yang terus setengah rusak tetapi terasa menyatu dengan kebiasaan
  • Dari sudut pandang produktivitas, sulit untuk dibenarkan, tetapi sebagai alat yang dibuat sesuai kondisi sendiri, ia memberi kepuasan
  • Selama beberapa bulan, penulis menggunakan feedi sebagai “front page of the internet”
  • Dengan memakai reader pribadi, penulis kembali mengendalikan informasi yang dikonsumsi, aktif mencari blog dan majalah menarik, serta lebih terbuka pada penemuan dan kejutan

1 komentar

 
GN⁺ 2023-12-15
Opini Hacker News
  • Menyiapkan urlwatch(https://urlwatch.readthedocs.io/en/latest/) ternyata cukup menyenangkan. Terutama setelah bisa melewati boilerplate Puppeteer dan mengerok situs JavaScript lewat instance Chrome, rasanya seperti mendapatkan kendali dengan membuat web datang menghampiri saya, bukan saya yang harus menariknya satu per satu
    Sangat terasa manfaatnya ketika bisa memantau situs tanpa repot lalu meninjaunya sekilas di pagi hari. Bisa dipakai untuk melacak lowongan dari perusahaan yang disukai, lowongan/penutupan lowongan di perusahaan tempat kerja saat ini, produk yang sedang ditunggu diskonnya, stok ulang, atau barang refurbish, statistik limbah COVID, listing apartemen, rilis GitHub yang diminati, sampai perubahan syarat dan ketentuan di situs penting
    Secara pribadi saya juga self-host RSS reader dan bot Telegram, serta sering membuat situs HTTP kecil untuk eksperimen, jadi saya memakai DigitalOcean $5 Droplet, tetapi karena tidak harus berjalan di jam yang sama setiap hari, laptop pun cukup

    • Untuk kebutuhan “listing apartemen”, saya membuat Feed me up, Scotty!(https://feed-me-up-scotty.vincenttunru.com/). Alih-alih memberi tahu lewat email, saya memakai GitHub Actions untuk membuat feed RSS hanya dengan beberapa selector CSS
    • Mirip juga, saya memakai Playwright sebagai browser headless untuk login ke Twitter beberapa kali sehari lalu mengambil berita dan pembaruan dari pencarian yang disimpan
      Karena ini untuk penggunaan pribadi, saya hanya menerima ringkasan pembaruan Twitter tentang topik yang saya minati, dan bisa menghindari situsnya sendiri, perdebatan yang toksik, serta iklan yang mengganggu
  • Saya terlalu kesal dengan kondisi IT saat ini untuk bisa merumuskannya dengan rapi, tetapi kadang saya membayangkan konsep “petugas IT pribadi”. Seperti tukang cukur langganan, dokter keluarga, penjahit, atau pembuat roti di lingkungan sekitar, tetapi menangani sebagian kehidupan digital kita
    Orang ini punya infrastruktur lokal kecil, membuat feed yang dipersonalisasi, menjaga privasi dan kesehatan digital, lalu menghubungkan kita ke feed reader lewat antarmuka sederhana atau protokol terbuka. Bisa mencakup film, tulisan, meme, sampai video lucu, tetapi intinya adalah adanya manusia yang bisa diajak bicara, bukan algoritme pengoptimal pendapatan
    Saya juga membayangkan pusat data yang dijalankan komunitas lokal seperti perpustakaan, atau menyediakan layanan konten sederhana dari internet rumah. Karena itu saya menyukai gagasan seperti Veilid(https://gitlab.com/veilid/veilid)
    Ini juga bukan pertama kalinya saya mendengar orang bilang mereka merasa lebih sehat setelah pindah ke Feediverse. Saya sendiri sedang menambahkan skrip dan mini-app di atas Puppeteer, menjalankan ringkasan dan rekomendasi dengan llamacpp lokal, dan ingin terus memolesnya agar nantinya bisa saya sarankan ke teman dan keluarga
    Saya menamai skrip-skrip ini “not a browser”. Saya menginginkan web yang tidak menyajikan HTML/CSS/JS bersama datanya, melainkan hanya menyediakan data dan membiarkan pengguna menentukan bagaimana data itu ditampilkan

    • Saya sangat relate dengan perasaan itu. Belakangan ini saya menyiapkan server homelab dan menjalankan berbagai web app dengan fungsi berbeda; memang tidak ada yang benar-benar baru, tetapi menyenangkan karena semuanya berpusat pada pengguna serta berbasis open source/komunitas
      Tidak ada algoritme yang memusuhi pengguna, tidak ada sistem berbasis iklan, dan pada umumnya ini adalah perangkat lunak yang mengutamakan pengguna serta berbicara dalam protokol terbuka. Ini mungkin dilakukan jika Anda bekerja di industri IT dan bisa mengelola server sendiri, tetapi pertanyaannya adalah bagaimana dengan orang yang tidak bisa
      Gagasan tentang “petugas IT” pribadi ini menarik. Saya penasaran apakah layanan seperti ini bisa ditawarkan kepada orang-orang yang ingin lepas dari perusahaan teknologi raksasa dan algoritme, serta memakai sesuatu yang lebih personal, tetapi tidak punya kemampuan teknis
      Data medis juga mirip. Saya tidak suka rekam medis saya tersimpan di MyChart dan berbagai sistem tertutup lain tanpa kendali di tangan saya. Saya membawa superkomputer di saku, jadi saya tidak paham kenapa saya tidak bisa menyimpan salinan catatan saya sendiri dan membagikannya secara selektif kepada dokter saat berobat
      Aneh juga bahwa rumah sakit masih harus saling mengirim faks. Seharusnya saya bisa membagikan data saya hanya dengan satu tombol. Apple Health adalah yang paling mendekati untuk beberapa hal, tetapi adopsinya di AS tampaknya nyaris tidak ada, dan itu pun hanya menguntungkan pengguna Apple. Data kesehatan tidak boleh terkurung dalam sistem tertutup, bahkan jika bentuknya seperti Apple Health yang berjalan secara lokal; yang dibutuhkan adalah protokol terbuka dan ekosistem implementasi
    • Saya 100% setuju. Kondisi IT saat ini memang bikin marah
      Sebelum pemasaran dan keserakahan menguasai internet, sempat ada masa singkat ketika semuanya terasa cukup baik. Produk seperti Synology NAS dengan aplikasi yang bermanfaat bagi pengguna akhir, ditambah bentuk layanan “petugas IT pribadi” yang membantu mengelolanya, mungkin bisa berjalan dengan baik
      Jika strukturnya bukan untuk menguras data pribadi dan uang pengguna, ini akan terasa nyaris utopis dari sudut pandang pengguna, tetapi secara ekonomi kemungkinan menjadi bisnis bermargin tipis dengan risiko besar. Misalnya, tanggung jawab atas kehilangan file adalah masalah besar
    • Konsep “petugas IT pribadi” ini benar-benar terasa mengena, dan tampaknya bisa menjadi kenyataan dalam 5~10 tahun ke depan. Hanya saja, rasanya pasti sudah ada yang mencoba, jadi saya penasaran faktor apa yang selama ini menghambatnya
    • Idenya indah dan menarik, tetapi tampaknya teknologi ini sendiri pada dasarnya berkaitan dengan efek leverage dan skala, jadi arahnya tidak bergerak ke sana
      Kodenya ditulis sekali lalu dijalankan sejuta kali dengan nyaris tanpa biaya tambahan. Semua kekuatan struktural tampaknya bekerja ke arah sebaliknya. Mungkin justru akan lebih mungkin terjadi setelah AI menggantikan semua pekerjaan kita
  • How to Do Nothing karya Jenny Odell benar-benar buku yang luar biasa. Mungkin agak berbeda dari pembaca tipikal Hacker News, tetapi saya sangat merekomendasikannya kepada siapa pun yang mulai merasakan tekanan “produktivitas” palsu yang dipaksakan oleh ekonomi atensi
    Proyek-proyek lain Jenny Odell juga layak dilihat. Misalnya, ada The Bureau of Suspended Objects(https://www.jennyodell.com/bso-cjm.html)

    • Betul. Hanya saja, buku ini bukan semacam “detoks digital” untuk meningkatkan produktivitas, melainkan lebih dekat ke wacana filosofis
      Dalam konteks yang sama, saya juga merekomendasikan Saving Time karya Jenny Odell. Buku itu tenang tetapi sangat radikal, dan secara pribadi saya lebih menyukainya dibanding dua buku tersebut. Narasinya terasa lebih fokus
    • Setuju. Saya membelinya dalam bentuk buku fisik, membacanya, lalu memberikannya kepada keluarga, dan baru-baru ini saya juga membelinya lagi sebagai audiobook di Libro.fm
  • Di luar sekadar feed pribadi sederhana, saya menginginkan feed yang dibatasi waktu dan bebas distraksi
    Akan bagus jika semua konten tulisan yang saya ikuti dikumpulkan, lalu dipilihkan kombinasi item agar jumlahnya pas untuk sekitar 30 menit bacaan setiap hari. Harus mencakup semuanya: tulisan blog, artikel, tweet, dan lain-lain
    Baik memakai ChatGPT maupun alat lain, saya ingin konten yang paling “bergizi” disaring, dan konten yang bernilai diprioritaskan dibanding adu mulut. Setelah itu, saya ingin mengirimkannya ke Kindle atau tablet reMarkable untuk dibaca jauh dari warna, kilatan, dan internet cepat
    Langkah berikutnya, saya juga ingin bisa berlangganan feed teman dan sesekali menerima konten “tamu” dari feed mereka

    • Saya sudah sempat mengerjakan sedikit side project seperti ini. Saya penasaran apakah ada yang tertarik mencoba versi beta
      Saya suka ide menambahkan ringkasan GPT, dan kalau orang lain juga tertarik, mungkin saya bisa merapikannya lalu membagikannya. Saat ini masih aplikasi JavaScript sederhana yang saya pakai secara lokal, tetapi ide ini tampak lebih keren daripada yang awalnya saya bayangkan
    • Ini terhubung dengan semacam visi tentang internet awal dan agen. Gagasannya adalah program berkeliling internet atas nama pengguna dan melakukan pekerjaan yang berguna
      Sepertinya Douglas Engelbart, tetapi saya tidak bisa menemukan materi tentang agen itu. Mungkin juga tokoh teknologi lain
  • Saya memperhatikan dan merasa relate dengan keputusan sadar untuk tidak repot-repot melakukan pengujian otomatis pada awalnya. Perlu waktu cukup lama untuk mengatasi rasa tidak nyaman karena tidak menulis tes, tetapi sekarang saya juga mendekatinya dengan cara serupa untuk proyek mainan pribadi
    Terlalu banyak proyek yang mati di hari pertama. Padahal itu seharusnya saat membangun momentum, tetapi saya malah kehilangan semangat karena sibuk menyiapkan infrastruktur tes dan pipeline CI
    Sekarang saya bekerja dengan patokan bahwa ketiadaan tes ditangani saat benar-benar menjadi masalah

    • Mudah sekali lupa bahwa praktik terbaik pengembangan adalah fungsi dari skala
      Hal-hal yang wajib di proyek matang dengan banyak pengembang dan codebase besar bisa terasa merepotkan untuk proyek kecil yang dikerjakan sendirian
    • Dalam proyek pribadi, saya mulai menulis tes saat menabrak bagian yang sulit dibuat dengan benar. Sebelum itu, saya tidak melakukannya
      Setelahnya, saya fokus menambahkan tes secara ad hoc setiap kali masalah muncul
    • Secara umum saya setuju, tetapi tergantung sifat aplikasinya
      Beberapa tahun lalu saya membuat penganalisis gas pernapasan sebagai proyek pribadi, dan menulis perangkat lunak yang terhubung lewat Bluetooth untuk menampilkan data secara real-time. Unit test sangat berguna untuk fungsi-fungsi yang harus melakukan perhitungan ilmiah dengan akurat, tetapi kalau dipikir-pikir lagi, pengujian bagian lain dari antarmuka hampir sepenuhnya buang-buang waktu
      Setelah saya yakin fungsi-fungsinya tidak akan berubah lagi, saya menghapus semua tes. Saat mengembangkan sendirian, pengujian manual saja bisa sudah cukup
  • Saya membuat akun anonim baru agar bisa jujur membicarakan masa depan
    Tulisan ini mengejutkan saya karena terasa seperti ditulis oleh diri saya di masa depan. Sulit dipercaya betapa banyak kesamaan saya dengan penulisnya
    Saya sedang menyadari burnout dan membuat rencana untuk berhenti bekerja pada awal tahun depan. Itu juga alasan saya membuat akun anonim. Mungkin banyak orang yang merasakan hal serupa
    Yang lebih mengejutkan, apa yang dilakukan penulis hampir sama dengan yang selama ini saya khayalkan ingin coba saat beristirahat. Saya memikirkan bagaimana bisa terlibat dalam open web/IndieWeb, dan berencana membuat aplikasi untuk bereksperimen di ranah ini
    Bahkan kekhawatiran teknisnya pun mirip, seperti masalah agar kiriman yang jarang tidak tenggelam dalam banjir informasi, atau bahasa dan teknologi apa yang akan dipakai. Pengembangan web saya tertinggal sekitar 10 tahun, tetapi saya juga sempat berpikir untuk membuat sesuatu dengan teknologi web modern
    Di satu sisi, saya senang karena rasanya pikiran dan perasaan saya belakangan ini tervalidasi. Rasanya seperti sedang berada di jalur yang benar. Di sisi lain, saya juga kesal dan iri karena penulis sudah lebih dulu melakukannya

    • Saya tidak tahu ini akan menghibur atau justru membuat lebih kesal, tetapi 20 tahun lalu saya membuat sesuatu yang hampir sama dan sampai sekarang masih saya pakai setiap hari
      Waktu itu saya menginginkan pembaca RSS saya sendiri. Saya tidak suka pembaca yang ada, dan saya ingin pembaca yang tidak terlihat seperti kotak masuk, melainkan seperti blog biasa yang bisa saya desain sesuka hati. Jadi saya membuat parser feed RSS dan mendesainnya agar terlihat seperti blog biasa milik saya
      Setelah itu, saya mengubahnya agar jika feed RSS hanya berisi ringkasan, ia akan mengambil artikel lengkapnya. Saya tidak ingin harus mengklik keluar dari pembaca untuk melihat artikel penuh; saya ingin semuanya ada di dalam feed reader. Setelah saya punya page scraper dasar, saya juga memakainya untuk situs yang tidak punya RSS, dan itu sangat membantu terutama saat media sosial mulai populer
      Saya bisa melihat hanya konten yang saya inginkan di feed saya tanpa perlu benar-benar pergi ke situs sosialnya. Karena ini benda berusia 20 tahun, teknologinya memakai hal-hal lama seperti PHP dan XSLT, dan sampai sekarang masih tetap begitu
      Bagaimanapun, saya sangat merekomendasikan untuk membuatnya sendiri. Ini proyek yang menyenangkan. Memang tua, kasar, dan scraping-nya tidak sempurna sehingga kadang konten yang saya inginkan tidak muncul, tetapi saya menyukainya karena ini milik saya dan merupakan reader yang sudah saya pakai setiap hari selama 20 tahun
    • Tidak perlu iri karena penulis melakukannya lebih dulu. Intinya adalah membuatnya untuk diri sendiri, lalu merefleksikan diri lewat proses itu
      Tidak ada alasan upaya serupa dari Anda jadi tidak berguna. Saya juga bukan orang pertama yang mengimplementasikan personal reader
      Yang menarik, ketika saya meninjau lagi tulisan IndieWeb yang saya tautkan, saya merasa hampir persis mengulang ide-ide dari tulisan itu. Nasihatnya kira-kira seperti, “jangan mencoba membuat perangkat lunak untuk semua orang, buatlah untuk dirimu sendiri”
      Jika Anda mencoba membuatnya serbaguna dan mudah dipakai orang lain, Anda bisa berakhir membuat kompromi yang merusak kegunaan bagi diri sendiri, atau mendesain untuk pengguna imajiner yang bahkan tidak ada. Maksudnya, buatlah secara egois agar lebih berguna bagi Anda sendiri
  • Ini benar-benar menyegarkan. Selama setahun terakhir saya melalui jalur burnout/pemulihan yang sangat mirip, dan bisa kembali menikmati pekerjaan sambil membuat perangkat lunak pribadi yang berguna
    Kelebihan besar lainnya adalah bisa bebas mencoba teknologi “nonkonvensional” yang saya inginkan. Hal-hal seperti membuat executable PHP biner tunggal yang modern, memakai SQLite di lingkungan produksi, atau deploy tanpa Docker memberi saya kesenangan
    Pekerjaan seperti ini juga berdampak ke pekerjaan utama saya. Saya sering menemukan teknik dan optimasi baru di repositori pribadi lalu membawanya ke pekerjaan utama

    • Ada bagian yang terdengar seperti sedang membicarakan saya
      Menarik bahwa para teknisi sering mengutak-atik banyak hal di samping, lalu membawa apa yang mereka pelajari ke pekerjaan mereka dalam bentuk yang berguna dan kadang bernilai. Namun, pemberi kerja kadang justru meremehkan upaya semacam itu atau mematikan semangatnya
      Mungkin saya memang bekerja di jenis organisasi yang salah. Meski begitu, senang mendengar Anda mendapat manfaat dari efek rambatan seperti itu
  • Saya lebih suka pola pikir feed daripada daftar periksa hal yang harus dibaca/dikonsumsi. Saya sudah mencoba beberapa pembaca RSS selama beberapa tahun, tetapi tidak pernah bertahan lama
    Rasanya seperti apakah saya benar-benar perlu mengelola satu kotak masuk lagi. Meski begitu, saya berencana melihat feedi(https://github.com/facundoolano/feedi)

    • Saya justru kebalikannya. Dengan pembaca RSS, saya bisa cepat memproses hal-hal yang “baru” lalu masuk ke mode ngoprek untuk sementara waktu
      Sebelum menatanya, saya biasa mengklik ke sana-sini tanpa tujuan sambil berpikir apakah ada tulisan baru di HN, apakah ada di Reuters. Pengalaman saya cocok dengan https://news.ycombinator.com/item?id=38642092
    • Alih-alih “satu kotak masuk lagi”, saya menerima semua langganan RSS lewat email dengan rss2email
      Email pribadi, mailing list, dan feed RSS semuanya terkumpul di satu tempat. Jika difilter ke spool masing-masing dan dipakai bersama klien email yang kuat seperti mutt, hasilnya menjadi pengalaman terpadu yang cukup nyaman
  • Penulis tampaknya menambahkan autentikasi agar bisa mengakses aplikasi dari mana saja
    Sebagai gantinya, saya penasaran apakah memungkinkan atau lebih mudah jika aplikasi itu ditempatkan di atas VPN, lalu VPN tersebut dibuat bisa diakses dari mana saja
    Saya ingin mengakses web app pribadi dengan aman dan sedang mencari pendekatan yang paling mudah. Setiap kali melihat autentikasi, rasanya seperti labirin konsep, protokol, dan pustaka, dan saya tidak ingin memeliharanya

    • Cara yang mendekati standar untuk melakukan ini dengan mudah adalah Tailscale
      Saya meng-host beberapa aplikasi seperti Home Assistant di Raspberry Pi di rumah, lalu memasang Tailscale di Pi itu dan di ponsel saya, dan hasilnya bekerja sangat baik. Satu-satunya autentikasi yang perlu dilakukan adalah “login ke Tailscale di tiap perangkat”
      Dari sisi kemudahan membentuk jaringan aman dengan perangkat sendiri, saya sangat merekomendasikan Tailscale
    • Untuk kebanyakan kebutuhan, saya cukup puas dengan Basic HTTP authentication. Untungnya, ini masih didukung hampir secara universal
      Untuk “melindungi” aplikasi saya yang hanya meng-host potongan teks yang saya klip dari situs lain, itu sudah cukup
    • Jelas ini memungkinkan, tetapi jika Anda belum memakai VPN, saya tidak yakin ini lebih mudah
      Ada banyak cara, tetapi intinya adalah menempatkan endpoint VPN dan web app di lokasi yang sama, misalnya di mesin yang sama atau jaringan yang sama, lalu membatasi akses ke web app dari lokasi lain
    • Saya menyiapkan dan memakai WireGuard dan Caddy bersama-sama di server lewat Docker
      Caddy dikonfigurasi agar hanya me-reverse proxy permintaan yang datang dari jaringan internal atau VPN, dan selain itu mengembalikan 404. Jadi jika tidak berada di VPN atau jaringan rumah, tidak ada apa pun yang terlihat
      Tergantung apakah Anda membuka jaringan untuk tamu dan layanan apa saja yang dijalankan, Anda mungkin memerlukan VLAN atau jaringan tamu terpisah. Banyak layanan yang saya jalankan di rumah juga punya autentikasi kata sandi sendiri, dan itu dipakai bersama pembatasan VPN
      Ini adalah susunan yang pertama kali terpikir oleh saya, jadi bisa saja tidak aman karena alasan di luar bidang keahlian saya. Kelebihannya, saya juga menjalankan Pi-hole di file compose yang sama, jadi saat ponsel terhubung ke VPN saya juga mendapatkan pemblokiran iklan jarak jauh “gratis”
      Tailscale lebih mudah diatur dan UI-nya juga bagus, tetapi di iOS terlalu boros baterai sehingga saya berhenti memakainya. Keharusan untuk “mempercayai server milik orang lain” juga menjadi masalah, tetapi jika bukan karena masalah baterai, kemungkinan besar saya akan menerima risiko tambahan itu demi kemudahan
      Aplikasi WireGuard juga punya fitur praktis. Anda bisa menentukan agar ia tidak berjalan di jaringan tertentu, seperti saat di rumah, sehingga saat keluar rumah ia menyala otomatis dan saat pulang ia mati
  • Ini sangat dekat, sampai mengejutkan, dengan sesuatu yang saya kira saya butuhkan di kapal pesiar jelajah. Terutama di laut lepas, koneksi sering terputus-putus, jadi rasanya akan pas sekali jika ada dua hal tambahan
    Harus ada tombol sinkronkan sekarang untuk saat-saat ketika koneksi hanya muncul sebentar, seperti saat melewati pulau yang menangkap LTE. Selain itu, secara default harus ada pemrosesan Readability dan cache lokal, agar semua konten termasuk gambar bisa dibaca secara offline