techhub.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A hub primarily for passionate technologists, but everyone is welcome

Administered by:

Server stats:

5.4K
active users

#appy

4 posts4 participants0 posts today
spla :senyera: :vim:<p>He alliberat la primera versió, la v0.1, de <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a>, el servidor <a href="https://mastodont.cat/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ActivityPub</span></a> escrit en <a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> sobre <a href="https://mastodont.cat/tags/fastAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fastAPI</span></a> </p><p><a href="https://codeberg.org/spla/appy/releases" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/spla/appy/release</span><span class="invisible">s</span></a></p><p>La majoria d'aplicacions per a Mastodon funcionen amb appy.</p>
spla :senyera: :vim:<p>No es pot negar que el servidor <a href="https://mastodont.cat/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ActivityPub</span></a> <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> és el projecte més gran i complex de tots els que he programat en <a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a>.</p>
spla :senyera: :vim:<p>Ara millor, la línia de temps "home" necessita un token vàlid però la línia de temps "public" (federada) no.</p><p><a href="https://codeberg.org/spla/appy/commit/081cf661cc33d702cd0e53a74ab9030fbffd9311" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/spla/appy/commit/</span><span class="invisible">081cf661cc33d702cd0e53a74ab9030fbffd9311</span></a></p><p>He tingut que crear un nou model <a href="https://mastodont.cat/tags/Pydantic" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Pydantic</span></a> per els tuts de la línia de temps federada perquè no han de tenir "favourited", "reblogged", "muted", "bookmarked", "pinned" ni "filtered" </p><p><a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> <a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://mastodont.cat/tags/fastAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fastAPI</span></a></p>
spla :senyera: :vim:<p>Li enganxo a <a href="https://mastodont.cat/tags/chatGPT" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>chatGPT</span></a> una funció de codi <a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> d'<a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> que gestiona les activitats Create rebudes del fedivers i li demano que el millori. El troceja en diferents funcions per a fer-lo més legible ✅ , fins aquí perfecte.<br>El provo i oh sorpresa: <br>- les notificacions no funcionen ❌ <br>- no descarrega les imatges ❌ <br>- no obté les etiquetes ❌ <br>- no obté les mencions ❌ <br>- error al desar els tuts perquè ja hi son a la base de dades ❌ <br>Una feinada depurar-ho tot...😅</p><p>No entén el context, IA? no pas...</p>
spla :senyera: :vim:<p>M'estava tornant boig, els servidors remots em retornaven l'error:</p><p>{"error":"Invalid Digest value....</p><p>He après que si els hi envio el meu json fent servir el paràmetre de httpx json=el_meu_json, httpx fa internament un json.dumps(el_meu_json) i per tant els servidors remots rebutgen el que hi envio perquè el json rebut no coincideix amb l'utilitzat en la signatura http.<br>Per evitar el problema no s'ha de fer servir el parametre json sinó content=el_meu_json.</p><p><a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a></p>
spla :senyera: :vim:<p>He "Pydantizat" l'activitat "Delete" que <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> envia al fedivers. Funciona de meravella 😀</p>
spla :senyera: :vim:<p>He modificat <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> evitant repetir les mateixes línies de codi que verifiquen el token d'accés de l'aplicació client en els punts finals de l'API on es requereix un token d'accés.<br>El resultat final estalvia 537 línies.</p><p><a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://mastodont.cat/tags/fastAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fastAPI</span></a></p>
spla :senyera: :vim:<p>"Dependency Injection" a <a href="https://mastodont.cat/tags/fastAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fastAPI</span></a> és un sistema molt fàcil i a l'hora molt potent d'evitar repetir el mateix codi en tots els punts finals (endpoints) de l'API.<br>En cadascun dels punts finals fas una crida a la funció que vulguis mitjançant el paràmetre "Depends", funció que verifica que es compleix el requisit necessari, en l'exemple, l'aplicació client ha d'enviar el token correcte, si no és així, la funció que executa Depends és l'encarregada de retornar l'error a l'app client.</p><p><a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a></p>
spla :senyera: :vim:<p>Ara sí que tinc dominat, a <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a>, els possibles errors al seguir un usuari remot. <br>Mireu el missatge d'error en vermell que li envio a l'aplicació client Ivory quan això passa. 😃<br>Brutal. </p><p><a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://mastodont.cat/tags/fastAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fastAPI</span></a></p>
spla :senyera: :vim:<p>Millor encara, ara amb el detall exacte del error.</p><p><a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> <a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://mastodont.cat/tags/fastAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fastAPI</span></a> <a href="https://mastodont.cat/tags/Postgresql" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Postgresql</span></a></p>
spla :senyera: :vim:<p>Afegint control d'errors en la creació de la base de dades de <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a>. Quan instal·les el servidor appy, si hi ha un error en la creació d'una taula, un index, una seqüència o una funció, el codi et mostra on és l'error i surt al sistema.</p><p><a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://mastodont.cat/tags/fastAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fastAPI</span></a> <a href="https://mastodont.cat/tags/Postgresql" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Postgresql</span></a></p>
spla :senyera: :vim:<p>18.680 línies de codi <a href="https://mastodont.cat/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> programades al 100% amb <a href="https://mastodont.cat/tags/Vim" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Vim</span></a> :vim: és el resum per ara de la feinada al crear des de zero un servidor ActivityPub.</p><p><a href="https://mastodont.cat/tags/BonDia" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BonDia</span></a> <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a></p>
spla :senyera: :vim:<p>El codi d'appy ja sap desar i actualitzar els marcadors. Els marcadors ("markers") serveixen per a mantenir la posició en el darrer tut o notificació que hem vist. </p><p><a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a></p>
spla :senyera: :vim:<p>Reconec que possiblement no hagués aconseguit encertar en idear aquesta consulta recursiva que em soluciona obtenir el context d'un tut concret (fil), el seu context. En la captura la consulta que retorna els antecedents.<br>M'ha ajudat una IA.</p><p><a href="https://mastodont.cat/tags/Postgresl" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Postgresl</span></a> <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a></p>
spla :senyera: :vim:<p>És genial tenir Phanpy com a interfície web del meu servidor <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a>. Phanpy es comunica prou bé amb l'API programada per mí.</p>
spla :senyera: :vim:<p>Una fita molt important en el desenvolupament del servidor ActivityPub <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a>. Sense memòria cau que gestioni els allaus rebuts del fedivers, un servidor més val que tanqui la paradeta, no té res a fer.<br><a href="https://mastodont.cat/@spla/113957068635645128" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodont.cat/@spla/1139570686</span><span class="invisible">35645128</span></a></p>
spla :senyera: :vim:<p>A fediverse.info també llisten el meu programari <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> 😃</p><p><a href="https://fediverse.info/explore/projects" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">fediverse.info/explore/project</span><span class="invisible">s</span></a></p>
spla :senyera: :vim:<p>El servidor ActivityPub <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> no té interfície web, és accessible només via API mitjançant diverses aplicacions ja existents.<br>Però <a href="https://mastodont.cat/tags/Phanpy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Phanpy</span></a> serveix com a interfície web per a appy, ja que connecta a l'API.<br>No és genial? 😀</p>
spla :senyera: :vim:<p>Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.</p><p><a href="https://codeberg.org/spla/appy/commit/00ca934776a498ede68cf432de10d209f9bcf324" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/spla/appy/commit/</span><span class="invisible">00ca934776a498ede68cf432de10d209f9bcf324</span></a></p><p><a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> <a href="https://mastodont.cat/tags/outbox" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>outbox</span></a></p>
spla :senyera: :vim:<p>El meu programari de servidor ActivityPub <a href="https://mastodont.cat/tags/appy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>appy</span></a> ja surt llistat a fedidb 😀 </p><p><a href="https://fedidb.org/software?page=9" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">fedidb.org/software?page=9</span><span class="invisible"></span></a></p>