🔨 Projektoj

🌏 Federujo

© Odori Sato, ; よふかし

Plej ofte, sociumaj retejoj kaj babilejoj estas apartaj, izolitaj. Iu ĉe Telegramo ne povas mesaĝi iun ĉe Signalo, iu ĉe Facebook ne povas aboni iun ĉe Twitter, ktp. La efiko de tio estas centraligo: Iuj retejoj treege grandiĝas, kaj tiel akiras treegan socian potencon. Tiu potenco ofte misuziĝas — perfidoj de privateco, disvastigo de malliberaj programaĉoj, cenzurado de justaj opinioj, kaj foje eĉ propagandado de severe perfortinstigaj falsaĵoj. Tian potencon neniu povu teni sola; tian potencon ĉiu tenu.

Ise, ne ekzistis ununuraj retejegoj, sed multmultaj retejetoj kaj babilejoj. Ĉi tiel, la potenco estis en la manoj de multaj homoj, kaj ne tiom gravis se iu specifa retejo ekmistraktis uzantojn. Oni povus facile fuĝi al alia, ĉar estis tiom multaj. Tamen, restis la ĝeno, ke oni ne povus mesaĝi homojn de aliaj retejoj. Do oni iusence izoliĝus en la komunumo de sia preferata diskutejo. Parte pro tiu problemo, populariĝis Facebook kaj ties amikoj — ĉar malgraŭ ke oni izoliĝas ankaŭ tie, oni izoliĝas en multe pli granda kaĝo!

Feder⋅uj⋅o, tamen, estas la ideala mezpuntko inter retejegoj ĉionregaj kiel Facebook kaj etaj retejoj antikvecaj. Federujo estas federa »reto« el multaj etaj retejoj, kiuj ĉiuj povas mesaĝi inter si. Oni ĉe iu specifa retejo povas aboni kaj mesaĝi onin ĉe alia retejo! Se oni volas efektivan anstataŭigon de la fia X, do, mi konsilus al tiu ekuzi federujan retejon kiel MastodonoPleromoMiskio! ^ ^

Mi volas vidi federujon ĉie! Por subteni ĝin, mi gastigas sociuman retejon Mansardo Jamada kaj koddeponejon Laboratorio Ŝinonome. Ĉe ambaŭ, ĉiu estas bonvena (eĉ vi!) kaj registriĝoj estas malfermaj. Mi ankaŭ skribis kelkajn skriptojn kiuj interfacas federujajn servilojn, kaj prilaboradas bibliotekan bazon por federujaj serviloj, activity-servist.

💬 Babilado unuprograme

© MiiwoArt, ???; Pp6

En la nuna epoko, por komuniki kun niaj gefrataj homoj, oni devas ruli tri, kvar, kvin, aŭ eble eĉ ses apartajn programojn. Sed kial? Pro kio? Ĉiu tujmesaĝilo estas pli-malpli la sama, kun baza subteno de la samaj kapabloj. Do kial oni rulu mil programojn kiuj estas nur revestitaj retfoliumiloj? Tio simple maljustas, tute maljustas. Samkiel mi volas ke niaj servoj estu servile neŭtralaj (federaj), mi volas ke niaj programoj estu komunikforme neŭtraltaj. Tamen, ĉi tie temas sole pri propra prefero k gusto.

T.e., temas ne pri etiko nek pri moro. Mi simple tre volus, ke oni povu parolu kun homoj per nur unu programo. Ununura programo. Jen la revo! Ĉi tia programo, ideale, plenumus la jenajn postulojn: Facile skriptebla por la uzanto; simpla kaj bone apartigita kodo; neŭtraleco je programlingvoj; neŭtraleco je komunikformoj (kaj XMPP kaj IRC funkciu, ekz).

Piĝino (Pidgin) estas tre bona kandidato, kiu subtenas multajn komunikformojn kaj jam iom popularas. Tamen, ĝi malfacile skripteblas kaj tute ne neŭtralas je programlingvoj, ĉar komunikformaj aldonaĵoj nepre estu skribitaj per C.

