Vai al contenuto

Appunti

octTSeries

Non l'ho messo nel post di ieri perché sarebbe venuto un papirone e comunque interessa solo ai wordpressisti, non anche a chi usa altri sistemi, però.... questo è quello che ho dovuto fare per sistemare le #serie, lo scrivo anche per reference. Mezzo casino, ma in genere coi plugin è sempre così, sono tutti diversi... invece, le categorie sono una funzionalità di #WordPress, quindi tutto si integra in automatico. 👌

  • Quasi 5 minuti spesi a orientarmi tra i menu di PublishPress Series... e ancora adesso non riesco a capire non solo perché ci siano due pagine di gestione "Serie" e "Gestione delle serie" sotto il menu Articoli che potevano essere benissimo una (la seconda è virtualmente una copia della prima, eccetto che manca il form per creare una serie), ma poi neanche perché ci sia un menu Serie separato che ospita solo la pagina Impostazioni (e allora c̛̄a̬r̷͜i̲ss̞i͈͝m̜i͚̒, o evitate il menu Articoli e mettete tutto tutto sotto il vostro, o̔̋͆p̠̫͔̆̓p̶̡̛̙̭̑ͬ̄ͮ͌͜ű͇̪̅ͭ̋r͇̙̼̙͇̥ͦͮͯ̍ͬé̛̞ͨͨ̒̍̑ͅ n̹o͇ͅṋ̶͠ m̴̤̭̾̇ͧͅe̹͈͙͌̄t͎̼͉͕̬̔̇ͤt̡̳̐ē̴̝̦̱ͪ̈́̋ͭ͘t̛̙̩̪̤̄͆̍͌e̞̟̲̥ u̸̬̣̘̹ͤ̏ͩͭn̫̼͔̟ͤ̈́̓͊͜͜͞ a͍̜͊̇ͬl̫̤͊t̵ró̶̩͌ m̡̺̩̳͔̰̬͆̉e̦n͎ͣ̀͛ṵ̡̲̻̳͉̾̚͜ͅ e il singolo tasto per le impostazioni lo mettete... beh, sotto la voce Impostazioni del CMS)... 🤧
  • Aggiungendo #post ad una serie, in automatico in cima alla pagina di ognuno di loro viene aggiunto un riquadro che indica di quale fa parte ciò che si sta leggendo, con link sia che rimandano alla pagina della serie, sia agli altri articoli, e puntata precedente e successiva in fondo alla pagina.
    • One small issue: gli articoli senza titolo non prendevano spazio nel riquadro, essendo sia invisibili che incliccabili. E, seppur il #plugin abbia una sezione di templating per personalizzare l'HTML generato, non c'è modo di far apparire il collegamento al post preso singolarmente. Per fortuna, me la sono cavata senza modificare il codice, con una hack accettabile: CSS custom per scrivere del content nella parte :after dei link sfigati. 🤯
  • Il box comunque usciva in troppe (2) pagine dove proprio non dovrebbe, nell'anteprima degli #articoli fuori dalla loro effettiva visualizzazione, rubando spazio a schermo e (credo) causando confusione. Anche qui, in realtà, l'unica opzione non rognosa è il CSS, e per fortuna con tutta la munnizza che viene scritta nel corpo di un'intera pagina dal server è facilissimo costruire dei selettori che agiscano solo nei contesti che mi interessano.
  • La pagina di ogni serie usava di default il template di #tassonomia del sito, che sarebbe ok... se solo mostrasse la descrizione. Quindi ho dovuto attivare il template lista del plugin, che invece lo fa, ma ecco altre rogne con questo... e inizialmente credevo di potermela risolvere senza modificare il #template PHP, ma alla fine ho dovuto. Per fortuna, anche se ci ho messo 3 minuti tosti a capirlo dalla documentazione fatta malino, mi è bastato creare una copia del file nella cartella root del mio tema, e modificare quella. 🔥️
    • Prima, la completa assenza della sidebar del #sito, quindi anche del link per tornare alla home o del menu di navigazione... ho dovuto modificare il sorgente. Chiamando wp_nav_menu() faccio comparire almeno la navigazione, ma il link normale l'ho messo a parte.
    • Poi, di nuovo il problema dei collegamenti senza titolo, e anche in questo caso il CSS sarebbe stato sufficiente, ma, visto che ormai c'ero già, ne ho approfittato e modificato proprio l'HTML...
  • E in tutto questo, la pagina indice delle serie usa in ogni caso il suo template e per ora quindi non c'è neanche un rimando alla home. Forse posso modificare il template senza rompere gli aggiornamenti usando lo stesso metodo dell'altro, però penso non mi sbatterò nemmeno, perché lì onestamente il link è superfluo.
    • Btw, il suo permalink default è /series-toc/, e io l'ho cambiato in /series/ perché è più logico considerando che le serie (sempre di default) stanno sotto /series/<la-serie-qualunque>/... ma ora che ci ripenso, ho scartato l'occasione per cambiare il percorso di tutto in /t-series/ in memoria di un meme che non fa più ridere... dovrei per caso rimediare solo per il funny, o lasciare così? 🕷

