Press "Enter" to skip to content

GOTO 2016 • What our Brains can Teach us About Software Engineering • Julie Pitt


bene, apprezzo davvero tutto ciò che sei
qui è bello tornare per il secondo
anno di fila oggi ho intenzione di essere
parlando di cosa rende il software
progetti così imprevedibili e ciò che noi
puoi farcela per averlo notato
questa è la pista di apprendimento profondo e io sono
arrivando all’apprendimento profondo da un po ‘di un
angolazione e cioè che se possiamo
capire come funziona il cervello che lo farà
un aiuto noi stessi problemi di sé umani ma
potrebbe anche far luce su come
le macchine potrebbero risolvere questi problemi
il futuro e essere un ingegnere è questo
tipo di area mi sto concentrando su come fare
diventiamo ingegneri del software migliori quindi
dovrei ricordarti prima di saltare a
si prega di valutare perché ho amato il tuo
feedback e ci sarà una coppia
domande paio minuti alla fine per
domande e anche io ho intenzione di essere
menzionando un gruppo di blog di progetti
post ecc, quindi non preoccuparti, ho un github
link qui che ha tutti i link il
in dettaglio ci si sente così libero di seguirlo
da quelle parti voglio solo dirti a
un po ‘di me stesso prima Aristotele
una volta l’ho detto per le cose che noi
dobbiamo imparare prima di fare ciò di cui abbiamo bisogno
imparare facendo loro e così il
la domanda con cui sto lottando è cosa
è l’intelligenza come funziona e
ciò che è in particolare il più semplice
modo possibile che possiamo descrivere
intelligenza che è confermata da cosa
vediamo nel mondo intorno a noi e anche
che potremmo confermare nella scienza così
il modo in cui sto affrontando questa domanda è
nel 2014 ho co-fondato una società chiamata
laboratori di ordine di grandezza e così siamo
apprendendo l’intelligenza di
tentando di costruire macchine intelligenti
e attraverso questo processo ho iniziato a
tipo di fare un passo indietro e pensare
questo attraverso e mi ha portato a iniziare
vedere il mondo in una nuova luce ed essere
in un ingegnere del software ho sorta di
applicato questo pensando al software
ingegneria e venire con un po ‘ di
alcuni angoli diversi su di esso che spero
condividere con
oggi quindi parleremo di un grande
motivo per cui i progetti software sono
imprevedibile di cui parleremo
come possiamo aiutare meglio i computer
capire cosa intendiamo e come possiamo
aiutarli a diventare più resilienti di più
autosufficiente in situazioni di stress
che non abbiamo necessariamente previsto e
infine per chiudere il ciclo come possiamo
capire meglio il nostro software
i sistemi stanno facendo così stiamo andando a
inizia con una piccola storia e storie
su un uovo è molto breve perché il
l’uovo non può davvero fare niente è solo
seduto lì così avanti viene questo
spatola e la spatola prende l’uovo
e lo trasforma in un uovo strapazzato così
è un po ‘triste perché c’era
davvero niente che potessi fare, quindi facciamolo a
piccolo esperimento di pensiero cosa succede se questo
l’uovo invece aveva una faccia così poteva sembrare
intorno e vedere il mondo che lo circonda e
quindi aggiungiamo un altro ingrediente che ha
gambe in modo che possa muoversi e vedere il
mondo da prospettive diverse così ora
se aggiungiamo un terzo ingrediente diciamo
l’uovo ha un cervello che stessa spatola
arriva l’uovo lo vedrà
arrivando e poi correrà
via così si sta per prevenire se stesso
dal diventare quell’uovo strapazzato e in
la mia mente è davvero la più semplice
descrizione che potrei inventare
la vita così veramente gli ingredienti principali per
la vita hai una serie di sensi e
attuatori se tu fossi al keynote
stamattina potresti averlo visto
questo è abbastanza simile a quello che era
parlato di lì con avere attuatori
i sensori e il bit nel mezzo è
davvero computazione ma quello che sono
descriverci è come un generativo
modello e quindi il modello generativo
essenzialmente interpreta ciò che sta arrivando
attraverso i sensori e sta generando
percezioni su cosa è ciò che è
vedendo
e poi sta anche generando azione come
bene e in un certo senso questo è davvero
tutto ciò di cui abbiamo bisogno per sopravvivere, quindi stiamo provando
per navigare in questa bolla immaginaria
qui ciò che è prevedibile è felice
Afferma che questa è davvero la nostra sopravvivenza e
usiamo il nostro modello generativo per trovare
dov’è il confine e come restiamo
all’interno di quel confine perché vogliamo
essere qui nella zona di sopravvivenza non lo facciamo
voglio essere qui, quindi la cosa bella
su questo siamo creature che hanno
evoluto in milioni di anni e noi
hanno sensori molto sviluppati che sono
andando ad aiutarci a stare dentro quella bolla
con pochissimo sforzo cognitivo quindi per
esempio se vedo una tigre proveniente da 200
A 200 metri di distanza sono in Europa
quindi non devo smettere di guardare e andare
hmm, che cosa dovrei fare?
perché dal momento che la quantità di
il tempo è scaduto. Sto già correndo
l’altra direzione, quindi cosa succede se sei un?
un particolare tipo di umano però cosa succede se
sei un ingegnere del software e il tuo lavoro
ora è un po ‘più complicato
perché non solo hai bisogno di sopravvivere
ma devi mappare una bolla magica
del software di lavoro e devi restare
fuori da questa zona di software non funzionante
tranne il problema è che non hai un
set di sensori altamente sviluppato che
si sono evoluti nel corso di milioni di anni a
ti dico subito in un battito di ciglia
occhio oh questo è un software funzionante e questo
Non è un software che lavora non invece su
gli anni come hai sviluppato la tua abilità
di ingegneria hai creato un set di
euristica un insieme di se vuoi alto
sensori di livello nel tuo cervello che sono
intenzione di dirti con un po ‘di mentale
sforzo se qualcosa sta funzionando o
non è una buona cosa che il nostro immediato
la sopravvivenza di solito non dipende da questo
ma alcuni in alcune situazioni in realtà
fa così ecco la cosa
come ingegnere ne hai effettivamente uno
livello di riferimento indiretto aggiunto a
sfidarti un po ‘il software
si scrive da sé può essere pensato come
un modello generativo di sorta in ciò che è
prendendo input arrivando dal mondo
forse è un altro sistema software
interagendo con e sta generando
qualche uscita che deve avere un po ‘
comportamento che corrisponde a ciò che ti aspetti
ma c’è qualcosa di diverso in
questo modello generativo del tuo cervello noi
tutti sanno che il codice e il cervello non lo sono
la stessa cosa penso una differenza fondamentale
nella mia mente è questo il modello generativo
è infinitamente preciso per cui ti trovi male
un personaggio l’intero significato del tuo
il codice può cambiare non c’è tolleranza per
sorta di rumore e incertezza che noi
tutto può interpretare nel nostro cervello che viene
dal mondo reale, quindi verrò
torna a questo punto in solo una coppia
diapositive quindi immagina di essere il tipico
software engineer e il tuo capo arriva
e dice oh, dobbiamo aggiungere questo nuovo
caratteristica per il nostro prodotto così va bene vado
a pensare che si spende un paio
giorni lavorando a un loro progetto
i colleghi ti sfidano con domande
Stavo andando a questo lavoro è che andare
lavorare e ogni domanda che puoi
rispondi e ti rendi conto che questo succederà
sii eccezionale, quindi inizi a implementarlo
e molto presto sei nella tua zona
perdere ogni traccia del tempo e tu sei solo
immaginando quanto è grande questa caratteristica
sarà una volta che lo rilascerai
produzione quindi finalmente quel grande momento
arriva il momento della verità e poi questo
succede oh mio dio cosa è successo che ho fatto
non dire al robot di uccidere la gente
è assolutamente terribile, quindi?
è successo hai pensato di essere dentro
questa piccola zona felice di hey tutto
sta funzionando e va tutto bene ma dentro
la realtà sei uscita qui, giusto e
allora questo è in parte perché lo sei
lavorando indirettamente attraverso questo
modello generativo chiamato codice senza il
uso dei sensi per guidarti, quindi andiamo
e guarda questo codice
alza la mano quando vedi qualcosa
sbagliato con il codice che è stato scritto
c’è tutto bene qualcuno va bene a vedere alcuni
le mani vanno bene così se non te ne sei accorto
questo è molto probabile vedere il codice basato su
la sintassi e questo qui è un
operatore di assegnazione e questo è sessualmente
una cosa davvero brutta in una dichiarazione if
alcune lingue non lo consentirebbero
compilare così purtroppo sei sempre
finirò per uccidere gli umani, quindi voglio
per sottolineare un paio di cose su questo
cappotto prima di tutto non penso nessuno di
entro un paio di centinaia di millisecondi
di vederci tranne forse quel ragazzo
laggiù sono rimasto molto colpito da come
veloce che mano quanto sopra non penso che qualsiasi
di voi potreste dire ah oh mio dio
il codice non funziona ho bisogno di correre
via perché ci sarà
robot assassini è terribile, vero
dovuto passare attraverso passare alcuni secondi
pensando attraverso di te sai cosa potrebbe
possibilmente andare storto e quale sia la natura di
questo è l’ altro pezzo che voglio
Fai notare che conosci un singolo
il personaggio qui mancava
esattamente ciò che intendo per infinito
precisione giusta che stai cercando di creare
qualche comportamento in questo robot ma uno
la cosa va storta e tu stai cadendo
la scogliera è così in contrasto con quella umana
precisione di livello se ho intenzione di dare
istruzioni a un umano che potrei dire
loro qualcosa in molti modi
forse anche un numero infinito di modi
va bene essere gentili con il rispetto delle persone
la vita umana non ferisce le persone proprio così
persona se hanno seguito le mie istruzioni
probabilmente finirebbe per non uccidere umani
esseri proprio noi viviamo in questo rumoroso
mondo di precisione limitato e noi nostri
cervelli che i nostri modelli generativi non hanno
qualsiasi problema con quello, ma se sei il
computer devi essere proprio sul bersaglio
perché se siete qui si sta andando a
finire con questi pazzi robot assassini
oh mio dio, ecco un altro modo di guardare
a questo va bene di solito la prima cosa che tu
pensa a quando stai progettando un
sistema è ciò che è il percorso felice giusto
e se ci pensi e niente
altrimenti finirai per generare
qualcosa in cui il paesaggio sembra
qualcosa di simile felice felice felice oh
il mio dio è completamente rotto proprio così
davvero le scogliere di infinita precisione
che vogliamo davvero evitare così tutto è
non perso però perché possiamo cambiare
il paesaggio un po ‘quello che preferiremmo
avere è un modello in cui pensiamo di ordinare
della cima di un dolce pendio con
Stati ottimali qui e quando quando il
il caos rumoroso del mondo entra in te
scendere la pendenza in modo graduale dove
sei degradante e non solo quello ma
senza intervento umano il tuo sistema
sarà elastico come in esso può salire
torna in cima con noi con questi
stati ottimali quando lo stress si allontana
quindi oggi parlerò di come
può fare questo non possiamo fare il computer
meno preciso ma possiamo imbrogliare così diversi
modi in cui possiamo fare questo o possiamo farlo
pensa ai test in termini di test
proprietà che possiamo fare rimedio primo progetto
probabilmente non hai idea di cosa sia
piacere parlarne e possiamo costruire
intuizione intuitiva quindi questi sono solo
diversi modi per farti pensare
come possiamo cambiare il paesaggio del
software che produciamo quindi parliamo
sui test di proprietà quindi immagina
non hai mai visto una palla di gomma nella tua
la vita e qualcuno ti porge una vasca di
palle di gomma dicono solo che ti fanno
sapere giocare con loro e vedere
cosa pensi così inizi a sceglierli
alcuni sono grandi, altri piccoli
colori e prima o poi ne cadi uno
a terra e noti qualcosa
strano succede che rimbalzi e tu continui
giocare con le palle e mangiare e tu
lascia cadere un altro e quello rimbalza
troppo presto li stai buttando addosso
il terreno sta andando wow questo è pulito loro
Tieni il rimbalzo una settimana e il tuo
amico ha una palla e tu dici hey posso
vedi che lo prendi e rimbalza
quindi cosa hai imparato qui hai imparato a
proprietà di palle di gomma che loro
rimbalza non hai bisogno di vederli tutti
singola palla di gomma nell’universo a
tipo di avere questa idea che se si sceglie
su una palla che sta per
quello che non hai imparato è ehi lo sai
questa palla blu rimbalza quella palla rossa
rimbalzi sapere che sono stati in grado di
generalizzare a un livello più alto, quindi cosa noi
può fare è prendere questa idea che è così
molto naturale e come impariamo come vediamo
il mondo e applicarlo al modo in cui lo facciamo
test che avranno un effetto a catena
nel modo in cui pensiamo anche ai nostri sistemi
come li progettiamo, quindi prenderò un
leggera deviazione fino a quando non torniamo a questo
punto speriamo che diventi chiaro in a
alcune diapositive per tornare alla nozione
di codice essendo un modello generativo bene
il tuo test è il codice che hai scritto e così
in un certo senso è un modello generativo ma
cosa sta cercando di generare in questo caso
è in realtà esempi di formazione quindi se
stai allenando una rete neurale come in a
supervisionata destra di moda che si desidera
dargli un sacco di input X e tu vuoi
per cambiare i pesi in modo che lo faccia
produrre alcuni risultati di prova perché
essenzialmente così invece di dire fare
riportato il gradiente di propagazione
discesa su una rete neurale quando
viene a testare suite o stiamo fornendo
risultati dei test che diamo agli esseri umani
addestrare gli umani a scrivere un codice migliore
essenzialmente così quando inizi a pensare
di testare in questo modo si inizia
per realizzare hey se facciamo solo test unitari
e nient’altro c’è una specie di dati
problema perché il modo in cui la maggior parte dei test unitari
sono scritti è oh bene sto andando a portata di mano
codifica un esempio di allenamento specifico se tu
e io incrocerò davvero il mio
dita e spero che rappresenti questo
più grande bolla di stato o comportamento che
stiamo cercando di testare quindi lascia che ti dia
un esempio viene da un fantastico
blog post parla di test di proprietà in
f-sharp ma non devi farlo f
arpa per ottenere un sacco di valore da esso
non so F sharp me stesso per questo test
sta essenzialmente cercando di testare una funzione
che aggiunge due interi niente di eccitante
ma fornisce solo un allenamento
esempio a destra più due
Mi aspetto di ottenere tre indietro così il tuo test
passa e ti schieri in produzione come
si andrà tutto bene ma fallisce
in modo spettacolare quindi cosa è andato storto qui
andiamo indietro e guardare il test che
in realtà abbiamo scritto o il codice che noi
in realtà ha scritto e scopriamo che wow te
Sappi che questo non è un sovradattamento
fondamentalmente hai ragione su quello che stai dicendo
sta bene quando ottengo l’esempio di allenamento
il test che ho scritto ho intenzione di dare
è la risposta giusta e ogni altra risposta
sai chi se ne frega così davvero tutto te
avrebbe dovuto fare in termini di tat
i tuoi esempi di allenamento per trovare il bug
è un po ‘solo fare un passo verso il
a sinistra e avresti trovato qualcosa
era gravemente sbagliato tutto bene
succede sempre se la tua unità
prova proprio tu pensi che questo
esempio è venuto
rappresentante e infatti non è così
cambiamo il modo in cui inquadriamo
il problema e torniamo a quel
idea di test di proprietà che vogliamo
essere in grado di pensare ai nostri sistemi in
termini delle proprietà che aderisce
a noi non vogliamo dover dire bene te
sapere raccogliere questa palla blu e dovrebbe
rimbalzo raccogliere la palla rossa dovrebbe
rimbalzo vogliamo essere in grado di dire di no
palla che ha queste caratteristiche su a
superficie dura sta per rimbalzare, quindi cosa
questo fa sì che ti liberi di generare
molto facilmente usando diciamo casuale
interi in questo caso un insieme massiccio di
dati di allenamento e puoi circondare il tuo
bug con il tuo test quindi cosa stiamo facendo
qui per favore prendi un numero intero casuale e
stiamo dicendo hey testiamo la proprietà
che prendi il numero X NEX aggiungi zero
ad esso e hai intenzione di ottenere quella x
tornando a destra puoi immaginare che forse siamo
andando a testare la proprietà commutativa
non va bene, quindi forse lo siamo
andando a testare la proprietà commutativa
e scambia l’ordine degli operandi così
quando inizi a pensare in termini di
Proprietà è più adatto al modo
che noi
sperimentare il mondo ed è di più
tollerante a specie di rumore nel
esempi di formazione giusti, non importa cosa
esempio di addestramento ci buttiamo su questo
la proprietà dovrebbe essere vera e se lo è
allora non abbiamo un problema quindi facciamolo
recensione possiamo pensare alla nostra suite di test come
modelli generativi che stanno generando
esempi di formazione per il sistema che
stiamo testando e se lo faremo se saremo in grado
per descrivere le proprietà del nostro sistema
allora saremo in grado di fare molto meno
sforzo per testare e ci arriveremo molto
copertura migliore che corrisponde al tipo di
questa rumorosa natura incerta del mondo
giusto possiamo possiamo generare molto
più grandi esempi di formazione quindi parliamo
circa rimedio primo disegno e ancora questo
è meglio descritto in termini di vita reale
esperienze quindi immagina di stare in piedi
in mezzo alla strada e tutto a
improvviso un grosso oggetto pesante che puoi vedere
sta arrivando la tua parte dell’occhio
verso la tua testa quindi il tempo per più persone
quiz di scelta vorresti guardarti
oggetto prova e determina cosa è cosa
la sua traiettoria perché vola al tuo
testa da dove viene o B vuoi
saltare fuori dal modo in cui non lo so
tu ma io sceglierei B perché se io
scegli B poi a Sto mantenendo il mio
forma originale sono sopravvissuto e BI hanno
ora di andare a vedere bene cos’è stato
cosa da dove viene viene e
come lo evito e quindi è necessario
inizia a pensare in questo modo quando ti creiamo
sapere progettare costruire e testare il nostro
anche i sistemi software che vogliamo
creare sistemi software che sono bravi a
saltando via quando questi grandi
gli oggetti volanti pesanti vengono piuttosto a loro
di essere fissato su bene, perché questo?
succede e come lo ripariamo giusto se tu
può saltare fuori dal modo in cui hai un sacco
di tempo per capire perché qualcosa
è successo quindi passiamo attraverso un esempio
diciamo che si sta scrivendo un client a un
servizio riposante e tu hai questo
richiesta di metadati qui
e non conoscere niente altro circa il
client o circa l’API che torni
questo codice di errore huh codice di errore due tre
quattro cosa dovremmo fare su questo facciamo
dì che ti giri un po ‘
trova che oh se lo riprovo HAP lo sai
questo non accade di nuovo, ho il
i metadati sono tornati quindi basta aggiungere un po ‘
agganciare al tuo cliente che dice hey se io
ottieni il codice di errore due tre quattro facciamolo solo
fai un tentativo quindi tutto va bene, spingi
alla produzione ma poi qualcosa di strano
succede che ottieni il codice di errore 235 in
produzione e il tuo cliente cade a
scogliera di precisione infinita perché tu
ha scritto qualcosa nel vostro cliente che
si occupa di una causa specifica una specifica
codice di errore piuttosto che tipo di prendere un
fare un passo indietro e guardare a quali rimedi
potresti candidarti per andare al the
persona del servizio di assistenza che è venuto fuori con
questa API neyo hey cosa ti dà sapere
da dove viene questo errore e loro
dite che sapete quando progettiamo questa API noi
ha inventato un’intera lista di errori
pensavamo che sarebbe successo, ma poi
l’abbiamo messo in produzione lo abbiamo scoperto
oh aspetta un attimo ci sono altri errori
che dobbiamo iniziare ad aggiungere giusto
ci sono più cause e vogliamo avere
intuizione di queste cause e questo è un
cosa perfettamente ragionevole da fare tranne te
non dire in nessun modo che io abbia intenzione di farlo
passare il mio tempo rimanendo con l’aggiunta di tutto
questi codici di errore per il mio cliente è così
come non un buon uso del mio tempo quindi
entrambi fai un passo indietro e inizia
pensandoci un po ‘di più e
ti rendi conto che se rifai questo
tutta la discussione per parlare di come può
otteniamo che il nostro cliente esca dal salto
fuori mano perché indovina quale
al cliente non interessa davvero se c’è un
esaurimento del pool di connessione sul server
il cliente vuole solo fare la sua cosa
e servire l’utente correttamente in modo da iniziare
raggruppare questi errori in termini di cosa
rimedio puoi applicare in questo momento
che il cliente può fare progressi e
nello specifico intendo forse ce ne sono alcuni
insieme di errori che potrebbero riprovare forse
ce ne sono alcuni che vorresti fare a
reindirizzare per forse l’utente incasinato
e vuoi visualizzare un errore giusto
va avanti forse vuoi girare CENTAC
otto quindi la bellezza di questo è quello
ce ne sono molti meno
possibili rimedi quindi ci sono cause
ti fa uscire dal gioco di avere un
prevedere quali sono tutte le cose possibili
potrebbe andare storto sul mio sistema e
ti coinvolge nel business di come faccio
reagire ad errori quando sta accadendo a
allora comprimi il tempo per capire qualsiasi cosa
le cause accadono così veramente da asporto
da questo hai aggiunto qualcosa di tuo
ragazzo ha aggiunto qualcosa al protocollo che
dice oh ecco un’azione che il cliente può fare
ignora questa informazione il cliente
può semplicemente agire in base a ciò che viene detto
fare e poi le persone del server possono andare
capire cosa effettivamente è andato storto così
questi sono errori a livello di applicazione ma
c’è tutta una serie di altri errori
che sono un po ‘al di sotto di quel livello cosa
su cose che sono accadute nel cloud
ad esempio se sei distribuito su AWS
AWS ha avuto i suoi alti e bassi e in qualsiasi
momento potrebbe esserci una specie di servizio
interruzione così per esempio nel 2012 ci fu
una tale interruzione è iniziata con un fallimento
per propagare le modifiche DNS attivate
questa memoria latente perde il failover
non è successo perché l’ avviso
non è stato impostato correttamente e quindi i clienti
si è strozzato e ora i servizi sono diminuiti
questa è una catena di eventi molto specifica
è successo che non penso nessuno
la persona avrebbe potuto prevedere i tempi
delle specifiche del sovietico veloce
avanti al 2014 ci fu un bisogno
aggiornamento della sicurezza a circa il dieci percento di
nodi ec2 e che significava riavviare così se
stai facendo funzionare un’applicazione stateful
ec2 e tu non ne hai idea
strategia per affrontare i riavvii che potresti
scuotere gli stivali a questo punto
un altro è successo l’anno scorso c’era
un DB dinamo interrompe una dozzina di AWS
i servizi sono usciti e questo è andato giù
un bel po ‘di internet, quindi questo è
tipo di solo per darvi un esempio
diversi esempi di diversi tipi di
fallimenti che potrebbero accadere e cosa succederebbe se io
ti ho detto se c’era una compagnia
nonostante abbia fatto un evento massiccio e pubblico
investimenti in AWS
era pronto per tutti questi e non lo era
influenzato da uno di questi incidenti così
quella compagnia era Netflix quanti di voi
ragazzi hanno sentito parlare di esercito delle scimmie a posto alcuni
forse dopo le 30 forse voi ragazzi sì
se non sai cosa sia l’esercito simian
è un progetto open source di Netflix e
l’obiettivo di questo progetto è quello di
causare deliberatamente un fallimento in a
modo controllato nella produzione va bene
che lascia che affondi in un attimo cosa
causare deliberatamente un fallimento nella produzione
quindi i tipi di fallimento che sta succedendo
per causare sarebbe per esempio prendendo
un nodo ec2 casuale che elimina un intero
centro dati che estrae un’intera regione
giusti questi sono tipi di massicci fallimenti
ce n’è un altro che introduce
latenza e l’intero obiettivo di questo è quello di
convalidare se i sistemi gestiscono errori
quindi era intorno al 2011-2012 che Netflix
davvero iniziato a mettere questa idea di
test di fallimento nella produzione in
pratica e posso dirlo davvero
ha causato un cambiamento culturale e questo fallimento
divenne la norma divenne un argomento di
discussione al primissimo disegno
discussioni su un nuovo servizio e penso
l’idea più potente sulla scimmia
l’esercito è che simula la natura di
l’errore i nodi giusti vanno via tutti
i data center dei tempi vanno via sempre
non prova a simularne le cause
non c’era la conoscenza di oh
c’è questo errore DNS e vediamo
cosa succede quando attiviamo un DNS
fallimento era molto più ampio e
meno preciso e tipo di riconoscimento
il fatto che noi umani siamo terribili a
prevedendo eventi specifici ma possiamo
ottenere un senso generale dei modelli di
fallimento quindi basta rivedere quando lo sei
quando crei un sistema sei
progettandolo e provandolo per farlo con
i rimedi in mente pensa a come puoi
saltare fuori da quel volo
oggetto
e come puoi farti guadagnare tempo?
vai a prendere i pezzi più tardi questo è
in realtà una cosa grandiosa perché il
numero di rimedi è molto inferiore al
numero di cause e ti esorto a testare
la tua capacità di recupero durante l’orario lavorativo
potresti dire che mi ci vuole troppo tempo
non ho tempo per quello, indovina un po ‘
sarà testato per te no
importa quello che sarà o sarà fatto
perché l’hai fatto apposta o perché
qualcosa di catastrofico è successo alle tre
al mattino e ti sei svegliato così
rivolgiamo la nostra attenzione all’intuitivo
feedback abbiamo parlato di te
conoscere la progettazione di test di costruzione nostro
sistema, ma come possiamo effettivamente ottenere
informazioni indietro dal sistema che
ci aiuterà a capire se c’è un
problema o no e come andare dove andare
guarda dopo così il posto che vogliamo
BE è che vogliamo essere quel ragazzo in piedi su
l’orizzonte guarda il paesaggio
e in grado di vedere in un batter d’occhio oh
c’è una tomba di fumo laggiù
vai a guardare là e scopri cosa c’è
andando avanti così come lo facciamo oggi?
delle prime cose che molti di noi
tendono a fare è aggiungere i registri perché
sono molto facili da aggiungere al nostro codice
può produrre una linea molto una linea e
all’improvviso hai enormi file di registro
ok ok, quindi questo non è il mio preferito
modo di cercare di ottenere la disposizione della terra
perché nella mia mente guardare attraverso i registri
è come se guardassi un film
un fotogramma alla volta attraverso un buco della serratura
fondamentalmente è come se lo sapessi
cosa sta succedendo forse se si torna indietro
e avanti e forse se ne hai abbastanza
tempo ma quando sei nel momento e
hai bisogno di alleviare un certo tipo di dolore
questo punto non sarà davvero il
uso più efficace del tuo tempo e
inoltre non usa il nostro altamente evoluto
ha sviluppato sensi usa la nostra euristica
che abbiamo faticosamente costruito nel nostro
cervelli nel corso degli anni che richiedono molto
di sforzo mentale per elaborare, quindi facciamolo
rivolgi la nostra attenzione
due grafici questa è una cosa molto più bella
guarda e aggiunge una nuova dimensione
c’è il tempo qui così tu sei
vedere molto più condensato compresso
informazioni che hai un po ‘intuitivo
le aspettative si sa che il tempo passa
da sinistra a destra più in alto significa di più
colori diversi significano cose diverse
ottimo quindi inizi ad aggiungere un sacco di cose
delle metriche al tuo sistema che tu strumenti
strumento come pazzo perché perché no
perché non vorresti quell’informazione?
quindi ora hai un nuovo problema e quello
nuovo problema è aspettare un minuto che ho così
molte metriche non so nemmeno quale
quelli a cui guardare in primo a destra si potrebbe
avere diverse dimensioni per
guarda le tue metriche e come stai
vedi come li guardi?
in tal modo che stai scansionando il
paesaggio direi che è leggermente
meglio dei log in realtà un bel po ‘
meglio, ma stai ancora guardando un film
attraverso un piccolo buco della serratura questa volta tu
hai una specie di intervallo di tempo che puoi andare
Oh hmm sta succedendo qualcosa, quindi questo
è ciò che vogliamo veramente vogliamo questo
immagine perché tutti voi all’interno di a
un paio di centinaia di millisecondi era come oh
Dio mio, dobbiamo andare a vedere quel tipo
sta succedendo qualcosa di pazzo, sta bene
non dobbiamo preoccuparci di questo
ora quindi non c’è molto che lo faccia
questo ancora ma c’è davvero questo
progetto interessante e ironicamente sì
è anche da Netflix questo è un open
progetto sorgente si chiama viscerale quindi io
voglio mostrarti questo video che potrebbe
darti un senso per quello che intendo
intuizione intuitiva quindi cosa stai cercando
qui è in realtà tutto il traffico
entrando in netflix da internet
e senza alcun allenamento probabilmente
capito che ci sono meno punti
qui che ci sono qui, quindi non ci deve essere
essere più traffico andando qui e anche
senza alcun allenamento probabilmente
ho notato che ci sono altri punti rossi in movimento
da quassù qualcosa è un po ‘sospetto
andando a destra così stai usando il tuo
senso intuitivo ora si sta guardando
e andando oh è interessante wow
ci sono piccoli punti in movimento
qui forse c’è un qualche tipo di evento in
progresso e puoi ottenere questo tipo di
quadro complesso di ciò che sta succedendo ma
allo stesso tempo non devi andare nel panico
perchè ok bene il
il tasso di errore qui non è incredibilmente alto noi
non è necessario avere le mani sul ponte
a questo punto, di nuovo, fa leva
i nostri sensi di basso livello senza richiedere
tonnellate di sforzo cognitivo e quindi eccomi qui
deducendo che quello che sta succedendo è ora
i clienti hanno fallito proprio così
c’è un’immagine molto complessa di ciò che è
andando avanti con pochissimo sforzo sul nostro
parte per capire quindi sto solo andando
mostraci ancora una volta questa è una visione di un
intera una singola regione era uno dei
quei cerchi e ogni punto è un micro
servizio quindi non ne so nulla
che microservizi questi sono ma io faccio
sappi questo guardando questo wow questi punti
le linee nel mezzo sono così solide
punti questi devono essere davvero importanti così
in termini di L se inizio a vedere punti rossi
da queste parti, io so meglio di te
urgenza del mio sai chiamare per il
team di ingegneri che gestisce un servizio
e posso anche guardarlo e andare oh
bene queste altre squadre che conosci
legato ad esso sono anche interessati a destra
ancora pochissimo sforzo per ottenere il lay
della terra quindi perché non c’è molto
in questo spazio ancora voglio fare un altro
esperimento di pensiero con te questo è gentile
solo per farti pensare a come
possiamo costruire intuizioni intuitive, quindi cosa?
se le interazioni tra il
i componenti del tuo sistema sembravano
le auto percorrono la strada così semplicemente
immagina che sei seduto di lato
della strada chiudi gli occhi e basta
sentire le macchine che passano sembra normale
molto presto la tua attenzione si volge
sai cosa hai intenzione di avere
cena quello che hai intenzione di fare sopra il
fine settimana a cui non stai nemmeno pensando
le macchine che guidano lungo la strada, ma poi
passano un paio d’ore e senti un forte
incidente proveniente da lì così tu
apri immediatamente gli occhi e guarda oltre
lì come oh mio dio, così sai esattamente
che quando qualcosa è successo dove
Veniva da e puoi iniziare
rispondere molto velocemente a questo, quindi questo è
davvero il potere delle nostre recinzioni primarie
non stiamo mettendo molto cognitivo
sforzo per ascoltare le macchine
sulla strada settimana ma possiamo subito
rilevare anomalie quindi non sto suggerendo
che oh l’onda del futuro è quella
noi impieghiamo gli umani 24-7 per ascoltare
il traffico del server, al contrario, penso
questo è un ottimo lavoro per le macchine ma
questo è una specie di di farti pensare di
ehi fino a quando le macchine non saranno davvero brave
facendo questo come possiamo presentare meglio il
informazioni su cosa sono i nostri sistemi
in realtà così facendo solo per rivedere vogliamo
per sapere a un livello alto è che lavoriamo noi
voglio scansionare il paesaggio e trovo
che gli strumenti che sono più
popolarmente utilizzato oggi grafici e registri
tipo di inibirci dal farlo e
in realtà non farebbero uso dei nostri ricchi
segnali sensoriali quindi ho bisogno di più strumenti
che vivono sfruttano la nostra intuizione e io
pensa viscerale è un primo di speranza
molti esempi di questo come sto facendo
tempo va bene quindi voglio concludere e
tipo di sguardo guarda un po ‘al futuro
un po ‘qui, quindi ho parlato molto
di sfide nell’ingegneria del software
e alla fine penso che siano questi
in realtà molto maturo per le macchine
aiutaci a fare il nostro lavoro, penso che
questo sarà il primo onda
portaci da te sai dove siamo ora
fino a un certo punto nel futuro quando noi
non è più necessario scrivere codice e
ci sono anche le macchine nutrizionali
un codice di scrittura o semplicemente imparare qualcosa
il mondo e facendo il loro lavoro, quindi facciamolo
parla di un paio di possibili
applicazioni che penso ci aiuterebbero
navigare tra questa interfaccia
macchine infinitamente precise e tu sai
il mondo reale con un sacco di rumore e
incertezza quindi penso ad un’area che io
mi piace quando domanda mi piacerebbe vedere
sarebbero i test guidati dalla curiosità
Immagina di avere un agente di prova, se tu
volontà e ha un insieme di sensi e
ha una serie di attuatori e di cosa si tratta
facendo è è attivato il sistema sotto
prova e inizia davvero un po ‘
corse
Emily, appena inizia, sai di giocherellare
manopole e quadranti e solo vedere cosa
succede che esplora casualmente il tuo
sistema e poi alla fine nel tempo
inizierà a costruire un modello di ciò che è tuo
il sistema è e ciò che farà si formerà
aspettative a riguardo e così via
con quelle aspettative a cui può iniziare
oops non fa che mappare le anomalie giuste
quindi può andare oh, sai qualcosa
il canto deve cambiare nel software
perché la scorsa settimana ho avuto questa cosa
e ora sto prendendo quest’altra cosa
giusto il nostro morbido o sai il mondo
di consegna continua le cose cambiano così
veloce è davvero difficile per qualsiasi persona
per stare al passo con tutto questo ma se lo avessi fatto
questo agente curioso se lo vorrai
spingere costantemente intorno potrebbe prendere
su cose che dicono il nostro limitato
gli intervalli di attenzione non necessariamente
riprendere e direbbe hey ingegnere
le persone hai davvero inteso questo o hey
vai a guardare qui perché questo
non sembra giusto quindi ne penso un altro
area davvero interessante per profondità
l’apprendimento sarebbe fondamentalmente necessario
avere un agente che aiuterebbe con se stesso
sistemi di guarigione quindi in questo caso il
il senso sta arrivando sono davvero il
informazioni di telemetria sul sistema
viene gestito e le azioni
ciò che può essere eseguito sono cose come
fare distribuzioni in scala in un altro
modo intelligente di dire qualche CPU
soglia ad esempio forse failover e
Penso che questo sia il posto in cui, se noi
può iniziare a inchiodare pezzi e pezzi di
questo problema inizierà a sanguinare
in più e più mainstream sai
forse inizierà a fare traffico
routing giusto intendo che non so come
molte volte gli esseri umani ti hanno scritto
conoscere un router per il traffico internet ma
cosa succederebbe se quegli algoritmi ora fossero fatti
da queste macchine quindi ti esame
sappiamo che siamo un po ‘curiosi di questo gruppo
esseri umani che non solo hanno
navigare nel mondo naturale e la figura
fuori la bolla di sopravvivenza ma abbiamo anche bisogno
a
navigare nel mondo del software di lavoro e
lo stiamo facendo indirettamente con questi
modelli generativi che oggi chiamiamo
codice e davvero quello che vogliamo fare
perché le macchine sono infinitamente precise
vogliamo allontanarci da questo modello
dove abbiamo questa nozione di percorso felice
questo porta forse a questi uh turley
Stati rotti e vogliamo arrivare a
paesaggio che supporta la resilienza
questo è ciò che può fare il nostro sistema software
navigare situazioni che davvero
non ha previsto in primo luogo e così
quello è avvolto nella fine per oggi e
Voglio davvero ringraziarti per essere venuto
e per favore dammi una valutazione
quindi questa è una domanda una domanda sì
o ho fatto il mio lavoro davvero bene o io
confondere il diavolo fuori di te e c’è
così è grasso, è giusto dirlo
serrature e grafici non sono la risposta
ma le visualizzazioni invece vedete
qualsiasi limite alla visualizzazione, quindi intendo
limiti alla visualizzazione intendo così noi
umani, abbiamo questo tipo di
impressionare i sensi del ghiaccio giusto e facciamo
sbagli tutto il tempo quindi direi il
limitazioni di visualizzazioni e
l’animazione sarebbe simile a
i tipi di limitazioni che noi
esperienza nella vita reale come sai
Ho fatto delle escursioni a volte e lo sono stato
alla ricerca di un serpente a sonagli perché poi
sai dove vivo, c’è
serpenti a sonagli e un sacco di volte che ho
visto un serpente a sonagli e non c’era
davvero uno quindi penso che tu sappia il
il pericolo è proprio lo stesso
debolezze che vediamo nel naturale
mondo in cui potremmo vedere qualcosa di simile
in realtà non esiste e uno di più
domanda su cosa sto lavorando ora
in questo momento sto lavorando al tentativo
per convincere gli agenti a giocare ai videogiochi
in realtà tornando a fare va a parlare io
significa che vogliamo affrontare alcuni dei giochi
che sono intrinsecamente più difficili da richiedere
un po ‘di senso del tempo e della memoria così
questa è davvero l’area che vogliamo
vogliamo affrontare ogni altro
domande nel pubblico che sto seguendo
in alto sulla domanda in classifica e
i registri non sono abbastanza buoni che non danno
lei l’intera immagine ma non abbiamo
qualsiasi altra cosa che in realtà faccia ancora così
all’interno di questa è un’area che cosa hai
qualsiasi raccomandazione qualcosa che noi
Minimo può fare per sfruttare meglio il loro
registri e grafici e tutto ciò
per ora abbiamo ragione così viscerale
demo che ti ho mostrato sono in realtà
disponibile oggi è un open source
progetto in modo chiunque può iniziare ad utilizzare tale
Voglio dire che è un framework di visualizzazione
e funziona in tempo reale
Penso al bambino che quello che ti serve
fare è collegare i dati ad esso
essenzialmente così sai che dirò lì
sono carenze perché c’è davvero
non molto là fuori, ma sono consapevole che
netflix ha creato un team chiamato
intuizione ingegneria e quindi credo
che inizieranno a produrre di più e
più strumenti in questo settore mi piacerebbe
prova solo come un esperimento per vedere se io
potrebbe ottenere una sorta di audio
rappresentazione del traffico come quello che
in realtà lo facciamo sembrare macchine
lo sai così così ancora oggi c’è
in realtà non molto ce n’è uno
progetto che conosco e non c’è
nessun altro sa di nessun altro fantastico
tipo progetti là fuori va bene tutto il
domande va bene quindi diamo a Julia grande
capo
tu

Please follow and like us: