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, (edited ) to gaming Italian

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

Ieri ho effettivamente provato un po’ il Switch dal 3DS in portatilità, alla fine, e… che dire. 7/10. Certo, ogni tanto la connessione fa scherzetti e il gioco inizia a freezare per un po’, ma nel complesso si gioca con un lag accettabile e un video senza strani artefatti, veramente apprezzabile. Devo però capire perché in certi rari momenti il client crasha completamente invece di riuscire a ristabilire la connessione, e temo anche la batteria del 3DS si appiattisca troppo velocemente con questa … ma vabbè, a sistema consolidato potrei anche usare il telefono. 🐚

Visto che voglio provare meglio il setup, mi sono portata avanti e ho fatto un programmino per che legge direttamente gli input del gamepad virtuale e li invia alla ; quindi, eliminando quegli altri due programmi necessari, sostituendoli con uno solo. La finestra inoltre visualizza il video da dispositivi di cattura standard, e quando lo implementerò riprodurrà anche audio, quindi sostituirà anche il riproduttore multimediale… per ora non ho ancora la scheda di cattura HDMI, quindi devo ancora usare SysDVR, ma almeno mi mostra il video della webcam (che mi serve per navigare nei menu di sistema, il DVR non lo trasmette), quindi già scendo da 4 app e finestre a solo 2. ✨️

https://octospacc.altervista.org/wp-content/uploads/2024/05/image-1.pngImplementare la lettura degli input del controller, e l’invio al demone sys-botbase tramite socket TCP, è stato un po’ intricato, ma alla fine il codice è venuto pulito, i tasti rimappabili tramite file config, e sorprendentemente sembra tutto ben funzionante dal primo momento… Nel senso, i comandi sembrano rispondere bene senza particolari accorgimenti; anzi, anche meglio di NXController, perché io invio direttamente i valori degli stick analogici alla console, mentre lui deve leggere valori rimappati alla tastiera e quindi tutti digitali. In effetti non ci avevo pensato quando mi era venuta questa , ma effettivamente ho migliorato la mia anche in questo modo, ora ho input più precisi. 🤏️Volevo inizialmente usare Ren’Py, ma ho subito scoperto che non include funzioni per accedere ai dispositivi video, né tantomeno ha la classe camera nella sua implementazione di , quindi… ho usato semplicemente Pygame, e in poche righe di codice funziona già tanta roba, anche se la UI non è delle migliori. Dovrò investigare se davvero non ci sarebbe stato verso di usare l’altro engine oppure si, perché potrebbe tornare utile in futuro. Ancora versione molto WIP, diversi bug da sistemare, ma almeno l’ho già caricata … poi creerò anche dei pacchetti standalone (che includono già e le librerie) per Windows e Linux. L’ho chiamato comunque, meglio evitare qualunque pretesto di violazione del trademark di per il nome … 🚨️

Ma, ovviamente, non era un mio secondario se non saltava fuori un inaspettato mentre programmavo e testavo… il codice che controlla la versione dell’OS di pygame.camera è rotto su Windows Server, e quindi l’inizializzazione fallisce… evviva. L’ho identificato e sistemato subito, ho anche inviato la PR , quindi non è stato un vero problema, però… che cazzo, non è possibile che tutto quello che finisce in mano a me si rompe… trovare bug in librerie così utilizzate e famose senza fare nulla di particolare non è roba da tutti, eppure ormai siamo ad uno a settimana, e chissà cosa mi riserva il futuro. 💣️

https://octospacc.altervista.org/2024/05/04/framionx/

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, to TikTok Italian

Eccovi una cosa : su invito altrui e promessa che, con una , avrei ricevuto 3 euro di buono Amazon semplicemente aprendo la app ogni giorno, avevo installato e fatto la registrazione, qualche giorno fa. Le premesse, essendo queste, erano buone, non era detto da nessuna parte che avrei dovuto effettivamente usare la e bruciarmi il cervello, per cui, l’ho fatto… Solo che ricevevo un errore ogni volta che provavo ad inserire il codice di , e ci ho provato per svariati , finché ieri il campo per farlo è direttamente scomparso del tutto, presumibilmente perché è passato troppo tempo, e la promozione, valida solo per i nuovi utenti, mi è quindi scaduta. 1 minuto al giorno truffato (non di più, perché i video non li guardavo, lmao, poveri stronzi se pensano che butto il mio tempo così), un pochettino mi rode. 😐️