Aggiungere gli articoli vecchi alle serie però, e soprattutto alle categorie, come accennavo, è si semplice, ma non facile... è il lavoro cinese di aprire la dashboard con la lista di tutte le centinaia di post, e scorrere, a volte cercando cose che già ho in mente e altre seguendo il flusso, vedendo se qualcosa attira la mia attenzione. A quel punto a volte mi basta guardare l'anteprima, altre però è troppo corta e devo aprire decine di nuove schede per rendermi conto se il contenuto è quello che penso, per capire cosa selezionare. Almeno, unica cosa buona, selezionando gli elementi su questa schermata posso aggiungerli in blocco al gruppo che mi interessa, altrimenti non immagino la sofferenza di andare uno ad uno... 🙏 (questa cosa btw non è inclusa nemmeno in molti #software di note più personali, stavolta Worpres vince)

android come il 95

Ne approfitto e segnalo una #soluzione kinda buggata, ma efficace, che ho usato per far girare sullo #smartphone un giochino fatto con #RPGMaker95 (la morte, non sono riuscita a farlo partire manco su Windows 10 reale). 🤯

Il gioco è questo "LIBERTY WINGS" qui... al momento mi sono incastrata in una sezione puzzle, ma essendo fatto per una jam non dovrebbe essere lungo da finire. Magari poi faccio una semirecensione, idrk. Il punto è che serve minimo Windows 98 per farlo girare (ho provato 2 diverse versioni di Windows 95 e non c'è stato verso, diceva che mancava roba nel kernel or smth, stranamente). 😶

  • Su Wine per Linux ci gira, ma non volevo giocare a un #RPG ingoblinita sul PC, quindi era priorità farlo andare su #mobile. 🤖
  • Inizialmente avevo quindi provato Winulator ma, vai a capire perché, il gioco non voleva partire. E niente, userà un Vino marcio sotto la scocca, anziché quello bono. 🍷
  • Poi, avendo appurato che gira in DOSBox-X su PC, volevo usare questa soluzione anche su mobile... tuttavia, sui porting #Android di #DOSBox (ne ho provati ben 2) non c'è stato verso di montare alcuna immagine del disco C:, e Windows non può avviarsi montando una cartella normale anziché una IMG. ⛓️
  • Stavo per arrendermi a usare emulatori x86 completi, ma, tra Bochs dove non funzionava la barra degli strumenti e non riuscivo nemmeno ad aprire la tastiera virtuale, e Limbo dove le immagini che ho trovato già pronte (col cavolo che avrei rifatto io l'installazione e perso ore) non avevano nemmeno l'audio funzionante, stavo perdendo anche la #pazienza. 🧻

Alla fine, mentre guardavo un altro video per Limbo per scaricare un'altra immagine disco magari più fortunata, vedo nei video YouTube correlati uno in cinese, che attira la mia attenzione con il suo titolo dove, non capendo la lingua, le parole chiave risaltano essendo nomi propri: "RetroArch with DOSBox-Pure 執行 Windows 98《下載 & 教學》for Android". 🧐

Per far funzionare il sistema e poi il #videogioco, ho banalmente seguito i passaggi:

  • 3️⃣ Avviato l' #emulatore e aperto la configurazione del core, aumentando la RAM il giusto, impostando la CPU ad un Pentium, e, diversamente dal video, ho poi impostato la modalità di #emulazione a "normal (interpreted)", perché ho poi visto che sia il sistema operativo, sia il #videogame avviato, sono altrimenti estremamente instabili.
  • 4️⃣ Rinominato l'archivio ZIP del #gioco su memoria interna in DOSZ, riavviato il core avviando poi quell'archivio come content, che viene quindi montato come disco D:, ho semplicemente avviato il #GDR e ho goduto. 😇

La pazzia mi porta a far girare software in modi totalmente imprevisti dagli stessi sviluppatori. 🎃

Noto che ci sono alcuni rallentamenti, ma non so se sia colpa del motore di gioco in sé, oppure dell'emulazione di alto livello. Ad esempio, quando ci sono più oggetti a schermo percepisco che lo scrolling diventa più scattoso, ma tutto sommato si gioca perfettamente. La musica si sente bene, anche se impiega diversi secondi a partire quando cambia lo scenario, e il gamepad virtuale è certamente meglio di una rottissima tastiera virtuale! 🕷️

Consiglierei comunque di salvare le partite frequentemente usando questa soluzione, perché non si sa mai che può succedere... oltre al fatto che, direi di provare questo #gioco in modo specifico, fino ad ora è sembrato carino (non dico altro). ✨

webaps heist

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](../../../2024/04/02/geometrico-nel-brauser.md)) 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à. 🚯