Telepatio (Telepathy) estus hipoteze plibona kandidato, se ĝi plu viglus. Ĝi uzas D-Bus por komunikado inter klient-demonoj (»konektiloj«) kaj klient-programoj (fasado). Ĉiu komunikformo estu aparta »klient-demono«, kiu provizas babilejajn datumojn per D-Bus; tiel Telepatio kaj lingvoneŭtralas kaj skripteblas. Perfekte, ĉu ne? Tamen, kiel mi jam menciis, la projekto estas dormanta kaj malaktiva… bonvolu vekiĝi, Telepatio!

Mi ekprovis krei mian propran konkuranton, »chatdir«, kun simila strukturo kiel Telepatio, sed kun grava distingo: Klient-demonoj provizus datumojn ne per D-Bus, sed per la dosiersistemo mem, rekte kiel dosierarbo kun FIFO (»specialaj pordoj«) dosieroj. La celo estis fari ion simila al ii, sed pli vasta kaj malsimpla. Mi ekskribis bibliotekon por Koka Skimo kaj klientdemonon IRC’an, sed neniam efektive finis.

Provizore, mi elektas la Kolombon, Piĝinon! Mi dorlotos ĝin supersufiĉe kaj manĝigos tiom bone, ke ĝi dikiĝos kvazaŭ balono! La kolombo eble ne gustos tiom bone, sed ĝi ja satigos la korpon.

📚 Datumportado

© Seseren, ; 勤務24時間目

Datumoj kiuj ne moviĝas estas mortintaj datumoj. Timu paperon: Ĝi estas mortaŭguro por viaj datumoj.
— Mike Gancarz,
La Uniksa Filozofio (1995; angle)

»Ĉio estu simpla teksto« kaj »ĉio estu dosiero« estas kernaj partoj de la Uniksa filozofio pro tre bonaj kialoj. Se programo konservas ĉion en sia speciala duuma formo, kaj vi volus iutage forlasi tiun programon… kio fareblas? Nu, en tiu kazo, ofte ekzistas jam tradukilo inter la stranga formo kaj plioftaj dosierformoj. Kaj eĉ se ne ekzistas jam tradukilo, dum vi tenas tiun nelegeblan dosieron enmane, plu restas espero. Vi povas kredi, ke ĉio iros bone, kaj ke viaj datumoj sekuras.

Gravas al mi la kapablo elporti datumojn de programo al analizebla formo. Se oni, ekzemple, uzas tujmesaĝilon, nepre facilu konserve elporti mesaĝojn al plata teksto (aŭ almenaŭ al dokumento HTML-a). Plifacilas traserĉi dosierojn rekte, kaj ofte oni ne povas fidi ke la servilo/protokolo konservos diskutojn. Je XMPP/Matrikso, okazas sufiĉe ofte ke ŝlosiloj perdiĝas, kaj tiel entute perdiĝas longaj, gravaj diskutoj. Pro ĉi tio, mi faras kelkajn skriptojn por eligi analizeble protokolojn kaj datumojn de iuj programoj kaj servoj: dino-chat-export, divercities_dl, bandcamp_dl, wyrics, ktp.

Ankaŭ estas Pleroma-Migranto (Pleroma Migrator), kiu estas iom… iom malsama. Ĝi estas iomete danĝera, eble; eble estas ioma kanajlo. Mi skribis ĝin transloĝiĝante de cawfee.club al mia propra federuja servilo, Mansardo Jamada. Sentiĝis al mi, ĵusaliĝinte, ke mia konthistorio iom malplenis tre solece. »Ĉu ne belus,« mi pensis al mi, »se miaj malnovaj afiŝoj videblus ĉi tie?« Kaj do, mi kopiis miajn afiŝojn de cawfee al Mansardo, per simpla skripto. Sed, ĉar avareco nesatigeblas, tio ne sufiĉis. »Kaj ĉu ne beletus se mi rekte redaktus la SQL-datumbazon de Pleroma, por ŝajnigi ke tiuj kopioj afiŝiĝis je la dato de la originala afiŝiĝo?« Ĝuste tion faras Pleroma-Migranto, kaj ĝuste tion ĝi faris.

📎 Aldonaj dosierecoj

© ???; GNU-tan

Per aldonaj dosierecoj (xattr-oj), oni povas ligi arbitran pridatumon al dosiero simple kaj elegante. Oni povus ligi la retan fonton de dosiero, enskribi la nomon de aŭtoro, konservi la preferatan pozicion de ĝia programfenestro — eble eĉ povus fari sandviĉon! Domaĝe, ili apenaŭ uziĝas inter la liberaj operaciumoj, malgraŭ ke foje tre logikus. Ili estas marĝenuloj, apenaŭ uzataj k subtenataj. Forgesitaj. Tiom malĝoje, ĉu ne?

