
﻿WEBVTT
Kind: captions
Language: es

00:00:00.000 --> 00:00:08.680
Cuonda, la comunidad de podcast independientes en español.

00:00:08.680 --> 00:00:33.440
Bienvenidos a CAFÉ SWIFT, el podcast donde hablamos del lenguaje de programación SWIFT

00:00:33.440 --> 00:00:39.840
de Apple, solo no.

00:00:39.840 --> 00:00:45.240
Hablamos de programación, de herramientas para desarrolladores y de distintas experiencias,

00:00:45.240 --> 00:00:51.000
pero siempre desde el punto de vista de desarrolladores en entornos Apple y del lenguaje SWIFT.

00:00:51.000 --> 00:00:55.880
Y esos desarrolladores somos Arturo Rivas y Julio César Fernández.

00:00:55.880 --> 00:01:15.280
Comenzamos. Hola, hola, hola.

00:01:15.280 --> 00:01:24.160
Qué tal? Bienvenidos a un nuevo capítulo de CAFÉ SWIFT con una regularidad pues regular.

00:01:24.160 --> 00:01:30.920
Valga la redundancia, efectivamente. Y como siempre, no estoy solo. Está al otro lado

00:01:30.920 --> 00:01:37.160
del micrófono y de la pantalla Julio. Qué tal? Muy buenas. Pues nada, aquí andamos

00:01:37.160 --> 00:01:45.880
a altas horas de la noche, que son los únicos momentos que tenemos de paz y relax mental

00:01:45.880 --> 00:01:52.560
pues para poder sacar adelante estos estos cafés. Pero la verdad que merece la pena

00:01:52.560 --> 00:01:57.680
y quiero aprovechar también porque últimamente recibo un montón de feedbacks positivos de

00:01:57.680 --> 00:02:06.160
gente que escucha el podcast y que nos transmite pues que le gusta, que se ha convertido en

00:02:06.160 --> 00:02:14.880
un podcast pues habitual. Incluso gente que nos cuenta que ayer nos decían, porque ayer

00:02:14.880 --> 00:02:22.400
empezamos la tercera edición del Bootcamp SWIFT Full Stack y nos decía uno de los alumnos

00:02:22.400 --> 00:02:27.680
que le encantaba el podcast, aunque no se enteraba muy bien de todo, pero le gustaba.

00:02:27.680 --> 00:02:31.840
Era como que él quería enterarse. Pero para eso está en el Bootcamp, ¿no, Julio? Precisamente

00:02:31.840 --> 00:02:36.480
está en el Bootcamp para enterarse. Exacto. Es como he dicho, ya cuando acabes el Bootcamp

00:02:36.480 --> 00:02:41.440
te enterarás prácticamente de todo. El 90 por ciento. Esto es un Bootcamp hecho para

00:02:41.440 --> 00:02:51.520
entender este podcast. Exacto. Por eso SWIFT, CAFÉ SWIFT Full Stack Bootcamp. Efectivamente.

00:02:51.520 --> 00:02:58.440
Así que nada, pues aquí hablando un poco de todo lo que tiene que ver con el desarrollo

00:02:58.440 --> 00:03:03.960
en entornos Apple, con todas las novedades. No, aquí no vamos a hablar de los nuevos

00:03:03.960 --> 00:03:09.960
equipos, ¿verdad, Arturo? Aquí nada de hardware, aquí solo software. Nos quitamos el disfraz

00:03:09.960 --> 00:03:18.360
del vestido de hardware y única y exclusivamente de programación. Pues sí. Aunque bueno, algunas

00:03:18.360 --> 00:03:24.760
pinceladitas vamos a dar con respecto a los nuevos equipos que Apple ha presentado y lo

00:03:24.760 --> 00:03:31.720
buenos o no que son para desarrolladores. Eso sí que es algo que entiendo que os interesa.

00:03:31.720 --> 00:03:42.240
Entiendo desarrolladores en SWIFT, obviamente. Así que bueno, pues es una cosa que es interesante

00:03:42.240 --> 00:03:47.440
y nada, si le parece sin más, pues podemos ir a empezar con la primera parte, con lo

00:03:47.440 --> 00:03:55.240
que hemos hecho cada uno en estos últimos días, semanas, desde el último café. Así

00:03:55.240 --> 00:03:57.400
que pues si quieres, vamos a ello.

00:03:57.400 --> 00:04:13.640
Pues sí, si quieres empiezo yo contándote un poco cómo, porque bueno, pues ahora soy

00:04:13.640 --> 00:04:26.640
padre full time. Totalmente. ¿Has hecho un bootcamp full stack? No, me ha faltado eso,

00:04:26.640 --> 00:04:32.340
pero a cambio tengo muchísima suerte. La verdad que se está portando genial y me ha dejado

00:04:32.340 --> 00:04:40.640
tiempo para hacer cosillas que quizás antes no tenía tiempo de revisarlas. Y bueno, siguiendo

00:04:40.640 --> 00:04:44.920
con lo que he contado en otros programas, pues primero estoy estudiando la manera de

00:04:44.920 --> 00:04:50.760
poder trabajar o ampliar la funcionalidad de estas landas que comentábamos en el último

00:04:50.760 --> 00:04:57.840
capítulo de AWS. Tengo problemas de que hago llamadas a otros servicios y que son un poco

00:04:57.840 --> 00:05:05.560
lentas en el arranque y estoy preparando algo de landas, ya te lo he comentado a ti, Julio,

00:05:05.560 --> 00:05:12.720
porque bueno, aprovechando que estoy metiéndome en ese mundillo y que estoy utilizando varias,

00:05:12.720 --> 00:05:16.800
pero bueno, se hacían un poco lentas y en la fase de inicialización, la primera vez

00:05:16.800 --> 00:05:20.720
que la llamada se le arranca en frío, podríamos llamarle, entonces bueno, estoy experimentando

00:05:20.720 --> 00:05:25.880
a ver si soy capaz de trabajar con ficheros, porque al final lo utiliza sobre un runtime

00:05:25.880 --> 00:05:32.040
de Linux, pero es un runtime un pelín especial y me está dando unos problemas y me estoy

00:05:32.040 --> 00:05:38.720
pegando con eso. Luego, como siempre lo sacamos aquí, siempre tiene que salir algo. Pues

00:05:38.720 --> 00:05:47.360
estuve también con Cordata, de una aplicación que tenía hace tiempo. Siempre acaba saliendo,

00:05:47.360 --> 00:05:51.560
siempre es algo donde te lo acabas encontrando y esto es una aplicación que tengo desde

00:05:51.560 --> 00:05:57.960
hace tiempo y he aprovechado para darle unos retoques y darme cuenta de que el Arturo de

00:05:57.960 --> 00:06:04.120
hace muchos años tenía bastante menos idea sobre Swift y sobre Cordata de la que tiene

00:06:04.120 --> 00:06:09.960
ahora y bueno, pues estoy trabajando sobre todo con grandes cantidades de datos y si

00:06:09.960 --> 00:06:16.720
quieres lo comentamos para los oyentes. Hay lo que se le llaman las batch operations,

00:06:16.720 --> 00:06:22.880
que es decir, cuando no vas a cambiar un registro, o sea, no vas a cambiar solo un registro o

00:06:22.880 --> 00:06:29.040
unos poquitos, sino que es un cambio grande. Tanto insert grandes como deletes grandes,

00:06:29.040 --> 00:06:34.520
pues en lugar de hacerlo uno por uno y hacer como el stack normal o regular, que sería

00:06:34.520 --> 00:06:40.200
primero pasar por la parte de memoria y luego ya ir a la parte de persistencia del contenedor

00:06:40.200 --> 00:06:45.040
en disco, pues esto directamente va contra el almacenamiento. Se salta esta parte de

00:06:45.040 --> 00:06:48.160
memoria, pero claro, el problema de esta parte...

00:06:48.160 --> 00:06:53.760
Se trata de la base de datos SQLite 3, que va asociada a lo que es el propio Cordata,

00:06:53.760 --> 00:07:00.400
entonces pues básicamente partiendo de la base de que Cordata es una, bueno, pues vamos

00:07:00.400 --> 00:07:08.000
a llamarlo como una especie de modelo, ¿no? Una especie de modelo que está ahí puesto

00:07:08.000 --> 00:07:14.720
para que funcione de una manera en la que no tengas que tratar directamente con SQLite,

00:07:14.720 --> 00:07:19.040
pero efectivamente estas operaciones van directas contra SQLite, entonces, bueno, pues por un

00:07:19.040 --> 00:07:23.520
lado funcionan muy rápidas, pero por otro también hay que tener cuidado sobre que lo

00:07:23.520 --> 00:07:31.120
vamos utilizando, ¿no? Afinar Cordata es lo que se conoce como un ORM, un Object Relation

00:07:31.120 --> 00:07:38.320
Model, es un modelo de relación de objetos que lo que hace es unir la parte de una base

00:07:38.320 --> 00:07:43.440
de datos SQLite 3, que es lo que hay detrás, con una parte de objetos, que en este caso

00:07:43.440 --> 00:07:50.320
serían objetos en Objetice, que corresponden, digamos, podemos llamar modelo lógico y modelo

00:07:50.320 --> 00:07:54.160
físico, ¿vale? Entonces, bueno, pues está bien la cosa.

00:07:54.160 --> 00:07:59.040
Efectivamente, y el problema que tiene aquí, que es el gran monstruo que es Cordata, que

00:07:59.040 --> 00:08:02.440
tiene muchas funcionalidades, pero a veces te explota un poco la cabeza, porque el problema

00:08:02.440 --> 00:08:07.680
que me estaba encontrando era que una vez que tú has acabado, bueno, que has hecho

00:08:07.680 --> 00:08:12.000
la operación, digamos, directamente contra la parte de almacenamiento, tienes que decirle

00:08:12.000 --> 00:08:17.880
al contexto, que es la parte de memoria, oye, me ha actualizado, mira a ver si tienes que

00:08:17.880 --> 00:08:22.240
actualizar la interfaz o, vamos, tienes que como que notificar.

00:08:22.240 --> 00:08:29.680
Hay varias maneras de hacerlo. Puedes coger, digamos, los IDs de los cambios, de los objetos

00:08:29.680 --> 00:08:34.520
que han cambiado y decirle, oye, mira, he cambiado estos IDs. Se puede hacer con notificaciones,

00:08:34.520 --> 00:08:39.360
se puede hacer con lo que le llaman los tokens de cambio, ¿vale? Que son como una especie

00:08:39.360 --> 00:08:45.640
de snapshots, ¿vale? Para decirle, bueno, he hecho estos cambios, vienen aquí empaquetados

00:08:45.640 --> 00:08:52.240
en esta captura, actualízate. Pero al final es que es muy engorroso. O sea, yo he trabajado

00:08:52.240 --> 00:08:57.760
mucho con ello y cada vez que me pongo a hacer algo, me vuelve a costar. En este caso, lo

00:08:57.760 --> 00:09:04.320
que estoy haciendo, por ponerle el ejemplo, es coger datos de una API y refrescarlo, o

00:09:04.320 --> 00:09:08.920
sea, bueno, y guardarlo en el dispositivo, pues por eso. Si no tenemos conexión a internet,

00:09:08.920 --> 00:09:12.400
yo intento actualizarlo. Pues de vez en cuando, cuando entro en la vista, llamo al servidor

00:09:12.400 --> 00:09:17.040
para intentar actualizarlo, pero puede ser que no tenga conexión de red. Entonces lo

00:09:17.040 --> 00:09:24.080
que hago es persistirlo. Pero claro, de hecho, lo que estaba haciendo antes, y aquí que

00:09:24.080 --> 00:09:29.400
me caigan todas las collejas que queráis porque me las merezco, borraba todo y volvía

00:09:29.400 --> 00:09:33.680
a almacenar los objetos nuevos, ¿vale? Entonces ahora estoy haciendo algo más sofisticado

00:09:33.680 --> 00:09:40.760
que es cargar los datos de la API, mirar los que cambian, ¿vale? Ahí también defino una

00:09:40.760 --> 00:09:49.080
key que es la que no puede cambiar, ¿vale? La key básica. Actualizo los que ya existan,

00:09:49.080 --> 00:09:54.960
pero puede que tengan otros datos, por un lado, y luego miro los que tengo en la memoria,

00:09:54.960 --> 00:09:59.480
en la base de datos, pero que ya no me están viniendo de la API y eso los elimino, ¿vale?

00:09:59.480 --> 00:10:04.200
Pero como os digo, el problema viene que hago las operaciones en batch para poder hacer

00:10:04.200 --> 00:10:10.640
las operaciones directamente contra el almacenamiento, pero claro, el problema está cuando se lo

00:10:10.640 --> 00:10:14.720
tengo que notificar, que es un poco rollo.

00:10:14.720 --> 00:10:27.360
Pero yo cuando he trabajado con el NSBatchInsertions y el BatchUpdates y esas cosas, NSBatchInserts,

00:10:27.360 --> 00:10:32.920
no NSBatchInsertions, creo que lo ha hecho solo, ¿vale? Tendría que buscar el ejemplo

00:10:32.920 --> 00:10:37.760
porque se lo hice a un cliente. Lo que pasa es que el gran problema que tuve ahí era

00:10:37.760 --> 00:10:47.400
que yo tenía que refrescar un dato que, bueno, un dato que era que venía de una relación

00:10:47.400 --> 00:10:54.080
maestro detalle, ¿vale? Una relation, ¿no? Entre tablas, de forma que yo tenía un dato

00:10:54.080 --> 00:11:02.120
que era el dato general y luego tenía que actualizar, si no recuerdo mal, el centro

00:11:02.120 --> 00:11:09.320
donde estaba ese cliente o algo así, ¿vale? Entonces, claro, las relaciones no se actualizan

00:11:09.320 --> 00:11:13.680
con los batch, ¿vale? Entonces yo lo que tenía que hacer era lo que tú has comentado,

00:11:13.680 --> 00:11:19.280
es decir, en la última implementación, ¿por qué? ¿Cómo lo estás haciendo? ¿Por closers

00:11:19.280 --> 00:11:27.720
o directamente por llamadas? Por closers. Hago eso, empiezo, hago el perform de una

00:11:27.720 --> 00:11:32.680
operación en background y luego ahí dentro ya hago el batch, el batch insert, creo que

00:11:32.680 --> 00:11:39.600
sí. ¿Pero el batch insert tiene un closer o lo usas directamente con una operación?

00:11:39.600 --> 00:11:44.560
Con closer, con closer. Con closer. Es que, para el que no lo sepa, el NSBatch, lo último

00:11:44.560 --> 00:11:49.560
que le puso Apple, no sé si fue hace un par de años, fue la posibilidad de inyectarle

00:11:49.560 --> 00:11:55.240
un closer donde le dices qué es lo que quiere que hagas con cada registro. Entonces, yo

00:11:55.240 --> 00:12:02.280
lo que hacía ahí era capturar cada uno de los IDs, justo lo que has comentado, de cambio

00:12:02.280 --> 00:12:08.480
dentro de la base de datos para luego hacer un proceso posterior que recorriera el array

00:12:08.480 --> 00:12:16.440
de todos esos registros modificados y le pegara la relación con el dato de detalle. Entonces,

00:12:16.440 --> 00:12:22.920
funcionaba, era un parche parchoso, pero bueno, por lo menos para hacer la carga, que es una

00:12:22.920 --> 00:12:31.760
carga de 75.000 datos, pues iba a una velocidad prudentemente correcta. No tardaba demasiado

00:12:31.760 --> 00:12:37.680
en ese sentido. Pero, a ver, no es el código más intuitivo y más bonito que he usado

00:12:37.680 --> 00:12:43.160
en mi vida. Es como un infierno, pero sin el cómo.

00:12:43.160 --> 00:12:47.920
Es que fijaros. Primero, hay que crear otro contexto distinto al que estás utilizando

00:12:47.920 --> 00:12:53.360
en primer plano, un contexto en background. Luego, en ese contexto en background tienes

00:12:53.360 --> 00:12:57.960
que hacer los inserts. En esos inserts tienes que decirle que como resultado te dé los

00:12:57.960 --> 00:13:05.440
IDs de los objetos que haya insertado. Y luego, con esos IDs, vas y le dices al contexto que

00:13:05.440 --> 00:13:10.600
está en primer plano, que es el que está tirando por la tabla donde lo estoy mostrando,

00:13:10.600 --> 00:13:16.480
le tienes que decir que haga un merge de esos cambios. O sea, un poco de explotarte la cabeza

00:13:16.480 --> 00:13:23.480
y aparte de eso, de que necesitas saber hasta el fondo cómo funciona Cordata. Hace no mucho

00:13:23.480 --> 00:13:31.080
estuve haciendo algunas pruebas con Real y madre mía, o sea, otro otro rollo totalmente

00:13:31.080 --> 00:13:36.040
diferente. Eso sí, también tengo que decir algo malo de Real, porque estuve haciendo

00:13:36.040 --> 00:13:44.160
esta parte de compartir contenedores y en Real no llegué a implementarlo porque era

00:13:44.160 --> 00:13:50.440
un rollo macabeo. Y eso que en EOS también es bastante, vamos, con Cordata y con CloudKit

00:13:50.440 --> 00:13:56.440
también es bastante lío el que te invite un usuario a su parte de datos privada, ¿vale?

