Categorie
Linux

Guida intergalattica per Repository Git

Git rappresenta uno standard per gestire il versioning del codice sorgente (SOLO IL CODICE SORGENTE 🤣), per versatilità e semplicità.

Git è un SCM distribuito, non c’è un solo server centrale con l’unica versione ufficiale ma ad ogni clone creiamo un repository collegato con tanto di history dei commit.

git clone <http://…>

Ogni modifica è dichiarata al tramite il comando commit che si occupa di tracciare in un pacchetto (o versione) tutti i file presenti nello stage in quel momento, con un messaggio che lo rende facilmente identificabile nella history.

git commit -m “messaggio”

first of all… GITIGNORE –> https://www.gitignore.io/

git flow

Esistono tre luoghi in cui un file può essere: l’albero, l’indice e la copia di lavoro. Quando si aggiunge un file a una cartella, lo si aggiunge alla copia di lavoro. Quando fai qualcosa come git add file lo aggiungi all’indice. E quando lo commetti, lo aggiungi all’albero. Probabilmente ti aiuterà a conoscere i tre flag più comuni in git reset:

git reset [- <mode> ] [ <commit> ]

Questo modulo reimposta la diramazione attuale su <commit> e eventualmente aggiorna l’indice (reimpostandolo all’albero di <commit> ) e l’albero di lavoro in base a <mode> , che deve essere uno dei seguenti:
–soft Non tocca affatto il file indice né l’albero di lavoro (ma reimposta la testa su <commit> , proprio come fanno tutte le modalità). Questo lascia tutti i tuoi file modificati “Modifiche da impegnare”, come direbbe lo stato di git.

–misto Reimposta l’indice ma non l’albero di lavoro (cioè, i file modificati sono conservati ma non contrassegnati per il commit) e riporta ciò che non è stato aggiornato. Questa è l’azione predefinita.

–difficile Reimposta l’indice e l’albero di lavoro. Qualsiasi modifica ai file tracciati nell’albero di lavoro poiché <commit> viene scartata.

Ora, quando fai qualcosa come git reset HEAD – ciò che stai facendo è git reset HEAD --mixed e “resetterà” l’indice allo stato in cui era prima di iniziare ad aggiungere file / aggiungere modifiche all’indice (via git add ) In questo caso, la copia di lavoro e l’indice (o la fase di staging) erano sincronizzati, ma dopo il ripristino l’utente HEAD e l’indice erano sincronizzati.

git rm d’altra parte rimuove un file dalla directory di lavoro e dall’indice e quando si esegue il commit, il file viene rimosso dall’albero. git rm --cached tuttavia rimuove il file dal solo indice e lo mantiene nella copia di lavoro. Questo è l’esatto opposto di git add file In questo caso, hai fatto l’indice per essere diverso dal HEAD e il lavoro, in esso che il HEAD ha la versione precedentemente impegnata del file, la copia di lavoro ha avuto la modifica di las if any o content da HEAD del file e hai rimosso il file dall’indice. Un commit ora sincronizzerà l’indice e l’albero e il file verrà rimosso.

.gitignore does not work

Cambiato il .gitignore ma non vedi le modifiche? Piccola magia

git ls-files –deleted -z | git update-index –assume-unchanged -z –stdin

Git Stash ??

Il nostro lavoro potrebbe dover subire dei rallentamenti o Change Request improvvise e Git ci permette di gestire diversi “Branch” proprio per poter condurre contemporaneamente versioni diverse dello stesso applicativo. Per garantire la consistenza dei dati ci viene impedito di cambiare branch se abbiamo delle modifiche “in canna”, se il lavoro è incompleto, una commit potrebbe rendere lo stato inconsistente ma non vogliamo perdere le modifiche fatte… che fare? Possiamo utilizzare il comando stash

git stash

Ora, “messe da parte” le modifiche fatte al codice, si può cambiare stato (commit o branch) per poi sfruttare la pop per ripristinarli.

git stash
git pull
git stash pop

Official –> https://git-scm.com/docs/git-stash

Rename a Branch

If you want to rename a branch while pointed to any branch, do:

git branch -m <oldname> <newname>

If you want to rename the current branch, you can do:

git branch -m <newname>

Git Branch simple