Hajko (Haiku) estis mia kara sola operaciumo dum du jaroj, kaj ĝi malkaŝis al mi ĉion. LiGNUkso kaj siaj amikoj malatentas kaj mistraktas dosierecojn; ili ridante elĵetis ŝin de la domo, kaj vice piedfrapas ŝin surplankan. Sed kontraste, Hajko amplene kaj bonkore karesas dosierecojn, kaj bontraktas ŝin kvazaŭ ĝia propra filino. Ĉu en la dosierfoliumilo, la kalendaro, aŭ la kontakinformilon, ili estas efektive ĉie! Kvazaŭ oni dronas en tre plaĉa inundo el dosierecoj! Ili eĉ anstataŭigas dosierformojn! Retletero? Malplena dosiero, kun ecoj pridatumaj. RSS/Atom-afiŝoj? Malplena dosiero, kun ecoj. Kalendara okazo? Ecoj. Datumbazo? Ankaŭ ecoj, fakte. Via homa animo? Ecoj.

Celo mia estas uzi aldonajn dosierecojn ĉe miaj programoj plejofte laŭutile, por proksimigi la liberajn operaciumojn al Hajko — kaj tiel, al la oso! Aldonaj ecoj, vastiĝu kaj plimultiĝu!

Tamen, al ĉi tiu batalo mi sole kontribuis xattr-an bibliotekon por la lingvo Koka Skimo (Chicken Scheme) kaj RSS/Atom-fluilon, feedsnake. Mi ne eĉ plu uzas feedsnake, ĉar jam trovis plibelan programon, sfeed.

📩 Retpoŝto

© naga_U, ; 青封筒⋯

Ĉe la operaciumo Hajko, retpoŝtmesaĝo simple estas dosiero speciala, kun aldonaj dosierecoj enhavantaj la pridatumojn de la mesaĝo. Ĝia dosierfoliumilo, Trakero (Tracker), estis farita prizorgi elstare bone tiujn aldonajn ecojn, kaj tiel montras retpoŝton tre bone. Kaj la Hajka retpoŝtmontra programo? Ĝi estas simpla sed bela.

Mi senhonte ŝtelos ideon de Hajko: Laŭ mi, la dosierfoliumilo estu la »kerno« de grafika fasado, samkiel la ŝelo (bash ktp) estas la »kerno« de terminala fasado. Kaj do, pli da aferoj fareblu per kaj loĝu en la retfoliumilo; retpoŝto estas inter tiuj aferoj. Tiucele, mi prilaboris nautilus-maildir, aldonaĵon por la dosierfoliumiloj Nautilus/Caja/Nemo, kiu montras informojn pri retpoŝtmesaĝo per aldonaj eckolumnoj.


💀 Eksaj projektoj 💀

🍃 Hajkumado

© Haiku Project, Madia; ; MIT

Laŭ antaŭa mencio, mi iam okupiĝadis je Hajko (Haiku), ĝia komunumo, kaj ĝia programaro. Ĝi estas sistemo, tiel bela, tiel oseca, kaj tiel unika (kaj etose kaj teĥnike). Ĝi estas, sen ajna troigo, la modelo de grafika unikso: Aliaj uniksoj devus peni atingi ĝian pinton. Ĝi estas plifidela plenumanto de la uniksa filozofio ol ajna alia uniksa sistemo moderna.

Por ĝi, mi dediĉis kelkajn programetojn kaj skriptojn: Chat-O-Matic, Pogger, MediaMonitor, kaj tiel plu. Miaj ĉefaj aliaj kontribuoj estis al Kalendaro kaj TrackGit. La plej peza laboro kredeble estis Chat-O-Matic, kiun mi prilaboris pro la 2021 Google Somero de Kodo.

Sed fine, mi transloĝiĝis ree al LiGNUksujo, kie mi plu loĝas hodiaŭ. Mi devis fuĝi Hajkujon ĉar, nu, ĝi tro bonis. Tio eble sonas stulteta kialo, sed mi parolas tutserioze! Hajko ja havas siajn manketojn kaj pikilojn, sed tielas eĉ la plej sana rozujo. Ĝi estas krome aparta komforta sistemo kun elstare afabla kaj helpema komunumo. Kaj pro tiu aparteco kaj elstareco… mi ekmalkomfortiĝis. Dum mi ĝuis plaĉan labortablon simplan, la LiGNUksa labortabla sperto ankoraŭ aĉis, kaj ties uzantoj plu rampis en la pulvo de la ter’.

