
il mio nome è Casper em e lavoro su
internet di cose ma soprattutto
cose programmabili su Google e my
lo sfondo è molto nel
linguaggio dello spazio, quindi sono su cui ho lavorato
JavaScript Smalltalk incorporato
motori e recentemente ho lavorato su dot a
linguaggio di programmazione strutturato per
il web ma chiaramente questo non è davvero
abbinare qualsiasi cosa nel titolo così
ora cambieremo un po ‘
e concentrarsi su qualcosa non su questa diapositiva
non nel mio solito background qui
vediamo questa cosa andando così la ragione
perché sono qui è negli ultimi
anni abbiamo visto un’esplosione di dispositivi
per quello a cui tutti ci riferiamo come IOT è a
parola grande in realtà tre parole così è
come tre grandi parole e significa molto
di cose diverse a molto di diverso
persone e ho dovuto cercare di concentrarmi
una parte qui è la più interessante
la cosa qui è veramente come qui è un
esplosione di dispositivi che stiamo vedendo a
crescita tremenda e non sembra
stai rallentando in qualunque momento e se tu
mettilo in prospettiva e pensaci
quanti smartphone o telefoni cellulari tu
oggi siamo in giro come a uno
la stima è di circa 7,5 miliardi
smartphone, ma questo è molto limitato
dalla quantità di persone che ci piace
alcune persone possono avere due telefoni o tre
telefoni ma è un po ‘difficile avere un
cento probabilmente non ha senso
mentre nella tua casa in alcune città
città intelligenti e impostazioni aziendali voi
può avere un sacco di dispositivi e noi
tutti vogliono in qualche modo collegarli
insieme e renderli hackerabili
programmabile quindi questo intento di termine
le cose in realtà significa quasi troppo io
pensa e riguarda la raccolta di dati e
quindi percependo l’elaborazione dell’ambiente circostante
questi dati e trasmetterli è
su come trasportare questa roba
reti quindi questo è il mio coinvolgimento in switch
e una sorta di hardware di rete si tratta
memorizzando questa informazione possibilmente nel
cloud è anche sull’analisi e
estrapolando intuizioni da questo e da questo
elaborare quindi i dati raccolti
e certamente riguarda il controllo
dispositivi e ambiente basato su
avvisi o nella scienza raccolti e così via
ci sono un sacco di cose da fare qui e
e forse ancora più importante c’è
anche condividendo questi dati con altri
sistemi quindi è quasi come questo significa
troppo, quindi ho intenzione di provare a tagliarlo
qui e concentrati su un paio di questi
cose e rivolgo la mia attenzione al
spazi in cui i dispositivi sono veramente
presente e dove si può davvero iniziare
per parlare di programmazione di questi dispositivi
quindi certamente nello spazio nel senso
dove hai molti piccoli dispositivi
che stanno facendo monitoraggio e rilevamento
ha senso parlare di a
dispositivi programmabili ma sono certamente
anche nello spazio di controllo puoi farlo
parlare di avere dispositivi che sono
controllato da altri sistemi o anche
controllare altri sistemi quindi ci concentriamo su
quelle cose che possiamo impostare restringe dal vivo
giù io questo non sono gli unici due
dispositivo che si adatta a questo, ma c’è come
due due diversi tipi qui ci sono
come gli smartwatch sulla sinistra I
indovina a destra per voi ragazzi e quello
sono abbastanza grandi, voglio dire è così
non stiamo parlando di piccoli sistemi
riguardo stanno funzionando come micro
processori hanno probabilmente centinaia
di megabyte di RAM ci sono abbastanza grande
cose ma si adattano ancora qui e
e di solito nel modo di controllo che loro
sono usati per controllare solo altri dispositivi
come uno smartphone si adatterebbe qui come
beh, non so se tu sai cosa
questa cosa è che è un pulsante del cruscotto Amazon
è una novità per la quale puoi comprarli
come cinque dollari negli Stati Uniti e cosa
non consentire dovrebbe avere un piccolo pulsante
puoi mettere da qualche parte nella tua cucina
e quando lo premi, ordini di più
maccheroni e formaggio è carino
intelligente e sono tutti di marca
puoi prenderli come pannolini e
qualunque cosa tu voglia scrivere, puoi mettere
loro o tu vuoi veramente economico e
non possono eseguire un grande microprocessore
gestiscono qualcosa di molto più piccolo
microcontrollori quindi pensiamo a questo
diviso in due segmenti e se guardiamo
all’hardware coinvolto come il
lo spazio del microprocessore è troppo
basta ordinare maccheroni e formaggio come uno
tipo di impostazione qui è lì o uno
tipo di dispositivo qui è come il
il raspberry pi piace è davvero di nuovo a
in piena regola e sistema che ha come a
processore quad-core che funziona in modo equo
velocemente
come un gigabyte di ram ed è estendibile
attraverso una micro carta esterna microsd
le carte non è così costoso e può
eseguire una sorta di tutti quasi tutti i sistemi e
gira Windows oggi e fa funzionare Linux
probabilmente il sistema operativo più usato su
li può eseguire più o meno tutto
questo è come un piccolo server è abbastanza
piccolo è abbastanza economico ma è ancora
una specie di server trovo l’altro tipo
un po ‘più interessante questo è un
microcontrollore di fascia alta a ragionevolmente
nuovo e ha una corteccia di braccio-m sette
core e, come questo, una specie di alto livello
specifiche high-end per quello spazio a 32 bit
CPU e come una quantità ragionevole di RAM
come 320 kilobyte di RAM parecchio
e forse fino a un megabyte di carne e
ma ne hanno ancora tagliato alcuni
gli angoli nel produrre questo hanno deciso
non avere una doppia precisione
unità a virgola mobile e non esiste alcun tipo
di fantasiosa unità di gestione della memoria
anche lì, quindi ne metto davvero un po ‘
onere per le persone che sviluppano software
perché queste cose siano in grado di vivere
quelle restrizioni non è un vero e proprio
cosa così in questa presentazione che sto andando
concentrarsi principalmente su questo tipo di chip
perché penso che sia davvero dove il
sta per accadere una crescita esplosiva
perché un like anche se questo è
è davvero molto alto nel mio controller
ancora molto più economico dell’altro
e stiamo vedendo chip che sono molto utili
sotto un dollaro lì in produzione
e costa quindi è sta succedendo così
la gente vuole davvero eseguire qualcosa del genere
Linux embedded sono veramente piccoli
dispositivi quindi una buona domanda da porsi è
come è che anche possibile giusto e
la gente parla di questo vedi Linux
che è un Linux che funziona molto piccolo
dispositivi senza unità di gestione della memoria
ma richiede davvero qualcosa del genere
quattro megabyte di RAM e forse due
tre megabyte di carne quindi è davvero così
davvero difficile eseguire qualcosa come Linux
e in quello spazio e questo fa molto
di persone tristi a cui sono abituati
erano abituati ad avere questo come me
metti linux lì, poi ho tutto me stesso
i miei strumenti a cui sono abituato e basta
tipo di lavoro non funziona davvero così
bene in questa impostazione, quindi abbiamo bisogno di
capire cosa abbiamo invece così noi
partirà per qualcosa di simile a
GCC è importante o llvm e
forse hai qualche problema di debug
supporto pure, ma è abbastanza equo
primitivo forse anche questo è un po ‘troppo
molto tu
probabilmente ne ho un po ‘di più ma io
penso che lo scenario migliore sia
qualcosa come questo o tu hai un modo
di scrivere codice C e come questo è un
bel esempio abbastanza ben strutturato da
da embed prodotto da armati e in se
sei abbastanza fortunato hai anche un PIL
che attraversa una sorta di telecomando
connessione del dispositivo qui che ti permette
per lavorare con il sistema spesso gb è un
un po ‘inconsapevole di come i fili
che funziona in cima al sistema operativo così è
come se fosse come fare il livello del kernel
il debug è piuttosto difficile ma lo è
ancora meglio di non averlo io
penso che questo sia il migliore dei casi
scenario per lo sviluppo di questi molto
piccoli dispositivi e per me mi piacciono
questa cosa ma ne conosco un sacco
gli sviluppatori non sono davvero a proprio agio
scrivendo molto codice in questo modo e se
lavori in grandi squadre è davvero difficile
fare qualsiasi cosa con il sito tecnologico come
questo quindi quello che vediamo oggi è lì
non sono molti sviluppatori che lo sono
davvero produttivo con un setup come questo
quindi penso che dobbiamo cambiarlo
in qualche modo così ora è la parte in cui dico
tu bene quello che voglio veramente, ma anche io
pensa a ciò di cui hai veramente bisogno e
speriamo ci sia qualche sovrapposizione tra
le due cose credo che ci penso
non è questo il motivo per cui sono qui così
Penso che sia davvero importante per noi
ottenere una piattaforma che è molto di più
accessibile a una gamma molto più ampia di
Gli sviluppatori e abbiamo bisogno di qualcosa che
sembra familiare a molte persone no
solo di nuovo sì sì alcune poche migliaia
persone in tutto il mondo ma in qualcosa
che può raggiungere come un milione di f
gli sviluppatori non lasciano che io e nipote
penso che dovessimo essere basati su qualche tipo
di un linguaggio gestito di alto livello
rende più persone più produttive
questo spazio ci sono alcune scelte noi
posso farcela e ho una buona idea
su cosa dovremmo scegliere ma loro
tornerò a quello naturalmente, ma io
pensa che questo non sia veramente importante per
fare dispositivi una sorta di programmabile da
bene dico tutti ma almeno mi piace
rendendoli molto più accessibili e
molto più facile da hackerare credo che noi
devi cambiarlo un po ‘anche tu
bisogno di un ambiente molto più produttivo
adesso voglio dire che puoi costruire davvero
cose interessanti davvero cool io te o io io t
gadget ma è più invece che dentro
nonostante gli strumenti, è perché
di così penso che tu abbia bisogno di un produttivo
ambiente con analoga analisi statica
completamento del codice cose a cui sei abituato
da pile di livello superiore
ne ho bisogno anche in questo spazio e tu
bisogno di una sorta di ecosistema di
funzionalità che possono inserire e riutilizzare
attraverso questi dispositivi e qualcosa
è davvero difficile scrivere con il codice C
non è necessariamente il più portatile
codice nel mondo e così puoi scrivere
in un modo davvero carino che è
abbastanza portatile ma devi ancora
cura molto quindi non si vede un sacco di
condivisione in corso e almeno penso che noi
potrebbe fare molto meglio e penso tutto questo
è necessario per far sì che le persone li costruiscano
cose molto non più veloci di quelle che abbiamo visto
nel passato e così penso a come
persone molto più veloci stanno sviluppando web
app di quanto non siano come costruire
app incorporate se dovessimo in qualche modo collegare il
gap un po ‘e rendere incorporato
sviluppatori più o meno produttivi come
persone che si stanno sviluppando per il web oggi
sarebbe molto meglio almeno forse il
la cosa più importante che io penso noi
non ho oggi è un tipo aperto di
piattaforma utile una piattaforma dove
puoi dove puoi aggiornare il software
componenti in là e una piattaforma dove
puoi avere nello sviluppo indipendente
codice coesistono nello stesso spazio con alcuni
garanzie e qualcosa che può
piace davvero spingere i dispositivi da
essere abbastanza statico con un set di
firmware con immagino casella di sicurezza noto
e tutto per qualcosa che è
veramente estendibile e configurabile
qualcosa che puoi a casa tua
installa un po ‘di software su quella volontà
abilitare alcune funzionalità per venire a
la vita penso che questo sia davvero il nucleo
e ora che ce ne sono alcuni
giocatori che stanno cercando di costruire questo
cosa su cui si concentrano principalmente
micro processo e verso l’alto e vediamo
pochissimi che stanno provando davvero
duro nello spazio inferiore ce ne sono pochi
ma ma è difficile quindi credo che abbiamo un
alcune richieste qui ci vorrebbero un sacco di
cose come devono essere gestite
linguaggio e deve essere tutto
è come librerie e moduli
la manutenzione cambia codice e deve
gira su microcontrollori veramente piccoli e
è difficile riuscire a ottenere tutto
vuoi che conosca persone che vogliono davvero
un pony e non lo fanno avere persone
che vogliono i sedili WC dorati
non necessariamente nei poliziotti, ma io
penso che possiamo davvero averne un sacco
forse non tutto ma te lo dirò
cosa possiamo iniziare e poi possiamo
capire come possiamo andare avanti
avere tutto così è una possibilità
per iniziare con un linguaggio di alto livello come
freccia e questo è il posto in cui vengo Sarah
questa è la lingua che ho aiutato a progettare a
alcuni anni fa e abbiamo iniziato
progettandolo per un ambiente web ma
è uno scopo abbastanza generale in
linguaggio familiare per la maggior parte è a
oggetto linguaggio gestito di alto livello
orientato e ha una sintassi che sembra
molto simile a vedere quale è penso sia un
beneficio in questo in questo contesto lì
sono lingue più nuove e più fresche intorno a me
pensa anche che guardi molto meno di C e
sono molto meno come vederli e artisti
ma in questo contesto penso che sia davvero
una forza che hai qualcosa dove
come le solite cose che fai in un piccolo
incorporato impostazione del tipo di codice
frammenti che vedi ci saranno di sorta
traduci piuttosto facilmente questo
cosa e se vuoi giocare in giro
con la freccetta puoi andare al nostro dart pad
quella freccia fila il lato del dork dove tu
può solo provarlo in un browser
contesto solo per avere un’idea di cosa sia
il linguaggio è ma questo non è un
presentazione di dart quindi è solo
come abilitare la tecnologia per fare cosa
Ti mostrerò così l’unico problema
abbiamo però è che inizia
effettivamente eseguito su questi micro controlli a
tutto e fino ad ora è stato un no
davvero, ci siamo scappati
microprocessori e in diversi
contesti su smartphone e smart
orologi e cose del genere ma sul
una specie di estremità inferiore di ciò che usiamo di solito
pensa come un dispositivo che puoi programmare
non stiamo andando molto bene, quindi lo sono
sto andando a dirti che è qui
è cambiato, quindi vado a darti
come un’anteprima di un progetto che abbiamo
lo sto facendo da un po ‘di tempo
chiamalo Fletch Fletch è una piccola parte di
un punto quindi questa è la ragione per cui abbiamo scelto
quel nome e Fletch è un sistema che è
piccolo e leggero produttivo e e
utile e abbastanza semplice e
accessibile che ti permette di scrivere in alto
livello in questo caso codice dardo per piccoli
microcontrollori quindi per fare veramente un
piccolo runtime o piccola macchina virtuale
per una lingua gestita in forma in a
impostazione microcontrollore e dobbiamo
pensa a cosa viene solitamente inserito
questi in questi sistemi e ciò che possiamo
rimuovere quindi questo non è necessariamente il
la definizione comune di un virtuale
macchina ma vediamo la tendenza in questo momento
dove la gente pensa a una macchina virtuale
è qualcosa che esegue il codice sorgente
direttamente così si prende solo cura di
compilando il codice sorgente a qualunque cosa
il codice nativo deve compilarlo ae
per eseguirlo e ha bisogno di avere un
esecuzione in che si può usare quel codice essa
deve avere un garbage collector e alcuni
modo di definire classi e oggetti
e deve avere un buon debugging
supporto che è in ogni caso una sintesi
e rende le macchine virtuali oggi simili
abbastanza grande se si guarda un v8 da
JavaScript che ho aiutato a costruire è it’s
probabilmente non un piccolo sistema
sono stati i primi tre mesi, ma ottieni
più richiesta di nuove funzionalità in nuove
performance e hai detto che si accumula così
cose che possiamo sicuramente pensare
rimuovere è il compilatore del codice sorgente
questo ci farà tornare più comuni
sistemi in cui il compilatore e il
il tempo di esecuzione era più separato come
indietro nel giorno e anche quello che hai
con GCC e llvm e possiamo pensarci
indipendentemente dal fatto che il supporto per il debug possa o meno
essere reso più semplice più piccolo e ho capito
come un ottimo protocollo che consente
mi piace il debugging e e
lavorare con il sistema senza questi
modello di ottica del motore di esecuzione di cose e
immondizia come loro sono davvero difficili
vivere senza un alto livello gestito
lingua, quindi quello che cerchiamo di fare è farlo
costruire un sistema che ha solo fondamentalmente
quelle parti in esecuzione sul
microcontrollore così il modo in cui ci siamo divisi
è che abbiamo un compilatore di solito
in esecuzione su una macchina per sviluppatori no
devo davvero correre ovunque in particolare
può funzionare ovunque tu voglia quello
parla con un runtime potenzialmente attivo
un altro sistema e l’interfaccia
tra queste due cose è una specie di
interessante quindi deve essere il tempo di esecuzione
molto semplice quindi anche l’interfaccia deve
essere semplice, quindi quello che abbiamo costruito è
in realtà un runtime di go che ha una sorta di
un’API guidata dai comandi che consente di
sistema qui il compilatore per chiederglielo
per fare certe cose per questo sotto
è che è una macchina impilabile, quindi puoi
puoi spingere un nuovo stato nella pila di
questa cosa runtimes e puoi
manipolare una costruzione di nuove strutture di classe
definire nuovi oggetti definire nuovi metodi
attraverso questa questa API e lasciare che il
compiler tiene traccia di quali classi terminano
su dove nel sistema e dare loro il
i nomi simbolici consentono al compilatore di
associare ID arbitrari che tipo di
qualsiasi entità che è in esecuzione in fuga
tempo laggiù il runtime no
mi interessa davvero questa mappatura, così ho messo
qui fuori dal lato qui ma il compilatore
potrebbe aver bisogno di sapere più tardi quando arriva
dire un oggetto che è un’istanza di
una certa classe in modo che il sistema ha bisogno di
essere in grado di comunicarlo
l’istanza è di classe settemilaquattro
centenove e poi il
Pilar saprà cosa significa così è
fondamentalmente come prendere il simbolico
debuggare le informazioni e metterle in atto
fuori dal lato non è inaudito
anche altri sistemi quindi non è super
romanzo ma non vediamo gente che costruisce
questi sistemi più come loro
usato così ti abbiamo fatto un passo indietro
potrebbe dire e separare il tempo di esecuzione
informazioni di debug e il compilatore così
tipo di cose che facciamo e facciamo tutto questo
su un protocollo filo, quindi possiamo eseguirlo
da remoto e non ci interessa molto
molto di ciò che è adesso è per lo più
basato su tcp / ip ma puoi andare molto più in basso
e fare qualcosa per te è che è e
non so e ma le cose che puoi fare
con questo tipo di protocollo filo sei tu
puoi impostare la struttura del programma che puoi
definire nuovi metodi e nuove classi ma
puoi anche cambiare il programma
struttura e puoi cambiare il metodo
tavolo di una classe e dì da questo punto
avanti Voglio davvero anche questa lezione
avere un metodo chiamato bar invece di solo
avere un metodo chiamato foo che significa
puoi cambiare il comportamento del codice
in esecuzione sul tuo microcontrollore mentre
stai sviluppando su di esso quale è
qualcosa di conosciuto da altri piace di più
come i sistemi più grandi questo come dal vivo o
modo interattivo di lavorare con il
sistema ma è qualcosa che raramente vediamo
in questo spazio puoi anche cambiare
gli schemi questo è un tipo di
terminologia utilizzata per descrivere il
cosa succede quando cambi il
layout di una classe aggiungendo nuovi campi
per esempio e la parte difficile qui
è che se ne dici cento
oggetti di una certa classe nella tua
sistema e poi vai avanti e aggiungi
un altro campo o rimuovere un campo da
a quel corso devi fare qualcosa
tutti questi oggetti e anche il sistema
Supporta questo semplicemente attraversa il
ottica e li manipola loro
li aggiorna sul posto per farli ordinare
di avere il nuovo tipo di formato
definizione che la classe implica noi
ha anche un protocollo abbastanza semplice per
il debug del programma in esecuzione è possibile
avviarlo è possibile impostare i punti di interruzione
contro il riavvio l’attivazione ma esso
tutto accade su questo protocollo filo e
ci sono molte cose in questo debugger
non può farlo non sa della fonte
codice che non conosce le posizioni in
nei tuoi file di testo che non conosce
qualsiasi cosa sia tutto ciò che deve essere
mappato dall’esterno e io sono
andando a darti una piccola demo di cosa
come funziona in pratica
in un po ‘di tempo in modo da ciò che è necessario
ricordare è proprio come è il runtime
super piccolo è focalizzato a farne uno
cosa bene e questo è essere di nuovo a
runtime per l’esecuzione di programmi ma
ha un’API che ti permette di
fallo dall’esterno in questo tipo di
macchina basata sullo stack e se è guidata
dal compilatore c’è una sorta di a
interessante effetto collaterale di questo design
è che abbiamo trovato invece di
storicamente su cui lavorano le persone
macchine virtuali che odiano davvero aggiungere
nuove funzionalità per fare sviluppatori
la vita più facile per qualche ragione che vogliamo
concentrarsi sulle prestazioni
prestazioni forse forse dimensioni pure, ma
quelle sono le cose a cui teniamo e
mentre le persone che lavorano sul compilatore
lato possono interessarsi del buon errore
messaggi e simili e così via
avendo la divisione dove non hai
convincere la squadra che consegna il
piccolo tempo di esecuzione per aggiungere più funzionalità
per migliorare il debug della riga di comando
interfaccia è in realtà un po ‘carina
solo c’è resistenza anche in me quando
Lavoro sul tempo di esecuzione in qualche modo solo
continuare a rendere difficile per gli sviluppatori
usa il sistema perché voglio tenerlo
piccolo così la divisione lo rende
molto più pulito e puoi aggiungere più peso
al compilatore è meglio così
per gli sviluppatori quindi non so se questo
si applica a tutti coloro che lavorano su VMS ma
sicuramente mi riguarda un altro ragazzo
vuole unirsi anche così una cosa avere
detto tutto ciò che riguarda le prestazioni che faccio
in realtà voglio passare qualche minuto
di parlare di prestazioni di questi
sistemi e come li fai velocemente
una cosa che fa un sistema come il dardo
è che ogni chiamata al metodo è molto
dinamico hai pochissimo statico
informazioni da seguire, quindi è necessario farlo
così veloce è molto bello lavorare in a
sistema come questo, ma il runtime deve
sii troppo veloce, così come un super short
interludi solo per spiegarti alcuni
dettagli tecnici su come stiamo andando
questo sistema così qui è una gerarchia di classi
siamo di classe si estende che si estende a
e la Classe D si estende come una Classe A così
ma non è correlato a B o C c’è
un metodo per la barra in una che è sovrascritta
in C c’è un metodo di accoppiamento in B e
c’è un metodo di basso separato in D e
di solito se volevi implementare
dispacciamento che sta chiamando un metodo
uno di questi oggetti o un oggetto da
derivano da tutte queste lezioni che tu vai
e guarda la struttura della classe e poi
attraversi la gerarchia e la figura
per esempio se chiami, dì
barra su istanza FB quindi dici bar bene
non è il design e sii così
guarda nella superclasse che vai lì e
li trovi
e tu sei felice e spesso le persone finiscono
aggiungendo un livello di memorizzazione nella cache in cima a quello
per renderlo più veloce ma è una specie di
una sorta di essenza di esso abbiamo scoperto che
queste cache su dispositivi molto piccoli sono
difficile da controllare soprattutto nelle dimensioni
di loro devono essere abbastanza grandi per
essere colpito abbastanza frequentemente e se non lo fai
rendili abbastanza grandi da finire
dover invertire anche la gerarchia
spesso questo li rallenta davvero
voglio qualcosa di più prevedibile così
per fortuna c’è un modo per renderlo più
prevedibile in modo da poter fare un grande tavolo
qui con tutte le classi qui fuori ABC
e D e il metodo chiama quaggiù
bar e basso e poi puoi dire come
il cibo il metodo alimentare non è implementato
in a ma è implementato su B e B
anche la versione di questo è ereditata
guarda una classe quindi se vuoi chiamare foo
su B o DO, basta guardare su
classe e trovi la cosa giusta
via lo stesso per barra che è ereditata
a tutti loro c’è un separato
versione per mare ma diversa da quella noi
avere un bar e tutti loro e il basso è
solo su d ha senso che possiamo
costruire un tavolo come questo il problema è
che diventa davvero grande molto velocemente
se hai n classi e nomi di metodi M
ottieni un tavolo di dimensioni n volte m
certamente non va bene per i piccoli
microcontrollori in realtà non si adatta
ovunque, quindi dobbiamo fare qualcosa
su quella ricerca per il salvataggio come a
molto tempo fa le persone erano davvero preoccupate
su queste cose, quindi siamo in qualche modo
tornando a quello e stiamo guardando
cosa ha provato in questo
spazio prima e una cosa che è davvero
promettente è ciò che viene chiamato selettivo
dislocamento di riga basato suona molto
fantasia ed è una specie di intelligente
c’è una nozione fondamentale è che ci sono
buchi qui dentro forse un po ‘dell’altro
strade come questa fila potrebbero rientrare in alcune di esse
questi buchi forse possiamo sovrapporli
in qualche modo e li aggiusta e li rende
anche per adattarsi in una fila invece di in
tre righe in questo caso, quindi come sarebbe
che sembra un modo per farlo
si può dire che prendiamo le cose del bar che c’è
una lunghissima fila si potrebbe dire e metterlo
prima quindi aggiungiamo i metodi foo qui
e poi aggiungiamo il basso laggiù e lo farò
spiega perché c’è un buco qui in un
un po ‘di tempo ma è importante
notare che possono esserci buchi in a
rappresentazione come questa così come noi
in realtà andare a costruire questo
il grande tavolo è quello che vogliamo
vogliamo associare un offset con
tutti questi nomi di metodi in modo che il
offset + il numero della classe che potresti dire
ti dà l’indice giusto in questo
tabella così per barra ho scelto l’offset 0 così
l’indice asso è 0 più uffici più off a
0 e quindi finisce qui e tu colpisci a
ti bar in un bar Bar C e un bar che
una specie di lavoro come prima che tu possa dire
quindi per foo è un po ‘di più
complesso vogliamo che questo sia di implementarlo
sulla prima classe con indice uno
essere colpito e colpisce l’entrata per qui così
abbiamo bisogno del largo delle api tre così
che le api 1 più questi tre colpi
questo e poi funziona bene per il
Caso di CD e quindi finiamo qui con
il 5 3 più 2 quindi se dovessimo solo aggiungere
il caso del basso proprio qui vorremmo
finiscono per avere un piccolo problema e questo è
che la cosa migliore sarebbe in realtà finita
con l’offset 3 e 6 plus
questi tre qui o sei meno questo è
i loro tre qui ci danno una compensazione
di tre ma è davvero conveniente
hanno offset unici quindi dobbiamo solo spingere
più lontano, ottieni un buco e daglielo
off set per il motivo invece per cui siamo noi
bisogno di queste opzioni per essere unici è quello
quando guardi qui prendi il
nome del metodo in questo caso diciamo basso
prendi l’ID di classe che hai ragione
ora quando chiami qualcosa potrebbe essere
uno o due o tre o anche zero si aggiunge
loro insieme e tu guardi in
tabella che si vuole fare in modo che non sei
colpire una voce da una delle altre
Riguarda quindi ciò che abbiamo inserito in questi
le voci non sono ancora solo un metodo per chiamare
è anche qualcosa per verificare che siamo
colpire la cosa giusta e questo è il
offset così stiamo memorizzando offset
tre in qui e qui e per tutti in forma
per qui, quindi se colpiamo qualcosa
qui basato su un selettore di bassi lo faremo
sapere che non è applicabile anche se io
piombando potremmo finire nei guai così
questo significa che se lo fai fallo
in questo modo ti garantisci costante
tempo dinamica di dispacciamento si guarda in
il tavolo e tu dici che è questa voce
correggi per me se lo chiami se
non è allora che dici al sistema
questo offic non implementa questo metodo
quindi è molto semplice in fase di runtime
possiamo calcolare questo tavolo prima di noi
avvia l’ applicazione e spediscila
come parte dell’applicazione e così via
non ha costi di runtime da costruire
e e richiede solo come 10 a
settanta percento più spazio di e v
tabelle note da altre classi
sistemi è abbastanza cool come il
il motivo per cui non possiamo usare le tabelle V è
perché non abbiamo un tipo statico
annotazioni ovunque è davvero
non funziona, ma possiamo ottenere il
benefici delle tabelle V e in questo in questo
modo diverso che è stato molto breve
interludi su come acceleriamo le cose
torniamo a qualcosa che è un
un po ‘più tangibile la programmazione
modello quindi se abbiamo questo bel livello elevato
lingua e vogliamo che le persone si sviluppino
per piccoli dispositivi basati su di esso e cosa
li offriamo come loro?
in realtà devo scrivere così cosa costruiamo
questo è qualcosa che si adatta a
piccolo sistema operativo embedded in tempo reale e così via
questo è il runtime di fletch e oltre
che abbiamo il supporto per la corsa
più programmi indipendenti e e
questi programmi in realtà non hanno per me
stasera non hanno bisogno di sapere
l’un l’altro possono essere aggiornati
indipendentemente e tu puoi autoinstallarti
li nel sistema e sostituire la maglia
come vai, questi programmi possono effettivamente essere
in esecuzione in più istanze presso
allo stesso tempo in modo che i loro processi funzionino
in cima a questo ed è molto simile a a
sistema unix che potresti dire costruito da
noi in uno spazio molto più piccolo alcuni programmi
potrebbe non essere in esecuzione in questo momento
altri potrebbero essere in esecuzione con a
processo e altri potrebbero essere in esecuzione anche
più ti dirò perché è in realtà
ha senso considerare di avere un setup
dove hai in questo caso cosa sette
processo in esecuzione è perché noi
reso il processo e molto leggero così
un prezzo su questo in questo spazio ha un
piccolo ingombro di memoria adesso è così
circa 4k e che deve andare oltre
giù per essere veramente applicabile al
dispositivi più piccoli e ma significa
che puoi ottenere un completamente separato
istanza di un programma in esecuzione in giro
4k condividiamo tutti i codici byte e tutti
le cose che fanno funzionare tutto il sistema
le strutture di classe tutto è
condiviso in modo da pagare solo per i dati / o
processo non è una cosa nuova in un sistema operativo
impostando questo è il modo più operativo
i sistemi funzionano ma è in qualche modo
nuovo in a in uno spazio sempre molto piccolo
dove le persone non lo fanno
avere il lusso di usare mm dove possono
condividi e leggi bene solo di destra
leggere solo i segmenti che sono condivisi
è più difficile da ottenere in questi casi
un’altra cosa che è gentile qui
è che possiamo effettivamente permettere questi
processo di sistema da bloccare e giusto
aspettando che qualcosa accada senza
assumendo risorse di sistema su questi
piccoli dispositivi spesso hai solo un
numero di minacce disponibili
forse forse solo uno forse un fisso
numero e tu davvero non lo vuoi
come mantenere una minaccia di livello OS nativa
per bloccare un processo così ce l’abbiamo fatta
se un processo blocca, lo restituiamo
la minaccia nativa al sistema che possiamo fare
qualcosa di interessante e qualcos’altro
in esso è fondamentale se ne hai di più
core che potrebbero non essere effettivamente applicabili al mio
controlli a questo punto in realtà lo fanno
eseguire in parallelo queste cose che è
tipo di pulito quindi ecco un pezzo di codice
quel tipo di mostra come puoi usare
processo per trattare con in arrivo
connessioni come entità separate che
interagire molto molto poco quindi se tu
creare un socket del server da qualche parte in a
una sorta di modo unico di vedere come puoi te
può accettare connessioni in entrata tramite
generando un nuovo processo e poi tu
in realtà basta avere il codice qui dentro
culo invece di una chiusura in linea che
in realtà viene eseguito in un processo separato
può quindi andare avanti e rispedito
qualcosa per il socket e chiudere
fuori quando ha finito con quello in questo
caso probabilmente non fa un intero
molto senso correre è separato
processo ma se ci fosse qualche calcolo in
qui o cose che stiamo avendo la sua sandbox
e di lato non potendo
interagire con il sistema non essere in grado
pasticciare con il server, per esempio
è il tipo di bisogno di essere in grado di fare il
separazione anche in piccoli più piccoli di
dispositivi questo questo spawn tranne il metodo è
in realtà una cosa che blocca non è così
in realtà ritorna finché non viene accettato a
connessione in modo che tale mostra anche che
è gentile che tu possa solo ragionare
riguardo al codice che blocchi qui e
alcuni fino a quando qualcosa accade come il
ultima mania è di fare tutto asincrono
e che è davvero carino con lei in molti
modi è davvero un bel modello è solo
davvero difficile da programmare e in così grande
scale scale così i messaggi sono
in realtà sempre bloccando lì dentro
questa versione di iniziare qui e lo facciamo
avere un modo di comunicare
tra il processo che è possibile impostare
così puoi generare un processo che ha
accesso a una porta che è in realtà a
capacità rappresentativa di percepire a
certo canale se sai andare e andare
le routine come il modo in cui usano il canale
comunicare tra loro è molto
simile a quello che abbiamo qui ci sono
differenze ma questo modo molto simile
qui hai un invio di processo
messaggi e un processo in modo coerente
sorta di bloccato a ricevere il prossimo
messaggio e stanno solo stamparli
in loop non è la cosa più interessante
per funzionare su un piccolo dispositivo ma è giusto
ti mostra che puoi comunicare
tra queste cose e quindi costruire
e una specie di insieme di comunicazione
elaborare ciò che soddisfa o consegna
alcuni potrebbero risultare così per te
il codice ha senso questo è quel codice
l’unica cosa spaventosa qui è probabilmente
la chiusura, ma penso che sia così
sta diventando qualcosa di simile all’essere
in questi giorni metti la maggior parte delle lingue
speriamo che probabilmente si deve abituare
a questo genere di cose in futuro
comunque vediamo forse questo era un po ‘
un po ‘troppo facile, in questo caso, tu
visto qui è stato detto che le uniche cose
inviato tra questi era questo processo
erano interi che è abbastanza facile da fare
e abbiamo scoperto che è anche troppo limitante
ed essere in grado di inviare solo dire
valori primitivi come stringhe di numeri interi
non è abbastanza da costruire
qualcosa di interessante così come potremmo
avere qualcosa come lo stato condiviso
concorrenza in modo da avere più
processi come l’utilizzo dello stesso stato e
solo operando su di esso e il modo di
fare questo è solo permettere a qualsiasi oggetto di essere
inviato come messaggio a qualcun altro
senza copiarlo basta avere un
riferimento all’oggetto e questo significa
che qualsiasi in qualsiasi momento che lì
può essere più processo che in realtà
avere un riferimento agli stessi oggetti e
possono semplicemente operare allo stesso modo
puoi suonare bene parallelamente e tu
probabilmente devono avere un sacco di specie
primitive di sincronizzazione nel
linguaggio per fare questo lavoro come serrature
e tutte le bandiere semafori e fermi
e quant’altro è un modello abbastanza comune
questo è quello che abbiamo visto come costruito in
Java in molti modi e altri sistemi di troppo
Non mi piace , penso che sia troppo
complicato e come così è un po ‘
bello poter inviare qualsiasi oggetto
tra queste parti indipendenti del tuo
app e ma è solo che penso sia troppo
tanto da dire che poi improvvisamente ogni
ufficio unico
potrebbe anche essere come l’ accesso in parallelo da
più minacce indipendenti penso
è troppo così che invece ci mettiamo dentro
è in realtà stato condiviso immutabile
considera la concorrenza in modo da poter fare tutto
di quello che ho appena detto da te
promettimi e in effetti dimostraci che il
solo le cose che invii sono profondamente
oggetti mutabili che puoi costruire
grafici arbitrariamente grandi di questi bene
grafici aciclici di questi profondamente immutabili
strutture e passali come messaggio
tra queste cose così e improvvisamente
è sicuro per più processi a
operare sulla stessa cosa che possono solo
leggi scrivi il loro esercito immutabile e tu
non hanno ancora bisogno di esplicito
primitive di sincronizzazione che significa
che è è possibile per dire un
cento processi per orchestrare qualcosa
costruendo lo stato condividendolo e
lavorando con esso quindi ce n’è uno in più
cosa come abbiamo visto finora che a
processo può bloccare e aspettare qualcosa
succedere ma cosa succede se si ha un processo
ha bisogno di aspettare più così
cose indipendenti da accadere come fai tu
gestiscilo nel modello asincrono tu
solo una sorta di registro multiplo
callback indipendenti e dire se questo
cosa succede sto andando a fare questo se
questa è la cosa che accadrà che farò
che sarebbe bello poterlo fare
sostenere qualcosa del genere quindi sono messo
qui è qualcosa non completamente
inaudito di un’altra lingua di entrambi
fibre quindi un modello di filettatura leggero
in cima al sistema che ti permette di
scopano nuove fibre e poi finiscono
facendo operazioni di blocco come qui
quindi sono qui che sei tu
voglio aspettare fino ad una certa temperatura
il sensore del sensore produce effettivamente un nuovo
valore per te in modo da bloccare l’input
in qui dici qual è il valore corrente se
è diverso dall’ultimo che inviamo
qualche messaggio a qualcuno e noi continuiamo a farlo
di andare in un ciclo, proprio come in attesa di
il prossimo evento succederà, ma se lo fai
avere due sensori come l’umidità e
sensore del sensore di temperatura necessario
in qualche modo mi piace essere bloccato su due diversi
cose allo stesso tempo e questo è
dove entra il nostro modello di fibre e tu
può avere solo una quantità arbitraria di
fibre in carino e in attesa di qualcosa
questo è molto vicino a quello che hai con
un modello di programmazione asincrono ad eccezione di quello
è molto chiaro cosa succederà
quando la chiamata ricevuta qui su blocchi
quando quel valore è prodotto, puoi farlo tu
puoi leggerlo qui se lavori in un
debugger è molto più facile ragionare
su quale sia la prossima cosa
succederà spesso in una bottiglia asincrona
tu perdi il contatto con che tipo di
includi nella tua coda eventi e
Mi piace anche chi elaborerà
queste cose in che modo si adattano
insieme è molto più difficile ragionare
circa in pratica almeno quindi questo è un
modello diverso per dove lo permettiamo
più fibre all’interno di un processo a
eseguire queste fibre sono cooperativamente
in programma cambiamo solo tra di loro
e ogni volta che uno di loro ci blocca
cambia il prossimo pronto e così là
non c’è parallelismo qui non c’è
il supporto per questo è solo un modo
di come logicamente avere indipendente
minacce di controllo una sorta di
partecipare alla realizzazione di una sorta di
compito così tutto e poi su incorporato
dispositivo, quindi come facciamo a prendere un
il modello di programma sembra abbastanza alto
livello per la maggior parte delle persone e solo rendendolo
adattarsi bene in un piccolo spazio e oggi
in realtà abbiamo appena annunciato molto presto
versione di a e sdk per fare ciò
cose nella prima versione che supportiamo
dispositivo che è troppo grande come un
pi lampone perché sono molto
disponibile abbiamo visto un sacco di persone a
divertirsi con quel tipo di hardware
Vorrei provare i flussi di lavoro e
prova a lavorare con un livello alto
linguaggio nel contesto di quello in modo che il
setup che usiamo effettivamente abbiamo a
sviluppatore pc ottengo il tuo mac o il prossimo
box che è collegato a un embedded
dispositivo in questo caso un Raspberry Pi e
nel futuro questo sarà
disponibile anche su micro controlli
se volevamo iniziare bene
praticamente oggi, quindi ho avuto qualcosa di interessante
visualizzare ragazzi così il modo in cui si esegue il codice
qui fondamentalmente puoi dire che voglio
eseguire o sul mio sviluppo pc o me
vuoi eseguirlo sul dispositivo incorporato
e quindi ottieni tutti i feedback indietro
dal sistema e puoi eseguire il debug e
lavorare con esso così ho voluto solo fare
certo che questo era effettivamente nella diapositiva così
se la gente ha visto questo dopo, loro
non sarei sorpreso che sia molto presto
l’accesso è solo per darti un’idea
quello che è ma è utilizzabile e la strada
funziona è che è possibile eseguire il codice
attraverso un comando Fletch e dire io
voglio eseguire questo programma iniziale e per
cambia tra eseguendolo localmente e
eseguendolo da remoto sulla torta
tutto ciò che devi fare è aggiungere il piccolo
una specie di incantesimo alla fine probabilmente
andando a renderlo un po ‘più breve
a lungo termine ma in questo momento mi sono sentito così
era bello essere espliciti, quindi se lo dici tu
eseguirlo viene eseguito localmente sul mio MacBook Pro se
dici che correre in sessione remota significa
eseguilo sul Raspberry Pi e vediamo
e penso che probabilmente abbia un po ‘
di tempo qui per andare davvero avanti e
mostraci ragazzi come funziona così io
qui ho il comando Flash posso solo
ricontrollare i lavori della lezione e i
ho scaricato il sdk e posso correre
questi comandi ti ho appena parlato di e
localmente su questo dispositivo mi dispiace e funziona
sul mio Mac con il tag darwin lassù
ma posso anche eseguirlo su questo lampone
pi che sono nascosto qui
da qualche parte e non importa
tanto che è collegato con esso era un
Cavo Ethernet, quindi dovrebbe funzionare
quando dico eseguirlo da remoto e così via
compila il codice e due byte lo codifica
lo sposta su di esso lo avvia lassù
avvia un’istanza di VM che non lo è
comunicare con esso così di per sé questo
non è super impressionante ma è bello
è che puoi davvero iniziare a farlo
più si potrebbe dire che in realtà non voglio
per eseguirlo basta eseguirne il debug
invece e e che vi porterà in
il debugger o si può dire che voglio
Dì metti un punto di interruzione a Maine e poi
corri a quello e poi sei a te maine
posso dire che voglio vedere dove sono bloccato
In questo caso sono bloccato a ottenere il
informazioni dal sistema prima di stamparlo
ovviamente va bene, continua
e poi stampa alcune cose come te
così ti sei connesso al dispositivo e tu
può lavorare con esso e il prossimo passo per noi è
per rendere il funzionamento del codice molto
semplice da fare in modo che se si cambia il tuo
file su disco e dire che in realtà voglio
applicare tali modifiche sul filo e
dimmi fammi cambiare la stringa qui e
ricominciare e questo è il metodo giusto
funziona, non fa parte di quello che eravamo
spedire oggi ma è qualcosa
stiamo costruendo così si arriva a lavorare con
il con il codice più o meno come se
è in esecuzione sul tuo dispositivo e sul
la promessa è di essere in grado di fare esattamente il
stessa cosa per un microcontrollore
cosa di cui ti abbiamo parlato, ma non l’abbiamo fatto
mostra davvero che puoi farlo
eseguire un sacco di processo allo stesso tempo
è un po ‘pulito e poi possiamo
effettivamente farlo oggi, quindi ho un
piccolo programma qui
processus bizzeffe e provare di nuovo e
mostra solo che puoi correre
come un centomila inizio del processo
li convincono a mandare dei messaggi
e e fermarlo di nuovo e io
avere abbastanza velocemente e questo sta per
mostra che ti possiamo creare questi a
centomila processi e invio
messaggio tra di loro e li abbassa
in 750 millisecondi potremmo provare che il
il Raspberry Pi chiaramente se lo gestisci
su un microcontrollore molto piccolo
i numeri sarebbero molto diversi probabilmente
sarebbe a corto di memoria, ma è ancora
è bello vederlo anche se
fai generare molte cose indipendenti
come questi hanno il loro calore proprio
spazzatura del genere sono indipendenti
molto molto separato quindi funziona lasciami
ritorna oggi, quindi spero che questo ti dia
un’idea di che tipo di che tipo di
cose che puoi fare bene è che è un
tentare di costruire un alto livello accessibile
lingua in cui è presente anche la toolchain
livello più alto su quello a cui sei abituato ma
ottieni ancora un po ‘di debugging
supporto dal sistema se dovessimo
in realtà andare avanti e ammiccare alcune luci
su quella cosa chiaramente hai anche bisogno
accesso a come il GPIO e tutto il resto
roba e così l’abbiamo costruita nel
sistema come una serie di pacchetti che puoi
basta installare e divertirsi con noi
credo che possiamo far crescere un po ‘
ecosistema di funzionalità di supporto
questo può fare cose divertenti per te e per te
cosa interessante qui è di nuovo il
il modello è molto semplice hai solo un
loop un punto che dici che voglio dormire
qui per 500 millisecondi vuol dire che
e poi lo hai capovolto capovolto
un po ‘sul pin GPIO ed è
modello molto semplice e questo no
significa necessariamente che stai bloccando a
minaccia nativa dal sistema operativo sottostante
stai solo dicendo proprio ora questa cosa
correre non ha nient’altro da fare
quindi ridona la minaccia e torna indietro
più tardi, quando ho qualcosa da fare, è
solo un modello molto semplice se guardi
ciò che le persone scrivono oggi per piccoli OSS
hanno ragione tipo di questo codice giusto ma
in realtà non scala bene quale
quando inizi a costruire grandi cose
il nostro sistema speriamo che questo codice sia
anche come relativamente leggibile e facile
per passare così come il corto
la versione di questo è qualcosa di simile
come penso che il mondo abbia davvero bisogno di più
sviluppatori embedded produttivi come il
la crescita dei dispositivi è davvero
impressionante
e ma sono troppo poche persone
lì che può davvero sviluppare qualcosa
incredibile in quello spazio penso che dobbiamo
cambia che altrimenti sarà
le stesse centinaia di persone nel mondo
che ha bisogno di produrre tutto il codice
non scala realmente ed è certamente
un problema che hanno troppi sviluppatori
Mancano le capacità per provare un embedded
dispositivo questo non è a causa di sviluppatori
sono come se non fosse perché abbiamo male
gli sviluppatori è davvero a causa del
vincolo che il targeting incorporato
i congegni se ne vanno, intendo davvero
non sto dicendo che avere un high
livello linguistico e avere una gestione
sistemi e tutto ciò che sta per
risolvi tutti i problemi perché sei ancora
hanno vincoli di qui che non sei
usato ma lo rende molto più facile
inizia molti di voi per iniziare
ragionamento sui mezzi problemi no
impostare la catena di strumenti e lavorare
con gdb quindi di nuovo abbiamo bisogno di più
sviluppatori e in questo momento è difficile
insegnare loro a usare la corrente
offerte per questi dispositivi di fascia bassa noi
ho bisogno di renderlo più facile, penso questo
Va da sé che la produttività è
più in alto con strumenti migliori e a
linguaggio gestito ed è davvero difficile
misurare questa cosa è qualcosa che
di solito sei sexy quando vedi le squadre
lavorando con strumenti migliori che hanno appena ottenuto
sorta di abilitato da questo, ma è
qualcosa che non siamo stati in grado di
giocare molto nello spazio integrato
prima ed è qualcosa che ci piacerebbe
provare a indossare per cambiare e forse il
la conclusione è davvero che quell’uomo è
lingue che si adattano a
i microcontrollori includeranno presto il punto
e questo è un livello alto ma equo
linguaggio semplice in molti modi è
progettato originariamente per un contesto web
ma è stato progettato da un paio di persone
a cui importa davvero le prestazioni e
impronta e abbiamo deciso il sistema
così in realtà si adatta in uno spazio simile
questo quindi non è un modo per inserirlo
un microcontrollore ed è qualcosa
che stiamo effettivamente sviluppando e forse
la tua domanda da tutto questo è come il perché
hai un attacco su prossimo penso tutto
tu e qui dovrebbe piacere il prossimo
pochi anni trovano qualcosa su cui lavorare
spazio penso che sarà enorme
come stiamo andando a prendere
fuori e via ora stiamo vedendo
persone che prendono di mira i telefoni cellulari che è
ottimo è un enorme mercato ma se vuoi
per colpire un grande mercato in due
o tre anni questo è dove andare
questo è davvero quello che devi fare
quindi con penso che abbiamo un po ‘di
tempo per domande che mi piacciono davvero
quindi dove spero che tu abbia qualche domanda
per me e poi poi altrimenti puoi
scendi più tardi, posso mostrarti di più
su cosa sta succedendo su questi
dispositivi e poi come stiamo andando
spostalo in avanti ma se lo hai
domande fammi sapere così la strada
le opzioni per l’applicazione in modo da iniziare
ci useremo per dispositivi più piccoli come
gardenia o esp8266 si quando e così
in questo momento il nostro obiettivo è davvero come il
CPU a 32 bit quindi ci sono arduino cpus
là fuori o conosci sistemi che
un po ‘in forma, ma abbiamo ragione
ora non abbiamo voluto avventurarci nel
otto o 16 bit di spazio e noi siamo
cercando di concentrarmi su ne ho alcuni e
sorta di dispositivi alla volta lampone pi
è un po ‘ un cheat nel senso
è troppo grande, quindi non è un
vero obiettivo per noi la prima cosa è
probabilmente sarò a corte x m7
cosa che crediamo di poter implementare
abbastanza presto e il prossimo in linea lo farà
probabilmente sarà qualcosa di simile al grande
Arduino sta per fare e alcuni
altri e quindi penso di pensare alla risposta
è sì ci sarà ottenere quei thurs fatto e
penso che probabilmente il prossimo anno
all’inizio del prossimo anno è una buona scommessa su
puoi dire qualcosa su ID o
Supporto ID e sì, quello che ti ho mostrato
qui è come il vero metallo nudo
la versione di questo è come eseguire tutto
dalla riga di comando e va bene
supportato da pochi pochi IDE oggi e
stiamo vedendo più interesse per il
IntelliJ sublime e Adam space e così
c’è un modo di strappare il dardo
analizzatore che fa analisi e codice statici
completamento in quello spazio che puoi
usa a con fletch quasi oggi non lo è
banale da configurare, ecco perché io cosa
non volevo vantarcene , quindi lo faremo
prova a fare un banale da configurare in modo che
se stai usando una demo sublime e / o
IntelliJ con cui potrai lavorare
che l’Fletcher offre da dentro
quella
infine abbiamo mostrato le interazioni
gpio cosa può anche interagire con i pini
e le librerie ed eseguono il tipo di thin
strisce e così fortunatamente su qualcosa di simile
il microprocessore basato su Raspberry
Pi non c’è quasi nulla che non possiamo fare
possiamo chiamare il sistema e iniziare
nuovo processo in modo che potessimo correre
Anche lì Python parla con me
penso che sarebbe abbastanza facile da ottenere
andando e quando colpiamo il più piccolo
bersaglia la cosa più probabile che farai
essere in grado di buttare lì con il
il tuo codice freccia è probabilmente basso
i livelli vedono le librerie da cui provieni
da altre impostazioni sono le cose che sono
proprio come rivestito a mano molto caldo
vuoi solo fare uso di e così io
pensare sotto il mio controllo sta avendo
qualcosa come Python sarà un
allungare c’è micro pison ma è a
un po ‘più grande di quello che siamo
puntando così in tutto qui è
non mi piace molto quello che hai visto
il GPIO non è integrato nel sistema
è costruito in cima al sistema, quindi è così
tutto il codice a livello utente in modo da poter scrivere il
stesse cose da soli, se si vuole che
hai una domanda e quando selezioni
il controller del microfono per un certo
applicazione che stai per fare
di solito quello che ti interessa è l’idolo
struttura del dispositivo e conoscenza
erano i turni il frutto primaverile o cosa
stai andando a fare e se guardi
diciamo che la compagnia del sud-ovest è come a
a casa ne hanno sette diversi
forse le architetture, ma lo sono
circa 600 modelli diversi e
ciò che differenzia tutti questi modelli sono
fondamentalmente il fuoco del dispositivo come
speri che tu gestisca quella pletora
di diverse configurazioni al suo interno
nel sistema che stai descrivendo noi
lascerà che sia con il livello dell’artista
sotto o chi si indirizza a quello
da qualche parte è una buona domanda
tutti sentono quale è stata la domanda
domande abbastanza lunghe non vado
per ripetere tutto ma è vero che
una volta che esci e scegli il vero obiettivo
dispositivi c’è molta varietà e a
un sacco di dispositivi diversi puoi attaccarli
e come la domanda era davvero siamo noi
andando a cercare di risolverlo a
il in tempo reale I livello occidentale o
cercando di ordinare la carta o il
differenza ad un livello superiore non lo faccio
penso che abbiamo deciso che è ancora molto
bella domanda perché è davvero difficile
inventare una sorta di astrazione
quello che nasconde i dettagli o il
implementazioni di queste cose e a
in certa misura non penso che dovremmo
facendo ciò penso che abbiamo bisogno di avere un
modo di esporre le cose di basso livello come
bene e ma allo stesso tempo a volte
vuoi solo essere in grado di scrivere codice
che attraversa questi seicento
diversi dispositivi e farlo funzionare così
la nostra soluzione è assicurarci che
tutto ciò che facciamo è un codice a livello utente
un senso in modo che le persone possano condividere
queste cose e possono sviluppare a
certo tipo di faccette che possono
aggiungere sopra se vogliono ordinare di non
astrazioni forzate che puoi usare
se hanno senso per te, penso che sia così
la migliore scommessa che abbiamo adesso è
davvero difficile venire con qualsiasi tipo di
astrazione che copre così tanto
varietà qualsiasi altra domanda
se non ci sono altre domande che in realtà
voglio solo raccomandare a tutti voi
per entrare in possesso di alcuni simili
microcontrollori o sono questi micro
elaborare e poi giocare con loro è a
molto divertimento ne abbiamo così tanti
dispositivi che fluttuano nell’ufficio
Ufficio di Google, dove sono io e le persone
divertendoci molto a lavorare su questi
cose e li sta avendo e lavorando
con loro cambia davvero la tua percezione
su di loro penso sia un ottimo
spazio interessante per essere in fresco grazie
tu
tu
internet di cose ma soprattutto
cose programmabili su Google e my
lo sfondo è molto nel
linguaggio dello spazio, quindi sono su cui ho lavorato
JavaScript Smalltalk incorporato
motori e recentemente ho lavorato su dot a
linguaggio di programmazione strutturato per
il web ma chiaramente questo non è davvero
abbinare qualsiasi cosa nel titolo così
ora cambieremo un po ‘
e concentrarsi su qualcosa non su questa diapositiva
non nel mio solito background qui
vediamo questa cosa andando così la ragione
perché sono qui è negli ultimi
anni abbiamo visto un’esplosione di dispositivi
per quello a cui tutti ci riferiamo come IOT è a
parola grande in realtà tre parole così è
come tre grandi parole e significa molto
di cose diverse a molto di diverso
persone e ho dovuto cercare di concentrarmi
una parte qui è la più interessante
la cosa qui è veramente come qui è un
esplosione di dispositivi che stiamo vedendo a
crescita tremenda e non sembra
stai rallentando in qualunque momento e se tu
mettilo in prospettiva e pensaci
quanti smartphone o telefoni cellulari tu
oggi siamo in giro come a uno
la stima è di circa 7,5 miliardi
smartphone, ma questo è molto limitato
dalla quantità di persone che ci piace
alcune persone possono avere due telefoni o tre
telefoni ma è un po ‘difficile avere un
cento probabilmente non ha senso
mentre nella tua casa in alcune città
città intelligenti e impostazioni aziendali voi
può avere un sacco di dispositivi e noi
tutti vogliono in qualche modo collegarli
insieme e renderli hackerabili
programmabile quindi questo intento di termine
le cose in realtà significa quasi troppo io
pensa e riguarda la raccolta di dati e
quindi percependo l’elaborazione dell’ambiente circostante
questi dati e trasmetterli è
su come trasportare questa roba
reti quindi questo è il mio coinvolgimento in switch
e una sorta di hardware di rete si tratta
memorizzando questa informazione possibilmente nel
cloud è anche sull’analisi e
estrapolando intuizioni da questo e da questo
elaborare quindi i dati raccolti
e certamente riguarda il controllo
dispositivi e ambiente basato su
avvisi o nella scienza raccolti e così via
ci sono un sacco di cose da fare qui e
e forse ancora più importante c’è
anche condividendo questi dati con altri
sistemi quindi è quasi come questo significa
troppo, quindi ho intenzione di provare a tagliarlo
qui e concentrati su un paio di questi
cose e rivolgo la mia attenzione al
spazi in cui i dispositivi sono veramente
presente e dove si può davvero iniziare
per parlare di programmazione di questi dispositivi
quindi certamente nello spazio nel senso
dove hai molti piccoli dispositivi
che stanno facendo monitoraggio e rilevamento
ha senso parlare di a
dispositivi programmabili ma sono certamente
anche nello spazio di controllo puoi farlo
parlare di avere dispositivi che sono
controllato da altri sistemi o anche
controllare altri sistemi quindi ci concentriamo su
quelle cose che possiamo impostare restringe dal vivo
giù io questo non sono gli unici due
dispositivo che si adatta a questo, ma c’è come
due due diversi tipi qui ci sono
come gli smartwatch sulla sinistra I
indovina a destra per voi ragazzi e quello
sono abbastanza grandi, voglio dire è così
non stiamo parlando di piccoli sistemi
riguardo stanno funzionando come micro
processori hanno probabilmente centinaia
di megabyte di RAM ci sono abbastanza grande
cose ma si adattano ancora qui e
e di solito nel modo di controllo che loro
sono usati per controllare solo altri dispositivi
come uno smartphone si adatterebbe qui come
beh, non so se tu sai cosa
questa cosa è che è un pulsante del cruscotto Amazon
è una novità per la quale puoi comprarli
come cinque dollari negli Stati Uniti e cosa
non consentire dovrebbe avere un piccolo pulsante
puoi mettere da qualche parte nella tua cucina
e quando lo premi, ordini di più
maccheroni e formaggio è carino
intelligente e sono tutti di marca
puoi prenderli come pannolini e
qualunque cosa tu voglia scrivere, puoi mettere
loro o tu vuoi veramente economico e
non possono eseguire un grande microprocessore
gestiscono qualcosa di molto più piccolo
microcontrollori quindi pensiamo a questo
diviso in due segmenti e se guardiamo
all’hardware coinvolto come il
lo spazio del microprocessore è troppo
basta ordinare maccheroni e formaggio come uno
tipo di impostazione qui è lì o uno
tipo di dispositivo qui è come il
il raspberry pi piace è davvero di nuovo a
in piena regola e sistema che ha come a
processore quad-core che funziona in modo equo
velocemente
come un gigabyte di ram ed è estendibile
attraverso una micro carta esterna microsd
le carte non è così costoso e può
eseguire una sorta di tutti quasi tutti i sistemi e
gira Windows oggi e fa funzionare Linux
probabilmente il sistema operativo più usato su
li può eseguire più o meno tutto
questo è come un piccolo server è abbastanza
piccolo è abbastanza economico ma è ancora
una specie di server trovo l’altro tipo
un po ‘più interessante questo è un
microcontrollore di fascia alta a ragionevolmente
nuovo e ha una corteccia di braccio-m sette
core e, come questo, una specie di alto livello
specifiche high-end per quello spazio a 32 bit
CPU e come una quantità ragionevole di RAM
come 320 kilobyte di RAM parecchio
e forse fino a un megabyte di carne e
ma ne hanno ancora tagliato alcuni
gli angoli nel produrre questo hanno deciso
non avere una doppia precisione
unità a virgola mobile e non esiste alcun tipo
di fantasiosa unità di gestione della memoria
anche lì, quindi ne metto davvero un po ‘
onere per le persone che sviluppano software
perché queste cose siano in grado di vivere
quelle restrizioni non è un vero e proprio
cosa così in questa presentazione che sto andando
concentrarsi principalmente su questo tipo di chip
perché penso che sia davvero dove il
sta per accadere una crescita esplosiva
perché un like anche se questo è
è davvero molto alto nel mio controller
ancora molto più economico dell’altro
e stiamo vedendo chip che sono molto utili
sotto un dollaro lì in produzione
e costa quindi è sta succedendo così
la gente vuole davvero eseguire qualcosa del genere
Linux embedded sono veramente piccoli
dispositivi quindi una buona domanda da porsi è
come è che anche possibile giusto e
la gente parla di questo vedi Linux
che è un Linux che funziona molto piccolo
dispositivi senza unità di gestione della memoria
ma richiede davvero qualcosa del genere
quattro megabyte di RAM e forse due
tre megabyte di carne quindi è davvero così
davvero difficile eseguire qualcosa come Linux
e in quello spazio e questo fa molto
di persone tristi a cui sono abituati
erano abituati ad avere questo come me
metti linux lì, poi ho tutto me stesso
i miei strumenti a cui sono abituato e basta
tipo di lavoro non funziona davvero così
bene in questa impostazione, quindi abbiamo bisogno di
capire cosa abbiamo invece così noi
partirà per qualcosa di simile a
GCC è importante o llvm e
forse hai qualche problema di debug
supporto pure, ma è abbastanza equo
primitivo forse anche questo è un po ‘troppo
molto tu
probabilmente ne ho un po ‘di più ma io
penso che lo scenario migliore sia
qualcosa come questo o tu hai un modo
di scrivere codice C e come questo è un
bel esempio abbastanza ben strutturato da
da embed prodotto da armati e in se
sei abbastanza fortunato hai anche un PIL
che attraversa una sorta di telecomando
connessione del dispositivo qui che ti permette
per lavorare con il sistema spesso gb è un
un po ‘inconsapevole di come i fili
che funziona in cima al sistema operativo così è
come se fosse come fare il livello del kernel
il debug è piuttosto difficile ma lo è
ancora meglio di non averlo io
penso che questo sia il migliore dei casi
scenario per lo sviluppo di questi molto
piccoli dispositivi e per me mi piacciono
questa cosa ma ne conosco un sacco
gli sviluppatori non sono davvero a proprio agio
scrivendo molto codice in questo modo e se
lavori in grandi squadre è davvero difficile
fare qualsiasi cosa con il sito tecnologico come
questo quindi quello che vediamo oggi è lì
non sono molti sviluppatori che lo sono
davvero produttivo con un setup come questo
quindi penso che dobbiamo cambiarlo
in qualche modo così ora è la parte in cui dico
tu bene quello che voglio veramente, ma anche io
pensa a ciò di cui hai veramente bisogno e
speriamo ci sia qualche sovrapposizione tra
le due cose credo che ci penso
non è questo il motivo per cui sono qui così
Penso che sia davvero importante per noi
ottenere una piattaforma che è molto di più
accessibile a una gamma molto più ampia di
Gli sviluppatori e abbiamo bisogno di qualcosa che
sembra familiare a molte persone no
solo di nuovo sì sì alcune poche migliaia
persone in tutto il mondo ma in qualcosa
che può raggiungere come un milione di f
gli sviluppatori non lasciano che io e nipote
penso che dovessimo essere basati su qualche tipo
di un linguaggio gestito di alto livello
rende più persone più produttive
questo spazio ci sono alcune scelte noi
posso farcela e ho una buona idea
su cosa dovremmo scegliere ma loro
tornerò a quello naturalmente, ma io
pensa che questo non sia veramente importante per
fare dispositivi una sorta di programmabile da
bene dico tutti ma almeno mi piace
rendendoli molto più accessibili e
molto più facile da hackerare credo che noi
devi cambiarlo un po ‘anche tu
bisogno di un ambiente molto più produttivo
adesso voglio dire che puoi costruire davvero
cose interessanti davvero cool io te o io io t
gadget ma è più invece che dentro
nonostante gli strumenti, è perché
di così penso che tu abbia bisogno di un produttivo
ambiente con analoga analisi statica
completamento del codice cose a cui sei abituato
da pile di livello superiore
ne ho bisogno anche in questo spazio e tu
bisogno di una sorta di ecosistema di
funzionalità che possono inserire e riutilizzare
attraverso questi dispositivi e qualcosa
è davvero difficile scrivere con il codice C
non è necessariamente il più portatile
codice nel mondo e così puoi scrivere
in un modo davvero carino che è
abbastanza portatile ma devi ancora
cura molto quindi non si vede un sacco di
condivisione in corso e almeno penso che noi
potrebbe fare molto meglio e penso tutto questo
è necessario per far sì che le persone li costruiscano
cose molto non più veloci di quelle che abbiamo visto
nel passato e così penso a come
persone molto più veloci stanno sviluppando web
app di quanto non siano come costruire
app incorporate se dovessimo in qualche modo collegare il
gap un po ‘e rendere incorporato
sviluppatori più o meno produttivi come
persone che si stanno sviluppando per il web oggi
sarebbe molto meglio almeno forse il
la cosa più importante che io penso noi
non ho oggi è un tipo aperto di
piattaforma utile una piattaforma dove
puoi dove puoi aggiornare il software
componenti in là e una piattaforma dove
puoi avere nello sviluppo indipendente
codice coesistono nello stesso spazio con alcuni
garanzie e qualcosa che può
piace davvero spingere i dispositivi da
essere abbastanza statico con un set di
firmware con immagino casella di sicurezza noto
e tutto per qualcosa che è
veramente estendibile e configurabile
qualcosa che puoi a casa tua
installa un po ‘di software su quella volontà
abilitare alcune funzionalità per venire a
la vita penso che questo sia davvero il nucleo
e ora che ce ne sono alcuni
giocatori che stanno cercando di costruire questo
cosa su cui si concentrano principalmente
micro processo e verso l’alto e vediamo
pochissimi che stanno provando davvero
duro nello spazio inferiore ce ne sono pochi
ma ma è difficile quindi credo che abbiamo un
alcune richieste qui ci vorrebbero un sacco di
cose come devono essere gestite
linguaggio e deve essere tutto
è come librerie e moduli
la manutenzione cambia codice e deve
gira su microcontrollori veramente piccoli e
è difficile riuscire a ottenere tutto
vuoi che conosca persone che vogliono davvero
un pony e non lo fanno avere persone
che vogliono i sedili WC dorati
non necessariamente nei poliziotti, ma io
penso che possiamo davvero averne un sacco
forse non tutto ma te lo dirò
cosa possiamo iniziare e poi possiamo
capire come possiamo andare avanti
avere tutto così è una possibilità
per iniziare con un linguaggio di alto livello come
freccia e questo è il posto in cui vengo Sarah
questa è la lingua che ho aiutato a progettare a
alcuni anni fa e abbiamo iniziato
progettandolo per un ambiente web ma
è uno scopo abbastanza generale in
linguaggio familiare per la maggior parte è a
oggetto linguaggio gestito di alto livello
orientato e ha una sintassi che sembra
molto simile a vedere quale è penso sia un
beneficio in questo in questo contesto lì
sono lingue più nuove e più fresche intorno a me
pensa anche che guardi molto meno di C e
sono molto meno come vederli e artisti
ma in questo contesto penso che sia davvero
una forza che hai qualcosa dove
come le solite cose che fai in un piccolo
incorporato impostazione del tipo di codice
frammenti che vedi ci saranno di sorta
traduci piuttosto facilmente questo
cosa e se vuoi giocare in giro
con la freccetta puoi andare al nostro dart pad
quella freccia fila il lato del dork dove tu
può solo provarlo in un browser
contesto solo per avere un’idea di cosa sia
il linguaggio è ma questo non è un
presentazione di dart quindi è solo
come abilitare la tecnologia per fare cosa
Ti mostrerò così l’unico problema
abbiamo però è che inizia
effettivamente eseguito su questi micro controlli a
tutto e fino ad ora è stato un no
davvero, ci siamo scappati
microprocessori e in diversi
contesti su smartphone e smart
orologi e cose del genere ma sul
una specie di estremità inferiore di ciò che usiamo di solito
pensa come un dispositivo che puoi programmare
non stiamo andando molto bene, quindi lo sono
sto andando a dirti che è qui
è cambiato, quindi vado a darti
come un’anteprima di un progetto che abbiamo
lo sto facendo da un po ‘di tempo
chiamalo Fletch Fletch è una piccola parte di
un punto quindi questa è la ragione per cui abbiamo scelto
quel nome e Fletch è un sistema che è
piccolo e leggero produttivo e e
utile e abbastanza semplice e
accessibile che ti permette di scrivere in alto
livello in questo caso codice dardo per piccoli
microcontrollori quindi per fare veramente un
piccolo runtime o piccola macchina virtuale
per una lingua gestita in forma in a
impostazione microcontrollore e dobbiamo
pensa a cosa viene solitamente inserito
questi in questi sistemi e ciò che possiamo
rimuovere quindi questo non è necessariamente il
la definizione comune di un virtuale
macchina ma vediamo la tendenza in questo momento
dove la gente pensa a una macchina virtuale
è qualcosa che esegue il codice sorgente
direttamente così si prende solo cura di
compilando il codice sorgente a qualunque cosa
il codice nativo deve compilarlo ae
per eseguirlo e ha bisogno di avere un
esecuzione in che si può usare quel codice essa
deve avere un garbage collector e alcuni
modo di definire classi e oggetti
e deve avere un buon debugging
supporto che è in ogni caso una sintesi
e rende le macchine virtuali oggi simili
abbastanza grande se si guarda un v8 da
JavaScript che ho aiutato a costruire è it’s
probabilmente non un piccolo sistema
sono stati i primi tre mesi, ma ottieni
più richiesta di nuove funzionalità in nuove
performance e hai detto che si accumula così
cose che possiamo sicuramente pensare
rimuovere è il compilatore del codice sorgente
questo ci farà tornare più comuni
sistemi in cui il compilatore e il
il tempo di esecuzione era più separato come
indietro nel giorno e anche quello che hai
con GCC e llvm e possiamo pensarci
indipendentemente dal fatto che il supporto per il debug possa o meno
essere reso più semplice più piccolo e ho capito
come un ottimo protocollo che consente
mi piace il debugging e e
lavorare con il sistema senza questi
modello di ottica del motore di esecuzione di cose e
immondizia come loro sono davvero difficili
vivere senza un alto livello gestito
lingua, quindi quello che cerchiamo di fare è farlo
costruire un sistema che ha solo fondamentalmente
quelle parti in esecuzione sul
microcontrollore così il modo in cui ci siamo divisi
è che abbiamo un compilatore di solito
in esecuzione su una macchina per sviluppatori no
devo davvero correre ovunque in particolare
può funzionare ovunque tu voglia quello
parla con un runtime potenzialmente attivo
un altro sistema e l’interfaccia
tra queste due cose è una specie di
interessante quindi deve essere il tempo di esecuzione
molto semplice quindi anche l’interfaccia deve
essere semplice, quindi quello che abbiamo costruito è
in realtà un runtime di go che ha una sorta di
un’API guidata dai comandi che consente di
sistema qui il compilatore per chiederglielo
per fare certe cose per questo sotto
è che è una macchina impilabile, quindi puoi
puoi spingere un nuovo stato nella pila di
questa cosa runtimes e puoi
manipolare una costruzione di nuove strutture di classe
definire nuovi oggetti definire nuovi metodi
attraverso questa questa API e lasciare che il
compiler tiene traccia di quali classi terminano
su dove nel sistema e dare loro il
i nomi simbolici consentono al compilatore di
associare ID arbitrari che tipo di
qualsiasi entità che è in esecuzione in fuga
tempo laggiù il runtime no
mi interessa davvero questa mappatura, così ho messo
qui fuori dal lato qui ma il compilatore
potrebbe aver bisogno di sapere più tardi quando arriva
dire un oggetto che è un’istanza di
una certa classe in modo che il sistema ha bisogno di
essere in grado di comunicarlo
l’istanza è di classe settemilaquattro
centenove e poi il
Pilar saprà cosa significa così è
fondamentalmente come prendere il simbolico
debuggare le informazioni e metterle in atto
fuori dal lato non è inaudito
anche altri sistemi quindi non è super
romanzo ma non vediamo gente che costruisce
questi sistemi più come loro
usato così ti abbiamo fatto un passo indietro
potrebbe dire e separare il tempo di esecuzione
informazioni di debug e il compilatore così
tipo di cose che facciamo e facciamo tutto questo
su un protocollo filo, quindi possiamo eseguirlo
da remoto e non ci interessa molto
molto di ciò che è adesso è per lo più
basato su tcp / ip ma puoi andare molto più in basso
e fare qualcosa per te è che è e
non so e ma le cose che puoi fare
con questo tipo di protocollo filo sei tu
puoi impostare la struttura del programma che puoi
definire nuovi metodi e nuove classi ma
puoi anche cambiare il programma
struttura e puoi cambiare il metodo
tavolo di una classe e dì da questo punto
avanti Voglio davvero anche questa lezione
avere un metodo chiamato bar invece di solo
avere un metodo chiamato foo che significa
puoi cambiare il comportamento del codice
in esecuzione sul tuo microcontrollore mentre
stai sviluppando su di esso quale è
qualcosa di conosciuto da altri piace di più
come i sistemi più grandi questo come dal vivo o
modo interattivo di lavorare con il
sistema ma è qualcosa che raramente vediamo
in questo spazio puoi anche cambiare
gli schemi questo è un tipo di
terminologia utilizzata per descrivere il
cosa succede quando cambi il
layout di una classe aggiungendo nuovi campi
per esempio e la parte difficile qui
è che se ne dici cento
oggetti di una certa classe nella tua
sistema e poi vai avanti e aggiungi
un altro campo o rimuovere un campo da
a quel corso devi fare qualcosa
tutti questi oggetti e anche il sistema
Supporta questo semplicemente attraversa il
ottica e li manipola loro
li aggiorna sul posto per farli ordinare
di avere il nuovo tipo di formato
definizione che la classe implica noi
ha anche un protocollo abbastanza semplice per
il debug del programma in esecuzione è possibile
avviarlo è possibile impostare i punti di interruzione
contro il riavvio l’attivazione ma esso
tutto accade su questo protocollo filo e
ci sono molte cose in questo debugger
non può farlo non sa della fonte
codice che non conosce le posizioni in
nei tuoi file di testo che non conosce
qualsiasi cosa sia tutto ciò che deve essere
mappato dall’esterno e io sono
andando a darti una piccola demo di cosa
come funziona in pratica
in un po ‘di tempo in modo da ciò che è necessario
ricordare è proprio come è il runtime
super piccolo è focalizzato a farne uno
cosa bene e questo è essere di nuovo a
runtime per l’esecuzione di programmi ma
ha un’API che ti permette di
fallo dall’esterno in questo tipo di
macchina basata sullo stack e se è guidata
dal compilatore c’è una sorta di a
interessante effetto collaterale di questo design
è che abbiamo trovato invece di
storicamente su cui lavorano le persone
macchine virtuali che odiano davvero aggiungere
nuove funzionalità per fare sviluppatori
la vita più facile per qualche ragione che vogliamo
concentrarsi sulle prestazioni
prestazioni forse forse dimensioni pure, ma
quelle sono le cose a cui teniamo e
mentre le persone che lavorano sul compilatore
lato possono interessarsi del buon errore
messaggi e simili e così via
avendo la divisione dove non hai
convincere la squadra che consegna il
piccolo tempo di esecuzione per aggiungere più funzionalità
per migliorare il debug della riga di comando
interfaccia è in realtà un po ‘carina
solo c’è resistenza anche in me quando
Lavoro sul tempo di esecuzione in qualche modo solo
continuare a rendere difficile per gli sviluppatori
usa il sistema perché voglio tenerlo
piccolo così la divisione lo rende
molto più pulito e puoi aggiungere più peso
al compilatore è meglio così
per gli sviluppatori quindi non so se questo
si applica a tutti coloro che lavorano su VMS ma
sicuramente mi riguarda un altro ragazzo
vuole unirsi anche così una cosa avere
detto tutto ciò che riguarda le prestazioni che faccio
in realtà voglio passare qualche minuto
di parlare di prestazioni di questi
sistemi e come li fai velocemente
una cosa che fa un sistema come il dardo
è che ogni chiamata al metodo è molto
dinamico hai pochissimo statico
informazioni da seguire, quindi è necessario farlo
così veloce è molto bello lavorare in a
sistema come questo, ma il runtime deve
sii troppo veloce, così come un super short
interludi solo per spiegarti alcuni
dettagli tecnici su come stiamo andando
questo sistema così qui è una gerarchia di classi
siamo di classe si estende che si estende a
e la Classe D si estende come una Classe A così
ma non è correlato a B o C c’è
un metodo per la barra in una che è sovrascritta
in C c’è un metodo di accoppiamento in B e
c’è un metodo di basso separato in D e
di solito se volevi implementare
dispacciamento che sta chiamando un metodo
uno di questi oggetti o un oggetto da
derivano da tutte queste lezioni che tu vai
e guarda la struttura della classe e poi
attraversi la gerarchia e la figura
per esempio se chiami, dì
barra su istanza FB quindi dici bar bene
non è il design e sii così
guarda nella superclasse che vai lì e
li trovi
e tu sei felice e spesso le persone finiscono
aggiungendo un livello di memorizzazione nella cache in cima a quello
per renderlo più veloce ma è una specie di
una sorta di essenza di esso abbiamo scoperto che
queste cache su dispositivi molto piccoli sono
difficile da controllare soprattutto nelle dimensioni
di loro devono essere abbastanza grandi per
essere colpito abbastanza frequentemente e se non lo fai
rendili abbastanza grandi da finire
dover invertire anche la gerarchia
spesso questo li rallenta davvero
voglio qualcosa di più prevedibile così
per fortuna c’è un modo per renderlo più
prevedibile in modo da poter fare un grande tavolo
qui con tutte le classi qui fuori ABC
e D e il metodo chiama quaggiù
bar e basso e poi puoi dire come
il cibo il metodo alimentare non è implementato
in a ma è implementato su B e B
anche la versione di questo è ereditata
guarda una classe quindi se vuoi chiamare foo
su B o DO, basta guardare su
classe e trovi la cosa giusta
via lo stesso per barra che è ereditata
a tutti loro c’è un separato
versione per mare ma diversa da quella noi
avere un bar e tutti loro e il basso è
solo su d ha senso che possiamo
costruire un tavolo come questo il problema è
che diventa davvero grande molto velocemente
se hai n classi e nomi di metodi M
ottieni un tavolo di dimensioni n volte m
certamente non va bene per i piccoli
microcontrollori in realtà non si adatta
ovunque, quindi dobbiamo fare qualcosa
su quella ricerca per il salvataggio come a
molto tempo fa le persone erano davvero preoccupate
su queste cose, quindi siamo in qualche modo
tornando a quello e stiamo guardando
cosa ha provato in questo
spazio prima e una cosa che è davvero
promettente è ciò che viene chiamato selettivo
dislocamento di riga basato suona molto
fantasia ed è una specie di intelligente
c’è una nozione fondamentale è che ci sono
buchi qui dentro forse un po ‘dell’altro
strade come questa fila potrebbero rientrare in alcune di esse
questi buchi forse possiamo sovrapporli
in qualche modo e li aggiusta e li rende
anche per adattarsi in una fila invece di in
tre righe in questo caso, quindi come sarebbe
che sembra un modo per farlo
si può dire che prendiamo le cose del bar che c’è
una lunghissima fila si potrebbe dire e metterlo
prima quindi aggiungiamo i metodi foo qui
e poi aggiungiamo il basso laggiù e lo farò
spiega perché c’è un buco qui in un
un po ‘di tempo ma è importante
notare che possono esserci buchi in a
rappresentazione come questa così come noi
in realtà andare a costruire questo
il grande tavolo è quello che vogliamo
vogliamo associare un offset con
tutti questi nomi di metodi in modo che il
offset + il numero della classe che potresti dire
ti dà l’indice giusto in questo
tabella così per barra ho scelto l’offset 0 così
l’indice asso è 0 più uffici più off a
0 e quindi finisce qui e tu colpisci a
ti bar in un bar Bar C e un bar che
una specie di lavoro come prima che tu possa dire
quindi per foo è un po ‘di più
complesso vogliamo che questo sia di implementarlo
sulla prima classe con indice uno
essere colpito e colpisce l’entrata per qui così
abbiamo bisogno del largo delle api tre così
che le api 1 più questi tre colpi
questo e poi funziona bene per il
Caso di CD e quindi finiamo qui con
il 5 3 più 2 quindi se dovessimo solo aggiungere
il caso del basso proprio qui vorremmo
finiscono per avere un piccolo problema e questo è
che la cosa migliore sarebbe in realtà finita
con l’offset 3 e 6 plus
questi tre qui o sei meno questo è
i loro tre qui ci danno una compensazione
di tre ma è davvero conveniente
hanno offset unici quindi dobbiamo solo spingere
più lontano, ottieni un buco e daglielo
off set per il motivo invece per cui siamo noi
bisogno di queste opzioni per essere unici è quello
quando guardi qui prendi il
nome del metodo in questo caso diciamo basso
prendi l’ID di classe che hai ragione
ora quando chiami qualcosa potrebbe essere
uno o due o tre o anche zero si aggiunge
loro insieme e tu guardi in
tabella che si vuole fare in modo che non sei
colpire una voce da una delle altre
Riguarda quindi ciò che abbiamo inserito in questi
le voci non sono ancora solo un metodo per chiamare
è anche qualcosa per verificare che siamo
colpire la cosa giusta e questo è il
offset così stiamo memorizzando offset
tre in qui e qui e per tutti in forma
per qui, quindi se colpiamo qualcosa
qui basato su un selettore di bassi lo faremo
sapere che non è applicabile anche se io
piombando potremmo finire nei guai così
questo significa che se lo fai fallo
in questo modo ti garantisci costante
tempo dinamica di dispacciamento si guarda in
il tavolo e tu dici che è questa voce
correggi per me se lo chiami se
non è allora che dici al sistema
questo offic non implementa questo metodo
quindi è molto semplice in fase di runtime
possiamo calcolare questo tavolo prima di noi
avvia l’ applicazione e spediscila
come parte dell’applicazione e così via
non ha costi di runtime da costruire
e e richiede solo come 10 a
settanta percento più spazio di e v
tabelle note da altre classi
sistemi è abbastanza cool come il
il motivo per cui non possiamo usare le tabelle V è
perché non abbiamo un tipo statico
annotazioni ovunque è davvero
non funziona, ma possiamo ottenere il
benefici delle tabelle V e in questo in questo
modo diverso che è stato molto breve
interludi su come acceleriamo le cose
torniamo a qualcosa che è un
un po ‘più tangibile la programmazione
modello quindi se abbiamo questo bel livello elevato
lingua e vogliamo che le persone si sviluppino
per piccoli dispositivi basati su di esso e cosa
li offriamo come loro?
in realtà devo scrivere così cosa costruiamo
questo è qualcosa che si adatta a
piccolo sistema operativo embedded in tempo reale e così via
questo è il runtime di fletch e oltre
che abbiamo il supporto per la corsa
più programmi indipendenti e e
questi programmi in realtà non hanno per me
stasera non hanno bisogno di sapere
l’un l’altro possono essere aggiornati
indipendentemente e tu puoi autoinstallarti
li nel sistema e sostituire la maglia
come vai, questi programmi possono effettivamente essere
in esecuzione in più istanze presso
allo stesso tempo in modo che i loro processi funzionino
in cima a questo ed è molto simile a a
sistema unix che potresti dire costruito da
noi in uno spazio molto più piccolo alcuni programmi
potrebbe non essere in esecuzione in questo momento
altri potrebbero essere in esecuzione con a
processo e altri potrebbero essere in esecuzione anche
più ti dirò perché è in realtà
ha senso considerare di avere un setup
dove hai in questo caso cosa sette
processo in esecuzione è perché noi
reso il processo e molto leggero così
un prezzo su questo in questo spazio ha un
piccolo ingombro di memoria adesso è così
circa 4k e che deve andare oltre
giù per essere veramente applicabile al
dispositivi più piccoli e ma significa
che puoi ottenere un completamente separato
istanza di un programma in esecuzione in giro
4k condividiamo tutti i codici byte e tutti
le cose che fanno funzionare tutto il sistema
le strutture di classe tutto è
condiviso in modo da pagare solo per i dati / o
processo non è una cosa nuova in un sistema operativo
impostando questo è il modo più operativo
i sistemi funzionano ma è in qualche modo
nuovo in a in uno spazio sempre molto piccolo
dove le persone non lo fanno
avere il lusso di usare mm dove possono
condividi e leggi bene solo di destra
leggere solo i segmenti che sono condivisi
è più difficile da ottenere in questi casi
un’altra cosa che è gentile qui
è che possiamo effettivamente permettere questi
processo di sistema da bloccare e giusto
aspettando che qualcosa accada senza
assumendo risorse di sistema su questi
piccoli dispositivi spesso hai solo un
numero di minacce disponibili
forse forse solo uno forse un fisso
numero e tu davvero non lo vuoi
come mantenere una minaccia di livello OS nativa
per bloccare un processo così ce l’abbiamo fatta
se un processo blocca, lo restituiamo
la minaccia nativa al sistema che possiamo fare
qualcosa di interessante e qualcos’altro
in esso è fondamentale se ne hai di più
core che potrebbero non essere effettivamente applicabili al mio
controlli a questo punto in realtà lo fanno
eseguire in parallelo queste cose che è
tipo di pulito quindi ecco un pezzo di codice
quel tipo di mostra come puoi usare
processo per trattare con in arrivo
connessioni come entità separate che
interagire molto molto poco quindi se tu
creare un socket del server da qualche parte in a
una sorta di modo unico di vedere come puoi te
può accettare connessioni in entrata tramite
generando un nuovo processo e poi tu
in realtà basta avere il codice qui dentro
culo invece di una chiusura in linea che
in realtà viene eseguito in un processo separato
può quindi andare avanti e rispedito
qualcosa per il socket e chiudere
fuori quando ha finito con quello in questo
caso probabilmente non fa un intero
molto senso correre è separato
processo ma se ci fosse qualche calcolo in
qui o cose che stiamo avendo la sua sandbox
e di lato non potendo
interagire con il sistema non essere in grado
pasticciare con il server, per esempio
è il tipo di bisogno di essere in grado di fare il
separazione anche in piccoli più piccoli di
dispositivi questo questo spawn tranne il metodo è
in realtà una cosa che blocca non è così
in realtà ritorna finché non viene accettato a
connessione in modo che tale mostra anche che
è gentile che tu possa solo ragionare
riguardo al codice che blocchi qui e
alcuni fino a quando qualcosa accade come il
ultima mania è di fare tutto asincrono
e che è davvero carino con lei in molti
modi è davvero un bel modello è solo
davvero difficile da programmare e in così grande
scale scale così i messaggi sono
in realtà sempre bloccando lì dentro
questa versione di iniziare qui e lo facciamo
avere un modo di comunicare
tra il processo che è possibile impostare
così puoi generare un processo che ha
accesso a una porta che è in realtà a
capacità rappresentativa di percepire a
certo canale se sai andare e andare
le routine come il modo in cui usano il canale
comunicare tra loro è molto
simile a quello che abbiamo qui ci sono
differenze ma questo modo molto simile
qui hai un invio di processo
messaggi e un processo in modo coerente
sorta di bloccato a ricevere il prossimo
messaggio e stanno solo stamparli
in loop non è la cosa più interessante
per funzionare su un piccolo dispositivo ma è giusto
ti mostra che puoi comunicare
tra queste cose e quindi costruire
e una specie di insieme di comunicazione
elaborare ciò che soddisfa o consegna
alcuni potrebbero risultare così per te
il codice ha senso questo è quel codice
l’unica cosa spaventosa qui è probabilmente
la chiusura, ma penso che sia così
sta diventando qualcosa di simile all’essere
in questi giorni metti la maggior parte delle lingue
speriamo che probabilmente si deve abituare
a questo genere di cose in futuro
comunque vediamo forse questo era un po ‘
un po ‘troppo facile, in questo caso, tu
visto qui è stato detto che le uniche cose
inviato tra questi era questo processo
erano interi che è abbastanza facile da fare
e abbiamo scoperto che è anche troppo limitante
ed essere in grado di inviare solo dire
valori primitivi come stringhe di numeri interi
non è abbastanza da costruire
qualcosa di interessante così come potremmo
avere qualcosa come lo stato condiviso
concorrenza in modo da avere più
processi come l’utilizzo dello stesso stato e
solo operando su di esso e il modo di
fare questo è solo permettere a qualsiasi oggetto di essere
inviato come messaggio a qualcun altro
senza copiarlo basta avere un
riferimento all’oggetto e questo significa
che qualsiasi in qualsiasi momento che lì
può essere più processo che in realtà
avere un riferimento agli stessi oggetti e
possono semplicemente operare allo stesso modo
puoi suonare bene parallelamente e tu
probabilmente devono avere un sacco di specie
primitive di sincronizzazione nel
linguaggio per fare questo lavoro come serrature
e tutte le bandiere semafori e fermi
e quant’altro è un modello abbastanza comune
questo è quello che abbiamo visto come costruito in
Java in molti modi e altri sistemi di troppo
Non mi piace , penso che sia troppo
complicato e come così è un po ‘
bello poter inviare qualsiasi oggetto
tra queste parti indipendenti del tuo
app e ma è solo che penso sia troppo
tanto da dire che poi improvvisamente ogni
ufficio unico
potrebbe anche essere come l’ accesso in parallelo da
più minacce indipendenti penso
è troppo così che invece ci mettiamo dentro
è in realtà stato condiviso immutabile
considera la concorrenza in modo da poter fare tutto
di quello che ho appena detto da te
promettimi e in effetti dimostraci che il
solo le cose che invii sono profondamente
oggetti mutabili che puoi costruire
grafici arbitrariamente grandi di questi bene
grafici aciclici di questi profondamente immutabili
strutture e passali come messaggio
tra queste cose così e improvvisamente
è sicuro per più processi a
operare sulla stessa cosa che possono solo
leggi scrivi il loro esercito immutabile e tu
non hanno ancora bisogno di esplicito
primitive di sincronizzazione che significa
che è è possibile per dire un
cento processi per orchestrare qualcosa
costruendo lo stato condividendolo e
lavorando con esso quindi ce n’è uno in più
cosa come abbiamo visto finora che a
processo può bloccare e aspettare qualcosa
succedere ma cosa succede se si ha un processo
ha bisogno di aspettare più così
cose indipendenti da accadere come fai tu
gestiscilo nel modello asincrono tu
solo una sorta di registro multiplo
callback indipendenti e dire se questo
cosa succede sto andando a fare questo se
questa è la cosa che accadrà che farò
che sarebbe bello poterlo fare
sostenere qualcosa del genere quindi sono messo
qui è qualcosa non completamente
inaudito di un’altra lingua di entrambi
fibre quindi un modello di filettatura leggero
in cima al sistema che ti permette di
scopano nuove fibre e poi finiscono
facendo operazioni di blocco come qui
quindi sono qui che sei tu
voglio aspettare fino ad una certa temperatura
il sensore del sensore produce effettivamente un nuovo
valore per te in modo da bloccare l’input
in qui dici qual è il valore corrente se
è diverso dall’ultimo che inviamo
qualche messaggio a qualcuno e noi continuiamo a farlo
di andare in un ciclo, proprio come in attesa di
il prossimo evento succederà, ma se lo fai
avere due sensori come l’umidità e
sensore del sensore di temperatura necessario
in qualche modo mi piace essere bloccato su due diversi
cose allo stesso tempo e questo è
dove entra il nostro modello di fibre e tu
può avere solo una quantità arbitraria di
fibre in carino e in attesa di qualcosa
questo è molto vicino a quello che hai con
un modello di programmazione asincrono ad eccezione di quello
è molto chiaro cosa succederà
quando la chiamata ricevuta qui su blocchi
quando quel valore è prodotto, puoi farlo tu
puoi leggerlo qui se lavori in un
debugger è molto più facile ragionare
su quale sia la prossima cosa
succederà spesso in una bottiglia asincrona
tu perdi il contatto con che tipo di
includi nella tua coda eventi e
Mi piace anche chi elaborerà
queste cose in che modo si adattano
insieme è molto più difficile ragionare
circa in pratica almeno quindi questo è un
modello diverso per dove lo permettiamo
più fibre all’interno di un processo a
eseguire queste fibre sono cooperativamente
in programma cambiamo solo tra di loro
e ogni volta che uno di loro ci blocca
cambia il prossimo pronto e così là
non c’è parallelismo qui non c’è
il supporto per questo è solo un modo
di come logicamente avere indipendente
minacce di controllo una sorta di
partecipare alla realizzazione di una sorta di
compito così tutto e poi su incorporato
dispositivo, quindi come facciamo a prendere un
il modello di programma sembra abbastanza alto
livello per la maggior parte delle persone e solo rendendolo
adattarsi bene in un piccolo spazio e oggi
in realtà abbiamo appena annunciato molto presto
versione di a e sdk per fare ciò
cose nella prima versione che supportiamo
dispositivo che è troppo grande come un
pi lampone perché sono molto
disponibile abbiamo visto un sacco di persone a
divertirsi con quel tipo di hardware
Vorrei provare i flussi di lavoro e
prova a lavorare con un livello alto
linguaggio nel contesto di quello in modo che il
setup che usiamo effettivamente abbiamo a
sviluppatore pc ottengo il tuo mac o il prossimo
box che è collegato a un embedded
dispositivo in questo caso un Raspberry Pi e
nel futuro questo sarà
disponibile anche su micro controlli
se volevamo iniziare bene
praticamente oggi, quindi ho avuto qualcosa di interessante
visualizzare ragazzi così il modo in cui si esegue il codice
qui fondamentalmente puoi dire che voglio
eseguire o sul mio sviluppo pc o me
vuoi eseguirlo sul dispositivo incorporato
e quindi ottieni tutti i feedback indietro
dal sistema e puoi eseguire il debug e
lavorare con esso così ho voluto solo fare
certo che questo era effettivamente nella diapositiva così
se la gente ha visto questo dopo, loro
non sarei sorpreso che sia molto presto
l’accesso è solo per darti un’idea
quello che è ma è utilizzabile e la strada
funziona è che è possibile eseguire il codice
attraverso un comando Fletch e dire io
voglio eseguire questo programma iniziale e per
cambia tra eseguendolo localmente e
eseguendolo da remoto sulla torta
tutto ciò che devi fare è aggiungere il piccolo
una specie di incantesimo alla fine probabilmente
andando a renderlo un po ‘più breve
a lungo termine ma in questo momento mi sono sentito così
era bello essere espliciti, quindi se lo dici tu
eseguirlo viene eseguito localmente sul mio MacBook Pro se
dici che correre in sessione remota significa
eseguilo sul Raspberry Pi e vediamo
e penso che probabilmente abbia un po ‘
di tempo qui per andare davvero avanti e
mostraci ragazzi come funziona così io
qui ho il comando Flash posso solo
ricontrollare i lavori della lezione e i
ho scaricato il sdk e posso correre
questi comandi ti ho appena parlato di e
localmente su questo dispositivo mi dispiace e funziona
sul mio Mac con il tag darwin lassù
ma posso anche eseguirlo su questo lampone
pi che sono nascosto qui
da qualche parte e non importa
tanto che è collegato con esso era un
Cavo Ethernet, quindi dovrebbe funzionare
quando dico eseguirlo da remoto e così via
compila il codice e due byte lo codifica
lo sposta su di esso lo avvia lassù
avvia un’istanza di VM che non lo è
comunicare con esso così di per sé questo
non è super impressionante ma è bello
è che puoi davvero iniziare a farlo
più si potrebbe dire che in realtà non voglio
per eseguirlo basta eseguirne il debug
invece e e che vi porterà in
il debugger o si può dire che voglio
Dì metti un punto di interruzione a Maine e poi
corri a quello e poi sei a te maine
posso dire che voglio vedere dove sono bloccato
In questo caso sono bloccato a ottenere il
informazioni dal sistema prima di stamparlo
ovviamente va bene, continua
e poi stampa alcune cose come te
così ti sei connesso al dispositivo e tu
può lavorare con esso e il prossimo passo per noi è
per rendere il funzionamento del codice molto
semplice da fare in modo che se si cambia il tuo
file su disco e dire che in realtà voglio
applicare tali modifiche sul filo e
dimmi fammi cambiare la stringa qui e
ricominciare e questo è il metodo giusto
funziona, non fa parte di quello che eravamo
spedire oggi ma è qualcosa
stiamo costruendo così si arriva a lavorare con
il con il codice più o meno come se
è in esecuzione sul tuo dispositivo e sul
la promessa è di essere in grado di fare esattamente il
stessa cosa per un microcontrollore
cosa di cui ti abbiamo parlato, ma non l’abbiamo fatto
mostra davvero che puoi farlo
eseguire un sacco di processo allo stesso tempo
è un po ‘pulito e poi possiamo
effettivamente farlo oggi, quindi ho un
piccolo programma qui
processus bizzeffe e provare di nuovo e
mostra solo che puoi correre
come un centomila inizio del processo
li convincono a mandare dei messaggi
e e fermarlo di nuovo e io
avere abbastanza velocemente e questo sta per
mostra che ti possiamo creare questi a
centomila processi e invio
messaggio tra di loro e li abbassa
in 750 millisecondi potremmo provare che il
il Raspberry Pi chiaramente se lo gestisci
su un microcontrollore molto piccolo
i numeri sarebbero molto diversi probabilmente
sarebbe a corto di memoria, ma è ancora
è bello vederlo anche se
fai generare molte cose indipendenti
come questi hanno il loro calore proprio
spazzatura del genere sono indipendenti
molto molto separato quindi funziona lasciami
ritorna oggi, quindi spero che questo ti dia
un’idea di che tipo di che tipo di
cose che puoi fare bene è che è un
tentare di costruire un alto livello accessibile
lingua in cui è presente anche la toolchain
livello più alto su quello a cui sei abituato ma
ottieni ancora un po ‘di debugging
supporto dal sistema se dovessimo
in realtà andare avanti e ammiccare alcune luci
su quella cosa chiaramente hai anche bisogno
accesso a come il GPIO e tutto il resto
roba e così l’abbiamo costruita nel
sistema come una serie di pacchetti che puoi
basta installare e divertirsi con noi
credo che possiamo far crescere un po ‘
ecosistema di funzionalità di supporto
questo può fare cose divertenti per te e per te
cosa interessante qui è di nuovo il
il modello è molto semplice hai solo un
loop un punto che dici che voglio dormire
qui per 500 millisecondi vuol dire che
e poi lo hai capovolto capovolto
un po ‘sul pin GPIO ed è
modello molto semplice e questo no
significa necessariamente che stai bloccando a
minaccia nativa dal sistema operativo sottostante
stai solo dicendo proprio ora questa cosa
correre non ha nient’altro da fare
quindi ridona la minaccia e torna indietro
più tardi, quando ho qualcosa da fare, è
solo un modello molto semplice se guardi
ciò che le persone scrivono oggi per piccoli OSS
hanno ragione tipo di questo codice giusto ma
in realtà non scala bene quale
quando inizi a costruire grandi cose
il nostro sistema speriamo che questo codice sia
anche come relativamente leggibile e facile
per passare così come il corto
la versione di questo è qualcosa di simile
come penso che il mondo abbia davvero bisogno di più
sviluppatori embedded produttivi come il
la crescita dei dispositivi è davvero
impressionante
e ma sono troppo poche persone
lì che può davvero sviluppare qualcosa
incredibile in quello spazio penso che dobbiamo
cambia che altrimenti sarà
le stesse centinaia di persone nel mondo
che ha bisogno di produrre tutto il codice
non scala realmente ed è certamente
un problema che hanno troppi sviluppatori
Mancano le capacità per provare un embedded
dispositivo questo non è a causa di sviluppatori
sono come se non fosse perché abbiamo male
gli sviluppatori è davvero a causa del
vincolo che il targeting incorporato
i congegni se ne vanno, intendo davvero
non sto dicendo che avere un high
livello linguistico e avere una gestione
sistemi e tutto ciò che sta per
risolvi tutti i problemi perché sei ancora
hanno vincoli di qui che non sei
usato ma lo rende molto più facile
inizia molti di voi per iniziare
ragionamento sui mezzi problemi no
impostare la catena di strumenti e lavorare
con gdb quindi di nuovo abbiamo bisogno di più
sviluppatori e in questo momento è difficile
insegnare loro a usare la corrente
offerte per questi dispositivi di fascia bassa noi
ho bisogno di renderlo più facile, penso questo
Va da sé che la produttività è
più in alto con strumenti migliori e a
linguaggio gestito ed è davvero difficile
misurare questa cosa è qualcosa che
di solito sei sexy quando vedi le squadre
lavorando con strumenti migliori che hanno appena ottenuto
sorta di abilitato da questo, ma è
qualcosa che non siamo stati in grado di
giocare molto nello spazio integrato
prima ed è qualcosa che ci piacerebbe
provare a indossare per cambiare e forse il
la conclusione è davvero che quell’uomo è
lingue che si adattano a
i microcontrollori includeranno presto il punto
e questo è un livello alto ma equo
linguaggio semplice in molti modi è
progettato originariamente per un contesto web
ma è stato progettato da un paio di persone
a cui importa davvero le prestazioni e
impronta e abbiamo deciso il sistema
così in realtà si adatta in uno spazio simile
questo quindi non è un modo per inserirlo
un microcontrollore ed è qualcosa
che stiamo effettivamente sviluppando e forse
la tua domanda da tutto questo è come il perché
hai un attacco su prossimo penso tutto
tu e qui dovrebbe piacere il prossimo
pochi anni trovano qualcosa su cui lavorare
spazio penso che sarà enorme
come stiamo andando a prendere
fuori e via ora stiamo vedendo
persone che prendono di mira i telefoni cellulari che è
ottimo è un enorme mercato ma se vuoi
per colpire un grande mercato in due
o tre anni questo è dove andare
questo è davvero quello che devi fare
quindi con penso che abbiamo un po ‘di
tempo per domande che mi piacciono davvero
quindi dove spero che tu abbia qualche domanda
per me e poi poi altrimenti puoi
scendi più tardi, posso mostrarti di più
su cosa sta succedendo su questi
dispositivi e poi come stiamo andando
spostalo in avanti ma se lo hai
domande fammi sapere così la strada
le opzioni per l’applicazione in modo da iniziare
ci useremo per dispositivi più piccoli come
gardenia o esp8266 si quando e così
in questo momento il nostro obiettivo è davvero come il
CPU a 32 bit quindi ci sono arduino cpus
là fuori o conosci sistemi che
un po ‘in forma, ma abbiamo ragione
ora non abbiamo voluto avventurarci nel
otto o 16 bit di spazio e noi siamo
cercando di concentrarmi su ne ho alcuni e
sorta di dispositivi alla volta lampone pi
è un po ‘ un cheat nel senso
è troppo grande, quindi non è un
vero obiettivo per noi la prima cosa è
probabilmente sarò a corte x m7
cosa che crediamo di poter implementare
abbastanza presto e il prossimo in linea lo farà
probabilmente sarà qualcosa di simile al grande
Arduino sta per fare e alcuni
altri e quindi penso di pensare alla risposta
è sì ci sarà ottenere quei thurs fatto e
penso che probabilmente il prossimo anno
all’inizio del prossimo anno è una buona scommessa su
puoi dire qualcosa su ID o
Supporto ID e sì, quello che ti ho mostrato
qui è come il vero metallo nudo
la versione di questo è come eseguire tutto
dalla riga di comando e va bene
supportato da pochi pochi IDE oggi e
stiamo vedendo più interesse per il
IntelliJ sublime e Adam space e così
c’è un modo di strappare il dardo
analizzatore che fa analisi e codice statici
completamento in quello spazio che puoi
usa a con fletch quasi oggi non lo è
banale da configurare, ecco perché io cosa
non volevo vantarcene , quindi lo faremo
prova a fare un banale da configurare in modo che
se stai usando una demo sublime e / o
IntelliJ con cui potrai lavorare
che l’Fletcher offre da dentro
quella
infine abbiamo mostrato le interazioni
gpio cosa può anche interagire con i pini
e le librerie ed eseguono il tipo di thin
strisce e così fortunatamente su qualcosa di simile
il microprocessore basato su Raspberry
Pi non c’è quasi nulla che non possiamo fare
possiamo chiamare il sistema e iniziare
nuovo processo in modo che potessimo correre
Anche lì Python parla con me
penso che sarebbe abbastanza facile da ottenere
andando e quando colpiamo il più piccolo
bersaglia la cosa più probabile che farai
essere in grado di buttare lì con il
il tuo codice freccia è probabilmente basso
i livelli vedono le librerie da cui provieni
da altre impostazioni sono le cose che sono
proprio come rivestito a mano molto caldo
vuoi solo fare uso di e così io
pensare sotto il mio controllo sta avendo
qualcosa come Python sarà un
allungare c’è micro pison ma è a
un po ‘più grande di quello che siamo
puntando così in tutto qui è
non mi piace molto quello che hai visto
il GPIO non è integrato nel sistema
è costruito in cima al sistema, quindi è così
tutto il codice a livello utente in modo da poter scrivere il
stesse cose da soli, se si vuole che
hai una domanda e quando selezioni
il controller del microfono per un certo
applicazione che stai per fare
di solito quello che ti interessa è l’idolo
struttura del dispositivo e conoscenza
erano i turni il frutto primaverile o cosa
stai andando a fare e se guardi
diciamo che la compagnia del sud-ovest è come a
a casa ne hanno sette diversi
forse le architetture, ma lo sono
circa 600 modelli diversi e
ciò che differenzia tutti questi modelli sono
fondamentalmente il fuoco del dispositivo come
speri che tu gestisca quella pletora
di diverse configurazioni al suo interno
nel sistema che stai descrivendo noi
lascerà che sia con il livello dell’artista
sotto o chi si indirizza a quello
da qualche parte è una buona domanda
tutti sentono quale è stata la domanda
domande abbastanza lunghe non vado
per ripetere tutto ma è vero che
una volta che esci e scegli il vero obiettivo
dispositivi c’è molta varietà e a
un sacco di dispositivi diversi puoi attaccarli
e come la domanda era davvero siamo noi
andando a cercare di risolverlo a
il in tempo reale I livello occidentale o
cercando di ordinare la carta o il
differenza ad un livello superiore non lo faccio
penso che abbiamo deciso che è ancora molto
bella domanda perché è davvero difficile
inventare una sorta di astrazione
quello che nasconde i dettagli o il
implementazioni di queste cose e a
in certa misura non penso che dovremmo
facendo ciò penso che abbiamo bisogno di avere un
modo di esporre le cose di basso livello come
bene e ma allo stesso tempo a volte
vuoi solo essere in grado di scrivere codice
che attraversa questi seicento
diversi dispositivi e farlo funzionare così
la nostra soluzione è assicurarci che
tutto ciò che facciamo è un codice a livello utente
un senso in modo che le persone possano condividere
queste cose e possono sviluppare a
certo tipo di faccette che possono
aggiungere sopra se vogliono ordinare di non
astrazioni forzate che puoi usare
se hanno senso per te, penso che sia così
la migliore scommessa che abbiamo adesso è
davvero difficile venire con qualsiasi tipo di
astrazione che copre così tanto
varietà qualsiasi altra domanda
se non ci sono altre domande che in realtà
voglio solo raccomandare a tutti voi
per entrare in possesso di alcuni simili
microcontrollori o sono questi micro
elaborare e poi giocare con loro è a
molto divertimento ne abbiamo così tanti
dispositivi che fluttuano nell’ufficio
Ufficio di Google, dove sono io e le persone
divertendoci molto a lavorare su questi
cose e li sta avendo e lavorando
con loro cambia davvero la tua percezione
su di loro penso sia un ottimo
spazio interessante per essere in fresco grazie
tu
tu
Please follow and like us: