journalctl -u micro
93 subscribers
2.19K photos
210 videos
287 files
1.45K links
Esperienze e consigli di uno sviluppatore tech−unenthusiast

creation — 2021-04-29
owner — @Microeinstein

networks
@sigma_hub Σ
@ageiroumena
Download Telegram
Per i più attenti, ogni componente ha delle proprie regole di privacy

TLD (.com .net .org ...) sono gestiti da organizzazioni diverse in paesi diversi, es il tld .top costa molto poco ma è cinese. Alcuni sono gestiti dagli stati stessi (.it). La maggior parte supporta WHOIS Privacy (censura delle info personali del dominio), altri invece non lo supportano e vi troverete nome, cognome, email, telefono, indirizzo di casa pubblicati online.

Registrar (GoDaddy Aruba Infomaniak ...) sono altre organizzazioni in altri paesi, permettono di comprare domini. Alcuni sono connessi direttamente al registro "root" e si paga di meno, altri fanno da intermediari per certi TLD.

Nameserver (gcloud cloudflare ovh hetzner ...) rispondono alle richieste DNS e sono gestiti da altre organizzazioni ancora 😭 Alcuni hanno delle API per modificare i record da remoto, essenziale per avere certificati HTTPS rinnovati automaticamente con Caddy o altri strumenti.
👍1
journalctl -u micro
E poi mi dite che non devo odiare le AI + installare Anubis
Il nostro caro GPTBot si è letto i miei repository — tuttavia in totale non pesano mai 1GB, mi chiedo che diavolo abbia scaricato
Forwarded from japanese ghetto
super mario 64 DS texture match! the sky image in yoshi mini games is actually a photo from VisualDisk N-2 clouds CD. noted by emmnyaa

Render96VGTP
Per chi non conoscesse,
un'estensione che si appoggia a ublock origin per "cliccare" appositamente tutti gli ads bloccati (e fare data poisoning)
https://adnauseam.io/

Un altra invece impedisce alle pagine di sapere se avete cambiato scheda (non ci sono release comode)
https://github.com/marvinschopf/disable-page-visibility-api

Grazie Mike
Nel frattempo Gemini scansionerà tutti i vostri messaggi attraverso le notifiche, anche se l'avete disattivato.

Tuttavia come è stato fatto notare nei commenti, anche se bloccate tutto dal vostro lato rimarrete comunque vulnerabili attraverso le notifiche delle altre persone...

https://www.youtube.com/watch?v=-CAfVOujQIM
🤮3👍1
"tf u mean tomorrow"
Parametri AES di SQLyog per cifrare le password salvate su disco

kind  aes128 ctr
key 2923BE84E16CD6AE529049F1C9BB218F
iv B3A6DB3C870C3E99245E0D1C06B747DE


Link comodo CyberChef

Non sono definite nei sorgenti, quindi ho scaricato l'eseguibile ufficiale community e sono andato di Okteta, poi Ghidra cercando quel table64 e guardando i valori adiacenti

https://github.com/webyog/sqlyog-community/blob/e30fffa4b7d28528ef5e7aecc794d15f55ae1dbd/src/CommonHelper.cpp#L78

https://github.com/webyog/sqlyog-community/blob/master/src/CommonHelper.cpp#L4426
🔥1
journalctl -u micro
Un linguaggio, senza gli strumenti adatti ai suoi scopi [e ad un network effect], è un linguaggio morto. Oltre • alle scelte di design • al lexer • al parser • al modello • all'interprete • e alla libreria standard, toccherà scrivere anche • una documentazione…
In pratica avevo iniziato a sviluppare questo nuovo linguaggio in LuaJIT. Stavo scrivendo a mano
sia un lexer - tramite regex,
sia un parser - in modalità miste LL per le keyword e LR per le espressioni infisse di cui non è possibile conoscere il termine in anticipo (1 + 2 + 3 ...?),
sia un modello e interprete.

Nel frattempo ho provato a sviluppare una prima estensione VSCode per supportare il linguaggio, ma richiedeva una grammatica tutta sua (sintassi TextMate), allora ho realizzato che tutta questa scrittura manuale non poteva scalare.

