David Stone and Adam Dierkens - Intuit Player
Durée: 71m21s
Date de sortie: 21/05/2021
In this episode of devtools.fm we talk to two of the people behind how Intuit products deliver their products to multiple platforms. Explore the interesting world of the Player and all the tools it's spawned.
Tooltips
Andrew
Justin
David
Adam
Qu'est-ce que ça serait comme ? Qu'est-ce que l'un des versions de voix de ce joueur ?
Et c'est le caractère semantique que tu es en train de faire.
Bonjour ! Bienvenue au DevTools FM Podcast.
C'est un podcast sur les tools de développement et les gens qui le font.
Je suis Andrew et je suis mon co-host Justin.
Aujourd'hui c'est une interview spéciale et un blast de la vie pour moi.
Nous allons parler avec deux gens qui ont été instrumentaux
et sur comment le TurboTax délire ses expériences frontières.
Comment vous vous introduisiez-vous ?
Je suis David, j'ai un engineer de software à l'Intuit.
Je travaille sur TurboTax comme Andrew a dit.
Et des mints et notre nouveau portal expert.
Je suis Adam, aussi développeur de TurboTax.
Je travaille sur TurboTax et tout ce qui est en front-end,
des informations de tooling, des UI, tout ça.
Je me souviens de tout ce qui est en front-end.
Qu'est-ce que vous travaillez ?
Qu'est-ce que c'est ?
Oui, donc, pour comprendre ça,
je veux vraiment revenir à la start de TurboTax.
TurboTax est un peu dur parce que c'est un produit très vieux
par rapport à un peu de software.
Quand vous pensez à la facture que TurboTax,
la première version était une application de Microsoft DOS.
C'est un peu fou.
Et la facture que ça fonctionne sur iOS et Android,
il y a encore un code,
maintenant, qui a des lines de copierieurs
qui étaient très populaires en ce moment.
Et c'est comme, copyright 1985, chipsoft.
Et je suis comme, oh, c'est avant que je sois mort.
La chose qui est fou, c'est que
nous avons encore un code qui se dérange à l'âge,
mais TurboTax est toujours évoluant.
Et ce qui est vraiment important,
c'est qu'il y a eu un couple de évolutions
au cours de la période que TurboTax a été en train.
Je pense que la première version
était quand ça a évidemment été au Windows et Mac.
Et ça a été de la façon de la expérience centrale
pour être un style de Windows 95,
où c'est comme, après, après, après, après,
faire vos taxes comme c'est facile
d'installer un jeu de vidéo.
Et puis ils ont pris ça et ils l'ont envoyé
au web.
Et puis ils l'ont envoyé et ils l'ont envoyé au mobile.
Mais, bien sûr, à chaque plateforme,
nous voulons vraiment avoir
une expérience naturelle en classe.
Et donc, pour y dépasser
des milliers de screens de taxe,
logic, et de demander aux utilisateurs
de dire,
vous êtes mariés,
vous êtes fiers de singles,
vous avez été en service dans la militaire l'année dernière,
vous voulez donner à la Fondation présidentielle?
Toutes ces choses ne sont vraiment pas
des problèmes d'engineering.
Nous voulons vraiment les choses
pour être handées par des experts taxés,
parce qu'ils sont lesquels
avec le meilleur connaissance
pour poser ces questions.
Et donc,
ce que nous avons fait
au cours des dernières années
que le taxe de Turbo existait
est de créer cette
plateforme agnostic de représentation
de ces screens,
ces screens d'interviews,
et la plus grande iteration de ça
est ce que nous appelons le joueur.
Et le joueur est
la technologie de la course de la course
que nous avons
qui défendra
tous nos expériences de user
dans le taxe de Turbo.
C'est ce que nous avons travaillé
surtout au cours de l'année et demi,
nous avons fait un vrai investissement
en prendre ce que nous avons construit
plusieurs ans,
comme 5 ou 6 ans,
et réinventer
ce que nous voulons faire
au cours de l'année.
Pas seulement en taxe de Turbo,
mais aussi en appuyant
et en appliant
dans d'autres zones
comme Mint et QuickBooks
que la compagnie aussi a.
Et puis, recently,
c'est été un peu de...
Le cours de la course de la course
a été
vraiment un peu de cool.
Donc,
en ayant
le même contenu
de Web
à l'app iOS
et en faisant
en fait,
légitimement native
et pas juste
un emploi de WebView
et en faisant
un différent
looks et feel
selon la plateforme que vous avez
et qui vous parlez de
et tout ça.
Vous pouvez parler un peu
de ce que les prématives
semblent?
Ce qui est un problème
sur ma vie
que j'ai vu beaucoup
est que
nous avons des données
et nous devons déployer
sur des plateformes différentes.
C'est comme un problème
commun,
des outils comme GraphQL
ont évolué
pour en faire
ceci
en un moyen.
Et bien sûr,
avant ça,
nous avons eu
des interfaces
sortes d'app
pour déployer ceci.
Mais je suis curieux
à savoir
quelle est
la structure
fondamentale
de l'amélioration?
Qu'est-ce que cela consomme?
Est-ce que c'est
un document de date
de quelque sorte
qui décrive
les questions
et
ce qui est le flow
ou ce qui est le genre?
Vous savez,
comme vous pouvez l'imaginer,
il y a un peu de différents
parties de mouvement.
Ce que nous considérons
de l'amélioration
est le
piece de la fin de l'UIP
et
c'est vraiment
cette culmination
de la jason semantique
que nous
décrivons
les questions
que nous voulons demander.
Un bon exemple
est que
si je vous demande
de vous choisir
de l'A, B,
ou C,
des UIY
ça pourrait être
un dropdown,
un peu de radios,
des tiles
que vous choisissez,
ça pourrait être différent
selon
combien de questions
il y a.
Est-ce que c'est la seule
question sur la page
ou
est-ce que c'est un formule?
Est-ce que vous êtes
un pro-usern
contre
quelqu'un
qui est le premier temps
de filer?
Tout le contexte différent
se passe
à la façon
qu'on peut
en faire la page
pour faire
une option de l'un de
ces trois options.
Mais à l'endu
de la journée,
les gens de la taxe,
la taxe de la taxe
ne importa pas
comment vous l'avez
pickée,
c'est juste que
vous faisz un A, B,
ou un C.
Donc, les joueurs
sont le dernier
mot
de cette semantique.
Comment on peut
en faire
vous en choisir
entre ces trois?
Et quelle est la meilleure
façon de
faire les pixels
sur le plate-formule
selon le user
et tout le monde
autour de ça?
A quel point
nous pouvons en faire?
Oui, ça pourrait être
la raison de la purpose
si un expert de taxe
a dit
« Oh, je veux mettre
un bout de UI ici
pour iOS,
mais ensuite
sur le web
j'ai mon
bout de Turbo Taxe.
»
Et pour eux
de savoir ça
serait pointable
et comme Adam
dit,
il y a cette
layer semantique
où c'est
« take an action,
present the user a choice,
ask them for some input,
show them some text,
stuff like that.
La semantique
est vraiment
difficile de ralentir
votre tête,
surtout en première phase.
Je me souviens
d'ailleurs,
j'étais un ingénieur
d'un des équipes
qui travaillait
sur l'un des
des trucs
qui sont
en train de
s'y arriver
à la première version
de l'adaptateur.
Quand un des architectes
en charge
m'a dit
« Hey, on va faire ça.
»
J'ai regardé
et j'étais
« Ok, cool.
»
« Comment je représente
ça ? »
Parce que je devais
prendre une scénare
et faire
toutes les assets
pour faire
la nouvelle scénare.
Et
il était comme
« Eh,
ne pense pas
que
un bout de tiles
est le
intent semantique
de ces tiles.
» Et je me suis dit
que je n'ai
pas envie de
parler de cette discussion.
Je ne veux pas
avoir cette discussion.
En tout cas,
je veux juste
avoir mon travail
et maintenant
que je suis
l'architecte
en charge de
quelque chose de ce genre de choses,
je
j'ai juste vu
mon rôle de
député
pour
comment j'ai
mis
ce architecte.
Et c'est drôle
parce que cette conversation
n'a jamais changé,
c'est vrai.
Même aujourd'hui,
on a toujours
tout le monde
en disant
« Hey,
j'ai le design.
« Comment j'ai
le pixel parfait ? »
en breakant
cette nouvelle expérience
dans
ce qu'est-ce que tu
en fais pour
ou
comment tu en fais
et comment tu
construis
tous les Legos
pour
arriver
à ce point
où
le résultat est
cette expérience.
Mais aussi,
nous pouvons
rendre
une expérience vaste
sur une plateforme
ou
une personne différente.
Je pense que la question
est
je ne sais si c'est
David qui a commencé
ou quelqu'un autre
mais c'est toujours
comme
ce qui
serait
ce qui serait
Google assistant
ou
je ne veux pas dire
le
magique Alexa
parce qu'elle est
allée
pour être
déclarée.
Qu'est-ce que ça serait
comme ?
Qu'est-ce que la version de la voice
de cet joueur serait comme ?
Et c'est
le
target que tu es en train de faire.
Ce n'était pas moi.
Comment tu es ?
Oui, j'ai récemment
dû expliquer
ce que l'aimant est
à beaucoup de gens
et au moment où
je dis
ce qui est de la compétition
comme
leurs yeux
sont
juste
cross
et ils sont
comme
quoi ?
Qu'est-ce qui s'est passé ?
Je veux vraiment
se droguer
plus.
Comment arrive-tu
à ce
ce qui est de la compétition ?
Est-ce qu'il y a un comité ?
Est-ce que
les développeurs
sont en train de se droguer ?
Comment tu le fais ?
Oui.
Oui, à tous les points.
De tous les points,
c'est un comité
dans les jours d'avant.
Tu es sorti
un
écran.
Ce processus
n'a pas changé
beaucoup
aujourd'hui.
Tu as un regard
à quelque chose
que
un PM
ou un design
qui
s'est arrêté
en Figma
ou Sketch
ou
Microsoft
Painting.
On n'a pas
utilisé
Painting
pour faire
tous nos prototypes.
Mais
tu es
un regard
et tu as
un regard
à chaque des éléments
sur la screen.
OK,
sait comment
représenter
certains de ces.
Mais
si on a besoin de
une nouvelle chose,
on doit
prendre un tour
et penser
si la
choice de design
vient de
des tiles.
On a besoin de ces tiles
et elles peuvent être
multi-selectées
ou elles peuvent seulement
être
single-selectées
ou quelque chose comme ça.
Tu dois
prendre un look
à ça
et dire
OK,
dévorez-vous
de la fact
que c'est des tiles.
Adam a dit
qu'il y a un
joueur Alexa.
Sorry, je ne
vais pas
essayer de le tricher
votre aide-senseur.
Mais...
Je dois avoir des headphones
donc c'est OK maintenant.
vous savez,
si je le dis.
Le...
Le moyen de l'arrivée
à la description de la semane
est de l'abstracter
d'une certaine
implementation
de l'un de eux
et de dire
OK,
si on a demandé
l'adresse
de prendre
une des tiles,
c'est une chose.
Et donc,
ce n'est pas différent
que
le dropdown
ou le bouton radio
ou le set de
des textes
que nous avons
dans une manifestation
différente de la choice.
Et nous allons représenter
ce que nous avons
avec un modifié
donc vous mettez un type
sur lequel
vous mettez des autres
metadata
qui vous permet
de distinguer
entre quel type
de choice
vous voulez
l'utiliser
et ensuite
vous le dévouez
à la plateforme,
vous pouvez imaginer
une screen de la sélection de tiles
en étant 4 ou 2 ou 3
de la haine
et vous avez juste un bunch
de gris,
de tiles
en gris
mais ça ne devrait pas
être un facteur
plus petit
avec un téléphone.
C'est pourquoi
vous voulez
la représentation semantique
c'est parce que
cela permet
les implementations
adhérent
à ce que la plateforme
serait à l'expect.
Et donc,
vous allez
laisser l'ingénieur iOS
faire la meilleure chose
pour l'ingénieur iOS
et laisser l'ingénieur Android
faire la meilleure chose
pour l'ingénieur Android
ou laisser
l'ingénieur Alexa
faire la meilleure chose
pour Alexa.
Merci beaucoup pour ceci.
Ça me rappelle
un peu de la manière
de la pratique générale
quand vous êtes
le premier à construire
un système de design
à une company.
Je ne pense pas
que c'est
comme de la laite
semantique
comme de la laite
de la sorte de UI.
C'est vraiment drôle
parce que
nous avons
étendu
les bas
dans un système de design.
Vous avez mentionné ça?
Donc,
je ne sais pas si vous avez vu
l'une des
des tools d'open source
que nous avons
étendu
sur les systèmes de design.
Le joueur
en et de soi
était le premier système de design
à l'intérieur
ou l'un des meilleurs.
Et
à l'aide de tous
ces compagnons
que nous avons fait
pour faire
les bâtissages
et tout le monde.
Nous avons commencé
un système de design.
Nous avons rippé
tous les compagnons
qui ont fait
un système de design
et puis
nous les réadissons
à l'aide de le joueur.
Donc c'est drôle
que...
Oui, c'est
une pratique
et
des compagnons
et des designs
et comment
vous le faites
modulaire
pour le faire.
Part de cette pratique
est souvent
en train de
« ici, on va mettre
un peu de choses
sur la main
»
et puis
parler
pour un très long
temps
d'extensive
sur ce que
ceci est,
ce qu'est le purpose
que ça serve.
Oui.
Et puis
le narrower.
Donc oui,
intéressant
parallel.
Oui, et c'est intéressant
surtout
quand nous
passons
l'un des meilleurs
des plus grands
que nous faisons
maintenant
est
qu'on a
ces compagnons
de design
que nous avons
eu
des paquettes
de tokens de design
qui ont
déc Hindi
tai
elle
block
aussi
se
tourne
et
cic
pa
édem
par
Pu
83
Palors
et on va avec ça, mais tu n'as pas le droit de l'enlever.
Tu n'as pas de la vente avec ce
clé de la base de ton token de design
où les noms sont tous
tout à l'heure, et tu as juste comme
oh, on va avoir un taxe de Turbo
et tu es comme ok, mais
qu'est-ce que le produit ne teela pas encore?
Et c'est comme, mais c'est toujours été
mais il n'y a pas de
il y a pas de la name
a-t-il y a eu des exemples de où ce n'est pas
pas correct? Je sais, en étant sur le team de joueur
que nous avons réveillé pour
l'excellence semantique dans le JSON
mais a-t-il toujours été le cas de l'intérêt?
a-t-il y eu des exemples de où ce n'est pas
la façon dont ça n'est pas passé?
C'est une des choses qui
pour moi aussi, vient de les systèmes de design
où nous parlons de
les overrides ou quelque chose comme ça
l'inherentation, le JSON semantique
nous voulons être patternisés et
très structureux et tout
mais aucun test A B
est inherentement un pattern anti-pattern
même dans le monde UI
si nous changeons la couleur de l'or bleu
comme ça ne fit pas
le reste de l'univers que nous sommes
vous avez toujours besoin d'une sorte
d'oblité de relaxer les règles un peu
ou de faire des règles
quand elles ne sont pas toujours en la bonne façon
donc je pense que c'est notre
plus grand problème
c'est comme
comment nous dealons avec
tests A B tests
et comment nous circulons
et en fait, nous fermons le loop
sur un peu de ces expériences
quand
ils peuvent commencer à faire
un make-up
custom assiette
et un custom JSON structure
pour mon
1use case
et nous savons que ce n'est pas
sustainable
mais
peut-être
si ça vint
nous pouvons aller
et revisiter
les deux autres assiettes
à l'extérieur
et comment nous restrechons les choses
pour faire cela
donc ça fit le reste de la famille
maintenant
je pense que c'est un problème
s'il y a
surtout
dans les systèmes de design
aussi
où
je sais qu'on a beaucoup de personnes
discussions
sur le style de l'univers
mais
quand on parle
d'un test A B
c'est
encore un
système
si on essaye de faire
quelque chose de nouveau
c'est vraiment difficile
quand
tu es
1er
en
en
en
parce que
tu n'as rien
c'est un problème de papier
dans lequel
tu dois
1er
en
en
en
en
en
en
en
en
en
en
en
en
en
en
en
en
Symante structure, vraiment fit, mais pour quelque chose où c'est comme un petit product,
essayant de trouver un marché product, ou tu peux imaginer un product où il y a un
bunch de secteurs de bespoke, où l'un n'est pas comme l'autre et ils
ressemblent totalement à l'autre, puis tu peux vraiment avoir un temps difficile
de se faire à ce que ce symante vocabulaire qui définit ce que votre application
semble.
Ça juste se passe comme la structure symante de ça, vraiment fit la structure
très patternisée que le taxe turbo tue.
Je pense que même dans ce cas, il y a des secteurs, il y a des expériences
que tu veux être bespoke.
Tu as besoin de la main-craft, que ce soit pour la performance ou parce que c'est
un point de touch super high.
Donc les patterns peuvent vous prendre 90 % de la façon et parfois tu dois juste
dire que c'est un snowflake spécial et nous devons adresser à ça.
C'est toujours le challenge avec les systèmes que nous construisons.
C'est les constraints qui nous donnent la puissance pour bouger plus vite, pour
simplifier les réimplimations, mais aussi si tu es contre les constraints, ça
impose beaucoup de restrictions, en tant que design et en tant que conséquence
de l'application de l'application, c'est toujours un trait de
traitement.
C'est quelque chose que j'aime bien de stresser quand je parle de les systèmes
des gens pensent que le système de design vous rend plus créatif.
C'est vraiment un peu de la créativité de l'application et un peu de
différentes manières.
Oui, ça change le problème de ce que le bout de bout
est pour comment je dois mettre cette page.
Et les questions sont toutes questionnées, mais quand tu as
un point où tu as adopté le système de design, tu as accepté le
loss de créativité des légos individuels et maintenant tu es
essayant de construire un casseau ou quelque chose de ce que tu fais.
Oui, c'est plus comme construire un mosaic, supposent un casseau
individuel.
Je pense que c'est plus un topic philosophique, je pense,
mais il y a beaucoup de créativité qui arrive quand tu appris
constraints.
C'est intéressant.
Donc je travaille en arts.
C'est maintenant et je viens de, c'est partie de mon travail du
jour, juste de tester les arts et voir les constraints intéressantes
que les artistes ont mis en place parfois.
Et parfois c'est juste comme, hey, je vais juste utiliser une couleur.
Et c'est fascinant de ce que les gens peuvent faire et
l'inviter et construire avec ça.
Mais c'est un genre de chose similaire que nous avons
dans ce monde, mais l'opposite,
ne pas avoir des constraints, peut aussi limiter
ta créativité et un manière vraiment intéressant,
parce que ça devient difficile de avoir cette expérience
consistante.
Et je suis sûr que, comme vous l'avez vu, c'est très, très
difficile de distribuer cette expérience à beaucoup,
en ce cas, des devises, parce que vous avez
à compte pour beaucoup de choses différentes.
Je pense que c'est génial de les systèmes de design ou de
l'adresseur, c'est que si vous voulez aller jouer dans le
espace où c'est comme, qu'est-ce que le bouton pourrait
se faire?
Vous pouvez, parce qu'il y a un espace pour ça, qui est
comme, aller l'interpréter sur le système de design,
aller changer les tokens de design, aller
faire des codes qui sont le bouton en itself.
Et puis, si vous ne voulez pas faire ça, vous ne
n'avez pas de pensée à ça.
Vous pouvez être un développeur ou un designer de
feature et travailler sur, ou évoquer les intricacies
de la Lego.
Ou vous pouvez payer le prochain jour, être comme,
vous savez, je n'ai vraiment pas envie de travailler sur
ce feature, je veux travailler sur les boutons ou les
tels et changer ça.
Et donc, vous pouvez appeler différents constraints
selon le rôle que vous jouez sur un jour.
Il y a quelque chose que j'ai particulièrement
intéressé dans ici.
Il y a cette notion de avoir ce document sematique
qui est vraiment décrire, soit votre vue ou
votre contenu.
Encore une fois, j'ai référé la idée de GraphQL
en étant une surface de l'API où les gens
vraiment tentent d'embodier.
Ils tentent de penser sur le building de leur API,
où ça représente le, pas le logic de la business,
mais le structure d'actualité que vous essayez
de montrer.
Et puis, vous buildez votre UI sur plusieurs
des services, des zones surfaces.
Il y a un outil qui n'est pas maintenu,
mais il y a un outil que j'ai trouvé
longtemps ago, qui s'appelle JSONET.
Et c'est une idée vraiment intéressante et
drôle, où il y a un bloc de JSON
qui est poweré par une app native.
Et je ne sais pas ce que vous avez
en question, mais ça semble que vous avez
un JSON sematique et que vous êtes
en train de servir les clients.
Donc, j'aimerais savoir un peu plus
sur ce que ça ressemble à ce que vous
trouvez sur la plateforme de la cross-platforme.
Et puis, vous avez un peu de compatibility
sur les clients native.
Le nombre d'ingénieurs qui ont commencé
depuis que j'ai travaillé dans le site
et qui m'ont envoyé un lien à JSONET.
Si j'avais un dollar pour chaque client,
je pourrais être en retard.
C'est vraiment proche.
Ça ressemble à ceci.
Je pense qu'il y a un peu de différences
sur la structure, mais c'est...
Le payload pour la description de la page
ressemble à ceci,
à moins que ce soit le cas
quand ça se passe à l'interprète.
Ça peut être un des des des des des des
des choses avant que Adam
soit en train de jouer avec
un JSX comme DSL l'autre jour.
Mais c'est...
C'est tout de même comme ça.
C'est un payload JSON
qui commence avec vue
et vous avez sorti de la description.
Et c'est vrai
si vous êtes sur le web
ou sur iOS et Android.
Oui, c'est certain.
Je pense que c'est un transition
pour les ingénieurs
et surtout,
je vous jure que vous réaccident au jour.
La poste start.
et pas de plateforme.
Le résultat de votre fin est ce payload qui est ensuite élevé à une app
qui peut changer le rendu sur vous sans déployer un autre piece de contenu.
C'est un problème intéressant,
surtout quand on peut mettre un update à l'adresseur
qui change le UI drastiquement pour les plateformes.
C'est cool parce que c'est un espace pour le faire,
mais c'est aussi un peu scaché quand vous êtes la 1team
en charge de 10 000 pages
et vous devez faire sure que vous ne vous arrêtez pas.
C'est un peu comme quelqu'un.
On a plus de questions, Andrew, et je vais passer le temps à vous.
Mais je dois avoir un côté opposé de la question.
Donc, l'authorsation JSON,
évidemment, n'est pas la plus...
C'est incroyable. Je ne sais pas ce que vous avez dit.
Qu'est-ce que vous parlez de JSON ?
Vous avez sorti de mention que vous avez ces professionnels
qui sont construits sur ces structures de data
qui probablement, finalement, sont traduées dans les screens.
Qu'est-ce que l'expérience d'authorsation ?
Comment vous le défendez ?
Il y a eu un couple d'attempts
pendant plusieurs années depuis que cette chose a été construite.
Nous avons des tools de la fonction des end-user,
où vous pouvez...
C'est plus d'une studio visuelle,
ou même une expérience de Figma,
où vous vous mettez tout en et vous vous dédourez.
Parce que c'est finalement un payload de data.
Vous pouvez même prendre quelque chose
et juste générer ça.
Vous pouvez avoir un editor de WizzyWig
qui, pour la raison de sa existence,
est juste pour mettre un JSON payload.
Même si vous avez ça,
vous devez toujours toucher ça.
Un développeur peut le faire et toucher ça.
Parce que même avec un editor visuel,
il y aura quelque chose qui n'est pas correct,
ou vous devez l'étergir et l'étergir
pour faire des bindings et quelque chose comme ça.
Et ajouter des valeurs.
Et ce n'est pas une grande expérience.
J'ai l'impression que,
surtout en plus, nous avons beaucoup focussed
sur les capacités de construire pour ce truc,
et juste de se faire dire ça.
Et nous n'avons pas focussed
beaucoup sur la utilisabilité,
le développement ergonomique de ça.
C'est en fait où beaucoup de notre focus
a été au bout de l'année ou plus,
en disant, ok,
nous savons, je sais de l'expérience,
j'ai écrit beaucoup de ce JSON,
nous savons que ce n'est pas fun de faire.
Comme architecte de la compagnie,
je ne veux pas que mes ingénieurs
qui travaillent ce jour et la nuit
soient malade, parce que un ingénieur malade
va me dire la même chose que moi,
que je lui ai dit à l'architecte.
Je veux le faire mieux,
parce que j'ai hâte de le faire,
et je ne veux pas d'autres gens qui aiment le faire.
Donc, nous avons travaillé beaucoup sur les tools
pour faire ce truc,
comme les tools de développement de focus
pour faire ce truc mieux, parce que, finalement,
même si vous avez un tool de fin de l'an,
qui génère un JSON,
quelqu'un doit le faire et le toucher.
Et ça, quelqu'un va être vraiment
déçus de tout le temps,
si nous ne le faisons pas mieux
que juste de la couture,
d'insides, d'insides, d'un array,
d'insides de JSON,
ce qui est comme un délicieux et malade,
comme ça le ressemble.
Oui, c'est un espace que j'ai,
comme, j'ai été spécialement
commencé à dédicier un whole lot of time, too.
Il y a en fait un peu d'un
cool, un peu de projets scènes qui ont
dépassé, un que David a mentionné,
que nous avons parlé de la rédaction
de notre propre JSX transpiler,
et de créer
tous les compagnons sur un page
comme ce que vous avez été
l'authentif, comme un réacte.
D'ailleurs, vous savez,
le service de rendition de ça
pour HTML,
nous sommes le service de rendition
de ça pour le JSON payload,
pour le joueur.
Je pense que ça va être
votre expérience d'authentification,
parce que nous savons que beaucoup de gens
sont super confortables avec ça,
surtout à la compagnie,
comme tous les frontiers de réaction.
Ça nous donne une pièce de build
pour générer le JSON
dans un moyen que nous pouvons
actually validate et être correct.
Je pense que l'une des parts vraiment
difficiles est
parce que le,
le actual JSON,
en itself, est tellement flexible,
c'est ridiculously difficile à valider.
Quand nous parlons de,
comme, you know, TurboTax
a ce set of components that it uses
and its own kind of language
to describe the UI.
Mint has its own set,
QuickBooks has its own set,
like every application defines
their own semantics.
So,
me as the library author,
like I can't make the assumption to say like,
oh, you're running within this app,
so here's what you have access to.
I need the tools to be able to accept
kind of this dynamic language configuration
and then all of the validations for,
you know, whether the payload or the JSX,
everything needs to kind of learn from that.
So,
one of the things that we struggled with early on
and what we found was, you know, documentation
gets out of date really quickly.
We know that we can write a react component
to render the tile or the button,
but like that payload needs to match up with
what users are writing in content.
For as many times as you can document
the props of a thing, like it's always wrong.
The only right implementation is the runtime one.
I've spent a whole lot of time actually
writing tooling on top of the TypeScript compiler
that generates all of these validations
at build time,
one of which will actually scrape all the interfaces
for everything,
bundle it,
ship it to a language server that I wrote
that can then validate the JSON dynamically
using the TypeScript compiler.
So, it's this kind of like full cycle of
we want one source of truth,
but then we want all of the tools in the right place
to be able to accept, you know,
and dynamically change themselves
based on what they need to do.
So, like,
just to dumb it down a little bit for users,
what's the end user experience for a person in VS Code?
You get cool autocomplete in your JSON,
which is actually powered by like the types,
as opposed to struggling with, you know,
we've all had the experience where you are in basically,
you're in a language
and then you have to drop into something smaller.
Think about like the early days of GraphQL
where like the template strings
wouldn't have their own special formatting and stuff like that.
So, you'd get
just basically notepad.exe
for that section of your code and you're,
you've got real nice surroundings
and then you're back in just,
I am editing nothing.
I'm editing a plain text document now
and so, we avoid that by doing all the stuff
that Adam was talking about
and so you actually get like full autocomplete
for all the stuff that you expect
and so we guide the user through things,
even though it's still is just JSON,
it's like JSON on steroids.
And then that also like helps with, you know,
a bunch of like linting.
So, it's not just the language server
which enables editing.
There's also linting tools
or code mod tools that you could envision
coming out of this.
And if you have that built-in AST
and you know all the types,
then you can sort of expand from that one validation
into a whole ton of other stuff
that allows you to sort of modify the structure
of that code.
Because it is code, right?
I mean like, we're talking about JSON.
It's data and code,
which allows you to do a bunch of cool things.
Yeah, if you look at expressions, it's code.
Adam can tell you he made it a syntax highlight.
I did. I wrote a few parsers for that.
So, tell me about this expression thing.
I mean, you know, anytime there's data manipulation involved,
you want to change data.
You want to move things around
and rearrange and do everything.
Because we're cross-platform,
because then it's actually the same core type script library
that runs on every platform.
We need an expression language
to be able to kind of do all of that,
but do it in a built safe way.
So, we don't just call it Val and JavaScript or anything,
but do it in a way that we can, you know,
execute it on native as well.
So, we have essentially a subset of JavaScript.
It's like 99% the same syntax
and a whole lexer parser in order to interpret that
and execute it and evaluate it into our data model
and all that stuff.
So, in some cases, it is legitimately writing like, you know,
code within a string that gets shipped over,
but trying to execute and evaluate all that as safely as we can.
I want to give a shout out to the DevTools
that you guys built for it.
From another engineer that used to be on the team, Tyler,
we actually used that library to build our website.
So, that's one of the cool things about having a design system.
So, going back to that constraints breed creativity,
a lot of creativity came out of that.
It was really fun to graft the idea of DevTools
into just like a website for geeks about our podcast.
That was a really fun project.
Tyler and I, also ex-intuit employee,
literally had, you know, storybook up and running
and we used the design system CLI,
another, you know, Intuit open source thing.
And it's funny because, you know,
you're trying to replicate the DevTools UI.
So, you have Chrome or Firefox DevTools open
and then storybook right next to that,
trying to copy and paste like styles over and get themes right.
It's a fun project.
Yeah, and the really interesting thing about those DevTools
is not only are they like faithful implementations of browser DevTools,
but they're also super accessible
and they have all the same testing that we have
for normal design system components.
I don't know what a normal design system is
or what makes DevTools different.
It's just a design system for developer tools,
but it meets all the same implementation.
And it also served as like a great how-to for using DSCLI
because like we open source the design system CLI stuff,
but obviously we didn't open source our entire design system.
So, it was sort of like,
here's a bunch of stuff that you could use
to create a design system.
Imagine how.
And there's no like reference implementation.
So, DevTools sort of serves as the reference implementation for,
hey, this is how you would actually go use the other tools
that we have to go make a design.
This is more than just the hello world.
This is actually legitimate.
Like, we use this too.
Maybe we can pause for a second
and explain the two things that we've talked about here.
So, there's this DevTools design system,
which Adam, tu as mentionné,
c'est actually like a faithful representation
or re-implementation of what you would see in Firefox
or Chrome and the developer tools panel
if you're editing a site, which is super cool.
And then design system CLI,
when you all want to explain more like what that does
and what its responsibilities are.
Yeah, so, I'll start with the DevTools design system.
So, working on player,
we needed a way to kind of similar to React DevTools
or Redux or any of the other like Chrome extensions
that you would use to introspect what's happening.
We also have one for player.
So, if you're in TurboTax or you don't want to intend environment,
you can load up this Chrome extension
and actually kind of see what's happening,
the inner workings of data and debug things.
And in doing that, we needed a bunch of React components
to paint the page
and didn't really find anything out there
that existed.
So, we made a design system
and tried to make it as close to the normal browser components.
So, there's a nav bar, there's any of the object inspector stuff
which Tyler did an awesome job with
and learned a whole bunch about JavaScript types
that I had no idea existed.
So, we wanted, like David was saying,
it's an accessible DevTools design system
and we use it internally to make both Chrome extensions
and a bunch of other things.
And that is built off of Design System CLI
which is this whole suite of tools
for building out a design system.
So, as we were building out some of the stuff within Intuit,
we took what we knew to be best practices.
So, for building, shipping both the common JS and E-Assembly,
making everything tree-shakeable,
making sure that we have testing.
Also, rode a test runner to run against using WebDriver I.O.
and a bunch of other things.
Kind of this whole suite of things to be able to quickly scaffold, test,
deploy an entire design system.
And that's called Design System CLI.
Yeah, my baby, I worked on that quite a bit.
How many design systems are we up to now in Intuit?
When we refer to design systems built with Design System CLI,
I always like to put air quotes around design system
because we fling that term around very loosely.
What Design System CLI really produces
is just a development environment for components.
Whether you actually made a design system,
that's not up to you.
When I left Intuit, I think we were sitting around like 45.
I think we crossed 50.
I don't have enough, but I think,
pretty sure we have for this point.
Yeah, I think we've got over 400 components now,
sitting in something approaching 50 or over 50 different libraries.
It's different teams creating components
to solve their unique customer problem.
They're built on the same, because they're all using this tooling.
They're interchangeable.
You know that the quality of one is going to be relatively similar
to the quality of the other.
And then,
one of the pushes that we're making is to extract
and then re-infuse all of the design tokens
so that if a team in Mint builds something for iOS,
the QuickBooks mobile iOS team could use that same component
and know that it already supports their theme.
Adam mentioned earlier that we fell backwards into creating a design system
from this semantic player representation of things.
We also fell backwards into creating all the tooling that we have
for creating design systems,
because it was like, hey, we've got a bunch of scripts to do.
All of design systems CLI started as scripts
inside the consumer groups design system package.
And then, it was like, oh, we should use some of these things
in the QuickBooks design system or the Mint design system package.
Let's just go ahead and extract these.
And then, Andrew was like,
I'm going to go open source it.
OK, sounds good. Let's go do it.
That's usually the process.
I mean, even Auto, like the other big open source project,
all started as literally a Python script I wrote as an intern.
And that evolved into a slightly more complicated JavaScript file.
And then, I think that's when we started experimenting with TypeScript.
Is that right?
Yeah, and then a wildly more complicated TypeScript file.
Yeah, it was like, hey, what if we try out TypeScript?
And then, eventually one day, it's just like, hey, Andrew,
you want to open source this? OK.
And that's kind of the path that we started going down.
I mean, yeah, design system CLI was a bunch of JavaScript files
in a build script in one of our repos.
Just like, hey, some other team needs this.
What if we kind of package this and
we had a new open source project?
That's definitely one of the things that the player team is good about.
The two people that we have here today are excellent at drawing boxes.
I always make the joke that architects draw boxes,
but David draws good boxes and Adam really taught me like the
the boundaries between modules and how to make like reusable code.
And definitely all stems from the player team.
Go ahead, Justin.
I'd like to ask a little bit about open source.
So.
I previously worked at a big media company and open source was hard.
You know, open source was something that you needed a lot of approval.
There's legal concerns.
It was not necessarily an easy thing to go through.
At the same time, though, we were consuming open source like crazy, right?
Everything is built on open source.
Now I'm at a company who has had open source as a part of its ethos.
And it's different.
We do everything open source by default, but it has its own trade-offs.
So I'm curious into it being a financial company has, I'm sure,
a lot of security concerns and a lot of things that you have to take very
seriously when considering open sourcing something.
So talk a little bit about your culture and how you think about open source
and what your process is around those decisions.
I've been into it for a little over six years now.
And I can say that when we started or when I started there, like the culture
around producing open source software was a little different than it is today.
We obviously would consume a lot of open source software into its primarily
a Java shop on the back end.
So tons of Apache and Spring and, you know, all the great stuff that comes out
of the Java open source community.
Um, and obviously on the front end, we are heavy consumers of React.
And the process of open sourcing stuff was almost undefined
because we just didn't.
One of the earlier things was like there's Karate,
which is one of our test runners.
It's used by a ton of people, but that's like a back end sort of thing.
There's we had open sourced some stuff for iOS, but not a ton
and not a repeatable process for it.
That's really changed over the last couple of years.
A few years ago, we, we got a new CTO.
She came from Docker, where they obviously are open source by default,
kind of like artsy.
And it's become easier over time.
We still have all the legal concerns.
You go through a vetting process for any open source project.
You take your GitHub repository and you start prepping it.
You groom it for what you want to actually ship.
And then you get it ready.
You present it.
You have to get sign offs from your manager, from an architect, from legal.
You got to make sure that it fits with what we want to do.
The image that we want to present externally, because obviously we don't want
to be bad open source citizens and just say like,
here's the thing that we use and then we stop using it.
And now it just dies, but it's still sitting there under github.com.
Slash into it and you're just like, well,
into it sucks at open source because they ship things, but then don't maintain them.
So yeah, we do go through a process.
It's heavier probably than it would be if you were a smaller company that wasn't
dealing with tax data or with small business data.
But I think it's gotten remarkably better since the time that I've been here.
So I think it's still something that we're
growing and learning as we keep going.
The player team being one that has open source, a whole bunch of projects.
It's interesting having, we have a new manager that came on.
I'm talking about how part of our normal
lifecycle is managing open source stuff, managing github issues and requests
that come in and support channels for projects that we wrote that we now have
to be good citizens about and help people out on board too.
So there is some maintenance involved with open source.
It's not just ship the code once and you're done.
And I think that's something that may surprise people when they first
initially come on.
And you know, the investment is
hard to maintain and it's definitely something that you got to carve out of
your quarterly plans or yearly plans and you're saying like, hey, I'm going to
devote X percent.
Well, that's X percent that's coming out of your total overall development budget.
And so it can be hard, especially when you're looking for something where it's
like, oh man, if we could just get one more thing in.
Oh, but there's this juicy, you know, 5 to 10 percent of time that we could cut
over here. And it's like, no, no, no, we've gained more from that 5 to 10
percent of investment than we will ever get from cutting that.
So don't touch it.
That's like one of the best return on investment that you can get.
Because I mean, you think about design system CLI in and of itself.
It's a set of scripts that utilize other things.
I mean, we're sitting on top of an amazing software ecosystem.
We've got Storybook.
We've got Babel.
We've got Webpack.
We've got all these different things that are sitting underneath there that.
I mean, let alone like the actual design system components react, jest.
We've got all these tools that we're using.
We would never be able to build all those ourselves.
And so being able to consume those and then contribute back to that ecosystem.
That pays dividends.
Like I said, I think our CTO, she's one of the things that she did when she got
that job is she's like, look,
this is how we were able to succeed at Docker.
We did a ton of open source.
We worked in public.
We got more contributions.
We contributed back.
It was a thriving ecosystem.
And having that sort of air cover from the CTO level,
let's me as an architect in a business unit say like, hey,
I know that we want to shave some time here and like cut that investment
and go reallocate that time.
Mais si je peux dire à la CTO et dire qu'elle a dit ça,
non, pas de la manager de la dédicat que je peux dire.
Je peux dire non.
Oui, je veux dire.
C'est de voir ce changement.
Et je l'ai fait pour
juste cinq ans maintenant, je pense.
C'est vraiment cool de voir ce changement.
J'ai parlé avec Andrew et moi
à la dédicat avec un des gars de la main histoire.
Et on n'aurait jamais été là
sans que l'autor soit réellement réellement
et contribuer à la histoire.
Et dans cette relation et en construisant ça.
C'est génial, juste pour
voir les infos et changer beaucoup.
C'est vraiment cool de voir ce que
un tool de développement de qualité peut faire.
J'ai spenté des heures de compte
en développant l'autor et je ne l'aurais jamais voulu.
Le type d'adoption, on l'a vu.
Mais l'amount de heures de dédicat
pour la réellement de l'automation est juste un peu staggerni.
Quand vous avez tout fait.
Et pas juste dans les projets JavaScript.
On utilise ça pour
les projets iOS qui sont réellement en coca-pods.
On utilise ça pour les projets Android qui sont réellement en AR.
C'est tout le monde.
Je l'ai utilisé sur un couple de
projets de la back-end que j'ai maintenu.
Juste les libraries Java qui sont
juste en train de mettre les jars dans le Nexus.
C'est un peu amusant.
C'est comme, oh, c'était juste un script Python
ou un projet JavaScript plus compliqué.
Et maintenant, on utilise ça pour les réellements
sur le terrain, même au sein de l'écosystème web.
Bilt-on giants.
J'aime l'amplifier que l'on utilise le même
système de plug-in que l'app.
Oui, et ça, je pense que l'adoption de Tappable
est, je pense, l'un des projets favoris de mon projet.
C'est presque
aucun app plug-able ou semi-complicé que j'ai
construit dans leur libraire.
C'est juste une manière de temps avant de mettre en Tappable.
Je l'aime beaucoup que l'on a créé
une version de Kotlin en utilisant
un peu de temps, une des semaines de hackathon.
Un des ingénieurs Android et j'ai
réévoit Tappable en Kotlin et l'utilisation
d'Aromeda, qui est un framework de plug-in
pour le compiler Kotlin.
Parce que, on a l'impression que
on a l'impression de l'utilisation
de la chose dans l'un des services de la back-end,
mais la service de la back-end est en Java.
Donc, on va juste mettre un Kotlin dans
le code, on va mettre un code en Kotlin,
et on va utiliser un compiler Kotlin en plus.
Et donc, on a l'impression de l'utilisation
de Tappable que l'on a réévoit pour un framework différent.
On va mettre les deux conversations que nous avons
réunis. On avait un sur le joueur et un sur l'open source.
Où est le futur de l'opéra?
Est-ce que c'est en open source?
C'est ce que nous sommes souhaités.
L'argument que je fais
est que nous supportons
de nombreux units de business et de nombreux clients
dans le genre que l'utilisation de l'utilisation de l'utilisation de l'opéra
est assez grande que nous devons être agnostic
pour tout ce qu'on est en train de faire.
Et à ce point, nous sommes en train de faire un project open source.
Donc, pourquoi pas faire un sur l'open source?
Et c'est ce que nous sommes souhaités.
Nous avons parlé de l'une des les dernières milles
que nous avons, c'est l'une des
outils de développement des contenus.
Et c'est l'une des espaces où je veux
venir avec quelque chose.
Mais je sais aussi que la communauté de l'open source
peut faire tout ce que j'ai fait
dans la première semaine.
Donc, je suis super excité
de voir où c'est passé et ce que les cool choses
peuvent arriver à l'étude.
Et tout ce qui peut être construit sur le couloir.
Les gens ont demandé de l'opéra
et nous n'avons pas voulu
l'opéra de l'opéra original.
C'est bien
pas entwicבעible.
Ça se fait aparieter au fuzzy
juste à l'ext Jahres.
Et c'est le sponsoring
qui reprend l'autonomie.
Il y a кусé textes de chansons
puis, les des Mac sharpener la
sur les pays qui sentido.
C'était super, c'est vraiment wha.
C'est incroyable, l'ISA, les chiens육, les circumstance renard slogans.
Est-ce qu'on peut labourer,studiement les Χ Gang, et genre unilizé carene.
C'est un travail de travail que vous avez appris.
Vous avez eu un système de design qui est tout de même un monstre différent.
Je pense que ça va râper le jeu sur la question.
Alors, on va commencer à râper le jeu et parler de nos outils pour la semaine.
Ok, le premier outil que je veux parler de c'est un outil de JavaScript pour tout.
Rome est une rébuildation de la rébuildation de l'écosystème de JavaScript.
Que ça veut dire ?
Ça veut dire que tout le toulon que vous utilisez pour JavaScript,
un format, un compiler, un linter, un testrunner, c'est tout pour être construit dans Rome.
Pourquoi ?
Parce que tous ces outils sont construits sur des outils séparats qui représentent un code AST.
Vous avez un peu de disparats ASTs qui ne peuvent pas faire beaucoup de optimisation
ou faire les outils de la rébuildation.
Donc, Rome est une réimplementation de la rébuildation de l'AST où il y a juste un AST
et des choses vraiment cool qui sont en train de se faire.
Vous pouvez avoir des messages super détails.
C'est une expérience plus rapide que l'autre.
Parce que c'est un AST pour tout.
Et je suis assez excité de voir où ça va.
Maintenant, c'est seulement un linter, mais dans le futur, ils planent
de relier tous les autres outils différents que j'ai listés là-bas.
C'est ce que j'ai excité.
Oui, Rome a un VCR pour voir où ils sont.
Oui, c'est certain.
C'est un peu unique, ou je ne pense pas unique.
Ces jours, plus et plus des outils développe sont en train de faire des fonds.
Ceci est très difficile de s'assurer d'une réimplements.
Et c'est une route qu'ils tentent de faire.
Même si Rome va s'assurer d'un produit,
tout le code qu'ils ont réalisé est en train d'appliquer.
Ils ont beaucoup d'adaptateurs qui ont aidé à développer ça.
Ils vont juste vendre des services sur le top.
Je suis très intéressé de voir où ça va.
Oui, c'est génial.
Donc, mon premier outil est ce outil appelé Betterer.
Il est créé par Spotify Expense.
Il a été très difficile de prononcer.
Frenon, non, je ne vais pas essayer.
Je ne vais pas essayer.
Ce qui est un truc dans mon cerveau que j'aime faire.
C'est un outil pour aider à guider les changements de code incriménieux
ou les migrations sur un base large.
Il fait ça dans un moyen novel.
Donc, si vous avez vu un snapshot de geste,
c'est comme ce petit module common JS
et il y a des textes qui se sont faits sur un string de template.
Betterer fait un truc similaire.
Il fait un test sur votre base de code et il collecte des résultats.
Et il les stores dans un snapshot.
Et en temps, il va programmément appeler
un pattern de stranglard dans cette migration.
Donc, si vous le faites mieux,
si vous le remet, vous commettez plus à votre mutation.
Il va remettre plus de choses dans ce file snapshot.
Et puis, dans CI, si des nouvelles choses sont ajoutées,
ça va falloir.
Donc, c'est ce moyen pour aider à migrer incriméniement
un code base.
Donc, il a construit des plugins vraiment intéressants pour ça.
Il y a un plugin TypeScript
que vous pouvez très facilement
faire sur le flag stricte
et avoir un test meilleur qui vous aide
à faire des migrations stricte,
ce qui est vraiment intéressant et très puissant.
Il y a un caveat de vous en faire un autre processus de build type.
Donc, si vous êtes plus lent,
ce n'est pas going to help you be faster.
Je dois avoir un PR
qui a ma dernière ronde à Artsy.
Je vais aider à faire une grande migration de type,
pour faire un type checking stricte et à utiliser le meilleur.
Donc, je vais le linker dans les notes.
Mais c'est un tool vraiment intéressant.
Si vous avez une migration,
vous voulez incriméniement un code lint
ou appuyer un X à REG
pour faire sure que une certaine pattern
soit remise de votre code base.
Vous voulez faire ça programmatiquement?
C'est un cool tool.
C'est vraiment...
Le nombre de fois que j'ai besoin de ça
et le nombre de fois que j'ai fait
une version crappier de ça, c'est assez grave.
Un grand truc sur...
Nous avons parlé avec le joueur.
Nous avons fait un grand push pour les tests d'accessibilité.
Donc, on a fait des tests sur tous nos repos et tout.
Et juste comme en tournant sur un nouveau ronde,
vous avez regardé les milliers de milliers de erreurs
et vous voulez bloquer la première personne.
Nous avons fait exactement ça.
Nous avons juste eu une ronde qui a dit
que vous ne pouvez pas le faire mal.
Et chaque file que vous avez touché,
vous ne pouvez pas introduire quelque chose de nouveau.
Mais oui, c'est vraiment cool.
Oui, Craig a fait beaucoup de travail sur ça.
Et il y a des choses que j'ai fait
que j'ai avocatées sur, que j'aime vraiment.
Vous pouvez mettre un date de milestone pour une migration.
Et ça va vous donner un moment
que vous savez que vous êtes aussi loin
de la zone de milliers,
ou que vous pouvez vous dire ça.
Vous pouvez le faire en mode de watch.
Donc, si vous voulez aller en train de faire des choses,
comme si vous faisiez un Bulk Bash, vous pouvez le faire.
C'est un bon tool.
C'est vraiment cool.
C'est certain.
Il peut être apprové.
Craig a fait beaucoup de travail sur ça.
Et il y a beaucoup d'issues qui ont été récemment élevées
pour des bonnes zones de speed-ups.
Et des choses comme ça.
Donc, si vous êtes intéressés
et si vous voulez en particulier contribuer,
vous pouvez le faire.
C'est un bon tool.
Mon premier pick est concepts.app.
C'est une app sur l'iPad.
Comme Andrew m'a dit,
j'ai pris beaucoup de temps de me faire des écrans.
La note à la note à la note est très conveniente
et bienvenue pour prendre notes.
Mais c'est très ligné.
Et donc, parfois, si je suis juste sorti
en pensant sur des idées
ou des choses que j'ai trouvé
si je faisais des écrans pixel,
je devais prendre beaucoup de temps
et dire que j'ai perdu la vie
et que je dois aller vers la race.
Parce que comme concepts sont vector base,
je peux juste le faire.
Ou réformer, le faire de l'autre façon.
Et donc, j'ai été vraiment envers les concepts.
J'aime beaucoup.
Je pense que c'est un bon moyen
de se sketcher un app
de ce que vous voulez changer
en temps ou même changer
en faisant ça.
Parce que, en fait,
je ne sais pas si d'autres gens
qui font des écrans,
mais mon premier tentateur
n'est presque pas correct.
mais personne ne me dit que mon boss
ne me dit pas que mon premier tentateur
n'est pas correct.
Je veux qu'il soit venu
de croire que c'est toujours
le premier temps.
Vous l'avez entendu, les gens.
David ne fait que des écrans parfaits.
Les écrans parfaits.
Je vous ai dit que si vous avez oublié
de l'app METAMUSE,
j'ai vraiment intérêt
dans les outils pour l'espace d'envoi.
METAMUSE
n'est pas la plus chère app,
je dirais.
Mais c'est vraiment intéressant
parce que ça fait
ce notion de l'app spatiale
et vous pouvez avoir ces espaces
où vous pouvez sortir
de la collection.
Et vous pouvez avoir,
comme ce qui semble ici,
une combinaison de
drawings et images
et des dénotations et tout.
Mais vous pouvez les organiser
différemment.
C'est vraiment
intéressant et un tool
très compétent.
Les gens derrière,
ils ont fait
cette recherche de user,
des lab design
qui s'appelle
Oh, oh, je ne sais pas,
je ne sais pas,
Inkin Sketch
ou quelque chose comme ça.
En tout cas,
et ils ont un très bon podcast
aussi où ils parlent
de ce type de notion
des outils pour pensée.
Donc si
si ça est un truc
intéressant.
Oui, je vais le voir.
J'ai spenté un bon peu de temps
avant cette année
pensant sur les notes
et vous voyez,
regardant Zettelkasten
et Rome Research
et tout ce qui est différent.
Je suis dans ce râbite
et je
me suis évoqué
par la décision
et je me suis dit
je pense que je suis OK
en utilisant un bear.
Je pense que c'est tout
que je peux prendre.
Je veux les Windows app.
Je dois le synchroniser
pour le bear.
C'est ce que je m'en suis rassuré.
Oui,
mais ça a
ce...
Je vais voir
si je peux
je peux tirer
la carte de crédit corporelle
pour cette partie.
Si ça n'est pas
pas si chiant.
Cool, bon tip.
Je me suis évoqué
un projet
que j'ai étendu
sur GitHub
dans un récent hackathon
où
je voulais visualiser
cette machine de state
et cet écran de state
et ça a été
un peu
détenu
et j'ai trouvé reflow.
Je l'ai étendu
après
commencer avec Reactflow
qui est un autre système de design
dans cet espace.
C'est un système de design de réaction
qui vous permet
de vous étendu
des graphes
et ça fait un bon travail
d'aider
avec la lait
et
d'être capable de l'améliorer.
Donc oui,
ce sont les deux que j'ai utilisé
l'autre jour.
C'est été incroyable, j'adore.
Qu'est-ce que vous utilisez
pour visualiser
quelque chose de bizarre?
Dans le joueur,
nous avons cet concept de navigation
donc vous pouvez avoir
plus que un vue
dans un
seul
contenu de contenu.
Et les plus compliquants
ont
10 ou 20 différents
notes de réaction
que vous pouvez avoir
dans cette décision
de la façon dont vous vous en avez
de l'un à l'autre.
Et l'un des choses
que j'ai construite
durant cette hackathon
était comme partie de cette extension
en visualisant
la machine de state
et
comme les autres
graphes de state
vous marcher
par votre graphe de state
en passant par cela.
Donc,
comme vous allez par les taxes
de la taxe de turbo,
vous marcher par les stages
et par les branches que vous avez
et
par lesquelles vous êtes couvert
ou lesquelles vous ne vous êtes pas couvert
et c'est le basis
de certaines autres
codes de coverage
et des tests.
Ça
a certainement un peu de
de l'aspect et de visualisation.
Oui,
le test est ce qui m'a
fait de la suite
parce que
nous avons
ces sub-graphes
dans les graphes
et ce n'est pas super common.
Ceci,
je pense, a fait le meilleur
travail de visualiser
cela et de faire
cela vraiment facile.
Donc,
je vais parler de la tool de test.
C'est
un petit peu
comme les tools de test
que j'ai rencontrés.
Donc,
ce que l'AI de Walrus
fait
est assez intéressant.
Vous vous dites
juste comme
ces instructions
pour un AI
et le AI
fait les instructions
et testa
votre page web.
Je n'ai pas de clou
sur comment cela fonctionne.
C'est de l'humour.
Les tests,
c'est que
vous dites
que
vous venez
enregistrer
avec un téléphone
et un password
et vérifier le code.
On fait des trucs
et cela ne le fait pas.
Et puis,
ils
prennent ça
et construire
un modèle AI
de cela
de tout à l'heure
et vous avez maintenant
des tests
avec des mots
et puis
le cool chose
de faire
votre test
en enregistrant en anglais
est
que vous n'avez pas vraiment
d'être
un développeur
pour enregistrer en anglais.
Donc,
vous pouvez
potentiellement
avoir
des gens QA
ou des QEs
qui ne connaissent pas
la langue primaire
que vous pouvez
enregistrer
juste en enregistrant
ce que le cas de YAML
est.
Et
pour la plupart,
YAML est assez simple.
Cela me rappelle
beaucoup de tests
de QCumber
mais
sans
avoir
à l'aide
d'un code
de la crée
de vos tests QCumber.
C'était toujours
mon problème avec QCumber
c'est que
à quel point
je serais
d'être
d'accord,
je vais avoir
des gens
qui ne sont pas
développeurs
en enregistrant
des tests QCumber
et ils
pourront
enregistrer un mot
et je serais
d'être
d'accord,
je dois
faire
le mot
des
mots
que ils
ont juste
écrit.
Vous pouvez
constranger
votre vocabulaire
que vous utilisez
un peu plus
et ils sont
comme
ce qui est trop difficile
et je suis comme
OK,
n'importe quoi.
Ce qui prouve
que je ne suis pas
même
comme
bien,
je ne suis pas
même
comme un AI
à ce point.
comme
tu sais,
j'ai mon
start
en source
en maintenant
une bâtisse
de salinium
pour un framework test
appelé
le framework robot.
C'est un
mot
de test
que vous
vous vous
vous
vous
vous
vous
vous
vous
vous
c'est vraiment
intéressant
de voir
une bâtisse
en source
en source.
Je me suis fait
un peu
pour un an
et
j'ai fait ça.
Ce space est difficile
parce que
les choses que ils vous disent
oh oui,
c'est un framework test
que vous vous vous
vous arrêtez
votre comportement
de choses
et c'est bien
c'est comme
n'est pas vrai.
La chose qui me craint
c'est que
ce qui se passe
est que
l'AI
ne sait pas
ce qu'il faut faire.
Comment je le dis?
Hey,
en fait,
c'est le truc
que j'ai cru pour vous.
C'est comme
Hey,
l'AI ne sait pas
comment rapporter des bugs
donc il y aura plus de bugs.
Ouais.
Ouais.
Bon.
Peut-être que c'est un
un
feature.
All right.
Donc,
nous sommes en train
de parler
des outils pour la pensée.
Donc,
j'ai utilisé le city
pour
comme tout le monde
comme la note-taking
qui est
fun.
Mais une des choses
que j'ai vraiment
regardé
récemment
est
comme
pendant que je le réveille
je veux être
très actif
donc je vais être
en train de le tenir
de ceux
parce que si vous ne vous réveillez
activement,
c'est difficile
de vous réveiller.
C'est beaucoup.
Et j'ai sorti de mon
outil pour un outil
pour un moment
et cette
semble vraiment
intéressante.
Donc,
donc ce toulon
polarisé
est essentiellement
vous
vous emploie
une ebook,
une page web,
un document PDF.
Et vous pouvez
faire un
highlight en ligne
et puis
ajouter des notes
pour ça
et sortir
ces choses en temps
et vous managez
votre
librais
par ce que
c'est un
vraiment
intéressant
mécanisme
pour
sortir
de la
reading
ou la
reading
ou
ce que vous voulez
le dire.
Fortunement,
leur
base web
est
tout
chronique
donc ils ont
une extension
donc si vous utilisez
chronique
comme votre
drivetrain
c'est vraiment
bien
je ne utilise pas
chronique
tout
donc
oui,
ce n'est pas
bien
mais
vous pouvez
importer
les pubs
et
c'est
ça
est cool
donc
oui.
C'est intéressant
que ils mènent
gpt3
c'est comme
quoi
qu'est-ce que
l'aie
dans
ici
comme
oui
donc
si vous avez
entendu
de
onki
donc onki
est
comme
un
répartition
de l'application
de l'offre
et vous pouvez
créer
ces
cartes
pour vous
vous remercier
certaines choses
bien,
ce software
va
en fait
créer
un
carte
pour vous
à la
des
pièces
des
textes
vous pouvez
écrire
un piece de texte
et vous demandez
un carton
un carton de flash
et
il va utiliser
gpt3
pour
créer
une summerie
de ça
et ça
sera
comme
la question
le carton de flash
et puis
vous pouvez
passer
comme un
tout espace
répartition
des
choses où
on
vous demande
la question
et puis la réponse
est comme
quoi que vous vous
vous
j'ai l'impression
que c'est ce que
j'ai
besoin de la
hôpital
en collège
j'ai
j'ai
juste
tu sais
j'ai pas
as many notes
que j'ai
j'ai
j'ai
mais
c'est quelque chose
que j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
j'ai
oh
j'ai
c'est
Wahl
où je peux faire mes taxes et ça fait que ça fait grand.
Je pense que c'est très haut sur la liste de choses à faire. On peut essayer de faire ça.
C'est juste le bouton qui dit « c'est fait ».
Ouais, c'est vrai.
S'il me plaît, s'il te plaît.
Ah, je pense que je vais en suivi.
Donc, quand je ne fais pas des écrans et je suis en train de faire des codes,
j'ai utilisé beaucoup de différents tools de déf sur les années et j'ai sorti
étendu sur « Diff So Fancy » comme 3 ou 4 ans ou quand ça ne s'est pas fait.
Et je l'ai sorti tout seul. C'est comme une des choses où tu te dis « c'est bien, c'est bon ».
C'est ce que j'ai étendu.
Je travaillais avec un autre ingénieur, l'autre jour, on repart le programme et il a fait un « diff ».
Et j'ai vu un outil et je me suis dit « quoi vous avez-vous utilisé ».
C'est beaucoup mieux que ce que j'ai.
Et il utilise Delta.
Et pas seulement peut Delta faire tout ce que « diff so fancy » fait,
mais il fait beaucoup plus.
Et c'est actuellement réveillé et tout comme ça.
Donc, j'étais comme « je vais juste installer ça ».
Et, bien sûr, switcher « diff » signifie que je dois trouver
tout le spot où j'ai élevé le « get config » ou
changer mon pagé ou tout ça. C'est une délite.
Tout le temps que je fais un « get diff » je suis comme « oh, oui, c'est vrai ».
C'est vraiment beau et j'aime ça.
Parce que j'aime voir les choses magnifiques dans mon terminal.
Donc, je suis un grand fan.
Je n'ai pas vraiment beaucoup d'autres à dire.
Parce que c'est ce que ça fait sur le « tin ».
C'est un « diff » tool. C'est incroyable.
Et ça ressemble bien. J'aime ça.
C'est un « diff » par le côté « diff ».
Et c'est un bon souvenir.
C'est d'occasion que vous évoquez votre chaine de tool.
Vous pouvez utiliser quelque chose et c'est juste
de la façon dont vous avez été.
Et vous ne vous réalisez pas que
autour de ce tool, il y a 1000 autres tools
qui ont étendu et qui ont évolué.
Et vous êtes comme « oh, peut-être je dois
remplacer mon « diff » tool ».
C'est pas quelque chose que vous pensez tous les jours,
mais ça fait un peu de différence.
Cool.
Donc, ceci, plus de projets de hardware,
mais toujours en source,
une des choses que j'utilise beaucoup dans mon workflow
est Macros, un « stream deck » avec des extensions de code VS
et des choses qui font tout.
Et je joue beaucoup de jeux et je fais beaucoup de choses.
Sound mixing est quelque chose qui est difficile
de faire en raison,
surtout quand vous êtes dans le discord,
vous parlez de des gens,
vous jouez aussi un jeu ou vous écoutez un podcast ou quelque chose.
Et c'était un projet que j'ai étendu sur un « open source » sound mixer.
A 3D-print de la case,
c'est un micro Arduino qui se trouve dans le micro.
Vous pouvez faire des choses comme
« mix sound between two apps » ou « just put » ou « change anything ».
« All open source » ou « all community driven ».
Un projet de week-end qui vous peut s'adapter
et jouer avec le hardware.
Vous devez faire une des formes,
parce que je ne trouve pas de choses qui sont très enjoyable.
Mais ça ressemble à quelque chose que je dois avoir.
Je dois le faire.
Je suis commencé dans le espace de hardware.
Je suis allé à l'école et j'étais un major ECU.
J'ai commencé à s'adapter et à faire du hardware,
et puis j'ai étendu dans le espace de programmation.
Donc, une des choses qui,
au sein de la travail, j'aime toujours
jouer avec le hardware et faire des projets.
C'est donc un des choses qui a étendu.
Félot, membre de l'ECE.
Hey, bienvenue.
Oui.
Et maintenant, vous avez tous fait le développement de web.
Oui.
Je prends un peu de temps pour faire des choses.
Oh.
Vous vous arrêtez.
Je vais être un employeur de la fin.
Oui.
Et une des choses que je fais
est construire un keyboard de scratch.
C'est génial.
De la design de la PCB et de la toute chose.
Il y a quelque chose qui est très satisfait
de faire un projet de hardware.
C'est quelque chose que j'ai eu des amis
et je me suis toujours fait faire ça en plein temps.
Je ne pense pas que je puisse voir moi-même
en plein temps et en designing des chips ou des PCBs ou quelque chose.
Mais je me suis fait faire ça en plein temps.
C'est tangible.
Je vais me construire quelque chose et le placer.
Et écrire des codes et avoir un parler de choses.
Et oui.
Je me considère activement
en essayant de faire un développement physique.
J'ai posté ma hiatus de travail.
Je ne veux pas juste designer des PCBs tous les jours.
Mais c'est le mix de hardware et de software
que je trouve fascinant.
Et en faisant des choses comme
travailler avec des CNC et des printers 3D
et de faire des cadets et ça c'est le mix de toutes ces choses
qui fait ça intéressant.
Un des...
Le mec qui a écrit des devs de TOSDS
a fait une internship à MakerBot
en écrit des firmes de hardware.
Et c'est la mix de...
Je vais faire un bunch de codes
et faire un machine et faire quelque chose
dans le monde physique.
Et j'espère que ça ne se brûle parfois.
Mais juste...
Je pense que c'est un sens similaire
d'être capable de voir ce que tu codes.
Et aussi de pouvoir toucher et jouer
avec ce que tu sois.
Et manipuler. C'est cool.
Oui, c'est sûr.
Sur le sujet des keyboards,
je veux partager un tweet que tu as partagé
qui est super cool.
Ce noeud redout sur le keyboard
a bleu ma tête.
Vous allez mettre ça sur votre adresse de keyboard ?
Je veux avoir des radios sur le keyboard.
Je n'ai pas considéré le feature redout
avant que Emilia te poste.
Mais ça ressemble à un peu de compétences.
Qu'est-ce que tu plans de faire avec tes noeuds ?
Qu'est-ce que tu veux que je l'utilise ?
Volumix.
C'est un peu intéressant.
Volumicatrôles, c'est un...
La scrolling est une action naturelle.
Mais ce n'est pas le cas.
C'est un limit.
Contrôler des bases, des changements.
Et des choses comme ça.
C'est un autre opportunité.
Je veux que tu aies une idée de touch.
C'est un master lock.
Tu dois le tourner 3 fois à la gauche.
Et puis 21 fois.
Et puis 1 fois à la droite.
Et 22 fois.
Tu es pas grave.
Mais c'est une idée incroyable.
Oh, s'il te plait.
Je vais juste le faire.
Mon computer est un locker de la high school.
Je pense que ça serait l'ultime VR video.
Il faut que tu le souviendras bien.
Et qu'il te tourne le dial.
Je vais faire un jeu de VR.
La raison pour laquelle je vais faire ça
est de te faire dans ta high school locker.
C'est un refreshment.
C'est sur la flore.
Il y a un bain.
Ouais.
C'est génial.
Bon.
La dernière chose pour le jour.
La dernière tooltip pour le jour.
C'est une pièce qui a été évoquée beaucoup.
Mais il y avait un projet d'open source
dans Google.
Ce n'est pas un projet d'open source officiel.
C'est juste un source d'open source officiel.
C'est appelé ZX.
Et c'est ce
environnement d'exécution.
Il me rappelle beaucoup de shell.js
si tu n'as jamais utilisé ça.
Ça donne des commandes shell
dans JavaScript.
Mais ça vous donne un environnement d'exécution
où vous pouvez faire des statements
très terres.
Vous êtes toujours en JavaScript,
mais vous utilisez
des pièces spéciales
pour faire un processus natif.
Et ça s'arrête ensemble.
Ça vous donne des mécanismes
pour les contrôler.
En fait, l'une des choses
qui m'aiment beaucoup
et je ne sais pas si c'est
juste
une chose incroyable
ou si c'est
la meilleure idée
d'averain.
C'est un JavaScript,
donc ce n'est pas terrible.
Mais si vous scrollez
et vous êtes à la fin de ceci,
il y a un moyen
d'exécuer
votre JavaScript
juste par
passer la commande.
C'est un URL
pour un file
et un file JS.
Et ça va juste
exécuter votre JavaScript.
Donc si vous avez...
Si vous n'avez pas les gbgb
de exécuter
l'arbiturale code
d'un serveur
sur Internet,
qui,
si vous utilisez le JavaScript
tout à l'heure,
oui.
En tout cas, c'est bien.
C'est intéressant.
C'est assez fun.
Oui, ça s'en signifie beaucoup.
Je ne pense pas que c'est plus
que passer
le résultat de curl
ou WGIT
à l'H,
et être comme,
je vais juste installer
un peu de choses.
Oh,
oh,
non,
c'est pas mal.
Sud-o,
Bang Bang,
et c'est juste comme,
oh,
je me déligeais tout.
Oh,
non.
Ouais,
c'est pas ça.
Tout est horrible.
Ouais.
On vit sur un quartier de cartes.
Le software est tout bloqué.
Ok,
ça a été une belle conversation.
On a vécu tout le monde
et l'a appris
le joueur,
tous les outils d'open source
que l'Intua produisent.
Merci pour les gens.
Ouais, merci pour ce que vous avez.
Merci pour ce que vous avez.
Bonne journée.
C'est tout pour cette semaine
de DevTools FM.
Follow-us sur Youtube
ou où vous pouvez consommer votre podcast.
Merci pour l'alimentation.
Episode suivant:
Les infos glanées
devtools.fm:DeveloperTools,OpenSource,SoftwareDevelopment
A podcast about developer tools and the people who make them. Join us as we embark on a journey to explore modern developer tooling and interview the people who make it possible. We love talking to the creators front-end frameworks (React, Solid, Svelte, Vue, Angular, etc), JavaScript and TypeScript runtimes (Node, Deno, Bun), Languages (Unison, Elixor, Rust, Zig), web tech (WASM, Web Containers, WebGPU, WebGL), database providers (Turso, Planetscale, Supabase, EdgeDB), and platforms (SST, AWS, Vercel, Netlify, Fly.io).
Tags