minioctt, (edited ) to python Italian

Questa voce fa parte 1 di 4 nella serie Troppo Cloud Gaming

Sono sicuramente un po’ paxxerella per iniziare nuovi progettini mezzi complicati ancora prima di finire i precedenti, ma che ci voglio fare? Quantomeno, a ‘sto giro ho effettivamente portato , il programma iniziato ieri, ad uno stato di completezza, tant’è che da ora penso non avrò alcun intoppo ad usarlo… e quindi l’ho anche rilasciato già stasera pubblicamente con tanto di README quasi logorroico (il link di stamattina era privato): https://octt.itch.io/framenx 🪟

https://octospacc.altervista.org/wp-content/uploads/2024/05/screenshot_2024-05-05-02-14-47-843_io2733305805360369156-960x987.jpgLa UI è ancora grezza, ma ho migliorato i messaggi a schermo, aggiungendo avvisi a scomparsa quando si verifica un errore o viene fatta un’azione (qualcuno l’ho dimenticato però oooops, dovrò metterlo, ma poca roba). Funziona in ogni caso solo con la tastiera, perché il mouse è dannoso e le hitbox sarebbe uno sbattimento in più per nessun buon motivo, dato che comunque questa per ora è una solo PC. (Ormai si sta costruendo una lore dietro questa interfaccia, ops.) ☠️In realtà sotto la scocca quella UI è comunque più complicata di quanto sembra, anche se è relativamente semplice, perché in primis già solo per le notifiche ho dovuto implementare tutto un sistema di coda… poi ho dovuto mettere il rendering video su un thread separato, perché l’accesso alla camera rallentava tutto il loop e quindi avrebbe inficiato sulla lettura degli input… ma spostarmi su un thread di sfondo ha introdotto non pochi casi limite strani che ho dovuto sistemare con ancora più codice… Comunque relativamente poco , perché il è simpatico e non è stato creato da gente che vuole vedere gli altri programmatori impiccarsi. 🦍

Btw, ho continuato a trovare altri problemi in … Innanzitutto, un bug strano con lo stack dei joystick (cioè controller da gioco in generale, direi che il nome è scelto malino) che fa si che questi non mandino più eventi dopo essere stati inizializzati se non se ne tiene qualche reference nel codice (come una variabile assegnata che non muore), come se fossero levati dal garbage collector altrimenti… stranissimo. E poi, il fatto che per riprodurre il suono di dispositivi di input audio, tra metodi non wrappati e quindi richiamabili solo con la API grezza di SDL2, stack audio buggato in generale e comandi che letteralmente non sortiscono effetto, altri comandi che invece causano segfault alla chiusura del … mi pare di stare programmando con una tempesta di raggi cosmici addosso. Ciò non lo gradisco. 😾

https://octospacc.altervista.org/2024/05/05/framenx/

minioctt, to web Italian

Sembra che sto di nuovo perdendo l’abitudine di riuscire a scrivere abbastanza qui negli ultimi giorni, e la cosa non mi piace granché, ma questi nuovi progetti un po’ mi stanno rapendo quindi non ho per la testa nemmeno la necessaria entropia per scrivere scemenze. Comunque, stasera con la scusa del mio compleanno (il tempo scorre…) ho visto degli amici, quindi non ho potuto fare tantissimo sul mio , solo robine tra stamattina e oggi pomeriggio (e tra poco vado a mimir, sembra che io stia riuscendo a prendere abitudini migliori):

  • Ho fatto un nuovo componente Shell con una grossa API contentRunner, praticamente ciò che dovrebbe occuparsi di far partire nuovi processi applicativi, di qualunque tipo, ma che hanno requisiti diversi dietro le quinte. Btw, a causa di questo devo riprogettare il componente Proc, che prima avevo fatto solo per prototipare e ora non va affatto bene (per il momento questa API lo bypassa completamente, ma a lungo termine non andrà bene). 🙄️

  • Devo fare un po’ i salti mortali per far fungere programmi negli iframe che si integrino con il al massimo, considerando che è un requisito per me fondamentale quello che il sistema funzioni anche senza alcun tipo di server di backend… già far comunicare i programmi nel frame con quelli nella normale finestra è un bel disastro, ma poi ho dovuto inventarmi anche qualche per far caricare ai frame risorse presenti nel file system virtuale, cosa che a quanto pare nessun altro implementa correttamente. E non ho nemmeno finito… 😊️

  • Ho già provato a fare dei test riguardo il theming dell’interfaccia utente, precisamente con 7.css, ma… è un altro disastro. Questa libreria usa nomi di classi talmente generici e altri attributi talmente specifici che so già che prima o poi usciranno problemi se volessi usarla così stock… ho anche quasi provato ad implementare qualche hack per sistemare uno dei problemi, però no, gli altri rimarrebbero. E con altri possibili temi sarà la stessa questione! Dato che non posso forkare e mantenere infiniti temi per colpa di minuzie, piuttosto credo che mi inventerò qualcosa per patchare i fogli di stile come serve a me… o aggiungendo un processo di build apposito, o implementando processi di patching al volo (con caching) direttamente nel sistema. ☠️