in the new version of git you can use

git checkout <branch>

this simply checkout in a new local branch if does not exists
Categorie
Linux

Create new Chrome launcher specifying the –profile-directory

Sometimens it appens, you’r profiled chrome launcher disappear! Ho to restore it?

the standard launcher refers just to the Chrome.exe location on your pc, probably inside C/programFiles/… To create a new profiled launcher we have to add, after the command a new argument –> –profile-directory=<PROFILE>! simple! but what’s my Profile?

to discover it, you could go inside chrome’s setting and check the user are

Type chrome://settings/ in address bar (or Menu > Settings)

Enable advanced menu

look for user and click on Chrome name and pictures

now you could check the mane… or… use the button to create a launcher on your desktop!!!!

Simple

Categorie
Linux

USB drive Problem???

Maximum Capacity to the USB drive

Your USB drive does not allow you to use the full capacity? You have to format that pen drive but not in the standard way, through DISKPART.

DANGER:: Obviously this action will delete all Data from the Pendrive.

So… hands on!!!! Starting linking the Pendrive into the computer (or laptop).

Open CMD

  • Type DISKPART
  • Type LIST DISK
  • You see that your computer showing n disks.
  • Select your Pendrive be sure that you select your Pendrive by typing the command.
  • SELECT DISK 1 (is an example)
  • Type CLEAN
  • If the Clean does not work or if you know that there is a read-only you can use: attributes disk clear readonly
  • Type CREATE PARTITION PRIMARY.
  • Type FORMAT FS=NTFS QUICK (or FAT)
  • Type ASSIGN
  • EXIT

Now you’re Pendrive showing full capacity.

USB READ ONLY?

Ok let’s try to solve this problem by this sequence! Check after evry point if you need to continue or you solve!

1) Ccheck “setting” (aka “Proprietà”) and unpin readonly (aka “Sola lettura”)

2) still remain in settings and check Security. You (you’r user) need to access (if it is a NTFS disk)

3) Add / Edit regedti DWORD:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies]
“WriteProtect”= dword:00000000

If this does not exists, create it.

Reboot

4) use diskpart:

DISKPART
LIST VOLUME
SELECT VOLUME n
ATTRIBUTES DISK CLEAR READONLY
EXIT

[ITA]
5) Start –> gpedit.msc
Configurazione computer\Modelli amministrativi\Sistema\Accesso agli archivi rimovibili

Imposta su “Disattivato” la voce o le voci:

Dischi rimovibili: nega accesso in esecuzione
Dischi rimovibili: nega accesso in lettura
Dischi rimovibili: nega accesso in scrittura

La stessa operazione la effettui nel percorso:

Configurazione utente\Modelli amministrativi\Sistema\Accesso agli archivi rimovibili

6) Gestione Dispositivi –> Tasto destro sulla pendrive ( ed eventualmente sui Controller USB ) –> Disinstalla driver. Riavvia ed inserisci nuovamente la pendrive

Categorie
Linux

I famigerati parametri PHP per il corretto funzionamento di un CMS o una Custom Application

Quando ci troviamo a lavorare con un cms, sia esso #WordPress, o #Joomla o un applicativo custom, può capitare di imbattersi nella necessità di dover aumentare le “risorse” messe a disposizione dallo spazio web.

Andiamo quindi a scoprire come calibrare queste impostazioni nel modo più intelligente possibile, capendone, cioè, il significato!!!:

VERSIONE PHP

Come si può intuire facilmente, a diverse versioni corrispondono diversi parametri. È sempre meglio utilizzare una versione di PHP aggiornata sia per le migliorie di performace, sia per alcuni utili “tune” possibili solo nelle ultime.

MEMORY_LIMIT

Memory Limit è un parametro che permette di regolare la necessità di più memoria scegliendo tra le seguenti taglie di MegaByte:

  • 8M
  • 16M
  • 32M
  • 64M
  • 128M
  • 256M

MAX_EXECUTION_TIME

Il max execution time è un valore espresso in secondi per l’elaborazione delle richieste. Questo è il responsabile del messaggio “Maximum execution time exceeded”. Una volta raggiunto questo limite non viene consentito al sistema di elaborare le richieste in maniera corretta.

  • 30
  • 60
  • 90
  • 120

MAX_INPUT_TIME

Il max input time è il tempo massimo (in secondi) messo a disposizione di un singolo script per analizzare i dati di input (POST e GET).

L’intervallo di tempo inizia nel momento in cui questo viene richiamato sul server e termina quando ne inizia l’esecuzione. Il suo valore, se impostato a -1, indica che il nostro server, al suo posto, considera max_execution_time.

  • 0 (zero) per avere così tempo illimitato.
  • 30
  • 60
  • 90
  • 120

UPLOAD_MAX_FILESIZE

Il campo upload_max_filesize indica il limite di grandezza per un file che può essere caricato nel server:

  • 2M
  • 4M
  • 8M
  • 10M
  • 16M

POST_MAX_SIZE

Questo valore indica la dimensione massima relativa ai dati consentiti ed influisce, come prevedibile, anche sui caricamenti di file insieme al valore impostato per upload_max_filesize.

Per convenzione e sensatezza dovremmo garantire memory_limit > post_max_size.

  • 2M
  • 4M
  • 8M
  • 16M

INCLUDE_PATH

Include_path serve a determinare il campo di applicazione delle funzioni requireincludefopen ()file ()readfile () e file_get_contents (). queste cercheranno i file indicati con path relativo in queste directory.

Il formato è quello di un elenco di directory separate da due punti (Unix) o separate da punto e virgola (Windows).

È possibile modificare o impostare il percorso a runtime tramite la set_include_path().

OPEN_BASEDIR

Open_basedir delimita l’area di accesso al sistema dalla nostra applicazione. Quindi si potrà accedere ai file solo se presenti nella struttura specificata qui.

un esempio pratico di metodi impattati sono la include() o la fopen(). Per default non vengono posti limiti.

ERROR_REPORTING

Error_reporting imposta il livello di segnalazione degli errori. Tramite un numero intero legato ai livelli di error_reporting descritti nel file php.ini.

DISPLAY_ERRORS

Display_errors, collegato al parametro di prima, determina se gli errori devono essere riportati sullo schermo o meno. “Off” è il predefinito.

LOG_ERRORS

Log_errors indica dove redirezionare i messaggi di errore dello script, nel log degli errori del server o in error_log.

FILE_UPLOADS

File_uploads, facilmente, consente o meno i caricamenti di file HTTP.

Thank You!

Categorie
Curiosità

The first thing to do when you have a big decision to make is to get drunk

I Persiani tenevano dibattiti da ubriachi prima di prendere importanti decisioni. La maggior parte degli argomenti venivano discussi da persone ubriache e sobrie. Solo le idee su cui erano d’accordo entrambe le parti erano considerate accettabili e di valore.

#I’mSureYouKnewThat

I’m sure you knew that…The first thing the ancient Persians did when they had a big decision to make was to get drunk…

Fonte: https://www.businessinsider.com.au/heres-a-management-technique-used-by-the-ancient-persians-which-applies-to-successful-companies-today-2014-3

Categorie
Linux Windows

apply_filters_deprecated() error WordPress

Normale amministrazione del proprio sito, entro nel pannello di controllo, eseguo gli update in modo “distratto” per tutti i plugin ed esco.

Ri-accendo alla mia area amministrativa ed ecco l’errore apply_filters_deprecated().

Fatal error: Uncaught Error: Call to undefined function apply_filters_deprecated()

Il sito, lato pubblico risponde perfettamente, accedendo all’area amministrativa invece il sito è inutilizzabile; questo errore si presenta ad ogni tentativo, cosa fare? cosa è successo?

Ovviamente aver appena interagito con i plugin non è un caso, il “colpevole” è infatti “Yoast SEO plugin”.

La procedura per sistemare le cose è semplice, via FTP o tramite il programma di navigazione del provider, occorre eliminare tutta la cartella wp-content/plugins/wordpress-seo

Adesso il sito dovrebbe rispondere ed essere nuovamente utilizzabile, ovviamente l’operazione precedente ha rimosso completamente il plugin quindi, per riutilizzarlo, occorre reinstallarlo.

Categorie
smartphone

Le migliori app per scaricare musica in mp3 da youtube su ios o android