00:13:56.440 --> 00:14:01.200
Así que estoy me estoy saliendo ya del tema, pero bueno, ya que nos hemos enfrascado, vamos

00:14:01.200 --> 00:14:06.000
hasta hasta el final. Esta es la parte de CloudKit y yo creo que ya lo hemos comentado,

00:14:06.000 --> 00:14:11.600
en CloudKit está el contenedor público, están los contenedores privados o zonas creo

00:14:11.600 --> 00:14:17.360
que se llaman, la zona pública, la zona privada y la zona compartida. Entonces tú, por ejemplo,

00:14:17.360 --> 00:14:23.800
las notas compartidas, si tú tienes notas compartidas con otra persona, con otro usuario,

00:14:23.800 --> 00:14:29.920
las tienes, las que creas tú, las tienes en tu zona privada, pero él las tiene en

00:14:29.920 --> 00:14:35.560
su zona compartida, pero digamos que apuntan al mismo sitio, ¿vale? Entonces la compartición

00:14:35.560 --> 00:14:41.480
es un poco rollo el empezar a compartirlo, por un lado, y por otro, capturar todas las

00:14:41.480 --> 00:14:47.720
notificaciones que te van llegando de los cambios que ha hecho el usuario, porque claro,

00:14:47.720 --> 00:14:53.160
tú esos cambios los tienes que recoger y actualizar la interfaz en tu aplicación,

00:14:53.160 --> 00:14:58.960
lo cual es algo bastante complicado, porque además, ya os digo, como son distintos contenedores

00:14:58.960 --> 00:15:06.160
tienes que recoger las notificaciones de iCloud, o sea, de CloudKit, de las bases de datos

00:15:06.160 --> 00:15:13.480
de la zona privada, las de la zona compartida. La verdad es que es un poco infierno. Espero,

00:15:13.480 --> 00:15:19.800
como muchas veces imploramos desde este podcast, que Apple saque una nueva librería. No sé

00:15:19.800 --> 00:15:26.840
si Apple, o quizás el proyecto Swift, no sé si sería algo que haga la propia Apple,

00:15:26.840 --> 00:15:31.720
o lo dejará para la parte open source, porque bueno, al final una base de datos no deja

00:15:31.720 --> 00:15:37.240
de ser trabajar con el disco, ¿vale? Es algo más sofisticado que guardar ficheros, pero

00:15:37.240 --> 00:15:44.880
al final como SQL y todas las bases de datos tienes que guardar ficheros en el almacenamiento,

00:15:44.880 --> 00:15:52.040
una y otra. Entonces no sé, por esa parte, si será el propio proyecto open source, pero

00:15:52.040 --> 00:15:57.800
desde luego la parte de la nube, de sincronización con la nube, sí que tiene que ser Apple,

00:15:57.800 --> 00:16:01.480
porque tiene que ser una empresa la que esté detrás de ese servicio de sincronización.

00:16:01.480 --> 00:16:08.800
Claro, al final necesita una implementación en ese sentido, pero claro, yo, curiosamente,

00:16:08.800 --> 00:16:15.880
hablando con unos alumnos hoy, comentando la gran cantidad de cosas innovadoras que

00:16:15.880 --> 00:16:22.440
Apple ha hecho y tal, más concreto en SwiftUI, que si la nueva API de navegación de SwiftUI

00:16:22.440 --> 00:16:27.280
y tal, no sé cuánta, que si todo lo que tal, y claro, de pronto me dice, bueno, ¿y

00:16:27.280 --> 00:16:34.160
no van a hacer nada con Core Data? Y claro, era como tuturú. Y a Julio le empieza a caer

00:16:34.160 --> 00:16:40.480
una lágrima. Sí, sí, totalmente. Es que es una cosa bárbara. De hecho, yo tengo aquí

00:16:40.480 --> 00:16:46.480
ahora mismo el código de lo que he comentado y efectivamente es un NSBatchInsertRequest

00:16:46.480 --> 00:16:56.380
donde ponemos lo que es la entidad y directamente esa entidad recibe un closure que recibe el

00:16:56.380 --> 00:17:01.880
objeto y devuelve un bool y entonces ya a partir de ahí empiezas a hacer la carga y

00:17:01.880 --> 00:17:08.120
devuelves un true o un false, dependiendo de si realmente has podido o no hacer la inserción.

00:17:08.120 --> 00:17:15.880
Básicamente, bueno, de hecho, según pone aquí, sí, básicamente ese es el tema. No,

00:17:15.880 --> 00:17:21.680
perdón, devuelves un false si no has terminado todavía lo que es la carga y devuelves un

00:17:21.680 --> 00:17:27.800
true cuando acabes la carga para que el closure deje de ejecutarse en modo batch. Es como,

00:17:27.800 --> 00:17:35.600
dios mío, o sea, es una implementación. Claro, volvemos a lo de siempre. Es que esto es Objective-C,

00:17:35.600 --> 00:17:41.640
¿vale? Entonces es que se nota muchísimo que esto está en Objective-C y que por lo

00:17:41.640 --> 00:17:47.600
tanto, pues, en fin, es como, bueno, pues aquí está. Hostia, de verdad, yo creo que

00:17:47.600 --> 00:17:54.040
ya va tocando. Y claro, el problema, lo hemos comentado, ya están hablando que iOS 17 va

00:17:54.040 --> 00:17:59.720
a tener menos cosas porque están centrados en el tema de lo de la realidad aumentada

00:17:59.720 --> 00:18:04.360
y virtual. Y luego también, también va a tener menos cosas porque tienen que hacer

00:18:04.360 --> 00:18:09.440
el tema de lo de las tiendas alternativas de aplicaciones para cumplir con la normativa

00:18:09.440 --> 00:18:14.520
europea. Por lo tanto, pues, y no, obviamente, volvemos a repetir lo mismo. Esto no es cuestión

00:18:14.520 --> 00:18:19.920
de meter a más gente, porque ¿dónde encuentras gente con la preparación necesaria para poder

00:18:19.920 --> 00:18:26.440
realizar estos desarrollos? ¿Vale? Por lo tanto, al final, pues, estamos fastidiados,

00:18:26.440 --> 00:18:32.160
por no decir otra cosa, porque no hay forma de que esto se acabe y seguimos teniendo una

00:18:32.160 --> 00:18:38.400
base de datos que lo único más moderno que tiene es las implementaciones de consulta

00:18:38.400 --> 00:18:44.760
con SwiftUI, con el arroba first request y el section first request, que eso es muy bonito,

00:18:44.760 --> 00:18:52.240
pero es que fuera de eso, realmente es que es súper tosco, súper feo, nada intuitivo,

00:18:52.240 --> 00:18:59.120
mogollón de código para cualquier cosa. O sea, de verdad, yo creo, de verdad, no creo

00:18:59.120 --> 00:19:05.040
que haya ni un solo desarrollador en entornos Apple al que no le preguntes qué crees que

00:19:05.040 --> 00:19:08.240
Apple debería mejorar y lo primero que te digan, o sea, córdata.

00:19:08.240 --> 00:19:15.560
Y es que, aparte, el Astra, tú estás, no, esto vamos haciendo aquí, la realidad aumentada

00:19:15.560 --> 00:19:19.760
y tal, pero bueno, tenemos que persistir datos y utilizamos córdata.

00:19:19.760 --> 00:19:26.640
Claro, es que yo últimamente, si la necesidad de persistencia que tengo en una aplicación

00:19:26.640 --> 00:19:32.680
no es muy alta, pues lo siento, prefiero guardar ficheros JSON en segundo plano en la zona

00:19:32.680 --> 00:19:38.720
de documentos. Me resulta más rápido y más cómodo. A ver, para guardar 75.000 datos,

00:19:38.720 --> 00:19:45.120
pues no, pero para guardar un registro que el JSON va a ocupar menos de un mega, pues

00:19:45.120 --> 00:19:48.680
tío, prefiero guardarlo en un JSON, tío, ¿qué quieres que te diga?

00:19:48.680 --> 00:19:54.880
Sí, sí, sí, es que es mucho más fácil y como decía, con Codable es súper sencillo.

00:19:54.880 --> 00:19:59.200
Luego también ahí creo que sacaron, no sé, este año o el pasado, también mejoraron

00:19:59.200 --> 00:20:04.420
la API de trabajo con ficheros. Aparte, los equipos son bastante rápidos y no hay esa

00:20:04.420 --> 00:20:11.000
penalización que había hace 10 años en el acceso al almacenamiento. Entonces es lógico

00:20:11.000 --> 00:20:16.080
que si no es estrictamente, o sea, Codata es donde acabas cuando ninguna de las otras

00:20:16.080 --> 00:20:24.480
soluciones te valen. Y de penas voy a pasar a alegrías, porque como he tenido más tiempo

00:20:24.480 --> 00:20:35.600
he podido acabar el curso de Unity y me he venido súper arriba. Porque todo esto del

00:20:35.600 --> 00:20:40.960
curso de Unity, yo creo que ya lo dije en su día, viene porque me estoy preparando

00:20:40.960 --> 00:20:45.920
para la nueva realidad de Apple. Y la parte esta que tenía de trabajo con 3D y este de

00:20:45.920 --> 00:20:51.720
animaciones y todo este tipo de cosas, pues la tenía un poco de lado. Nunca he tenido

00:20:51.720 --> 00:20:57.120
tiempo o ganas de ponerme con ello. Y entonces, como me he venido arriba, me he puesto a hacer

00:20:57.120 --> 00:21:04.200
algunos experimentos con ARKit, pero más que con ARKit, con Reality Compose. Y lo que

00:21:04.200 --> 00:21:11.920
he visto es, lo primero, que se parece mogollón a módulos y partes de Unity. Es decir, tú

00:21:11.920 --> 00:21:18.400
pones objetos, le preparas animaciones, todo pero más bonito.

00:21:18.400 --> 00:21:22.840
Ya puedes poner sonidos a las animaciones, eventos, etcétera.

00:21:22.840 --> 00:21:30.560
Creas escenas. De hecho, me he hecho una demo que he encontrado por ahí, que consistía

00:21:30.560 --> 00:21:35.960
primero en detectar las escenas. Puedes poner como el tipo de escenas, horizontal, vertical

00:21:35.960 --> 00:21:43.000
o detección de fotos. Que se desate la experiencia a raíz de detectar una imagen. Y lo he hecho

00:21:43.000 --> 00:21:47.840
con un libro. De hecho, no hace falta siquiera un proyecto de descombinada.

00:21:47.840 --> 00:21:53.560
Que detectaba la portada de mi libro. Entonces, cuando ponía el libro, detectaba y ponía

00:21:53.560 --> 00:21:59.040
la escena de realidad aumentada encima. De hecho, eso se puede detectar y al final

00:21:59.040 --> 00:22:03.960
no es una aplicación ni nada. Es un fichero que puedes meter en una web. Es el típico

00:22:03.960 --> 00:22:08.240
que utiliza Apple en su web para las experiencias de realidad aumentada.

00:22:08.240 --> 00:22:15.280
Sí, es el fichero de Pixar y Adobe USDZ. Eso es. Y con eso ya te desencadena la escena

00:22:15.280 --> 00:22:20.440
que quieras. Cuando detecta el libro, pues salen ahí como unas etiquetas con los precios

00:22:20.440 --> 00:22:26.560
de las distintas ediciones, el autor... Puedes ir como a un carrito. Estuve allí trasteando

00:22:26.560 --> 00:22:34.760
sin echar ninguna línea de código. Por eso luego se carga en Reality Kit.

00:22:34.760 --> 00:22:39.720
Se carga directamente la escena y luego ya es cuando lo unes. Lo mismo que estuve haciendo

00:22:39.720 --> 00:22:51.560
en Unity, lo mismo que en Sprite Kit, Scene Kit, los desarrollos de juegos de Apple.

00:22:51.560 --> 00:22:59.160
Al final es eso. Volvemos a tener un poco lo que lo que teníamos con el interface builder

00:22:59.160 --> 00:23:05.720
que yo he de confesar que no llegué a utilizarlo. Ya venía unido Scope y los Storyboard.

00:23:05.720 --> 00:23:13.520
Yo sí llegué a trabajar con Scope antes de que estuviera unido. Estuve un tiempo trabajando

00:23:13.520 --> 00:23:18.880
teniendo y era muy duro. Era muy duro tener que estar cambiando de uno a otro, tener las

00:23:18.880 --> 00:23:22.680
dos apps abiertas. Pues yo creo que al final esto va a ser un

00:23:22.680 --> 00:23:28.920
poco un poco similar. Vas a tener que tener la parte en la que con gráficos y con objetos

00:23:28.920 --> 00:23:34.040
lo vas moviendo, le creas animaciones y luego ya eso pues tiene su conexión, no sé cómo

00:23:34.040 --> 00:23:39.800
se llamarán, Outlet o como quieras llamarle. Al final esto pues tienes etiquetillas que

00:23:39.800 --> 00:23:44.640
son las que importas en ARKit y en ARKit ya puedes manejar cosas de esa escena que has

00:23:44.640 --> 00:23:50.720
creado, digamos que has diseñado. Ya las puedes mover con código y bueno la verdad

00:23:50.720 --> 00:23:55.880
es que creo que ya por lo menos no parto de cero. Me queda mucho por recorrer porque no

00:23:55.880 --> 00:24:02.640
le he echado mucho tiempo pero sin duda interesante. De hecho animo a la gente que no lo haya visto.

00:24:02.640 --> 00:24:10.280
De hecho les animo por dos razones. La primera que es súper entretenido la verdad y la segunda

00:24:10.280 --> 00:24:15.000
que es que es lo que viene. O sea yo creo que no nos va a quedar más remedio que ponernos

00:24:15.000 --> 00:24:20.600
con ello ya porque bueno es lo bueno y lo malo que tiene la programación que evoluciona

00:24:20.600 --> 00:24:26.680
muy rápido y si no estás atento, si parpadeas se lo van a perder.

00:24:26.680 --> 00:24:33.120
Al final si queréis probarlo Reality Composer, si tenéis instalado Xcode, que si estáis

00:24:33.120 --> 00:24:39.520
aquí debéis tener instalado Xcode, Reality Composer se instala con Xcode. Simplemente

00:24:39.520 --> 00:24:49.560
en la parte de Xcode en Open Developer Tools, que es una de las opciones que hay en el menú

00:24:49.560 --> 00:24:55.640
propio de Xcode, donde pone la palabra Xcode, pulsáis ahí y tenéis una opción de Open

00:24:55.640 --> 00:25:04.480
Developer Tools donde podéis tener el acceso a Reality Composer o podéis usar el propio

00:25:04.480 --> 00:25:09.520
buscador del sistema para poder acceder a él. Y en iPad se puede descargar.

00:25:09.520 --> 00:25:12.480
Eso iba a decir que además es la misma aplicación.

00:25:12.480 --> 00:25:17.720
Es exactamente la misma aplicación con los mismos formatos de ficheros, la misma opción

00:25:17.720 --> 00:25:24.080
de trabajo y tal. Funcionan además los formatos entre las dos plataformas y el fichero que

00:25:24.080 --> 00:25:28.560
generéis pues directamente lo podéis cargar en Reality Composer, que prácticamente es

00:25:28.560 --> 00:25:35.680
una línea. Y como ha dicho Arturo, luego podéis etiquetar los objetos que vais utilizando

00:25:35.680 --> 00:25:42.080
dentro de Reality Composer y luego por código recuperar esos objetos y modificarlos a través

00:25:42.080 --> 00:25:46.400
de sus propias propiedades. Y la verdad que está realmente bien.

00:25:46.400 --> 00:25:54.400
Pues joer, creo que venía cargadito el Julio. ¿Ves? Es el problema de estar tanto tiempo.

00:25:54.400 --> 00:25:58.920
Bueno, tanto. Esta vez no nos hemos retrasado tanto, pero es el problema de no grabar este

00:25:58.920 --> 00:26:01.760
podcast diariamente.

00:26:01.760 --> 00:26:10.040
Pues sí, que se va acumulando el trabajo. Pues yo la verdad que durante estos días,

00:26:10.040 --> 00:26:19.240
de nuevo para variar formaciones, muchas formaciones, pero también he estado por un lado preparando

00:26:19.240 --> 00:26:25.000
un proyecto que tengo que entregar a unos alumnos. Un proyecto en lo que cometí un

00:26:25.000 --> 00:26:30.040
error, un error que en fin, os aconsejo que no cometáis porque por mucha experiencia

00:26:30.040 --> 00:26:38.460
que tengas al final cometes un error muy tonto y es que me ofusqué en utilizar una fuente

00:26:38.460 --> 00:26:48.320
de datos que yo había encontrado en Kaggle, que es una página web, en K-A-G-G-L-E.

00:26:48.320 --> 00:26:54.200
Kaggle es una página que, sí, sé que suena muy mal el nombre, pero es una página que

00:26:54.200 --> 00:27:01.480
tiene un montón de datasets preparados para inteligencia artificial. Datasets que recopila

00:27:01.480 --> 00:27:09.080
la gente de todo tipo de servicios, de gente que se molesta en encontrar conjuntos de datos

00:27:09.080 --> 00:27:13.640
que luego sube a esta página y puedes encontrar ahí prácticamente de todo.