🧵
💔2
journalctl -u micro
In pratica avevo iniziato a sviluppare questo nuovo linguaggio in LuaJIT. Stavo scrivendo a mano sia un lexer - tramite regex, sia un parser - in modalità miste LL per le keyword e LR per le espressioni infisse di cui non è possibile conoscere il termine in…
Peccato che non esistano generatori di lexer & parser per Lua (tipo ANTLR4, lex, yacc - no non userò PEG / packrat)... quindi mi sono inventato di scriverne uno io.

Mi sono dovuto inventare anche una sintassi per le stesse grammatiche, in modo da esprimere derivabili, terminali, stringhe custom (così da non ripetere gli stessi id 913 volte) ecc

🧵
🗿1
journalctl -u micro
Peccato che non esistano generatori di lexer & parser per Lua (tipo ANTLR4, lex, yacc - no non userò PEG / packrat)... quindi mi sono inventato di scriverne uno io. Mi sono dovuto inventare anche una sintassi per le stesse grammatiche, in modo da esprimere…
Poi mi sono detto
"proviamo ad eseguire un benchmark". Ho misurato il tempo di 1000 parsing della stessa grammatica, e solo il parsing.

4 secondi

Hmm, mi sembra un po' tanto per una grammatica così piccola. Non oso immaginare come sarà il parsing di 1000 file sorgenti con un linguaggio più maturo. Facciamo un po' di profiling...

30% solo ad eseguire il mega-regex tramite lrexlib/pcre2 che uso come tokenizer. Ho sperimentato in vari modi ma non c'era verso di ridurne il tempo.

Allora mi sono messo a fare il mio engine di regex perl-compatible, in LuaJIT, con blackjack e squillo di lusso. Essendoci una compilazione JIT, posso trasformare il regex richiesto in codice Lua, che sarà a sua volta automaticamente trasformato in assembly per quell'architettura, e così ho fatto.

🧵
journalctl -u micro
Poi mi sono detto "proviamo ad eseguire un benchmark". Ho misurato il tempo di 1000 parsing della stessa grammatica, e solo il parsing. 4 secondi Hmm, mi sembra un po' tanto per una grammatica così piccola. Non oso immaginare come sarà il parsing di 1000…
Ecco i tempi di benchmark + profiling
1. con lrexlib

2. con la mia libreria poco ottimizzata... ma non mi sono dato per vinto

3. salvati 9sec facendo il backtracking su variabili dedicate e non un array condiviso stile push/pop

4. salvati altri 9sec evitando il lookup degli oggetti (perché sì, in Lua sono tutti dizionari)

🧵
journalctl -u micro
Ecco i tempi di benchmark + profiling 1. con lrexlib 2. con la mia libreria poco ottimizzata... ma non mi sono dato per vinto 3. salvati 9sec facendo il backtracking su variabili dedicate e non un array condiviso stile push/pop 4. salvati altri 9sec evitando…
Mancano alcune funzionalità quali \b àncora word-boundary, \1 backreference e sostituzioni di testo, ma il resto c'è e potrei ottimizzare ancora (facendo ad esempio una fattorizzazione a sinistra e un mapping caratteri-gruppo alternativo).
journalctl -u micro
il mio engine di regex perl-compatible, in LuaJIT
__gen_xvvcgcatupyuxclj430.lua
12.9 KB
Questo il codice Lua generato dal seguente mega-regex

 (?<SKIP>[\ \t\r\n]+|//.*$)
|(?<derivable>[a-z_][0-9a-z_]*)
|(?<terminal>[A-Z_][0-9A-Z_]*)
|(?<string>"(?<_dquot>(?:[^\\\n"]+|\\.)*)"|'(?<_squot>(?:[^\\\n']+|\\.)*)')
|(?<dlabel>\#[\ \t]+(?<_dlbl>[A-Za-z_][0-9A-Za-z_]*)[\ \t]*$)
|(?<action>\{[\ \t]*(?<_act>[A-Za-z_][0-9A-Za-z_]*)[\ \t]*\})
|(?<symbols>[:;|()\[\]{}*+?!"'\-<=>\\/%^$.@&~#]+)
|(?<number>[0-9]*)
😱2