Pushpin: Membawa ide dari pertanian

Dibuat pada 6 Nov 2019  ·  4Komentar  ·  Sumber: automerge/pushpin

Bermain-main dengan pushpin sedikit #310 dan #316 Saya mulai menyadari bahwa apa yang benar-benar ingin saya capai kurang lebih adalah apa yang saya inginkan dengan eksperimen dat://code.gozala.io/ saya (yang tidak terlalu berbeda dari https://observablehq.com/) itu adalah cara untuk menulis sedikit kode yang memungkinkan saya mengambil sepotong data dan membuat salah satu dari widget atau yang dapat digunakan kembali. Saya kira saya telah menggunakannya agak di sepanjang garis spreadsheet kecuali dengan antarmuka dipesan lebih dahulu yang disesuaikan dengan tugas tertentu.

Sebenarnya pertanian persis seperti itu, sebenarnya jauh lebih baik, karena saya menemukan papan menjadi permukaan yang jauh lebih baik untuk interaksi semacam ini daripada notepad yang harus Anda gulir ke atas dan ke bawah atau spreadsheet dalam hal ini.

Jadi saya bertanya-tanya apakah kita bisa menghidupkan kembali apa yang membuat pertanian begitu menarik. Dari percakapan saya dengan @pvh saya merasa bahwa sementara Elm adalah bahasa yang sangat bagus, itu terbukti sangat membatasi dalam praktik (yang saya khawatir menggemakan pengalaman yang saya miliki dengannya dalam upaya saya menggunakannya untuk https:// github.com/browserhtml/browserhtml atau bahkan disebutkan di https://observablehq.com/). Namun saya pikir elemen pertanian yang lebih menarik adalah gagasan bahwa semua yang ada di layar diwakili menggunakan (doc, lens) di mana lens itu sendiri adalah bagian dari kode yang juga disimpan di beberapa dokumen.

Saya ingin mengembalikan ini tetapi menghilangkan (setidaknya pada awalnya) kompiler Elm. Kebetulan juga saya telah menggunakan https://github.com/mozilla/reflex/ library yang kurang lebih arsitektur Elm di JS, yang tidak memerlukan langkah kompilasi (pemeriksa tipe akan lebih baik) .

Jadi menyatukan semua ini, inilah yang ingin saya coba:

  1. Tumbuh #310 menjadi komponen "pengeditan lensa", yang pada dasarnya memungkinkan seseorang untuk menulis sedikit JS yang kemudian dapat dirujuk & dimuat melalui URL. Sayangnya tampaknya hypermerge:/ URL tidak dapat dimuat hanya hyperfile:/... yang dapat tetapi mungkin itu dapat diatasi atau dalam kasus terburuk komponen dapat membuat URL hyperfile:/ baru setelah perubahan.

  2. Buat komponen "pipa" lain yang menyematkan komponen "pembuatan lensa" atau lebih tepatnya pemilih untuk lensa yang ada dan pemilih "dok" data untuk memproyeksikan satu sama lain. _Saya ingin saluran pipa tidak terbatas hanya pada (data, lensa) di mana proyek lensa (HTML) melihat tetapi untuk memungkinkan data ke proyeksi data sehingga hal-hal dapat dirantai menjadi saluran pipa yang lebih besar, tetapi itu mungkin sedikit berlebihan sekarang) _. Lensa default dapat berupa inspektur (lihat #316) sehingga hanya dokumen yang akan membuat sesuatu dan dari sana seseorang dapat memilih untuk menggunakan yang lain, atau membuatnya.

Perhatikan bahwa dengan sesuatu seperti ini saya dapat dengan mudah membuat ulang alat yang sering saya gunakan https://hackmd.io/ di mana saya dapat menggunakan komponen "editor kode" untuk mengetik penurunan harga dan komponen "pipa" untuk membuat pratinjaunya berdampingan atau apa pun yang masuk akal.

PS: Saya masih memikirkan ide ini tetapi saya akan berbagi untuk umpan balik & dalam upaya untuk mendokumentasikannya

Komentar yang paling membantu

cc @pfrazee tampaknya mirip dengan apa yang Anda lakukan dengan "melihat file" di Beaker.

Semua 4 komentar

cc @pfrazee tampaknya mirip dengan apa yang Anda lakukan dengan "melihat file" di Beaker.

Ini juga sangat mirip dengan apa yang coba dilakukan Wireline, saya pikir.

Hal lain yang terus berputar di kepala saya adalah ketika saya berpikir tentang data -> view dan data -> data entah bagaimana selalu ada lompatan dari yang pertama ke yang kedua. Saya ingat dalam salah satu diskusi di http://offlinefirst.org/camp/ ada ide untuk melampirkan tautan ke blok data (doc dalam konteks pushpin) untuk "tampilan yang diberikan" dan tautan ke "kode sumber" untuk rendering pandangan tersebut.

Bagaimana jika kita menggeneralisasi data -> view ke data -> data di mana output kebetulan berupa dokumen html (yang sebenarnya mungkin layak dipertahankan sebagai dokumen seperti itu). Dengan begitu pushpin hanya bisa merender dokumen yang kebetulan HTML secara langsung dan yang bukan data inspector .

Pada widget yang ada, mereka dapat dianggap sebagai Note : data -> html , Thread: data -> html , dll...

Masalah utama dengan mempertahankan & memulihkan html adalah pendengar acara, namun itu juga merupakan masalah yang saya tangani ketika mencoba mengeluarkan semua logika aplikasi dari utas utama dan saya pikir saya punya beberapa ide bagaimana mengatasinya.

Secara spesifik untuk membuatnya bekerja, solusi utas utama yang telah saya tentukan adalah dengan menggunakan perpustakaan decoder.flow yang terinspirasi oleh perpustakaan Decoder JSON Elm di mana decoder adalah pengurai parser deklaratif yang dapat diserialisasi, dimuat ke utas utama dan digunakan untuk mengekstrak / menyandikan info yang relevan dari acara dan meneruskannya kembali ke utas tempat program berjalan.

Dalam kasus penggunaan khusus ini, saya pikir pembuat enkode yang dibuat dapat disimpan dalam dokumen yang sama dengan keluaran html yang diberikan dan dirujuk dalam hash menggunakan alamatnya (mungkin hash konten).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

edrex picture edrex  ·  7Komentar

Gozala picture Gozala  ·  9Komentar

Gozala picture Gozala  ·  13Komentar

canadaduane picture canadaduane  ·  9Komentar

radio-alice picture radio-alice  ·  7Komentar