00:27:13.640 --> 00:27:21.240
Entonces me bajé un volcado de todos los mangas que existían de una base de datos

00:27:21.240 --> 00:27:28.840
de una página que se llama MyAnimeList.com o algo así, que es una página que es muy

00:27:28.840 --> 00:27:38.320
conocida, es como un IMDB de anime y manga. Entonces me ofusqué en cargar esa información,

00:27:38.320 --> 00:27:45.200
pero ¿qué sucede? Que la información eran prácticamente todos los mangas editados desde

00:27:45.200 --> 00:27:50.280
el principio de los tiempos, eran decenas de miles de datos, y entonces quise hacer

00:27:50.280 --> 00:27:54.600
una API con esos datos, pero ¿qué sucede? Que cuando te enfrentas a decenas de miles

00:27:54.600 --> 00:28:01.140
de datos tienes que prepararte a que prácticamente todo lo que tienes ahí va a tener algún

00:28:01.140 --> 00:28:06.760
tipo de problema de dato opcional que no va a existir, elemento que está mal escrito,

00:28:06.760 --> 00:28:12.600
cosas que tienen un formato inapropiado. Entonces lo que yo descargué era un formato CSV y

00:28:12.600 --> 00:28:19.640
lo que hice fue crear una aplicación de línea de comando en Swift que transformaba ese CSV

00:28:19.640 --> 00:28:26.520
en un JSON. Entonces ¿cuál era el problema? Que cuando se encontraba algún carácter

00:28:26.520 --> 00:28:32.800
raro o cuando en lo que era la función de valores separados por comas, que en este caso

00:28:32.800 --> 00:28:37.360
era con punto y coma, cuando encontraba un punto y coma en el resumen de cualquiera de

00:28:37.360 --> 00:28:42.400
los elementos me cortaba el fichero, me lo ponía de mala manera, no sé qué. Total,

00:28:42.400 --> 00:28:48.400
que eran, ya no sólo por eso, sino por infinidad de pequeños problemas que tenían los propios

00:28:48.400 --> 00:28:54.360
datos en sí, hacían absolutamente imposible. Y no te puedes hacer una idea de la cantidad

00:28:54.360 --> 00:29:00.720
de días absurdos y estúpidos que perdí por querer cargar esa información ¿vale? Hasta

00:29:00.720 --> 00:29:06.240
que al final dije mira es que no se puede cargar esta información, es que por mucho

00:29:06.240 --> 00:29:09.760
que lo intente siempre va a haber algún dato que esté mal, siempre va a haber algún dato

00:29:09.760 --> 00:29:14.680
que no se va a cargar, siempre va a haber un y con que haya un elemento del JSON que

00:29:14.680 --> 00:29:20.760
no vaya bien. Claro, estamos hablando de un JSON que generaba para cargar en batch en

00:29:20.760 --> 00:29:28.500
la API de aproximadamente 200 megas ¿vale? O sea, era una burrada que no tenía ningún

00:29:28.500 --> 00:29:33.840
sentido pero me ofusqué a hacerlo y al final pues me tuve que rendir porque efectivamente

00:29:33.840 --> 00:29:39.520
luego ya que podía haberlo hecho al principio pues me puse a mirar bien los datos y me di

00:29:39.520 --> 00:29:44.760
cuenta de que aquello no había forma ¿vale? En un CSV que se lo come todo puedes hacerlo

00:29:44.760 --> 00:29:50.560
y te traga ¿vale? pero en un JSON aquello no había manera de ponerlo y menos para ser

00:29:50.560 --> 00:29:57.120
cargado en Swift ¿vale? Entonces al final me fui a un a una cosa un poquito más ligera

00:29:57.120 --> 00:30:02.440
a lo que sería una base de datos de libros de ciencia ficción y entonces bueno pues

00:30:02.440 --> 00:30:10.640
he creado una API REST en... ¿a que no adivinas en qué?

00:30:10.640 --> 00:30:15.280
Seguramente en Vapor. Había que hablar de Vapor en el episodio

00:30:15.280 --> 00:30:17.920
y entonces... La cara amable de Core Data.

00:30:17.920 --> 00:30:25.040
Exacto y entonces pues nada con Vapor y con PostgreSQL pues nada ahí sí he podido cargar

00:30:25.040 --> 00:30:29.600
la información además me he sacado una cuenta de pago en Heroku porque ya sabes que ahora

00:30:29.600 --> 00:30:37.000
ya no se puede trabajar con cuentas gratuitas y nada y entonces pues he creado una nueva

00:30:37.000 --> 00:30:42.880
API que estoy terminando de probar para dársela a los alumnos y que bueno pues tiene pues

00:30:42.880 --> 00:30:48.240
toda la información de distintos autores distintas tal relaciones no sé qué cuando

00:30:48.240 --> 00:30:53.080
te creas un modelo de datos que sea complejo donde tienes unos libros esos libros pueden

00:30:53.080 --> 00:30:58.520
comprarse cuando se compran además los usuarios pueden marcarlos como favoritos puedes pedir

00:30:58.520 --> 00:31:03.520
los pedidos saber qué libros ha pedido una persona en fin tienes que ir montando no todos

00:31:03.520 --> 00:31:08.560
esos servicios luego tienes pues lo que es usar y contraseña tal etcétera el alta del

00:31:08.560 --> 00:31:14.480
usuario en fin todas esas cosas la verdad que luego queda queda muy muy muy bonito vale

00:31:14.480 --> 00:31:20.280
entonces bueno pues la verdad que he estado ahí liado con ese con ese tema y nada y a

00:31:20.280 --> 00:31:25.200
ver qué tal qué tal termina ya está prácticamente terminada sólo estoy haciendo las últimas

00:31:25.200 --> 00:31:31.160
pruebas pero pero bueno la verdad que es un trabajo yo todo lo que es el lado servidor

00:31:31.160 --> 00:31:37.640
últimamente es lo que más me satisface cuando veo el resultado de lo que voy de lo que voy

00:31:37.640 --> 00:31:46.400
programando la verdad si yo tengo pendiente a ver si me da si me da tiempo una idea que

00:31:46.400 --> 00:31:53.240
tengo de vapor porque siempre que me he puesto he dejado cosas inacabadas pues eso pues hecho

00:31:53.240 --> 00:32:00.680
el típico login y registro la autenticación generación de tokens y todo eso un cruz

00:32:00.680 --> 00:32:06.440
súper sencillo para insertar cosas y tal pero nunca he hecho algo un poco un poco más

00:32:06.440 --> 00:32:13.880
grande y sí que tengo ganas por eso porque el trabajo de puede ser lo mismo pero al final

00:32:13.880 --> 00:32:20.680
no lo es vale yo creo que cuando haces a una aplicación que la gente va a ver te tienes

00:32:20.680 --> 00:32:25.680
que centrar mucho porque no hay tiempo para todo en la parte visual y todo el modelo de

00:32:25.680 --> 00:32:30.960
datos de detrás sí que sí que lo dejas un poco un poco aparte aunque bueno de hecho

00:32:30.960 --> 00:32:35.280
en incluso en equipos grandes de programador la gente que trabaja en equipos grandes hay

00:32:35.280 --> 00:32:41.960
mucha gente que es desarrollador de ellos pero sólo está en la parte de digamos del

00:32:41.960 --> 00:32:48.000
front de hecho dividen incluso las aplicaciones entre front y back porque hay gente que sólo

00:32:48.000 --> 00:32:54.960
se dedica a la lógica a la lógica del modelo de datos y todo eso que que si se hace bien

00:32:54.960 --> 00:33:00.880
y es una aplicación grande pues lleva tiempo pero yo lo que me he encontrado siempre es

00:33:00.880 --> 00:33:07.280
que en las aplicaciones móviles siempre está se presta mucha más atención a la parte

00:33:07.280 --> 00:33:14.200
de la interfaz y los datos como que quedan atrás y al final el lado servidor te enfrentas

00:33:14.200 --> 00:33:19.820
a otros problemas te enfrentas a problemas de escalado de miles de millones de registros

00:33:19.820 --> 00:33:26.960
que es ahí donde tienes el cuello de botella de la autenticación de cosas que en las aplicaciones

00:33:26.960 --> 00:33:34.360
no ves y por suerte ahora tenemos tenemos vapor que es un framework de primer nivel

00:33:34.360 --> 00:33:44.240
que ya está demostradísimo su usabilidad y que tenemos digamos abierta la primera puerta

00:33:44.240 --> 00:33:50.440
que es que está en el propio lenguaje que en principio dominamos no exacto no la verdad

00:33:50.440 --> 00:33:55.520
que se pueden hacer yo por ejemplo las las cosas más chulas que es que puedo hacer con

00:33:55.520 --> 00:34:02.680
los datos es trabajar con los siblings vale que son conexiones de relaciones n a n entre

00:34:02.680 --> 00:34:07.960
distintas tablas de forma que claro pues si tú tienes un libro y ese libro forma parte

00:34:07.960 --> 00:34:13.920
de un pedido en una compra hecha por un usuario pues tienes por un lado el dato del usuario

00:34:13.920 --> 00:34:19.880
por otro lado el dato de los libros y tienes un elemento de unión entre ambos datos vale

00:34:19.880 --> 00:34:28.440
entonces pues esos siblings tienes que unirlos o quitarlos a la hora de crear los registros

00:34:28.440 --> 00:34:33.540
y entonces las consultas que se generan desde ahí la devolución y tal la verdad que genera

00:34:33.540 --> 00:34:39.720
un código bastante bastante chulo bastante intuitivo y luego sobre todo que haya ganado

00:34:39.720 --> 00:34:47.080
un punto cuando un punto no ha ganado mil puntazos va por al integrar asina wait vale

00:34:47.080 --> 00:34:54.600
se puede usar con el modelo antiguo vale con el modelo de los de los futuros de los event

00:34:54.600 --> 00:35:01.240
loop future que era la forma antigua de devolver en un digamos en un formato de promesas y

00:35:01.240 --> 00:35:10.760
futuros pero ahora ya se puede usar directamente así await y el cambio telita es súper intuitivo

00:35:10.760 --> 00:35:15.560
y la verdad que es una es una gozada vale yo creo que es lo más y claro muchas veces

00:35:15.560 --> 00:35:20.040
uno piensa no pues será cosa mía y tal pero no no es que en el en la última edición

00:35:20.040 --> 00:35:25.520
del del bootcamp precisamente va por fue una de las cosas que más le gustó a todo el

00:35:25.520 --> 00:35:31.360
mundo no fue además luego lo comentaban no como sorprendidos como diciendo no no es que

00:35:31.360 --> 00:35:35.800
no me esperaba para nada y de hecho incluso había algunos que decían como bueno aquí

00:35:35.800 --> 00:35:40.120
lo de vapor no porque claro yo estoy viendo core data estoy viendo su UI, estoy viendo

00:35:40.120 --> 00:35:46.400
TDD, estoy viendo un montón de cosas que son de trabajo sobre entornos apple vale

00:35:46.400 --> 00:35:53.120
y de pronto el bootcamp te saca en un módulo a vapor vale y claro es como ahora me voy

00:35:53.120 --> 00:35:57.680
a salir al lado servidor nombre si yo soy desarrollador de aplicaciones tal pero de

00:35:57.680 --> 00:36:04.040
pronto la gente empezaba a ver que es el mismo código que conocen pero de una forma completamente

00:36:04.040 --> 00:36:09.100
nueva con una arquitectura completamente nueva de una manera muy intuitiva que puedes trabajar

00:36:09.100 --> 00:36:13.280
con los datos de una forma muy fácil que todo se ve muy bien en código de un primer

00:36:13.280 --> 00:36:20.640
vistazo etcétera y terminaban diciendo que les había sorprendido muchísimo el tema

00:36:20.640 --> 00:36:29.040
de vapor y que vamos que les había ganado y de hecho todos terminaron por crear una

00:36:29.040 --> 00:36:35.680
un lado servidor para su propio proyecto de fin de bootcamp al final es difícil meter

00:36:35.680 --> 00:36:40.760
la pata la patita porque ya hay muchas empresas que tienen backends hechos en otras tecnologías

00:36:40.760 --> 00:36:47.520
entonces todas para bajar en una aplicación trabajar en eso sí que es más mucho más

00:36:47.520 --> 00:36:52.560
complicado vale que trabajar pues haciendo al final aplicaciones para los sistemas los

00:36:52.560 --> 00:37:00.200
sistemas de apple y julio no no quiero desaprovechar esto esta oportunidad porque estuve ya no

00:37:00.200 --> 00:37:07.880
me acuerdo ya se me va se me va un poco la cabeza el mirando de esto de bases de datos

00:37:07.880 --> 00:37:14.200
y tú has comentado que lo hiciste en postgres yo soy muy pero bases de datos relacionales

00:37:14.200 --> 00:37:19.480
vale porque a mí me explota la cabeza porque estuve investigando un poco más sobre las

00:37:19.480 --> 00:37:26.600
nacionales las ventajas las desventajas yo lo del no sql lo siento pero yo no lo entiendo

00:37:26.600 --> 00:37:34.640
o sea no a ver es que hay que tener mucho cuidado y ese cuidado recae en el propio desarrollador

00:37:34.640 --> 00:37:41.000
te pongo el ejemplo precisamente las bases de datos relacionales las bases de datos relacionales

00:37:41.000 --> 00:37:48.240
tienen relaciones es decir si yo cambio algo en un sitio se me cambia como la relación

00:37:48.240 --> 00:37:55.640
se relacionan los ideas imagínate pues que tengo una persona con sus objetos vale con

00:37:55.640 --> 00:38:02.480
sus pertenencias pues yo si le cambio una propiedad a esa pertenencia ya está reflejado

00:38:02.480 --> 00:38:05.760
cuando pido las pertenencias del usuario me va a venir ya con ese cambio porque el usuario

00:38:05.760 --> 00:38:13.360
tiene una relación a los ideas de esas de ese objeto de esos objetos de esas pertenencias

00:38:13.360 --> 00:38:19.840
pero en una base de datos no se cuele no relacionar lo que te dicen es que cada vez que cambia

00:38:19.840 --> 00:38:24.080
tienes que ocuparte tú de en el usuario que va a tener todo no va a tener ideas sino que

00:38:24.080 --> 00:38:31.040
va a tener todo actualizar esa propiedad con lo cual si no te das cuenta si no estás utilizando

00:38:31.040 --> 00:38:36.920
un framework a ver lo bueno es que hay framework por encima que te quitan esa parte y digamos

00:38:36.920 --> 00:38:41.600
que se hace por detrás y tú no te das ni cuenta vale pero yo he tenido problemas realmente

00:38:41.600 --> 00:38:47.480
en aplicaciones de producción de a no claro es que cuando haces es x operación claro

00:38:47.480 --> 00:38:52.080
es que se me olvidó actualizarlo digo madre mía se te olvidó actualizarlo pero es que

00:38:52.080 --> 00:38:56.360
es normal o sea el primer día te acuerdas el segundo día te acuerdas pero al cuarto

00:38:56.360 --> 00:39:01.840
día que toques ahí se te olvida actualizar un contador lo mismo hay que hacer contadores

00:39:01.840 --> 00:39:05.720
porque el problema que tienen las bases de datos no relacionales es que tienes que ir

00:39:05.720 --> 00:39:11.600
guardando todos esos datos contadores y demás porque las consultas son muy caras vamos a

00:39:11.600 --> 00:39:19.240
llamarle para hacer consultas cruzadas esas yo estuve tiempo trabajando con un back en

00:39:19.240 --> 00:39:27.240
en php en la base de datos era era sql no nos recuerda yo creo que la msql y unas queries

00:39:27.240 --> 00:39:32.680
para los informes diarios y mensuales que te mueres o sea unas queries que harían vomitar

00:39:32.680 --> 00:39:41.760
un cerdo para flipar las queries pero es que luego si las hacías bien y ahí eres donde

00:39:41.760 --> 00:39:48.680
entra y tú julio trabajaste años de eso era la diferencia entre un tío como yo que

00:39:48.680 --> 00:39:52.720
pues lo tenía que hacer las cuales esas para salir del paso alguien que sabía hacerlas

00:39:52.720 --> 00:39:59.120
y es que te las optimizaban y procesos que duraban yo lo hacía y duraba una hora venía

00:39:59.120 --> 00:40:06.240
el tío que sabía lo cambiaba cuatro cosillas y hacía cuatro o sea cambiaba las play mariquís

00:40:06.240 --> 00:40:10.920
y cosas cosas que contaba que yo le miraba con cara de que está diciendo este señor

00:40:10.920 --> 00:40:17.320
pero el caso es que de una hora que tardaba luego tardaba cinco minutos vale pero podías

00:40:17.320 --> 00:40:22.800
hacer unas burradas que no te permite una base de datos no relacional y sobre todo que

00:40:22.800 --> 00:40:28.040
lo tienes todo ahí en una relacional y no te tienes que andar fijando fijando en ese

00:40:28.040 --> 00:40:34.760
tipo de cosas yo es que de hecho el verdadero poder de la api que estoy haciendo y de lo

00:40:34.760 --> 00:40:41.080
que son los datos en sí se basa en su relacionalidad pero efectivamente también he de reconocer

