/ 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) }