Technologie Gadgets, SEO Tipps, Geld Verdienen mit WEB!

DreamHost intervista l’ingegnere software senior, …

DreamHost intervista l'ingegnere software senior, ...

In conversazione con Matthew Turland, direttamente da Lafayette, LA. Matthew è uno sviluppatore, autore e relatore di software professionista, con oltre 20 anni di esperienza nel settore dello sviluppo di software. Matthew è anche coinvolto nelle comunità di sviluppo open source ed è una figura ben nota nella comunità PHP e GitHub.

Shahzeb: Ciao Matthew, grazie per aver dedicato del tempo a questa intervista. Prima di iniziare, che ne dici di raccontare un po’ di te ai nostri lettori?

Matteo: Sono nato e attualmente risiedo a Lafayette, Louisiana. Fino a poco tempo fa avevo vissuto a New Orleans per diversi anni, ma recentemente sono tornato a Lafayette dopo aver perso la mia casa a causa dell’uragano Ida. Ho conseguito la laurea in Informatica presso l’Università della Louisiana a Lafayette circa 15 anni fa.

Ho iniziato a lavorare nel 2000, non molto tempo dopo il diploma di scuola superiore. Il mio primo lavoro è stato presso una società di ingegneria e mi occupavo principalmente di fogli di calcolo Excel e database Access utilizzando Visual Basic for Applications (VBA).

Da lì, sono passato a lavorare presso un conglomerato mediatico che sviluppava un sistema di gestione dei contenuti personalizzato per le pubblicazioni di notizie. Erano un negozio Microsoft: Windows 2000 Server, SQL Server 2000, IIS e ASP classico in VBScript. Questo accadeva prima che .NET entrasse in scena.

Quello che è successo dopo si adatta perfettamente alla tua prossima domanda…

Shahzeb: Allora, quando e come hai iniziato la tua carriera con PHP? Qualche storia interessante che vorresti condividere sul tuo viaggio? Quali sono state le sfide che hai dovuto affrontare all’inizio e come le hai superate?

Matteo: Il mio terzo lavoro era in un negozio PHP. All’epoca ero uno studente universitario e avevo un po’ di C/C++ alle spalle, quindi la sintassi di PHP non mi era del tutto estranea e sono riuscito a impararla in tempi relativamente brevi. All’epoca, il mio datore di lavoro aveva alcune applicazioni legacy in esecuzione su un server con PHP 3 e le sue applicazioni più recenti erano su un server con PHP 4.0.3.

Tutto ciò che potresti aver sentito sul codice di quell’epoca è probabilmente vero. Questo accadeva prima che esistessero molti dei pilastri dello sviluppo PHP moderno: caricamento automatico, suggerimenti sui tipi, spazi dei nomi, Compositoreecc. Il codice era disseminato di istruzioni require e in gran parte procedurali, con pochissima condivisione di codice che non implicasse la copia manuale da un sito come phpclasses.org e incollarlo nel tuo progetto.

Queste erano in gran parte limitazioni della lingua e del suo ecosistema dell’epoca. Il team principale era piuttosto isolato rispetto ad oggi e operava secondo un sistema karmico. Il processo RFC non esisteva ancora e i progressi nello sviluppo del nucleo del linguaggio tendevano ad essere molto lenti.

Penso che la cosa migliore che la maggior parte delle persone, me compreso, fosse realmente in grado di fare in quel momento fosse quella di impegnarsi attivamente nella comunità, comunicare con gli altri al suo interno, creare relazioni e attirare l’attenzione sui problemi di quell’epoca in modo che le cose alla fine cambierebbe. Se non altro, penso che quelle esperienze ci abbiano fornito uno status quo in base al quale giudicare lo stato delle cose oggi, e penso che il linguaggio e l’ecosistema abbiano fatto molta strada da allora.

Shahzeb: Mathew, anche tu hai scritto il libro Web Scraping con PHP. Potresti parlarci un po’ di questo libro? Chi dovrebbe leggere questo libro e in che modo aiuta gli sviluppatori a migliorare e diventare più efficienti?

Matteo: Col senno di poi, è vero che il titolo del libro può essere un po’ fuorviante.

Le esperienze che mi hanno influenzato nella scrittura di questo libro risalgono al mio primo lavoro con PHP. Lì ho lavorato a un progetto che prevedeva l’automazione del processo di acquisizione dei dati da un’interfaccia utente personalizzata a due diversi sistemi di dati di terze parti che presentavano alcune sovrapposizioni nei dati raccolti. Nessuno di questi sistemi aveva un’API (per quanto riguarda la memoria, allora non erano così pervasivi come lo sono adesso), quindi abbiamo dovuto ricorrere a metodi alternativi, vale a dire il web scraping, per raggiungere gli obiettivi del progetto.

Detto questo, chiunque sia interessato a saperne di più su HTTP, su come i browser web e i server funzionano e interagiscono tra loro, come gestire l’estrazione dei dati dal markup o come gestire le attività di automazione che coinvolgono applicazioni web (ad esempio test di sistema) dovrebbe leggere questo libro.