Avere la nostra musica preferita sullo smartphone è ormai diventata una questione di principio. Oltre ai metodi più conosciuti utilizzati sul PC (P2P e grabber) ecco una lista di applicazioni per smartphone che hanno dimostrato il loro valore distinguendosi per facilità d’uso e praticità.

Andando sul rispettivo store ci si rende conto che di app per scaricare musica da YouTube ne troviamo molte ma qui voglio riportare le migliori app per scaricare musica in mp3 da youtube su ios o android che garantiscono il supporto vari formati musicali (MP3 in testa) e soprattutto sono gratuite

  1. TOTAL DOWNLOADER

Al primo posto, per IoS, tra le migliori app per scaricare musica da YouTube su iPhone metto Total Downloader. Questa app permette di trasformare un video della piattaforma Google in file audio MP3, con pochi passi. Una chicca per i più attenti alla sicurezza è quella di impostare una password di accesso alle cartelle, con questo accorgimento sarà semplice e sicuro archiviare la musica scaricata.

immagine dallo store

  1. YOUTUBE DOWNLOADER

Passando ad Android sicuramente spicca YouTube Downloader.

Una volta attivata la possibilità di installare applicazioni da sorgenti sconosciute (Impostazioni di Android, fai tap sulla voce Sicurezza e attiva l’opzione Origini sconosciute.) possiamo sfruttare l’elevata qualità audio (MP3 a 192kbps) semplicemente cliccando sulla miniatura e selezionando l’opzione MP3 – 192k dal menu. I brani verranno salvati nella cartella Download dello smartphone.

  1. SNAPTUBE

Su Android, per chi cerca applicazioni più curate sotto l’aspetto grafico ma ugualmente valide ecco SnapTube. Questa applicazione, oltre che “pescare” i video su YouTube offre tutti gli strumenti per scaricare video anche da Facebook, Instagram e altri servizi online.

Categorie
Programmazione Windows

Usare Composer php gestore delle dipendenze su windows

Un problema per chi si cimenta nel mondo del web development è rappresentato da come Usare Composer php gestore delle dipendenze.

Ecco alcuni utili consigli:

  1. Quando incontri documentazione che dice di eseguire Composer con php composer.phar install, puoi sostituirlo con:
    composer install

    Questa sezione presumerà che tu abbia installato composer globalmente.

  2. esegui le istruzioni navigando tramite CMD fino alla directory in cui è presente il “composer.json”
Categorie
Primi

Fiori di nasello alla pugliese

Ingredienti:

  • Pomodorini
  • Cipolle
  • Olio
  • Sale
  • Olive nere
  • Cuori di Nasello
  • Origano
  • Acciughe

PREPARA:

  1. Soffritto di olio e cipolle
  2. Aggiungere pomodorini
  3. Lasciare appassire
  4. Aggiungere origano, sale, olive, acciughe
  5. Aggiungere nasello
  6. Aggiungere acqua se troppo secco
  7. Accompagnare con vino secco bianco

Immagine

Impiattato con friselle

Immagine

Categorie
Linux

Metodo Delle Quadrature Successive con Esempio

Introduciamo ora il Metodo Delle Quadrature Successive (con Esempio) e vediamo come trovare il valore di 6^79 (mod 91) in 3 semplici passaggi:
  1. Scomporre l’esponente come somma di potenze di due (nell’esempio 79 = 64 + 8 + 4 + 2 + 1).
  2. Calcolare il valore della base elevata a tutti gli esponenti di due, ovviamente in modulo, partendo da 0 fino al massimo trovato. (Nel nostro esempio 6^2 (mod 91), 6^4 (mod 91), …, 6^32 (mod 91), 6^64 (mod 91) ricordandoci che possiamo sfruttare i risultati precedenti, ad esempio 6^2 (mod 91) = 36, 6^4 (mod 91) = 36^2 (mod 91).
  3. Concentriamoci adesso sui soli risultati che ci interessano, moltiplicandoli. (nel nostro esempio 6^2, 6^4, 6^8, 6^64 (6^0 e 6^1 li ottieni banalmente) tutti modulo 91.

A questo punto sia x il prodotto del punto 3, si calcola x mod 91 = y. Con quest’ultimo come risultato finale.

L’incremento di efficienza rispetto al prodotto iterato si vede anche ad occhio