Ma avevo nel frattempo notato che, non so da quando (sto sulla versione 33.9.4, credo la penultima), hanno finalmente aggiunto un maledetto tasto per salvare in locale i creati dalla in-app, senza prima caricarli sul social, quindi ora ‘sta roba è almeno un po’ più utile. Quindi, anche se ho fatto logout, non ho disinstallato subito la , ma ho voluto perdere un po’ di tempo a cercare se ci fosse un qualche modo per aprire direttamente la , senza passare per la schermata principale, che richiede login con annessa accettazione dei termini legali. Ricordo che un tempo c’era una voce nel menu popup del launcher di Android per farlo, ma ora non mi appare, quindi la prima cosa che mi è venuta in mente è stata di cercare tra le activity dell’app una che facesse al caso mio… Spoiler: l’ho trovata, ma non serviva; è disponibile direttamente un “TikTok ”, che io non avevo visto subito, ops. Ci sono poi altri widget ed activity che, se non al feed principale, riescono quantomeno a far arrivare alla ricerca, e quindi permettono di navigare la in via anonima ma diretta. (Più altre interessanti, dovrei fare un post a parte?) 🪄️

https://octospacc.altervista.org/wp-content/uploads/2024/03/image-15.pngIl punto è, tra widget di quel tipo ed activity utili, con questi piccoli si riesce ad usare una buona parte delle funzioni non strettamente di TikTok senza effettivamente accettare né termini di servizio né politica sulla privacy, e quindi senza legalmente cedere la propria anima a nessuno. Fatene buon uso, suppongo, questa roba è grossa: non hanno il diritto di rubarvi alcun dato in questo stato, e se lo fanno lo stesso allora potete portarli in tribunale, perché voi non avete letto alcun messaggio riguardo i termini né cliccato nessun tasto per accettarli tacitamente o meno… insomma, ci si può divertire con la loro camera senza classiche preoccupazioni, oppure ancora fare ricerche e guardare contenuti senza affidarsi a frontend terzi che ogni tanto si rompono. 😈️https://octospacc.altervista.org/2024/03/24/3-euro-truffati-ma-tanta-goduria-guadagnata/

minioctt, (edited ) to ps1graphics Italian

Parlando di non morti, forse saprete che ne esistono tipo solo 2 che emulano il (oltre alla versione base del ), e è quello che funziona meglio. 💫️

Mi sta essendo utile l’ per controllare cose e catturare schermate sulla senza dover per forza usare la reale, per quell’articolo che sto finendo*. Però, per quello non mi serve davvero scattare foto, e quindi mi è stata comoda la funzione per impostare come flusso della camera immagini salvate sul PC (Config > Camera Settings > Image file), che avevo generato al volo con Bing AI per averne della tipologia che mi serviva e con un’aspetto un po’ stock, dimostrative appunto. 🎁️

Però, questo supporta le fotocamere reali dalla versione 0.9.5, e oggi ho scoperto che il suo per fa lo stesso da non so quanto tempo! Per lo , ho provato sul mio in tutti i modi, ma purtroppo va in (ho creato la issue a riguardo); invece, sul mio funziona da dio, sia obiettivo interno che esterno, e con la giusta rotazione. 👇️

Screenshot di melonDS-android sul tablet che esegue la camera DSi, che punta alla mia scrivania con la tastiera e il n3DSXL.https://t.me/Nlhlehde/178364Io ho ben 2 3DS, quindi a poco mi serve questa cosa; soprattutto dato che usare i sensori ottici di uno moderno fa venire le foto troppo bene, e senza quell’aspetto retro che a me serve… però idk, se volete usare a tutti i costi le funzioni fighe della , e non avete l’hardware reale, allora questa è una bella :

  1. Installate , preferibilmente la nightly
  2. Preparate il DSi (che vi consiglio di scaricare da qui, è il dump che uso io e confermo che funziona) da dare all’emulatore, creando due cartelle separate per i file DS e , e rinominando i file in modo preciso, altrimenti la si lamenta:
    • biosdsi7.bin => dsi/bios7.bin
    • biosdsi9.bin => dsi/bios9.bin
    • biosnds7.bin => nds/bios7.bin
    • biosnds9.bin => nds/bios9.bin
    • dsfirmware.bin => nds/firmware.bin
    • dsifirmware.bin => dsi/firmware.bin
    • dsinand.bin => dsi/nand.bin
  3. Fate “Boot firmware > DSi”, da lì si può avviare la magica fotografica, date il permesso quando richiesto, e se tutto va bene potete godere. ❤️‍🔥️

*(Sto facendo progressi per l’articolone, ma troppo lentamente, nonostante io abbia scritto ben settemila parole vedo che mi mancano ancora troppe cose… la mente è pazza, questa situazione è assurda. 😵‍💫️)

https://octospacc.altervista.org/2024/03/05/melodsi-camera-mobile/

WebAppsMagazine, to opensource Italian
@WebAppsMagazine@mastodon.uno avatar
minioctt, to Software Italian

Sto andando probabilmente un pochino a rilento, considerando che ho iniziato la sera di 3 giorni fa e nonostante ciò sono ancora appena a quattromila , ma almeno sto effettivamente andando avanti con questo primo grosso dopo mesi di meh, che come ho detto sto facendo un po’ per coprire un buco di informazioni, un po’ perché mi serve qualche attiva complessa ma che non mi bruci il cervello quanto la programmazione (che rimane buona, ma il dover sempre risolvere problemi è deleterio per la salute, non si può fare solo quello), e perché sentivo di avere un po’ perso un’ che non voglio buttare via. E, se la mia lista di punti ancora da affrontare è ancora tanto estesa nonostante io abbia già scritto così tanto, mi sa che il tutto verrà molto molto … 🧵️

Penso che la sia dovuta al tipo di che sto scrivendo: volendo estrarre e i più e specifici della in questo caso, devo passare di continuo dalla scrittura alla verifica e ricerca con il mezzo pratico (l’applicativo ), proprio perché sembra nessuno abbia scritto tutte le cose che io sto dicendo… quindi non ho la possibilità di rielaborare trasformandole in conoscenza e poi in nuove informazioni, ma devo per forza ottenere dai sensi e trasformarla in nuove informazioni poco alla volta… ed è quindi impossibile entrare nel , se non per le parti di cenni storici e note personali, perché per tutto il resto devo stare lì col ditino sui menu della fotocamera a cliccare, , , e di cose estremamente insospettabili. Sembra , ma ho già sintetizzato tantissimi dettagli, di cui molti veramente nascosti in piena vista e che non mi aspettavo affatto, e chissà cosa continuerò a beccare. Non faccio spoiler (in realtà si, ma su spacctorium), ma penso che programmare questa , per quelli di , sarà stato molto più complesso di quello che a colpo d’occhio sembra… 👹️

https://octospacc.altervista.org/2024/03/02/lentamente-la-pazzia-dsi/

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 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, (edited ) to AdobePhotoshop Italian

[⤴️ https://octospacc.altervista.org/2024/01/16/spaghetti-a-breve-termine/]

Non sono passati nemmeno 10 giorni da quando avevo detto “aaa è improbabile che aggiornerò ancora , dovrei provare a far iniziare a funzionare il progetto definitivo migliore…” 🥴️

Però poi mi sono resa conto che: magari del alternativo non è semplice progettare tutta l’interfaccia e il suo funzionamento (cosa che va fatta, essendo una cosa da da zero), ma certamente non si posso comunque granché se prima non preparo dei logici che so già che mi dovranno servire… e allora, tanto vale iniziare a lavorare per quelli, integrandoli nella che (per quanto ) è già esistente e funzionante, e acchiappare un bel 2 in 1 (espandere quel , e nel mentre accumulare codice che mi servirà per quel molto altro più tardi). 📦️

La prima cosa un po’ intricata che serve è il supporto all’ingestione di dati da diverse, con diversi. L’idea è di avere un solo di dati che la app usa per lavorare internamente, per evitare di avere spaghetti, ma questo vuol dire che bisogna fare qualche tipo di conversione. Ci sarebbero diversi approcci: 🔪️

  • Il più classico sarebbe quello di scrivere (come degli schiavi indiani) delle di codice per tradurre ogni tipo di entità dai esterni a quello interno, e viceversa… il che non solo è una pazzia, e richiede un botto di (va scritto un numero di complesse pari alle piattaforme da supportare, moltiplicato per 2), ma finisce per dare : appena decidiamo che lo schema di API interno va modificato o allargato, ecco che bisogna modificare in ognuna di quelle parti, ed ecco che magari escono nuovi errori e problemi. Ehhh, no, non ci sto dentro. 😩️

  • La mia idea, invece, è di usare un di , almeno per quando le task sono semplicemente selezione e riassegnazione di chiavi di (per operazioni più complesse, il codice è più appropriato del ). Era questo che avevo già provato a fare mesi fa (e funzionava eh!), ma, riguardandolo ora, mi stavo rendendo conto che lo strano JSON da me inventato ha dei abbastanza forti, tra cui penso sia un casino tremendo usare 1 solo documento di per fare sia avanti che indietro. Quindi, ho iniziato a ripensarlo da capo, ma ho pensato abbastanza in fretta che, beh… non va bene per sta roba, lo si vede anche dal come devo mettermi a scrivere chiavi tipo “__robo__“; JSON abuse, doing I am. Però l’idea credo sia bona… 😋️

E allora, fortunatamente sono tornata sana giusto in tempo, prima di ancora una volta dopo mesi con Jason; almeno, abbastanza sana per capire che è meglio impazzire con , se proprio proprio, in questo caso. E, boh, ci ho perso 1 giornata e qualcosa (soprattutto l’altra sera in cui, mezza drogata di sonno, mezza cringiata per colpa della situazione, ho iniziato ad andare un pochino mentale), ma bene o male l’ho fatto funzionare un minimo. C’è stato di tutto in mezzo ovviamente; tra cui, il per aver sistemato un , eccetto scoprire poco dopo che, no, nulla era sistemato… e averci dovuto perdere un’altra mezza giornata. 📆️

https://octospacc.altervista.org/wp-content/uploads/2024/01/image-9-960x451.pngIn , i documenti di trasformazione: a sinistra, quello XML nuovissimo, credo definitivo; al centro, quello JSON vecchio: a destra, quello JSON nuovo che ho sperimentato per pochi quarti d’ora. 💎️Questa è una di quelle cose capaci di stupirmi anche se fatte da me: la sola di poter raggiungere il 90% di quello scopo intricato semplicemente un documento XML in maniera adeguata, e avere vita facile per ogni , la trovo in concetto. Comunque, ho dovuto (iniziare a) scrivere una mega-funzione totalmente per questa cosa perché, come già avevo constatato mesi fa, ma riconfermato appunto ieri, tutte le in giro per fare trasformazioni di dati così sono troppo generiche, a quel punto usare quelle sarebbe anche peggio che fare tutto in . E credo di aver cercato fin troppo in giro. E, ahimè, prima o poi soffrirò di nuovo, perché dovrò scrivere pure la di traduzione inversa! 😵‍💫️

Che centra con la mezza kangata? In pratica, avendo integrato questo già da ora, MBViewer può visualizzare (alcuni) , e (con qualche problema, per ora) , il che non è male. È male, invece, il mio aver scoperto solo ora che su Firefox avviene un problema con il parsing dei feed RSS, che dovrò sistemare… ma su funziona tutto. Oh well. Ohhh, it’s so well. I non finiscono mai, la tortura della è eterna!!! 😭️

https://octospacc.altervista.org/wp-content/uploads/2024/01/image-10.pngProvate idk, https://hub.octt.eu.org/MBViewer/#/SiteUrl=https://mastodon.uno/@octo.rss|platform=rss. (Da Cromio per ora, come ho detto, 😴️)https://octospacc.altervista.org/2024/01/25/mbviewer-per-distrarci/

minioctt, (edited ) to AdobePhotoshop Italian

Scrivo questo in risposta al seguente:

"App postepay — chiaramente c'è qualcosa che non va"https://t.me/journalctl_micro/3193Molto funny: la di PostePay rileva modifiche di sistema ad un che passerebbe , col bootloader bloccato, e suppongo quindi senza . 😁️

Ho preso 5 minuti (uhmm, no, magari) per un breve di quella parte della , arrivando a questa sezione del file (baksmaliato dall’ultima versione presente su APKMirror) smali_classes6/posteitaliane/posteapp/apppostepay/ui/activity/SplashActivity.smali, che invoca il dialogo di avviso in foto: 🤓️

# riga 4358.method public final e()V# ... inizializzazione di altra roba# riga 4503new-instance v1, Lcom/scottyab/rootbeer/b;invoke-direct {v1, v0}, Lcom/scottyab/rootbeer/b;-><init>(Landroid/content/Context;)Vinvoke-virtual {v1}, Lcom/scottyab/rootbeer/b;->a()Zmove-result v1if-eqz v1, :cond_2# ... visualizza il dialogo se il codice sopra non ha saltato# riga 4542:cond_2# ... ritorna e termina il metodo

Detto in italiano, questo invoca un metodo (dal nome offuscatino?) presente in una certa classe “com.scottyab.rootbeer“… ed esce fuori, con una sul web, che questa è una (evidentemente integrata dagli sviluppatori di ) per controllare se un Android è . (Non se passa o meno , attenzione.) 🍻️

È un po’ troppo rubatempo mettersi a capire quale effettivamente è nel codice Java quella funzioncina b;->a()Z ora, quindi tiriamo a . Ci sono, in RootBeer.java, tante boolean, di cui varie ausiliarie, e 2 principali: isRooted[With/Without]BusyBoxCheck(). Queste due principali restituiscono un valore positivo qualora anche solo una delle ausiliari chiamate restituisca true, l’unica differenza tra le due è il fare anche il controllo per la presenza del binario busybox, oppure no… E quindi le opzioni sono le seguenti: 📜️

  • checkForBinary(BINARY_SU), checkSuExists(), checkForRootNative(), checkForMagiskBinary(): controllo effettivo del root; escludo, da quel che ricordo il suo telefono non è rootato, ed avendo il bootloader bloccato direi che possiamo stare tranquilli.
  • detectRootManagementApps(): scarto, se il telefono non è rootato non avrebbe senso tenere app di gestione del root.
  • detectPotentiallyDangerousApps(): controlla se sono installate app “a umma umma”; escludo perché credo nessuna sia utile senza il root, e qualcuna forse è pure malware… eccetto Lucky Patcher, che però ad oggi si auto-spoofa.
  • checkForRWPaths(): scarto, controlla se alcuni percorsi sensibili sono scrivibili, immagino di no col bootloader bloccato e senza root.
  • checkForDangerousProps(): da verificare, controlla se alcune di Android sono particolari.
  • detectTestKeys(): inizialmente sospettavo, ma lo abbiamo verificato (con getprop | grep build.tags), e pare non sia il caso (tutto è listato come “release-keys“).
  • checkForBinary(BINARY_BUSYBOX): questa potrebbe essere, ed è , controlla come ho detto prima la presenza del binario busybox, ma da questo commit del 2020 non è più usata nel check predefinito perché — come detto nel commento in quella parte di , e alla sezione “False positives” del readme — alcuni lo lasciano quando non dovrebbero (io credevo fosse normale tralaltro, non un’anomalia!).

Quest’ultima mi cattura perché innanzitutto, te micro hai proprio un da quello che ricordo, che è uno dei listati esplicitamente sul readme… certo, se la usata nella app fosse stata aggiornata, questo non sarebbe dovuto succedere, a meno che i programmatori delle non abbiano stupidamente usato la funzione di aggressiva. Però tbh, considerando la qualità del o semi-statale qui in , secondo me semplicemente quella non è mai stata aggiornata (da un lato però, come biasimarli… “se funziona, non toccare”…). Al momento però non riesco a ciò, perché non trovo abbastanza vecchi di PostePay, quindi lancio solo al vento. 😩️

Io punto su per risolvere questo . Lo non è il mio, quindi io ora posso solo aspettare, se dovessero uscire novità farò un banale edit. (Sperando non siano così grosse da necessitare di un nuovo ). 😼️

Edit: non ci ho beccato nemmeno per il cavolo: dalla regia, che ha ora testato con il di di , vengo a scoprire che le mie opzioni tecnicamente più plausibili si sono rivelate sbagliate. “Root Management Apps” è cosa fa scattare gli allarmi, cosa che io giustamente ho escluso a priori, ma la regia mi fa appunto sapere che aveva Manager installato (soltanto a prendere polvere perché, questo l’ho pensato bene, non ha il root nell’effettivo); e, come previso, la disinstallazione mette a tacere i falsi positivi. Vabbè oh, non potevo immaginarmelo… 🤕️

https://octospacc.altervista.org/2024/01/21/investigazione-della-app-postepay-senza-radice/

minioctt, to android Italian

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

Alla fine, ho sistemato quell’ (e l’ho caricata), quindi ora sul vecchio ho sempre a fare da , ma in più ho questo in primo piano: a tutti gli effetti un totalmente funzionante eccetto per il non essere cliccabile, che mi riproduce qualsiasi cosa io voglia. 🤭️

Vorrei metterci un qualche orologio con del , magari qualcosa 8-bit come il Game & Watch di Nintendo, ma ahimè non so se riesco a trovare qualche robo già fatto che giri in . Quindi, per ora, ho messo semplicemente la di , e almeno adesso ho qualcosa di meglio di una noiosa semivuota. Fa parte di questa , comunque, ossia una ricreazione in puro di quella di , che ad oggi fanno molto : https://www.bryanbraun.com/after-dark-css/. 💌️

Ecco i volanti sul mio tutto , sotto c’è il touchpad attivo che funge.Tbh, ogni volta che in qualche modo riesco a rimettere in circolazione degli screensaver su un dei miei, penso che il è diventato proprio . Solo perché non sono stati più necessari, ecco che i sono spariti. Spero che prima o poi torneranno come lo erano un tempo, e che le generazioni correnti e future possano ricominciare ad apprezzarli. Ho visto questo (sotto) su , che mostra come ha dimostrato che al generico gli screensaver piacciono… quindi potremmo bene farli tornare. Per favore. Voglio. Ormai su molti ambienti utente o sistemi operativi non sono nemmeno più supportati in modo adeguato, e questa cosa fa schifo perché metterli significa avere un’ peggiore di cosa si aveva 20 fa… 🙏️

https://www.youtube.com/watch?v=ShF16QeRtE0https://octospacc.altervista.org/2024/01/19/pensando-a-screensaverini-sotto-le-ditina/

minioctt, to telegram Italian

[⤴️ https://octospacc.altervista.org/2024/01/13/wordpress-che-non-e/]

Dunque, quel bellissimo , che ho iniziato a realizzare appena 3 giorni fa… è già . Ehh, si, quel codice di lì non è proprio fatto per gestire un caricamento di dati troppo avanzato e tutto : nel suo normale caso d’uso riceve già preparato dal server, ed usa non , quindi tentare il che ho fatto io è chiaro porti a difficoltà. Si può fare, perché nella si può fare tutto, ma è un . …E un po’ me lo aspettavo, e lo sapevo da quando ho iniziato. 😁️

Considerate, questa mi era venuta per un motivo molto : era da un po’ che volevo implementare una vista più e con moderne (come lo scorrimento infinito, o la vista in contesto) per il nuovo, ma tenendo comunque io il controllo dei miei . Farlo dentro non mi va, dato che alla fine comunque dovrei usare , e a questo punto ho ritenuto l’idea di fare proprio una cosa a parte, che potesse potenzialmente essere facilmente adattata per prendere i anche da altre fonti (e lo fa, legge da ovunque, se opportunamente assemblato), qualora il Altervista dovesse avere dei problemi. 🧭️

Però, questa non è la mia a lungo termine. Per quello, in realtà, ho in mente un semi-segreto che iniziai mesi fa, ma che poi, presa da altre cose, non continuai. Doveva essere una per il Fediverso e, potenzialmente qualunque altro grazie ad un layer di astrazione di interno. È Il che vorrei far funzionare con una doppia , a o a “piazza” (stile Miiverse), e quindi in secondo luogo anche come Matrix, e in terzo e quarto per e standard… problema è che, dovendo non solo tutto il , ma anche svecchiare una spaventosa porzione del , non è affatto una cosa rapida arrivare ad uno stato di primissimo . 😳️

Insomma, è per questo che questa piccola , tirata su alla bene e meglio e che esiste in buona parte per via di non mio, l’ho chiamata “”. Continuerò ad aggiornarla, anche dopo che ora ho aggiunto l’ultima funzione fondamentale, ossia l’apertura di specifici? Probabilmente no, sarebbe meglio pensare a sistemare quell’altro progetto e fare un robo fatto bene. Importa qualcosa? Naaaah… come si dice, “the first rule of gun safety is to have fun“? Vale la stessa cosa per il , quando l’arma è la propria tastiera insomma. Basta sia stato . 😈️

https://octospacc.altervista.org/2024/01/16/spaghetti-a-breve-termine/

minioctt, to Matrix Italian

Da quando abbiamo dovuto spostare la #comunità #Spacc sulla #messaggistica #Matrix necessariamente dopo il ban di #Durov, gli sticker #cringe da usare in #chat sono mancati troppo. Per questo una #settimana fa ho iniziato a #sviluppare #MatrixStickerHelper, una #webapp (tutta #ClientSide) che permette di gestire facilmente e in maniera più automatizzata possibile la propria collezione di pacchetti, per i client della #piattaforma che li supportano tramite le #integrazioni. 🚀️

Nei giorni passati ora ci ho lavorato parecchio, e ho avuto sia modo di smussare di più gli spigoli della #UX (che però deve essere ancora parecchio levigata, ahimè), sia, cosa essenziale, aggiungere #features importanti. Ecco quindi che, qualche centinaio di righe di #codice più tardi, stasera la #applicazione supporta l’importazione di pacchetti #sticker da #Telegram, sia quelli statici che quelli #animati (non ancora quelli #video). Eccovi una #demo e, come sempre, aiuti e pareri sullo #sviluppo sono graditi. 🕷️ (Nella #registrazione, la parte dove vengono aggiunti sticker da #URL di Telegram è velocizzata 8x, purtroppo codificare quei #media in buona #qualità è costoso).

L’ultima versione, appena #aggiornata, è sempre disponibile a https://hub.octt.eu.org/MatrixStickerHelper/… provatela! 🙃️https://octospacc.altervista.org/2024/01/08/gli-sticker-da-telegram-a-matrix/

#aggiornata #animati #applicazione #chat #ClientSide #codice #cringe #demo #DUROV #features #integrazioni #Matrix #MatrixStickerHelper #media #messaggistica #piattaforma #registrazione #settimana #spacc #sticker #sviluppare #sviluppo #Telegram #URL #UX #video #webapp

minioctt, to Matrix Italian

Dopo qualche giornata di lavoro, finalmente rendo disponibile la mia per gestire gli su , . È purtroppo un po’ complessa e quindi fino ad ora ho fatto giusto il minimo sindacale che mi permette di rilasciarla, e spero di continuare man mano ad aggiungere le funzioni importanti. 🙏️

Per inviare gli sticker in , ho sempre usato il Maunium sticker picker, il cui problema però è che bisogna usare uno strumento CLI scomodissimo per aggiornare i pacchetti, da caricare poi su qualche server statico. Veramente una , quindi ho deciso di creare una in cui si fa login semplicemente, si vedono i pacchetti che già si hanno, a cui si possono aggiungere nuovi sticker (soon), o aggiungerne di nuovi, spero prima o poi anche direttamente da LINE o Telegram. 🥳️

https://octospacc.altervista.org/wp-content/uploads/2024/01/Screenshot-from-2024-01-03-21-26-13-960x493.pngQuando le parole non bastano, ci sono gli sticker, tutti che variano tra il e il . messa su https://hub.octt.eu.org/MatrixStickerHelper/, se la testaste un po’ mi fareste un favore. 💞️Per ora, come ho detto, è proprio agli albori, e nemmeno l’importazione da file locale funziona… ma quella da URL JSON si, quindi perlomeno si possono già importare pacchetti creati da altre persone con i mezzi vecchi. Per provare subito, ecco una pagina di link a pacchetti pronti da copincollare nella app: https://octospacc.altervista.org/paste/887/?ppt=4434dcaa8646fbf1400fa65308d87f4d01880a113836a338c9227b70a60fb337. 🖇️

https://octospacc.altervista.org/2024/01/03/matrix-sticker-helper/

minioctt, to android Italian

Volendo realizzare una piccola (per un che per me non ha una vera utilità oltre l’essere uno spassoso ), ho dovuto creare una piccola . 🤖️

Pro: ora ho il che mi permette di fare quello che mi serviva, per cui non avevo trovato altre soluzioni già fatte che fossero funzionanti. In realtà, l’idea iniziale era di fare una specifica per questa , ma strada facendo ho deciso che avrei reso questa più semplice e generica, potenzialmente utilizzabile anche per altri usi, e avrei implementato parte della mia logica sul mio con qualcosa di più rapido. Quello che è uscito fuori ora è una piccolissima app che esegue codice fornito dall’utente e permette a questo di interfacciarsi con API native. 3 API al momento, lmao. Non so se nel tempo la espanderò o no, ora mi serviva appena questa poca roba, e la è grezza perché non ho tempo. Il codice è quì (ma non è bello): https://gitlab.com/octtspacc/DroidScriptin. ☕️

Contro: la programmazione Android in sé, che è sempre un leggero incubo. Tuttavia, l’unica alternativa teoricamente (chissà praticamente!) viabile sarebbe stata fare un’app per Symbian o J2ME, che certamente non avrebbe semplificato le cose. Vabbé, anche per questo ho alla fine realizzato questa parte del mio progetto demo nel modo in cui ho detto. La cosa più strana attuale del codice? (Content Warning: 🤓️) Il fatto che io debba tenere una classe dedicata funzionalmente vuota per dichiarare l’uso di un BroadcastReceiver all’OS, anche se io nella pratica quello lo uso nella MainActivity, e non nella classe che specifico nel manifest per quel permesso (perché non riesco a mettere MainActivity lì). Ah, però questo per quanto non abbia senso, funziona. La cosa veramente più strana, invece, lo è perché non funziona: su .4 (mio target) la UI è a posto, mentre su (che monta il mio principale) manca la barra dell’activity, e quindi non c’è manco modo di accedere al menu… vabbè, il deve funzionare sul , e lì appunto va. 🎈️

Il bug che ho descritto sopra, a confronto screenshot del mio telefono con quello dell'emulatore Android 4.4.(Ma come farà ad accadere questo ? 😩️)Nel mezzo: ne ho approfittato per provare un pochino, che avevo sempre snobbato, e adesso me ne pento… di non avergli dato una chance prima. È molto più piacevole di da usare, secondo me, sintassi estremamente più pulita e concisa. Kotlin compila in e in generale targetta la direttamente, quindi le sono quasi identiche a Java, e avendo usato quello non bisogna imparare quasi nulla di nuovo; sintassi a parte appunto, che però si impara semplicemente scrivendo, è esotica ma assolutamente non esoterica. 🧶️

E giustamente vi chiedete, a che mi serviva esattamente? Se rientra nell’essere un sano come ho programmato ieri, allora domani lo saprete… per ora non faccio spoiler, oltre a dire che il mio potrebbe ottenere una funzione che solo aveva e solo nei primissimi anni, e ora è un concetto estinto. Non vi dico che leggendo il potete intuire, ma mai dire mai… 👁️

https://octospacc.altervista.org/2023/12/16/572/

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