00:40:41.080 --> 00:40:47.720
que yo peco de fanboy de las bases de datos relacionales porque yo antes de entrar en

00:40:47.720 --> 00:40:55.240
el mundo apple estuve trabajando durante 12 años como como administrador de base de datos

00:40:55.240 --> 00:41:03.240
oracle y también pues haciendo aplicaciones con plsql consultas etcétera de hecho era

00:41:03.240 --> 00:41:14.560
una cálida tarde de verano en la antigua grecia cuando pues tuvimos vale un un cliente

00:41:14.560 --> 00:41:18.760
vale es decir esto bueno como ya no estoy pues tampoco igual lo puedo contar no creo

00:41:18.760 --> 00:41:26.000
que pase nada a ver ya no te pueden despedir ya no efectivamente ya no pueden tal a ver

00:41:26.000 --> 00:41:31.480
yo he trabajado durante siete años en la entonces dirección general de aviación civil

00:41:31.480 --> 00:41:37.020
del ministerio de fomento ahora agencia estatal de seguridad aérea de acuerdo de hecho cuando

00:41:37.020 --> 00:41:44.680
empezó a hacer la a esa fue cuando cuando yo fui invitado a abandonar la academia vale

00:41:44.680 --> 00:41:49.680
entonces bueno pues está simplemente pues de hecho la empresa para la que trabajaba

00:41:49.680 --> 00:41:55.000
a los pocos meses de perder ese proyecto pues se fue a traste vale o sea que fue una cosa

00:41:55.000 --> 00:42:00.960
que en fin era como la crónica de una muerte anunciada pero independientemente muchos años

00:42:00.960 --> 00:42:05.760
antes vale cuando yo estaba porque en esa en ese proyecto ya tenía 15 personas a mi

00:42:05.760 --> 00:42:13.960
cargo haciendo pues bastantes aplicaciones bastantes proyectos con oracle developer 2000

00:42:13.960 --> 00:42:19.600
que era una herramienta que tenía oracle para desarrollo de frontends que utilizaba

00:42:19.600 --> 00:42:26.240
una plate java para ejecutar una parte de frontend sobre base de datos a través de

00:42:26.240 --> 00:42:31.600
disparadores a través de triggers que lanzaban eventos a partir de los campos y de las tablas

00:42:31.600 --> 00:42:38.720
de base de datos relacionales y entonces pues generabas ese trabajo no e incluso luego tenías

00:42:38.720 --> 00:42:47.680
que hacer también reports con una aplicación se llamaba reports developer que que bueno

00:42:47.680 --> 00:42:54.440
pues que también era como muy vamos ríete tú de las cosas las constraints de UIKit

00:42:54.440 --> 00:43:01.680
eso es gloria comparado con lo que era hacer un informe en reports vale total que en esa

00:43:01.680 --> 00:43:07.120
época antes de tener a toda esta gente todo este equipo etcétera etcétera pues estaba

00:43:07.120 --> 00:43:14.960
yo solo estaba yo solo manteniendo una serie de cosas y de pronto pues el jefe que tenía

00:43:14.960 --> 00:43:21.840
en aquel momento vale pues me el jefe del misterio vale un tío que es vamos yo creo

00:43:21.840 --> 00:43:27.080
que es el mejor responsable con el que he trabajado en mi vida era un tío absolutamente

00:43:27.080 --> 00:43:36.440
excepcional y curtido en todo tipo de marrones de todo calibre vale esa increíble no y me

00:43:36.440 --> 00:43:39.360
llevaba muy bien con él entonces este tío pues me llama y me dice oye mira tengo aquí

00:43:39.360 --> 00:43:45.600
un problema no sé si me puede echar una mano tengo una aplicación para la gente de medicina

00:43:45.600 --> 00:43:52.520
aeronáutica que pues que no funciona que es toda fatal que la empresa que lo ha hecho dice que la

00:43:52.520 --> 00:43:57.320
culpa es nuestra porque el servidor va muy lento que en su servidor va estupendo y que en el nuestro

00:43:57.320 --> 00:44:03.520
no funciona claro que tener muchos datos claro es que los cachondos de la otra empresa estaban

00:44:03.520 --> 00:44:10.800
trabajando con datos de prueba que tenían 9 o 10 pacientes la aplicación de producción no tenía

00:44:10.800 --> 00:44:16.000
9 o 10 pacientes tenía a todos los pilotos que tienen licencia de vuelo en españa a todo el

00:44:16.000 --> 00:44:22.840
personal de vuelo azafata etcétera o sea que me estás contando tenían miles de cientos de miles

00:44:22.840 --> 00:44:29.080
de datos entonces claro no era comparativo no entonces no no la culpa de vuestro servidor que

00:44:29.080 --> 00:44:34.320
está mal configurado claro el servidor está configurado por mí vale entonces era como hola

00:44:34.320 --> 00:44:42.600
qué tal cómo está la cosa total que llegó a comprobar la base de datos y resulta que efectivamente

00:44:42.600 --> 00:44:50.080
hay un proceso de una aplicación en java que conectaba por spring a oracle y lo que hacía era

00:44:50.080 --> 00:44:54.680
pues hacer una consulta entonces cuando tú le dabas a generar un informe el informe tardaba

00:44:54.680 --> 00:45:02.120
aproximadamente unos si no recuerdo mal unos 10 minutos una cosa así más o menos vale en generar

00:45:02.120 --> 00:45:10.200
un informe de lo que era la parte del informe de medicina oráutica vale y entonces claro pues me

00:45:10.200 --> 00:45:15.680
dice este hombre mira a ti no te importa echarle un ojo y tal y miro lo que hay y tal y luego pues

00:45:15.680 --> 00:45:20.000
vienes en una reunión y me dices que es lo que has encontrado vale pues me pongo a auditar esa

00:45:20.000 --> 00:45:26.480
base de datos y resulta que la base de datos de oracle básicamente era una base de datos access

00:45:26.480 --> 00:45:34.120
que habían migrado a través de un odbc de microsoft vale los objetos de conexión que

00:45:34.120 --> 00:45:40.120
tiene microsoft entre distintas objetos de base de datos a través de windows pues tú pones una

00:45:40.120 --> 00:45:46.720
conexión odbc a access y una conexión odbc a la conexión de base de datos y entonces puedes a

00:45:46.720 --> 00:45:52.840
través de esos odbcs desde el propio access hacer una migración directa desde access a oracle vale

00:45:52.840 --> 00:46:00.720
pasando a las tablas que sucede que las tablas se pasan sin claves primarias sin claves foráneas es

00:46:00.720 --> 00:46:07.800
decir sin relaciones sin claves sin restricciones únicas nada o sea es un volcado como el que vuelca

00:46:07.800 --> 00:46:15.440
un excel vale de forma que los datos que había ahí no tenían ninguna primary key ninguna foreign

00:46:15.440 --> 00:46:20.360
key ninguna unique key no tenían constraint ninguna de ningún tipo eran datos colgados

00:46:20.360 --> 00:46:32.520
ahí a choflón donde había datos de una tabla que tenía si no recuerdo mal 40 o 50 campos donde había

00:46:32.520 --> 00:46:43.800
hasta 100 registros que tenían exactamente el mismo exacto valor en todos los campos de forma

00:46:43.800 --> 00:46:54.240
que la aplicación tomaba como el valor correcto el de fecha más nueva imagínate lo que era mover

00:46:54.240 --> 00:46:59.120
lo que era hacer cualquier consultas a base de datos sin ningún tipo de índice sin ningún tipo

00:46:59.120 --> 00:47:06.560
de nada o sea entonces claro tenían una vista que hacía varias consultas anidadas entre distintas

00:47:06.560 --> 00:47:14.080
tablas para generar resultado concreto vale una vista para el que no lo sepa una view en oracle

00:47:14.080 --> 00:47:21.120
viene a ser básicamente pues como una variable calculada en swift vale es decir es algo que no

00:47:21.120 --> 00:47:27.880
tiene un almacenamiento sino es como una consulta que está montado a base de consultar distintas

00:47:27.880 --> 00:47:32.800
tablas de hacer joints entre distintas tablas etcétera y que te devuelve un único resultado

00:47:32.800 --> 00:47:38.440
que parece que te devuelve una tabla pero en realidad es una consulta digamos un poco más

00:47:38.440 --> 00:47:44.800
trabajada y entonces bueno pues esa vista era la responsable de que se tardaran esos 10 minutos en

00:47:44.800 --> 00:47:50.240
hacer todo este elemento entonces yo hice un informe lo presenté y claro después de que la

00:47:50.240 --> 00:47:55.160
gente empezara a decir no porque tal porque esto no es porque no sé cuánta porque vuestro servidor

00:47:55.160 --> 00:48:02.720
porque a nosotros no funciona bien tal y cual pum saque el informe y claro esto no tiene prima decay

00:48:02.720 --> 00:48:06.800
no tiene coste y no tiene no sé qué no tiene no sé cuál esta vista está mal hecha esto no sé qué

00:48:06.800 --> 00:48:16.400
esto no sé cuál al comercial se le cayó el alma a los pies y ojo nos dijeron o sea nos pasaron el

00:48:16.400 --> 00:48:24.080
proyecto a nosotros la empresa se retiró se rindió nos cedió todo el código fuente que ellos habían

00:48:24.080 --> 00:48:33.960
hecho y dijeron para vosotros y salieron corriendo y fue como perdona es claro yo estuve unos cuantos

00:48:33.960 --> 00:48:41.000
días creando todas las prima de que es limpiando los datos temporales dejando los datos bien creando

00:48:41.000 --> 00:48:47.680
las for in case apropiadas para cada uno de los elementos y reconstruyendo la vista a una vista

00:48:47.680 --> 00:48:52.920
bien montada que aprovechará las relaciones que hiciera porque una de las cosas primordiales que

00:48:52.920 --> 00:48:58.160
puede que tienes que hacer en oracle es que si tú tienes una primary key o un índex que tiene

00:48:58.160 --> 00:49:04.440
una serie de campos en un web de una consulta tienes que respetar el orden de ese índex para

00:49:04.440 --> 00:49:11.320
que lo recoja y automáticamente vaya buscando por esos índices de campos múltiples no y que luego

00:49:11.320 --> 00:49:17.280
pues las for in case también tengan un contexto lógico en el que vayas por distintos niveles en

00:49:17.280 --> 00:49:23.640
función de si son padre hijo la tabla o si es una relación de 1 a n dna en fin dependiendo de

00:49:23.640 --> 00:49:31.440
lo como estuviera total que configuro de nuevo toda esa vista y qué pasó pues que de los 10

00:49:31.440 --> 00:49:39.640
minutos que tardaba la vista una vez limpiada toda la base de datos pues tardaba de cronómetro 1,9

00:49:39.640 --> 00:49:47.520
segundos que madre mía la que tiene que haber liada para para que esos órdenes de magnitud

00:49:49.880 --> 00:49:58.840
así que imagínate y estamos hablando de una base de datos con decenas de miles de personas que a su

00:49:58.840 --> 00:50:07.160
vez esas personas tienen informes médicos un histórico de informes datos médicos asociados

00:50:07.160 --> 00:50:12.560
a esos informes etcétera etcétera vale o sea que era un montón de información que estaba relacionada

00:50:12.560 --> 00:50:19.320
en una base de datos cargadita vale y pues pues está sin ningún tipo de primer y que es ni nada

00:50:19.320 --> 00:50:25.080
y pues tratar pues claro era un infierno y yo al final pues la arreglé y la verdad que quedaron

00:50:25.080 --> 00:50:33.040
bastante bastante contentos así que bueno una anécdota como otra cualquiera ya ha estado de

00:50:33.040 --> 00:50:38.320
tengo entendido creo que grandes plataformas pues yo creo que una vez leí un poco sobre cómo está

00:50:38.320 --> 00:50:43.400
estructurado facebook lo que hacía digamos que tienen una capa primero de hecho hay todo con

00:50:43.400 --> 00:50:49.400
una especie de caché vale y luego ya la voy recogiendo y estructurando vale tener una caché

00:50:49.400 --> 00:50:54.120
no relacional en la que bueno si estás pidiendo algo que se acaba de producir punte lo chuta muy

00:50:54.120 --> 00:50:59.240
rápido pero luego esa información se iba se va estructurando en una base de datos relacional

00:50:59.240 --> 00:51:05.560
pero no lo sé porque también voy a contar yo también otra anécdota una creo que fue no la

00:51:05.560 --> 00:51:11.760
primera pero de las primeras empresas en las que trabajé y esto seguro que los más jóvenes alucinan

00:51:11.760 --> 00:51:20.040
cuando lo cuente el backend consistía de hecho llegaban de dos maneras una era un paquete ip

00:51:20.040 --> 00:51:26.840
o sea es que ya no te hablo de servicio res ni api res no no era un paquete ip con que se lean los

00:51:26.840 --> 00:51:33.560
bytes vale de hecho los yo trabajaba en la parte de los equipos que había distribuidos y mandábamos

00:51:33.560 --> 00:51:39.160
bytes o sea mandábamos digamos luego lo que hacíamos un string que los convertía bytes y

00:51:39.160 --> 00:51:44.400
ahí iba el significado de todo lo que queríamos mandar porque porque se recibían de dos maneras

00:51:44.400 --> 00:51:52.400
o paquetes ip o sms vale y lo que había en el backend era un programita en c que se había

00:51:52.400 --> 00:51:58.320
encurrado hace muchos años y eso mejor no tocarlo porque podría explotar y luego la lógica del

00:51:58.320 --> 00:52:08.240
backend una vez que recogía los mensajes era un lenguaje llamado transax SQL que analizaba la

00:52:08.240 --> 00:52:18.880
trama y guardaba en base de datos todo lo que todo lo que se necesitaba era y de hecho iba súper rápido

00:52:18.880 --> 00:52:23.080
eso sí que es verdad iba iba súper rápido pero cuando había que tocar algo en cambio toco también

00:52:23.080 --> 00:52:36.640
en ese transax SQL en esa época tuve que implementar en oracle una capa de conexión con con soap una

00:52:36.640 --> 00:52:46.120
capa con lo que son llamadas que era el anterior no al api res con llamadas en xml y el xml yo en

00:52:46.120 --> 00:52:55.800
oracle lo trataba como texto y lo parseaba como texto a mano porque no había una librería de xml

00:52:55.800 --> 00:53:05.040
en oracle y aún así yo era el más rápido de todos o sea mi solución de parseo de texto a lo cutre

00:53:05.040 --> 00:53:11.960
salchichero buscando la subcadena y buscando el fin de la de la llave xml etcétera etcétera era

00:53:11.960 --> 00:53:17.000
mucho más rápido que ninguna librería que usaban otras soluciones basadas en java sobre los mismos

00:53:17.000 --> 00:53:26.240
servicios me decían oye y cómo lo haces tú tan rápido y llena todo parseo de cadena a lo burro

00:53:26.240 --> 00:53:32.640
y aquello digo madre mía el día que alguien le dé por cambiar aquí algo es que ahora lo que lo que

00:53:32.640 --> 00:53:38.400
vemos gracias a que las tecnologías ha evolucionado un mundo saque así estamos hablando de hace 10 o

00:53:38.400 --> 00:53:44.960
15 años o sea la tecnología ha evolucionado un montón pero es que hay un montón de capas de

00:53:44.960 --> 00:53:50.120
cómo no te llega que al final lo que se manda a día de hoy más o menos son jasons pues hay un

00:53:50.120 --> 00:53:57.000
montón de capas intermedias de control de reenvíos y de un montón de cosas que antes no no la sabía

00:53:57.000 --> 00:54:03.280
es como os digo es que eran llegaban bytes y si el primero era 5 o sea los dos primeros bytes era

00:54:03.280 --> 00:54:10.720
un 5 y un 3 pues con esos dos significa que era una un mensaje de tipo no sé qué iba aquí a esta

00:54:10.720 --> 00:54:18.400
tabla era era un poco locura pero bueno la verdad es que que bastante bastante divertido porque

00:54:18.400 --> 00:54:24.080
seguro que estamos hablando de esto pero alguien que haya programado hace más años dirá eso era

00:54:24.080 --> 00:54:33.320
todo un lujo de aquellas un lujo asiático totalmente y para no largarnos más julio si

00:54:33.320 --> 00:54:37.360
te parece vamos vamos a entrar con las noticias

00:54:37.360 --> 00:54:51.480
que una tiene que ver con el futuro de la programación

00:54:54.320 --> 00:55:03.040
pues sí porque el otro día de pronto llega lo que es bueno pues el medio de

00:55:03.040 --> 00:55:10.400
información que ya de por sí ha comentado históricamente cosas sobre lo que apel va

00:55:10.400 --> 00:55:18.040
a lanzar con las nuevas lentes de realidad aumentada y virtual y nos contó algo que

00:55:18.040 --> 00:55:24.580
nos dejó bastante sorprendidos a todos que yo lo conté en el podcast de apple coding daily y que

00:55:24.580 --> 00:55:33.800
desde luego pues si realmente pasa va a ser algo impresionante y es que se supone que apple

00:55:33.800 --> 00:55:42.520
estaría preparando un sistema de creación de aplicaciones no code es decir sin codificación

00:55:42.520 --> 00:55:51.160
pero claro no serían aplicaciones serían algo así como servicios basados en 3d elementos que