Non me ne rendevo conto quando ho iniziato a lavorare con PHP, ma ho sempre utilizzato HTTP senza rendermene conto. Ho fatto del mio meglio per scrivere un libro che avrei voluto avere quando ho iniziato a sviluppare PHP e che mostrasse alcune delle cose davvero interessanti che potresti fare con il linguaggio.

Shahzeb: Che tipo di ricerca svolgi e quanto tempo dedichi alla ricerca prima di iniziare a scrivere un libro?

Matteo: La ricerca che ho fatto prima di iniziare a scrivere è stata piuttosto superficiale: analisi di mercato, una presentazione (o “retrocopertina”) per il libro, un sommario che delineava gli argomenti principali che avrei trattato e così via.

La maggior parte delle ricerche coinvolte nel contenuto effettivo del libro sono state effettuate mentre il libro veniva scritto. In gran parte si trattava di esaminare le varie librerie client HTTP e le estensioni XML dell’epoca, capire come funzionavano e trovare esempi per mostrare come usarle. Nel farlo, ci sono stati anche alcuni casi in cui ho segnalato bug perché ho riscontrato un comportamento errato.

Sono andato avanti e indietro tra ricerca, scrittura e editing per sei o sette mesi consecutivi. Scrivere la prima edizione del libro ha richiesto molto tempo; in pratica, in quel periodo, ogni sera libera e ogni fine settimana vi erano dedicati.

Shahzeb: Ti piacerebbe condividere alcuni suggerimenti e trucchi per coloro che hanno appena iniziato a Utilizzare PHP?

Matteo: Dai una bella scossa alla lingua. Tutto ciò che hai sentito parlare di PHP 5-10 anni fa è probabilmente ormai decisamente obsoleto.

Guarda risorse come PHP nel modo giusto, php[architect] Rivista, Il blog di Brent Rooseo il libro di Josh Lockhart PHP moderno per saperne di più sull’ecosistema moderno e sulle migliori pratiche.

Scopri gli standard introdotti dal PHP Framework Interoperability Group (FIG). Questo ti fornirà molte conoscenze utili che si applicano a una serie di moderni framework PHP.

Esci e incontra tutte le persone meravigliose della comunità, che secondo me è l’offerta più preziosa. Vai a gruppi di utenti o conferenze PHP. Cerca sottocomunità su Slack, Discord, Stack Overflow o IRC a cui puoi unirti. Trova i progetti che ti appassionano e contribuisci alla loro realizzazione. Questi sono i modi migliori per imparare.

Shahzeb: Sembra che ti piaccia parlare alle conferenze PHP in tutto il mondo. Qualche intuizione sull’argomento di cui parlerai quest’anno? E dove?

Matteo: Ho alcune idee per i nuovi discorsi che proporrò; Probabilmente mi prenderò del tempo per scrivere degli abstract formali per loro durante le vacanze.

Uno riguarda SQL e le sue interrelazioni con la teoria degli insiemi. Quest’ultimo è un argomento che ritengo utile, ma non lo vedo trattato molto nei convegni; L’ho imparato all’università.

Un altro si occupa di raschiamento del web. La mia reputazione di esperto dell’argomento è iniziata con un articolo in php[architect] Magazine e da lì sviluppato nel libro. Stranamente, non ho mai tenuto un discorso in una conferenza sull’argomento, quindi immagino che sia ora di cambiare la situazione.

L’ultima idea che ho in questo momento è una sorta di successore del mio recente e popolare discorso “Come essere un grande sviluppatore”. Si concentrerà sul tutoraggio e approfondirà come portare nuovi sviluppatori nel settore e aiutarli a progredire professionalmente.

Migliora la velocità della tua app PHP del 300%

DreamHost ti offre server dedicati con archiviazione SSD, prestazioni personalizzate, uno stack ottimizzato e altro ancora per tempi di caricamento più rapidi del 300%.

Per quanto riguarda dove potrei tenere questi discorsi, è difficile dirlo ancora. Recentemente ho partecipato al Longhorn PHP – che tra l’altro è una conferenza fantastica – ad Austin, in Texas. Questa è stata la prima conferenza a cui ho partecipato di persona dall’inizio del blocco del COVID-19. Prevedo che per un po’ mi limiterò alle conferenze nazionali nelle vicinanze alle quali potrò viaggiare in auto o con un breve volo, almeno fino a quando le condizioni legate alla pandemia non miglioreranno.

Shahzeb: Cosa ti piace fare quando sei lontano dal tuo laptop?

Matteo: Mi piace giocare con i miei due cani, Sierra (un Pembroke Welsh Corgi tricolore) e Kaylee (un mix di rat terrier e bassotto). Prendono il nome dai personaggi delle serie televisive di fantascienza Dollhouse e Firefly. Sono un po’ un geek, se non si potesse già capire da questo. Mi piace leggere e guardare la fantascienza, anche se non trovo il tempo per farlo tutte le volte che vorrei.

Mi piace anche uscire con mia moglie. Durante la pandemia abbiamo iniziato a guardare video su YouTube, per lo più canali che trattavano di cucina e preparazione di cocktail, e di sfruttare ciò che abbiamo imparato in cucina.

Shahzeb: Quale tipo di web hosting preferiresti per i tuoi clienti o membri della comunità? Secondo te, l’hosting condiviso convenzionale è un’opzione praticabile per i progetti che svolgi?

Matteo: Non ho una preferenza forte, onestamente.

Penso che l’hosting condiviso sia ancora un’opzione praticabile e conveniente, soprattutto per siti o progetti più piccoli.

Negli ultimi anni, il cloud hosting è diventato un’opzione più diffusa, ma penso che tenda ad essere più adatto a progetti commerciali più grandi con requisiti infrastrutturali più complessi e personale esperto.

Se la qualità della connettività a banda larga nel paese migliorerà e tecnologie come Raspberry Pi continueranno a svilupparsi come sono state, posso anche vedere il self-hosting diventare un’opzione più comune e praticabile di quanto lo sia oggi.

Shahzeb: Cosa ne pensi delle soluzioni di hosting come DreamHost? Pensi che queste soluzioni aggiungano valore alle applicazioni basate su PHP?

Matteo: Penso che soluzioni come DreamHost aggiungano valore. Credo che molti sviluppatori indipendenti e piccole startup potrebbero trarre maggiori benefici dalle offerte di cloud hosting rispetto a oggi, ma hanno difficoltà con la relativa complessità e competenza richieste. C’è una ragione per cui DevOps ha un ruolo a sé stante al giorno d’oggi e perché le persone che sono brave in esso possono essere difficili da trovare.

Shahzeb: Può essere difficile conciliare il lavoro con la vita personale. Cosa ti piace fare nel tuo tempo libero? Qualche hobby che vorresti condividere?

Matteo: Ho ancora progetti collaterali di programmazione su cui lavoro nel mio tempo libero. Quello attuale è per la gestione delle finanze personali. Spero di aprire prima o poi il sorgente ai contributi, ma al momento è in uno stato pre-alfa.

Mi piacciono i giochi di ruolo da tavolo da molti anni. Durante il blocco, mi sono incontrato con alcuni amici online e da allora abbiamo giocato a D&D alcune volte al mese. Mi sono anche unito a un altro gruppo che gioca a Werewolf. In passato ho eseguito una piccola manciata di campagne che non sono più attive; Sto scrivendo un modulo basato su uno di essi, ma è un progetto a lungo termine.

Sono anche un giocatore occasionale di videogiochi. Occasionalmente gioco a giochi per cellulare, come Best Fiends o Wordscapes. Mi piacciono anche i giochi Steam; alcuni dei miei giochi più recenti su quella Piattaforma sono SteamWorld Dig 2, un simpatico puzzle/platform a tema steampunk, e Darkest Dungeon, un grintoso esploratore di dungeon. Trovo che i giochi siano un bel modo per rilassarsi.

Chiedi a chi mi conosce e sono sicuro che ti dirà che amo il karaoke, il canto e la musica. Non riesco a farli fuori casa quanto vorrei, ma ci provo ogni volta che posso. Se ti capita di trovarmi a una conferenza PHP, c’è una buona possibilità che proverò a coordinare un’uscita in un bar karaoke locale ad un certo punto mentre sono lì.

Shahzeb: Chi pensi che dovremmo intervistare dopo, e perché?

Matteo: La tua lista di interviste è davvero il Who’s Who della comunità PHP!

C’è una lunga lista di nomi che probabilmente potrei citare, ma se dovessi scegliere una persona che non abbia già fatto quella lista, probabilmente dovrei suggerirne una sviluppatori principali del progetto ReactPHPin particolare Cees-Jan Kiewiet (@WyriHaximus) o Christian Lück (@another_clue).

Il team principale di ReactPHP è piccolo, ma abbastanza affiatato e molto amichevole. Producono molti pacchetti davvero interessanti per eseguire varie forme di programmazione asincrona in PHP e hanno davvero contribuito a espandere i confini di ciò che può essere fatto con PHP come linguaggio.

Shahzeb: Per ispirare i nostri lettori, apprezzerei se potessi condividere alcune istantanee del tuo ufficio o della tua attuale postazione di lavoro.

Matteo: Grazie per avermi dato una scusa per riordinare un po’ la mia scrivania. Devo ammettere che non sono sempre così bravo in questo come dovrei essere.

Il mio laptop ha rinunciato non molto tempo fa, quindi sto utilizzando un Macbook Air in prestito del 2017 finché non riesco a risolvere il problema.

Il mio telefono è un Samsung Galaxy Note 9. L’altro caricabatterie che potresti notare è per il mio Samsung Galaxy Watch3.

Queste sono le cose che uso la maggior parte del tempo mentre sono alla scrivania. Il resto è per lo più cianfrusaglie: adattatori, periferiche e cose del genere.

Shahzeb: Grazie ancora, Matthew!

Matteo: Grazie! È stato un piacere.