/ index.typ
index.typ
  1  #let phicon(icon) = html.elem("i", attrs: (class: "ph ph-" + icon))
  2  #let paricon(icon) = html.elem("i", attrs: (class: "paricon ph ph-" + icon))
  3  #let headicon(icon) = html.elem("i", attrs: (
  4    class: "paricon ph-bold ph-" + icon,
  5  ))
  6  
  7  #let small = html.elem.with("small")
  8  
  9  #let html-page(title: "", favicon: (:), meta: (:), body) = {
 10    let stylesheets = (
 11      "/assets/css/gutenberg.css",
 12      "/assets/fonts/OpenSansHebrew/OpenSansHebrew.css",
 13      "/assets/css/style.css",
 14      "https://unpkg.com/@phosphor-icons/web@2.1.1/src/regular/style.css",
 15      "https://unpkg.com/@phosphor-icons/web@2.1.1/src/bold/style.css",
 16    )
 17    html.elem(
 18      "html",
 19      attrs: (lang: "he"),
 20      {
 21        html.elem(
 22          "head",
 23          {
 24            html.elem("meta", attrs: (charset: "UTF-8"))
 25            html.elem(
 26              "meta",
 27              attrs: (
 28                name: "viewport",
 29                content: "width=device-width, initial-scale=1",
 30              ),
 31            )
 32            for meta-tag in meta {
 33              html.elem("meta", attrs: meta-tag)
 34            }
 35  
 36            html.elem("title", title)
 37  
 38            html.elem("link", attrs: (
 39              rel: "icon",
 40              href: favicon.filename,
 41              type: favicon.type,
 42            ))
 43  
 44            for stylesheet in stylesheets {
 45              html.elem("link", attrs: (
 46                rel: "stylesheet",
 47                type: "text/css",
 48                href: stylesheet,
 49              ))
 50            }
 51          },
 52        )
 53        html.elem(
 54          "main",
 55          html.elem(
 56            "article",
 57            {
 58              body
 59            },
 60          ),
 61        )
 62      },
 63    )
 64  }
 65  
 66  #show: html-page.with(
 67    title: "🌉 עברי הגשר: מדריך לתקשורת דו־כיוונית בעברית בין ה־Fediverse ו־Bluesky",
 68    favicon: (
 69      type: "image/svg",
 70      filename: "/assets/images/favicon.svg",
 71    ),
 72    meta: (
 73      (
 74        content: "מדריך לתקשורת דו־כיוונית בעברית בין ה־Fediverse ו־Bluesky",
 75        name: "description",
 76      ),
 77      (
 78        content: "הפדיוורס, בלוסקיי, אינטרנט, מדיה חברתית, רשתות חברתיות, גשר, פרוטוקולי תקשורת, אקטיביטיפאב, אטפרוטו, מדריך, fediverse, the fediverse, Bluesky, internet, social media, social networks, bridge, communication protocols, ActivityPub, ATProto, tutorial, user directory",
 79        name: "keywords",
 80      ),
 81      (content: "מאיה אברמסקי־קרוננברג", name: "author"),
 82      (content: "🌉 עברי הגשר", property: "og:title"),
 83      (content: "website", property: "og:type"),
 84      (
 85        content: "https://hebridge.digitalwords.net/assets/images/header.webp",
 86        property: "og:image",
 87      ),
 88      (content: "https://hebridge.digitalwords.net/", property: "og:url"),
 89      (
 90        content: "מדריך לתקשורת דו־כיוונית בעברית בין ה־Fediverse ו־Bluesky",
 91        property: "og:description",
 92      ),
 93      (content: "summary_large_image", name: "twitter:card"),
 94    ),
 95  )
 96  
 97  #html.header(
 98    html.img(
 99      class: "header",
100      src: "assets/images/header.webp",
101    ),
102  )
103  
104  #let button(background-colour, text-colour, target, text) = {
105    html.elem("div", attrs: (style: "text-align: center"), link(target, html.elem(
106      "button",
107      attrs: (
108        style: "background-color: "
109          + background-colour
110          + "; color: "
111          + text-colour
112          + ";",
113      ),
114      text,
115    )))
116  }
117  
118  #let button-palette = (
119    action: (
120      background: "#8fbcbb",
121      foreground: "#000000",
122    ),
123    secondary: (
124      background: "#d8dee9",
125      foreground: "#000000",
126    ),
127  )
128  
129  #button(
130    button-palette.action.background,
131    button-palette.action.foreground,
132    <directory>,
133  )[#phicon("caret-double-down")~הישר אל מדריך החשבונות העבריים~#phicon("caret-double-down")]
134  
135  #button(
136    button-palette.secondary.background,
137    button-palette.secondary.foreground,
138    <info>,
139  )[#phicon("lifebuoy")~מה זה זה? הסברים ומידע נוסף]
140  
141  = #headicon("sneaker-move")אמל״ק זריז <tldr-concise>
142  
143  #paricon("question-mark")את·ה ברשת הפדיוורס (the fediverse) ורוצה *לדבר בעברית* עם א·נשים מבלוסקיי (Bluesky) או להפך?\
144  #paricon("exclamation-mark")יש פתרון טכני פשוט וקל שמאפשר את זה: #link("https://fed.brid.gy/")[*הגשר*]~#phicon("bridge")\
145  #paricon("confetti")מגניב! *איך להצטרף*?
146  #table(
147    columns: 2,
148    phicon("fediverse-logo"),
149    [את·ה בפדיוורס? כל מה שצריך זה לעקוב אחרי #link("https://fed.brid.gy/")[`@bsky.brid.gy@bsky.brid.gy`].],
150  
151    phicon("butterfly"),
152    [את·ה בבלוסקיי? כל מה שצריך זה לעקוב אחרי #link("https://bsky.app/profile/ap.brid.gy")[`@ap.brid.gy`].],
153  )
154  #paricon("address-book")א·נשים מעניינות·ים שכותבות·ים בעברית „בעבר השני” אפשר למצוא ב#link(<directory>, strong[מדריך]).
155  רוצה שעוד א·נשים יצטרפו? שתף·י קישור #link("https://hebridge.digitalwords.net/")[לדף הזה]~#phicon("recycle")\
156  #paricon("info")לא לגמרי ברור לך מה זה הפדיוורס הזה, מה זה הבלוסקיי הזה ובכלל מה כל הסיפור? #link(<info>)[*הסברים כאן*].
157  
158  = #headicon("sneaker")אמל״ק קצת פחות דחוס <tldr-verbose>
159  
160  #paricon("chats")*רקע.*
161  רשת ה#link("https://digitalwords.net/fediverse/intro/")[פדיוורס]~#phicon("fediverse-logo") (the fediverse) ו#link("https://bsky.app/")[בלוסקיי]~#phicon("butterfly") (Bluesky) הן מדיה חברתית: בשניהן אפשר לכתוב~#phicon("pencil"), להגיב~#phicon("arrow-bend-up-left"), לחבב~#phicon("star") (לפברט, לתת לייק), לשתף~#phicon("share") (להדהד), לראות תמונות של חתולים עושים דברים מצחיקים~#phicon("cat"), לריב עם זרות·ים באינטרנט~#phicon("smiley-angry") ולעשות את כל שאר הדברים שעושים במדיה חברתית.
162  
163  #paricon("question-mark")*הבעיה.*
164  למרות הדמיון במה שאפשר לעשות בשני המקרים, הפדיוורס ובלוסקיי משתמשות בתשתית טכנולוגית שונה ולכן אי אפשר לתקשר דו־כיוונית בין השתיים~#phicon("link-break"): בלוסקיי נמצאת בתוך העולם של בלוסקיי (פרוטוקול~ATProto, אם מעניין אותך השם הטכני) והפדיוורס בעולם של הפדיוורס (פרוטוקול~ActivityPub).
165  גם שם וגם שם יש א·נשים מעניינות·ים, וחבל על הנתק~#phicon("mask-sad")
166  
167  #paricon("exclamation-mark")*הפתרון.*
168  אל דאגה~#phicon("mask-happy"), יש מעקף שמאפשר לפתור את הבעיה: #link("https://fed.brid.gy/")[Bridgy Fed]: „הגשר”~#phicon("bridge").
169  זה שירות שמחבר — מגשר — דו־כיוונית בין הפדיוורס ובלוסקיי (וגם #link("https://indieweb.org/")[אתרים ב־IndieWeb], אבל זה כבר סיפור אחר).
170  הוא פועל על ידי יצירה של חשבון מראה ברשת השניה, שמייצג אותך שם~#phicon("users"): מה שאת·ה עושה משתקף אוטומטית שם, ואינטראקציה של א·נשים אחרות·ים איתך משתקפת חזרה.
171  מנסיון אני יכולה להגיד שזה עובד מעולה~#phicon("thumbs-up")
172  
173  #paricon("confetti")*נשמע מעולה, איך להצטרף?*
174  כדי לשמור על הזכויות שלנו השירות הזה הוא opt-in~‏#phicon("handshake"): כלומר, בשביל להשתמש בו צריך לבחור אקטיבית להצטרף אליו, וזה לא שאנחנו מצורפות·ים אוטומטית בלי לשאול אותנו.
175  איך לעשות את זה? הכי פשוט בעולם!
176  #table(
177    columns: 2,
178    phicon("fediverse-logo"),
179    [אם את·ה בפדיוורס ורוצה לתקשר עם א·נשים מבלוסקיי~#phicon("butterfly"), כל מה שצריך לעשות הוא לעקוב אחרי החשבון #link("https://fed.brid.gy/")[`@bsky.brid.gy@bsky.brid.gy`] ואת·ה בפנים.
180      כדי לעשות את זה צריך לחפש `@bsky.brid.gy@bsky.brid.gy` בשורת החיפוש~#phicon("magnifying-glass") וללחוץ על כפתור המעקב עבור החשבון שנמצא.],
181  
182    phicon("butterfly"),
183    [אם את·ה בבלוסקיי ורוצה לתקשר עם א·נשים מהפדיוורס~#phicon("fediverse-logo"), כל מה שצריך לעשות הוא לעקוב אחרי החשבון #link("https://bsky.app/profile/ap.brid.gy")[`@ap.brid.gy`] ואת·ה בפנים.],
184  )
185  
186  #paricon("address-book")*הצטרפתי, עכשיו אחרי מי לעקוב?*
187  הופה! בדיוק בשביל זה יצרתי את האתר הזה, כדי לחבר את… שני עברי הגשר של דוברות·י העברית~#phicon("caret-double-down")
188  
189  = #headicon("address-book")מדריך החשבונות העבריים <directory>
190  
191  #button(
192    button-palette.action.background,
193    button-palette.action.foreground,
194    <directory-edit>,
195  )[#phicon("plus-minus")~רוצה להוסיף/להסיר את עצמך?]
196  
197  #paricon("list-bullets")הרשומות ממוינות לפי סדר הוספת החשבונות למדריך: חשבונות חדשים יותר יופיעו למעלה כדי לחסוך זמן בביקורים חוזרים.
198  החשבונות מהסבב הראשוני של ההוספה, לפני הפרסום של האתר, מעורבבים אקראית.
199  
200  #paricon("at")לחיצה על handle מעתיקה אותו ללוח: השורה עם הלוגו (#phicon("fediverse-logo") או #phicon("butterfly")) מייצגת את החשבון ברשת המקורית, בעוד שזו עם האייקון של הגשר (#phicon("bridge")) מייצגת את חשבון המראה המגושר ברשת השניה.
201  לחיצה על תמונת הפרופיל, השם או הלוגו של הרשת מובילה לעמוד המקורי של החשבון; לחיצה על האייקון של גשר מובילה לעמוד של חשבון המראה.
202  
203  #html.elem(
204    "div",
205    attrs: (
206      style: "
207        display: grid;
208        grid-template-columns: auto auto;
209        padding: 10px;",
210    ),
211    {
212      html.elem("div", button(
213        button-palette.secondary.background,
214        button-palette.secondary.foreground,
215        <directory-fediverse>,
216      )[#phicon("fediverse-logo")~לפדיוורס])
217      html.elem("div", button(
218        button-palette.secondary.background,
219        button-palette.secondary.foreground,
220        <directory-bluesky>,
221      )[#phicon("butterfly")~לבלוסקיי])
222    },
223  )
224  
225  #let user-table(platform, data) = {
226    html.table(
227      class: "directory_table",
228      for user in data {
229        let handle = if platform == "fediverse" {
230          "@" + user.at(0)
231        } else {
232          user.at(0)
233        }
234        let bridgy-mirror = if platform == "fediverse" {
235          (
236            handle: "@" + user.at(0).replace("@", ".") + ".ap.brid.gy",
237            link: "https://bsky.app/profile/"
238              + user.at(0).replace("@", ".")
239              + ".ap.brid.gy",
240          )
241        } else {
242          (
243            handle: "@" + user.at(0) + "@bsky.brid.gy",
244            link: "https://bsky.brid.gy/r/https://bsky.app/profile/" + user.at(0),
245          )
246        }
247        html.tr({
248          html.td(
249            if "avatar" in user.at(1) {
250              link(user.at(1).at("url"), html.img(
251                class: "avatar",
252                src: user.at(1).at("avatar"),
253              ))
254            },
255          )
256          html.td(
257            style: "width: 100%",
258            {
259              if "display_name" in user.at(1) {
260                strong(link(
261                  user.at(1).at("url"),
262                  user.at(1).at("display_name"),
263                ))
264              }
265              html.table(
266                class: "handle_table",
267                {
268                  html.tr({
269                    html.td(class: "icon_column", {
270                      link(user.at(1).at("url"), {
271                        if platform == "fediverse" {
272                          phicon("fediverse-logo")
273                        } else {
274                          phicon("butterfly")
275                        }
276                      })
277                    })
278                    html.td(class: "handle_column", {
279                      html.elem(
280                        "a",
281                        attrs: (
282                          onclick: "navigator.clipboard.writeText('"
283                            + handle
284                            + "')",
285                        ),
286                        {
287                          raw(handle)
288                        },
289                      )
290                    })
291                  })
292                  html.tr({
293                    html.td(class: "icon_column", {
294                      link(bridgy-mirror.at("link"), phicon("bridge"))
295                    })
296                    html.td(class: "handle_column", {
297                      html.elem(
298                        "a",
299                        attrs: (
300                          onclick: "navigator.clipboard.writeText('"
301                            + bridgy-mirror.at("handle")
302                            + "')",
303                        ),
304                        raw(bridgy-mirror.at("handle")),
305                      )
306                    })
307                  })
308                },
309              )
310            },
311          )
312        })
313      },
314    )
315  }
316  
317  == #headicon("fediverse-logo")חשבונות מהפדיוורס שמחוברים לגשר <directory-fediverse>
318  
319  #user-table("fediverse", yaml("data/users-ap.yaml"))
320  
321  == #headicon("butterfly")חשבונות מבלוסקיי שמחוברים לגשר <directory-bluesky>
322  
323  #user-table("bluesky", yaml("data/users-bsky.yaml"))
324  
325  == #headicon("plus-minus")בקשת שינויים במדריך <directory-edit>
326  
327  #paricon("plus-circle")את·ה לא במדריך ורוצה *להתווסף*?\
328  #paricon("minus-circle")את·ה כן במדריך אבל רוצה להיות *מוסר·ת* ממנו?
329  
330  #paricon("hand-peace")יש *שתי דרכים* לעשות את זה:
331  
332  #paricon("chats-circle")אפשר *ליצור איתי קשר* #link("https://me.digitalwords.net/")[באחת ממגוון דרכים] ולבקש שאוסיף.
333  בפדיוורס אני #link("https://hed.im/@ruxotves/")[`@ruxotves@hed.im`] והחשבון המשוקף בבלוסקיי הוא #link("https://bsky.app/profile/ruxotves.hed.im.ap.brid.gy")[`@ruxotves.hed.im.ap.brid.gy`] (שים·י לב שרק הודעות פומביות עוברות בגשר).
334  הכי נוח לכתוב תגובה ל#link("https://hed.im/@ruxotves/115644324481210379")[הודעה הזאת] בפדיוורס או ל#link("https://bsky.app/profile/ruxotves.hed.im.ap.brid.gy/post/3m6wgtfqu2is2")[שיקוף שלה] בבלוסקיי, כך שהכל יהיה מרוכז במקום אחד (ועל הדרך מוזמן·ת לשתף…~#phicon("recycle")).
335  
336  #paricon("git-merge")לחלופין, אם יש לך את הידע הטכני לעשות את זה, אפשר גם *לשלוח פאץ׳* (pull request) עם השינויים המתאימים במסד הנתונים.
337  הקבצים הרלוונטיים הם `data/users-ap.yaml` עבור הפדיוורס ו־`data/users-bsky.yaml` עבור בלוסקיי; מספיק להוסיף את ה־handle והשדה `added`, אבל אם תרצו אפשר גם לאכלס את שאר השדות בעזרת הסקריפט שבתת־הספריה `scripts/`.
338  #link("https://app.radicle.xyz/nodes/seed.radicle.garden/rad:zUtk5TbesTn4twej4G3KdirFD6UG")[הריפוזיטורי הראשי] הוא ב־Git forge המבוזר #link("https://radicle.xyz/")[Radicle], אבל כדי להנגיש יש גם #link("https://codeberg.org/afiaith/hebridge")[מראה בקודברג] שאפשר לשלוח אליה פאצ׳ים.
339  
340  
341  #paricon("pencil")אפשר גם להציע *שינויים נוספים*, לדוגמה:
342  
343  #paricon("plus-circle")*הוספה* של חשבונות עבריים אחרים שעדיין לא במדריך.
344  נראה לי עדיף להציע לא·נשים להוסיף את עצמן·ם: שתפו, בתפוצה רחבה או בהודעה אישית, את #link("https://hebridge.digitalwords.net/")[הכתובת של הדף הזה] כדי שיוכלו להוסיף את עצמן·ם~#phicon("recycle")
345  
346  #paricon("minus-circle")*הסרה* של חשבונות שכן קיימים בו.
347  מתי? לדוגמה, באחד המצבים הבאים:
348  #table(
349    columns: 2,
350    phicon("x"),
351    [
352      החשבון נסגר.
353      גם חשבונות שלא נכתב בהם כלום זמן רב נשארים במדריך; נסיון העבר מלמד שלפעמים גם אחרי שנים א·נשים מחיות·ים חשבונות ישנים, ואין שום צד שלילי לעקיבה אחרי חשבונות לא פעילים.
354    ],
355  
356    phicon("translate"),
357    [
358      הכותב·ת עבר·ה לכתוב בשפה שאינה עברית.
359    ],
360  
361    phicon("smiley-angry"),
362    [
363      הכותב·ת עבר·ה את גבול השיח הסביר (בפדיוורס בדרך כלל מסולקים על דבר כזה; בבלוסקיי, ובכן, #link("https://duckduckgo.com/?q=Bluesky+Jesse+Singal")[זה מעט אחרת]…).
364      הבהרה: אני לא עוקבת אחרי כל מה שכל מי שמדריך כותב·ת, ואין לראות במדריך המלצת עקיבה ו/או תמיכה בתוכן שמעלות מי שכלולות·ים בו. טל״ח.
365    ],
366  )
367  
368  #paricon("cursor-text")
369  כל *שינוי אחר* באתר: בטקסט, בעיצוב, במבנה וכד׳.
370  
371  = #headicon("info")הסברים ומידע נוסף <info>
372  
373  #paricon("cursor-click")כדי לקרוא את התשובות, לחצו על השאלות.
374  
375  #let question(icon: "", question: [], answer: [], id: none) = {
376    let attributes = if id != none { (id: id) } else { (:) }
377    html.elem(
378      "details",
379      attrs: attributes,
380      {
381        html.elem(
382          "summary",
383          heading(
384            level: 2,
385            {
386              headicon(icon)
387              question
388            },
389          ),
390        )
391        answer
392      },
393    )
394  }
395  
396  #let questions = (
397    (
398      icon: "question",
399      question: [מה הפדיוורס הזה לכן·ם? מה הבלוסקיי הזה לכן·ם?],
400      answer: [
401        #paricon("cat")כמו שכתוב ב#link(<tldr-verbose>)[אמל״ק למעלה] גם הפדיוורס (Fediverse) וגם בלוסקיי (Bluesky) הם *מדיה חברתית* שמאפשרת לתקשר עם א·נשים בעזרת מחשבים.
402  
403        === #headicon("fediverse-logo")הפדיוורס
404  
405        #paricon("handshake")*הפדיוורס* הוא רשת של רשתות חברתיות ברוח של שיתוף פעולה, פתיחוּת, עצמאות וביזור.
406        בזכות התכונות האלה הפדיוורס לא נתון ולא יכול להיות נתון באופן ריכוזי בידי איזה תאגיד קפיטליסטי תאב־ממון, אלא בידי א·נשים כמוני וכמוך, שמפתחות·ים ומתחזקות·ים ובונות·ים אותו ביחד.
407        תת־הרשתות מחוברות כפדרציה של קהילות עצמאיות (לכן השם: Fediverse~= federated~+ universe), כך שכל החשבונות בכל תת־הרשתות יכולים בקלות לתקשר אחד עם השני, תודות לתשתית פתוחה משותפת: פרוטוקול מחשבים בשם #link("https://activitypub.rocks/")[ActivityPub] שפורסם והומלץ על ידי ה־#link("https://he.wikipedia.org/wiki/World_Wide_Web_Consortium")[W3C] כתקן משותף לרשתות חברתיות מבוזרות. #small[(למי שלא מכירות·ים: ה־W3C הוא גוף תקינה בינלאומי של ה־#link("https://he.wikipedia.org/wiki/World_Wide_Web")[WWW], שאחראי לתקינה של #link("https://he.wikipedia.org/wiki/HTML")[HTML]‏, #link("https://he.wikipedia.org/wiki/%D7%92%D7%99%D7%9C%D7%99%D7%95%D7%A0%D7%95%D7%AA_%D7%A1%D7%92%D7%A0%D7%95%D7%9F_%D7%9E%D7%93%D7%95%D7%A8%D7%92%D7%99%D7%9D")[CSS]‏, #link("https://he.wikipedia.org/wiki/WebAssembly")[WebAssembly] ו#link("https://en.wikipedia.org/wiki/World_Wide_Web_Consortium#Standards")[תקנים נוספים] שעומדים בבסיס התשתית שעליה בנוי האינטרנט).]
408  
409        #paricon("share-network")בזכות האופי הפתוח וההתבססות על תקן כללי יש *פלטפורמות עצמאיות* רבות שמחוברות לפדיוורס, כולל כאלה כאלה שמתמקדות בסוג מסויים של תוכן: תחשבו אם „יוטיוב” (#link("https://joinpeertube.org/")[PeerTube]) ו„אינסטגרם” (#link("https://pixelfed.org/")[Pixelfed]) ו„פייסבוק” (#link("https://friendi.ca/")[Friendica]) ו„גודריגז” (#link("https://joinbookwyrm.com/")[BookWyrm]) ואתרים רבים נוספים היו כולם חלק מרשת אחת גדולה ומבוזרת והיה אפשר לקיים אינטראקציה בין כל החשבונות; לדוגמה, כדי לכתוב תגובה לווידאו לא היה צריך לפתוח חשבון מיוחד באותו האתר, אלא היה אפשר להשתמש בחשבון הקיים שלך.
410        הפלטפורמה הנפוצה ביותר בפדיוורס היא #link("https://he.wikipedia.org/wiki/%D7%9E%D7%A1%D7%98%D7%95%D7%93%D7%95%D7%9F_(%D7%A8%D7%A9%D7%AA_%D7%97%D7%91%D7%A8%D7%AA%D7%99%D7%AA)")[מסטודון] (Mastodon), והיא בנויה באופן שמזכיר את טוויטר (לא מבחינת הרעל חו״ח, אלא מבחינת ההודעות הקצרות: ברירת המחדל היא הגבלה של 500 תווים להודעה).
411  
412        #paricon("heart")בכל שכבה אפשר לראות שהושקעה *מחשבה עמוקה* כדי ליצור אקוסיסטמה למען א·נשים והקשרים החברתיים ביניהן·ם ולא למען רווח:
413        - ברמת *תכנון פרוטוקול ActivityPub*: הוא מבוזר להלכה ולמעשה, הוא ניתן למימוש בקלות גם על ידי צוות מתכנתות·ים קטן, והוא מתוכנן כך שכדי להקים בו שרת עצמאי נדרשת השקעה כספית קטנה מאוד (רק מחשב פשוט וחיבור קבוע לאינטרנט)
414        - ברמת *הפלטפורמות השונות*: כמעט כולן בקוד פתוח ומפותחות בשיתוף פעולה וולונטרי, ובנויות באופן שמכבד את המשתמשות·ים.
415          דוגמה מובהקת לזה היא הפיצ׳ר של #link("https://blog.joinmastodon.org/2025/11/mastodon-4.5/")[הודעות ציטוט במסטודון], שאופן המימוש שלהן מושתת על הסכמה מדעת. במקרה הזה לקחו פיצ׳ר עם היסטוריה בעייתית מבחינה חברתית ברשתות אחרות (המון רעל בטוויטר ובפייסבוק) ובנו אותו מחדש באופן מיטיב.
416          אם כבר דיברנו על מסטודון, הגורם הכי גדול ומבוסס בפדיוורס: הפלטפורמה הזאת מפותחת על ידי מלכ״ר עצמאי ש#link("https://arstechnica.com/tech-policy/2022/12/twitter-rival-mastodon-rejects-funding-to-preserve-nonprofit-status/")[סירב לקבל מימון מקרנות הון סיכון] כדי לשמור על העצמאות לרווחת הכלל.
417        - ברמת *הנורמות החברתיות והמודרציה* המצב טוב אלפי מונים מזה שברשתות המסחריות.
418          יש לזה גם היבטים „רכים” לגמרי אבל זה מתאפשר גם בזכות היבטים „קשים” טכניים: היכולת הטכנית של חברות·ים בשרת מסויים לעזוב אותו אם דרך הארץ בו לא טובה בעיניהן ולהגר לשרת אחר נותנת מהצד האחד של המטבע למשתמשות·ים חופש רב, עצמאות, וסוכנות (אגנטיות) ומצדו השני מטילה אחריותיות (accountability) על מי שמתחזקות את השרת (אם לא ינהגו כשורה, המשתמשות·ים יוכלו להגר ממנו בקלות).
419  
420        #paricon("article")אם מעניין אותך *לקרוא עוד*, כתבתי שני דפים על הפדיוורס: #link("https://digitalwords.net/fediverse/intro/")[אחד מבואי], שנותן רקע ומפנה למקורות נוספים, ו#link("https://digitalwords.net/fediverse/komencantoj/")[אחד פרקטי], שמהווה מדריך לצעדים ראשונים.
421  
422        === #headicon("butterfly")בלוסקיי
423  
424        #paricon("smiley")לפני שאכתוב על בלוסקיי חשוב שנעשה את ה#strong[הבחנה] בין תשתית טכנית לא·נשים שמשתמשות·ים בטכנולוגיה המסוימת הזאת.
425        יש לי המון ביקורת על חברת בלוסקיי, על המהלכים המפוקפקים שלה ועל מה שאני רואה כמצג שווא לא הגון (בלשון המעטה).
426        האתר הזה נועד לעזור לקרב בין הקהילה העברית בפדיוורס וזו שבבלוסקיי; הביקורת היא לא על הא·נשים שמשתמשות·ים באתר.
427  
428        #paricon("wallet")עכשיו, כשזה מאחורינו, מה זה *בלוסקיי*?
429        בלוסקיי הוא שירות מדיה חברתית ששייך לחברה המסחרית פרטית למטרות רווח (מסוג „#link("https://en.wikipedia.org/wiki/Benefit_corporation")[benefit corporation]”) בשם Bluesky Social.
430        הגוף המוביל במימון החברה ב#link("https://en.wikipedia.org/wiki/Series_A_round")[סבב א׳] ב#link("https://he.wikipedia.org/wiki/%D7%A7%D7%A8%D7%9F_%D7%94%D7%95%D7%9F_%D7%A1%D7%99%D7%9B%D7%95%D7%9F")[הון סיכון] הוא #link("https://bsky.social/about/blog/10-24-2024-series-a")[Blockchain Capital] (כזכור, משקיעות·י הון סיכון מצפות·ים לראות את הכסף שלהן·ם בחזרה עם גידול משמעותי; זאת לא תרומה מטוב לבן·ם).
431        מי שהקים את החברה הוא ג׳ק דורסי, שיש לו היסטוריה בעייתית מבחינת ההתנהלות שלו ביחס לגורמים ברחבי המנעד הימני בפוליטיקה האמריקאית עוד מהזמן שעבד בטוויטר (משאירה לכן·ם לחפש בעצמכן ולנבור במחילת הארנב; לא מאוד מומלץ…).
432        בנוסף, צוות המודרציה הריכוזי של השירות לא שקוף בהרכב, במבנה ובדרכי העבודה; בפרט, הבחירה לתת במה ל#link("https://duckduckgo.com/?q=Bluesky+Jesse+Singal")[ג׳סי סינגל] להמשיך להיות שם טרנספוב מעידה על שיקול דעת לקוי במקרה הטוב (אני לא בקיאה בפרטים ולא יכולה לשפוט עד כמה זה מבוסס, אבל לפי #link("https://mastodon.social/@gwynnion/113624064431226450")[זה] מלבד הסובלנות לטרנספוביה יש גם אלמנט של השפעה של קשרים אישיים).
433  
434        #paricon("arrows-in-line-horizontal")עד כאן זה נשמע כמו „𝕏 רק פחות נאצי” (ואחרי הכל, זה לא קשה).
435        מעבר להיבטים הבעייתיים האלה בהתנהלות של חברת Bluesky Social ובמוצר שלה, יש אחד נוסף שרלוונטי במיוחד בהשוואה מול הפדיוורס: *הפרוטוקול* של בלוסקיי, שנקרא ATProto מוגדר על ידי החברה כ„מבוזר” (decentralised), אבל בפועל הוא מתוכנן באופן כזה ששם מקלות בגלגלים של כל נסיון ליצור ביזור פרקטי, ואכן הזמן עובר והפרוטוקול כבר לא חדש־דנדש ועדיין כל הכח מרוכז אצל גורם מסחרי יחיד.
436        ההתהדרות בנוצות ביזור לא להן·ם תוך כדי שימוש ב„ביזור” כבאזוורד חסר משמעות במקרה הטוב וניצול ציני של חוסר הבנה של הציבור הכללי כדי לשחוק את המשמעות של המילה בהקשר הזה במקרה הפחות טוב — בשני המקרים למען המטרה העילאית של יצירת רווח כספי — היא לעניות דעתי מעשה מנוול.
437        היתה לבלוסקיי האפשרות לבחור ב־ActivityPub — פרוטוקול מבוזר קיים שפועל כבר שנים רבות והוכיח את עצמו, ושמהווה תקן מומלץ של ה־W3C — אבל החברה בחרה בפרוטוקול משלה שנשאר בפועל אצלה באופן ריכוזי.
438        למיטיבות·י לכת אני ממליצה לקרוא את ה#link("https://dustycloud.org/blog/how-decentralized-is-bluesky/")[הניתוח המעמיק הזה] ואת #link("https://dustycloud.org/blog/re-re-bluesky-decentralization/")[המשכו] מאת #link("https://dustycloud.org/")[כריסטין למר־וובר], אחת היוצרות של ActivityPub, ולהסתכל על #link("https://tante.cc/2025/01/13/but-does-it-free-our-feeds/")[הנסיון הזה] ליצור נקודת ביזור _יחידה_ נוספת של ATProto על בלוסקיי — העלות המשוערת שם היא במיליוני דולרים נכון לינואר 2025 (מאז נוספו עוד המון משתמשות·ים לבלוסקיי והעלות ודאי הכפילה את עצמה כמה פעמים), בעוד שהקמה של שרת מבוזר עצמאי לגמרי של ActivityPub #link("https://www.mako.co.il/news-digital/2022_q4/Article-fc281a27714c481026.htm")[עולה גרושים].
439  
440        #paricon("thumbs-down")המסקנה המתבקשת מכל ההתנהלות הזאת היא #link("https://pluralistic.net/2024/11/02/ulysses-pact/")[*אנשיטיפיקציה* של בלוסקיי] (enshittification, החראה), שאנחנו רואות כבר היום ובאופן ודאי אם לא יהיה שינוי שורשי רק תחריף.
441  
442        #paricon("chats-circle")כל זה נשמע אולי עניין טכני להתקטנן עליו, אבל יש לו *השלכות חברתיות* עמוקות ומרחיקות לכת: כל כך הרבה מהתקשורת היום בין א·נשים נעשית בתיווך מחשבים, וחשוב שהתקשורת הזאת תהיה בידיים של כולנו באופן פתוח ומבוזר וחופשי ולא כבולה ונתונה לגחמות של חברות מסחריות.
443  
444        #paricon("dots-three-outline-vertical")לא הספיק לך?
445        *רוצה עוד?*
446        הנה כמה הודעות ודיונים מהפדיוורס:
447        #let urls = (
448          "https://tooot.im/@aRubes/113416100449259900",
449          "https://hayu.sh/objects/75e782f8-359a-46bd-bf94-18a826c5ddd1",
450          "https://hed.im/@ruxotves/115015098566709895",
451          "https://hed.im/@ruxotves/113936211708760728",
452          "https://hed.im/@ruxotves/113820578459819283",
453          "https://hed.im/@ruxotves/113871662519870355",
454        )
455        #(
456          urls.enumerate(start: 1).map(it => link(it.at(1), numbering("א׳", it.at(0))))
457        ).join(", ").
458      ],
459    ),
460    (
461      icon: "bridge",
462      question: [ומה זה הגשר? מה המטרה של „עברי הגשר”?],
463      answer: [
464        #paricon("network")*הגשר* (#link("https://fed.brid.gy/")[Bridgy Fed]) הוא שירות שמחבר — מגשר — דו־כיוונית בין הפדיוורס ובלוסקיי (וגם #link("https://indieweb.org/")[אתרים ב־IndieWeb], אבל זה כבר סיפור אחר).
465        הוא פועל על ידי יצירה של חשבון מראה ברשת השניה, שמייצג אותך שם: מה שאת·ה עושה משתקף אוטומטית שם, ואינטראקציה של א·נשים אחרות·ים איתך משתקפת חזרה.
466  
467        #paricon("handshake")המטרה של המדריך הזה, „*עברי הגשר*” היא לחבר בין הקהילה העברית של הפדיוורס וזו של בלוסקיי, בשתי דרכים:
468  
469        #paricon("book-open-text")האחת היא לתת מידע נגיש על הרשתות, הגשר ואופן ההצטרפות אליו.
470  
471        #paricon("user-list")השניה היא לרכז רשימה של חשבונות בעברית, הן מהפדיוורס והן מבלוסקיי, שמחוברים לגשר, כך שיהיה אפשר למצוא בקלות א·נשים לעקוב אחריהן·ם.
472      ],
473    ),
474    (
475      icon: "sparkle",
476      question: [האם הגשר מושלם ואפשר לנוח על זרי הדפנה?],
477      answer: [
478        #paricon("x-circle")*לא*.
479        מדובר במקרה מובהק של #link("https://he.wikipedia.org/wiki/%D7%A0%D7%A7%D7%95%D7%93%D7%AA_%D7%9B%D7%A9%D7%9C_%D7%91%D7%95%D7%93%D7%93%D7%AA")[נקודת כשל בודדת] (#link("https://en.wikipedia.org/wiki/Single_point_of_failure")[SPOF]). כמה תסריטים שבהם הקשר ינותק או לכל הפחות ישובש:
480  
481        #paricon("cloud-warning")אם *השרתים* של הגשר יפלו או יקרסו תחת העומס (בתחילת הדרך, לדוגמה, היו כמה שעות של הפרש עד שאינטראקציות גושרו; כיום זה כמעט מיידי).\
482        #paricon("money-wavy")אם #link("https://snarfed.org/software")[*ריאן ברט*], שמפתח את הגשר ומתחזק אותו, יתפלף או יקבל הצעת קניה שאי אפשר לסרב לה.\
483        #paricon("butterfly")אם *חברת Bluesky Social* תגיע למסקנה שהגשר לא בא לה בטוב ותחליט לחסום או לצמצם אותו.
484        עם הפדיוורס אין בעיה כזאת כי מדובר ברשת מבוזרת לחלוטין, הן להלכה והן למעשה, כך שאין שום גורם יחיד ששולט על הרשת; אם הצוות שמתחזק את השרת שלך יחליט שהגשר לא בא לו בטוב אפשר לנסות לדבר איתו או במקרה שזה לא יצליח לעבור לשרת אחר.
485      ],
486    ),
487    (
488      icon: "check",
489      question: [האם הגשר הוא פתרון טוב מספיק כרגע כדי לדבר עם א·נשים?],
490      answer: [#paricon("check-circle")*כן* (אחרת לא הייתי טורחת לכתוב את כל זה), אבל לטווח הארוך צריך למצוא פתרונות ברי־קיימא.],
491    ),
492    (
493      icon: "checks",
494      question: [נו, אז איזה פתרונות ברי־קיימא לדוגמה?],
495      answer: [
496        יש *שתי רמות* של בעיה, עם שתי רמות של פתרונות:
497  
498        #paricon("bridge")*הבעיה בגשר* היא שהוא ריכוזי בפועל: הכל נעשה דרך #link("https://brid.gy/")[Bridgy].
499        פתרון לבעיה הזאת יכול להיות אולי מערכת מבוזרת של גשרים, אבל אז נכנסת בעיה של כפילות של כפילים; כלומר, נניח שאנחנו בפדיוורס והגשר יצר לנו חשבון מראה בבלוסקיי.
500        שירות גשר נוסף יצור אחד נוסף ומכאן הדרך קצרה לבלגאן שלם.
501  
502        #paricon("butterfly")אבל *הבעיה העמוקה יותר* היא שבכלל צריך גשר.
503        בלוסקיי בחרו לשחק את המשחק המבוזר רק בכאילו, ובאופן לא לעבוד בשיתוף פעולה אלא להיות גורם ריכוזי.
504        נזכור שמגוון הפלטפורמות שמשתמשות ב־ActivityPub, על פני שרתים מבוזרים רבים, לא צריכות בכלל גישור ביניהן: זאת הרי כל הפואנטה של פרוטוקול מבוזר משותף.
505        הפתרון הוא שבלוסקיי יאמצו את התקן הכללי ויצטרפו למגרש המשחקים המבוזר על־אמת: באופן היברידי שמשבל את שני הפרוטוקולים או בהחלפה של ATProto ב־ActivityPub.
506        למרבה הצער אני לא רואה את זה קורה.
507        הבחירה ב־ATProto היא לא מקרית („זאת לא טעות, זאת מדיניות”), ומעבר להתנהלות שלא כולאת את המשתמשות·ים בשירות הולכת נגד ההגיון הקפיטליסטי ונגד מה שהמשקיעות·ים מצפות·ים לו (רווח, והרבה~#phicon("coins")).
508  
509        #paricon("golf")אז אם פתרון אחד הוא בעייתי והשני כנראה לא יקרה, *מה צופן העתיד?*
510        אני לא נביאה ולא בת נביא·ה (למרות שהשם של אמא שלי דבורה ושל אבא שלי ישעיהו), אבל לדעתי התשובה היא המשך המצב הקיים, עם התקדמות בשלבי ה#link("https://he.wikipedia.org/wiki/%D7%A9%D7%99%D7%98%D7%99%D7%A4%D7%99%D7%A7%D7%A6%D7%99%D7%94")[החראה] (#link("https://craphound.com/category/enshittification/")[enshittification]) עד שהפלטפורמה הזאת תלך בדרך כל הארץ.
511        פסימי מצדי?
512        אישית לא כל כך, כי אין לי רגשות חיוביים מיוחדים לבלוסקיי ואני לא שם מעבר לחשבון המראה שלי, ומה שחשוב לי זה הא·נשים והשיחות איתן·ם.
513        ריאליסטי מצדי?
514        כן, צר לי אם זה מבאס אותך לקרוא.
515        רוצה להתעודד?
516        #link(
517          "https://spritely.institute/",
518        )[העתיד נראה לי הרבה יותר מגניב]~#phicon("subway")
519  
520        #paricon("fediverse-logo")*אז מה אפשר לעשות?*
521        להצטרף לפדיוורס, לגשר את החשבון לבלוסקיי בינתיים ולקוות שכמה שיותר א·נשים יעברו לרשת הפתוחה לפני הקריסה של בלוסקיי.
522        #small[אם יורשה לי בנימה אישית: אחרי מפח הנפש של העזיבה של פייסבוק ואז של טוויטר החלטתי לעולם לא להשתקע עוד בפלטפורמה ריכוזית־מסחרית־סגורה.]
523      ],
524    ),
525    (
526      icon: "user-list",
527      question: [איפה אפשר למצוא עוד חשבונות בעברית, גם כאלה שלא מחוברים לגשר?],
528      answer: [
529        #paricon("fediverse-logo")הודעות פומביות ראשיות ממבחר שרתים מבוזרים דוברי עברית ב#strong[פדיוורס] ניתן למצוא באתר #link("https://heb.hed.im/")[פדעברי] ש#link("https://github.com/EyalRo/HebrewPub")[כתב] #link("https://isdino.com/")[דינו].
530        מעבר לזה, הנחיות לגבי מציאה של חשבונות נוספים, ובפרט דוברי עברית, נמצאות #link("https://digitalwords.net/fediverse/komencantoj/#sekvatoj")[בסעיף הרלוונטי במדריך שכתבתי].
531        מעבר לזה₂, אני עוקבת אחרי לא מעט חשבונות בעברית כך שאת·ה מוזמן·ת לאמץ מתוך #link("https://hed.im/@ruxotves/following")[רשימת הנעקבות·ים שלי] #html.elem("small")[(שים·י רק לב שאני לא מסננת חשבונות לא פעילים; למה? כי זה לא מכביד עלי או על הרשת, ואני מרוויחה מזה לא לפספס הודעות חדשות מחשבונות שחזרו לחיים, מה שקרה לא פעם ולא פעמיים, כולל אחרי שנים)].
532  
533        #paricon("butterfly")הודעות ראשיות (בבלוסקיי אין אפשרות לבחור רמת פרטיות להודעות באותה רזולוציה שיש בפדיוורס, כך שהמושג של „פומביות” לא רלוונטי באותו האופן) בעברית ב#strong[בלוסקיי] תוכלו למצוא בעזרת #link("https://bsky.app/profile/did:plc:63fijvrra4pxxj34obunxp6f/feed/hebrew-feed")[הפיד הזה] שכתב #link("https://bsky.app/profile/avivr.dev")[אביב] (ר׳ גם #link("https://bsky.app/profile/bot.avivr.dev")[בוט העברית]).
534      ],
535    ),
536    (
537      icon: "check-square-offset",
538      question: [לא ביקשתי אקטיבית להכלל במדריך, למה אני בו?],
539      answer: [
540        התלבטתי הרבה אם נכון שהמדריך יהיה opt-in (כדי להכלל צריך לבקש) או opt-out (כדי לצאת צריך לבקש).
541        מתוך כוונה להמעיט ב„סרבול בירוקרטי”, כדי למקסם את התועלת לקהילה מתוך רצון להיטיב ולאור זה שנכלל כאן רק מידע פומבי ונגיש (לא נכללים חשבונות שרשימת הנעקבים שלהם מוסתרת, לדוגמה) — בחרתי באופציה של *opt-out*.
542        לדעתי אין פגיעה בזכויות; בשונה מההתחברות לגשר, לדוגמה, ששם יש שכפול של הזהות שלנו ושל מה שאנחנו אומרות·ים על־ידי בוט ולכן ראוי שיהיה opt-in, כאן מדובר רק ברשימה של חשבונות ותו לא.
543        עם זאת, נראה לי שעדיף שא·נשים יוסיפו את עצמן·ם מאשר שיוספו על ידי צד שלישי: שתפו את #link("https://hebridge.digitalwords.net/")[הכתובת של הדף הזה] עם מי שלדעתכן·ם כדאי שיצטרפו~#phicon("recycle").
544        בסופו של דבר אני מקווה שזאת לא היתה טעות, ואם אראה שזה לא מתקבל באותה רוח טובה וחיובית שבה זה נוצר, אהפוך את המבנה~#phicon("smiley")
545      ],
546    ),
547    (
548      icon: "identification-card",
549      question: [למה הדף הזה נקרא „עברי הגשר”?],
550      answer: [
551        #paricon("bridge")זה *משחק מילים* על „עֶבְרֵי הַגֶּשֶׁר” (כלומר שני הצדדים של הגשר, שני העברים שלו) והשפה הָעִבְרִית (שהרי המדריך כולל חשבונות עבריים); נראה שלפי האטימולוגיה המקובלת מדובר במילים ממקור משותף (ר׳ #link("https://en.wikipedia.org/wiki/Hebrews#Etymology")[ויקיפדיה באנגלית] ו#link("https://he.wikipedia.org/wiki/%D7%A2%D7%91%D7%A8%D7%99%D7%9D#%D7%90%D7%98%D7%99%D7%9E%D7%95%D7%9C%D7%95%D7%92%D7%99%D7%94")[בעברית] לסקירה קצרה של סוגיות אטימולוגיות).
552  
553        #paricon("arrows-left-right")גם השם של האתר ב#strong[אנגלית] (Hebridge) הוא משחק מילים: שילוב של Hebrew ו־bridge.
554      ],
555    ),
556    (
557      icon: "globe",
558      question: [איך האתר הזה בנוי?],
559      answer: [
560        #paricon("code")האתר בנוי כמעט\* כולו על טהרת #link("https://he.wikipedia.org/wiki/%D7%AA%D7%95%D7%9B%D7%A0%D7%94_%D7%97%D7%95%D7%A4%D7%A9%D7%99%D7%AA_%D7%95%D7%A7%D7%95%D7%93_%D7%A4%D7%AA%D7%95%D7%97")[*הקוד הפתוח והתוכנה החופשית*], ומופק באופן סטטי מקבצי מקור.
561        חלק גדול מהעבודה על המראה שמחזרתי (=עשיתי שימוש חוזר) מהאתר של #link("https://srigurumi.art/")[סריגורומי]~#phicon("yarn")
562  
563        #paricon("finn-the-human")הכל 100% *יצירה אנושית* אורגנית ו־0% זבלה שנפלטה על־ידי „AI”.
564        הטקסט והקוד משוחררים תחת #link("https://app.radicle.xyz/nodes/seed.radicle.garden/rad:zUtk5TbesTn4twej4G3KdirFD6UG/tree/LICENSE")[NON-AI CC0 1.0 Universal].
565  
566        #paricon("ruler")#strong[העיצוב] הכללי של הדף מבוסס על התבנית #link("https://matejlatin.github.io/Gutenberg/")[Gutenberg] (רשיון #link("https://github.com/matejlatin/Gutenberg/blob/master/license.txt")[CC-BY]), עם שינויים והתאמות שלי (כמו האייקונים שמיושרים בצד ימין בראש כותרות ופסקאות או הכפתורים הגדולים בתחילת העמוד).
567  
568        #paricon("text-aa")*פונטים:*
569        - הפונט של גוף הטקסט הוא #link("https://open-sans.com/hebrew.html")[Open Sans עברית] (רשיון #link("https://github.com/sebastienrousseau/open-sans/blob/main/LICENSE")[Apache License 2.0]), הרחבה עברית מאת #link("https://fontef.com/")[יאנק יונטף] ל־#link("https://open-sans.com/")[Open Sans] הלטיני מאת סטיב מטסון.
570          אם הפונט הזה מוכר לך, יכול להיות שזה סימן שאת·ה קורא·ת #link("https://www.haaretz.co.il/")[הארץ].
571        - הפונט של הכותרת הוא #link("https://culmus.sourceforge.io/index.html")[Frank Ruehl CLM], גרסה חופשית (רשיון #link("https://culmus.sourceforge.io/")[GPL2]) שיצר #link("https://github.com/iorsh")[מקסים יורש] ל#link("https://he.wikipedia.org/wiki/%D7%A4%D7%A8%D7%A0%D7%A7-%D7%A8%D7%99%D7%94%D7%9C")[פונט הקלאסי].
572          הידעת? מקסים #link("https://kishkush.net/@iorsh")[כותב בפדיוורס] ונגיש בבלוסקיי דרך הגשר.
573          הסיבה שבחרתי בפונט הזה היא כדי לאותת עבריוּת.
574        - תת־הכותרת היא בפונט #link("https://github.com/MichalSahar/Secular")[Secular One] (רשיון #link("https://github.com/MichalSahar/Secular/blob/master/OFL.txt")[OFL]) מאת #link("https://hagilda.com/member/michal/")[מיכל סהר].
575  
576        #paricon("sparkle")\**התמונה* בכותרת היא #link("https://www.astropics.com/photo/hiking-haleakala-crater-at-night-panorama/")[זו], מאת #link("https://www.astropics.com/page/about/")[Wally Pacholka].
577        לצערי היא לא תמונה חופשית, ואני מודה ומתוודה שהשתמשתי בה בלי לבקש רשות.
578        בחרתי בה היא כי היא מדהימה ביופיה, וכי יש בה גם את האלמנט של גשר מקושת וגם את האלמנט של שמיים זרועי כוכבים (Fediverse בנוי מפורטמנטו של federated ו־universe).
579        אשמח להחליף אותה בתמונה חופשית יפה.
580        #link("https://me.digitalwords.net/")[צרי/צור איתי קשר] אם יש לך הצעה אלטרנטיבית לתמונה חופשית.
581  
582        #paricon("swatches")*הצבעים* של הכפתורים לקוחים מהפלטה #link("https://www.nordtheme.com/")[Nord].
583  
584        #paricon("phosphor-logo")#strong[האייקונים] הם של #link("https://phosphoricons.com/")[Phosphor] (רשיון #link("https://raw.githubusercontent.com/phosphor-icons/homepage/master/LICENSE")[MIT]).
585        זה סט האייקונים הכי מאוזן ואסתטי שאני מכירה.
586        יש אולי עשירים ממנו, אבל מה שמכריע מבחינתי הם הדיוק והאחידות החזותית המינימליסטית.
587        בפרט, הוא גם משתלב באופן מושלם בעובי הקווים ובצורניות של האותיות עם הפונט Open Sans, כך שאין התנגשות בין הטקסט והאייקונים אלא הרמוניה.
588  
589        #paricon("gear")*האתר סטטי*, ומופק באופן אוטומטי בעזרת מחולל שבניתי בטייפסט.
590        המשפט האחרון מצריך מעט ביאור, אני משערת:
591        - *אתר סטטי* הוא אתר שכל הדפים בו נבנים מראש באופן אוטומטי לידי קבצי HTML מוכנים מראש, שהשרת שולח לדפדפן כמות שהם.
592          היתרון הגדול של אתרים כאלה על אתרים דינמיים (שבהם דפים מופקים בשרת כשמשתמש·ת גולש·ת אליהם) הוא בפשטות של התהליך, במיעוט הדרישות מהשרת (שרק שולח קבצים, בלי שום לוגיקה מורכבת) ובאבטחה שנובעת מהפשטות הסטטית.
593        - בהקשר הזה, *מחולל* (גנרטור) הוא תוכנה שלוקחת כקלט קבצים בפורמט נוח ופולטת מהם את קבצי ה־HTML של האתר.
594          לקריאה נוספת ר׳ #link("https://en.wikipedia.org/wiki/Static_site_generator")[הערך הזה בוויקיפדיה].
595        - #link("https://typst.app/")[*טייפסט*] (Typst) היא מערכת #link("https://he.wikipedia.org/wiki/%D7%A1%D7%93%D7%A8_(%D7%93%D7%A4%D7%95%D7%A1)")[סְדָר] (typesetting) חדשה שאני מאוד אוהבת; היא משלבת שפת סימון ושפת תכנות באופן אלגנטי ונוח.
596          אם את·ה מכיר·ה את #box(html.frame[#import "@preview/metalogo:1.2.0": (
597              LaTeX,
598            ); #LaTeX]), העקרון הוא אותו העקרון רק שטייפסט מוצלחת יותר בכל היבט מלבד היקף השימוש (וגם זה משהו שמשתנה עם הזמן לטובה).
599          הטקסט שאת·ה קורא·ת עכשיו עכשיו נכתב בטייפסט תודות ליכולת #link("https://typst.app/docs/reference/html/")[לפלוט HTML], שכרגע היא נסיונית וחלקית (אבל, כמסתבר, עובדת מספיק כדי להפיק אתר כמו זה!).
600        - ה#strong[נתונים] של מדריך החשבונות נשמרים בקובץ בפורמט בשם #link("https://he.wikipedia.org/wiki/YAML")[YAML].
601          טייפסט יודעת לקרוא קבצי YAML, אבל היא מתוכננת בכוונה באופן כזה שלא מאפשר גישה לרשת.
602          כדי להוריד את נתונים רלוונטיים (כמו השם להצגה, או הכתובת של תמונת הפרופיל) כתבתי סקריפט פייתון קטנטן שעושה את זה בעזרת ה־API של הפדיוורס וזה של בלוסקיי.
603  
604        #paricon("coffee-bean")כמעט ואין *JavaScript* באתר.
605        הדבר היחיד שעושה שימוש ב־JavaScript הוא ההעתקה של ה־handle ללוח בלחיצה עליו.
606        אם הדפדפן שלך לא תומך ב־JavaScript או שכיבית את התמיכה (צחתין!), זה לא פוגע בשימושיות מעבר לזה שיהיה צורך לסמן ולהעתיק ידנית; אני מאמינה שאתרים (בניגוד לאפליקציות רשת מורכבות) צריכים לפעול גם בלי „חלקים נעים”.
607  
608        #paricon("git-branch")אם הגעת עד לכאן יכול להיות שיעניין אותך לעיין ב#strong[קוד המקור].
609        קישורים לריפוזיטורי נמצאים #link(<directory-edit>)[כאן].
610      ],
611    ),
612    (
613      icon: "hand-waving",
614      question: [מי את?],
615      answer: [
616        #link("https://me.digitalwords.net/")[מאיה].
617        בפדיוורס אני #link("https://hed.im/@ruxotves/")[`@ruxotves@hed.im`] והחשבון המשוקף בבלוסקיי הוא #link("https://bsky.app/profile/ruxotves.hed.im.ap.brid.gy")[`@ruxotves.hed.im.ap.brid.gy`].
618      ],
619    ),
620    (
621      icon: "hand-pointing",
622      question: [יש לי שאלה שלא נענתה כאן.],
623      answer: [
624        אם זאת שאלה טכנית על הגשר, יכול להיות שתמצא·י תשובה ב#link("https://fed.brid.gy/docs")[תיעוד] של הגשר.
625        אם נשארת בלי תשובה, או שמכל סיבה אחרת את·ה רוצה לפנות אלי, פרטי הקשר שלי מופיעים #link("https://me.digitalwords.net/")[בעמוד הבית שלי].
626      ],
627    ),
628    // (
629    //   icon: "",
630    //   question: [],
631    //   answer: [],
632    // ),
633  )
634  
635  #for q in questions { question(..q) }