00:55:51.160 --> 00:55:59.460
tienen que ver con objetos 3d con crear experiencias es decir algo parecido a lo que

00:55:59.460 --> 00:56:08.260
hemos comentado de reality composer pero hecho con una nueva herramienta cuya característica clave es

00:56:08.260 --> 00:56:18.900
cuál es arturo que sería controlada con nuestra voz que no habría que echar ni una sola línea de

00:56:18.900 --> 00:56:27.540
código básicamente sería como hablar con jarvis es como si fuéramos tony stark y esto como

00:56:27.540 --> 00:56:32.740
funcionaría pues imaginad que yo quiero generar una escena vale porque además esto por lo que

00:56:32.740 --> 00:56:42.820
parece ser según comenta de information estaría unido a un modelo de generación de objetos 3d

00:56:42.820 --> 00:56:51.180
realizado por apple como un stable diffusion pero que generaría objetos 3d de forma que yo podría

00:56:51.180 --> 00:57:05.060
decirle a este sistema y además sería con siri a siri para que no salte hazme un cohete de color

00:57:05.060 --> 00:57:14.100
rojo y blanco así con ajedrez como el de tintín viaje a la luna donde pueda poner un pequeño

00:57:14.100 --> 00:57:19.900
muñequito que abra una puerta en la parte de abajo y el muñequito puede entrar dentro de escribirle

00:57:19.900 --> 00:57:29.300
una escena 3d y teóricamente siri pintaría o dibujaría eso y generaría la experiencia no sé

00:57:29.300 --> 00:57:35.580
hasta qué punto hasta el punto de que le puedes decir génerame el cohete no sé qué hay házmelo

00:57:35.580 --> 00:57:44.220
más grande ahora con un ala más pónmelo con la punta más fina la punta más gruesa en vez de dos

00:57:44.220 --> 00:57:54.180
motores ponle tres y lo iría cambiando insisto igual que jarvis es decir tony stark no programa

00:57:54.180 --> 00:58:01.100
la mark 2 en iron man 1 tony stark le va diciendo a jarvis ahora pon menos de que ahora no sé cuál

00:58:01.100 --> 00:58:07.300
aprieta esto más ponte aquí no sé qué ahora calcula la cantidad de combustible que tienes que poner

00:58:07.300 --> 00:58:20.340
ahora no sé qué tal eso es lo que hacía con jarvis entonces se supone que haría eso tú hasta dónde ves

00:58:20.340 --> 00:58:28.380
que esto pueda ser plausible a ver yo creo que todo depende más que de que creen un id en base a esto

00:58:28.380 --> 00:58:35.020
de la parte de matching learning que es que avance porque sí que es verdad que con todo esto que ha

00:58:35.020 --> 00:58:41.860
salido este tipo de fusión de chat gpt ha habido con mucho hype pero de repente se ha visto que

00:58:41.860 --> 00:58:47.180
hoy espera esto sí mola mucho y mola porque esto llevaba tiempo ya y lo hemos liberado ahora y

00:58:47.180 --> 00:58:53.620
estáis flipando pero claro decían que la versión de chat gpt 4 que hoy no te esperes nada del otro

00:58:53.620 --> 00:59:00.060
o sea un salto tan grande porque la gracia fue que al liberar la versión 3 flipasteis porque no

00:59:00.060 --> 00:59:04.780
habías visto nada de lo anterior vale pero está la evolución va va muy lenta y además estamos

00:59:04.780 --> 00:59:11.900
viendo que tiene problemas como que te dice cosas pensando siempre que son ciertas vale ahí tiene

00:59:11.900 --> 00:59:18.340
ciertas limitaciones pero luego también ha habido otros movimientos que se han enfadado ha habido

00:59:18.340 --> 00:59:24.060
empresas que nos han enfadado como creo que fue google que dijo a ver esta gente lo ha liberado

00:59:24.060 --> 00:59:31.260
ahora pero nosotros en nuestro laboratorio tenemos cosas que le dan 100.000 vueltas vale por lo que

00:59:31.260 --> 00:59:35.740
no me extrañaría que apel también en sus laboratorios ha salido es un dar picha y ha dicho

00:59:35.740 --> 00:59:44.820
yo he visto cosas que no creeríais de hecho han llamado a bill larry page y no sea uno de los

00:59:44.820 --> 00:59:51.220
fundadores de google para que les ayude a lanzar la parte de inteligencia artificial que quieren

00:59:51.220 --> 00:59:58.580
liberar cosas no sé si forzados porque como open ahí está está empezando a liberar cosas tan rápido

00:59:58.580 --> 01:00:04.740
y está causando ese revuelo pues han llamado a uno de los fundadores de google que ya estaban

01:00:04.740 --> 01:00:09.900
desligados de la compañía para que les ayude en la estrategia para lanzar esto porque yo creo que

01:00:09.900 --> 01:00:19.660
la parte está de inteligencia artificial aunque sí que es más fácil conceptualmente de vender que la

01:00:19.660 --> 01:00:25.300
realidad aumentada y fijaros lo que estoy diciendo es un reto muy grande la parte de vendernos la

01:00:25.300 --> 01:00:34.740
realidad aumentada sí que es complicado o sea aunque no entonces yo leo estas noticias y es

01:00:34.740 --> 01:00:43.460
que veo o sea me da la impresión de que vamos a llegar a ello pero como de rápido y además apel

01:00:43.460 --> 01:00:50.580
que precisamente la que la que no va por eso pero apel es la que no va a sacar un algo que no esté

01:00:50.580 --> 01:00:57.860
bien hecho pero teóricamente este es el motivo del retraso por el que no se han presentado las

01:00:57.860 --> 01:01:04.220
lentes en enero y se presentarán en mayo porque el software no está todavía terminado al 100%

01:01:04.220 --> 01:01:12.500
entonces qué pero esto es para los desarrolladores o sea te quiero decir el problema de la relación

01:01:12.500 --> 01:01:19.260
aumentada no es vendértela a ti o vendérmela a mí que vamos cállate y toma mi dinero exacto

01:01:19.260 --> 01:01:24.820
es vendérsela al público general a la gente que decía hace 15 años que jamás tenía un

01:01:24.820 --> 01:01:30.980
smartphone y ahora no se separa él y yo creo que eso la realidad aumentada va a ser complicado

01:01:30.980 --> 01:01:35.380
de hecho entre otras cosas porque tenemos smartphones es decir no claro con esto puedes

01:01:35.380 --> 01:01:40.900
ver experiencias más inmersivas dice me da igual si es que yo te hago una videollamada y sabes

01:01:40.900 --> 01:01:46.420
se lo dices a mi abuela que está viendo a su bisnieta dice para mí es que comer ya estoy

01:01:46.420 --> 01:01:53.180
flipando de que la puestas en madrid y la puedo ver a través del móvil hay un casco claro es que

01:01:53.180 --> 01:02:00.060
ahí la forma de entrar es básicamente a través del mercado profesional que es un poco lo que lo

01:02:00.060 --> 01:02:07.180
que facebook ha visto vale es decir ahora ya se ha implantado el modelo al menos en determinados

01:02:07.180 --> 01:02:13.420
sectores como el del desarrollo se ha implantado el modelo de trabajo en remoto vale entonces ese

01:02:13.420 --> 01:02:21.220
modelo de trabajo en remoto con unas lentes de esas características hostia mejora muchos puntos

01:02:21.220 --> 01:02:28.140
la productividad entonces claro hay que tener presente ese tipo de cambios ese tipo de cosas

01:02:28.140 --> 01:02:36.900
que pueden proporcionar algo muy especial pero desde luego si va a ser todo un reto que algo

01:02:36.900 --> 01:02:42.300
que no es práctico de por sí porque al final las lentes que va a sacar apple si hacemos caso a los

01:02:42.300 --> 01:02:48.940
rumores van a tener dos horas de autonomía y van a tener una petaca tipo max safe que se pegará en

01:02:48.940 --> 01:02:54.020
la parte de atrás para que yo pueda cambiar esa petaca antes de que se le acabe la pila al cacharro

01:02:54.020 --> 01:02:59.300
y poder seguir trabajando es decir que cada dos horas voy a tener que estar cambiando la batería

01:02:59.300 --> 01:03:04.700
para poder tener una experiencia de más tiempo no claro esta es la primera cuestión julio eso es

01:03:04.700 --> 01:03:10.700
cuestión de tiempo claro es un problema que es que es cuestión de tiempo que que se soluciona pero no

01:03:10.700 --> 01:03:18.420
es algo para sacar a la calle que es el principal problema entonces no lo sé yo creo que va a ser

01:03:18.420 --> 01:03:27.380
complicado vale a ver al final hasta nuestras madres padres usan teléfonos móviles vale mi

01:03:27.380 --> 01:03:37.260
suegra con más de 70 años va a comprar o a para tomar algo en un restaurante y come y tal y saca

01:03:37.260 --> 01:03:42.420
su móvil y paga con apple pay con su huella y es más feliz que nadie la la gente la mira como hoy

01:03:42.420 --> 01:03:49.380
de verdad maripili que está usando el móvil para pagar hoy que le ve y es que me han enseñado mis

01:03:49.380 --> 01:03:58.740
hijas se puede presumir el smartphone nos ha conseguido ser súper masivo incluso atraer a

01:03:58.740 --> 01:04:02.700
gente que no había tenido lo anterior que se supone que es un ordenador y eso gente que no

01:04:02.700 --> 01:04:08.740
había tenido pero es algo que por ejemplo los smartwatch no han conseguido no no con se están

01:04:08.740 --> 01:04:18.660
en la pirámide arriba de los smartphones y a mí me ha complicado pensar pero esto va a ser complicado

01:04:19.940 --> 01:04:24.980
como tú dices a ver mucha gente que va a entrar vale pero va a haber otra mucha que entonces claro

01:04:24.980 --> 01:04:32.300
esta herramienta que teóricamente permite una algo tan sencillo y que permitiría crear experiencias

01:04:32.300 --> 01:04:37.660
que cualquiera podría hacer sin necesidad de conocimiento de desarrollo con entornos 3d con

01:04:37.660 --> 01:04:44.620
objetos 3d con generar elementos que luego podamos usar en nuestras casas etcétera pues hombre a ver

01:04:44.620 --> 01:04:50.380
tú ves a google presentar como por ejemplo hace poco presenta music lm una inteligencia artificial

01:04:50.380 --> 01:04:57.740
capaz de generar música a partir de descripciones de texto la demo que pone que pone google es

01:04:57.740 --> 01:05:03.620
bastante impresionante pero luego no hay chicha detrás es decir no se puede probar la gran novedad

01:05:03.620 --> 01:05:10.500
de gpt3 es que nos dejaron probarla a ti a mí a quien quisiera igual que chat gpt entonces

01:05:10.500 --> 01:05:17.020
será mejor o peor pero por lo menos podemos probar y eso ha permitido que por ejemplo pues

01:05:17.020 --> 01:05:24.580
apareciera stable diffusion que es código abierto y eso ha permitido que pueda haber más soluciones

01:05:24.580 --> 01:05:29.820
que serán más o menos óptimas vale pero por lo menos la gente normal puede trabajar con ello

01:05:29.820 --> 01:05:37.820
pero apel hasta donde yo tengo entendido si ha funcionado ha trabajado en un sistema de creación

01:05:37.820 --> 01:05:47.020
de entornos 3d generativos vale apel es capaz de cuando te falta una parte de la habitación por

01:05:47.020 --> 01:05:54.060
ver dentro de las lentes de realidad aumentada en el modo pastrú es capaz de generar de forma

01:05:54.060 --> 01:06:00.660
automática con una red generativa lo que no ven esas lentes para presuponer cómo es el resto de

01:06:00.660 --> 01:06:06.900
la habitación de forma que si yo estoy en un pasillo y me aproximo a un salón y sólo se ve

01:06:06.900 --> 01:06:12.060
una parte del salón porque la puerta no permite que se vea nada más el sistema es capaz a través

01:06:12.060 --> 01:06:17.740
de una red generativa con lo que está viendo completar el total de ese salón para luego ir

01:06:17.740 --> 01:06:26.620
haciendo por por afinación el lo que es el propio entorno vale porque al final tú necesitas que las

01:06:26.620 --> 01:06:31.580
lentes vean todo el entorno donde estás para que lo generen si no llegan a ver una parte de la

01:06:31.580 --> 01:06:36.700
habitación tienen que ser capaces de completar dicha habitación de forma generativa para que

01:06:36.700 --> 01:06:41.460
tú puedas tener una buena experiencia aunque hay una parte concreta que no tú no hayas visto nunca

01:06:41.460 --> 01:06:47.700
y que cuando llegues ahí la parte esa de habitación que el sistema aún no ha visto ya esté pre generada

01:06:47.700 --> 01:06:54.340
tenga un ajuste mínimo y permita que la experiencia no se rompa porque por lo que sea como ese trozo

01:06:54.340 --> 01:07:02.540
no está no está generado no está escaneado no digamos pues lógicamente hay una parte en la que

01:07:02.540 --> 01:07:07.980
los elementos virtuales no se pueden mover vale entonces bueno pues en esa esa parte si la tiene

01:07:07.980 --> 01:07:14.860
publicada apple en su web de machine learning punto apple punto com pero el tema de una red

01:07:14.860 --> 01:07:22.420
generativa de objetos 3d ojo estamos hablando de el top del top del super top de lo que hoy

01:07:22.420 --> 01:07:32.340
día pueden hacer las inteligencias vale que es la generación de objetos 3d y aún así objetos 3d de

01:07:32.340 --> 01:07:38.420
aquella manera vale entonces que de pronto no salgan con esto a mí me parece cuanto menos

01:07:38.420 --> 01:07:44.260
curioso vale oye que me apunto vale pero como hemos dicho antes de entrar al programa le vamos

01:07:44.260 --> 01:07:49.900
a pedir a siri que no es capaz de encender una luz con el reloj o sea entiéndeme que le dice

01:07:49.900 --> 01:07:56.620
enciende la bombilla te dice no encuentro bombilla no sé qué es bombilla pero he encontrado esto en

01:07:56.620 --> 01:08:05.260
internet te va a ayudar a hacer un programa no sé en fin esto a ver es que me parece tan distinto

01:08:05.260 --> 01:08:11.540
esto sea esto como reto y ahora personalizando en apple me parece tan distinto a como fue el

01:08:11.540 --> 01:08:16.220
iphone porque esto de eso estaba hecho justo mi profesora de inglés me ha puesto esta mañana

01:08:16.220 --> 01:08:25.020
un vídeo de mark gorman contando lo de las gafas contando lo de las gafas no porque dice como

01:08:25.020 --> 01:08:29.780
siempre me estás hablando de estas cosas hoy me pasaron una noticia y tal en una página que solemos

01:08:29.780 --> 01:08:35.540
consultar para para eso para sacar temas de la conversación se le entiende bastante bien te lo

01:08:35.540 --> 01:08:43.460
digo por experiencia y hablaba de que de hecho le dije pues conozco a un tío que habló con él sí sí

01:08:45.460 --> 01:08:58.020
y decía decía que que más o sea llevaba más de mil personas trabajando durante siete años en esto

01:08:58.020 --> 01:09:05.180
y luego tenemos en otro lado que además hace poco también me he leído un no sé si era un libro o

01:09:05.180 --> 01:09:12.140
un artículo de sobre la creación del iphone que es que el iphone fue al revés fue dos años 10

01:09:12.140 --> 01:09:21.740
personas en una sala es tan distinto el reto que no sé si apple en este caso mira que confío en

01:09:21.740 --> 01:09:30.860
apple por para muchas cosas pero no sé si en este caso va a tener algo y o sea también confío en la

01:09:30.860 --> 01:09:35.900
parte de confío en apple en que si saca algo es porque lo tiene porque lo que comentamos bueno

01:09:35.900 --> 01:09:39.980
que no lo hemos comentado lo que comentan en muchos medios que hablan sobre apple lo del apple

01:09:39.980 --> 01:09:47.220
car vale apple no ha sacado el coche porque no ha dado con nada donde pueda imponerse a los demás

01:09:47.220 --> 01:09:53.220
porque según ellos pues siempre siempre se dice que apple va a sacar un producto donde tenga alguna

01:09:53.220 --> 01:10:00.540
ventaja si ellos si se ponen a generar un producto a intentar lanzar un producto y no tienen nada que

01:10:00.540 --> 01:10:06.860
le diferencie a la competencia no lo van a sacar de hecho es que bueno el apple car por si alguien

01:10:06.860 --> 01:10:14.060
se lo pregunta vale yo ya se lo confirmo el apple car una de sus principales conceptos a nivel de

01:10:14.060 --> 01:10:20.380
diseño es que sería el primer coche de producción masiva sin puesto de conductor

01:10:22.860 --> 01:10:28.340
claro a ver al final ellos tenían esa idea lo que pasa es que claro pues la conducción autónoma y

01:10:28.340 --> 01:10:33.580
bueno nos podríamos estar hablando horas tiene sus problemas todavía que además no están resueltos

01:10:33.580 --> 01:10:38.260
pues por eso es una de las empresas que tiene licencia en california para probar coches de

01:10:38.260 --> 01:10:43.340
conducción autónoma porque lo que apple te podría sacar un tesla o algo parecido antes la ya

01:10:43.340 --> 01:10:50.020
seguramente pero pero no no quieren por eso porque no quieren sacar luego podríamos debatir sobre que

01:10:50.020 --> 01:10:58.740
ciertos servicios de apple no tiene la calidad que se espera gira a la derecha no conozco derecha

01:10:58.740 --> 01:11:04.500
pero he encontrado esta página de internet y además me he tenido el otro día hablando con

01:11:04.500 --> 01:11:10.380
un amigo me tengo que tragar mis palabras porque siempre dije para qué apple se mete en televisión

01:11:10.380 --> 01:11:16.740
en general en general en hacer series y películas y tal y es al revés porque parece que tv plus la

01:11:16.740 --> 01:11:21.980
verdad yo se la estoy disfrutando como como un enano y me parece que sí que tiene más calidad

01:11:21.980 --> 01:11:28.940
media la calidad media de las producciones son muy buenas pero sí que es verdad comparado con

01:11:28.940 --> 01:11:34.820
netflix es como el día y la noche o sea es una cosa a veces cuando le sale algo bien es un poco

01:11:34.820 --> 01:11:40.740
como casualidad de pronto miércoles adams no es como o dios mío merlina para la gente que es de

01:11:40.740 --> 01:11:51.300
latinoamérica curioso se ha dado 200 cosas como es como samsung sacó 200 móviles y alguno tiene

01:11:51.300 --> 01:11:57.140
que ser el mejor en su en alguno tiene que ser el mejor en su sector el mejor hasta la fecha

01:11:59.700 --> 01:12:06.300
pero la cojo no quería hablar de los nuevos samsung que no sé qué tienen de nuevo si

01:12:06.300 --> 01:12:13.740
los nuevos samsung spider no que parecen como un en fin es pero ya no es sano sacará mismo pero

01:12:13.740 --> 01:12:20.420
eso es que no tienen nada más que ofrecer pero ni samsung ni apple ni nadie efectivamente entonces

01:12:21.580 --> 01:12:26.900
no sé todas las cosas que salen de realidad aumentada de y esto tiene un poco de las dos

01:12:26.900 --> 01:12:33.540
es para generar experiencias de realidad aumentada y por voz o sea tiene más in learning y realidad

01:12:33.540 --> 01:12:40.220
aumentada que son justo las cosas que se supone que están destinadas a ser la siguiente de next

01:12:40.220 --> 01:12:48.540
big thing que dicen pero que no lo sé que es que mira que quiero creer julio pero no soy

01:12:48.540 --> 01:12:53.900
guón tuve lista me cuesta me cuesta un montón esto como diría

01:12:53.900 --> 01:13:02.340
como diría tezla sonó el señalando arriba al cartel de billy pues lo mismo

01:13:03.500 --> 01:13:10.820
grandísima serie o sea fíjate lo buena que este lazo que estoy yo viendo una serie que

01:13:10.820 --> 01:13:20.660
es de fútbol o sea eso indica lo buena que este lazo mi mujer y yo ojo sea que eso tiene tiene

01:13:20.660 --> 01:13:28.940
tela apel tibia está llena de apel tibia plaza está llena de grandísimas series y de buenos

01:13:28.940 --> 01:13:30.220
productos pero efectivamente

01:13:34.740 --> 01:13:44.700
a ver yo personalmente personalmente creo que lo que apel presente nos va a romper

01:13:44.700 --> 01:13:56.100
cual elige la parte del cuerpo que tú quieras esa te la va a romper el cerebro el orto de todo

01:13:56.100 --> 01:14:03.620
lo que sea o sea yo creo que cuando salga vamos a decir what the fuck pero qué es esto pero que

01:14:03.620 --> 01:14:13.100
has hecho pero va a ser de verdad repito me puedo equivocar obviamente me puedo equivocar pero yo

01:14:13.100 --> 01:14:20.820
tengo la impresión de que igual que cuando este job salió e hizo así con el móvil y vimos el

01:14:20.820 --> 01:14:32.100
scroll inercial y dijimos qué brujería es ésta y dijimos este jobs debe ser de griffindorf hola

01:14:32.100 --> 01:14:42.740
skif bienvenido a hogwarts pues esto es un poco así vale entonces yo tengo las insisto es una

01:14:42.740 --> 01:14:50.500
intuición mía personal que no sé si es por intuición por ganas por ilusión por no lo sé

01:14:50.500 --> 01:15:01.260
pero tengo una como un algo que me dice que cuando apel presente esto vamos a decir hemos viajado al

01:15:01.260 --> 01:15:07.300
futuro y no nos hemos dado cuenta creo que apel va a presentar cosas que automáticamente nos van

01:15:07.300 --> 01:15:15.060
a ser no van a hacer pensar que nos están tomando el pelo que eso no es verdad y que eso no se puede

01:15:15.060 --> 01:15:21.940
hacer y cuando lo veamos cómo se hace vamos a decir pero qué puñetas es esto pero esto que

01:15:21.940 --> 01:15:29.260
ha pasado es un poco lo que lo que pasa con chat gpt no que la gente que realmente le saca habla

01:15:29.260 --> 01:15:36.580
con oliver vale yo cada vez que hablo con oliver está emocionado del uso de chat gpt y como tal

01:15:36.580 --> 01:15:42.900
y cómo funciona y cómo corrige cómo hace los resúmenes y tal y lo ves que está usando la

01:15:42.900 --> 01:15:47.940
herramienta de manera constante etcétera y está realmente emocionado porque dice es que a mí me

01:15:47.940 --> 01:15:53.820
dicen hace dos meses literal o tres meses que voy a ser capaz de sacar todo el trabajo que estoy

01:15:53.820 --> 01:16:00.460
sacando gracias a una inteligencia artificial y me río en tu cara o sea de pronto me veo en el futuro

01:16:00.460 --> 01:16:08.860
me veo pues eso tony stark diciendo jarvis ponme a ti no sé qué tal si ahora génerame el lazo de

01:16:08.860 --> 01:16:15.380
no sé qué tal y cual sí sí yo creo que ahora el núcleo el reactor stark ahora ya está perfectamente

01:16:15.380 --> 01:16:23.940
y tal pues en ese plan o sea entonces yo creo que vamos a ver algo que nos va a romper la cabeza

01:16:23.940 --> 01:16:33.780
directamente insisto es mi llámalo pues no lo sé a lo mejor es ilusión por lo que podemos llegar a

01:16:33.780 --> 01:16:41.220
ver pero yo creo que va a ser algo muy muy heavy que no estamos preparados para ver ya no esperamos

01:16:41.220 --> 01:16:46.260
vamos a ver ojalá tengas razón ahora se me ocurre y que lo presentará

01:16:49.620 --> 01:16:58.180
será el propio team cook y ya va a ser aumentada de este jobs con voz generada a través de una

01:16:58.180 --> 01:17:03.980
inteligencia generativa que va a reproducir la voz de este jobs no sé si es un poco creepy

01:17:03.980 --> 01:17:12.100
si se atreverá pero lo que coge lo presenta o sea y que nos va a ver eso nos pula la cabeza y coge

01:17:12.100 --> 01:17:17.180
y tira las gafas dice ellos que el mejor ya sabes que el mejor maestro de ceremonias que

01:17:17.180 --> 01:17:25.900
apel tiene ahora mismo ya sabemos tú y yo quién es el gran jefe de mí me mola mucho el de los

01:17:25.900 --> 01:17:30.900
apel silicon que por cierto en los últimos nos salió en la presentación de los m2 no ya no

01:17:30.900 --> 01:17:41.220
se juega yoni surugi si no hay ese tío se ese tío se merece se merece presentar las las apel

01:17:41.220 --> 01:17:47.260
glass se lo merece porque es el que mejor lo ha hecho en la última presentó john ternus que es

01:17:47.260 --> 01:17:56.140
el sbp de ingeniería de software de hardware perdón de hardware y bueno que es el de ingeniería de

01:17:56.140 --> 01:18:01.300
software ya sabemos que es que el federico entonces pues vamos yo un tío que es capaz de

01:18:01.300 --> 01:18:06.540
hacerse ahí un una animación de flash y luego a cámara lenta hacer así con el flequillo y tal

01:18:06.540 --> 01:18:11.100
y que se ríe de sí mismo y que se pone a hablarle a un memo y de una gallina y hacerle ahí

01:18:12.980 --> 01:18:20.100
con el chándal ese que salió en una presentación hostia verdad yo quiero ese chándal el chándal de

01:18:20.100 --> 01:18:29.180
suif de color así naranja hortera de eso yo lo quiero vaya gimnasio y eso que no voy a gimnasio

01:18:29.180 --> 01:18:37.140
pero lo quiero fue lo primero que dijimos cuando vimos el chándal todo dijimos yo quiero es

01:18:37.140 --> 01:18:46.180
que eso ves somos como somos de hecho yo por ejemplo tengo alguien por ahí en cupertino y

01:18:46.180 --> 01:18:53.940
la niña ya tiene un body he comprado directamente allí en la tienda de empleados de apple y también

01:18:53.940 --> 01:18:58.540
tengo pedido una camiseta para mí digo que es eso de regalar cosas de apelar a la niña y dejar a su

01:18:58.540 --> 01:19:05.460
padre sin nada pues sí pues una camiseta de suif o algo yo tengo camisetas de suif pero claro las

01:19:05.460 --> 01:19:12.460
hacemos nosotros para apple coding entonces pues en fin tenemos ahí esa opción pero la verdad que

01:19:12.460 --> 01:19:19.020
yo creo que puede ser puede ser algo algo interesante vale seguimos un poco vale por

01:19:19.020 --> 01:19:28.660
ir avanzando y y por ejemplo pues tenemos ya la primera versión estable del plugin de suif para

01:19:28.660 --> 01:19:38.140
visual studio code tenemos ahí esa versión 1.0.0 tú lo has estado probando pues la verdad es que

01:19:38.140 --> 01:19:45.020
la ha probado un poquito porque claro como sólo o la mayoría del trabajo que hago es en sistemas de

01:19:45.020 --> 01:19:52.260
apple pues estoy con con escudo a tope y aparte la parte está de las landas también la hago la hago

01:19:52.260 --> 01:20:01.980
en scott y pues es así de estudio code sí sí te genera el proyecto y bueno claro si es que tiene

01:20:01.980 --> 01:20:12.380
plugin se puede hacer lo que no se puede hacer es como es lo mejor de lo peor que están hechas en

01:20:12.380 --> 01:20:20.140
electrón si hay cosas que me chirrían un montón la interfaz los iconos es que abro es abro visual

01:20:20.140 --> 01:20:27.140
studio code y abro al lado es code y uno se parece a las ventanas que tengo en mac y otro no sé y

01:20:27.140 --> 01:20:33.540
visual studio con no se parece absolutamente a nada y eso me chirría eso sí están el electrónico lo

01:20:33.540 --> 01:20:40.300
queráis pero va muy bien es súper rápida súper completa y tú julio que me consta que sí que lo

01:20:40.300 --> 01:20:46.860
has estado probando a fondo podríamos decir que tiene muchas cosas mejor que el propio scott es

01:20:46.860 --> 01:20:52.900
más estable en cuanto al auto completado también tiene sus cositas y también se le va un poco la

01:20:52.900 --> 01:20:58.860
olla de vez en cuando y tal pero es algo más estable con el auto completado etcétera al final

01:20:58.860 --> 01:21:06.340
lo que apple pretende con este plugin de visual studio code es proporcionar un entorno de desarrollo

01:21:06.340 --> 01:21:13.740
integrado lo más parecido que puede ser un editor de texto para entornos linux vales es decir yo

01:21:13.740 --> 01:21:22.820
puedo montar un ubuntu por ejemplo centos y poder tener un entorno de escritorio y dentro de ese

01:21:22.820 --> 01:21:27.220
entorno de escritorio tener un editor que me permita trabajar directamente con swift que

01:21:27.220 --> 01:21:33.180
es capaz de encontrar el intérprete o sea el compilador de swift es capaz de conectar las

01:21:33.180 --> 01:21:40.900
tareas es capaz de realizar tareas básicas de build de run es capaz de hacer debug de una

01:21:40.900 --> 01:21:47.500
ejecución vale podemos ejecutar directamente de visual studio code y obtener las salidas de

01:21:47.500 --> 01:21:53.500
depuración e incluso crear breakpoints y que podamos ver el volcado en memoria etcétera etcétera todo

01:21:53.500 --> 01:22:00.220
eso con swift pues hombre se agradece bastante el poder acceder a la capa de low level debugger

01:22:00.220 --> 01:22:08.180
el ldb en fin pues al final que sí que en mac tenemos scott pero en linux o en windows no

01:22:08.180 --> 01:22:15.820
tenemos scott y entonces pues es una ayuda interesante y luego por mi parte se mezcla

01:22:15.820 --> 01:22:24.780
con que yo si estoy pagando el plugin de github copilot el plugin de inteligencia artificial y

01:22:24.780 --> 01:22:29.140
entonces bueno pues ese plugin me ayuda en los proyectos que estoy haciendo como por ejemplo el

01:22:29.140 --> 01:22:35.940
que estoy haciendo ahora de vapor donde no siempre acierta en el autocompletado pero por lo menos es

01:22:35.940 --> 01:22:42.780
una ayuda que te evita tener que ir a la documentación para recordar cómo se hacía un sibling o cómo se

01:22:42.780 --> 01:22:48.860
hacía una consulta a través de un sibling o cómo se cargaba una tach a través de la propia relación

01:22:48.860 --> 01:22:55.020
cuando quieres unir en la relación en a n a partir de uno de los puntos de entrada de la propia

01:22:55.020 --> 01:23:01.020
relación en fin que son cosas que requieren una implementación muy precisa y que pues normalmente

01:23:01.020 --> 01:23:07.860
lo que haces es ir a buscarlas a la documentación y con github copilot pues te ahorras esa parte

01:23:07.860 --> 01:23:13.420
porque él ya te crea la estructura de inicio y luego ya pues simplemente si se ha equivocado en

01:23:13.420 --> 01:23:18.540
alguna parte algún nombre de variable alguna cosa puntual pues lo puedes cambiar o lo que es la

01:23:18.540 --> 01:23:24.340
propia estructura pero en principio pues la verdad que funciona bastante bien en ese sentido o sea

01:23:24.340 --> 01:23:34.220
que yo os invito a probar visual studio code y a instalar este plugin de lo que es swift que es el

01:23:34.220 --> 01:23:40.780
plugin oficial que ya está en la versión 1.0.0 y que bueno pues te va a permitir coger todo lo

01:23:40.780 --> 01:23:48.980
necesario para que pues puedas trabajar a ese respecto. A ver lo bueno de visual studio code

01:23:48.980 --> 01:23:57.500
que tiene esta opción de los plugins y a mí por ejemplo me salvó una vez la vida pues estaba

01:23:57.500 --> 01:24:06.340
colaborando en un backend en node.js no lo sé ahora mismo no sé bien qué es framework que es tal

01:24:06.340 --> 01:24:12.060
ahí me pierdo un poco entonces yo tenía que hacer algunas partes y retocar y pequeños cambios porque

01:24:12.060 --> 01:24:17.780
yo estaba haciendo las aplicaciones pero bueno también la pila tocábamos entre todos y me

01:24:17.780 --> 01:24:22.380
bajé un plugin y con ese plugin directamente configuradas cuatro cosas y podías correrla

01:24:22.380 --> 01:24:29.380
al local sin tener que instalarte que si con dock en una máquina y otro por cientas cosas simplemente

01:24:29.380 --> 01:24:36.340
era poner un plugin y ya está te decía que añades a tu proyecto un ficherillo de configuración con

01:24:36.340 --> 01:24:42.420
cuatro cosas y ya está ya tenías ese plugin luego también utilice plugins que ahora creo que ya está

01:24:42.420 --> 01:24:49.980
ya está metido en el propio editor para markdown cuando hacía documentación con markdown pues para

01:24:49.980 --> 01:24:57.540
ver en tiempo real para que me sugiriese el auto completado y bueno una serie de vitaminar digamos

01:24:57.540 --> 01:25:04.500
el editor de markdown pues también también lo tenía y luego también lo uso mucho para visualizar

01:25:04.500 --> 01:25:12.340
json porque bueno seleccionas que es un json y le das a formatear y te lo formatea bonito y es que

01:25:12.340 --> 01:25:19.100
si os ponéis a buscar hay pero una pila de plugins enorme que seguro que algo que hacéis como esto

01:25:19.100 --> 01:25:26.940
que os cuento de dejar bonito un json pues antes ibas a hay una web que se llamaba json

01:25:26.940 --> 01:25:33.220
parser.fr creo que era francesa que yo la estoy utilizando mucho tiempo eso que te descomponía

01:25:33.220 --> 01:25:39.340
bueno te lo ponía te lo ponía bonito y eso pues la verdad es que visual studio code tiene un

01:25:39.340 --> 01:25:44.700
montón además eso tiene una comunidad muy grande si utilizáis determinados frameworks seguro que

01:25:44.700 --> 01:25:51.780
tenéis plugin para para esos framework y os puede ayudar así que yo me voy a aplicar el cuento yo

01:25:51.780 --> 01:25:58.460
julio y si me pongo y tengo que investigar a ver si puedo crear el entorno de desarrollo para estas

