Anyone here seen #Chrome extensions with #DevTools panels just not display sometimes?
I'm seeing some really weird behavior recently I can't explain and would appreciate if anyone has experienced the same problem and could validate my sanity:
What’s new (regarding Web Performance) in DevTools, Chrome 124
1️⃣ Hide functions and their children in the flame chart
2️⃣ Arrows from selected initiators to events they initiated
3️⃣ Enabling JS sampling adds detailed JavaScript call stacks to the performance trace
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à. 🚯
"Coccinelle is a tool for automatic program matching and transformation that was originally developed for making large scale changes to the Linux kernel source #code (ie, C code)."
Added asset packing to GD Explorer. Now, instead of keeping resource files in the project, the resource files are packed into a .tres file. That means they can be used in the explorer, but won't pollute your workspace until you actually import them.
Sadly this breaks my drag+drop system for importing assets, but I'm sure I will think of something...
Added a simple spectrum analyzer to my asset explorer in Godot.
Next up will be actually improving the import flow. I want to allow you to drag+drop assets from the explorer (your filesystem), into the project tree. So far I didn't figure out any API to let Godot know that something important is being dragged.
Working on a Digital Asset Manager built using the Godot Engine. I've yet to find a tool that matches my specific requirements, so I'm building it myself!
The main purpose is to easily and efficiently browse my asset catalogue.
There is easy support for gltf, ogg, png, and jpg. Will try to support everything else though (mp4, flac, bmp, fbx, whatever).
Hi godot devs! I've got an important question for my "Hoist" plugin:
I've discovered that without 'editable children', changes to children nodes are NOT SAVED. This means that I would need to save them myself (I can do this), and re-apply them, when re-opening Godot, or running the game.
How big of a dealbreaker is 'editable children' to you? Hoist would still hoist the properties so you could keep it closed.
I'm working on a Godot4 add-on called "Hoist" which allows you to elevate child properties to the scene root.
All you have to do is add a property of type 'Hoist', and all child nodes will have a checkbox injected. When clicked, it will hoist the property into the parent.
This provides a similar workflow as the 'Editable Children' checkbox, but with more control, because you can be very explicit about the hoisted properties.
Presa dai mezzi impegni oggi ho dimenticato di postare questo… in pratica, volevo capire come mai reCAPTCHA sul mio #sito non caricasse dal #browser del #3DS, quindi ho dovuto avviare i #DevTools (che ovviamente sono da usare su un computer companion, non appaiono sulla #console). Ovviamente non ho risolto un bel nulla di quel problema, ma bando alle ciance ora. 🥽
A parte il fatto che ho dovuto cercare sul #web come aprirli – su WiiU, e credo su old3DS, basta selezionare una voce nelle impostazioni; su #new3DS bisogna tenere premuti i tasti A, B, X, e Y mentre si avvia l’applicazione, e a quel punto esce un dialogo di conferma – ma poi che cavolo ha combinato #Nintendo? È estremamente bizantina ‘sta roba: la console apre un server HTTP (e fin qui, nulla di #strano), che devi visitare dal tuo PC per scaricare un archivio ZIP contenente i file HTML del #debugger, che apri nel tuo browser per collegarti alla consolina. Non ricordo se anche su old accadeva questo, onestamente, ma certamente su WiiU no: visitare l’indirizzo IP locale dal PC reindirizzava ad una versione hostata sui CDN di Ninty degli strumenti. 🎛️
I'm inspecting a website using dev tools,
and want to export/save a storage file that the website is using.
Anyone know how I can do it?
tried Firefox developer version, chromium, I can't seem to find a way to export these files.
boosts are welcome :)
EDIT: for clarification, if you go to inspect, and then in storage tab, where you can view cookies and other stuff.
I wanna save files from there. not the html files.
By using Nvim-R instead of RStudio for my R packages maintenance I have the feeling of gaining a deeper control of the process. I understand all the steps better. Even for building a documentation website with devtools, roxygen2 and pkgdown.
I won't drop RStudio though. It’s nice to be free to choose one tool or the other. #rstats#neovim
@beps I truly understand what you mean. I am now talking a little about #RKWard. We have a solid integration of #git, #rio and some other tools. #quarto works. A tight integration of #styler would be nice. We have a good R console and a terminal. Likewise, we don't have the deep integration of #devtools, #roxygen2 and #pkgdown. Some find it good (I) others find it a hindrance.
In the end, there are many good choices.