changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > notes / annotate 20240419.org

changeset 9: 4839b0675118
parent: 812feca5a874
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 11 Aug 2024 14:46:59 -0400
permissions: -rw-r--r--
description: ids
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 * How it works
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
2
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
3
 :ID:       439a4945-de2f-4985-ba6c-fe6421aa9ad9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
4
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 The backend services are written in Rust and controlled by a simple
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 messaging protocol. Services provide common runtime capabilities known
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 as the /service protocol/ but are specialized on a unique /service
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 type/ which may in turn register their own /custom protocols/ (via
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 core).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 Services are capable of dispatching data directly to clients, or
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 storing data in the /database/ (sqlite, postgres, mysql).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 The frontend clients are pre-dominantly written in Common Lisp and
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 come in many shapes and sizes. There is a cli-client, web-client
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 (CLOG), docker-client (archlinux, stumpwm, McCLIM), and native-client
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 which also compiles to WASM (slint-rs).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 * Guide
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
20
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
21
 :ID:       65140d2c-5d59-48cd-946c-01c380a37f08
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
22
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 ** Build
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
24
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
25
 :ID:       ad0652ca-4abf-4d27-8897-a61a13a6e61d
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
26
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
 - *install dependencies*
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
   #+begin_src bash
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
     ./tools/deps.sh
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
   #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 - *make executables* \\
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
   Simply run =make build=. Read the ~makefile~ and change the options
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
   as needed.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
 - MODE :: Mode (debug, release)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 - LISP :: Lisp (sbcl, cmucl, ccl)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 - CFG :: Config (default.cfg)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 ** Run
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
38
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
39
 :ID:       b2295442-ccb7-4a5c-8a9e-ea8502aad636
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
40
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 #+begin_src shell
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
   ./demo -i
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
 ** Config
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
45
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
46
 :ID:       600be170-d032-4280-a7b5-c46e3c157206
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
47
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 =default.cfg= for an example.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 ** Play
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
51
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
52
 :ID:       56a69ed7-2eb3-4490-95a1-072cee985df5
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
53
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 The high-level user interface is presented as a multi-modal GUI
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 application which adapts to the specific application /instances/
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
 below.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
 *** Weather
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
58
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
59
 :ID:       804a174b-534c-4a04-966a-b44c0a86fbd4
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
60
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
 This backend retrieves weather data using the NWS API.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
 *** Stocks
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
63
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
64
 :ID:       4e7339bb-aaf3-4fab-90e4-05e13f24f881
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
65
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
 The 'Stocks' backend features a stock ticker with real-time analysis
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
 capabilities.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
68
 *** Bench
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
69
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
70
 :ID:       e3cf0add-6ded-4c05-a05d-7ef463b85b08
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
71
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
 This is a benchmark backend for testing the capabilities of our
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
 demo. It spins up some mock services and allows fine-grained control
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
 of input/throughput.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
 * tasks
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
76
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
77
 :ID:       a16a3807-0e06-4c8d-baf6-5dfa8f8f5585
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
78
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
 ** TODO DSLs
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
80
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
81
 :ID:       3ae4754e-0c0f-4923-9e53-ae962b8638a1
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
82
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
 - consider tree-sitter parsing layout, use as a guide for developing a
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
   single syntax which expands to Rust or C.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
 - with-rs
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
 - with-c
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
 - with-rs/c
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
 - with-cargo
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
 - compile-rs/c
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
90
 *** TODO rs-macroexpand
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
91
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
92
 :ID:       f612975f-6bcc-4aab-b0d8-65b8ff0a0d0f
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
93
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
94
 - rs-gen-file
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
95
 - rs-defmacro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
96
 - rs-macros
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
97
 - rs-macroexpand
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
98
 - rs-macroexpand-1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
99
 *** TODO c-macroexpand
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
100
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
101
 :ID:       49f5c224-026d-4cdc-a326-1742e64c4279
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
102
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
103
 - c-gen-file h/c
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
104
 - c-defmacro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
105
 - c-macros
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
106
 - c-macroexpand
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
107
 - c-macroexpand-1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
108
 *** TODO slint-macroexpand
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
109
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
110
 :ID:       486beb12-179b-4acc-8507-cdc498edb628
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
111
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
112
 - slint-gen-file
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
113
 - slint-defmacro
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
114
 - slint-macros
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
115
 - slint-macroexpand
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
116
 - slint-macroexpand-1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
117
 *** TODO html (using who)
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
118
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
119
 :ID:       2e81a19c-874c-4fd7-be0f-f6cd62c660db
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
120
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
121
 ** TODO web templates
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
122
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
123
 :ID:       95f7d6ac-c010-4d1d-a47d-1693bb7d6eab
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
124
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
125
 create a basic static page in CL which will be used to host Slint UIs
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
126
 and other WASM doo-dads in a browser.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
127
 ** TODO CLI
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
128
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
129
 :ID:       fc1d5364-279c-4d5f-baea-ed2c110b63f0
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
130
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
131
 using clingon, decide on generic options and write it up
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
132
 ** TODO docs
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
133
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
134
 :ID:       467e84e3-e72f-4764-8858-cc15fdc17e8a
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
135
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
136
 work on doc generation -- Rust and CL should be accounted for.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
137
 ** TODO tests
9
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
138
 :PROPERTIES:
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
139
 :ID:       70aea01c-d01e-4ddf-aaf5-c86183a7e250
Richard Westhaver <ellis@rwest.io>
parents: 4
diff changeset
140
 :END:
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
141
 We have none! need to make it more comfy - set up testing in all Rust
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
142
 crates and for the lisp systems.