01:25:58.460 --> 01:26:07.060
landas porque un editor de código aparte de lo que comentas del autocompletado y bueno de la

01:26:07.060 --> 01:26:13.700
facilidad a la hora de escribir y de las sugerencias también el entorno de desarrollo el poder con un

01:26:13.700 --> 01:26:19.180
botón como hacemos en scope con un botón corro la aplicación vale tengo diferentes puedo generar

01:26:19.180 --> 01:26:26.980
diferentes configuraciones rápido para para entorno de pruebas y bueno una serie de flags

01:26:26.980 --> 01:26:33.980
puede hacer muchas cosas porque también eso es tiempo que te ahorras porque si queréis nos

01:26:33.980 --> 01:26:39.700
remontamos a los sistemas que había que había antes a mí me pasó de coger cambiar una línea

01:26:39.700 --> 01:26:47.060
de código tener que mandar ese fichero a un cacharro y en ese cacharro arrancarlo de cero

01:26:47.060 --> 01:26:53.300
y que a lo mejor tardaba en comprobar lo que así si una línea de código estaba bien o mal pues cinco

01:26:53.300 --> 01:27:02.460
minutos y eso claro si lo tengo que hacer no sé al final te eternizas a veces nos parece que hacer

01:27:02.460 --> 01:27:11.620
com and r para ejecutar aplicación la aplicación en iphone en scope es un coñazo pero es que de

01:27:11.620 --> 01:27:16.460
lo que venimos entonces la importancia también de estos ideas ya no es sólo la parte de escribir

01:27:16.460 --> 01:27:22.820
código sino es crearte un entorno de desarrollo en el que puedas cambiar una línea del código y en

01:27:22.820 --> 01:27:29.500
dos mil y bueno en 10 segundos tener la aplicación ejecutada y ver si ese cambio hace lo que tú

01:27:29.500 --> 01:27:39.100
esperas es decir que nos digamos que antes utilizaban windows notepad plus plus que era

01:27:39.100 --> 01:27:47.300
yo creo que es de los primeros que editores que había que sólo editaba o sea olvídate de darle

01:27:47.300 --> 01:27:52.460
a un botoncito y que te arrancase nada porque porque no lo había pero bueno tenía ciertas

01:27:52.460 --> 01:27:58.420
ayudas y pero eso era un editor al uso un editor de código un editor de texto al final que utilizadas

01:27:58.420 --> 01:28:03.580
para código pero ahora mismo tanto como hemos hablado de scout como visual studio code son

01:28:03.580 --> 01:28:11.700
ids completos en los que puedes generarte un entorno de desarrollo pues sí la verdad que

01:28:11.700 --> 01:28:19.580
pues yo fíjate el notepad plus plus también lo usé en su día curioso a lo mejor que había

01:28:19.580 --> 01:28:28.380
ahora como editor de texto en el en el mac el que uso es el es el sublime sublime text que la verdad

01:28:28.380 --> 01:28:33.380
que va bastante bien pero lo bueno que tienes que tiene un montón de plugins tiene un montón

01:28:33.380 --> 01:28:38.740
de hecho es con lo que he trabajado por ejemplo con los jasons vale cuando quiero hacer un un

01:28:38.740 --> 01:28:45.660
pretty file y poner bonito el jason pues hay un plugin que te lo hace también directamente de

01:28:45.660 --> 01:28:53.020
hecho tiene también plugin para ponerle colorines a los ficheros en su y entender lo que son y tal

01:28:54.620 --> 01:29:00.980
bueno ojo que es que hoy estamos de historietas que trabajo con un chico de hecho yo creo que

01:29:00.980 --> 01:29:08.220
no nos escucha pero si no escuchas a mí un saludo a llamar café cebolleta su y que utilizaba el de

01:29:08.220 --> 01:29:14.860
hecho habrá gente que ni lo conozca el famoso bv y que es el editor de texto que venía con las

01:29:14.860 --> 01:29:23.780
distribuciones de digamos por defecto hoy pues luego salía un bim que era este como vitaminado

01:29:23.780 --> 01:29:29.820
al que le podías poner plugins y poner un montón de cosas y este tío era se encargaba del baquet

01:29:29.820 --> 01:29:40.020
en php a luci nas como pero usaba bien que yo pero tú sabes que es code se puede poner con

01:29:40.020 --> 01:29:46.420
los atajos de teclado de bim sí sí sí a ver es la clave que tenía que tú con atajos de teclado te

01:29:46.420 --> 01:29:53.460
sitúas antes o después añada inserta a ver la verdad es que tenía yo es que ahora cuando hago

01:29:53.460 --> 01:29:57.660
algo de yo que sé pues cuando estoy con la raspberry o cosas así en terminal de comandos

01:29:57.660 --> 01:30:05.700
uso el nano que era algo más es menos potente y tiene menos menos magias menos hechizos pero

01:30:05.700 --> 01:30:10.740
es mucho más sencillo de mucho más sencillo de entender yo en la raspberry el que suelo a ver

01:30:10.740 --> 01:30:20.820
he usado nano he usado bim pero al final en la época volvemos de nuevo en la época de oracle

01:30:20.820 --> 01:30:29.380
tuve que hacer muchísimas instalaciones de hp wiki del unix de hp que ya no existe de solaris

01:30:29.380 --> 01:30:37.220
de sistemas unix de todo tipo y tal y claro al final editar un fichero de texto editar un tal

01:30:37.220 --> 01:30:44.500
era esencial entonces yo me terminé acostumbrando a los atajos de b y hoy día entro con la raspberry

01:30:44.500 --> 01:30:54.180
pi y uso b y pongo una máquina en digital ocean y uso b para poder hacer los textos porque había

01:30:54.180 --> 01:31:01.980
acostumbrado perfectamente al atajo del insert de la doble de para borrar el 2.1 claro es que eso

01:31:01.980 --> 01:31:10.900
eso es lo que te explota la cabeza para borrar no se da con el elite el botón que borra siempre

01:31:10.900 --> 01:31:16.780
texto no no no no no hay que dar dos veces a la de sí entonces te va a hacer un borrado de línea

01:31:18.060 --> 01:31:22.860
y luego que tengas el modo edición y el modo moverte por el texto obviamente bueno eso es

01:31:22.860 --> 01:31:27.980
claro es que esto es claro es línea de comando no tienes un ratón para ir cambiando el cursor

01:31:27.980 --> 01:31:33.340
a otro sitio sino que tienes que estar moviendo por el texto con las flechitas pero yo me

01:31:33.340 --> 01:31:40.660
acostumbraba a eso igual que también me acostumbrado en el mac a usar el ítem en vez del terminal

01:31:40.660 --> 01:31:50.620
normal y la verdad que no tengo ningún problema a ese respecto de hecho ese puntito de la línea

01:31:50.620 --> 01:31:59.940
de comando así tal a mí me mola me mola el hacer cosas por línea de comando y no sé es

01:31:59.940 --> 01:32:09.940
una cosa un poco más me hace sentir que soy más experto a ver yo de hecho hace justo antes de

01:32:09.940 --> 01:32:16.780
navidades compré una raspberry porque tenía tenía corredores de suerte porque está la cosa

01:32:16.780 --> 01:32:24.820
complica ahora claro de segunda mano de segunda mano pues cuando me deshice del mac studio tenía

01:32:24.820 --> 01:32:29.660
ahí varios servidores corriendo y ahora como iba con un portátil pues no era plan de tener el

01:32:29.660 --> 01:32:38.300
portátil con ahí con servidores y entonces pues claro tuve que pasar esos servidores a otro sitio

01:32:38.300 --> 01:32:43.900
y la verdad es que me sí que me divertí bastante por levantar es que además ahora se pueden hacer

01:32:43.900 --> 01:32:51.900
una cantidad de cosas con con la raspberry incluso con swift sí sí sí con su hijo yo tengo montado

01:32:51.900 --> 01:32:59.820
en la raspberry es una raspberry pi 4b con 4 gigas de ram y tiene montado pues eso swift tiene

01:32:59.820 --> 01:33:05.300
dos instancias de vapor que están corriendo a la vez en distintos puertos tiene una base de datos

01:33:05.300 --> 01:33:18.140
por sql tiene una instancia de de cómo se llama esto de redis de lo que es la caché pues de que

01:33:18.140 --> 01:33:24.700
básicamente lo utilizo para para works para para para jobs de servidor no que se programan y se

01:33:24.700 --> 01:33:32.220
van lanzando de con determinado tipo tiene una instalación de jenkins que hace de integración

01:33:32.220 --> 01:33:37.900
continua de forma que está conectado con github y cuando subo el proyecto directamente lo descarga

01:33:37.900 --> 01:33:46.100
lo compila reinicia el servidor tiene montado supervisor stl para poder hacer el control de

01:33:46.100 --> 01:33:53.420
los servicios de las aplicaciones de vapor y que se ejecuten cuando se arranca el de este y

01:33:53.420 --> 01:34:02.660
normalmente no pasa del 20 30 por ciento de uso de cpu se ha contado lo que pasó con jenkins menos

01:34:02.660 --> 01:34:10.220
mal que salió es code cloud porque tenía montada una integración de dos aplicaciones pero bueno

01:34:10.220 --> 01:34:18.300
con tres entornos distintos cada aplicación un jenkins pero además no con plugins para que los

01:34:18.300 --> 01:34:25.860
plugins son para cobardes tenía me tenía hecho un script con su línea de comandos de scope build

01:34:25.860 --> 01:34:32.020
un montón de o sea para hacer el archive hacía absolutamente todo luego también ejecutaba pues

01:34:32.020 --> 01:34:41.620
esto de subir los símbolos a subir los símbolos de firebase para craslitics incluso tenía un

01:34:41.620 --> 01:34:49.420
ejecutaba en esa integración continua un script bueno no escribiendo un programa de swift que

01:34:49.420 --> 01:34:57.140
preguntaba al app store si ya estaba procesado el binario porque así se quedaba esperando y

01:34:57.140 --> 01:35:06.540
comunicaba en canales de slack que ya estaba disponible para pruebas o sea que tenía tela pues

01:35:06.540 --> 01:35:14.420
de repente el ordenador donde estaba corriendo se murió y alguien muy listo no tenía ninguna

01:35:14.420 --> 01:35:22.100
copia de seguridad madre mía madre mía en mi vida y esas cosas de hecho me dio tanta pereza

01:35:22.100 --> 01:35:28.300
luego volver a hacerlo todo lo que tenía montado que esperé hasta que me dejasen entrar en scout

01:35:28.300 --> 01:35:35.140
cloud que además justo en la empresa en la cuenta de la empresa fue la de las otras estaba como en

01:35:35.140 --> 01:35:42.500
tres o cuatro cuentas distintas de apelides o sea cuentas de desarrollador de apple y en todas me

01:35:42.500 --> 01:35:47.580
habían dicho ok a entrar en la beta menos en la de la empresa que era la que necesitaba para

01:35:47.580 --> 01:36:00.340
para generar esta esta integración continua madre mía estamos ya si quieres hilamos y ya

01:36:00.340 --> 01:36:07.580
el jueves no julio cada día avanzamos menos en logramos avanzar menos el río si vamos a hacer

01:36:07.580 --> 01:36:12.260
un récord en el que sólo nos contemos lo que hemos hecho y ya sí yo creo que este paso pero

01:36:12.260 --> 01:36:20.380
bueno a lo mejor así conseguimos grabar con más con más frecuencia pues no te estaba diciendo que

01:36:20.380 --> 01:36:26.900
el que la noticia del plug inestable para visual studio code la dio nuestro amigo team condom

01:36:26.900 --> 01:36:32.340
vale que es uno de los integrantes del proyecto suite del proyecto de vapor de hecho yo creo que

01:36:32.340 --> 01:36:39.540
fue el creador de vapor no pues la verdad es que no lo sé sé que es uno de los ingenieros que más

01:36:39.540 --> 01:36:46.580
ha tocado de hecho toda la conversión de asina weight la ha hecho él principalmente más de todo

01:36:46.580 --> 01:36:53.380
lo que es el transformar vapor para que soporte asina weight y tal o con la ayuda de la comunidad

01:36:53.380 --> 01:37:01.420
pero digamos que el proceso más complejo lo hizo él y la verdad que trabajó excelente de hecho

01:37:01.420 --> 01:37:11.980
ahora mismo team condom forma parte de él del suite service world group del ss wg antes trabajaba

01:37:11.980 --> 01:37:18.140
ahora ya no como responsable en raivenderlik.com ahora codeco que sabemos que ha cambiado de

01:37:18.140 --> 01:37:23.860
nombre lo que era raivenderlik que ahora se ha cambiado de nombre a nivel corporativo él era

01:37:23.860 --> 01:37:30.260
el responsable editorial de la parte de suite de lado servidor de los tutoriales etcétera dejó eso

01:37:30.260 --> 01:37:38.460
y ahora está encargado de la parte como digo de junto con ingenieros de apple de llevar el tema

01:37:38.460 --> 01:37:43.540
del grupo de trabajo para suite de lado servidor vale y bueno pues la verdad que está haciendo un

01:37:43.540 --> 01:37:50.740
trabajo totalmente encomiable de hecho tiene es el responsable de la de la conferencia donde se

01:37:50.740 --> 01:37:58.220
anunció el tema de la apertura de código de la librería foundation vale es una conferencia que

01:37:58.220 --> 01:38:03.180
se desarrolla en londres en el que estuvo también ted kremenek el principal responsable de swift

01:38:04.100 --> 01:38:11.060
y que es la swift server conf si no recuerdo mal o conference o algo así que la organiza él con

01:38:11.060 --> 01:38:17.580
sus patrocinadores y tal y cual y que es una conferencia 100% swift de lado servidor con

01:38:17.580 --> 01:38:24.500
todas las soluciones que incluso al final consiguió invitar a la persona responsable

01:38:24.500 --> 01:38:32.900
del proyecto de los lambdas que se encargan de los aws lambdas de swift que se encargan de que

01:38:32.900 --> 01:38:38.620
cuando tú eliges una peli en amazon prime video busque el servidor de cdn donde servirte la

01:38:38.620 --> 01:38:46.380
película y te la envíe si efectivamente pues este el bueno de team a tratarle de tú a tú

01:38:46.380 --> 01:38:54.020
ha creado una una página web que si no me equivoco se llama tres subes dobles punto

01:38:54.020 --> 01:39:02.100
argüis server jet punto org vale donde ha recopilado todos los paquetes librerías y

01:39:02.100 --> 01:39:08.940
frameworks del lado servidor para swift que hay actualmente y así bueno pues por comentar unos

01:39:08.940 --> 01:39:14.580
pocos bueno primero habla de que los grandes fringos son vapor y habla de otro tal smoke

01:39:14.580 --> 01:39:22.460
que yo la verdad que quiero lo probado es el de amazon ok pues no habla de esos dos

01:39:22.460 --> 01:39:27.500
como grandes sistemas con los que puedes crear digamos el backend entero y luego ya nos habla

01:39:27.500 --> 01:39:32.620
pues empieza por las bases de datos nos dice fluent que es bueno tú seguro que lo has utilizado en va

01:39:32.620 --> 01:39:40.700
porque es la manera de conectarte con bases de datos otro tal mongo mongo quiten que para mongo

01:39:40.700 --> 01:39:47.340
db luego también drivers nativos de la propia mongo db de secular y de postres de mysql también

01:39:47.340 --> 01:39:53.540
tenemos de hecho el de mongo db oficial lo estaba usando yo y luego a raíz de esta noticia vi el

01:39:53.540 --> 01:39:59.300
mongo kit en este que es bastante mejor que no puede salir nada de algo que se llama mongo lo

01:39:59.300 --> 01:40:09.300
siento en el alma ya no lo pensaron muy bien también hay integraciones con digamos con

01:40:09.300 --> 01:40:18.600
servicios de terceros como soto de aws de hecho la librería soto yo la he utilizado para llamar

01:40:18.600 --> 01:40:24.340
al s3 de amazon vale digamos el servicio de almacenamiento de amazon puedes llamarle para

01:40:24.340 --> 01:40:29.300
google cloud también para redis que lo has comentado tú antes para el asti search que

01:40:29.300 --> 01:40:38.880
es creo que también es de aws perdón y sistemas casandra luego también luego también nos habla

01:40:38.880 --> 01:40:47.420
de algunos paquetes pues para login para autenticación generación de templates no me

01:40:47.420 --> 01:40:54.340
sale la plantilla de la palabra en español como live que digamos que es la librería oficial para

01:40:54.340 --> 01:41:01.300
generar html de vapor o plot que es con la que yo hago mi página web del gran john sundale y

01:41:01.300 --> 01:41:08.420
job que use pues para crear que use de trabajo en los backends y nada pues es como una página web

01:41:08.420 --> 01:41:15.380
que nos cuenta un poco como el estado bueno el estado no los framework y los recursos disponibles

01:41:15.380 --> 01:41:22.140
de suite de lado servidor además creado por él que probablemente sea la persona que más sepa

01:41:22.140 --> 01:41:31.020
de suite de lado servidor en el mundo y promete que lo que lo va a tener actualizado y nada lo

01:41:31.020 --> 01:41:37.380
dejamos como como recurso luego además justo abajo del todo también nos dice cómo empezar el

