Devo dire che è difficile passare da Python a NSIS, il quale altro non è che una via di mezzo tra noscripting e simil-assembly 😫
Esistono variabili, scope, funzioni, ma esistono anche registri, push-pop...
Per di più se ho capito bene tutto è rappresentabile come stringa, ma per trasferirle devi per forza usare
Esistono variabili, scope, funzioni, ma esistono anche registri, push-pop...
Per di più se ho capito bene tutto è rappresentabile come stringa, ma per trasferirle devi per forza usare
StrCpy 😕
journalctl -u micro
Devo dire che è difficile passare da Python a NSIS, il quale altro non è che una via di mezzo tra noscripting e simil-assembly 😫 Esistono variabili, scope, funzioni, ma esistono anche registri, push-pop... Per di più se ho capito bene tutto è rappresentabile…
Tipo in questo snippet, l'unico motivo per cui - di
$0 - viene fatto push prima e pop dopo è che questo registro viene utilizzato all'interno: come in assembly, per evitare di alterarne il valore attribuitogli da scope precedenti, lo si salva e poi lo si ripristina.Function .onInit
Push $0
StrCpy $R9 ${sec1} ; Gotta remember which section we are at now...
SectionGetFlags ${sec1} $0
IntOp $0 $0 | ${SF_SELECTED}
SectionSetFlags ${sec1} $0
SectionGetFlags ${sec2} $0
IntOp $0 $0 & ${SECTION_OFF}
SectionSetFlags ${sec2} $0
Pop $0
FunctionEnd
È stato un parto ma l'ho trovato
https://raw.githubusercontent.com/KDE/syntax-highlighting/master/data/syntax/nsis.xml
Ora spero di riuscire a modificarlo per supportare diversi tipi di quotes e commenti, per poi installarlo in
https://raw.githubusercontent.com/KDE/syntax-highlighting/master/data/syntax/nsis.xml
Ora spero di riuscire a modificarlo per supportare diversi tipi di quotes e commenti, per poi installarlo in
~/.local/share/org.kde.syntax-highlighting/syntaxAh yes, Notepad++ usa un installer NSIS 😌
https://github.com/notepad-plus-plus/notepad-plus-plus/tree/master/PowerEditor/installer
https://github.com/notepad-plus-plus/notepad-plus-plus/tree/master/PowerEditor/installer
GitHub
notepad-plus-plus/PowerEditor/installer at master · notepad-plus-plus/notepad-plus-plus
Notepad++ official repository. Contribute to notepad-plus-plus/notepad-plus-plus development by creating an account on GitHub.
journalctl -u micro
Scoperto il motivo: da ~/.config/chromium-flags.conf avevo attivato --enable-gpu-rasterization. Problema è che se la GPU non regge c'è poco da fare... bisogna ricadere nel software rendering
E io che pensavo avessero trovato un modo per rilevare che ho una GPU di merda pur mantenendo dei flag attivi,
e invece avevano solo nascosto ulteriormente l'opzione per il 3D... 🙏🏻😤
e invece avevano solo nascosto ulteriormente l'opzione per il 3D... 🙏🏻😤
journalctl -u micro
Ecco quello che stavo cercando! https://mpv.io/manual/master/#encoding Con MPV è possibile convertire i file, di default mantiene tutti i metadati $ mpv \ --audio-pitch-correction=no \ --speed=0.8 \ --o=out.mp3 \ Caramelldansen.flac
Per tagliare con precisione pezzi di film da condividere per meme:
$ args=(
# taglio di precisione
--start=hh:mm:ss.ms
--end=hh:mm:ss.ms
# no sottotitoli
--sid=no
# amplificazione volume
--volume=150
--o=out.mp4
input.mkv
)
$ mpv "${args[@]}"Articolo un po' vecchio trovato curiosando:
Non usate
https://lcamtuf.blogspot.com/2014/10/psa-dont-run-strings-on-untrusted-files.html
E da cui poi ho scoperto un fuzzer (tipi di software che scoprono bugs facendo brute force casuale - o con algoritmi genetici - sull'input di altri software)
https://en.wikipedia.org/wiki/American_fuzzy_lop_(fuzzer)
Non usate
strings su files non fidatihttps://lcamtuf.blogspot.com/2014/10/psa-dont-run-strings-on-untrusted-files.html
E da cui poi ho scoperto un fuzzer (tipi di software che scoprono bugs facendo brute force casuale - o con algoritmi genetici - sull'input di altri software)
https://en.wikipedia.org/wiki/American_fuzzy_lop_(fuzzer)
🗂 TI(re)L che su Dolphin si può cambiare cartella dalla barra di navigazione breadcrumb, tramite scroll su un certo livello di profondità
Java moment
https://stackoverflow.com/a/7847117
https://stackoverflow.com/a/38855689
Sostanzialmente i prodotti in java di IDEA salvano sulla clipboard di sistema degli oggetti serializzati. Altri programmi come MatLab e Netbeans recuperano questi oggetti e tentano di analizzarli, ma non trovano le classi, quindi stampano errori a caso ✅
https://stackoverflow.com/a/7847117
https://stackoverflow.com/a/38855689
Sostanzialmente i prodotti in java di IDEA salvano sulla clipboard di sistema degli oggetti serializzati. Altri programmi come MatLab e Netbeans recuperano questi oggetti e tentano di analizzarli, ma non trovano le classi, quindi stampano errori a caso ✅
Stack Overflow
Why/How is IntelliJ causing debug output in Netbeans?
Yesterday I was debugging a Java application with Netbeans. (i.e. the application was running with the debugger attached) At the same time I was working with IntelliJ on a Rails application.
I not...
I not...
Solarized Light Micro.icls
90.2 KB
Ho fatto una variazione dello schema colori cambiato il gamma di tutto (ovviamente in automatico)
Python è così dinamico che è possibile accedere a tutti i nomi (variabili, funzioni, ecc) attraverso stringhe (esempio
Peccato però che non ha una funzione built-in
(esempio
Le implicazioni?
1. In un refactoring c'è il grosso rischio di non includere anche quelle stringhe inserite a mano
2. Non c'è alcun obbligo di esistenza di quel nome: se a un certo punto la variabile puntata cambia nome, quella stringa rimarrà così com'è e niente (ne interprete, ne IDE) segnerà errore.
3. Non poter usare tutte le funzionalità dell'IDE quali ad esempio Find Usages
obj.__dict__['attr']).Peccato però che non ha una funzione built-in
nameof() come C#...(esempio
nameof(my_var) → 'my_var').Le implicazioni?
1. In un refactoring c'è il grosso rischio di non includere anche quelle stringhe inserite a mano
2. Non c'è alcun obbligo di esistenza di quel nome: se a un certo punto la variabile puntata cambia nome, quella stringa rimarrà così com'è e niente (ne interprete, ne IDE) segnerà errore.
3. Non poter usare tutte le funzionalità dell'IDE quali ad esempio Find Usages
Cursed python
>>> __builtins__['dict'] = list
>>> a = dict()
>>> a += [4]
>>> a
[4]
Potrebbe tornare utile per fare monkey-patching di cose built-in dato che non è possibile modificarne direttamente i nomi tipo dict.__getattr__ = ...>>> class js_dict(dict):Molto bene 😎
# Useful to use attribute names instead of strings
def __getattr__(self, key):
if not key in self:
return
return self.__getitem__(key)
def __setattr__(self, key, value):
self.__setitem__(key, value)
def __delattr__(self, key):
self.__delitem__(key)
>>> __builtins__['dict'] = js_dict # noqa
>>> a = dict(name='my', value=3)
>>> a.name
'my'
Edit: https://docs.python.org/3/reference/executionmodel.html#builtins-and-restricted-execution
Python documentation
4. Execution model
Structure of a program: A Python program is constructed from code blocks. A block is a piece of Python program text that is executed as a unit. The following are blocks: a module, a function body, ...
Ho appena scoperto che da Python 3.8 esiste
In questo modo è possibile ottenere dei warning nel caso in cui si stiano facendo stronzate, pur mantenendo la dinamicità di python ❤️
Esiste pure il decorator
https://docs.python.org/3/library/typing.html#typing.Protocol
typing.Protocol: una classe da estendere molto base non istanziabile, per creare stub utilizzabili negli static-type checkers.In questo modo è possibile ottenere dei warning nel caso in cui si stiano facendo stronzate, pur mantenendo la dinamicità di python ❤️
Esiste pure il decorator
@typing.runtime_checkable che permette ai Protocol di essere usati in controlli runtime isinstance() e issubclass() come se fossero vere classihttps://docs.python.org/3/library/typing.html#typing.Protocol
Python non finisce mai di stupirmi
https://docs.python.org/3/howto/denoscriptor.html
https://docs.python.org/3/howto/denoscriptor.html