oxedyne/daimond/www/guide/social.html
58.3 KiB, 43 runs
created by r2519314175:1297, which is this file's identity for as long as the history lasts, whatever it is later renamed to
download · who wrote it · its history
| 1 | <!DOCTYPE html> |
| 2 | <html lang="en" data-guide-locale="en" data-guide-locales="en de es fr pt-BR"> |
| 3 | <head> |
| 4 | <meta charset="UTF-8"> |
| 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> |
| 6 | <title>Social — Daimond guide</title> |
| 7 | <link rel="icon" type="image/svg+xml" href="../assets/daimond_mark.svg"> |
| 8 | <link rel="stylesheet" href="../css/variables.css"> |
| 9 | <link rel="stylesheet" href="../css/guide.css"> |
| 10 | <script src="frame.js"></script> |
| 11 | <script src="search-index.js"></script> |
| 12 | <script src="search.js"></script> |
| 13 | <style> |
| 14 | /* This page's own layout, kept here rather than in guide.css because nothing |
| 15 | else in the guide is a glossary. Everything is stated in the app's own |
| 16 | palette variables, so it follows the reader's theme like the rest. */ |
| 17 | |
| 18 | /* A pair of sentences the reader is meant to compare. */ |
| 19 | .pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0.75rem; margin: 1rem 0; } |
| 20 | .pair > div { border: 1px solid var(--border); border-radius: var(--radius); padding: 0.8rem 0.9rem; background: var(--bg-secondary); } |
| 21 | .pair .lead-in { display: block; font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 0.35rem; } |
| 22 | .pair .costly { border-color: var(--border-2); } |
| 23 | .pair .useful { border-color: var(--accent); } |
| 24 | .pair p { margin: 0; color: var(--text-secondary); } |
| 25 | |
| 26 | /* A whole sentence the app puts on screen, quoted as it stands. The pill in |
| 27 | guide.css is `white-space: nowrap`, which is right for a button label and |
| 28 | wrong for a sentence: at 360px the longest of these ran 133 pixels past the |
| 29 | right edge and took the whole page sideways with it. A quotation wraps. */ |
| 30 | .ui.quoted { white-space: normal; } |
| 31 | |
| 32 | /* The glossary. Two columns where there is room, one where there is not; the |
| 33 | crops are between 300 and 440 pixels wide, so a column of about 350 shows |
| 34 | most of them at close to their own size and none of them at twice it. */ |
| 35 | .terms { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; margin: 1.25rem 0 2rem; align-items: start; } |
| 36 | .term { |
| 37 | background: var(--bg-secondary); |
| 38 | border: 1px solid var(--border); |
| 39 | border-radius: var(--radius); |
| 40 | padding: 0.85rem 0.9rem 0.95rem; |
| 41 | } |
| 42 | .term h3 { margin: 0 0 0.55rem; font-size: 1.02rem; } |
| 43 | .term img { |
| 44 | display: block; |
| 45 | max-width: 100%; |
| 46 | max-height: 200px; |
| 47 | width: auto; |
| 48 | height: auto; |
| 49 | margin: 0 0 0.6rem; |
| 50 | border: 1px solid var(--border); |
| 51 | border-radius: var(--radius-sm); |
| 52 | background: var(--bg-tertiary); |
| 53 | } |
| 54 | /* The chip row is 800 pixels of real screen. Squeezed into half the column it |
| 55 | is a smear, so it takes the whole width and is read at close to its own size. |
| 56 | Legibility is the only reason any of these pictures is here. */ |
| 57 | .term.wide { grid-column: 1 / -1; } |
| 58 | |
| 59 | /* A phone shot, a dialog and the two boxes that cover the screen are portraits. |
| 60 | Shrunk to the height of a landscape crop their own lettering stops being |
| 61 | readable, which defeats the entry, so they take the full width and the prose |
| 62 | sits beside them. */ |
| 63 | .term.tall { grid-column: 1 / -1; } |
| 64 | .term.tall::after { content: ""; display: block; clear: both; } |
| 65 | .term.tall img { float: left; max-height: 620px; margin: 0 1.1rem 0.6rem 0; } |
| 66 | .term p { margin: 0.35rem 0 0; font-size: 0.93rem; color: var(--text-secondary); } |
| 67 | .term p.say { color: var(--text-muted); font-size: 0.88rem; margin-top: 0.5rem; } |
| 68 | |
| 69 | /* The widget map. Drawn in the palette's own variables, never in a fixed |
| 70 | colour, so it is legible on all eleven palettes and follows a reader who |
| 71 | changes theirs while it is on screen. |
| 72 | |
| 73 | On a phone the whole schematic scaled to the column width put its labels at |
| 74 | five pixels, which is a diagram that says nothing to the reader who most |
| 75 | needs it. It keeps a floor on its width and scrolls sideways inside its own |
| 76 | box instead: the page still never scrolls sideways, and the words can still |
| 77 | be read. */ |
| 78 | .diagram.scrolls { overflow-x: auto; } |
| 79 | .diagram.scrolls svg { min-width: 640px; } |
| 80 | .widgetmap text { font-family: var(--font); } |
| 81 | .wm-win { fill: var(--bg-primary); stroke: var(--border-2); stroke-width: 1; } |
| 82 | .wm-bar { fill: var(--bg-tertiary); stroke: var(--border); stroke-width: 1; } |
| 83 | .wm-pan { fill: var(--bg-secondary); stroke: var(--border); stroke-width: 1; } |
| 84 | .wm-cell { fill: var(--bg-tertiary); stroke: var(--border); stroke-width: 1; } |
| 85 | .wm-soft { fill: var(--accent-soft); stroke: var(--accent); stroke-width: 1; } |
| 86 | .wm-fill { fill: var(--accent); } |
| 87 | .wm-skel { fill: var(--text-muted); opacity: 0.32; } |
| 88 | .wm-zone { fill: var(--text-muted); letter-spacing: 1.2px; } |
| 89 | .wm-lab { fill: var(--accent-text); font-weight: 700; } |
| 90 | .wm-lead { stroke: var(--accent); stroke-width: 1.2; opacity: 0.75; } |
| 91 | .wm-ink { stroke: var(--text-muted); stroke-width: 1.4; fill: none; opacity: 0.55; } |
| 92 | </style> |
| 93 | </head> |
| 94 | <body> |
| 95 | |
| 96 | <header class="site-head"> |
| 97 | <div class="site-head-inner"> |
| 98 | <a class="brand" href="index.html" aria-label="Daimond guide, home"> |
| 99 | <img class="wordmark wm-dark" src="../assets/daimond_word.svg" alt="Daimond" translate="no"> |
| 100 | <img class="wordmark wm-light" src="../assets/daimond_word_dark.svg" alt="Daimond" translate="no"> |
| 101 | <span class="brand-sub">Guide</span> |
| 102 | </a> |
| 103 | <nav class="site-nav" aria-label="Guide pages"> |
| 104 | <a href="index.html">Getting started</a> |
| 105 | <a href="interface.html">The interface</a> |
| 106 | <a href="models.html">Models & credits</a> |
| 107 | <a href="chats-and-diamonds.html">Chats & Diamonds</a> |
| 108 | <a href="capps.html">Capps</a> |
| 109 | <a href="email-web-files.html">Email, Web & files</a> |
| 110 | <a href="accounts.html">Accounts</a> |
| 111 | <a href="sync.html">Cross-device sync</a> |
| 112 | <a href="spending.html">Spending</a> |
| 113 | <a href="machine-operations.html">Machine Operations</a> |
| 114 | <a href="social.html" aria-current="page">Social</a> |
| 115 | </nav> |
| 116 | </div> |
| 117 | </header> |
| 118 | |
| 119 | <main> |
| 120 | <h1>Social</h1> |
| 121 | <p class="lede">Daimond is changed by what its users report. The Social panel is where that is written, read back and voted on, and where messages, the people they come from, groups and shares sit. This page is about making a note land: how to say what happened, and the names for the parts of the screen, so that whoever reads it knows at once which thing you mean.</p> |
| 122 | |
| 123 | <p>A note that says the thing at the top left is broken costs somebody a search, and sometimes finds the wrong thing. A note that says the <strong>Diamonds</strong> chip in the top bar does not. Neither note is more work to write. The difference is only knowing what the parts are called, which is what the rest of this page is for.</p> |
| 124 | |
| 125 | <section id="writing-a-note"> |
| 126 | <h2 id="s1">Writing a note that can be acted on</h2> |
| 127 | |
| 128 | <p>Three things, and the first is the one most often left out.</p> |
| 129 | |
| 130 | <ol class="steps"> |
| 131 | <li> |
| 132 | <h3 id="s2">Where it is</h3> |
| 133 | <p>Name the part, and the region it sits in. The screen has four regions and about twenty kinds of part, and naming both makes almost anything unique: there are crosses all over Daimond, but only one closer on the <span class="ui">Everything</span> row.</p> |
| 134 | </li> |
| 135 | <li> |
| 136 | <h3 id="s3">What you expected</h3> |
| 137 | <p>Say what you thought would happen. This is the half a reader cannot guess, and it is often the whole report: a control that does exactly what it was built to do, and surprises people anyway, is a fault in the control and not in the people.</p> |
| 138 | </li> |
| 139 | <li> |
| 140 | <h3 id="s4">What happened instead</h3> |
| 141 | <p>What you saw, in the order you saw it. Not what you think caused it. A guess at the cause narrows the search, and a wrong guess narrows it away from the fault.</p> |
| 142 | </li> |
| 143 | </ol> |
| 144 | |
| 145 | <div class="pair"> |
| 146 | <div class="costly"> |
| 147 | <span class="lead-in">Costs a round trip</span> |
| 148 | <p>The X at the top left is broken.</p> |
| 149 | </div> |
| 150 | <div class="useful"> |
| 151 | <span class="lead-in">Can be acted on</span> |
| 152 | <p>The closer on the <span class="ui">Everything</span> row put the whole rail away. I expected it to close that row.</p> |
| 153 | </div> |
| 154 | </div> |
| 155 | |
| 156 | <p>A few more things that save a reply.</p> |
| 157 | |
| 158 | <ul> |
| 159 | <li><strong>One note, one thing.</strong> Two faults in one note become one proposal that cannot be finished, because half of it is fixed and half is not.</li> |
| 160 | <li><strong>Say which build.</strong> The <span class="ui">Version</span> row in the admin panel names it, and hovering it gives the build id. A fault already fixed reads exactly like a fault nobody can reproduce.</li> |
| 161 | <li><strong>Say what you were doing.</strong> Even a short trail helps: which panel was open, whether you were on a phone, which palette you were wearing. A fault can be there on one palette, or one screen width, and nowhere else.</li> |
| 162 | <li><strong>Write it anyway.</strong> If you cannot name the part, describe it and say where it was on screen. An approximate note is worth far more than a note nobody writes.</li> |
| 163 | </ul> |
| 164 | </section> |
| 165 | |
| 166 | <section id="regions"> |
| 167 | <h2 id="s5">Saying where: the four regions</h2> |
| 168 | |
| 169 | <p>Daimond has a <strong>top bar</strong> across the top, and under it three regions side by side: the <strong>rail</strong> on the left, the <strong>stage</strong> in the centre, and the <strong>dock</strong> on the right. Almost every note can start by naming one of those four. <a href="interface.html">The interface</a> tours them and says what each panel is for; this page is about the smaller parts inside them.</p> |
| 170 | |
| 171 | <figure class="diagram scrolls"> |
| 172 | <svg class="widgetmap" viewBox="0 0 760 470" role="img" aria-labelledby="wm-title wm-desc" preserveAspectRatio="xMidYMid meet"> |
| 173 | <title id="wm-title">Where the named parts of the screen are</title> |
| 174 | <desc id="wm-desc">A schematic of the Daimond window. Across the top is the top bar, holding the chip row. Below it, three regions: the rail on the left, with a light and a closer on its top row, a head over each list, tiles in the lists, a divider between them, and rows in the admin panel underneath; the stage in the centre, with a head at the top and the composer at the bottom; and the dock on the right, holding panels.</desc> |
| 175 | |
| 176 | <!-- ── The window and the top bar ─────────────────────── --> |
| 177 | <rect class="wm-win" x="10" y="10" width="740" height="450" rx="16"/> |
| 178 | <path class="wm-bar" d="M10,26 a16,16 0 0 1 16,-16 h708 a16,16 0 0 1 16,16 v30 h-740 z"/> |
| 179 | <rect class="wm-fill" x="30" y="27" width="12" height="12" rx="2" transform="rotate(45 36 33)"/> |
| 180 | <rect class="wm-skel" x="52" y="29" width="46" height="7" rx="3.5"/> |
| 181 | |
| 182 | <!-- The chip row, with two chips filled to show an open panel. --> |
| 183 | <rect class="wm-soft" x="170" y="24" width="46" height="18" rx="9"/> |
| 184 | <rect class="wm-cell" x="224" y="24" width="30" height="18" rx="9"/> |
| 185 | <rect class="wm-soft" x="262" y="24" width="36" height="18" rx="9"/> |
| 186 | <rect class="wm-cell" x="306" y="24" width="40" height="18" rx="9"/> |
| 187 | <rect class="wm-cell" x="354" y="24" width="44" height="18" rx="9"/> |
| 188 | <line class="wm-ink" x1="408" y1="24" x2="408" y2="42"/> |
| 189 | <rect class="wm-cell" x="418" y="24" width="44" height="18" rx="9"/> |
| 190 | <rect class="wm-cell" x="470" y="24" width="40" height="18" rx="9"/> |
| 191 | <rect class="wm-cell" x="518" y="24" width="42" height="18" rx="9"/> |
| 192 | <circle class="wm-ink" cx="660" cy="33" r="9"/> |
| 193 | <circle class="wm-ink" cx="690" cy="33" r="9"/> |
| 194 | <circle class="wm-ink" cx="720" cy="33" r="9"/> |
| 195 | <text class="wm-lab" x="365" y="53" text-anchor="middle" font-size="12">chip row</text> |
| 196 | <text class="wm-zone" x="600" y="37" text-anchor="middle" font-size="10">TOP BAR</text> |
| 197 | |
| 198 | <!-- ── The rail ───────────────────────────────────────── --> |
| 199 | <text class="wm-zone" x="22" y="80" font-size="10">RAIL</text> |
| 200 | <rect class="wm-pan" x="22" y="88" width="196" height="360" rx="10"/> |
| 201 | |
| 202 | <!-- Its top row: play, pause, the light, and the rail's own closer. --> |
| 203 | <path class="wm-ink" d="M32,105 L40,110 L32,115 z"/> |
| 204 | <line class="wm-ink" x1="47" y1="105" x2="47" y2="115"/> |
| 205 | <line class="wm-ink" x1="52" y1="105" x2="52" y2="115"/> |
| 206 | <circle class="wm-fill" cx="64" cy="110" r="5"/> |
| 207 | <rect class="wm-skel" x="76" y="107" width="48" height="7" rx="3.5"/> |
| 208 | <path class="wm-ink" d="M196,105 L206,115 M206,105 L196,115"/> |
| 209 | <line class="wm-lead" x1="64" y1="118" x2="64" y2="127"/> |
| 210 | <text class="wm-lab" x="64" y="138" text-anchor="middle" font-size="12">light</text> |
| 211 | <line class="wm-lead" x1="201" y1="118" x2="201" y2="127"/> |
| 212 | <text class="wm-lab" x="208" y="138" text-anchor="end" font-size="12">closer</text> |
| 213 | |
| 214 | <!-- A head over the list, with the buttons that act on the list. --> |
| 215 | <rect class="wm-skel" x="32" y="156" width="50" height="8" rx="4"/> |
| 216 | <circle class="wm-cell" cx="188" cy="160" r="7"/> |
| 217 | <circle class="wm-cell" cx="206" cy="160" r="7"/> |
| 218 | <text class="wm-lab" x="128" y="164" text-anchor="middle" font-size="12">head</text> |
| 219 | |
| 220 | <!-- A tile, with its tags and its cog. --> |
| 221 | <rect class="wm-cell" x="32" y="178" width="176" height="38" rx="6"/> |
| 222 | <rect class="wm-skel" x="40" y="186" width="72" height="6" rx="3"/> |
| 223 | <rect class="wm-soft" x="40" y="199" width="26" height="9" rx="4.5"/> |
| 224 | <rect class="wm-soft" x="70" y="199" width="22" height="9" rx="4.5"/> |
| 225 | <circle class="wm-ink" cx="196" cy="189" r="5"/> |
| 226 | <text class="wm-lab" x="146" y="193" text-anchor="middle" font-size="12">tile</text> |
| 227 | |
| 228 | <!-- The divider between the two lists. --> |
| 229 | <line class="wm-lead" x1="30" y1="228" x2="210" y2="228" stroke-width="2"/> |
| 230 | <rect class="wm-fill" x="112" y="225.5" width="16" height="5" rx="2.5"/> |
| 231 | <line class="wm-lead" x1="120" y1="232" x2="120" y2="240"/> |
| 232 | <text class="wm-lab" x="120" y="251" text-anchor="middle" font-size="12">divider</text> |
| 233 | |
| 234 | <!-- The second list, and a tile in it. --> |
| 235 | <rect class="wm-skel" x="32" y="266" width="34" height="8" rx="4"/> |
| 236 | <circle class="wm-cell" cx="188" cy="270" r="7"/> |
| 237 | <circle class="wm-cell" cx="206" cy="270" r="7"/> |
| 238 | <rect class="wm-cell" x="32" y="288" width="176" height="30" rx="6"/> |
| 239 | <rect class="wm-skel" x="40" y="296" width="90" height="6" rx="3"/> |
| 240 | <rect class="wm-skel" x="40" y="307" width="60" height="5" rx="2.5"/> |
| 241 | |
| 242 | <!-- The admin panel: one row per question. --> |
| 243 | <line class="wm-ink" x1="26" y1="334" x2="214" y2="334"/> |
| 244 | <circle class="wm-fill" cx="40" cy="349" r="3" opacity="0.6"/> |
| 245 | <rect class="wm-skel" x="50" y="346" width="64" height="6" rx="3"/> |
| 246 | <rect class="wm-skel" x="172" y="346" width="32" height="6" rx="3"/> |
| 247 | <circle class="wm-fill" cx="40" cy="367" r="3" opacity="0.6"/> |
| 248 | <rect class="wm-skel" x="50" y="364" width="52" height="6" rx="3"/> |
| 249 | <rect class="wm-skel" x="172" y="364" width="32" height="6" rx="3"/> |
| 250 | <circle class="wm-fill" cx="40" cy="385" r="3" opacity="0.6"/> |
| 251 | <rect class="wm-skel" x="50" y="382" width="70" height="6" rx="3"/> |
| 252 | <rect class="wm-skel" x="172" y="382" width="32" height="6" rx="3"/> |
| 253 | <circle class="wm-fill" cx="40" cy="403" r="3" opacity="0.6"/> |
| 254 | <rect class="wm-skel" x="50" y="400" width="58" height="6" rx="3"/> |
| 255 | <rect class="wm-skel" x="172" y="400" width="32" height="6" rx="3"/> |
| 256 | <text class="wm-lab" x="140" y="371" text-anchor="middle" font-size="12">row</text> |
| 257 | |
| 258 | <!-- The spend row, at the foot of the rail. --> |
| 259 | <line class="wm-ink" x1="26" y1="422" x2="214" y2="422"/> |
| 260 | <rect class="wm-skel" x="40" y="432" width="28" height="5" rx="2.5"/> |
| 261 | <rect class="wm-skel" x="104" y="432" width="28" height="5" rx="2.5"/> |
| 262 | <rect class="wm-skel" x="168" y="432" width="28" height="5" rx="2.5"/> |
| 263 | |
| 264 | <!-- ── The stage ──────────────────────────────────────── --> |
| 265 | <text class="wm-zone" x="228" y="80" font-size="10">STAGE</text> |
| 266 | <rect class="wm-pan" x="228" y="88" width="300" height="360" rx="10"/> |
| 267 | <rect class="wm-skel" x="240" y="106" width="86" height="8" rx="4"/> |
| 268 | <rect class="wm-cell" x="396" y="101" width="44" height="16" rx="8"/> |
| 269 | <rect class="wm-cell" x="448" y="101" width="36" height="16" rx="8"/> |
| 270 | <rect class="wm-cell" x="492" y="101" width="28" height="16" rx="8"/> |
| 271 | <text class="wm-lab" x="352" y="114" text-anchor="middle" font-size="12">head</text> |
| 272 | |
| 273 | <rect class="wm-soft" x="340" y="142" width="168" height="26" rx="8"/> |
| 274 | <rect class="wm-skel" x="350" y="152" width="148" height="6" rx="3"/> |
| 275 | <rect class="wm-cell" x="240" y="180" width="212" height="34" rx="8"/> |
| 276 | <rect class="wm-skel" x="250" y="188" width="192" height="6" rx="3"/> |
| 277 | <rect class="wm-skel" x="250" y="200" width="150" height="6" rx="3"/> |
| 278 | <rect class="wm-cell" x="240" y="226" width="180" height="26" rx="8"/> |
| 279 | <rect class="wm-skel" x="250" y="236" width="160" height="6" rx="3"/> |
| 280 | |
| 281 | <text class="wm-lab" x="330" y="392" text-anchor="middle" font-size="12">composer</text> |
| 282 | <line class="wm-lead" x1="330" y1="396" x2="330" y2="404"/> |
| 283 | <rect class="wm-cell" x="240" y="404" width="268" height="32" rx="8"/> |
| 284 | <rect class="wm-skel" x="252" y="417" width="140" height="6" rx="3"/> |
| 285 | <circle class="wm-fill" cx="490" cy="420" r="10"/> |
| 286 | |
| 287 | <!-- ── The dock ───────────────────────────────────────── --> |
| 288 | <text class="wm-zone" x="538" y="80" font-size="10">DOCK</text> |
| 289 | <rect class="wm-pan" x="538" y="88" width="200" height="360" rx="10"/> |
| 290 | <rect class="wm-cell" x="550" y="98" width="176" height="104" rx="8"/> |
| 291 | <rect class="wm-skel" x="562" y="110" width="52" height="8" rx="4"/> |
| 292 | <rect class="wm-skel" x="562" y="130" width="150" height="6" rx="3"/> |
| 293 | <rect class="wm-skel" x="562" y="144" width="120" height="6" rx="3"/> |
| 294 | <rect class="wm-skel" x="562" y="158" width="136" height="6" rx="3"/> |
| 295 | <text class="wm-lab" x="638" y="185" text-anchor="middle" font-size="12">panel</text> |
| 296 | <rect class="wm-cell" x="550" y="212" width="176" height="104" rx="8"/> |
| 297 | <rect class="wm-skel" x="562" y="224" width="64" height="8" rx="4"/> |
| 298 | <rect class="wm-skel" x="562" y="244" width="118" height="6" rx="3"/> |
| 299 | <rect class="wm-skel" x="574" y="258" width="126" height="6" rx="3"/> |
| 300 | <rect class="wm-skel" x="574" y="272" width="98" height="6" rx="3"/> |
| 301 | <rect class="wm-skel" x="562" y="286" width="88" height="6" rx="3"/> |
| 302 | <rect class="wm-cell" x="550" y="326" width="176" height="110" rx="8"/> |
| 303 | <rect class="wm-skel" x="562" y="338" width="48" height="8" rx="4"/> |
| 304 | <rect class="wm-skel" x="562" y="358" width="140" height="6" rx="3"/> |
| 305 | <rect class="wm-skel" x="562" y="372" width="104" height="6" rx="3"/> |
| 306 | <rect class="wm-skel" x="562" y="386" width="128" height="6" rx="3"/> |
| 307 | </svg> |
| 308 | <figcaption>Where the named parts sit. The words in colour are the ones to use in a note; the four regions are set in small capitals. Nothing here is to scale, and a panel can be closed, moved or put away, so the regions are what stay put.</figcaption> |
| 309 | </figure> |
| 310 | |
| 311 | <div class="note"> |
| 312 | <strong>Two words for the centre.</strong> This guide calls it the stage. The panel gallery groups the same panels under <span class="ui">Beside the chat</span>, which is the only name the app itself puts on screen for that region. Both are understood; if you use neither and say beside the chat in your own words, that is understood too. |
| 313 | </div> |
| 314 | </section> |
| 315 | |
| 316 | <section id="glossary"> |
| 317 | <h2 id="s6">The parts, by name</h2> |
| 318 | |
| 319 | <p>Every word below is one Daimond already uses, in its own interface or in this guide. Each entry shows the real thing, cropped out of a running Daimond, so you can match what is in front of you against the picture and use the word with confidence.</p> |
| 320 | |
| 321 | <p>The pictures were taken on one of the dark palettes. On yours the colours will differ, and on a phone some of these parts move; the names do not.</p> |
| 322 | |
| 323 | <!-- |
| 324 | A translator's note, and an auditor's. |
| 325 | |
| 326 | Each term here is the word the ENGLISH interface uses. It is a common |
| 327 | noun, not a product name, so it is translated: a reader whose Daimond |
| 328 | says "Kachel" is looking for a glossary that says "Kachel", and one |
| 329 | that says "tile" instead defeats the whole purpose of the page. |
| 330 | |
| 331 | The word to use in a given language is the one that language's own |
| 332 | catalogue already uses, in www/i18n/[locale].js. The key to copy it |
| 333 | from is named after each term, so nothing has to be invented: |
| 334 | |
| 335 | chip chip.show, and chat.concise_failed |
| 336 | tile tile.settings |
| 337 | head no key of its own. The guide's word; the markup says |
| 338 | railhead and chead |
| 339 | closer common.close_named. js/closer.js is the whole control |
| 340 | cog tile.settings, on the button that opens it |
| 341 | light pause.state_play, pause.state_pause, pause.state_mixed, |
| 342 | pause.state_idle |
| 343 | divider layout.handle |
| 344 | row astat.tools_of and the rest of astat |
| 345 | spend row spend.period_day, spend.period_week, spend.period_month |
| 346 | composer chat.input_ph, chat.send |
| 347 | face crystal.view_switch |
| 348 | tag tag.add, tag.pool_toggle |
| 349 | dialog dlg.are_you_sure |
| 350 | gallery gallery.title |
| 351 | Go to box pal.title, pal.close |
| 352 | sheet sheet.close |
| 353 | drawer no key of its own. The button that opens it is |
| 354 | topbar.open_menu |
| 355 | paperclip attach.to_focus |
| 356 | forge social.public_note, social.voice_intro. Nothing to |
| 357 | photograph: it is a website, not a part of this app |
| 358 | voice social.voice_held, social.voice_ph, and the whole |
| 359 | voice.* family. Nothing to photograph either, and |
| 360 | nothing that may be: it is a secret |
| 361 | |
| 362 | The product nouns are NOT translated, here or anywhere: Daimond, |
| 363 | Diamond, Daimond Pro, Hands. See the head of www/i18n/en.js. |
| 364 | --> |
| 365 | |
| 366 | <div class="terms"> |
| 367 | |
| 368 | <div class="term wide" id="term-chip"> |
| 369 | <h3 id="s7">chip</h3> |
| 370 | <img src="shots/vocab-chips.png" alt="A row of small rounded buttons across the top bar, each named after a panel. Three are filled in and the rest are outlined." loading="lazy"> |
| 371 | <p>A small rounded button that turns one thing on or off. The row of them across the top bar is the <strong>chip row</strong>, one chip per panel, filled in while that panel is open.</p> |
| 372 | <img src="shots/vocab-chead.png" alt="The head of the chat panel: its name at the left, then three small rounded buttons reading Guarded, Concise and Steps." loading="lazy"> |
| 373 | <p>Chips are used elsewhere too: on a head, as above, on a tile, and in the rail as tags. Say which, and a chip is unambiguous.</p> |
| 374 | <p class="say">Say: the <strong>Workspace</strong> chip in the chip row.</p> |
| 375 | </div> |
| 376 | |
| 377 | <div class="term" id="term-tile"> |
| 378 | <h3 id="s8">tile</h3> |
| 379 | <img src="shots/vocab-tile-chat.png" alt="A chat in the rail, drawn as a bordered card with a time, the first message, a cog, a closer and two small buttons." loading="lazy"> |
| 380 | <p>One Diamond or one chat, as it appears in the rail. A tile carries its own name, its cog, its closer, and whatever else belongs to that one piece of work.</p> |
| 381 | <p class="say">Say: the cog on a chat tile.</p> |
| 382 | </div> |
| 383 | |
| 384 | <div class="term" id="term-head"> |
| 385 | <h3 id="s9">head</h3> |
| 386 | <img src="shots/vocab-head.png" alt="The word Diamonds at the left of a narrow strip, with a plus button and a graph button at its right." loading="lazy"> |
| 387 | <p>The strip that names a list or a panel and carries the buttons acting on the whole of it. Each list in the rail has one, and so does every panel.</p> |
| 388 | <p class="say">Say: the plus on the <span class="ui">Chats</span> head.</p> |
| 389 | </div> |
| 390 | |
| 391 | <div class="term" id="term-closer"> |
| 392 | <h3 id="s10">closer</h3> |
| 393 | <img src="shots/vocab-closer.png" alt="A small drawn cross." loading="lazy"> |
| 394 | <p>The cross that closes something. Daimond has one closer, drawn one way, on every panel, tile, dialog, menu, drawer and sheet.</p> |
| 395 | <p>It always closes the one thing it sits on and never anything larger, so naming what it sits on names the closer exactly.</p> |
| 396 | <p class="say">Say: the closer on the <span class="ui">Everything</span> row.</p> |
| 397 | </div> |
| 398 | |
| 399 | <div class="term" id="term-cog"> |
| 400 | <h3 id="s11">cog</h3> |
| 401 | <img src="shots/vocab-cog.png" alt="A small drawn cog wheel." loading="lazy"> |
| 402 | <p>The settings button. Wherever a thing has settings of its own, they are behind a cog on that thing: on a tile, on the identity row, on a mailbox.</p> |
| 403 | <p class="say">Say: the cog on the Diamond tile.</p> |
| 404 | </div> |
| 405 | |
| 406 | <div class="term" id="term-light"> |
| 407 | <h3 id="s12">light</h3> |
| 408 | <img src="shots/vocab-everything.png" alt="A row reading Everything, with a play arrow, a pause symbol and a round amber light before it, and a closer at the far right." loading="lazy"> |
| 409 | <p>The round light beside a play and a pause, saying whether that part of Daimond is going to act on its own. Green for everything set up and running, amber for some of it held, red for none of it running — either held, or nothing set up in the first place. Hover it and it says which.</p> |
| 410 | <p>Every light in the app hangs off the one on the <span class="ui">Everything</span> row, which speaks for the lot.</p> |
| 411 | <p class="say">Say: the light on the <span class="ui">Everything</span> row is amber.</p> |
| 412 | </div> |
| 413 | |
| 414 | <div class="term" id="term-divider"> |
| 415 | <h3 id="s13">divider</h3> |
| 416 | <img src="shots/vocab-divider.png" alt="A thin coloured rule across the rail under the pointer, with the Chats head below it." loading="lazy"> |
| 417 | <p>A line you can drag to give one list or one panel more room, and double-click to put back where it was. There are two in the rail: one between the Diamonds and the chats, one above the admin panel.</p> |
| 418 | <p class="say">Say: the divider above the admin panel.</p> |
| 419 | </div> |
| 420 | |
| 421 | <div class="term" id="term-row"> |
| 422 | <h3 id="s14">row</h3> |
| 423 | <img src="shots/vocab-rows.png" alt="The admin panel: a name at the top with a cog, then a stack of single lines each with a coloured dot, a label and a value." loading="lazy"> |
| 424 | <p>One line in a stack of them, answering one question. The admin panel is rows; so are the mailboxes, the folders, the devices and the files.</p> |
| 425 | <p>A row that can be acted on is a button, and it opens the thing it names.</p> |
| 426 | <p class="say">Say: the <span class="ui">Version</span> row in the admin panel.</p> |
| 427 | </div> |
| 428 | |
| 429 | <div class="term" id="term-spend-row"> |
| 430 | <h3 id="s15">spend row</h3> |
| 431 | <img src="shots/vocab-spendrow.png" alt="Three cells at the foot of the rail, labelled Session, Week and Month, each with a small figure under it." loading="lazy"> |
| 432 | <p>The three figures at the foot of the rail: this session, this week, this month. It hides itself while nothing has been spent.</p> |
| 433 | <p class="say">Say: the week cell of the spend row.</p> |
| 434 | </div> |
| 435 | |
| 436 | <div class="term" id="term-composer"> |
| 437 | <h3 id="s16">composer</h3> |
| 438 | <img src="shots/vocab-composer.png" alt="A wide rounded box reading Type a message, with a round send button and two small round buttons beside it." loading="lazy"> |
| 439 | <p>The box you type into, with the send button beside it. There is one, at the foot of the stage, and it talks to whatever is on the stage: a chat, or a Diamond's daimon.</p> |
| 440 | <p class="say">Say: the send button on the composer.</p> |
| 441 | </div> |
| 442 | |
| 443 | <div class="term" id="term-face"> |
| 444 | <h3 id="s17">face</h3> |
| 445 | <img src="shots/vocab-face.png" alt="A small pair of joined buttons reading Crystal and Chat, with Crystal selected." loading="lazy"> |
| 446 | <p>A Diamond has two of them, and this switch chooses which one you are looking at: the <span class="ui">Crystal</span>, which is what the Diamond knows, and the <span class="ui">Chat</span>, which is how it came to know it.</p> |
| 447 | <p class="say">Say: on the crystal face of a Diamond.</p> |
| 448 | </div> |
| 449 | |
| 450 | <div class="term" id="term-tag"> |
| 451 | <h3 id="s18">tag</h3> |
| 452 | <img src="shots/vocab-tile-diamond.png" alt="A Diamond tile carrying two small coloured labels reading project and urgent, with a cog at its right." loading="lazy"> |
| 453 | <p>A word you file a Diamond under. Tags sit on the tile as small chips, and the <span class="ui">Filter by tag</span> row above the list narrows it to the ones you pick.</p> |
| 454 | <img src="shots/vocab-tagfilter.png" alt="A narrow row above the Diamonds list reading Filter by tag, with a count beside it." loading="lazy"> |
| 455 | <p>Tags are yours alone: they never go to a model, and they never enter a crystal.</p> |
| 456 | <p class="say">Say: the tag chips under <span class="ui">Filter by tag</span>.</p> |
| 457 | </div> |
| 458 | |
| 459 | <div class="term tall" id="term-dialog"> |
| 460 | <h3 id="s19">dialog</h3> |
| 461 | <img src="shots/vocab-dialog.png" alt="A card centred over the app, with a title, a closer beside it, several labelled settings, and a Delete button at the foot." loading="lazy"> |
| 462 | <p>A card that opens over the app and waits for an answer. Its title is on the same row as its closer, and Escape does what the closer does.</p> |
| 463 | <p class="say">Say: the <span class="ui">Delete</span> button in a chat tile's dialog.</p> |
| 464 | </div> |
| 465 | |
| 466 | <div class="term tall" id="term-gallery"> |
| 467 | <h3 id="s20">gallery</h3> |
| 468 | <img src="shots/vocab-gallery.png" alt="A tall card titled Panels, with a search box and every panel listed in three groups, each row carrying a star." loading="lazy"> |
| 469 | <p>Every panel there is, searchable, grouped by region, each row saying whether that panel is open and carrying the pin that decides whether its chip sits in the top bar. It opens from the <span class="ui">⋯</span> chip at the end of the chip row.</p> |
| 470 | <p class="say">Say: the pin on the <span class="ui">Trash</span> row of the gallery.</p> |
| 471 | </div> |
| 472 | |
| 473 | <div class="term tall" id="term-goto"> |
| 474 | <h3 id="s21">Go to box</h3> |
| 475 | <img src="shots/vocab-goto.png" alt="A large box over the app with a search field and a list of results, each tagged with what kind of thing it is." loading="lazy"> |
| 476 | <p>The keyboard's way to anything: <kbd>Ctrl</kbd> <kbd>K</kbd>, or <kbd>Cmd</kbd> <kbd>K</kbd> on a Mac. It reaches every panel and every setting by typing, including the ones no chip is showing.</p> |
| 477 | <p class="say">Say: typing a palette name into the Go to box.</p> |
| 478 | </div> |
| 479 | |
| 480 | <div class="term tall" id="term-sheet"> |
| 481 | <h3 id="s22">sheet</h3> |
| 482 | <img src="shots/vocab-sheet.png" alt="A phone screen with a panel raised over the chat from the bottom edge, a grab bar at its top and an ask box at its foot." loading="lazy"> |
| 483 | <p>On a phone, a panel rises over the chat as a sheet you can drag up and down. It has a grab bar at the top, a closer beside it, and the one box you ask about it in.</p> |
| 484 | <p class="say">Say: the grab bar on the Workspace sheet.</p> |
| 485 | </div> |
| 486 | |
| 487 | <div class="term tall" id="term-drawer"> |
| 488 | <h3 id="s23">drawer</h3> |
| 489 | <img src="shots/vocab-drawer.png" alt="A phone screen with the rail slid in from the left over a dimmed app, holding the Diamonds, the chats and the admin panel." loading="lazy"> |
| 490 | <p>On a phone, the rail slides in from the left as a drawer. It is the whole rail, so everything in it keeps its own name. The button that opens it is the three lines at the top left.</p> |
| 491 | <p class="say">Say: the admin panel, down the drawer.</p> |
| 492 | </div> |
| 493 | |
| 494 | <div class="term" id="term-paperclip"> |
| 495 | <h3 id="s24">paperclip</h3> |
| 496 | <img src="shots/vocab-paperclip.png" alt="A row in the Workspace panel naming a folder, with a link, a paperclip and a closer at its right." loading="lazy"> |
| 497 | <p>Attaches what you are reading to what you are working on. It sits on every row of the Workspace panel and on the head of a document, and it is drawn only while there is something to attach to.</p> |
| 498 | <p class="say">Say: the paperclip on a folder row.</p> |
| 499 | </div> |
| 500 | |
| 501 | </div> |
| 502 | |
| 503 | <p>A few more words the rest of the guide uses, with nothing to photograph: a <strong>panel</strong> is one of the things a region holds, each with a name of its own, from <span class="ui">AI</span> to <span class="ui">Trash</span>; a <strong>crystal</strong> is what a Diamond knows, kept as a document; a <strong>daimon</strong> is the agent that thinks for a Diamond; a <strong>worker</strong> is an agent a daimon sends off to do one job. <a href="chats-and-diamonds.html">Chats & Diamonds</a> explains all four.</p> |
| 504 | |
| 505 | <p>Two more belong to the Social panel, and neither can be photographed either. The <strong id="term-forge">forge</strong> is where the work on Daimond is tracked: a public repository, off this device, that a note you send arrives in as a proposal. Your <strong id="term-voice">voice</strong> is a secret line the forge makes for you, which it looks you up by, held encrypted on this device. <a href="#social-panel">The Social panel</a> below is where both are used, and it is the only place in Daimond either word appears.</p> |
| 506 | </section> |
| 507 | |
| 508 | <section id="two-words"> |
| 509 | <h2 id="s25">Where two words exist</h2> |
| 510 | |
| 511 | <p>A few things in Daimond genuinely answer to more than one name, usually because the app says one and this guide says the other. They are listed here so that nobody wastes a sentence apologising for using the wrong one. Both are understood, and a note that uses either is a good note.</p> |
| 512 | |
| 513 | <ul> |
| 514 | <li>The centre region is <strong>the stage</strong> in this guide and <span class="ui">Beside the chat</span> in the panel gallery.</li> |
| 515 | <li>The panel under the rail's lower divider is <strong>the admin panel</strong> everywhere a reader can see, and its own head reads <span class="ui">Admin</span>.</li> |
| 516 | <li>The <kbd>Ctrl</kbd> <kbd>K</kbd> box calls itself <strong>Go to</strong>, and this guide has also called it the palette. Palette is also the word for the eleven colour schemes, so <strong>Go to box</strong> is the one to prefer.</li> |
| 517 | <li>The button that opens the drawer on a phone says <span class="ui">Menu</span>, and what it opens is the rail.</li> |
| 518 | </ul> |
| 519 | |
| 520 | <p>If you find another, that is worth a note of its own. Two names for one thing is a small fault in the app, not in the person reporting it.</p> |
| 521 | </section> |
| 522 | |
| 523 | <section id="social-panel"> |
| 524 | <h2 id="s26">The Social panel</h2> |
| 525 | |
| 526 | <p>A note is written in the <span class="ui">Social</span> panel, which sits in the dock, beside your work, so that a note about what is on screen can be written without leaving it. Its <strong>head</strong> carries five <strong>chips</strong>, and one is filled while you are looking at it: <span class="ui">Messages</span>, <span class="ui">People</span>, <span class="ui">Share</span>, <span class="ui">Proposals</span> and <span class="ui">Settings</span>. It opens on <span class="ui">Proposals</span>, which is where a note is both written and read back.</p> |
| 527 | |
| 528 | <p>The rest of this section is <span class="ui">Proposals</span>, which is about Daimond itself, and <span class="ui">Settings</span>, which holds your voice. The other three chips are about other people, and each has a section of its own below: <a href="#people">People</a> first, because nothing can be sent to anybody until a code has been exchanged.</p> |
| 529 | |
| 530 | <p>A note you post does not stop at Oxedyne. It goes to the <strong>forge</strong>, the place where the work on Daimond is tracked, and it arrives there as a proposal anyone with that repository can read. The <span class="ui">Proposals</span> chip is that same forge, read back — which is why the box that writes a proposal and the list that shows them are the one view.</p> |
| 531 | |
| 532 | <h3 id="s27">Your voice</h3> |
| 533 | |
| 534 | <p>Anything that leaves this device goes under a <strong>voice</strong>. A voice is a secret line the forge makes for you: it belongs to one person, and the forge looks you up by it. It is the whole of your identity there. No name, no handle and no address travels with what you write, and this browser is never told what your voice is called.</p> |
| 535 | |
| 536 | <p>Your voice lives in the <span class="ui">Settings</span> chip. Getting one is a single tap: when you have no voice, Settings shows <span class="ui">Get my voice</span>. Press it, and Daimond has the forge make your voice for you and holds it here. There is nothing to find, ask for or paste. It is made once, so if you already have one on another device it syncs across rather than being made again — the panel says so, and it will arrive shortly.</p> |
| 537 | |
| 538 | <p>Daimond holds your voice on this device, encrypted under your passphrase, and the gateway it passes through on its way out stores nothing. <span class="ui">Forget it</span> removes the copy on this device. If a voice was made on another device and never reaches this one, <span class="ui">I lost my voice — re-issue</span> makes a fresh one; that replaces the old voice everywhere and cannot be undone, so it asks first. And if the forge has already handed you a voice some other way, <span class="ui">I already have a voice</span> lets you paste it in instead of making a new one.</p> |
| 539 | |
| 540 | <p>Without a voice, the panel does not offer <span class="ui">Post</span>, nor voting, nor a reply: a voice is the one thing nothing leaves this device without.</p> |
| 541 | |
| 542 | <h3 id="s28">Writing one</h3> |
| 543 | |
| 544 | <p>At the top of the <span class="ui">Proposals</span> view is the <strong>note box</strong>. Write the three things from the top of this page into it: where it is, what you expected, what happened instead. <strong>The first line is the title</strong> and the rest is what happened; the sentence beside the buttons says so.</p> |
| 545 | |
| 546 | <p>Below the box is a <strong>row</strong> headed <span class="ui">What goes with it</span>. It holds one line: the build, the language, the size of the window, whether you are on a phone, the palette you are wearing, and which panels are open. That is the fourth piece of advice above, gathered for you rather than asked of you, and it is shown in the exact characters it will travel as. The row has a <strong>closer</strong>, and closing it takes the line off the note as well as off the screen.</p> |
| 547 | |
| 548 | <p>Then two buttons, and the difference between them is whether the model rewrites the note first.</p> |
| 549 | |
| 550 | <ul> |
| 551 | <li><span class="ui">Post</span> sends the note as it is. What leaves is exactly the characters in the box and in that row; nothing is added on the way out, nothing else about you goes with it, and it becomes a proposal at once. It goes under your voice, and it goes somewhere public: anyone who can read the repository can read what you wrote. The sentence beside the button says so, so that you know before you press it and not after.</li> |
| 552 | <li><span class="ui">Polish</span> hands the note to the model first, on your own key. The model rewrites it into a proposal — a clear title and body drawn from your words — and that is what is posted. It is the same one act, one press and one proposal; only the wording is tidied on the way.</li> |
| 553 | </ul> |
| 554 | |
| 555 | <div class="note"> |
| 556 | <strong>A note that cannot go WAITS, and a reconnect sends it.</strong> Posting needs the forge to be reachable; when it is not — you are offline, or the forge refused — the note is not lost. It waits in a small <span class="ui">Waiting to send</span> list under the box, remembering whether you chose to post it as it is or to polish it, and it goes on its own the moment the browser is back online. Nothing is retried behind your back in the meantime, and <span class="ui">Copy</span> is on every waiting note, so you can always carry your own words out by hand. |
| 557 | </div> |
| 558 | |
| 559 | <p>A note leaves this device only by becoming a proposal, and then it is gone from here: the forge holds it now, and there is no second copy and no list of old notes to keep. Until it goes, a waiting note can be sent by hand, copied or deleted — a note is only on this device, so deleting it asks first.</p> |
| 560 | |
| 561 | <h3 id="s29">Reading the proposals, and voting</h3> |
| 562 | |
| 563 | <p>A <strong>proposal</strong> is one change to Daimond, stated so that it can be agreed or disagreed with, and so that it can be finished. Posting a note opens one: its first line becomes the title and the rest becomes the body. That is why the advice at the top of this page says one note, one thing: two faults in one note become one proposal that cannot be finished.</p> |
| 564 | |
| 565 | <p>Under the <span class="ui">Proposals</span> chip each one is a <strong>row</strong> of the same shape as a row in the admin panel: a coloured dot for what state it is in, its title, and, where there are counts, how many have asked for it. Pressing the row opens it, and inside are the proposal in full, who wrote it and when, how many replies it has, the build it was written on, and the mark that closed it if one has.</p> |
| 566 | |
| 567 | <p>Under that is a box to say something back. Write in it and press <span class="ui">Say it</span>, and what is sent is exactly what is in that box, the same promise the note box keeps. What has already been said sits above it.</p> |
| 568 | |
| 569 | <p>Where the forge is keeping counts, two buttons sit with them: <span class="ui">Do this</span> and <span class="ui">Not this</span>. Pressing the one you already chose takes your vote back off.</p> |
| 570 | |
| 571 | <p>There are four states. <span class="ui">Open</span> and <span class="ui">Being done</span> say where it stands, <span class="ui">Done</span> says it is finished, and <span class="ui">Declined</span> says it will not be done. A proposal that simply vanished would teach people not to write notes, so none of them does.</p> |
| 572 | |
| 573 | <p><strong>Nothing tells you when your proposal is answered.</strong> There is no feed, no badge and no message: you find out by opening the panel and reading it. The line above the list says so, so that a silence is never taken for an answer.</p> |
| 574 | |
| 575 | <div class="note"> |
| 576 | <strong>The counts are live, and nothing is held.</strong> Everything under <span class="ui">Proposals</span> is read from the forge while you are looking at it, so a count is what it was at that moment rather than as at a build. There is no queue behind the two buttons either: <strong>a vote pressed while you are offline is not cast</strong>, and nothing casts it for you afterwards. Press it again when you are back. |
| 577 | </div> |
| 578 | </section> |
| 579 | |
| 580 | <section id="people"> |
| 581 | <h2 id="s30">People, and the first exchange</h2> |
| 582 | |
| 583 | <p>Everything else on this page rests on one act: two people coming to hold each other's real keys. Nothing can be sealed to somebody Daimond has no key for, so until a code has been exchanged the <span class="ui">People</span> list says exactly that, and the message box says there is nobody to write to.</p> |
| 584 | |
| 585 | <p>Two buttons sit above the list. <span class="ui">Show my code</span> puts your own <strong>code</strong> on screen: a small signed card carrying your key, the separate key a message to you is sealed with, and whatever name you have given yourself. It is drawn as a symbol for somebody else's camera, and repeated underneath as a line of text beginning <code translate="no">DMND-ID1.</code> for when there is no camera. <span class="ui">Add somebody</span> is the other half of the same act: this device's camera, and a box to paste a code into.</p> |
| 586 | |
| 587 | <h3 id="s31">Read in the room, or read a number aloud</h3> |
| 588 | |
| 589 | <p>Both routes record the code. Only two things can raise a key to <strong>matched</strong>, and which of them is offered depends on how the code arrived rather than on what it says.</p> |
| 590 | |
| 591 | <ul> |
| 592 | <li><strong>This device's camera, in person.</strong> You read it off their screen, so there was no channel for anybody to get between you, and the row offers <span class="ui">Mark matched now</span>.</li> |
| 593 | <li><strong>Anything else</strong> — a paste, a link, a code somebody sent you — stays a new key, and the dialog says so as it arrives. Whatever handed it over could have substituted a key of its own and signed the result perfectly, so a card that checks out proves that the holder of that key composed it and nothing about who the holder is.</li> |
| 594 | </ul> |
| 595 | |
| 596 | <p>The way up from there is <span class="ui">Compare safety numbers</span>: sixty digits in twelve groups of five, the same on both sides, read to each other on a call or in person. <span class="ui">The numbers match</span> records it. <span class="ui">They are different</span> says that somebody is between you and that the key is not to be used. Reading the digits in a message proves nothing, because whatever could swap the keys could swap the message.</p> |
| 597 | |
| 598 | <h3 id="s32">What a row says</h3> |
| 599 | |
| 600 | <p>Each person is a <strong>row</strong>: a name, a line under the name, and a fingerprint. Until the key is matched the name is drawn as the claim it is — <em>calls themselves “Ada”</em> — because a name is a thing its holder typed. Once it is matched, the person on the other end is known and the name may be their name.</p> |
| 601 | |
| 602 | <p>The line under the name is the only place in Daimond a key's standing is drawn, and it is a line rather than a badge so that it cannot be read in one glance with anything else. It says one of five things: that this is a new key you have not matched; that it was matched in person, with the date; that it was matched by safety number, with the date; that it is a <em>different</em> key from the one you matched; or that it is blocked.</p> |
| 603 | |
| 604 | <div class="note"><strong>A key that changes is not a key that carries over.</strong> A card can name the key it replaces, which links the two, and it does not move a match across: the commonest reason a key changes is that the old one leaked, and whoever took the old key can sign that claim too. So the row says the key is different, and messages from it are held until you decide. A name that folds onto a name you have already matched is called out on the row as well — names are not identities, and the key is the thing to check.</div> |
| 605 | |
| 606 | <p><span class="ui">Block</span> on any row stops that key at the relay: nothing more from them is carried, and they are told nothing about it. <span class="ui">Unblock</span> lifts it. Nothing in this list is edited or deleted: every card, every match and every block is appended to a record on this device, and the list is rebuilt from that record, with every signature checked again, each time it is drawn.</p> |
| 607 | </section> |
| 608 | |
| 609 | <section id="messages"> |
| 610 | <h2 id="s33">Private messages</h2> |
| 611 | |
| 612 | <p>A message is sealed on this device to a key the other person holds, and opened on theirs. Nothing in between can read it, and that includes us: the relay carries ciphertext and has no way to do anything else with it. What it does see is what routing needs — which account, when, and how many bytes — and that is worth saying rather than glossing over.</p> |
| 613 | |
| 614 | <p>At the foot of the <span class="ui">Messages</span> view is the box you write in. Above it a picker names who it goes to: the people whose sealing key this device holds, and the groups you have joined. Under the picker one line says who can read what you are about to type, and it changes with the pick, because <span class="ui quoted">Private. Only you and the person you are writing to can read this.</span> would be false over a group of twelve. <span class="ui">Send privately</span> sends it. A body longer than 8,192 characters is refused rather than cut, on the ground that half a message is not a shorter message.</p> |
| 615 | |
| 616 | <h3 id="s34">Arriving</h3> |
| 617 | |
| 618 | <p>While the <span class="ui">Messages</span> view is open, Daimond holds a request open at the relay, so a message that lands is drawn without your pressing anything. With the panel shut, it is found when you next open it — and by the count.</p> |
| 619 | |
| 620 | <p>The <span class="ui">Social</span> chip in the chip row carries a number, and the total across the app goes into the browser tab's title and onto the app's own icon where the platform draws one. It is a tally of what has arrived rather than a memory of what you have looked at, and this build has nothing that marks a message as read, so the number stands.</p> |
| 621 | |
| 622 | <p>A first message from somebody you have not accepted does not go into the list. It waits above it, under <span class="ui">Waiting for your answer</span>, with their fingerprint and what they wrote, and three buttons:</p> |
| 623 | |
| 624 | <ul> |
| 625 | <li><span class="ui">Accept</span> takes it into the list, and their later messages go straight there.</li> |
| 626 | <li><span class="ui">Ignore</span> takes the row away. It writes nothing, and it tells them nothing — that is the whole of it, so that a sender can never tell an ignore from a silence.</li> |
| 627 | <li><span class="ui">Block</span> stops them at the relay, as the <span class="ui">People</span> row does.</li> |
| 628 | </ul> |
| 629 | |
| 630 | <div class="note"><strong>One email a day, at most.</strong> Where your account has an address on it, Daimond may send one email saying something is waiting: no sender, no subject, no count, and not more than one in any twenty-four hours. The switch is in the admin panel under <span class="ui">Email doorbell</span>, and for a beta account it starts on, because with a closed tab and no push it is the only thing anybody hears.</div> |
| 631 | |
| 632 | <h3 id="s35">What is said, and what is not promised</h3> |
| 633 | |
| 634 | <ul> |
| 635 | <li><strong>Sent, never delivered.</strong> The relay answers a blocked delivery exactly as it answers one it took, deliberately, so that Block cannot be told from Ignore. So a group send says how many people it was <em>sent</em> to, and names anybody the relay would not take it for.</li> |
| 636 | <li><strong>A full mailbox is said so.</strong> A box holds five hundred uncollected messages; past that a message does not arrive, and the sender is told that rather than told it went.</li> |
| 637 | <li><strong>Thirty days, then the relay lets go.</strong> A message nobody collects is dropped after thirty days and the sender gets a notice for it, in its own section under the list. A message that expired leaves that notice behind rather than a gap, so a silence is never mistaken for nothing having been sent.</li> |
| 638 | <li><strong>Nothing is queued.</strong> A message that could not be sent has not been sent, and nothing tries again behind your back. The same rule the note box keeps.</li> |
| 639 | <li><strong>Your own devices see them.</strong> Messages, and a copy of what you send, travel with the encrypted parcel <a href="sync.html">sync</a> carries between your devices. On this device they are kept encrypted under your passphrase, so while Daimond is locked the list says so instead of showing an empty one.</li> |
| 640 | </ul> |
| 641 | |
| 642 | <div class="note"><strong>Reporting one message.</strong> Because the operator cannot read a message, the only person who can produce an abusive one is the person it was sent to. <span class="ui">Report</span> on a message shows the exact words that will go, and sends them with the sender's signature and the one key that opens that one envelope. Nothing else goes: not the rest of the exchange, not their other messages, not your other conversations.</div> |
| 643 | </section> |
| 644 | |
| 645 | <section id="groups"> |
| 646 | <h2 id="s36">Groups</h2> |
| 647 | |
| 648 | <p>A group is a group chat, and it sits at the foot of the <span class="ui">Messages</span> view rather than behind a chip of its own. There is no shared key: a message to a group is sealed once for each member, one lock per person inside the one envelope. Three things follow from that, and each is on screen where it matters, before a press rather than after it.</p> |
| 649 | |
| 650 | <ul> |
| 651 | <li><strong>Joining shows nothing earlier.</strong> The messages sent before you joined were never sealed to your key, so no device can open them for you.</li> |
| 652 | <li><strong>Taking somebody out takes nothing back.</strong> They keep every message already sent to them and receive nothing from then on, which is why the control reads <span class="ui">Stop sending to</span> and never <em>remove</em>.</li> |
| 653 | <li><strong>Closing is final, and it destroys nothing.</strong> Everybody keeps every message; nobody can write to it again. Daimond asks once before it happens, and closing has a heading of its own below.</li> |
| 654 | </ul> |
| 655 | |
| 656 | <p>To make one, name it and pick from the people you hold a card for; <span class="ui">Make this group</span> tells them, and says how many were told. Somebody with no card cannot be added, because there would be nothing to seal to them with. A group holds at most 255 people, and one message to a group is a separate delivery for each member, so a large group is slow and fills mailboxes long before that ceiling matters.</p> |
| 657 | |
| 658 | <p>An invitation arrives under <span class="ui">Group invitations</span>, with <span class="ui">Join</span> and <span class="ui">Not now</span>. Messages sent to the group while you have not answered wait with the invitation: joining a group is what accepts the people in it.</p> |
| 659 | |
| 660 | <p>Only the person who made a group can change who is in it or end it, because a group's name for itself is derived from their key and nobody else can write a membership list for it. Everybody else sees the roster with no buttons over it. A member has <span class="ui">Leave this group</span>, which is local, takes nothing away and tells nobody; the person who made the group cannot leave it, since the next list they write would name them again.</p> |
| 661 | |
| 662 | <h3 id="s37">Closing a group</h3> |
| 663 | |
| 664 | <p>Closing is the creator's one act that cannot be undone. The button reads <span class="ui">Close this group</span> — not <em>disband</em>, and not <em>delete</em>, because nothing is destroyed by it.</p> |
| 665 | |
| 666 | <p>A dialog asks once, headed <span class="ui">Close this group for everybody?</span>, and it says: “Closing a group closes it for everybody. Nobody can write to it again, you included; every message already sent stays where it is. It cannot be undone.” Under that it names the group, and the button that does it reads <span class="ui">Close it for everybody</span>. Dismiss the dialog and the group is exactly as it was.</p> |
| 667 | |
| 668 | <p>What the press does is write a membership list naming nobody, and hand it to everybody who was in it. Every reader obeys it, so nothing more can be sent to that group by anybody, the person who closed it included, and no later list can reopen it. Nothing is deleted anywhere: every member keeps every message they already hold.</p> |
| 669 | |
| 670 | <div class="note"><strong>A closed group keeps its place on the list.</strong> It sits with the groups you are in, with its name and its messages and no controls at all, saying that it was closed by the person who made it. That is not tidying left undone: the group's name is drawn over each of its messages out of that one record, so taking the record away would leave the transcript the closing exists to preserve under nothing but eight characters of an id.</div> |
| 671 | |
| 672 | <div class="note"><strong>The relay knows nothing about groups.</strong> There is no group record, no group name and no membership list on any server: the list lives in the clients, and it travels as an ordinary sealed message like any other. What the relay can still see is what routing shows it — one address landing in several mailboxes at one moment — so it can infer that some set of accounts were written to together, and never who they are to each other.</div> |
| 673 | </section> |
| 674 | |
| 675 | <section id="sharing"> |
| 676 | <h2 id="s38">Sharing a Diamond</h2> |
| 677 | |
| 678 | <p>Under the <span class="ui">Share</span> chip are two halves, in the order you meet them: <span class="ui">Open a share</span> at the top, since taking one in needs nothing of you but the file, and <span class="ui">Send a Diamond</span> under it.</p> |
| 679 | |
| 680 | <p><strong>A share is a copy the receiver owns.</strong> It is re-sealed to their key, it lands in their workspace as a Diamond of their own, and they may change it. You never see their changes and they never see yours. It is not a live view of your Diamond: there is nothing to revoke afterwards, and nothing that goes on reading what you keep.</p> |
| 681 | |
| 682 | <p>A share carries the files of one Diamond, so there has to be one open, and the panel names it and says in the same line what it is: <span class="ui quoted">a copy they will own, not a view of yours.</span> Pick who it goes to from the people whose sealing key this device holds, and press <span class="ui">Share</span>. At most sixty-four files and two megabytes of them; over either it is refused rather than trimmed, because a copy missing a file is not a smaller copy. Three things never travel whatever you do: the Diamond's own version history, the agent's log, and a capp's own manifest.</p> |
| 683 | |
| 684 | <h3 id="s39">Two carriers, chosen by measuring</h3> |
| 685 | |
| 686 | <p>The relay carries a sealed envelope of at most 64 KB, so the carrier is decided by size rather than asked of you, and the panel says which happened and how big the share was.</p> |
| 687 | |
| 688 | <p>Over that size Daimond writes the share out as a file with the extension <code translate="no">.dshare</code> — always that extension — names it after the share and its address, and tells you what it was called. Give them that file. A capp page is around 100 KB on its own, so a share carrying a capp always travels this way; so does one going onto a memory stick, or to somebody who has no account here. A <code translate="no">.dshare</code> is not more trusted than a message for having been a file: the bytes are the same sealed envelope, sealed to that one person, and opening it asks the same question.</p> |
| 689 | |
| 690 | <div class="note"><strong>The file is the route that lands.</strong> A share small enough for the relay is sent through it, and the sender is told it went. The receiving side of that route is not finished: there is no control that opens it, and it turns up under their <span class="ui">Messages</span> as a message their device could not read. Until that is done, save the file and hand it over — which is what a share of any size can do.</div> |
| 691 | |
| 692 | <h3 id="s40">A share that carries code</h3> |
| 693 | |
| 694 | <p>Data travels freely; code travels only by consent. A Diamond carrying a capp page carries a program somebody else wrote, and Daimond runs the page when the Diamond holding it is opened — so the question is asked before anything is written, and not when it is opened, which would be too late.</p> |
| 695 | |
| 696 | <p>The dialog is headed <span class="ui">This share contains code</span>. It names the share, says whose key it came from, and lists the files that would be added, because “it contains code somewhere” is not enough to answer. The button that accepts it reads <span class="ui">Accept the page</span>.</p> |
| 697 | |
| 698 | <p>Say no and the rest still lands: the data files are written, and the panel names the pages that were left out, so nothing is missing without being said. Where the whole share was a page, nothing is added at all and the panel says that instead.</p> |
| 699 | |
| 700 | <p>To take one in, <span class="ui">Open a share file…</span> asks for the file, and what arrives is added as a Diamond of your own, with the number of files that landed. The name on it is the sender's and is advisory: two people may pick one name and neither is wrong.</p> |
| 701 | </section> |
| 702 | |
| 703 | <div class="next"> |
| 704 | <a href="machine-operations.html">← Machine Operations</a> |
| 705 | <a href="index.html">Back to Getting started →</a> |
| 706 | </div> |
| 707 | </main> |
| 708 | |
| 709 | <footer class="site-foot"> |
| 710 | <span>Daimond runs in your browser. Nothing here is sent to us.</span> |
| 711 | <nav aria-label="Guide pages"> |
| 712 | <a href="index.html">Getting started</a> |
| 713 | <a href="interface.html">Interface</a> |
| 714 | <a href="models.html">Models</a> |
| 715 | <a href="chats-and-diamonds.html">Chats & Diamonds</a> |
| 716 | <a href="capps.html">Capps</a> |
| 717 | <a href="email-web-files.html">Email, Web & files</a> |
| 718 | <a href="accounts.html">Accounts</a> |
| 719 | <a href="sync.html">Cross-device sync</a> |
| 720 | <a href="spending.html">Spending</a> |
| 721 | <a href="machine-operations.html">Machine Operations</a> |
| 722 | <a href="social.html">Social</a> |
| 723 | </nav> |
| 724 | </footer> |
| 725 | </body> |
| 726 | </html> |