01:41:37.380 --> 01:41:44.500
getting started de toda la vida que nos dice por los recursos tanto de la wdc de codeco que lo ha

01:41:44.500 --> 01:41:52.100
comentado antes julio de la parte de vapor y vamos a algunos sitios por donde donde empezar si te

01:41:52.100 --> 01:41:57.540
quieres iniciar entonces siempre lo recomendamos pero bueno aprovechamos esta esta vez ya para

01:41:57.540 --> 01:42:05.940
saber dónde dónde tenéis que ir se llama tres subes dobles argwiserverjet.org vale y ahí el

01:42:05.940 --> 01:42:11.740
el bueno de team como decíamos antes tiene un montón de recursos pues eso se ha picado el

01:42:11.740 --> 01:42:17.620
gusanillo que esperamos que sí o ya tenéis por dónde empezar no digáis que nos decimos dónde

01:42:17.620 --> 01:42:22.300
ir de hecho una de las partes que comenta porque curiosamente hoy me lo ha preguntado un alumno

01:42:22.300 --> 01:42:30.420
del bootcamp si vapor soportaba o si suite de lado servidor soportaba web assembly y pues lo

01:42:30.420 --> 01:42:36.100
que pone aquí es que sí que soporta web assembly que hay varias varios proyectos que trabajan con

01:42:36.100 --> 01:42:44.100
ello y varias librerías y además hace referencia a una librería que se llama tocamac que ojo es

01:42:44.100 --> 01:42:51.860
una librería es un framework compatible con swift ui para construir aplicaciones a través del navegador

01:42:51.860 --> 01:43:03.140
con web assembly y de hecho tienes aquí código que efectivamente swift ui y lo que hace básicamente

01:43:03.140 --> 01:43:12.060
es generar pues eso a través de web assembly páginas web portales web donde puedes inyectar

01:43:12.060 --> 01:43:20.180
código dinámico html código estático javascript y luego pues partes de la nomenclatura swift ui

01:43:20.180 --> 01:43:26.100
se llama tocamac la librería o sea que lo que pasa que esto me refiero o sea porque estoy viendo

01:43:26.100 --> 01:43:31.340
que utiliza por ejemplo el protocolo view me imagino que es un view que han creado ellos

01:43:31.340 --> 01:43:36.580
a la manera de de su joy porque funciona un poco de hecho en la librería está de plot de johnson

01:43:36.580 --> 01:43:42.020
dell empezó no siendo así pero luego con la salida de su joy pues se le ocurrió y hay otras parecidas

01:43:43.940 --> 01:43:51.180
que son que son con esa sintaxis vamos que parecida a su joy porque también en su día

01:43:51.180 --> 01:43:58.740
cuando salió el propio el propio su joy claro se habló de que no debería de ser tan difícil

01:43:58.740 --> 01:44:06.900
conseguir que con que la librería su joy la pudiese se enganchar a drivers le llamaríamos

01:44:06.900 --> 01:44:13.260
o otras librerías otros paquetes otros renders básicamente es precisamente porque ahora mismo

01:44:13.260 --> 01:44:21.260
digamos que el su joy tiene el render para sistemas de apple pero ese ren se podría hacer

01:44:21.260 --> 01:44:27.980
o escribir sólo una parte del render pero claro ahí está uno de los problemas que yo que te ha

01:44:27.980 --> 01:44:37.020
salido a colación en este podcast habría que hacer su joy de código abierto o ahí ya me pierdo

01:44:37.020 --> 01:44:45.780
o a lo mejor con una parte quizás valdría pero no es que es la parte aparte funciona todavía cada

01:44:45.780 --> 01:44:51.420
vez menos julio pero funciona también con joy kit con lo cual entiendo que hasta que no se despegue

01:44:51.420 --> 01:44:56.660
es lo mismo que pasó con su y y objetice de hecho el otro día os contamos que la librería de

01:44:56.660 --> 01:45:01.100
fundación precisamente se quiere separar totalmente porque uno de los problemas que

01:45:01.100 --> 01:45:07.460
tienes que seguía teniendo muchas partes de los ytc pero su joy uno de los problemas que tienes

01:45:07.460 --> 01:45:12.300
que sigue enganchando muchas veces con joy kit con lo cual lo primero que tiene que hay que hacer

01:45:12.300 --> 01:45:19.660
es separar ambas partes y que sea su joy más un render por medio ese es el kit de la cuestión es

01:45:19.660 --> 01:45:24.700
que su joy y yo lo comento en mis formaciones su joy es estructura de código cuando lo digo

01:45:24.700 --> 01:45:31.620
la gente dice como estructura claro su joy es una serie de clases que generan una estructura

01:45:31.620 --> 01:45:37.060
en este caso una serie de struts pero son una serie de struts que generan una estructura vale

01:45:37.060 --> 01:45:45.140
entonces si yo separo esa estructura y lo que obtengo es una serie de órdenes si eso lo engancho

01:45:45.140 --> 01:45:52.100
a un render puedo conseguir cualquier cosa entonces ahí es donde está la diferencia es decir la capa

01:45:52.100 --> 01:46:00.020
de renderizado apel no la va a liberar pero la estructura del propio suite y hoy ya no creo

01:46:00.020 --> 01:46:04.100
incluso ni siquiera que haga falta que apel la libere porque yo creo que cualquiera que sepa

01:46:04.100 --> 01:46:10.540
cómo funciona la librería podría directamente crear él pero bueno que estaría bien que apel

01:46:10.540 --> 01:46:16.780
pudiera liberar esa parte pero fíjate lo que pasó con combine cuando apel sacó combine nosotros vimos

01:46:16.780 --> 01:46:24.140
clarísimamente que combine venía a cubrir una parte muy importante de una buena API de asincronía

01:46:24.140 --> 01:46:32.140
para para entornos apel yo fui el primero que dijo oye apel debería de liberar combine para que sea

01:46:32.140 --> 01:46:38.660
una librería de código abierto porque no hay una API de asincronía buena en swift y efectivamente

01:46:38.660 --> 01:46:44.420
lo que hizo fue pues no liberar combine sino hacer async await es decir crear una API de

01:46:44.420 --> 01:46:50.780
concurrencia y asincronía que formara parte del propio lenguaje entonces es que estaría muy bien

01:46:50.780 --> 01:46:56.900
porque si al final tienes una API que te permita lo que es la estructura de SwiftUI eso aplicado

01:46:56.900 --> 01:47:02.060
a cualquier tipo de API de construcción de aplicaciones te permitiría hacer aplicaciones

01:47:02.060 --> 01:47:09.060
para linux para windows para android para lo que quisieras hacer pero claro obviamente todo eso

01:47:09.060 --> 01:47:14.940
requiere de mucho trabajo de ingeniería de librerías y de frameworks y tal que pues en

01:47:14.940 --> 01:47:21.900
fin no creo que todo el mundo esté dispuesto a hacerlo. A ver, la que utiliza es la de plot de

01:47:21.900 --> 01:47:30.740
johnson delft, tiene el código liberado de hecho y puedes ver un poco cómo funciona y cómo es capaz

01:47:30.740 --> 01:47:38.020
de renderizar hizo no sé si la liberó o hay un plugin o alguien lo intentó hacer esa parte de

01:47:38.020 --> 01:47:46.700
css vale pero bueno ya se les está complicando un poco pero claro es una un html que no es animado

01:47:46.700 --> 01:47:54.260
vale si luego nos metemos ahí por ahí que un día me puse a rebuscar gente intentando mejorar

01:47:54.260 --> 01:47:59.300
este tipo de librerías creo que no partían de la de johnson delft partían de otra intentando hacer

01:47:59.300 --> 01:48:03.940
pequeñas animaciones que lo que hacen es generar javascript por detrás o renderizar javascript

01:48:03.940 --> 01:48:12.700
vale para hacer dinámico el propio código pero claro es muy complicado pero como decíamos la base

01:48:12.700 --> 01:48:20.580
de su UI ya la tenemos entonces no sé hasta dónde, también es lo de siempre o sea por poder se

01:48:20.580 --> 01:48:26.060
puede vale pero hay que querer o sea apple tiene que querer y lo que yo creo que lo primero que

01:48:26.060 --> 01:48:32.980
quiere hacer apple también por su propio interés es quitar la parte de UIKit cada vez cada vez que

01:48:32.980 --> 01:48:39.500
van vamos avanzando va quitando van quitando componentes de UIKit y haciéndolos que enganchen

01:48:39.500 --> 01:48:45.700
directamente con el render en su UI sin pasar por UIKit pero bueno van poco a poco si de hecho

01:48:45.700 --> 01:48:53.500
si queréis hacer la prueba por por curiosidad en s-code mirar pausar la aplicación que tengáis

01:48:53.500 --> 01:48:58.900
y mirar en la jerarquía de vistas y ahí veréis que la mayoría de veces os encontráis con componentes

01:48:58.900 --> 01:49:06.260
que se llaman UI algo que significa que vienen de UIKit bueno y aparte que hay cosas componentes

01:49:06.260 --> 01:49:13.540
básicos que todavía no los hay en su UI sino que tienes que hacer un wrapper por cierto julio en

01:49:13.540 --> 01:49:23.260
ARKit si empiezas un proyecto lo haces con su UI pero tienes un UIViewControlRepresentable

01:49:23.260 --> 01:49:33.580
de la escena vale porque la escena está solo en UIKit pero ya te viene escrito bueno poco a poco

01:49:33.580 --> 01:49:54.340
en fin pues yo creo que al final no sé hemos tocado un montón de temas distintos y puede

01:49:54.340 --> 01:49:59.820
ser interesante así que creo que al final ha quedado un programa curioso espero que os haya

01:49:59.820 --> 01:50:07.260
gustado vale entonces bueno pues a ver si ya estas horas ya tengo que ir cerrando porque

01:50:07.260 --> 01:50:16.220
mañana me toca día intenso y ya habiendo comenzado el bootcamp tengo que ir poco a poco y ya estoy

01:50:16.220 --> 01:50:26.540
mayor para estas cosas así que pues nada muchísimas gracias a todos por pasaros por aquí y nada y como

01:50:26.540 --> 01:50:33.620
siempre pues podéis encontrarme en redes sociales como jcfmunoz o en cuonda el resto de podcast a

01:50:33.620 --> 01:50:40.860
parte de este de cafe swift también en youtube.com barra arroba apple coding igual que este podcast

01:50:40.860 --> 01:50:45.900
está colgado en youtube.com barra arroba apple coding academy por lo tanto pues no olvidéis

01:50:45.900 --> 01:50:50.940
suscribiros un like etcétera o si estáis en el podcast pues dejarnos algún comentario lo que

01:50:50.940 --> 01:50:59.580
sea porque siempre nos gusta bastante escucharlo y nada pues muchas gracias como siempre hoy hemos

01:50:59.580 --> 01:51:04.700
aprovechado para contaros historias de abuelos cebolleta porque aparte esto es como un sitio

01:51:04.700 --> 01:51:09.900
donde venimos julio y yo a descensar y a contar los problemas y las cosas malas y las cosas buenas

01:51:09.900 --> 01:51:16.260
que nos pasan en el día a día porque nos estamos todo el rato escribiendo pero la mayoría de las

01:51:16.260 --> 01:51:22.020
veces no tenemos tiempo para sentarnos con un café no porque son normalmente solemos grabar

01:51:22.020 --> 01:51:27.100
altas horas pero pero bueno yo creo que es interesante al final lo que buscamos en este

01:51:27.100 --> 01:51:33.540
podcast contar historias del día a día más que ponernos a enumerar cosas de características del

01:51:33.540 --> 01:51:41.060
lenguaje a mí podéis encontrarme en www.arturoribas.com ahí está mi página web toda la información suelo

01:51:41.060 --> 01:51:47.100
estar bastante activo en twitter como arturo ribas a también ahora en más todo como arroba

01:51:47.100 --> 01:51:52.980
arturo ribas a arroba más todo un punto cloud elegido ese servidor no me preguntéis por qué

01:51:52.980 --> 01:51:59.820
y también en mi otro podcast que grabo con con un par de amigos sobre tecnología más

01:52:01.100 --> 01:52:09.860
más más usuarios más de la presencia del usuario que se llama vidas digitales pues yo también estoy

01:52:09.860 --> 01:52:17.460
en más todo donde al final nuestro amigo pero aznar me dijo oye qué tal que no sé qué

01:52:17.460 --> 01:52:23.180
bueno que esto como a pedro se lo he oído esta última semana en todos los sitios donde ha aparecido

01:52:23.180 --> 01:52:30.980
ha comentado lo demás todo sí pues me mandó a mí la información de cómo funcionaba tal no sé

01:52:30.980 --> 01:52:36.220
cuánta al final me he sacado en él en el servidor global en más todo un punto social que es el

01:52:36.220 --> 01:52:42.380
servidor global principal además no podía hacerlo porque si tú intentas ahora registrar en más todo

01:52:42.380 --> 01:52:49.940
un punto social te dice que no que no se puede sólo funciona por invitación pero encontré una

01:52:49.940 --> 01:52:57.060
invitación por ahí de no sé dónde y aproveché entre iba rápido así que podéis encontrarme igual

01:52:57.060 --> 01:53:03.900
también en más todo en como jcf munoz arroba más todo un punto social así que ahí también estaré

01:53:03.900 --> 01:53:09.300
para lo que se llama el ester y si queréis cacharrear con alguna api la de más todo no

01:53:09.300 --> 01:53:14.860
está ahí que yo estuve cacharreando hice una un rato de aplicación lo más que no me da no me da

01:53:14.860 --> 01:53:20.340
la vida pero hice quería hacer mi propia aplicación de más todo pero ahí tenéis una pipa la para

01:53:20.340 --> 01:53:26.860
cacharrear sí porque además de hecho hoy he leído que sabéis que ha habido mucha polémica porque

01:53:26.860 --> 01:53:34.500
twitter ha cerrado todas las apis de terceros y tweetbot y chip y un montón de aplicaciones que

01:53:34.500 --> 01:53:41.540
funcionaban directamente contra twitter y que bueno pues pues él o más las ha cerrado pues

01:53:41.540 --> 01:53:46.780
hoy se ha sabido que en realidad no es que las haya cerrado es que va a ofrecer un modelo de

01:53:46.780 --> 01:53:53.980
negocio monetario vale es decir que si quieres usar las apis de twitter vas a tener que pagar

01:53:53.980 --> 01:53:58.300
para que él pueda recibir una conversación una conversación por el hecho de no poder poder

01:53:58.300 --> 01:54:03.700
publicidad a través de las apis motivo principal por el que las ha quitado o sea que bueno

01:54:05.500 --> 01:54:16.620
en fin yo los designios de lo más son inescrutables entonces bueno hay realmente desde mi punto de

01:54:16.620 --> 01:54:22.100
vista no ha acertado mucho pero bueno entiendo por qué lo ha hecho porque ahí tiene que ser

01:54:22.100 --> 01:54:28.820
una ya no el gasto que supone la propia api de mantenimiento de coste de servidores de etcétera

01:54:28.820 --> 01:54:33.420
etcétera que es algo que se tienen que comer ellos sino el hecho de que bueno pues que si tú

01:54:33.420 --> 01:54:38.340
estabas usando tweetbot pues no veías publicidad y entonces la publicidad es el medio por el que

01:54:38.340 --> 01:54:44.780
ellos pueden sacar adelante la compañía a nivel de beneficio no podemos olvidar que él o más compra

01:54:44.780 --> 01:54:52.300
twitter con unas pérdidas millonarias porque el inútil de su anterior ceo pues no era que no fue

01:54:52.300 --> 01:55:01.060
capaz en diez años de hacer que twitter fuera ya actor sino se llamaba si no fue capaz de sacar

01:55:01.060 --> 01:55:06.420
adelante un modelo económico que sostuviera la red social que ya hay que tener valor para con la

01:55:06.420 --> 01:55:10.940
cantidad de usuarios que tienes no ser capaz de encontrar una forma de monetizarla de hecho

01:55:10.940 --> 01:55:20.140
y con esto cerramos la historia cebolleta me ha salido ya un par de veces en el entorno de web

01:55:20.140 --> 01:55:27.860
twitter blue una pestaña de twitter blue con la información de twitter blue aunque no me he podido

01:55:27.860 --> 01:55:32.740
dar de alta porque no hay ningún botón para darse de alta pero ya me ha parecido un par de veces en

01:55:32.740 --> 01:55:39.380
la web de twitter o sea que tiene que estar deben estar haciendo pruebas de interfaz o de tal o sea

01:55:39.380 --> 01:55:44.900
que veremos a ver también el tema de la de la suscripción que es lo que es lo que ofrece

01:55:46.340 --> 01:55:52.100
pues si no sé si acabaremos todos allí julio o dónde pero bueno lo que lo que nosotros prometemos

01:55:52.100 --> 01:55:58.700
es volver a grabar más cafés que es lo que está en nuestras manos exacto así que nada hasta entonces

01:55:58.700 --> 01:56:09.940
pues nos vemos pronto y como decimos siempre no olvidéis jugar con el código hasta luego bye bye chao

01:56:58.700 --> 01:56:59.220
i

01:56:59.220 --> 01:57:24.340
y puedes escuchar más episodios en cuando.com la comunidad de podcast independientes en español