home.social

#pazienza — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pazienza, aggregated by home.social.

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

    • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina #HTML con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
    • 🅱️ Quel #metodo 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 #browser, e guardare le richieste di #rete 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 #HAR 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 #navigatore per questa cosa. 🥴
        • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli #strumenti 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 #JavaScript 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 #risorse 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 #richieste di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio #server, anziché al dominio originale (attivando la colonna omonima della tabella nei #DevTools 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 #modifiche 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 #script, 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 #codice. Poi, si testa ancora, e ancora si applicano #fix, finché tutto non funziona. ♻️
      • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla #SalaMuseoGames 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 #app React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il #software 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 #ostacoli, 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 #problemi 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 #rehosting (come il giochino dell’altro ieri) ecc… con #pazienza 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’ #applicazione, ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

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

    #app #applicazione #archiviare #browser #clonare #codice #DevTools #esperienza #fix #HAR #HTML #JavaScript #metodo #modifiche #navigatore #ostacoli #pazienza #problemi #problemino #rehosting #rete #richieste #risorse #SalaMuseoGames #script #server #software #strumenti #webapp

  2. #Android è letteralmente un #incubo appena tenti di fare qualcosa di un attimo #particolare 😭️

    Ricordate la mia idea di riciclare il vecchio #Huawei come #touchpad? Alla fine, #KDEConnect in questo modo funziona molto bene, ma mi secca che sia totalmente vuoto se c’è un #display #LCD da sfruttare, e vorrei approfittare per usare questo #smartphone per mostrare #animazioni carine, magari un orologio, ecc… E, per maggiore #flessibilità, vorrei semplicemente avere una pagina #web sullo #schermo. Però, ovviamente, nel frattempo l’area di #tocco del #mouse deve poter ricevere i miei input. E quindi? 😶️

    • Ho provato in una decina di modi ad aggiungere un WebView al layout dell’app, con caratteristiche e mezzi diversi, ma non c’è verso di far si che questo sia visibile a tutto schermo, ma allo stesso tempo non si prenda lui tutti gli input… ho provato non so quanti consigli dai forum, tempo buttato. 🙄️
    • Ho tentato facendo ereditare il componente KeyListenerView dalla classe WebView anziché View, ma questo ne rompe il funzionamento e gli #input se li prende tutti la pagina web aperta. 🥲️
    • Ho cercato su Neo Store (F-Droid + repo terze) e Google Play #applicazioni che facessero da #browser web fluttuante, ma nessuna di quelle che ho provato permetteva di rendere il #popup “trasparente” ai #tocchi. 😮‍💨️
    • Ho cercato su #Internet per esempi di #codice di app fluttuanti, ma tutti sono un #casino da implementare ora così in una app nuova da zero (o meglio, non ci sono tutorial buonissimi), e ho buttato tempo e speranze appresso a un sacco di app esempio già pronte — o applicazioni #OpenSource con altri scopi che potessi #riadattare — che non ne vogliono sapere di compilarsi. 😤️

    Ovviamente, se gli strumenti funzionassero davvero, e fosse solo la #piattaforma in sé ad essere antipatica, non avrei perso tutto questo tempo. Invece no, appresso ad #AndroidStudio, Gradle, Java, le dipendenze di #build troppo vecchie perché la app è abbandonata, e se provi a sistemare fai solo danni, e quando la #app finalmente si compila devi aspettare un minuto buono ogni volta che fai un cambiamento e vuoi inviarlo al #dispositivo o emulatore… è una #schifezza. 😩️

    …Tuttavia, la #pazienza è la #virtù di chi sa bramare il #superfluo in modo realistico, e dunque, alla fine, ho trovato una #demo che riuscissi a #compilare (https://github.com/mjlong123123/TestFloaWindow), infilarci dentro una #WebView, e vedere il tutto #magicamente funzionare come volevo. Che assoluta #goduria, guardate il #video sotto. Ora farò giusto qualche #aggiustamento minimo necessario al mio #UseCase, e poi avrò finito. Non farò una vera e propria #applicazione, non ho voglia, ma comunque caricherò i miei #sorgenti modificati (e l’APK pronto che legge un file #HTML da archiviazione locale) qui: https://gitlab.com/octtspacc/OcttBitsOfFun/-/tree/main/AndroidFloatingWebView (i #file appariranno quando avrò fatto). 💣️

    Il #programma ora visualizza la pagina di errore di Android, perché il file che dovrà caricare non esiste ancora, e le dimensioni della #finestra dovranno essere sistemate. Quello che è importante è che in sé #funziona. 😁️

    https://octospacc.altervista.org/2024/01/17/overlay-webview-su-android-a-scopi-ricreativi/

    #aggiustamento #Android #AndroidStudio #animazioni #app #applicazione #applicazioni #browser #build #casino #codice #compilare #demo #display #dispositivo #file #finestra #funziona #Goduria #HTML #Huawei #incubo #input #Internet #KDEConnect #LCD #magicamente #mouse #OpenSource #particolare #pazienza #piattaforma #popup #programma #riadattare #schermo #schifezza #smartphone #sorgenti #superfluo #telefono #tocchi #tocco #touchpad #UseCase #video #web #WebView