https://octospacc.altervista.org/wp-content/uploads/2024/04/image-7-960x484.pngHo tra l’altro deciso almeno di crearla una repo Git per il progetto, almeno per ora, perché andare avanti senza conservare la minima history può essere problematico considerando che sto pesantemente prototipando. Man mano che farò aggiornamenti potrete testare su https://hakujos-octtspacc-[…].gitlab.io/… ma ora non c’è proprio nulla da provare lì, al massimo vi può incuriosire leggere il , boh. 💣️https://octospacc.altervista.org/2024/04/23/cant-write-only-write/

minioctt, to blogging Italian

[⤴️ https://octospacc.altervista.org/2024/04/14/momento-vera-lista-di-liste/]

Dovevo finire di scriverlo ieri questo, ma, puntualmente, finito un progettino bisogna subito iniziarne un altro (no spoiler), e non c’è tempo per il . La pagina rilasciata ieri, nonostante comunque non mi abbia rubato così tanto tempo perché è pur sempre una paginetta, mi ha presa un po’ alla sprovvista considerando che l’avevo iniziata addirittura questo lunedì. (6 giorni son passati…) 😳

Il motivo è buffo e per nulla legato alla difficoltà di in sé (ho fatto cose peggiori), ma al fatto che puntualmente le altre cose non funzionano mai come dovrebbero, e quindi bisogna fare delle , e poi dopo altro test si vede che da quelle hack si scassano altre cose, e via quindi di altre hack per sistemare i … E allora io ad una certa mi seccavo, e dunque “aight then, see you tomorrow ☠️”

  • Per il sitoctt è stato relativamente semplice: mi appoggio alla pagina di ricerca statica del sito, parsando tutto l’HTML, che per quanto rotta (e per questo evito di far sapere che esiste) racchiude il contenuto di tutte le pagine compilate del sito. Quindi, raccolgo tutti i link ai post da tutte le pagine di categoria. 😺

    • Quei link però sono solo-testo, quindi per prendere l’immagine di copertina ho dovuto aggiornare staticoso dopo mesi solo per fargli scrivere gli URL in attributi data dell’HTML. Poi però mettiamoci pure che a volte questi vengono scritti rotti perché la sostituzione delle variabili non funziona in quel punto del (e io non lo sistemerò mai), e anche che quando manca una copertina allora devo per forza prenderla dal contenuto della pagina, ho dovuto comunque complicare di più il … 😡
  • Per il fritto misto, bel , innanzitutto perché per stabilità e sicurezza volevo evitare di usare i proxy CORS, e poi per efficienza e velocità volevo minimizzare il più possibile le richieste di rete necessarie (paginazione è cacca)… quindi anche qui mi appoggio alla ricerca (in JSON) del mirror statico del sito, anziché direttamente a WordPress; nel file ci sono tutti i post con i metadati necessari. 😸

    • Ganzo, se non fosse che ho sprecato chissà quanto tempo solo per le immagini; e totalmente invano, perché poi alla fine ho dovuto rassegnarmi a includere nel JSON tutti i dump dei post (ciò che volevo evitare, perché fatto così si appesantirà molto velocemente, ops) ed estrarre la prima immagine ricorrente in quelli. Non capisco se il problema ha a che fare con , la sua versione fornita da GitHub Pages, o ancora il parser Liquid di Ruby, perché con un altro parser (LiquidJS) ho verificato che il mio codice per estrarre gli URL dal markup è corretto… solo che poi messo lì non funge. Provato anche il plugin “jekyll-firstimage” trovato a casissimo, ma ovviamente non è servito, dava addirittura errore ad installarsi nel processo di build. 👹

Una parte del codice con fin troppi livelli logicamente e visivamente indentati.Solo parzialmente relato: questo era lo stato di una parte del codice una tarda sera in cui ero drogata di sonno ma, come sempre, di andare a dormire proprio no, meglio scrivere le scalette. 😞 (Poi il giorno dopo l’ho reso meno cacca.)https://octospacc.altervista.org/2024/04/14/i-casini-dietro-le-liste/

minioctt, (edited ) to webdev Italian

Il (tra i tanti!) delle è che saranno anche facili da o spesso, ma non per questo anche semplici… (o per caso non sono neppure facili e la mia mi fa sottovalutare la cosa?) 😫

  • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
  • 🅱️ Quel però non è a conoscenza di tutte le risorse caricate dinamicamente, cioè dichiarate in posti diversi dall’HTML. Per prendere anche quelle (ed è spesso necessario, tutte le app moderne caricano roba così), bisogna aprire la app nel , e guardare le richieste di che macina con il normale uso.
    • 1️⃣ A questo punto, si può usare la funzione del browser per esportare le richieste in formato HAR, e poi tool come har-extractor o Har Extractor Online per ricavare i file effettivi da quel blob.
      • Ho notato però che Firefox in alcune situazioni genera corrotti (2 giochi fatti in Phaser avevo provato a scaricare, ed una volta estratti gli script tiravano errori; ho riprovato con Chromium, ed è andato tutto liscio), quindi a prescindere io userei l’altro per questa cosa. 🥴
      • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli lo interpretano, o un misto delle cose, ma le risorse cross-domain (e credo anche caricate da iframe?) tendono a non venir estratte, quindi si deve andare poi a pescarle prelevando l’URL di ognuna a manina dai DevTools già aperti… 🤧
  • 🆎 Si potrebbero usare primo e secondo metodo insieme in linea di principio (copiando i file del primo passaggio su quelli del secondo, sovrascrivendo gli esistenti), ma nella pratica è inutile… se c’erano link assoluti da convertire in relativi nell’HTML, con spaventosa probabilità questi sono presenti anche nel o chissà dove, per cui, dato che bisognerà comunque andare a mano a modificarli da qualche parte, 1 o 2 file in più non cambiano (spesso) nulla.
  • 2️⃣ Se si è usato il secondo metodo, bisogna a questo punto effettivamente verificare che i link siano tutti corretti, le effettivamente scaricate, e la app funzionante indipendentemente dal dominio originale… il modo più efficiente che ho trovato è aprire già da subito un webserver locale sui file, navigarci nel browser, e controllare sia che tutto funzioni nel pratico, sia che tutte le di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio , anziché al dominio originale (attivando la colonna omonima della tabella nei lo si vede a colpo d’occhio).
    • Quando ci sono richieste che falliscono o che vanno su altri server, bisogna capire da dove nel codice queste partono, e fare le opportune per usare URL relativi. Quelle che partono dall’HTML o dal CSS (turns out, non molte, altrimenti avremmo usato direttamente wget) sono appunto una scemenza da sistemare… ma quando partono da , c’è poco da fare, con l’aiuto del debugger del browser (di nuovo, meglio Chromium, perché de-mininifica il JavaScript aggiungendo whitespace in automatico) si va a capire da che punto partono, e in base alla situazione si valuta che modifiche fare al . Poi, si testa ancora, e ancora si applicano , finché tutto non funziona. ♻️
    • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla ieri, Little Alchemy 2) si fa tutto in un quarto d’ora ben ristretto. Tuttavia, bisogna fare attenzione a quei programmi che caricano le risorse man mano che ne hanno bisogno e non tutto subito (in genere, maggior parte dei giochi, oppure parecchie React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il raggiungendo idealmente il 100% del codice; cioè, cliccare tutti i bottoni, usare qualunque azione, giocare tutti i livelli… fino ad ora non ho mai incontrato , ma se succede, l’unica è navigare tra il codice già scaricato per vedere cos’è che manca (da qualche parte ci sono scritti i nomi delle risorse ancora da scaricare, per ovvi motivi). 🗡️
  • 🔚 Aggiustamenti finali: in base alla situazione, vanno fatte altre modifiche al source per ovviare a banali ma frequenti. La maggior parte riguardano i domini, che in certi casi sono hardcodati, e quindi o ci sono iframe che comunicano con la Messaging API e gli va cambiato il dominio (come per il gioco di ieri), o c’è del DRM che ostacola il (come il giochino dell’altro ieri) ecc… con si risolve tutto.
    • E alla fine di tutto, una cosa che mi piace fare ma che non sarebbe obbligatoria, è disattivare tutte le componenti potenzialmente dannose dell’ , ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

https://octospacc.altervista.org/2024/04/03/webaps-heist/

minioctt, (edited ) to webdev Italian

Sono praticamente 36 ore che non posto e lo so che siete in astinenza, ma avevo https://octospacc.altervista.org/2024/03/26/pwtorturaaaa/ di risolvere quel con le una volta per tutte. E ora, nonostante un’altra frazione di sanità mentale sottrattami dagli spiritelli del silicio, dolori perché sto seduta per ore alla scrivania e tutta storta, e sonno perché ieri sera ho perso un sacco di tempo a debuggare un errore stupidissimo rimanendo sveglia fino alle 2 per poi arrendermi perché stavo veramente morendo, quantomeno ce l’ho fatta… 🤯️

Cercando con estrema ieri mattina, mi accorgo di una cosa documentata alla bene e meglio, trovando prima una menzione su MDN ad un permesso webRequestFilterResponse.serviceWorkerScript, che servirebbe a regola per permettere alle di intercettare i caricamenti dei Service Worker, e poi un thread bugzilla () che pare abbia portato proprio all’introduzione di questa separazione di permessi. Ho scaricato il dimostrativo per il bug, l’ho un attimo sistemato per tenere conto di questa misura di sicurezza poi introdotta e, certo abbastanza, il coso riusciva a fare quello che io volevo dall’inizio, senza ricorrere a bruttissime e fragilissime (che a questo punto io nemmeno divulgo visto che non ho dovuto implementarle, per non sporcarmi la reputazione come developer, che già è molto bassa visto che prediligo il ). 🔮️

A questo punto era quasi solo questione di rifiniture, un po’ creare il popup per le impostazioni della mia (che però mi ha richiesto diverse ore di design e implementazione fatti in contemporanea, perché volevo farle bene, non buttarci dentro bottoni a cazzo per il gusto di), e un po’ capire come il worker che gestisce e richieste di rete . Solo che qui ho sclerato perché… inizialmente con il codice preso da Chrome for Developers non andava, e pensavo fosse un problema mio, ma invece sembra proprio colpa loro, le loro demo non vanno proprio in (ma non ho testato nemmeno in Chromium)… quindi ho provato quello offerto da MDN, ma anche qui nada, solo che ormai stavo crollando e quindi vado a mimir… stamattina vedo meglio e quest’ultima implementazione in effetti scopro che funziona, ma a me non andava perché, nel modo in cui iniettavo il trasformandolo da oggetto a stringa, una variabile che referenziavo non era accessibile nel contesto di esecuzione effettivo dello script, e quindi l’accesso alla cache falliva, ma io non me ne sono accorta subito perché già gli strumenti di del sono mezzi scassati per questi casi speciali, ma io poi avevo pure un try-catch di mezzo che quindi sopprimeva gli errori alzati dall’interprete… la . 😫️ 😩️

C’è un di mezzo con la pubblicazione di per , quindi praticamente ora il mio è in revisione, ma se tutto va bene dovrebbe prossimamente apparire sulla pagina https://addons.mozilla.org/en-US/firefox/addon/offline-caching/; in ogni caso, chi volesse usarlo da subito (come me sul telefono in primis) può scaricare da qui il file firmato da installare a mano. Edit: un’oretta dopo, l’estensione è approvata! 💖️

https://octospacc.altervista.org/wp-content/uploads/2024/03/img_20240328_1323201462313101815308817-960x1280.jpgBtw, mi serviva un’icona per l’add-on, perché tenere quella generica mi da fastidio (così come per quando creo app Android), e quindi ecco qui, letteralmente scritto a manina con uno stile un po’ buffo. Graphic design is my passion, ma non è roba mia, non son proprio capace. Penso comunque sia meglio di niente, quindi l’ho usata… (quella in basso sul foglio, che è stata la seconda; ho fatto prima quella in alto, ma poi non mi è piaciuta) 😬️https://octospacc.altervista.org/2024/03/28/pwgoduriaaaa/

minioctt, (edited ) to javascript Italian

Raga non ce la posso fare. Ho BUTTATO non so quanti quarti d’ora, forse almeno due, perché pensavo che “sibling” si scrivesse “sibiling”. E questo fatto da solo come può far perdere tutto questo tempo? Semplice: 😊️

  • Star cercando di usare per ottenere i nextElementSibiling e previousElementSibiling di rispettivamente vari elementi di una pagina che si hanno da un ciclo
  • Notando, dopo aver scritto il , che ogni volta questi oggetti sono undefined, anche se non dovrebbero esserlo per come è fatto l’HTML
  • Stranamente, selezionando elementi di partenza a mano con il picker dei DevTools, e poi ottenendo dalla console i nextElementSibling e previousElementSibling, scritti a mano e completati con TAB, in effetti questi non sono nulli
  • Notate la differenza delle parole qui sul mio sito con il font bellino? Vi assicuro che tra editor di testo e console del [ la differenza non la noto affatto]
  • Sprecando incontabili risorse di a tentare di risolvere il con modi sempre più astrusi, pensando che magari fosse qualche dovuto al mio star operando su un documento che è a tutti gli effetti una variante non-standard di HTML con i suoi quirks
  • E alla fine non ricordo cosa mi ha fatto notare che tutti i miei problemi erano per quella singola lettera di troppo, sono stata fulminata dalla banalità della mia mancanza di , odio la lingua e anche quest’altra maledetta che è JS 😭️

l'inglese causa dislessia e il javascript sarà la ragione della mia futura mortehttps://octospacc.altervista.org/2024/03/13/peggio-inglese-o-js/

minioctt, to programming Italian

Mm, comunque, quella mia particolare idea per sviluppare app web di 3 settimane fa (già volate?) alla fine è stata buona, penso (raro avvenimento). A parte che già l’avevo implementata nel codice di #WuppiMini, che quindi aveva iniziato a fungere sia lato client che server da uno stesso file #JS identico, l’altro dì ho separato buona parte di quel codice specifico in una libreria apposita della mia “collezione #SpaccDotWeb. 🫣

Usciranno minuzie da sistemare poi, ma il grosso funziona, nella repo c’è anche un #programma di esempio che la usa per chi vuole fare le mie stesse cose poco ortodosse. Ma comunque la sto già usando per tentare di tirare su una prima versione MVP di quel motore di ricerca bizantino che tanto vorrei avere… non tanto perché credo che possa mai funzionare lato client senza un #server centralizzato, ma più che altro perché non se fai finta che non avrai mai bisogno di riciclare del dato #codice, puntualmente una situazione uscirà e allora si finirà per piangere. 😠

https://octospacc.altervista.org/wp-content/uploads/2024/02/screenshot_20240226-165658_system_ui_1249140357565860738-677x1440.pngChe poi, io il proxy mini per WordPress l’ho creato inizialmente con l’intento di usarlo per pubblicare schermate dei giochi dal 3DS… ma non gioco mai con intento, solo un po’ così nei momenti di poco flusso in cui comunque non starei facendo cose più attive, ma proprio niente. Sono schiava del #JavaScript e ora vivo solo per quello senza trovare piacere nemmeno nei videogiochi, ciò fa assolutamente molto riflettere sugli interessi delle big tech e la cultura della dopamina, attenzione che i poteri forti vi tengono appiccicati ai loro prodotti. 🥹https://octospacc.altervista.org/2024/02/26/spac-web-semper-ovunquer/

#codice #JavaScript #JS #programma #server #SpaccDotWeb #WuppiMini

minioctt, to wordpress Italian

Ben 2 mesi fa (pensavo meno…) avevo detto qualche dettaglio sul del … la metà delle cose rimane ancora valida, ma è uscita fuori qualche nel tempo. 🕤️

  • Avevo notato che tende ad invalidare le sessioni un po’ a caso, quindi puntualmente lo falliva ad esportare il file con cURL. Per un po’ di non ho tentato di risolvere il problema, immaginando che ci dovesse essere un modo migliore dello scraping di farlo, ma allo stesso tempo non riuscendo a pensare a nulla, e ho fatto giusto qualche a mano di routine. ✍️
  • Non mi preoccupavo troppo perché (e ricordavo di averlo detto, ma temo di non averlo mai fatto, non trovo il post) avevo installato il plugin “Writing on GitHub“, che in automatico esporta i nuovi in Markdown nel posto lì dove dice il nome… sembrava perfetto, ma appena 2 settimane (meglio tardi che troppo tardi) fa ho scoperto che non fa il commit di eventuali modifiche apportate ad un post dopo la creazione (nemmeno con il tasto per forzare), che è quantomeno un . 🧨️

Troppo troppo pallose ‘ste cosine qui, ma menomale che proprio oggi mi è venuto lo schiribizzo di tentare di sistemarle, un po’ anche grazie alla minima ulteriore conoscenza tecnica di accumulata in queste lunghe settimane, e quindi ecco i miei aggiustamenti: ⛏️

  • Ho fatto un mio per esporre un endpoint custom che mi da il documento di esportazione, quindi posso usare sempre il curlo o quello che è, ma senza impazzire. Ho pagato ciò con la pazzia ora, però, in quanto nonostante avessi capito subito di dover usare una certa funzione <a href="https://developer.wordpress.org/reference/functions/export_wp/">export_wp()</a>, non mi è stato subito chiaro che io dovessi includere un certo file di libreria per poterla effettivamente chiamare; la documentazione ufficiale a riguardo è scarsa, e di quella terza non ne parliamo proprio. Anche ChatGPT a ‘sto giro è stato fregato dalla realtà del mondo. 😱️
  • Ho invano perso po’ di tempo a ravanare nel di WOGH per capire come mai non prendesse in conto le . Temevo non fosse programmato per farlo, ma in effetti lo è (e, a pensarci un attimo, sarebbe strano altrimenti), quindi è un . Vabbè, dopo troppo sono arrivata alla conclusione che per qualche motivo non salva l’hash dei commit che fa, necessario per crearne di nuovi che modificano file esistenti, ma cercare di sistemarlo per bene è una grossa rogna che non voglio nemmeno iniziare a crearmi. Quindi, dato che la perfettamente istantanea non mi serve, ho banalmente aggiunto la scrittura su file in una cartella dall’URL segreto in wp-content, quindi poi prelevo tutto via FTP. Ahimé duplico lo spazio occupato sul , ma tanto in primis non ho limiti fissi, e comunque è tutto testo quindi poca roba. 👁️‍🗨️️

https://octospacc.altervista.org/2024/02/14/finalmente-backup-veri/

minioctt, to ps1graphics Italian

[⤴️ https://octospacc.altervista.org/2024/02/10/cazate-per-il-c/]

Dopo aver perso altre incalcolabili quantità di tempo oggi, alla fine, finalmente ho finito quel #programma malefico… circa, perché ha un #problema di cui ora non ho proprio manco la voglia di venire a capo: quando prova a convertire #foto che (a quanto pare) sono corrotte, manda in crash tutto il sistema. #Pazienza, questo ed altri brutti dettagli li lascio ai posteri. 😇️

La scelta un po’ bizantina di usare un #server per l’effettiva #conversione delle #immagini si è rivelata vincente (anche perché davvero ero a corto di soluzioni…), e sorprendentemente non è nemmeno troppo lento, impiega in media 1 secondo per file (nonostante il WiFi sulla #console faccia pena, ma al netto dell’avere il server in LAN). Creare lo script PHP è stato facilissimo, ovviamente, non è mica quello che mi ha fatto perdere il pomeriggio sano… è stato il fatto che c’è un #bug, da qualche parte in quella #monnezza di httpc (il servizio per le cose #HTTP) dentro libctru (la libreria per gli #homebrew del 3DS), se non direttamente nello stack di #rete di #HorizonOS, che faceva fallire il trasferimento di dati via #HTTPS verso o da il mio server, nonostante la connessione in sé avvenisse, e con altri server non ci fossero #problemi di alcun tipo. Io ovviamente ho provato tremila cose, e solo alla fine ho tentato di collegarmi senza cifratura, e ho visto tutto funzionare. 😤️

Ora quindi posso catturare #screenshot in qualunque gioco usando il menù Rosalina, poi avviare la mia #applicazione per avere tutto quanto convertito in #JPEG e messo nell’album di sistema in #automatico (non devo premere nulla), quindi tutto visibile dal selettore #media del browser web… e a quel punto posso pubblicare qui sopra direttamente da lì, per qualsiasi titolo. Forse però dovrei espandere il codice #ServerSide, facendogli scrivere le date delle foto nei parametri EXIF, altrimenti il #Nintendo3DS vede tutto come datato 01/01/1900… nulla di grave eh, ma un po’ scomodo per navigare nella galleria. 💀️

Il 3DS che esegue il programma, con lo schermo inferiore che lista i file convertiti.Tutto il #codice, e il binario 3DSX compilato, è su https://gitlab.com/octtspacc/OcttBitsOfFun/-/tree/main/LumaBmp2NinJpg.https://octospacc.altervista.org/2024/02/11/what-c-taketh-away-it-give-back/

#applicazione #automatico #bug #codice #console #conversione #foto #homebrew #HorizonOS #HTTP #HTTPS #immagini #JPEG #media #monnezza #Nintendo3DS #pazienza #problema #problemi #programma #rete #screenshot #server #ServerSide

minioctt, to showerthoughts Italian

[⤴️ https://octospacc.altervista.org/2024/02/10/cazo/]

Hanako Kun e i 7 misteri dell'Accademia Kamome, Capitolo 9, Yashiro chiede ad Hanako alcuni dettagli personali per calcolare la compatibilità astrologica, tra cui la data di morte.Se Yashiro mi chiedesse la mia data di morte, direi che probabilmente è: stasera!!! Perché non funziona niente!!! 🥰Scherzi a parte, credo di aver risolto quella #rogna, avendo scritto #codice abbastanza sensato che pare funzionare, per gestire la struttura #DCIM… ma nel frattempo ho scoperto un altro #problema: quella pseudo-libreria per convertire da BMP a JPG fa le bizze con una buona quantità di file di input (non ho però capito sulla base di cosa…): crasha, e non converte un bel niente. E non credo di trovare altre opzioni… ci sarebbe libjpeg ma non mi è chiaro come dovrei usarla per codificare da dei Bitmap. Quindi R. ☠️

Un’altra mia #idea era trovare il modo di caricare una pagina web arbitraria (realisticamente, il sito che ho fatto ieri) nell’applet di Miiverse, che è a tutti gli effetti un browser web con API speciali, tra cui una per caricare screenshot, come servirebbe a me. (Era per questo che ricordavo male, e pensavo si potesse fare dal browser normale, perché a suo tempo usavo quest’altra cosa). Tuttavia, anche qui, vai a capire come. Se avessi voglia dovrei sperimentare con il self-hostare rverse, e da lì potrei probabilmente giostrarmela, ma non ora. 💤️

Però tipo… chi lo ha detto che devo fare le cose per bene? Se non posso codificare JPEG direttamente sulla #console, allora lo faccio sul mio server Linux; sul #3DS il mio programma può caricargli via Internet le immagini di partenza, e scaricare al posto giusto quelle convertite… c’è già il codice pronto per usare richieste HTTP POST… 😈️

https://octospacc.altervista.org/2024/02/10/cazate-per-il-c/

#3DS #codice #console #DCIM #idea #problema #rogna

minioctt, (edited ) to pokemon Italian

Una apparente #maledizione si è appena abbattuta su di me oggi: non riesco a far funzionare un #programma C!!! 😭️

Il problema è il seguente: il programmino di ieri per pubblicare su WordPress dal #3DS funziona benissimo, ma mi sono ricordata che dal browser del 3DS non si può caricare come #foto la schermata del gioco in pausa, ma solo cose dall’album… e non tutti i giochi permettono di salvare lì. Per salvare #screenshot da qualunque gioco c’è il menù #Rosalina, ma salva foto non-JPEG e in una cartella diversa. 😪️

Ho pensato per un attimo di forkare #LumaCFW (ho controllato e nessuno lo ha fatto, almeno non per versioni recenti), e modificare la funzione di screenshot per salvare in #JPEG, ma dopo qualche prova mi sa che evito, perché è un casino: l’ambiente di esecuzione è talmente ristretto che non vanno nemmeno tutte le funzioni della #stdlib #C, quindi non è immediato far funzionare tutto. 😮‍💨️

La seconda opzione, più sfavorevole ma comunque decente, sarebbe un #homebrew che converte le foto da #BMP a #JPG e le mette nella cartella giusta… e ovviamente non esiste, esistono cose simili ma non questo, quindi devo farlo io. Ho trovato questa repo da cui posso semplicemente rubare il #codice di #conversione, che sul 3DS compila e quindi dovrebbe tranquillamente fungere. E però mi sto incartando su tutto il resto, cioè la navigazione tra le cartelle e la gestione dei #file (automatica, non pianifico di mettere menù o cose, deve semplicemente aprirsi, convertire, e chiudersi). #Mannaggia! 🤢️

Purtroppo C per fare cose di #utilità pratica (ossia non videogiochini, o roba tipo demo audiovisive, e così via) è #tedioso… soprattutto perché la #API della stdlib fa proprio schifo, con tutti i nomi di funzioni e tipi scritti tutti in minuscolo e spesso senza vocali perché a qualcuno pesava il culo di scrivere parole intere. E quindi finisci per creare millemila macro e funzioni intermedie di astrazioni per evitare di ripetere di continuo le stesse criptiche righe ma così vai a creare astrazioni ancora più astruse per passare i dati in giro e così via. Mi chiedo come sia possibile usarlo per fare addirittura interi sistemi operativi, #pezzi. Vabbè, oggi si soffre. 💀️

https://octospacc.altervista.org/2024/02/10/cazo/

#3DS #API #BMP #C #codice #conversione #file #foto #homebrew #JPEG #JPG #LumaCFW #maledizione #Mannaggia #pezzi #programma #Rosalina #screenshot #stdlib #tedioso

minioctt, (edited ) to Software Italian

La dualità del fixare (o, in generale, far funzionare il ?):

  • Perdi almeno 1 ora buona appresso ad un oscurissimo (spoiler: la codifica del testo centra sempre in tutti questi bug, in realtà estremamente stupidi), facendo svariati test e tentando varie opzioni prima sensate, e poi senza senso perché altrimenti non sai nemmeno come continuare. 🤥️
  • Nel frattempo si è fatto in culo, ti prepari per andare a e nel frattempo pensi, ma niente… a metà spegni ormai il PC, finisci di prepararti, e continui a , e solo a quel punto un’idea ovvia viene in testa. Troppo tardi ormai. 💀️

E poi ancora, perché le non sono mai abbastanza:

  • Giustamente nel letto ti irrequieti e non prendi , perché il cervello non prende pace senza vedere il finalmente risolto dopo tutta la passata, anche scommettendo che l’ appena venuta è giusta al 100%. 🥴
  • Però prima o poi il sonno lo prendi, e dopo ore arriva la dopo, in cui la sveglia suona e… pensi “zzzzzzz voglio stare nel lettino ancora, tanto la in mente l’ho risolta, chi me lo fa fare di ammazzarmi a prima mattina [prima mattina: le 9:30, ndr.]”. 🥹

Insomma, è una . Non se ne esce. Comunque si, il mio era : stavo cercando di caricare nella galleria cloud di tramite la REST, ma ricevevo sempre un rest_upload_sideload_error… controllo gli header, tutti giusti; cerco in giro, poca roba che non mi aiuta; provo come mettere gli header lowercase, ancora niente; tento di settare a mano content-type parziali o estensioni file arbitrarie, e ovviamente non risolvo. 🤯️

Però, noto che un caricamento da curl, anziché dal mio JS, va a buon fine. Allora, provo a caricare verso un server netcat in entrambi i modi, così da poter vedere al volo i dati della trasmissione , e noto una differenza stronzetta: il corpo generato dal mio è molto più grosso del peso normale del file… quindi qualcosa lo sta corrompendo E qui, però, mi sono ribloccata. 🤔️

Solo poi, quando ormai avevo chiuso tutto come ho detto, ci ho pensato: ma io, nella parte del che legge i trasmessi dal client, vado a castare tutto ad una stringa; sarà questa la causa? …E, ricordandomi di altri simili capitati in , capisco subito che è così. Detto in breve: la del testo centra sempre e rovina ogni cosa. Se esistesse solo l’ASCII, ecco che castare dati binari a stringhe non causerebbe alcun danno. E invece abbiamo deciso che i devono supportare nella loro codifica migliaia di discutibili, come tutti quelli emoji. E io, dopo aver apportato questo , devo ora continuare a programmare. Non. Se. Ne. Esce. 😭️

https://octospacc.altervista.org/2024/02/09/insetti-utf-nel-mio-codice/

minioctt, to wordpress Italian

Fino ad ora ho apportato vari piccoli al del con vari metodi, nessuno che includa anche il creare veri . Troppa sbatta perché si devono imparare tutte le API, ecc… Però, che posso fare quando sembra proprio che l’unica soluzione elegante per estendere le funzionalità di sia quella? 😫

Quindi, ieri sera, non avendo molto tempo da perdere, ho provato a chiedere a . E, con mia sorpresa, non solo non ha allucinato creando rotto, ma addirittura sembra aver studiato ciò che io non ho fatto, e si è curato di fare le robe per bene, addirittura usando le funzioni sicure per scongiurare problemi come le injection! Alla fine gli ho fatto esporre uno , da aggiungere su normali pagine, che visualizza l’HTML generato dal . È stato proprio carino questa volta, poi guardate come l’ho ringraziato alla fine… https://chat.openai.com/share/9072c3ea-f3f5-42bb-88ae-03efa795a66f. ❤️‍🔥

Al netto di qualche errore di interpretazione suo, che mi ha portato a dover fare piccole modifiche, ho già messo a frutto lo , attivandolo su una nuova pagina: Ricerca 🔍️. Essenzialmente quello che mi serviva era una dei post di tot caratteri o meno (che per <= 500 ho chiamato Tootin’, riferendomi a chissà cosa)… e lo so che per ora è subottimale, ma è un inizio, poi magari la migliorerò. 😁

https://octospacc.altervista.org/2024/02/08/wp-gpt/

minioctt, to web Italian

Colpo di estremamente radicale per risolvere un annoso : il creare una data , che non abbia bisogno di grande interattibilità (vedi un social network, o un CMS), senza dover mantenere 2 separate e quindi impazzire, facendola funzionare sia con un che totalmente senza… ossia, come unire in una sintesi circa accettabile i due maggiori paradigmi del ? 🤔️

  • Quello antico, delle prime , dove il server genera tutto l’HTML e il browser lo visualizza com’è, spesso con (quasi) zero (vedi la Spacc BBS). 📦️
  • Quello moderno, dove nel si espongono API (spesso JSON REST), e il fronte viene sviluppato a parte come app che gira totalmente lato , con il che richiede pezzetti di dati e fa i suoi iperprocessamenti. 💱️

Ormai quello antico non si usa quasi mai per nuovi, perché gli svantaggi sono pesanti appena si vuole andare un po’ più in là: per tappare i buchi nel progetto medio si finirebbe a dover scrivere talmente tanto , che a questo punto era meglio fare tutto nel secondo modo, senza menzionare i modelli e le da esporre nel server che altrimenti non si sarebbero implementati. Però, le webapp antiche girano bene anche sul computer tascabile meno performante (average Ximi), sui browser vecchi, e spesso sono le uniche che vanno quando tutto il resto ti lascia a piedi. D’altro canto però, anche se in teoria quella potrebbe funzionare , magari mostrando dati cachabili, se è sviluppata in modo attaccato al server ecco allora che non si può fare nulla: muore il server, muore tutto. 💣️

Quindi la mia paxxerella, dato che devo fare banalmente una come frontend per un altro servizio già esistente, ma voglio i vantaggi appena millantati: sviluppare con i paradigmi in un framework JS adatto, che giri sia in Node che nel browser. A quanto pare, qualcuno ci ha pensato prima, e qualcosa di già fatto ho trovato (Express+FrontExpress, Koa+Koa-Client, Rill)… ma è tutta roba ormai abbandonata, che o non funziona (ho provato) o ha altre . Te pareva che trovavo mai qualcosa di buono già pronto… Però, in un quarto d’ora ho tirato su uno scheletrino, giusto per poter partire per questa via. ☠️

Rapido : questo (giusto da , non fa nulla se non mostrare questo testo e far navigare tra pagine) gira sia come server su , che come script in una pagina totalmente , e l’esperienza non cambia. Percepisco il potenziale, continuerò così. 😤️https://octospacc.altervista.org/2024/02/07/frontendare-lato-client-come-fossimo-nel-backend/

simplescreenrecorder-2024-02-07_17.05.35

minioctt, to web Italian

Non so cosa è peggio: che non riesco a trovare in giro grafici decenti di per l’editoria , che crearle con roba come , , Markdown, ecc è oltre il sopportabile (non si vede a colpo d’occhio che intersezione di riga e colonna si sta modificando), o che si dimostra anche questa volta un in cui perdersi a con tutte quelle funzioni integrate, anche per le tabelle. Ho creato ora, per questa che sto costruendo, una che integra la modifica dei direttamente nella versione renderizzata, così non devo usare scomodi linguaggi di marcatura. …e funziona, ma solo ora mi rendo conto di dover trovare un modo di aggiungere righe e colonne in mezzo a quelle esistenti, e con la struttura dati che questa roba in automatico costruisce, fidatevi, non sarà facile. Ci impazzirò temo. L’ennesima mia . 💀️

Codice e anteprima della tabella specialeComunque, a dire il vero una piccola app l’ho trovata cercando: https://www.htmltables.io/. Fa modificare una tabella tramite anteprima (scarna ma adeguata), ma permette di copiare ed incollare (o modificare direttamente, ma a me non serve) il HTML (anche lì, unico modo per spostare righe e colonne, non va dalla )… solo che, quest’ultimo passaggio è macchinoso, almeno a lungo termine, perché mi troverei a fare avanti e indietro tra modificare i dati e salvarli dove mi servono, quindi… ecco giustificato il trovare una nativa alla mia . (Ci sarebbero poi i programmi di fogli di calcolo, ma ecco… non mi servono tutte le loro funzioni, devo solo disporre testo, quindi usare quella roba significherebbe bloat e sofferenza, tra UI disfunzionali su mobile e app in generale laggose.) 🤥️

https://octospacc.altervista.org/2024/02/04/1461/

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • everett
  • rosin
  • Youngstown
  • ngwrru68w68
  • khanakhh
  • slotface
  • InstantRegret
  • mdbf
  • GTA5RPClips
  • kavyap
  • thenastyranch
  • DreamBathrooms
  • magazineikmin
  • anitta
  • tacticalgear
  • tester
  • Durango
  • cubers
  • ethstaker
  • cisconetworking
  • modclub
  • osvaldo12
  • Leos
  • normalnudes
  • megavids
  • provamag3
  • lostlight
  • All magazines