Preferindas nek aparti nek elstari, kaj do mi reinstalis LiGNUkson. Mi volus iomete kontribui al la labortablan sperto de ordinaraj uzantoj (kaj iomete por akordigi ĝin al mia gusto stranga). LiGNUkso estas la sola konkuranto kontraŭ Vindozo kaj macOS, kaj tial ĝi estu plejbona laŭeble.

🪙 coinsh.red

© jadedctrl, ; AGPLv3

Antaŭ Raddle (Reddit-eca diskutretejo) eksubtenis rekte bildoalŝutadon, troviĝis ke mankis al la komunumo taŭga bildoservo. La elektoj kiujn ni konis aŭ postulis tro da Ĝavoskripto, aŭ ne respektis privatecon, aŭ estis gastigataj de »faŝistoj«. Do, mi elektis fari mian propran servon simplan. Dum semajnfino, mi programis per PHP insert-coin, la unuan version de coinsh.red. Ĝi estis laŭmemore mia unua PHP-projekto; kaj ĝi ne belis, sed ĝi ja funkciis!

Mi faris iujn plibonigojn kaj ŝanĝojn dum kelka tempo, ĝis mi renkontis IPFS-on, interesan disan reton kiu provas anstataŭigi HTTP-on. Tiam, mi faris novan version de la retejo per Komuna Lispo, kiu alŝutis ĉiun bildon al la IPFS-reto: distribute-coin. Por fari tion, mi ankaŭ devis fari bibliotekon Komunlispan, cl-ipfs-api². Post monatoj kaj monatoj, ekĝenis min administrado de la IPFS-servilo, kaj eksubtenis Raddle bildoalŝutadon, do mi malŝaltis alŝutkapablon. Sume, coinsh.red servas 93GB da dosieroj, kaj 18835 da URL mallongigoj.

Hodiaŭ, ne plu vere min interesas IPFS. Mi ne plu opinias ĝin verŝajna venkonto de HTTP, tamen mi plu forte opinias HTTP venkinda. Nepras anstataŭigi nunajn servojn kaj sistemojn, kiuj estas ofte amasigitaj kaj regataj de malmultaj kompaniaregoj, per disaj sistemoj kiuj neregeblas de iu ajn individuo. Ĝuste nun, tamen, mi ne konas bonan k subtenindan komunikformon. GNUnet eble iutage iĝos tiu subteninda formo, sed tiu tago ŝajnas ankoraŭ iom fora. Do provizore, pli restos ĉe la flanko de federujo

🐋 LibertyBSD

© Spencer Jung, Estanislao Perez Rosso; ; CC BY-SA 4.0

LibertyBSD estis projekto, kiu strebis purigi OpenBSD-on al FSDG-aprobita kaj tutlibera operaciumo. Ĝi estis fondita de Riley Baird, kiu eldonis la unuan version je. Iam, mi ekgastigis la retejon de la projekto, kaj post Baird foriris, ankaŭ ekprizorgis novajn versiojn kunlaborante Einhard Leichtfuß, Jimmybot, kaj alimiracle.

Post iuj eldonoj, troviĝis ke mankas al iuj gravaj kododosieroj kopirajta permisilo; laŭ la OpenBSD projekto, ĉi tio estas problemo ne, sed laŭ la GNU projekto (kaj FSDG-reguloj), estas problemego jes. Dosiero sen permesilo estas implicite mallibera! Domaĝe, mankis al mi la necesa C-sperto kaj tempo ilin anstataŭigi sole, do mi arĥivigis la projekton. Ĝenerale, mi taksus mian tenadon de la projekto malbone; ĝi estis nek fidela sistemo nek regule ĝisdatigita.

Mi alte rekomendas la Hyperbolan projekton. Ili klopodas fari simile liberan BSD-sistemon, baze de la OpenBSD kerno. Ili prizorgas anstataŭigon de la senpermesilaj kododosieroj, kaj de kelkaj aliaj aferoj laŭ ilia teĥnika stilo. ^^