2999a commited on
Commit
e61061a
·
verified ·
1 Parent(s): db9df67

Upload via hfc (batch)

Browse files

Uploaded using hfc tool

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +14 -0
  2. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/08-Resumen.html +0 -0
  3. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/09-Resumen.html +0 -0
  4. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/09-Teléfonos y sus System on a Chip o SOC.mp4 +3 -0
  5. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/09-Teléfonos y sus System on a Chip o SOC.vtt +725 -0
  6. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/10-GPUs Procesadores gráficos y de AI.mp4 +3 -0
  7. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/10-GPUs Procesadores gráficos y de AI.vtt +620 -0
  8. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/10-Resumen.html +0 -0
  9. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Lecturas recomendadas.txt +3 -0
  10. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Qué es un algoritmo y qué es un lenguaje de programación.mp4 +3 -0
  11. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Qué es un algoritmo y qué es un lenguaje de programación.vtt +469 -0
  12. subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Resumen.html +0 -0
  13. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Direcciones IP y el protocolo de Internet.mp4 +3 -0
  14. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Direcciones IP y el protocolo de Internet.vtt +577 -0
  15. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Lecturas recomendadas.txt +1 -0
  16. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Resumen.html +0 -0
  17. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Lecturas recomendadas.txt +1 -0
  18. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Nombres de dominio DNS y cómo obtener un com.mp4 +3 -0
  19. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Nombres de dominio DNS y cómo obtener un com.vtt +703 -0
  20. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Resumen.html +0 -0
  21. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/03-Modelo ClienteServidor Cómo funciona un sitio web.mp4 +3 -0
  22. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/03-Modelo ClienteServidor Cómo funciona un sitio web.vtt +580 -0
  23. subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/03-Resumen.html +0 -0
  24. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Diferencias entre Windows Linux y MacOS.mp4 +3 -0
  25. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Diferencias entre Windows Linux y MacOS.vtt +529 -0
  26. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Lecturas recomendadas.txt +3 -0
  27. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Resumen.html +0 -0
  28. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/02-Permisos niveles de procesos y privilegios de ejecución.mp4 +3 -0
  29. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/02-Permisos niveles de procesos y privilegios de ejecución.vtt +415 -0
  30. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/02-Resumen.html +0 -0
  31. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-Archivos Metadatos cabeceras y extensiones.mp4 +3 -0
  32. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-Archivos Metadatos cabeceras y extensiones.vtt +610 -0
  33. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-Resumen.html +0 -0
  34. subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-empleados_prueba_325d0f23-d597-444f-a5e0-acb9d34cac7a.csv +51 -0
  35. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Lecturas recomendadas.txt +2 -0
  36. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Qué son las bases de datos.mp4 +3 -0
  37. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Qué son las bases de datos.vtt +658 -0
  38. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Resumen.html +0 -0
  39. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Cómo funciona el formato JPG.mp4 +3 -0
  40. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Cómo funciona el formato JPG.vtt +457 -0
  41. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Lecturas recomendadas.txt +1 -0
  42. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Resumen.html +0 -0
  43. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/03-Resumen.html +0 -0
  44. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/03-Videos contenedores codecs y protocolos.mp4 +3 -0
  45. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/04-Cómo Funciona un zip.mp4 +3 -0
  46. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/04-Cómo Funciona un zip.vtt +562 -0
  47. subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/04-Resumen.html +0 -0
  48. subir/fixed/Curso de Fundamentos de Ingeniería de Software/05-Introducción a Blockchain e Inteligencia Artificial/01-Arquitectura y funcionamiento interno de Blockchain.mp4 +3 -0
  49. subir/fixed/Curso de Fundamentos de Ingeniería de Software/05-Introducción a Blockchain e Inteligencia Artificial/01-Arquitectura y funcionamiento interno de Blockchain.vtt +925 -0
  50. subir/fixed/Curso de Fundamentos de Ingeniería de Software/05-Introducción a Blockchain e Inteligencia Artificial/01-Lecturas recomendadas.txt +2 -0
.gitattributes CHANGED
@@ -91,3 +91,17 @@ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Inge
91
  subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/06-Cómo[[:space:]]funciona[[:space:]]internet.mp4 filter=lfs diff=lfs merge=lfs -text
92
  subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/07-Cómo[[:space:]]las[[:space:]]computadoras[[:space:]]guardan[[:space:]]datos.mp4 filter=lfs diff=lfs merge=lfs -text
93
  subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/08-Cómo[[:space:]]se[[:space:]]organizan[[:space:]]los[[:space:]]archivos.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/06-Cómo[[:space:]]funciona[[:space:]]internet.mp4 filter=lfs diff=lfs merge=lfs -text
92
  subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/07-Cómo[[:space:]]las[[:space:]]computadoras[[:space:]]guardan[[:space:]]datos.mp4 filter=lfs diff=lfs merge=lfs -text
93
  subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/08-Cómo[[:space:]]se[[:space:]]organizan[[:space:]]los[[:space:]]archivos.mp4 filter=lfs diff=lfs merge=lfs -text
94
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/09-Teléfonos[[:space:]]y[[:space:]]sus[[:space:]]System[[:space:]]on[[:space:]]a[[:space:]]Chip[[:space:]]o[[:space:]]SOC.mp4 filter=lfs diff=lfs merge=lfs -text
95
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/10-GPUs[[:space:]]Procesadores[[:space:]]gráficos[[:space:]]y[[:space:]]de[[:space:]]AI.mp4 filter=lfs diff=lfs merge=lfs -text
96
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/01-Computación[[:space:]]Básica/11-Qué[[:space:]]es[[:space:]]un[[:space:]]algoritmo[[:space:]]y[[:space:]]qué[[:space:]]es[[:space:]]un[[:space:]]lenguaje[[:space:]]de[[:space:]]programación.mp4 filter=lfs diff=lfs merge=lfs -text
97
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/02-Redes[[:space:]]e[[:space:]]Internet/01-Direcciones[[:space:]]IP[[:space:]]y[[:space:]]el[[:space:]]protocolo[[:space:]]de[[:space:]]Internet.mp4 filter=lfs diff=lfs merge=lfs -text
98
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/02-Redes[[:space:]]e[[:space:]]Internet/02-Nombres[[:space:]]de[[:space:]]dominio[[:space:]]DNS[[:space:]]y[[:space:]]cómo[[:space:]]obtener[[:space:]]un[[:space:]]com.mp4 filter=lfs diff=lfs merge=lfs -text
99
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/02-Redes[[:space:]]e[[:space:]]Internet/03-Modelo[[:space:]]ClienteServidor[[:space:]]Cómo[[:space:]]funciona[[:space:]]un[[:space:]]sitio[[:space:]]web.mp4 filter=lfs diff=lfs merge=lfs -text
100
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/03-Sistemas[[:space:]]Operativos[[:space:]]y[[:space:]]Almacenamiento/01-Diferencias[[:space:]]entre[[:space:]]Windows[[:space:]]Linux[[:space:]]y[[:space:]]MacOS.mp4 filter=lfs diff=lfs merge=lfs -text
101
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/03-Sistemas[[:space:]]Operativos[[:space:]]y[[:space:]]Almacenamiento/02-Permisos[[:space:]]niveles[[:space:]]de[[:space:]]procesos[[:space:]]y[[:space:]]privilegios[[:space:]]de[[:space:]]ejecución.mp4 filter=lfs diff=lfs merge=lfs -text
102
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/03-Sistemas[[:space:]]Operativos[[:space:]]y[[:space:]]Almacenamiento/03-Archivos[[:space:]]Metadatos[[:space:]]cabeceras[[:space:]]y[[:space:]]extensiones.mp4 filter=lfs diff=lfs merge=lfs -text
103
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/04-Archivos[[:space:]]y[[:space:]]estructuras[[:space:]]de[[:space:]]datos/01-Qué[[:space:]]son[[:space:]]las[[:space:]]bases[[:space:]]de[[:space:]]datos.mp4 filter=lfs diff=lfs merge=lfs -text
104
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/04-Archivos[[:space:]]y[[:space:]]estructuras[[:space:]]de[[:space:]]datos/02-Cómo[[:space:]]funciona[[:space:]]el[[:space:]]formato[[:space:]]JPG.mp4 filter=lfs diff=lfs merge=lfs -text
105
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/04-Archivos[[:space:]]y[[:space:]]estructuras[[:space:]]de[[:space:]]datos/03-Videos[[:space:]]contenedores[[:space:]]codecs[[:space:]]y[[:space:]]protocolos.mp4 filter=lfs diff=lfs merge=lfs -text
106
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/04-Archivos[[:space:]]y[[:space:]]estructuras[[:space:]]de[[:space:]]datos/04-Cómo[[:space:]]Funciona[[:space:]]un[[:space:]]zip.mp4 filter=lfs diff=lfs merge=lfs -text
107
+ subir/fixed/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]Ingeniería[[:space:]]de[[:space:]]Software/05-Introducción[[:space:]]a[[:space:]]Blockchain[[:space:]]e[[:space:]]Inteligencia[[:space:]]Artificial/01-Arquitectura[[:space:]]y[[:space:]]funcionamiento[[:space:]]interno[[:space:]]de[[:space:]]Blockchain.mp4 filter=lfs diff=lfs merge=lfs -text
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/08-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/09-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/09-Teléfonos y sus System on a Chip o SOC.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3f7f5301228570c0684a7c28430b4eb7c6b88cda8b10c3f219498f2a6652ca76
3
+ size 265860513
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/09-Teléfonos y sus System on a Chip o SOC.vtt ADDED
@@ -0,0 +1,725 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.000 --> 00:00:03.800
4
+ Los circuitos integrados, los chips, la forma en la que funciona la electrónica moderna,
5
+
6
+ 00:00:03.800 --> 00:00:09.120
7
+ empezaron como unos tubos de vacío que ocupaban inmensas cantidades de espacio
8
+
9
+ 00:00:09.120 --> 00:00:14.400
10
+ y que así fue como empezaron las primeras computadoras, los televisores, muchísimas otras mecánicas
11
+
12
+ 00:00:14.400 --> 00:00:17.000
13
+ de la forma en la que se construía la electrónica moderna.
14
+
15
+ 00:00:17.000 --> 00:00:21.320
16
+ Pero lentamente nuestros dispositivos se fueron haciendo más pequeños y más pequeños y más pequeños
17
+
18
+ 00:00:21.320 --> 00:00:24.840
19
+ porque empezamos a empacar transistores en formas más cortas
20
+
21
+ 00:00:24.840 --> 00:00:28.840
22
+ y porque el consumidor quería dispositivos más pequeños que usaran menos electricidad
23
+
24
+ 00:00:28.840 --> 00:00:30.400
25
+ y que fueran más portátiles.
26
+
27
+ 00:00:30.400 --> 00:00:35.480
28
+ La electricidad funcionaba inicialmente con baterías AA, AAA o esas baterías grandotas de 9 voltios
29
+
30
+ 00:00:35.480 --> 00:00:38.840
31
+ con las que podíamos usar cosas como una grabadora de cassette,
32
+
33
+ 00:00:38.840 --> 00:00:42.760
34
+ una de las que llamaban boombox, y de esa manera tenemos música o un Walkman
35
+
36
+ 00:00:42.760 --> 00:00:48.360
37
+ o tantos otros dispositivos que quemaban y quemaban esas baterías a muy alta velocidad
38
+
39
+ 00:00:48.360 --> 00:00:53.680
40
+ y eran muy costosas, así que había un incentivo natural de los fabricantes de reducir las baterías.
41
+
42
+ 00:00:53.680 --> 00:00:58.040
43
+ Y luego llegaron los smartphones y antes de eso los teléfonos móviles, entre muchas otras cosas.
44
+
45
+ 00:00:58.040 --> 00:01:02.880
46
+ Esa necesidad de reducir el gasto de electricidad y reducir el espacio
47
+
48
+ 00:01:02.880 --> 00:01:07.240
49
+ empezó a hacer que los chips se volvieran más y más y más especializados.
50
+
51
+ 00:01:07.240 --> 00:01:10.080
52
+ Luego la computación hizo que nuestras computadoras
53
+
54
+ 00:01:10.080 --> 00:01:12.640
55
+ cupieran en una caja gigante y luego en un laptop,
56
+
57
+ 00:01:12.640 --> 00:01:15.160
58
+ pero con el pasar del tiempo nos pusimos a pensar
59
+
60
+ 00:01:15.160 --> 00:01:16.760
61
+ ¿Por qué tenemos chips para todo?
62
+
63
+ 00:01:16.760 --> 00:01:21.560
64
+ ¿Por qué hay un chip que es la CPU y otra tarjeta distinta es la tarjeta gráfica
65
+
66
+ 00:01:21.560 --> 00:01:23.760
67
+ y otra tarjeta distinta es la tarjeta de sonido?
68
+
69
+ 00:01:23.800 --> 00:01:28.160
70
+ ¿Por qué a medida que especializamos todo, no pegamos todo en un solo chip?
71
+
72
+ 00:01:28.160 --> 00:01:30.640
73
+ Estos son conocidos como System on a Chip.
74
+
75
+ 00:01:30.640 --> 00:01:34.440
76
+ Los dos problemas más grandes son de electricidad y de espacio.
77
+
78
+ 00:01:34.440 --> 00:01:39.360
79
+ Entre más chips hay, más gastan batería porque más largo tienen que viajar los electrones
80
+
81
+ 00:01:39.360 --> 00:01:41.880
82
+ dentro de la tarjeta en cada uno de los ciclos
83
+
84
+ 00:01:41.880 --> 00:01:45.360
85
+ que nos permiten jugar un videojuego en el teléfono o atender una llamada.
86
+
87
+ 00:01:45.360 --> 00:01:48.520
88
+ El segundo problema es que los teléfonos eran un ladrillo gigante
89
+
90
+ 00:01:48.520 --> 00:01:51.840
91
+ y queríamos que fueran cada vez más pequeños, y no solo eran teléfonos,
92
+
93
+ 00:01:51.880 --> 00:01:56.720
94
+ eran cámaras digitales, eran iPods, Walkmans, televisores.
95
+
96
+ 00:01:56.720 --> 00:01:59.240
97
+ Ahora que todo vive en un teléfono, pues lo vemos más claro,
98
+
99
+ 00:01:59.240 --> 00:02:01.760
100
+ pero antes eran todo tipo de dispositivos.
101
+
102
+ 00:02:01.760 --> 00:02:04.640
103
+ Así que empezamos a pensar qué podemos integrar.
104
+
105
+ 00:02:04.640 --> 00:02:06.520
106
+ En el caso de los teléfonos, por ejemplo,
107
+
108
+ 00:02:06.520 --> 00:02:09.640
109
+ un teléfono es básicamente una pantalla gigante,
110
+
111
+ 00:02:09.640 --> 00:02:15.160
112
+ así que necesita un procesador gráfico que sea muy eficiente y que no se sienta lento,
113
+
114
+ 00:02:15.160 --> 00:02:18.160
115
+ porque si un teléfono se siente lento, no se puede usar.
116
+
117
+ 00:02:18.160 --> 00:02:21.800
118
+ Los seres humanos estamos conscientes y aceptamos que una computadora se pone lenta,
119
+
120
+ 00:02:21.800 --> 00:02:24.040
121
+ pero no aceptamos que un teléfono se ponga lento.
122
+
123
+ 00:02:24.040 --> 00:02:26.720
124
+ Y por supuesto necesitamos el procesamiento normal de una computadora
125
+
126
+ 00:02:26.720 --> 00:02:29.920
127
+ para navegar en internet, mandar correos, hacer juegos, etc.
128
+
129
+ 00:02:29.920 --> 00:02:33.240
130
+ Así que necesitamos una CPU y una GPU en el mismo lugar.
131
+
132
+ 00:02:33.240 --> 00:02:37.640
133
+ Combinar en un solo chip la CPU y la GPU fue el primer paso en System on a Chip.
134
+
135
+ 00:02:37.640 --> 00:02:42.400
136
+ Quiero aclarar que no es como que el mismo chip sea CPU y GPU al mismo tiempo
137
+
138
+ 00:02:42.400 --> 00:02:44.040
139
+ con los mismos transistores.
140
+
141
+ 00:02:44.040 --> 00:02:50.000
142
+ Realmente es que en la oblea de silicio, en el wafer, en donde hacen el chip,
143
+
144
+ 00:02:50.000 --> 00:02:54.280
145
+ ahí dentro, colocan en un ladito los transistores que funcionan como CPU
146
+
147
+ 00:02:54.280 --> 00:02:56.800
148
+ y en otro ladito, muy pegadito, muy cerca,
149
+
150
+ 00:02:56.800 --> 00:03:00.040
151
+ en el mismo mecanismo de circuito integrado, rodeado de baquelita,
152
+
153
+ 00:03:00.040 --> 00:03:01.160
154
+ los chips de la GPU.
155
+
156
+ 00:03:01.160 --> 00:03:04.360
157
+ Y así empezaron a pensar en otros chips, porque esto es un computador completo, ¿no?
158
+
159
+ 00:03:04.360 --> 00:03:07.800
160
+ Cuando uno armó una computadora, uno tenía estos tabletas de memoria
161
+
162
+ 00:03:07.800 --> 00:03:11.200
163
+ que hemos visto antes, la memoria RAM, o estos discos duros externos.
164
+
165
+ 00:03:11.200 --> 00:03:13.800
166
+ Pues la memoria RAM, ¿por qué no la pegamos ahí también?
167
+
168
+ 00:03:13.800 --> 00:03:15.840
169
+ ¿Y por qué no pegamos el modem?
170
+
171
+ 00:03:15.840 --> 00:03:19.320
172
+ Porque cuando uno hace una llamada, los teléfonos internamente tienen un chip
173
+
174
+ 00:03:19.320 --> 00:03:23.360
175
+ que es un modem, que es el que tiene que hablar con la central telefónica
176
+
177
+ 00:03:23.360 --> 00:03:24.640
178
+ y procesar la llamada.
179
+
180
+ 00:03:24.640 --> 00:03:28.240
181
+ El modem se conecta a las antenas 3G y 4G y los chips también necesitan
182
+
183
+ 00:03:28.240 --> 00:03:29.360
184
+ conectarse a Wi-Fi.
185
+
186
+ 00:03:29.360 --> 00:03:33.440
187
+ Entonces, el Wi-Fi es otro módulo que antes era un circuito aparte en un chip
188
+
189
+ 00:03:33.440 --> 00:03:34.320
190
+ aparte.
191
+
192
+ 00:03:34.320 --> 00:03:37.760
193
+ Como los teléfonos se estandarizaron y todos los teléfonos tienen que procesar
194
+
195
+ 00:03:37.760 --> 00:03:41.440
196
+ video a través de la cámara, capturar audio del micrófono,
197
+
198
+ 00:03:41.440 --> 00:03:46.280
199
+ generar imágenes, todas esas funciones estándar que antes eran periféricos
200
+
201
+ 00:03:46.280 --> 00:03:48.880
202
+ adicionales, fueron creándose en un solo chip.
203
+
204
+ 00:03:48.880 --> 00:03:52.760
205
+ Porque la otra ventaja es que estos dispositivos pues mantenían el mismo
206
+
207
+ 00:03:52.760 --> 00:03:54.200
208
+ hardware constantemente.
209
+
210
+ 00:03:54.200 --> 00:03:58.760
211
+ Si tienes una computadora, te lo puedes conectar mil marcas de webcam,
212
+
213
+ 00:03:58.760 --> 00:04:03.160
214
+ pero en tu teléfono, tu marca como Samsung o Apple o Google,
215
+
216
+ 00:04:03.160 --> 00:04:06.480
217
+ tú sabes exactamente qué lente y qué cámara le estás poniendo a tus
218
+
219
+ 00:04:06.480 --> 00:04:10.000
220
+ teléfonos, exactamente qué tipo de micrófono y qué tipo de parlante.
221
+
222
+ 00:04:10.000 --> 00:04:14.360
223
+ Esa estandarización también ayudó a que los chips sean mucho más sencillos.
224
+
225
+ 00:04:14.360 --> 00:04:19.520
226
+ Huawei, por cierto, es la primera marca en integrar un módem de tecnología 5G
227
+
228
+ 00:04:19.520 --> 00:04:20.360
229
+ en un chip.
230
+
231
+ 00:04:20.360 --> 00:04:24.520
232
+ Aquí en mis notas veo que fue el chip Huawei Kirin 990.
233
+
234
+ 00:04:24.520 --> 00:04:26.200
235
+ La innovación viene de todas partes.
236
+
237
+ 00:04:26.200 --> 00:04:28.680
238
+ Cuando compras tu teléfono y lo enciendes,
239
+
240
+ 00:04:28.680 --> 00:04:33.680
241
+ tu dedo prime el botón de encendido, lo cual conecta dos contactos que hacen un
242
+
243
+ 00:04:33.680 --> 00:04:37.640
244
+ paso de electricidad de la batería al circuito que llega a una señal en el
245
+
246
+ 00:04:37.640 --> 00:04:38.760
247
+ System on a Chip.
248
+
249
+ 00:04:38.760 --> 00:04:41.640
250
+ El primer circuito de un System on a Chip es la BIOS.
251
+
252
+ 00:04:41.640 --> 00:04:44.160
253
+ Es ese sistema de arranque que, por ejemplo,
254
+
255
+ 00:04:44.160 --> 00:04:48.400
256
+ en el caso de iPod y de los dispositivos de Apple como el iPhone,
257
+
258
+ 00:04:48.400 --> 00:04:51.560
259
+ el iPad, etcétera, se llama iBoot.
260
+
261
+ 00:04:51.560 --> 00:04:54.160
262
+ O lo mismo que habría en la BIOS de un computador normal,
263
+
264
+ 00:04:54.160 --> 00:04:55.800
265
+ solamente que aquí está en el chip.
266
+
267
+ 00:04:55.800 --> 00:04:58.480
268
+ Y ahí dentro del chip empieza a arrancar todo.
269
+
270
+ 00:04:58.480 --> 00:05:00.520
271
+ Ese pecito de chip prende la CPU.
272
+
273
+ 00:05:00.520 --> 00:05:03.880
274
+ La CPU va a la memoria flash, que es la memoria,
275
+
276
+ 00:05:03.880 --> 00:05:06.080
277
+ llamémosla permanente o el equivalente al disco duro.
278
+
279
+ 00:05:06.080 --> 00:05:10.680
280
+ Eso sí está aparte porque es un circuito más grande y de una química diferente.
281
+
282
+ 00:05:10.680 --> 00:05:14.840
283
+ Y ahí van y buscan el código del sistema operativo y el resto es igual que una
284
+
285
+ 00:05:14.840 --> 00:05:15.720
286
+ computadora.
287
+
288
+ 00:05:15.720 --> 00:05:18.040
289
+ Pero en vez de estar viajando entre diferentes chips,
290
+
291
+ 00:05:18.040 --> 00:05:19.800
292
+ todo está viajando en el mismo chip.
293
+
294
+ 00:05:19.800 --> 00:05:21.720
295
+ La CPU y la GPU están muy cerca.
296
+
297
+ 00:05:21.720 --> 00:05:26.440
298
+ Y la CPU y la GPU lo que hacen es que la CPU arranca los computadores en cuanto a
299
+
300
+ 00:05:26.440 --> 00:05:29.840
301
+ su sistema operativo y la GPU arranca los pixeles de la pantalla,
302
+
303
+ 00:05:29.840 --> 00:05:33.320
304
+ trabajando en conjunto y compartiendo memoria.
305
+
306
+ 00:05:33.320 --> 00:05:36.000
307
+ Eso es una de las cosas únicas de un System on a Chip.
308
+
309
+ 00:05:36.000 --> 00:05:40.640
310
+ En una computadora, la GPU tiene su propia memoria y es la memoria que usa para
311
+
312
+ 00:05:40.640 --> 00:05:43.840
313
+ representar cosas en pantalla o hacer cálculos paralelos como cálculos de
314
+
315
+ 00:05:43.840 --> 00:05:45.400
316
+ criptomonedas o AI.
317
+
318
+ 00:05:45.400 --> 00:05:48.840
319
+ Y la CPU usa la memoria RAM para ejecutar los computadores.
320
+
321
+ 00:05:48.840 --> 00:05:52.560
322
+ En un System on a Chip, en particular en la arquitectura que creó Apple,
323
+
324
+ 00:05:52.560 --> 00:05:56.880
325
+ se usa una memoria unificada que lo comparte en todas las necesidades del
326
+
327
+ 00:05:56.880 --> 00:05:57.760
328
+ sistema operativo.
329
+
330
+ 00:05:57.760 --> 00:06:01.280
331
+ Ahí carga el kernel y el kernel son los drivers que prenden los periféricos.
332
+
333
+ 00:06:01.280 --> 00:06:05.080
334
+ Pero el periférico, que típicamente sería un circuito con sus mecanismos
335
+
336
+ 00:06:05.080 --> 00:06:08.720
337
+ químicos y mecánicos, como la membrana del micrófono,
338
+
339
+ 00:06:08.720 --> 00:06:11.720
340
+ como los sensores digitales de luz que tiene una cámara,
341
+
342
+ 00:06:11.720 --> 00:06:13.720
343
+ son simplemente la parte de hardware.
344
+
345
+ 00:06:13.720 --> 00:06:16.600
346
+ Y el circuito, toda realmente la operación,
347
+
348
+ 00:06:16.600 --> 00:06:18.720
349
+ está metida en ese System on a Chip.
350
+
351
+ 00:06:18.720 --> 00:06:21.600
352
+ Hace todo más sencillo, mucho más eficiente,
353
+
354
+ 00:06:21.600 --> 00:06:24.560
355
+ con menos generación de calor, con menos gasto de batería.
356
+
357
+ 00:06:24.560 --> 00:06:29.600
358
+ Por eso un teléfono que tiene 8 GB de RAM y una CPU muy pequeña hace muchas más
359
+
360
+ 00:06:29.600 --> 00:06:33.800
361
+ cosas que una computadora con una CPU más grande y los mismos 8 GB de RAM.
362
+
363
+ 00:06:33.800 --> 00:06:37.560
364
+ Un teléfono, además, es básicamente un experimento de física.
365
+
366
+ 00:06:37.560 --> 00:06:40.560
367
+ Por dentro de tu teléfono hay un barómetro que detecta la presión
368
+
369
+ 00:06:40.560 --> 00:06:41.440
370
+ ambiental.
371
+
372
+ 00:06:41.440 --> 00:06:42.720
373
+ Hay un termómetro.
374
+
375
+ 00:06:42.720 --> 00:06:45.800
376
+ A veces te habrá salido una alerta que tu teléfono está muy caliente y de
377
+
378
+ 00:06:45.800 --> 00:06:48.440
379
+ pronto se apaga porque está detectando la temperatura.
380
+
381
+ 00:06:48.440 --> 00:06:52.600
382
+ Todos esos son mecanismos físicos que usando electrónica,
383
+
384
+ 00:06:52.600 --> 00:06:58.640
385
+ mecánica o química hacen que llegue una señal digital al procesador.
386
+
387
+ 00:06:58.640 --> 00:07:00.880
388
+ Pero en vez de tener chips individuales,
389
+
390
+ 00:07:00.880 --> 00:07:04.600
391
+ le delegan el procesamiento de chips a ese System on a Chip que tiene los
392
+
393
+ 00:07:04.600 --> 00:07:06.880
394
+ transistores necesarios para que funcione.
395
+
396
+ 00:07:06.880 --> 00:07:11.160
397
+ Y como son tan similares, entonces muchas de las marcas no tienen que
398
+
399
+ 00:07:11.160 --> 00:07:14.160
400
+ programar sus teléfonos para soportar un montón de drivers,
401
+
402
+ 00:07:14.160 --> 00:07:17.440
403
+ como si le toca hacer a Microsoft con Windows en una computadora,
404
+
405
+ 00:07:17.440 --> 00:07:20.560
406
+ o a Apple con Mac, o a los sistemas operativos Linux.
407
+
408
+ 00:07:20.560 --> 00:07:23.280
409
+ Todo eso apoya a la eficiencia de estos sistemas.
410
+
411
+ 00:07:23.280 --> 00:07:28.400
412
+ Un dato curioso, la cámara de los teléfonos modernos han notado que se
413
+
414
+ 00:07:28.400 --> 00:07:31.680
415
+ estabiliza a pesar de que uno está a veces temblándole las manos al tomar la
416
+
417
+ 00:07:31.680 --> 00:07:34.600
418
+ foto, hay una estabilización que funciona con software,
419
+
420
+ 00:07:34.600 --> 00:07:39.400
421
+ pero hay ciertas cámaras de los teléfonos más costosos donde el lente
422
+
423
+ 00:07:39.400 --> 00:07:42.200
424
+ está flotando en un tipo de aceite,
425
+
426
+ 00:07:42.200 --> 00:07:46.160
427
+ que hace que cuando ustedes estén temblando el lente se mantenga fijo.
428
+
429
+ 00:07:46.160 --> 00:07:50.920
430
+ En otros casos está flotando con electroimanes que lo mantienen fijo o
431
+
432
+ 00:07:50.920 --> 00:07:52.480
433
+ con pequeños sistemas de resortes.
434
+
435
+ 00:07:52.480 --> 00:07:54.520
436
+ Es fascinante y súper chiquito.
437
+
438
+ 00:07:54.520 --> 00:07:59.320
439
+ ¿Has notado que a los teléfonos casi siempre les dura 24 horas la batería a
440
+
441
+ 00:07:59.320 --> 00:08:01.720
442
+ pesar de que la tecnología crece y crece y crece?
443
+
444
+ 00:08:01.720 --> 00:08:02.320
445
+ ¿Por qué será?
446
+
447
+ 00:08:02.320 --> 00:08:04.160
448
+ Están mejorando las tecnologías de las baterías,
449
+
450
+ 00:08:04.160 --> 00:08:08.760
451
+ pero las baterías están limitadas por los límites químicos de lo que hemos
452
+
453
+ 00:08:08.760 --> 00:08:13.120
454
+ descubierto que es la mayor cantidad de densidad de electricidad que podemos
455
+
456
+ 00:08:13.120 --> 00:08:15.240
457
+ meter en la batería de un teléfono moderno.
458
+
459
+ 00:08:15.240 --> 00:08:17.640
460
+ Lo que realmente está pasando son dos mecanismos.
461
+
462
+ 00:08:17.640 --> 00:08:22.040
463
+ Uno es que el mercado, nosotros que compramos teléfonos,
464
+
465
+ 00:08:22.040 --> 00:08:26.000
466
+ aceptamos teléfonos que duren un día, pero no aceptamos teléfonos que duren 6
467
+
468
+ 00:08:26.000 --> 00:08:30.240
469
+ horas y no recompensamos tanto a nivel financiero los teléfonos que duran dos
470
+
471
+ 00:08:30.240 --> 00:08:31.760
472
+ días. Ese mercado es más pequeño.
473
+
474
+ 00:08:31.760 --> 00:08:32.360
475
+ Existe.
476
+
477
+ 00:08:32.360 --> 00:08:37.000
478
+ Son esos teléfonos grandotototes como el iPhone Pro o como los Samsung Galaxy
479
+
480
+ 00:08:37.000 --> 00:08:38.720
481
+ Node o Ultra, etc.
482
+
483
+ 00:08:38.720 --> 00:08:41.440
484
+ Es un mercado que existe, pero no es tan grande.
485
+
486
+ 00:08:41.440 --> 00:08:45.800
487
+ Lo otro es que los fabricantes de chips son muy conscientes de que cada
488
+
489
+ 00:08:45.800 --> 00:08:50.200
490
+ generación de chip nuevo tiene que gastar menos electricidad y a veces tienen
491
+
492
+ 00:08:50.200 --> 00:08:51.800
493
+ saltos espectaculares.
494
+
495
+ 00:08:51.800 --> 00:08:57.560
496
+ Por eso los MacBook Pros, desde la generación de los chips Apple M, M1, M2,
497
+
498
+ 00:08:57.560 --> 00:09:03.640
499
+ M3 y M4, han ido aumentando de una manera fuerte la duración de la batería de los
500
+
501
+ 00:09:03.640 --> 00:09:07.200
502
+ laptops y ahora es normal que un laptop tenga batería de 12 horas.
503
+
504
+ 00:09:07.200 --> 00:09:10.960
505
+ Los teléfonos, lo que pasa es que siguen exigiéndose cada vez más porque las apps
506
+
507
+ 00:09:10.960 --> 00:09:14.640
508
+ son cada vez más complejas y sofisticadas, pero esa es parte de la razón por la que
509
+
510
+ 00:09:14.640 --> 00:09:16.600
511
+ la batería tiende a durar esto.
512
+
513
+ 00:09:16.600 --> 00:09:21.800
514
+ Súmenle que hay un dato más y es que el uso intensivo de tu teléfono lo calienta
515
+
516
+ 00:09:21.800 --> 00:09:25.280
517
+ y el calor, al estar tan cerca de la batería, puede causar un efecto de
518
+
519
+ 00:09:25.280 --> 00:09:26.080
520
+ explosión.
521
+
522
+ 00:09:26.080 --> 00:09:29.280
523
+ Esto le pasó a una marca de Galaxy Nodes, que básicamente solvían granadas en el
524
+
525
+ 00:09:29.280 --> 00:09:30.120
526
+ bolsillo.
527
+
528
+ 00:09:30.120 --> 00:09:33.840
529
+ Así que los fabricantes de teléfonos tienen que ser muy cuidadosos de no
530
+
531
+ 00:09:33.840 --> 00:09:37.680
532
+ pasarse de cierta cantidad de flujo eléctrico para que no se caliente el
533
+
534
+ 00:09:37.680 --> 00:09:38.920
535
+ teléfono y no explote.
536
+
537
+ 00:09:38.920 --> 00:09:41.560
538
+ La realidad es que en el día de hoy esto casi no es un problema.
539
+
540
+ 00:09:41.560 --> 00:09:44.360
541
+ ¿Recuerdan cuando hablamos de la arquitectura de las CPUs?
542
+
543
+ 00:09:44.360 --> 00:09:47.240
544
+ X86, RISC, ARM.
545
+
546
+ 00:09:47.240 --> 00:09:52.680
547
+ ARM domina la arquitectura de los chips de los teléfonos y de los system on a
548
+
549
+ 00:09:52.680 --> 00:09:53.280
550
+ chip.
551
+
552
+ 00:09:53.280 --> 00:09:57.440
553
+ ARM, una empresa inglesa adquirida por una empresa japonesa, Softbank, y en la
554
+
555
+ 00:09:57.440 --> 00:10:00.240
556
+ cual ese diseño es en el que están basados los chips de Apple.
557
+
558
+ 00:10:00.240 --> 00:10:03.680
559
+ La industria de tecnología está mudando casi todo a un system on a chip debido a
560
+
561
+ 00:10:03.680 --> 00:10:05.080
562
+ que son más eficientes.
563
+
564
+ 00:10:05.080 --> 00:10:09.160
565
+ Por ejemplo, acá adentro en un teléfono inteligente o en un smartwatch va a haber
566
+
567
+ 00:10:09.160 --> 00:10:10.340
568
+ un system on a chip.
569
+
570
+ 00:10:10.340 --> 00:10:14.560
571
+ En esos anillos que son sensores de salud hay un system on a chip.
572
+
573
+ 00:10:14.560 --> 00:10:18.200
574
+ En tu automóvil, en el sistema de entretenimiento hay un system on a chip.
575
+
576
+ 00:10:18.200 --> 00:10:21.600
577
+ Y la arquitectura de estos chips en ocasiones agrega cosas completamente
578
+
579
+ 00:10:21.600 --> 00:10:25.080
580
+ nuevas que no existen en la computación de escritorio,
581
+
582
+ 00:10:25.080 --> 00:10:29.520
583
+ como las unidades de procesamiento neuronal, las NPUs o Neural Processing
584
+
585
+ 00:10:29.520 --> 00:10:30.280
586
+ Units.
587
+
588
+ 00:10:30.280 --> 00:10:33.720
589
+ Apple es un pionero de esto, pero ahora todos los fabricantes lo están haciendo.
590
+
591
+ 00:10:33.720 --> 00:10:37.320
592
+ Es un chip que, como la GPU, hace procesamiento paralelo.
593
+
594
+ 00:10:37.320 --> 00:10:40.240
595
+ Pero recuerda que GPU significa Graphic Processing Unit,
596
+
597
+ 00:10:40.240 --> 00:10:41.760
598
+ la unidad de procesamiento gráfico.
599
+
600
+ 00:10:41.760 --> 00:10:43.240
601
+ No fue diseñada para eso.
602
+
603
+ 00:10:43.240 --> 00:10:46.680
604
+ Hay nuevos chips, inicialmente inventados por Google para servidores,
605
+
606
+ 00:10:46.680 --> 00:10:51.440
607
+ llamados TPU, Tensor Processor Units, que también se están colocando dentro de los
608
+
609
+ 00:10:51.440 --> 00:10:54.320
610
+ teléfonos porque los teléfonos empiezan a necesitar hacer uso de inteligencia
611
+
612
+ 00:10:54.320 --> 00:10:55.280
613
+ artificial.
614
+
615
+ 00:10:55.280 --> 00:10:59.200
616
+ Cuando tú haces un dictado de voz en el teléfono, cuando usas asistentes,
617
+
618
+ 00:10:59.200 --> 00:11:02.600
619
+ estás haciendo un uso de Machine Learning, de inteligencia artificial.
620
+
621
+ 00:11:02.600 --> 00:11:07.120
622
+ Cuando el teléfono te coloca filtros en WhatsApp o en Instagram o en Snapchat,
623
+
624
+ 00:11:07.120 --> 00:11:08.720
625
+ esto es inteligencia artificial.
626
+
627
+ 00:11:08.720 --> 00:11:12.720
628
+ Y usan estas NPUs que vienen integradas en el chip completo.
629
+
630
+ 00:11:12.720 --> 00:11:17.200
631
+ Las CPUs que están dentro de un sistema de chip son muy similares a la CPU de una
632
+
633
+ 00:11:17.200 --> 00:11:18.440
634
+ computadora normal.
635
+
636
+ 00:11:18.440 --> 00:11:22.040
637
+ Tienen igual procesamiento por gigahertz, tienen las mismas unidades,
638
+
639
+ 00:11:22.040 --> 00:11:23.440
640
+ incluso tienen núcleos.
641
+
642
+ 00:11:23.440 --> 00:11:27.720
643
+ De hecho, hoy en día es mucho más común ver multinúcleos en el chip de un
644
+
645
+ 00:11:27.720 --> 00:11:29.840
646
+ teléfono que en el chip de una computadora.
647
+
648
+ 00:11:29.840 --> 00:11:32.640
649
+ Los sistemas de chip tienen que tener hasta 16 núcleos,
650
+
651
+ 00:11:32.640 --> 00:11:36.840
652
+ donde típicamente en las computadoras de arquitectura x86 veamos cuatro a ocho
653
+
654
+ 00:11:36.840 --> 00:11:37.440
655
+ núcleos.
656
+
657
+ 00:11:37.440 --> 00:11:40.040
658
+ A medida que la inteligencia artificial captura todo el planeta,
659
+
660
+ 00:11:40.040 --> 00:11:43.520
661
+ empezamos a tener una hiper optimización de cosas distintas.
662
+
663
+ 00:11:43.520 --> 00:11:46.320
664
+ La inteligencia artificial está conectada directamente a plantas de energía
665
+
666
+ 00:11:46.320 --> 00:11:49.960
667
+ nuclear, así que el problema de la energía no es el problema que creemos.
668
+
669
+ 00:11:49.960 --> 00:11:53.560
670
+ Nuestro problema es más de memoria y de velocidad de procesamiento.
671
+
672
+ 00:11:53.560 --> 00:11:56.760
673
+ Resulta que los sistemas de chip también son ideales para esto,
674
+
675
+ 00:11:56.760 --> 00:12:02.520
676
+ porque en el modelo anterior la GPU y la memoria estaban aparte y en el modelo
677
+
678
+ 00:12:02.520 --> 00:12:08.320
679
+ nuevo el procesador de un iPhone comparte la memoria entre la CPU,
680
+
681
+ 00:12:08.320 --> 00:12:12.400
682
+ la GPU y la NPU, el procesador neural de inteligencia artificial.
683
+
684
+ 00:12:12.400 --> 00:12:15.480
685
+ Así que cuando el sistema operativo no necesita tanta RAM,
686
+
687
+ 00:12:15.480 --> 00:12:19.600
688
+ esa RAM la puede aprovechar por completo la inteligencia artificial,
689
+
690
+ 00:12:19.600 --> 00:12:21.920
691
+ haciendo estos sistemas mucho más eficientes.
692
+
693
+ 00:12:21.920 --> 00:12:27.240
694
+ Durante el 2025, China tuvo un momento en el que venció a OpenAI,
695
+
696
+ 00:12:27.240 --> 00:12:31.120
697
+ aprovechándose de esta característica para poder crear modelos de inteligencia
698
+
699
+ 00:12:31.120 --> 00:12:33.880
700
+ artificial que corran en local en laptops.
701
+
702
+ 00:12:33.880 --> 00:12:35.640
703
+ Y es parte de la razón por la que Apple,
704
+
705
+ 00:12:35.640 --> 00:12:38.560
706
+ a pesar de estar atrás en la carrera de inteligencia artificial,
707
+
708
+ 00:12:38.560 --> 00:12:41.040
709
+ sigue constantemente liderando el desarrollo de inteligencia artificial
710
+
711
+ 00:12:41.040 --> 00:12:44.640
712
+ local por los system on a chip y su arquitectura de memoria unificada.
713
+
714
+ 00:12:44.640 --> 00:12:46.640
715
+ De inteligencia artificial se puede hablar mucho más.
716
+
717
+ 00:12:46.640 --> 00:12:49.960
718
+ El system on a chip es solo un componente de una gran cantidad de cosas,
719
+
720
+ 00:12:49.960 --> 00:12:52.160
721
+ pero eso viene dentro de poco en el curso de Fundamentos de Ingeniería de
722
+
723
+ 00:12:52.160 --> 00:12:53.720
724
+ Software.
725
+
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/10-GPUs Procesadores gráficos y de AI.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f5324bf6c5224bee5ae827dcd9d716f5b15f11c2143c4faca4688d9895adc36a
3
+ size 316565371
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/10-GPUs Procesadores gráficos y de AI.vtt ADDED
@@ -0,0 +1,620 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.000 --> 00:00:08.760
4
+ Las primeras computadoras no tenían pantalla, las primeras computadoras cuando tú les colocabas datos y hacías cálculos de cómputo, te imprimían los cálculos.
5
+
6
+ 00:00:08.760 --> 00:00:17.320
7
+ Las primeras pantallas realmente no eran de computadoras, eran un instrumento electrónico para ver las ondas electromagnéticas llamada osciloscopio.
8
+
9
+ 00:00:17.320 --> 00:00:27.560
10
+ Y unos ingenieros encontraron cómo usar la imagen del osciloscopio para colocar dos palitos y una bolita que rebotaba y así nace el primer videojuego de la historia, Pong.
11
+
12
+ 00:00:27.560 --> 00:00:35.240
13
+ Desde ese momento, los videojuegos empezaron a usar la computación para empujar cada vez más lo que era posible a nivel gráfico.
14
+
15
+ 00:00:35.240 --> 00:00:39.240
16
+ Primero hubo gráficos de videojuego antes de que hubieran sistemas operativos gráficos.
17
+
18
+ 00:00:39.240 --> 00:00:47.440
19
+ En sistemas UNIX o en DOS, uno podía jugar juegos como Tetris, Prince of Persia, sin necesidad de tener todavía ventanas,
20
+
21
+ 00:00:47.440 --> 00:00:54.240
22
+ porque cargaban cada una de estas pantallas y eran juegos muy sencillos que llevaban al máximo la capacidad de los chips.
23
+
24
+ 00:00:54.240 --> 00:00:59.520
25
+ Por décadas, si no fuera por los videojuegos, no habríamos llevado los chips a su máximo nivel.
26
+
27
+ 00:00:59.520 --> 00:01:08.480
28
+ Y como estábamos llevando estos chips a su máximo nivel, empezó a existir una industria que creaba chips específicamente para poner a correr esos gráficos,
29
+
30
+ 00:01:08.480 --> 00:01:14.880
31
+ para diseño gráfico, para producción audiovisual de efectos especiales, pero sobre todo para videojuegos.
32
+
33
+ 00:01:14.880 --> 00:01:18.800
34
+ Esos chips se llaman Unidades de Procesamiento Gráfico o GPUs.
35
+
36
+ 00:01:18.800 --> 00:01:21.160
37
+ ¿Cuál es la diferencia entre una CPU y una GPU?
38
+
39
+ 00:01:21.160 --> 00:01:26.680
40
+ Como ya hemos visto en este curso, las CPUs procesan de manera seria la información a través de ciclos,
41
+
42
+ 00:01:26.680 --> 00:01:31.240
43
+ y tienen millones de transistores que hacen cálculos matemáticos hipercomplejos,
44
+
45
+ 00:01:31.240 --> 00:01:34.600
46
+ porque eso es lo que se necesita para correr una hoja de cálculo en Excel,
47
+
48
+ 00:01:34.600 --> 00:01:38.000
49
+ eso es lo que se necesita para los cálculos que necesitan navegar una página web,
50
+
51
+ 00:01:38.000 --> 00:01:40.680
52
+ y todo lo que hacemos en una computadora normal.
53
+
54
+ 00:01:40.680 --> 00:01:47.840
55
+ Una GPU realmente son muchísimos, muchísimos núcleos de procesadores chiquitos,
56
+
57
+ 00:01:47.840 --> 00:01:55.760
58
+ que hacen muchos menos cálculos con mucho menos poder, pero como son muchísimos núcleos, los hacen al mismo tiempo.
59
+
60
+ 00:01:55.760 --> 00:02:04.400
61
+ Representar una imagen en pantalla es representar un cálculo de una matriz de millones de puntos de luz, conocida como pixeles.
62
+
63
+ 00:02:04.400 --> 00:02:12.760
64
+ Cada uno de esos puntos tiene que calcular cuánto va a ser el brillo que tienen a partir de prender el rojo, el verde o el azul,
65
+
66
+ 00:02:12.760 --> 00:02:15.320
67
+ y ese brillo tiene que calcularse al mismo tiempo.
68
+
69
+ 00:02:15.320 --> 00:02:20.440
70
+ ¿Recuerdan en el pasado que algunas imágenes cargaban como si fuera una línea detrás de otra?
71
+
72
+ 00:02:20.440 --> 00:02:23.360
73
+ Eso es procesamiento serial, lo que haría una CPU.
74
+
75
+ 00:02:23.360 --> 00:02:30.000
76
+ Que la imagen de repente cargue y vaya cambiando dinámicamente es procesamiento paralelo, esa es la magia de una GPU.
77
+
78
+ 00:02:30.000 --> 00:02:34.520
79
+ Tú puedes ver los pixeles, los pixeles de un teléfono, sobre todo un teléfono moderno,
80
+
81
+ 00:02:34.520 --> 00:02:40.920
82
+ ese rojo, verde y azul, son muy chiquitos porque son microscópicos, por más de que acerques el ojo, no los vas a alcanzar a ver.
83
+
84
+ 00:02:40.960 --> 00:02:45.480
85
+ Pero si tienes un monitor de toda la vida, uno de estos monitores que no tiene tanta resolución,
86
+
87
+ 00:02:45.480 --> 00:02:50.760
88
+ puedes agarrar el monitor y acercar los ojos mucho, mucho, mucho a la pantalla mientras está prendida
89
+
90
+ 00:02:50.760 --> 00:02:54.640
91
+ y vas a alcanzar a ver las líneas de rojo, verde y azul con tus ojos humanos.
92
+
93
+ 00:02:54.640 --> 00:03:01.600
94
+ NVIDIA y ATI, que luego fue adquirida por AMD, crearon esta industria de las tarjetas gráficas.
95
+
96
+ 00:03:01.600 --> 00:03:06.440
97
+ De hecho, si no fuera por esa industria, no habría crecido la industria de las consolas de videojuegos.
98
+
99
+ 00:03:06.440 --> 00:03:11.680
100
+ Una consola de videojuegos, en esencia, es una computadora que tiene todas las partes de una computadora por dentro,
101
+
102
+ 00:03:11.680 --> 00:03:17.200
103
+ pero cuyo sistema operativo está específicamente optimizado para la reproducción de videojuegos,
104
+
105
+ 00:03:17.200 --> 00:03:19.800
106
+ y sus chips incluyen GPUs, por supuesto.
107
+
108
+ 00:03:19.800 --> 00:03:24.000
109
+ Cuando tuvimos la clase de sistemas operativos, aprendimos de interrupciones,
110
+
111
+ 00:03:24.000 --> 00:03:28.480
112
+ estos mecanismos que tiene el sistema operativo para darle prioridad a algunos procesos contra otros.
113
+
114
+ 00:03:28.480 --> 00:03:32.800
115
+ Por eso, por ejemplo, cuando tu computadora está muy colgada haciendo un proceso muy complejo,
116
+
117
+ 00:03:32.800 --> 00:03:37.920
118
+ tu mouse se puede mover a alta velocidad, porque el mouse tiene una alta prioridad en la jerarquía.
119
+
120
+ 00:03:37.920 --> 00:03:44.920
121
+ Cuando se procesa una pantalla, imagínate que la GPU se cuelgue y solamente tengas imagen en el 75% de la pantalla
122
+
123
+ 00:03:44.920 --> 00:03:47.640
124
+ y el resto se quede quieto. Sería extraño, ¿verdad?
125
+
126
+ 00:03:47.640 --> 00:03:52.880
127
+ Así que las GPUs fueron originalmente diseñadas para que toda la pantalla tenga la misma prioridad,
128
+
129
+ 00:03:52.880 --> 00:03:55.320
130
+ a través de un sistema que se conoce como pipelines.
131
+
132
+ 00:03:55.320 --> 00:03:59.160
133
+ En resumen, los primeros circuitos de GPU eran circuitos sencillos,
134
+
135
+ 00:03:59.160 --> 00:04:02.160
136
+ donde simplemente estaban encargados de sectores de la pantalla.
137
+
138
+ 00:04:02.160 --> 00:04:06.440
139
+ Todos los sectores de la pantalla tienen la misma prioridad y todos tienen que representar una imagen.
140
+
141
+ 00:04:06.440 --> 00:04:09.480
142
+ No eran nada versátiles de programar, pero por la ley de Moore,
143
+
144
+ 00:04:09.480 --> 00:04:13.080
145
+ a medida que aumentaba exponencialmente la complejidad de los transistores,
146
+
147
+ 00:04:13.080 --> 00:04:19.520
148
+ empezaron a emerger características como la característica de generar texturas
149
+
150
+ 00:04:19.520 --> 00:04:24.320
151
+ y se programaron shaders y luces y cálculos de física,
152
+
153
+ 00:04:24.320 --> 00:04:28.760
154
+ porque todo lo que necesitaba procesamiento paralelo, como pasa mucho en los videojuegos,
155
+
156
+ 00:04:28.760 --> 00:04:35.000
157
+ se podía pasar por estos cientos de miles de núcleos que hacen cálculos paralelos de alta velocidad.
158
+
159
+ 00:04:35.000 --> 00:04:37.440
160
+ Y emergió un nuevo tipo de computación paralela,
161
+
162
+ 00:04:37.440 --> 00:04:41.280
163
+ que es la forma en la que funciona toda la industria de los efectos especiales,
164
+
165
+ 00:04:41.280 --> 00:04:42.880
166
+ de los videojuegos, de la animación.
167
+
168
+ 00:04:42.880 --> 00:04:47.520
169
+ Pero como necesita nunca trabarse, no puede usar la memoria RAM tradicional
170
+
171
+ 00:04:47.520 --> 00:04:49.880
172
+ que en una computadora está muy lejos del chip.
173
+
174
+ 00:04:49.880 --> 00:04:53.080
175
+ Esto es mucho antes de los System on a Chip, que tienen todo integrado.
176
+
177
+ 00:04:53.080 --> 00:04:58.120
178
+ Así que las GPUs son tarjetas que, además de tener estos procesadores gráficos,
179
+
180
+ 00:04:58.120 --> 00:05:01.120
181
+ tienen una memoria especial independiente.
182
+
183
+ 00:05:01.120 --> 00:05:05.840
184
+ Esa memoria se conoce como VRAM y es la memoria de RAM de video,
185
+
186
+ 00:05:05.840 --> 00:05:09.920
187
+ una memoria volátil específicamente para esa computación paralela.
188
+
189
+ 00:05:09.920 --> 00:05:13.680
190
+ Así que cuando uno empieza a jugar videojuegos, uno carga datos en la VRAM.
191
+
192
+ 00:05:13.680 --> 00:05:18.840
193
+ Ahí es donde se cargan las texturas de tu videojuego, los polígonos y todos esos cálculos de física que vas a usar
194
+
195
+ 00:05:18.840 --> 00:05:20.480
196
+ cuando estás jugando un juego tridimensional.
197
+
198
+ 00:05:20.480 --> 00:05:23.000
199
+ ¿Qué otras cosas requieren procesamiento paralelo?
200
+
201
+ 00:05:23.000 --> 00:05:24.840
202
+ Por ejemplo, el mundo.
203
+
204
+ 00:05:24.840 --> 00:05:30.520
205
+ Cuando tú quieres modelar el sistema de las nubes para poder predecir el clima,
206
+
207
+ 00:05:30.520 --> 00:05:34.040
208
+ pues eso es el procesamiento paralelo de muchísimas variables al mismo tiempo.
209
+
210
+ 00:05:34.040 --> 00:05:37.320
211
+ Así que las GPUs eran ideales para simulación.
212
+
213
+ 00:05:37.320 --> 00:05:43.360
214
+ Hubo una época en la que investigadores que creaban supercomputadoras para simulaciones de física,
215
+
216
+ 00:05:43.360 --> 00:05:49.560
217
+ de estrellas, agujeros negros, etcétera, se dieron cuenta que el chip del PlayStation 3,
218
+
219
+ 00:05:49.560 --> 00:05:54.400
220
+ un chip creado por IBM que combinaba CPU y GPU para los videojuegos de PlayStation 3,
221
+
222
+ 00:05:54.400 --> 00:05:56.600
223
+ era increíblemente eficiente.
224
+
225
+ 00:05:56.600 --> 00:05:59.880
226
+ Y como en el PlayStation 3 se puede instalar Linux de toda la vida,
227
+
228
+ 00:05:59.880 --> 00:06:06.040
229
+ empezaron a comprar PlayStation 3 en masa y a crear clústeres de PlayStation con Linux
230
+
231
+ 00:06:06.040 --> 00:06:09.520
232
+ para hacer simulaciones y fabricar supercomputadoras.
233
+
234
+ 00:06:09.520 --> 00:06:12.120
235
+ Mucho más barato de lo que cuesta una supercomputadora.
236
+
237
+ 00:06:12.120 --> 00:06:16.840
238
+ Porque al final del día, un videojuego no es más que una simulación del mundo real.
239
+
240
+ 00:06:16.840 --> 00:06:19.160
241
+ Así que me servía perfecto para la física.
242
+
243
+ 00:06:19.160 --> 00:06:23.200
244
+ Porque el dinero, Sony, Microsoft con el Xbox o Nintendo con...
245
+
246
+ 00:06:23.200 --> 00:06:26.880
247
+ Bueno, Nintendo es una excepción, la verdad, Nintendo sí hace plata con las consolas.
248
+
249
+ 00:06:26.880 --> 00:06:30.480
250
+ Pero Sony y Microsoft no hacen dinero con el PlayStation o con el Xbox.
251
+
252
+ 00:06:30.480 --> 00:06:34.600
253
+ Lo venden a pérdida porque ganan dinero con la venta de los videojuegos.
254
+
255
+ 00:06:34.600 --> 00:06:36.840
256
+ PlayStation 3 era vendido a pérdida.
257
+
258
+ 00:06:36.840 --> 00:06:40.560
259
+ Así que PlayStation estaba perdiendo dinero haciendo todas estas consolas
260
+
261
+ 00:06:40.560 --> 00:06:44.480
262
+ para las que nunca se iban a comprar videojuegos porque las estaban usando científicos
263
+
264
+ 00:06:44.480 --> 00:06:47.440
265
+ y pues cerraron el chorro y dejaron de permitir esto.
266
+
267
+ 00:06:47.440 --> 00:06:50.360
268
+ Pero por un momento mágico, por un momento mágico,
269
+
270
+ 00:06:50.360 --> 00:06:52.800
271
+ la computación científica corría en PlayStation.
272
+
273
+ 00:06:52.800 --> 00:06:56.280
274
+ La inteligencia artificial también es procesamiento paralelo.
275
+
276
+ 00:06:56.280 --> 00:07:00.720
277
+ Cuando tú usas un modelo de lenguaje de inteligencia artificial para generar un texto,
278
+
279
+ 00:07:00.720 --> 00:07:05.040
280
+ el modelo de lenguaje empieza a recorrer un árbol gigantesco
281
+
282
+ 00:07:05.040 --> 00:07:08.560
283
+ de la estructura del lenguaje humano con el que fue entrenado.
284
+
285
+ 00:07:08.560 --> 00:07:11.800
286
+ Y trata de encontrar diferentes caminos para responder una pregunta
287
+
288
+ 00:07:11.800 --> 00:07:15.640
289
+ que tú le haces a ChatGPT o a DeepSeek o a Cloud o a Gemini
290
+
291
+ 00:07:15.640 --> 00:07:18.360
292
+ o al modelo que estés usando en el momento en el que estés viendo este curso.
293
+
294
+ 00:07:18.360 --> 00:07:24.440
295
+ El punto es que ese procesamiento paralelo ocurre en GPUs originalmente,
296
+
297
+ 00:07:24.440 --> 00:07:26.800
298
+ pero luego hemos empezado a usar chips especializados,
299
+
300
+ 00:07:26.800 --> 00:07:28.160
301
+ pero eso viene más adelante.
302
+
303
+ 00:07:28.160 --> 00:07:31.440
304
+ Inicialmente, los primeros modelos de inteligencia artificial
305
+
306
+ 00:07:31.440 --> 00:07:34.680
307
+ antes de la superinteligencia fueron entrenados en GPUs.
308
+
309
+ 00:07:34.680 --> 00:07:40.120
310
+ Los autónomos autónomos como los Tesla o Waymo de Google usan GPUs
311
+
312
+ 00:07:40.120 --> 00:07:45.080
313
+ porque así como una GPU tiene que procesar al mismo tiempo cada píxel de una pantalla,
314
+
315
+ 00:07:45.080 --> 00:07:50.520
316
+ un automóvil usa las cámaras y los radares que tiene en el marco del automóvil,
317
+
318
+ 00:07:50.520 --> 00:07:53.920
319
+ en su estructura, para capturar imágenes del mundo exterior.
320
+
321
+ 00:07:53.920 --> 00:07:56.720
322
+ Esa captura de imágenes tiene que ser procesada en tiempo real
323
+
324
+ 00:07:56.720 --> 00:07:59.560
325
+ para convertirla en los ponígonos tridimensionales
326
+
327
+ 00:07:59.560 --> 00:08:02.280
328
+ que le permiten a un algoritmo de inteligencia artificial
329
+
330
+ 00:08:02.280 --> 00:08:05.440
331
+ decidir si el auto va a frenar, acelerar o moverse.
332
+
333
+ 00:08:05.440 --> 00:08:09.000
334
+ Sin GPUs, ese procesamiento paralelo de alta velocidad,
335
+
336
+ 00:08:09.000 --> 00:08:12.320
337
+ de cálculos relativamente simples, pero millones al mismo tiempo,
338
+
339
+ 00:08:12.320 --> 00:08:13.200
340
+ no sería posible.
341
+
342
+ 00:08:13.200 --> 00:08:17.640
343
+ Las CPUs normales se programan con un lenguaje ensamblador.
344
+
345
+ 00:08:17.640 --> 00:08:21.480
346
+ Ese lenguaje es el que arranca el kernel y el que habla el sistema operativo.
347
+
348
+ 00:08:21.480 --> 00:08:27.080
349
+ Las aplicaciones se programan en lenguajes como C++, Python, Visual Basic, entre otros.
350
+
351
+ 00:08:27.080 --> 00:08:30.720
352
+ Pero todos esos lenguajes compilan al lenguaje ensamblador de la CPU.
353
+
354
+ 00:08:30.720 --> 00:08:32.800
355
+ Las GPUs tienen algo muy parecido.
356
+
357
+ 00:08:32.800 --> 00:08:36.560
358
+ Y fabricantes como Nvidia han creado lenguajes intermedios
359
+
360
+ 00:08:36.560 --> 00:08:39.760
361
+ para que los programadores le hablen al metal,
362
+
363
+ 00:08:39.760 --> 00:08:42.440
364
+ para que puedan programar el chip de la GPU.
365
+
366
+ 00:08:42.440 --> 00:08:46.200
367
+ El más popular en este momento se llama CUDA de Nvidia.
368
+
369
+ 00:08:46.200 --> 00:08:48.480
370
+ Inicialmente pensaba para videojuegos,
371
+
372
+ 00:08:48.480 --> 00:08:52.840
373
+ CUDA es parte de la razón por la que la revolución de la inteligencia artificial es posible.
374
+
375
+ 00:08:52.840 --> 00:08:55.720
376
+ Porque permite hacer estos cálculos masivos
377
+
378
+ 00:08:55.720 --> 00:08:59.880
379
+ reprogramando el comportamiento de chips que originalmente fueron pensados
380
+
381
+ 00:08:59.880 --> 00:09:00.840
382
+ para mover pixeles.
383
+
384
+ 00:09:00.840 --> 00:09:05.520
385
+ Las GPUs también se programan y se diseñan a nivel físico de hardware
386
+
387
+ 00:09:05.520 --> 00:09:07.600
388
+ con consideraciones distintas.
389
+
390
+ 00:09:07.600 --> 00:09:09.880
391
+ La CPU, que es el procesador que arranca el sistema operativo,
392
+
393
+ 00:09:09.880 --> 00:09:13.800
394
+ está en el corazón de la tarjeta madre de una computadora
395
+
396
+ 00:09:13.800 --> 00:09:16.200
397
+ o de la tarjeta central de un teléfono.
398
+
399
+ 00:09:16.200 --> 00:09:21.440
400
+ Pero la GPU se conecta a alta velocidad a través de un puerto que se llama PCI-E,
401
+
402
+ 00:09:21.440 --> 00:09:24.080
403
+ que es un puerto, es una serie de muesquitas
404
+
405
+ 00:09:24.080 --> 00:09:27.680
406
+ que se conectan directamente a la electrónica de la tarjeta madre.
407
+
408
+ 00:09:27.680 --> 00:09:31.440
409
+ En un teléfono o en una computadora de Apple que tienen System on a Chip,
410
+
411
+ 00:09:31.440 --> 00:09:35.400
412
+ las GPUs directamente están pegadas a la CPU en el System on a Chip,
413
+
414
+ 00:09:35.400 --> 00:09:36.880
415
+ como lo vimos en la clase anterior.
416
+
417
+ 00:09:36.880 --> 00:09:40.920
418
+ En una computadora normal, la CPU tiene un ventilador o un sistema
419
+
420
+ 00:09:40.920 --> 00:09:43.840
421
+ de refrigeramiento por agua que enfría la CPU.
422
+
423
+ 00:09:43.840 --> 00:09:47.480
424
+ Pero las GPUs también se calientan, así que tienen sus propios sistemas
425
+
426
+ 00:09:47.480 --> 00:09:50.680
427
+ de enfriamiento paralelo, sus propios ventiladores o su propia
428
+
429
+ 00:09:50.680 --> 00:09:51.920
430
+ refrigeración de agua.
431
+
432
+ 00:09:51.920 --> 00:09:54.840
433
+ En algunos casos, como en las computadoras de videojuegos más
434
+
435
+ 00:09:54.840 --> 00:09:57.920
436
+ poderosas, o en las computadoras de render de efectos especiales,
437
+
438
+ 00:09:57.920 --> 00:10:02.160
439
+ o en las supercomputadoras de simulación para efectos científicos,
440
+
441
+ 00:10:02.160 --> 00:10:04.440
442
+ llegan a enfriarlas con aceite.
443
+
444
+ 00:10:04.440 --> 00:10:06.400
445
+ El aceite no conduce la electricidad.
446
+
447
+ 00:10:06.400 --> 00:10:10.080
448
+ Así que hay computadoras que se hunden en aceite para que el aceite
449
+
450
+ 00:10:10.080 --> 00:10:11.000
451
+ disipe el calor.
452
+
453
+ 00:10:11.000 --> 00:10:13.840
454
+ Más adelante vamos a hablar de codecs, que son codificadores de
455
+
456
+ 00:10:13.840 --> 00:10:17.160
457
+ codificadores, un tipo de algoritmo de compresión y descompresión que
458
+
459
+ 00:10:17.160 --> 00:10:19.880
460
+ es, por ejemplo, la forma en la que funciona el video.
461
+
462
+ 00:10:19.880 --> 00:10:24.040
463
+ Los videos antes eran súper pesados y ahora son mucho más livianos.
464
+
465
+ 00:10:24.040 --> 00:10:26.960
466
+ Antes teníamos Blu-rays y ahora tenemos YouTube y Netflix.
467
+
468
+ 00:10:26.960 --> 00:10:31.720
469
+ Pero esos son algoritmos que gastan muchísimo de el chip.
470
+
471
+ 00:10:31.720 --> 00:10:34.320
472
+ Y antes usaban la GPU y mucho antes la CPU.
473
+
474
+ 00:10:34.320 --> 00:10:39.360
475
+ Ahora usan transistores especializados dentro de la GPU como instrucciones
476
+
477
+ 00:10:39.360 --> 00:10:42.760
478
+ que solamente se encargan de codificar y decodificar video,
479
+
480
+ 00:10:42.760 --> 00:10:44.880
481
+ usando mucho menos electricidad.
482
+
483
+ 00:10:44.880 --> 00:10:47.200
484
+ Lo mismo pasa con la simulación de ciertos videojuegos.
485
+
486
+ 00:10:47.200 --> 00:10:48.520
487
+ Los videojuegos empezaron, por ejemplo,
488
+
489
+ 00:10:48.520 --> 00:10:51.480
490
+ a simular el comportamiento de los fotones del mundo real,
491
+
492
+ 00:10:51.480 --> 00:10:55.040
493
+ el comportamiento de la luz, con una técnica llamada ray tracing,
494
+
495
+ 00:10:55.040 --> 00:10:57.640
496
+ que inicialmente se programaba en código,
497
+
498
+ 00:10:57.640 --> 00:11:02.440
499
+ pero ahora se crean el transistor en los chips y la GPU tiene unidades
500
+
501
+ 00:11:02.440 --> 00:11:04.440
502
+ específicamente diseñadas para ray tracing.
503
+
504
+ 00:11:04.440 --> 00:11:06.440
505
+ Con la inteligencia artificial pasa lo mismo.
506
+
507
+ 00:11:06.440 --> 00:11:08.160
508
+ La inteligencia artificial es, en esencia,
509
+
510
+ 00:11:08.160 --> 00:11:11.760
511
+ multiplicación de matrices y recorrido de árboles.
512
+
513
+ 00:11:11.760 --> 00:11:15.600
514
+ Eso se puede programar en el chip y es la esencia de las unidades de
515
+
516
+ 00:11:15.600 --> 00:11:17.040
517
+ procesamiento neural.
518
+
519
+ 00:11:17.040 --> 00:11:19.680
520
+ Nvidia, por ejemplo, tiene unos chips que solo hacen eso,
521
+
522
+ 00:11:19.680 --> 00:11:20.800
523
+ que vamos a ver más adelante.
524
+
525
+ 00:11:20.800 --> 00:11:24.400
526
+ Antes de que la inteligencia artificial consumiera masivas cantidades de chips
527
+
528
+ 00:11:24.400 --> 00:11:27.600
529
+ gráficos, lo hizo las criptomonedas.
530
+
531
+ 00:11:27.600 --> 00:11:31.800
532
+ Bitcoin y casi todas las monedas que usan blockchain requieren hacer un tipo de
533
+
534
+ 00:11:31.800 --> 00:11:35.520
535
+ cálculo matemático muy particular para que el blockchain funcione de manera
536
+
537
+ 00:11:35.520 --> 00:11:36.440
538
+ cifrada.
539
+
540
+ 00:11:36.440 --> 00:11:40.040
541
+ Ese cálculo es más amigable en procesamiento paralelo que en
542
+
543
+ 00:11:40.040 --> 00:11:41.280
544
+ procesamiento serial.
545
+
546
+ 00:11:41.280 --> 00:11:43.160
547
+ Así que aprovecha las GPUs.
548
+
549
+ 00:11:43.160 --> 00:11:47.560
550
+ Y como Bitcoin recompensa con criptomonedas a las personas que hacen
551
+
552
+ 00:11:47.560 --> 00:11:50.320
553
+ este proceso de ejecutar las ecuaciones matemáticas,
554
+
555
+ 00:11:50.320 --> 00:11:54.200
556
+ llamado criptominería, se creó toda una industria de minería de Bitcoin,
557
+
558
+ 00:11:54.200 --> 00:11:58.600
559
+ que es poner a correr estas GPUs al máximo en grandes granjas de servidores
560
+
561
+ 00:11:58.600 --> 00:12:02.200
562
+ pegadas a granjas de hidroeléctricas, plantas de energía nuclear,
563
+
564
+ 00:12:02.200 --> 00:12:04.280
565
+ energía basada en gas, etcétera.
566
+
567
+ 00:12:04.280 --> 00:12:07.800
568
+ Hay países enteros que tienen cosas así, como por ejemplo El Salvador.
569
+
570
+ 00:12:07.800 --> 00:12:11.800
571
+ Eso hizo que la demanda de chips aumentara justo antes de que llegara la
572
+
573
+ 00:12:11.800 --> 00:12:12.880
574
+ inteligencia artificial.
575
+
576
+ 00:12:12.880 --> 00:12:16.880
577
+ No es como que las GPUs hayan abandonado la industria de los videojuegos.
578
+
579
+ 00:12:16.880 --> 00:12:18.400
580
+ Todavía hay mucha innovación.
581
+
582
+ 00:12:18.400 --> 00:12:22.840
583
+ Valve, la empresa detrás de juegos como Portal, Half-Life y el sistema Steam,
584
+
585
+ 00:12:22.840 --> 00:12:26.840
586
+ tiene un sistema operativo llamado SteamOS que reemplaza el sistema operativo que
587
+
588
+ 00:12:26.880 --> 00:12:30.480
589
+ estás creando en tu computadora para maximizar el uso de recursos para un
590
+
591
+ 00:12:30.480 --> 00:12:31.320
592
+ videojuego,
593
+
594
+ 00:12:31.320 --> 00:12:34.840
595
+ de tal manera que tu computadora se vuelve en esencia una consola de videojuegos.
596
+
597
+ 00:12:34.840 --> 00:12:39.800
598
+ También la realidad aumentada y la realidad virtual han aumentado la necesidad
599
+
600
+ 00:12:39.800 --> 00:12:44.360
601
+ de procesadores gráficos porque en cada ojo estás procesando dos pantallas
602
+
603
+ 00:12:44.360 --> 00:12:48.800
604
+ distintas para crear esa sensación de tridimensionalidad y presencia que tiene
605
+
606
+ 00:12:48.800 --> 00:12:49.840
607
+ la realidad virtual.
608
+
609
+ 00:12:49.840 --> 00:12:53.640
610
+ Así que aún sigue habiendo mucha innovación gráfica,
611
+
612
+ 00:12:53.640 --> 00:12:57.200
613
+ solo que la inteligencia artificial lo absorbió mucho y todavía tenemos mucho
614
+
615
+ 00:12:57.200 --> 00:12:58.680
616
+ de procesamiento científico que hacer.
617
+
618
+ 00:12:58.680 --> 00:13:03.000
619
+ Las GPUs son un procesador revolucionario que avanzó la ciencia humana.
620
+
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/10-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Lecturas recomendadas.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ https://platzi.com/cursos/programacion-basica/
2
+ https://platzi.com/cursos/python/
3
+ https://platzi.com/cursos/javascript/
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Qué es un algoritmo y qué es un lenguaje de programación.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:82efbc8c241e28e08dd893d1b2376012093e10e95014cfe307b0898b98f1281d
3
+ size 167399896
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Qué es un algoritmo y qué es un lenguaje de programación.vtt ADDED
@@ -0,0 +1,469 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.240 --> 00:00:02.820
4
+ Un algoritmo es un conjunto de pasos lógicos
5
+
6
+ 00:00:03.199 --> 00:00:06.879
7
+ claramente definidos de una manera no ambigua para
8
+
9
+ 00:00:06.879 --> 00:00:09.139
10
+ resolver un problema o para lograr un objetivo.
11
+
12
+ 00:00:09.280 --> 00:00:11.679
13
+ En este caso, vamos a imaginarnos un sistema
14
+
15
+ 00:00:11.679 --> 00:00:15.045
16
+ de aire acondicionado. Un aire acondicionado, muy simplificado,
17
+
18
+ 00:00:15.145 --> 00:00:18.485
19
+ es un sistema relativamente simple. Los aires acondicionados
20
+
21
+ 00:00:18.545 --> 00:00:22.705
22
+ hacen 2 cosas, calientan el aire o enfrían
23
+
24
+ 00:00:22.705 --> 00:00:24.465
25
+ el aire, pero una vez el aire está
26
+
27
+ 00:00:24.465 --> 00:00:27.445
28
+ caliente o frío, el siguiente paso es distribuirlo
29
+
30
+ 00:00:27.585 --> 00:00:30.530
31
+ alrededor del área que quieres condicionar, así que
32
+
33
+ 00:00:30.530 --> 00:00:33.090
34
+ tienes que ventilar el aire. Y si el
35
+
36
+ 00:00:33.090 --> 00:00:35.570
37
+ aire ya está a la temperatura deseada por
38
+
39
+ 00:00:35.570 --> 00:00:37.730
40
+ el usuario, tienes que dejar de ventilar el
41
+
42
+ 00:00:37.730 --> 00:00:39.670
43
+ aire, o si no, vas a perder esa
44
+
45
+ 00:00:39.810 --> 00:00:42.210
46
+ temperatura. Para ello, los aires acondicionados usan un
47
+
48
+ 00:00:42.210 --> 00:00:47.435
49
+ termostato. El termostato está constantemente midiendo la temperatura
50
+
51
+ 00:00:47.435 --> 00:00:49.755
52
+ del aire comparada con la temperatura que el
53
+
54
+ 00:00:49.755 --> 00:00:52.795
55
+ usuario tiene. ¿Cómo expresamos, entonces, todas estas funciones
56
+
57
+ 00:00:52.795 --> 00:00:55.855
58
+ de una manera algorítmica? Primero, tenemos que definir
59
+
60
+ 00:00:55.915 --> 00:00:59.010
61
+ unas variables. Tenemos nuestro termostato y nuestro termostato
62
+
63
+ 00:00:59.070 --> 00:01:02.270
64
+ sabe 2 cosas, la temperatura actual, definida como
65
+
66
+ 00:01:02.270 --> 00:01:04.830
67
+ la variable temperatura, y la temperatura que el
68
+
69
+ 00:01:04.830 --> 00:01:08.990
70
+ usuario quiere, definida como la variable usuario. Asumamos
71
+
72
+ 00:01:08.990 --> 00:01:11.470
73
+ para este ejercicio que la temperatura actual del
74
+
75
+ 00:01:11.470 --> 00:01:14.105
76
+ lugar donde estamos es de 20 grados, y
77
+
78
+ 00:01:14.105 --> 00:01:15.865
79
+ la temperatura que el usuario quiere es de
80
+
81
+ 00:01:15.865 --> 00:01:19.145
82
+ 24 grados. Lo siguiente que tenemos que hacer
83
+
84
+ 00:01:19.145 --> 00:01:22.025
85
+ es definir si lo que tenemos que hacer
86
+
87
+ 00:01:22.025 --> 00:01:26.045
88
+ es calentar o enfriar. Así que creamos una
89
+
90
+ 00:01:26.425 --> 00:01:29.860
91
+ condición, y la condición es si la temperatura
92
+
93
+ 00:01:29.860 --> 00:01:32.100
94
+ es menor que la que el usuario quiere,
95
+
96
+ 00:01:32.100 --> 00:01:34.020
97
+ ¿qué tenemos que hacer? Es decir, si la
98
+
99
+ 00:01:34.020 --> 00:01:35.780
100
+ temperatura, que en este caso es 20, es
101
+
102
+ 00:01:35.780 --> 00:01:37.500
103
+ menor a la que el usuario quiere, que
104
+
105
+ 00:01:37.500 --> 00:01:40.500
106
+ es 24, significa que está más frío. Así
107
+
108
+ 00:01:40.500 --> 00:01:43.615
109
+ que tenemos que encender el aire acondicionado en
110
+
111
+ 00:01:43.615 --> 00:01:47.255
112
+ modo de calentamiento, tenemos que calentar el aire.
113
+
114
+ 00:01:47.255 --> 00:01:50.094
115
+ Y luego deberíamos ventilar, pero eso no es
116
+
117
+ 00:01:50.094 --> 00:01:53.454
118
+ suficiente, porque ¿en qué momento logramos parar de
119
+
120
+ 00:01:53.454 --> 00:01:55.935
121
+ ventilar? Digamos que la ventilación es un proceso
122
+
123
+ 00:01:55.935 --> 00:01:58.729
124
+ que ocurre cada segundo y digamos que nuestro
125
+
126
+ 00:01:58.729 --> 00:02:02.270
127
+ sistema está corriendo un ciclo de cada segundo,
128
+
129
+ 00:02:02.650 --> 00:02:04.890
130
+ cada segundo y un ciclo que evalúa esto.
131
+
132
+ 00:02:04.890 --> 00:02:08.009
133
+ Entonces, cada segundo es un ciclo que se
134
+
135
+ 00:02:08.009 --> 00:02:10.845
136
+ tiene que expresar en el algoritmo. Decimos que
137
+
138
+ 00:02:10.845 --> 00:02:15.004
139
+ cada segundo, si la temperatura es menor que
140
+
141
+ 00:02:15.004 --> 00:02:17.724
142
+ la que pide el usuario, calentamos. Y si
143
+
144
+ 00:02:17.724 --> 00:02:20.385
145
+ no, entonces lo que deberíamos hacer es enfriar.
146
+
147
+ 00:02:20.605 --> 00:02:23.325
148
+ Y todo esto, ¿siempre debemos estar ventilando? Claro
149
+
150
+ 00:02:23.325 --> 00:02:25.084
151
+ que no. ¿Qué pasa si la temperatura está
152
+
153
+ 00:02:25.084 --> 00:02:27.640
154
+ perfecta? Pues, ventilar sería un problema para el
155
+
156
+ 00:02:27.640 --> 00:02:31.500
157
+ usuario. Solamente tenemos que ventilar cuando la temperatura
158
+
159
+ 00:02:31.560 --> 00:02:35.560
160
+ sea distinta. Por ende, necesitamos otra estructura, un
161
+
162
+ 00:02:35.560 --> 00:02:38.855
163
+ ciclo que ocurra en cada segundo, donde preguntemos
164
+
165
+ 00:02:39.075 --> 00:02:41.395
166
+ si la temperatura es diferente a la del
167
+
168
+ 00:02:41.395 --> 00:02:44.515
169
+ usuario. Así que podemos colocar que mientras la
170
+
171
+ 00:02:44.515 --> 00:02:47.555
172
+ temperatura actual sea diferente a la del usuario,
173
+
174
+ 00:02:47.555 --> 00:02:49.955
175
+ hacemos la condición. Mientras la temperatura sea diferente
176
+
177
+ 00:02:49.955 --> 00:02:52.504
178
+ a la del usuario, si temperatura es menor
179
+
180
+ 00:02:52.504 --> 00:02:55.099
181
+ que el usuario, calentamos y, si no, enfriamos.
182
+
183
+ 00:02:55.239 --> 00:02:57.080
184
+ Y, sin importar cualquiera de las 2 que
185
+
186
+ 00:02:57.080 --> 00:02:59.239
187
+ pase, sabemos que la temperatura es diferente, así
188
+
189
+ 00:02:59.239 --> 00:03:02.200
190
+ que le decimos ventilar. Y este ciclo solamente
191
+
192
+ 00:03:02.200 --> 00:03:03.799
193
+ va a ocurrir en los casos en los
194
+
195
+ 00:03:03.799 --> 00:03:06.120
196
+ que la temperatura sea diferente y, si no,
197
+
198
+ 00:03:06.120 --> 00:03:08.945
199
+ lo sacamos, y esto ocurre cada segundo en
200
+
201
+ 00:03:08.945 --> 00:03:11.505
202
+ el ciclo de un aire acondicionado. Hay algoritmos
203
+
204
+ 00:03:11.505 --> 00:03:13.505
205
+ más simples. Si tienes un hervidor que tiene
206
+
207
+ 00:03:13.505 --> 00:03:15.685
208
+ que hervir el agua hasta 100 grados centígrados,
209
+
210
+ 00:03:15.985 --> 00:03:17.345
211
+ lo que hace es que, una vez está
212
+
213
+ 00:03:17.345 --> 00:03:19.550
214
+ lleno de agua, al oprimir el botón, muy
215
+
216
+ 00:03:19.550 --> 00:03:22.350
217
+ probablemente lo que pasa es que internamente la
218
+
219
+ 00:03:22.350 --> 00:03:26.670
220
+ electrónica de tu hervidor dice, mientras el agua
221
+
222
+ 00:03:26.670 --> 00:03:29.950
223
+ sea de menor temperatura a 100 grados, mantén
224
+
225
+ 00:03:29.950 --> 00:03:32.834
226
+ el elemento de calor calentando, de tal manera
227
+
228
+ 00:03:32.834 --> 00:03:34.835
229
+ que, cuando sea mayor de 100 grados, ese
230
+
231
+ 00:03:34.835 --> 00:03:37.555
232
+ mientras deja de funcionar y, al terminar de
233
+
234
+ 00:03:37.555 --> 00:03:40.115
235
+ funcionar el ciclo, se apaga. Esa función de
236
+
237
+ 00:03:40.115 --> 00:03:42.275
238
+ apagarse cuando el agua sea mayor de 100
239
+
240
+ 00:03:42.275 --> 00:03:45.115
241
+ grados, o calentar mientras el agua sea menor
242
+
243
+ 00:03:45.115 --> 00:03:47.489
244
+ a 100 grados, es un algoritmo. Un algoritmo
245
+
246
+ 00:03:47.870 --> 00:03:50.690
247
+ es, entonces, una serie de instrucciones, una expresión
248
+
249
+ 00:03:50.830 --> 00:03:53.230
250
+ matemática de las órdenes que se le puede
251
+
252
+ 00:03:53.230 --> 00:03:55.629
253
+ dar a un sistema. Un lenguaje de programación
254
+
255
+ 00:03:55.629 --> 00:03:58.989
256
+ no es necesariamente un algoritmo. Los lenguajes de
257
+
258
+ 00:03:58.989 --> 00:04:01.504
259
+ programación son un lenguaje a través del cual
260
+
261
+ 00:04:01.504 --> 00:04:04.144
262
+ los algoritmos se expresan, pero tú puedes expresar
263
+
264
+ 00:04:04.144 --> 00:04:06.305
265
+ un algoritmo como quieras. Cuando te dan una
266
+
267
+ 00:04:06.305 --> 00:04:08.625
268
+ serie de instrucciones para completar una tarea, una
269
+
270
+ 00:04:08.625 --> 00:04:10.465
271
+ serie de procesos que tienes que hacer en
272
+
273
+ 00:04:10.465 --> 00:04:12.944
274
+ tu trabajo, esos que están haciendo es darte
275
+
276
+ 00:04:12.944 --> 00:04:15.000
277
+ un algoritmo para que tú ejecutes, y tú
278
+
279
+ 00:04:15.000 --> 00:04:18.621
280
+ no eres un lenguaje de programación. Los lenguajes
281
+
282
+ 00:04:18.621 --> 00:04:21.880
283
+ de programación son mecanismos escritos típicamente en un
284
+
285
+ 00:04:21.880 --> 00:04:25.400
286
+ lenguaje inglés adaptado, como por ejemplo JavaScript, Python,
287
+
288
+ 00:04:25.400 --> 00:04:28.474
289
+ C más más Visual Basic, que transforman estas
290
+
291
+ 00:04:28.474 --> 00:04:31.275
292
+ instrucciones en el lenguaje de la máquina. El
293
+
294
+ 00:04:31.275 --> 00:04:33.115
295
+ lenguaje de la máquina es el lenguaje que
296
+
297
+ 00:04:33.115 --> 00:04:35.615
298
+ usan los chips para hacer estas operaciones matemáticas.
299
+
300
+ 00:04:35.914 --> 00:04:37.675
301
+ Este lenguaje, lo hemos visto en otras clases,
302
+
303
+ 00:04:37.675 --> 00:04:40.955
304
+ es conocido como assembler o lenguaje ensamblado o
305
+
306
+ 00:04:40.955 --> 00:04:45.040
307
+ ensamblador. En nuestra era moderna, los lenguajes corren
308
+
309
+ 00:04:45.040 --> 00:04:47.440
310
+ en el chip de 2 maneras. Hay un
311
+
312
+ 00:04:47.440 --> 00:04:50.400
313
+ tipo de lenguajes, como por ejemplo Java 0C0C
314
+
315
+ 00:04:50.400 --> 00:04:53.600
316
+ más más, que cuando se transforman al lenguaje
317
+
318
+ 00:04:53.600 --> 00:04:56.255
319
+ de máquina, pasan por un proceso llamado compilación.
320
+
321
+ 00:04:57.035 --> 00:05:00.155
322
+ La compilación es transformar ese lenguaje legible por
323
+
324
+ 00:05:00.155 --> 00:05:02.315
325
+ humanos en el lenguaje de ceros y unos
326
+
327
+ 00:05:02.315 --> 00:05:04.895
328
+ de la CPU. El resultado de la compilación
329
+
330
+ 00:05:05.115 --> 00:05:07.970
331
+ es un archivo ejecutable. En Windows son los
332
+
333
+ 00:05:07.970 --> 00:05:11.490
334
+ archivos que tienen extensión punto exe. En Linux
335
+
336
+ 00:05:11.490 --> 00:05:13.570
337
+ o en Mac son los archivos que tienen
338
+
339
+ 00:05:13.570 --> 00:05:17.009
340
+ permisos de ejecución, y son los ejecutables, las
341
+
342
+ 00:05:17.009 --> 00:05:19.889
343
+ aplicaciones que arrancan como una app que corren
344
+
345
+ 00:05:19.889 --> 00:05:22.285
346
+ como un mecanismo del sistema. El otro mecanismo
347
+
348
+ 00:05:22.285 --> 00:05:24.305
349
+ de ejecución de un lenguaje se llaman lenguajes
350
+
351
+ 00:05:24.685 --> 00:05:28.525
352
+ interpretados o interpretación. Cuando tú corres JavaScript en
353
+
354
+ 00:05:28.525 --> 00:05:30.685
355
+ el navegador o cuando usas algunos lenguajes de
356
+
357
+ 00:05:30.685 --> 00:05:33.885
358
+ scripting, como por ejemplo Python, estos lenguajes llamados
359
+
360
+ 00:05:33.885 --> 00:05:36.870
361
+ de scripting son lenguajes que se interpretan sobre
362
+
363
+ 00:05:36.870 --> 00:05:38.789
364
+ la marcha, es decir, se van leyendo línea
365
+
366
+ 00:05:38.789 --> 00:05:40.949
367
+ a línea, y en la memoria RAM la
368
+
369
+ 00:05:40.949 --> 00:05:44.069
370
+ computadora y su intérprete, el intérprete de JavaScript,
371
+
372
+ 00:05:44.069 --> 00:05:46.229
373
+ por ejemplo, es el navegador, o el intérprete
374
+
375
+ 00:05:46.229 --> 00:05:49.125
376
+ de Python es el sistema de ejecución en
377
+
378
+ 00:05:49.125 --> 00:05:51.305
379
+ tiempo real de Python, que se llama Python.
380
+
381
+ 00:05:51.764 --> 00:05:53.764
382
+ Ellos lo que hacen es transformar línea en
383
+
384
+ 00:05:53.764 --> 00:05:55.525
385
+ línea el código a código que corre en
386
+
387
+ 00:05:55.525 --> 00:05:58.405
388
+ el chip, pero sin compilarlo. De hecho, existe
389
+
390
+ 00:05:58.405 --> 00:06:00.585
391
+ una técnica muy interesante que se llama JIT,
392
+
393
+ 00:06:00.725 --> 00:06:02.949
394
+ Just in Time Compilling, que lo que hace
395
+
396
+ 00:06:02.949 --> 00:06:06.870
397
+ es compilar justo antes de ejecutar, corriéndolo todo
398
+
399
+ 00:06:06.870 --> 00:06:08.789
400
+ en la memoria RAM de una manera segura,
401
+
402
+ 00:06:08.789 --> 00:06:10.710
403
+ pero esos son términos avanzados de programación que
404
+
405
+ 00:06:10.710 --> 00:06:13.030
406
+ vas a ir aprendiendo después. Te recomiendo mucho
407
+
408
+ 00:06:13.030 --> 00:06:15.750
409
+ que empieces con cualquier lenguaje. Tenemos 3 cursos
410
+
411
+ 00:06:15.750 --> 00:06:17.430
412
+ que te convienen en este momento, el curso
413
+
414
+ 00:06:17.430 --> 00:06:19.965
415
+ de programación básica, el curso de Python o
416
+
417
+ 00:06:19.965 --> 00:06:22.965
418
+ el curso de JavaScript. Sea el que sea,
419
+
420
+ 00:06:22.965 --> 00:06:24.445
421
+ aprender un lenguaje de programación te va a
422
+
423
+ 00:06:24.445 --> 00:06:26.764
424
+ convenir mucho. Solamente recuerda que no se trata
425
+
426
+ 00:06:26.764 --> 00:06:29.164
427
+ de casarte con un lenguaje. Los lenguajes de
428
+
429
+ 00:06:29.164 --> 00:06:31.425
430
+ programación cambian. No hay un lenguaje de programación
431
+
432
+ 00:06:31.485 --> 00:06:33.360
433
+ mejor que otro, no porque tú sepas 2,
434
+
435
+ 00:06:33.360 --> 00:06:35.280
436
+ 3, 5, 10 lenguajes te hace mejor o
437
+
438
+ 00:06:35.280 --> 00:06:37.520
439
+ peor ingeniero, es lo que haces con los
440
+
441
+ 00:06:37.520 --> 00:06:41.220
442
+ lenguajes y aprender lenguajes es trivial, realmente trivial.
443
+
444
+ 00:06:41.360 --> 00:06:43.300
445
+ En el momento en el que dominas 2
446
+
447
+ 00:06:43.360 --> 00:06:45.600
448
+ lenguajes, puedes dominar 3, 4, 5 o 10
449
+
450
+ 00:06:45.600 --> 00:06:48.105
451
+ o los que quieras. No se trata de
452
+
453
+ 00:06:48.105 --> 00:06:49.945
454
+ aprender muchos lenguajes y no hay lenguajes que
455
+
456
+ 00:06:49.945 --> 00:06:52.925
457
+ paguen mejor que otros, es simplemente que sepas
458
+
459
+ 00:06:52.985 --> 00:06:55.785
460
+ cómo solucionar cualquier problema a través de algoritmos
461
+
462
+ 00:06:55.785 --> 00:06:58.745
463
+ y que esos algoritmos sepas expresarlos en diferentes
464
+
465
+ 00:06:58.745 --> 00:07:01.953
466
+ lenguajes. Ten curiosidad intelectual y no te cases
467
+
468
+ 00:07:01.953 --> 00:07:03.253
469
+ con ningún lenguaje.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/01-Computación Básica/11-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Direcciones IP y el protocolo de Internet.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:369764b4ef017a4bd110fc6b81b8feee76339aa7e4f2723625072237520690df
3
+ size 223927229
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Direcciones IP y el protocolo de Internet.vtt ADDED
@@ -0,0 +1,577 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.160 --> 00:00:01.920
4
+ Así como tu casa tiene una dirección como
5
+
6
+ 00:00:01.920 --> 00:00:04.120
7
+ carrera un 2 3 de la calle 8,
8
+
9
+ 00:00:04.120 --> 00:00:06.319
10
+ todas las computadoras en Internet y en una
11
+
12
+ 00:00:06.319 --> 00:00:08.320
13
+ red local también tienen una dirección. Estas se
14
+
15
+ 00:00:08.320 --> 00:00:11.920
16
+ conocen como direcciones IP y, típicamente, vienen como
17
+
18
+ 00:00:11.920 --> 00:00:14.275
19
+ números, que son 4 grupos de números, como
20
+
21
+ 00:00:14.275 --> 00:00:18.675
22
+ 128.10 0.2 0.5. ¿Por qué son 4 números?
23
+
24
+ 00:00:18.675 --> 00:00:20.275
25
+ ¿Por qué no son 5? ¿Por qué no
26
+
27
+ 00:00:20.275 --> 00:00:21.875
28
+ son 6? ¿Y por qué cada 1 de
29
+
30
+ 00:00:21.875 --> 00:00:24.595
31
+ estos números va de 0 a 255 y
32
+
33
+ 00:00:24.595 --> 00:00:26.429
34
+ no más allá? ¿Y por qué ya no
35
+
36
+ 00:00:26.429 --> 00:00:28.750
37
+ podemos usar estos 4 números fuera de una
38
+
39
+ 00:00:28.750 --> 00:00:31.550
40
+ red local porque en Internet necesitamos usar otro
41
+
42
+ 00:00:31.550 --> 00:00:33.710
43
+ tipo de números? Son cosas que, con el
44
+
45
+ 00:00:33.710 --> 00:00:35.430
46
+ conocimiento que se obtenía en este curso Fundamentos
47
+
48
+ 00:00:35.430 --> 00:00:38.210
49
+ de Ingeniería de Software, ya deberías poder extraer,
50
+
51
+ 00:00:38.315 --> 00:00:40.395
52
+ pero observa. Recuerda que en una computadora todos
53
+
54
+ 00:00:40.395 --> 00:00:42.475
55
+ los números son ceros y unos, un 0
56
+
57
+ 00:00:42.475 --> 00:00:45.055
58
+ o un 1 es un bit, y un
59
+
60
+ 00:00:45.275 --> 00:00:48.315
61
+ grupo de esos bits es un byte. Los
62
+
63
+ 00:00:48.315 --> 00:00:51.195
64
+ bytes son grupos de 8 bits, y hasta
65
+
66
+ 00:00:51.195 --> 00:00:53.579
67
+ ahora así funcionan las computadoras, todo en la
68
+
69
+ 00:00:53.579 --> 00:00:56.460
70
+ computación funciona muy parecido. En un número IP,
71
+
72
+ 00:00:56.460 --> 00:00:59.519
73
+ en una dirección IP, IP significa Internet Protocol
74
+
75
+ 00:00:59.660 --> 00:01:02.379
76
+ o protocolo de Internet, lo que hacíamos fue
77
+
78
+ 00:01:02.379 --> 00:01:05.280
79
+ organizar estos números en grupos de 4 numeritos.
80
+
81
+ 00:01:05.685 --> 00:01:08.725
82
+ Estos 4 numeritos tienen diferentes significados, pero principalmente
83
+
84
+ 00:01:08.725 --> 00:01:12.485
85
+ son dónde está ubicada nuestra computadora. ¿Por qué
86
+
87
+ 00:01:12.485 --> 00:01:16.025
88
+ son entonces estos números? Porque son 4 bytes,
89
+
90
+ 00:01:16.405 --> 00:01:20.100
91
+ 4 números de 8 bits. Con 8 bits,
92
+
93
+ 00:01:20.100 --> 00:01:22.580
94
+ ¿cuál es el máximo número que podemos representar?
95
+
96
+ 00:01:22.580 --> 00:01:26.520
97
+ Es un 255. Son números del 0 al
98
+
99
+ 00:01:26.740 --> 00:01:30.420
100
+ 255, 256 números. El 0 es un número
101
+
102
+ 00:01:30.420 --> 00:01:32.274
103
+ y también cuenta. Esa es la razón por
104
+
105
+ 00:01:32.274 --> 00:01:36.435
106
+ la que tú solamente tienes 255, 155, 155,
107
+
108
+ 00:01:36.435 --> 00:01:38.914
109
+ 155 como el máximo número dentro de una
110
+
111
+ 00:01:38.914 --> 00:01:41.954
112
+ IP. Si nosotros tomáramos esos 4 números, que
113
+
114
+ 00:01:41.954 --> 00:01:44.755
115
+ son 4 bytes, y los expandiéramos solamente a
116
+
117
+ 00:01:44.755 --> 00:01:47.149
118
+ ceros y unos, ¿cuántos ceros y uniamos tendríamos?
119
+
120
+ 00:01:47.450 --> 00:01:50.009
121
+ Si son cada 1 8 bits y son
122
+
123
+ 00:01:50.009 --> 00:01:52.409
124
+ 4 grupos, es 8 por 4. Es decir,
125
+
126
+ 00:01:52.409 --> 00:01:55.530
127
+ tendríamos 32 bits. Eso significa que las direcciones
128
+
129
+ 00:01:55.530 --> 00:01:58.490
130
+ y p tienen un máximo de 32 bits,
131
+
132
+ 00:01:58.490 --> 00:02:02.855
133
+ 32 ceros y unos, que visualmente agrupamos en
134
+
135
+ 00:02:02.855 --> 00:02:06.775
136
+ 4 números decimales normales expresados por su valor
137
+
138
+ 00:02:06.775 --> 00:02:09.975
139
+ en bytes divididos por un punto. Están separados
140
+
141
+ 00:02:09.975 --> 00:02:12.640
142
+ cada 1 por un 0.32 bits. Todo esto
143
+
144
+ 00:02:12.640 --> 00:02:14.080
145
+ fue construido en la época en la que
146
+
147
+ 00:02:14.080 --> 00:02:16.880
148
+ Internet todavía era un experimento militar de una
149
+
150
+ 00:02:16.880 --> 00:02:18.900
151
+ organización que es la Agencia para el Desarrollo
152
+
153
+ 00:02:19.040 --> 00:02:21.520
154
+ y de Investigación Avanzado de la Defensa, conocida
155
+
156
+ 00:02:21.520 --> 00:02:24.400
157
+ como DARPA. DARPA se inventa esta estructura como
158
+
159
+ 00:02:24.400 --> 00:02:26.720
160
+ la estructura de prueba para Internet, pero luego
161
+
162
+ 00:02:26.720 --> 00:02:29.755
163
+ Internet se vuelve súper popular y simplemente lo
164
+
165
+ 00:02:29.755 --> 00:02:33.035
166
+ mantienen hasta que los números se acaban. Con
167
+
168
+ 00:02:33.035 --> 00:02:35.035
169
+ 32 bits, ¿cuánto es la máxima cantidad de
170
+
171
+ 00:02:35.035 --> 00:02:39.855
172
+ números que podemos guardar? Son 300004000 de números.
173
+
174
+ 00:02:40.140 --> 00:02:43.099
175
+ Y como cada dispositivo conectado a Internet tiene
176
+
177
+ 00:02:43.099 --> 00:02:44.939
178
+ que tener un número único, pues ya hace
179
+
180
+ 00:02:44.939 --> 00:02:47.739
181
+ rato que tenemos más de 300004000 de dispositivos
182
+
183
+ 00:02:47.739 --> 00:02:51.260
184
+ conectados a Internet. Eso significa cada servidor, cada
185
+
186
+ 00:02:51.260 --> 00:02:55.125
187
+ teléfono, cada computadora, cada teléfono inteligente, cada reloj
188
+
189
+ 00:02:55.225 --> 00:03:00.125
190
+ inteligente, cada todo requiere una dirección IP única.
191
+
192
+ 00:03:00.345 --> 00:03:03.145
193
+ Y en Internet en particular, esas direcciones IP
194
+
195
+ 00:03:03.145 --> 00:03:05.465
196
+ no simplemente cuando apago un computador tengo una
197
+
198
+ 00:03:05.465 --> 00:03:07.545
199
+ y cuando prendo el computador tengo otra. Algunas,
200
+
201
+ 00:03:07.545 --> 00:03:09.840
202
+ cuando son sobre todo servidores, tienen que ser
203
+
204
+ 00:03:10.160 --> 00:03:14.180
205
+ únicas y persistentes, ese es parte del problema.
206
+
207
+ 00:03:14.319 --> 00:03:16.640
208
+ Entonces, se nos acabaron esas direcciones. El problema
209
+
210
+ 00:03:16.640 --> 00:03:18.000
211
+ que se nos iban a acabar las direcciones
212
+
213
+ 00:03:18.000 --> 00:03:20.480
214
+ lo conocemos más o menos desde el 98.
215
+
216
+ 00:03:20.480 --> 00:03:23.375
217
+ En el 98 encontramos que había la necesidad
218
+
219
+ 00:03:23.375 --> 00:03:26.175
220
+ de crear otro estándar y se crea el
221
+
222
+ 00:03:26.175 --> 00:03:28.975
223
+ estándar IPV 6, así como la anterior era
224
+
225
+ 00:03:28.975 --> 00:03:33.075
226
+ IPV 4, de 4 bytes ahora tenemos 6.
227
+
228
+ 00:03:33.215 --> 00:03:35.010
229
+ No exactamente, pero ya lo van a ver.
230
+
231
+ 00:03:35.250 --> 00:03:36.930
232
+ El cuento es que, sabiendo que esto era
233
+
234
+ 00:03:36.930 --> 00:03:39.569
235
+ un problema, desarrollamos este estándar, y ese estándar
236
+
237
+ 00:03:39.569 --> 00:03:42.930
238
+ fue ratificado en el 2017. El estándar IPV
239
+
240
+ 00:03:42.930 --> 00:03:46.209
241
+ 6 fue diseñado para tener muchos órdenes de
242
+
243
+ 00:03:46.209 --> 00:03:49.185
244
+ magnitud más espacio. En vez de tener 32
245
+
246
+ 00:03:49.185 --> 00:03:54.004
247
+ bits, lo cuadruplicamos, y ahora tenemos 128 bits.
248
+
249
+ 00:03:54.305 --> 00:03:57.105
250
+ Al tener muchos 2 bits 4 veces más,
251
+
252
+ 00:03:57.105 --> 00:03:59.345
253
+ tenemos una mayor cantidad de números porque es
254
+
255
+ 00:03:59.345 --> 00:04:02.310
256
+ un número mucho más grande. 128 bits representan
257
+
258
+ 00:04:02.310 --> 00:04:04.923
259
+ muchos más números allá afuera, y las direcciones
260
+
261
+ 00:04:04.923 --> 00:04:08.049
262
+ también se ven distintas. Una dirección IPB 6,
263
+
264
+ 00:04:08.049 --> 00:04:11.109
265
+ que es la nueva versión, tiene 8 grupos
266
+
267
+ 00:04:11.329 --> 00:04:14.310
268
+ de números que se representan con 4 dígitos
269
+
270
+ 00:04:14.609 --> 00:04:18.315
271
+ hexadecimales. Recuerden que los números hexadecimales son una
272
+
273
+ 00:04:18.315 --> 00:04:20.955
274
+ base numérica, así como nosotros tenemos la base
275
+
276
+ 00:04:20.955 --> 00:04:23.195
277
+ binaria, que solamente tiene 0 o 1, o
278
+
279
+ 00:04:23.195 --> 00:04:25.995
280
+ la base decimal, que tiene dígitos del 0
281
+
282
+ 00:04:25.995 --> 00:04:28.875
283
+ al 9. La base hexadecimal tiene dígitos del
284
+
285
+ 00:04:28.875 --> 00:04:30.980
286
+ 0 a la f. Es decir, 0 a
287
+
288
+ 00:04:30.980 --> 00:04:33.780
289
+ la 9 es 9, la letra a es
290
+
291
+ 00:04:33.780 --> 00:04:36.420
292
+ 10, la letra b es 11, c es
293
+
294
+ 00:04:36.420 --> 00:04:40.020
295
+ 12, d es 13, e es 14 y
296
+
297
+ 00:04:40.020 --> 00:04:42.100
298
+ f es 15. En IPB 6, o la
299
+
300
+ 00:04:42.100 --> 00:04:44.251
301
+ versión 6 de las direcciones IP, pasa algo
302
+
303
+ 00:04:44.251 --> 00:04:45.705
304
+ curioso y es que a veces esos números
305
+
306
+ 00:04:45.705 --> 00:04:48.505
307
+ son tan grandes que hay pedazos de los
308
+
309
+ 00:04:48.505 --> 00:04:50.185
310
+ grupos que no se usan, que son puros
311
+
312
+ 00:04:50.185 --> 00:04:53.705
313
+ ceros. Cuando pasa eso, tendemos a comprimir la
314
+
315
+ 00:04:53.705 --> 00:04:56.789
316
+ dirección colocando 2 puntos entre esos grupos. Ahí
317
+
318
+ 00:04:56.789 --> 00:04:58.870
319
+ se puede comprimir y no tener que mostrar
320
+
321
+ 00:04:58.870 --> 00:05:02.150
322
+ todos esos números 0. DarPPA realmente no creía
323
+
324
+ 00:05:02.150 --> 00:05:04.470
325
+ que fuera a ser Internet tan popular y
326
+
327
+ 00:05:04.470 --> 00:05:08.150
328
+ nunca cambiaron la configuración de los números IP
329
+
330
+ 00:05:08.150 --> 00:05:12.255
331
+ hasta que empezamos a tener demasiadas computadoras conectadas.
332
+
333
+ 00:05:12.415 --> 00:05:14.175
334
+ Lo largo de los años se han construido
335
+
336
+ 00:05:14.175 --> 00:05:17.695
337
+ varias organizaciones y autoridades que se dedican a
338
+
339
+ 00:05:17.695 --> 00:05:21.135
340
+ regular Internet. Una de estas es IAN A,
341
+
342
+ 00:05:21.135 --> 00:05:24.495
343
+ Internet Assign Numbers Authority, o la Autoridad de
344
+
345
+ 00:05:24.495 --> 00:05:27.180
346
+ Asignación de Números de Internet. Esta autoridad es
347
+
348
+ 00:05:27.180 --> 00:05:30.720
349
+ la que termina asignando las direcciones IP permanentes
350
+
351
+ 00:05:31.180 --> 00:05:34.060
352
+ de diferentes computadoras en el mundo. Recuerden que
353
+
354
+ 00:05:34.060 --> 00:05:36.060
355
+ todo dispositivo que se conecte a Internet es,
356
+
357
+ 00:05:36.060 --> 00:05:39.420
358
+ por definición, una computadora. En ocasiones, necesitamos que
359
+
360
+ 00:05:39.420 --> 00:05:42.085
361
+ estos números IP sean fijos para que siempre
362
+
363
+ 00:05:42.085 --> 00:05:44.724
364
+ apunten al mismo lugar. Estos números se pueden
365
+
366
+ 00:05:44.724 --> 00:05:48.085
367
+ comprar y diferentes organizaciones los compran para que,
368
+
369
+ 00:05:48.085 --> 00:05:50.205
370
+ a partir de ahí, los tengan de una
371
+
372
+ 00:05:50.205 --> 00:05:52.164
373
+ manera fija. Entonces, por ejemplo, cuando ustedes entran
374
+
375
+ 00:05:52.164 --> 00:05:53.604
376
+ a Google punto com, ellos siempre van a
377
+
378
+ 00:05:53.604 --> 00:05:56.485
379
+ tener la misma IP. Diferentes computadoras tienen diferentes
380
+
381
+ 00:05:56.485 --> 00:05:59.949
382
+ IPs en Internet, pero hay una diferencia entre
383
+
384
+ 00:05:59.949 --> 00:06:02.509
385
+ tener números IP en Internet y tener números
386
+
387
+ 00:06:02.509 --> 00:06:05.310
388
+ IP en tu red local. Internet es una
389
+
390
+ 00:06:05.310 --> 00:06:07.949
391
+ red global, así como la conexión de tu
392
+
393
+ 00:06:07.949 --> 00:06:09.870
394
+ casa que se conecta a tu router WiFi
395
+
396
+ 00:06:09.870 --> 00:06:12.645
397
+ es una red local, y ambas redes usan
398
+
399
+ 00:06:12.705 --> 00:06:15.425
400
+ números IP de una manera distinta. Hay más
401
+
402
+ 00:06:15.425 --> 00:06:17.585
403
+ detalles de esto en nuestro curso de redes
404
+
405
+ 00:06:17.585 --> 00:06:19.824
406
+ informáticas que puedes tomar acá mismo y que
407
+
408
+ 00:06:19.824 --> 00:06:21.824
409
+ están los recursos de la clase, donde puedes
410
+
411
+ 00:06:21.824 --> 00:06:24.085
412
+ ahondar en más detalles. Pero para hacerlo relativamente
413
+
414
+ 00:06:24.225 --> 00:06:27.000
415
+ simple, los las conexiones de Internet de tu
416
+
417
+ 00:06:27.000 --> 00:06:29.900
418
+ casa se conectan al Internet de allá afuera,
419
+
420
+ 00:06:30.040 --> 00:06:32.860
421
+ al Internet global donde están los servidores y
422
+
423
+ 00:06:33.240 --> 00:06:35.660
424
+ las diferentes redes sociales, los sistemas de mensajería,
425
+
426
+ 00:06:35.720 --> 00:06:37.000
427
+ las páginas web, a todo lo que tú
428
+
429
+ 00:06:37.000 --> 00:06:40.135
430
+ conectas, pero internamente dentro de tu casa, cuando
431
+
432
+ 00:06:40.135 --> 00:06:42.935
433
+ te conectas a WiFi, tu teléfono, tu computadora,
434
+
435
+ 00:06:42.935 --> 00:06:45.655
436
+ tu televisor, cada dispositivo que se conecte a
437
+
438
+ 00:06:45.655 --> 00:06:49.835
439
+ Internet tiene que tener una IP única. La
440
+
441
+ 00:06:50.135 --> 00:06:52.855
442
+ IP de tu red local es distinta a
443
+
444
+ 00:06:52.855 --> 00:06:55.870
445
+ la IP de Internet. En tu red local
446
+
447
+ 00:06:55.870 --> 00:06:57.310
448
+ puedes tener una IP que en otra red
449
+
450
+ 00:06:57.310 --> 00:07:00.289
451
+ local sea exactamente igual, pero como solamente ocurre
452
+
453
+ 00:07:00.830 --> 00:07:03.550
454
+ dentro del dominio, dentro del ámbito de tu
455
+
456
+ 00:07:03.550 --> 00:07:05.870
457
+ red local, es el único lugar donde realmente
458
+
459
+ 00:07:05.870 --> 00:07:08.085
460
+ importa ese número, así que te vas a
461
+
462
+ 00:07:08.085 --> 00:07:10.645
463
+ estar corriendo una IP local. Probablemente tú has
464
+
465
+ 00:07:10.645 --> 00:07:15.465
466
+ visto una IP que dice 127 0 0.1.
467
+
468
+ 00:07:15.485 --> 00:07:20.165
469
+ Esta IP es internacionalmente estandarizada como la IP
470
+
471
+ 00:07:20.165 --> 00:07:20.695
472
+ de tu propio dispositivo, también conocida como local
473
+
474
+ 00:07:20.695 --> 00:07:22.650
475
+ host. Esto es básicamente una dispositivo, también conocida
476
+
477
+ 00:07:22.650 --> 00:07:26.010
478
+ como local host. Esto es básicamente un apuntador
479
+
480
+ 00:07:26.010 --> 00:07:27.930
481
+ de dirección de Internet que, sin importar en
482
+
483
+ 00:07:27.930 --> 00:07:31.290
484
+ la computadora donde estés, siempre apunta a tu
485
+
486
+ 00:07:31.290 --> 00:07:35.944
487
+ misma computadora desde donde estás usando ese 127
488
+
489
+ 00:07:35.944 --> 00:07:39.224
490
+ 0 0.1. Sin importar las diferentes IPs que
491
+
492
+ 00:07:39.224 --> 00:07:41.865
493
+ tenga tu red local, cuando tu televisor, tu
494
+
495
+ 00:07:41.865 --> 00:07:44.525
496
+ teléfono o tu computadora necesitan conectarse a Internet,
497
+
498
+ 00:07:44.664 --> 00:07:47.740
499
+ usan sus direcciones de IP local para ir
500
+
501
+ 00:07:47.740 --> 00:07:49.940
502
+ al router WiFi de tu casa y al
503
+
504
+ 00:07:49.940 --> 00:07:52.440
505
+ módem que se conecte a Internet, y eso
506
+
507
+ 00:07:53.300 --> 00:07:56.600
508
+ transforma la petición en la IP de Internet
509
+
510
+ 00:07:56.660 --> 00:07:58.980
511
+ de tu casa. Ese paquete de la IP
512
+
513
+ 00:07:58.980 --> 00:08:01.975
514
+ de Internet de tu casa sale a Internet,
515
+
516
+ 00:08:02.115 --> 00:08:06.035
517
+ recupera el dato y tu router WiFi sabe
518
+
519
+ 00:08:06.035 --> 00:08:07.715
520
+ de dónde vino la petición de ese paquete
521
+
522
+ 00:08:07.715 --> 00:08:10.595
523
+ y lo redirecciona a la IP interna de
524
+
525
+ 00:08:10.595 --> 00:08:13.635
526
+ tu casa. Esto lo hace internamente a través
527
+
528
+ 00:08:13.635 --> 00:08:17.189
529
+ de algo llamado un NAT. NAT significa Network
530
+
531
+ 00:08:17.330 --> 00:08:20.289
532
+ address translation, y es una tecnología interna de
533
+
534
+ 00:08:20.289 --> 00:08:23.729
535
+ todos los enrutadores o routers para transformar las
536
+
537
+ 00:08:23.729 --> 00:08:26.050
538
+ peticiones de una red local hacia las peticiones
539
+
540
+ 00:08:26.050 --> 00:08:28.689
541
+ de otra red externa, que típicamente es Internet.
542
+
543
+ 00:08:28.689 --> 00:08:31.125
544
+ Es importante cuando estás desarrollando software que entiendas
545
+
546
+ 00:08:31.125 --> 00:08:33.205
547
+ los números IP, porque de esa manera tú
548
+
549
+ 00:08:33.205 --> 00:08:35.044
550
+ puedes saber de dónde viene un mensaje, si
551
+
552
+ 00:08:35.044 --> 00:08:37.145
553
+ tienes un problema en el desarrollo del software,
554
+
555
+ 00:08:37.285 --> 00:08:40.505
556
+ y simplemente es conocimiento básico de depuración y
557
+
558
+ 00:08:40.565 --> 00:08:42.405
559
+ entendimiento de sistemas conectados, que hoy en día
560
+
561
+ 00:08:42.405 --> 00:08:44.345
562
+ son la gran mayoría de sistemas que programamos.
563
+
564
+ 00:08:44.640 --> 00:08:47.360
565
+ Por otro lado, nosotros cuando programamos casi nunca
566
+
567
+ 00:08:47.360 --> 00:08:49.840
568
+ usamos realmente los números IP, sino que a
569
+
570
+ 00:08:49.840 --> 00:08:52.400
571
+ cada IP le asignamos un nombre. Estos se
572
+
573
+ 00:08:52.400 --> 00:08:54.240
574
+ conocen como nombre de dominio y es lo
575
+
576
+ 00:08:54.240 --> 00:08:55.540
577
+ que viene en la próxima clase.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://platzi.com/cursos/redes/
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://www.namecheap.com/
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Nombres de dominio DNS y cómo obtener un com.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d935f1cada37d04672f0b6c7423500af6b6e4d6515b4c89f5e31086d94e7f677
3
+ size 193600810
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Nombres de dominio DNS y cómo obtener un com.vtt ADDED
@@ -0,0 +1,703 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.399 --> 00:00:02.960
4
+ Como todas las computadoras, servidores y sistemas que
5
+
6
+ 00:00:02.960 --> 00:00:05.200
7
+ están conectados a Internet tienen un número IP,
8
+
9
+ 00:00:05.200 --> 00:00:07.839
10
+ y ese número es una larga cantidad de
11
+
12
+ 00:00:07.839 --> 00:00:10.719
13
+ números que nadie se acuerda. Necesitamos una base
14
+
15
+ 00:00:10.719 --> 00:00:13.595
16
+ de datos donde ponerles nombre. Así, a estos
17
+
18
+ 00:00:13.595 --> 00:00:15.435
19
+ números, que son un montón de numeritos, les
20
+
21
+ 00:00:15.435 --> 00:00:20.235
22
+ asignamos un nombre específico. Esos nombres inicialmente venían
23
+
24
+ 00:00:20.235 --> 00:00:22.395
25
+ en un archivo que se compartía en los
26
+
27
+ 00:00:22.395 --> 00:00:25.215
28
+ diferentes proveedores de Internet, un archivo llamado hosts.
29
+
30
+ 00:00:25.370 --> 00:00:28.570
31
+ Pero eso no escala, porque ahora tenemos 1000000
32
+
33
+ 00:00:28.570 --> 00:00:30.570
34
+ y 1000000 y 1000000 de estos nombres. Así
35
+
36
+ 00:00:30.570 --> 00:00:33.770
37
+ que construimos una base de datos distribuida que
38
+
39
+ 00:00:33.770 --> 00:00:36.730
40
+ está dominada por una serie de estándares y
41
+
42
+ 00:00:36.730 --> 00:00:39.705
43
+ mecanismos internacionales. Esa base de datos se conoce
44
+
45
+ 00:00:39.705 --> 00:00:43.725
46
+ como los nombres de dominio o DNS, Domain
47
+
48
+ 00:00:43.785 --> 00:00:46.265
49
+ Name Servers. El sistema de nombres de dominio,
50
+
51
+ 00:00:46.265 --> 00:00:48.285
52
+ o Domain Name System, es lo que permite
53
+
54
+ 00:00:48.345 --> 00:00:51.465
55
+ que un número prácticamente aleatorio con las reglas
56
+
57
+ 00:00:51.465 --> 00:00:54.390
58
+ de IPB 4 o IPB 6 sea exactamente
59
+
60
+ 00:00:54.390 --> 00:00:57.110
61
+ equivalente a cosas como platzi punto com. Los
62
+
63
+ 00:00:57.110 --> 00:00:59.850
64
+ nombres de dominio siguen algunas reglas, típicamente solo
65
+
66
+ 00:01:00.470 --> 00:01:04.470
67
+ permiten letras del idioma inglés, aunque últimamente se
68
+
69
+ 00:01:04.470 --> 00:01:07.190
70
+ pueden agregar eñes o tildes, aunque muy poca
71
+
72
+ 00:01:07.190 --> 00:01:10.465
73
+ gente lo usa. Típicamente un nombre de dominio
74
+
75
+ 00:01:10.465 --> 00:01:12.225
76
+ no empieza con un número, tiene que empezar
77
+
78
+ 00:01:12.225 --> 00:01:13.905
79
+ con una letra, pero de nuevo también en
80
+
81
+ 00:01:13.905 --> 00:01:16.564
82
+ ocasiones es posible, y los nombres de dominio
83
+
84
+ 00:01:17.024 --> 00:01:20.064
85
+ no distinguen entre mayúsculas y minúsculas. En ese
86
+
87
+ 00:01:20.064 --> 00:01:22.579
88
+ sentido son relativamente similares a los nombres de
89
+
90
+ 00:01:22.579 --> 00:01:25.539
91
+ variable en varios lenguajes de programación. Una vez
92
+
93
+ 00:01:25.539 --> 00:01:27.299
94
+ tienes tu nombre de dominio, necesitas lo que
95
+
96
+ 00:01:27.299 --> 00:01:29.560
97
+ se llama un top level domain o tld,
98
+
99
+ 00:01:29.700 --> 00:01:31.700
100
+ que es el sufijo que se le agrega
101
+
102
+ 00:01:31.700 --> 00:01:33.939
103
+ a estos dominios. Los más conocidos son punto
104
+
105
+ 00:01:33.939 --> 00:01:36.795
106
+ com, punto DDG0 punto net. Existen algunos sufijos
107
+
108
+ 00:01:36.795 --> 00:01:38.635
109
+ o top level domains que son de uso
110
+
111
+ 00:01:38.635 --> 00:01:41.355
112
+ exclusivo. Entonces, el punto gov tiende a ser
113
+
114
+ 00:01:41.355 --> 00:01:43.835
115
+ usado para gobierno y en América Latina está
116
+
117
+ 00:01:43.835 --> 00:01:46.235
118
+ el punto gov con b larga, el punto
119
+
120
+ 00:01:46.235 --> 00:01:49.035
121
+ 1000 tiende a ser usado para ejército militar,
122
+
123
+ 00:01:49.035 --> 00:01:51.450
124
+ el punto edu tiende a ser exclusivo de
125
+
126
+ 00:01:51.450 --> 00:01:56.509
127
+ instituciones educativas acreditadas. Y luego están los TLDs
128
+
129
+ 00:01:56.570 --> 00:01:58.970
130
+ que son exclusivos de países, punto co siendo
131
+
132
+ 00:01:58.970 --> 00:02:01.369
133
+ de Colombia, punto j p de Japón, punto
134
+
135
+ 00:02:01.369 --> 00:02:03.450
136
+ es de España. Cada país lo usa de
137
+
138
+ 00:02:03.450 --> 00:02:06.566
139
+ maneras distintas. Por ejemplo, en el caso de
140
+
141
+ 00:02:06.566 --> 00:02:09.225
142
+ Inglaterra, típicamente es punto co punto u k,
143
+
144
+ 00:02:09.225 --> 00:02:11.145
145
+ donde en el caso de España es punto
146
+
147
+ 00:02:11.145 --> 00:02:12.825
148
+ es, y en el caso de Colombia es
149
+
150
+ 00:02:12.825 --> 00:02:15.065
151
+ punto com punto co. Pues, la diferencia que
152
+
153
+ 00:02:15.065 --> 00:02:16.705
154
+ determina si 1 usa 1 o el otro
155
+
156
+ 00:02:16.705 --> 00:02:19.161
157
+ es aleatorio, depende de cada país, y cada
158
+
159
+ 00:02:19.161 --> 00:02:19.289
160
+ país toma decisiones respecto a cómo lo quiere
161
+
162
+ 00:02:19.289 --> 00:02:20.135
163
+ usar. En los últimos años, debido a la
164
+
165
+ 00:02:26.319 --> 00:02:28.560
166
+ top level domains, han empezado a aparecer top
167
+
168
+ 00:02:28.560 --> 00:02:32.420
169
+ level domains larguísimos. Entonces, existe el punto promo,
170
+
171
+ 00:02:32.800 --> 00:02:36.435
172
+ el punto info, el punto love, entre muchos,
173
+
174
+ 00:02:36.435 --> 00:02:38.995
175
+ muchos otros. Tú puedes tener el que quieras.
176
+
177
+ 00:02:38.995 --> 00:02:41.475
178
+ Pero en negocios, típicamente, 1 tiende a respetar
179
+
180
+ 00:02:41.475 --> 00:02:44.115
181
+ mucho más los dominios punto com. Hay dominios
182
+
183
+ 00:02:44.115 --> 00:02:45.715
184
+ que antes no tenían valor y ahora tienen
185
+
186
+ 00:02:45.715 --> 00:02:48.035
187
+ mucho valor, como por ejemplo, punto AI, de
188
+
189
+ 00:02:48.035 --> 00:02:50.750
190
+ inteligencia artificial, o en su momento el punto
191
+
192
+ 00:02:50.750 --> 00:02:54.390
193
+ co. Colombia hizo una gran campaña para decir
194
+
195
+ 00:02:54.390 --> 00:02:56.349
196
+ que el punto CO era un reemplazo al
197
+
198
+ 00:02:56.349 --> 00:02:58.430
199
+ punto COM, y en vez de referirse a
200
+
201
+ 00:02:58.430 --> 00:03:01.069
202
+ estos dominios como un dominio colombiano, son simplemente
203
+
204
+ 00:03:01.069 --> 00:03:04.365
205
+ una alternativa al COM mucho más interesante que
206
+
207
+ 00:03:04.365 --> 00:03:07.405
208
+ el punto org. Comprar un dominio, como un
209
+
210
+ 00:03:07.405 --> 00:03:09.325
211
+ punto com, un punto org, un punto lo
212
+
213
+ 00:03:09.325 --> 00:03:11.485
214
+ que sea, no es lo mismo que tener
215
+
216
+ 00:03:11.485 --> 00:03:14.045
217
+ una página web. Recuerda que un dominio es
218
+
219
+ 00:03:14.045 --> 00:03:17.140
220
+ simplemente comprar el derecho a que un número
221
+
222
+ 00:03:17.140 --> 00:03:20.840
223
+ IP apunte a un nombre. Es como construir
224
+
225
+ 00:03:20.900 --> 00:03:23.620
226
+ una casa y luego comprar la dirección de
227
+
228
+ 00:03:23.620 --> 00:03:25.459
229
+ tu casa. Eso es lo que significa tener
230
+
231
+ 00:03:25.459 --> 00:03:28.465
232
+ ese dominio punto com. Sin embargo, sin tener
233
+
234
+ 00:03:28.465 --> 00:03:30.465
235
+ un dominio no puedes tener una página web,
236
+
237
+ 00:03:30.465 --> 00:03:32.065
238
+ o sí puedes, pero tendrías que contarle a
239
+
240
+ 00:03:32.065 --> 00:03:33.825
241
+ todo el mundo cuál es la dirección IP
242
+
243
+ 00:03:33.825 --> 00:03:35.025
244
+ de tu página web, lo cual no es
245
+
246
+ 00:03:35.025 --> 00:03:37.425
247
+ tan chévere como decir mi propia página web
248
+
249
+ 00:03:37.425 --> 00:03:39.825
250
+ punto com. Internet está tan maduro que hoy
251
+
252
+ 00:03:39.825 --> 00:03:42.880
253
+ en día casi que no hay disponibles nombres
254
+
255
+ 00:03:42.940 --> 00:03:45.260
256
+ punto com, y muchas personas tienen que comprar
257
+
258
+ 00:03:45.260 --> 00:03:49.660
259
+ nombres alternativos. Como dato anecdótico, Platzi punto com
260
+
261
+ 00:03:49.660 --> 00:03:52.060
262
+ es un dominio que yo no quería pagar
263
+
264
+ 00:03:52.060 --> 00:03:53.819
265
+ demasiado por él, así que me puse a
266
+
267
+ 00:03:53.819 --> 00:03:56.700
268
+ buscar profundamente por allá en el año 2012,
269
+
270
+ 00:03:56.700 --> 00:04:01.045
271
+ 2013, diferentes configuraciones de dominio hasta que encontré
272
+
273
+ 00:04:01.045 --> 00:04:03.444
274
+ 4 que me gustaron. Al equipo de la
275
+
276
+ 00:04:03.444 --> 00:04:05.045
277
+ época les dije que votaran por el dominio
278
+
279
+ 00:04:05.045 --> 00:04:06.805
280
+ que más les gustara y todos votaron por
281
+
282
+ 00:04:06.805 --> 00:04:09.924
283
+ Platzi punto com. Pero hoy en día mucha
284
+
285
+ 00:04:09.924 --> 00:04:11.525
286
+ gente que quiere comprar un dominio, que ya
287
+
288
+ 00:04:11.525 --> 00:04:14.400
289
+ está capturado, le toca pagarle a personas que
290
+
291
+ 00:04:14.400 --> 00:04:16.800
292
+ son dueñas de grandes cantidades de dominios. Esto
293
+
294
+ 00:04:16.800 --> 00:04:20.080
295
+ es todo un negocio, el comprar muchísimos dominios
296
+
297
+ 00:04:20.080 --> 00:04:23.520
298
+ DNS para luego revenderlos. Como dato, 1 de
299
+
300
+ 00:04:23.520 --> 00:04:24.980
301
+ los dominios más caros de la historia es
302
+
303
+ 00:04:25.600 --> 00:04:27.935
304
+ business punto com, negocios punto com, que fue
305
+
306
+ 00:04:27.935 --> 00:04:30.815
307
+ vendido por 345000000 de dólares. Y en el
308
+
309
+ 00:04:30.815 --> 00:04:34.095
310
+ 2015, un exempleado de Google se dio cuenta
311
+
312
+ 00:04:34.095 --> 00:04:35.615
313
+ de que el dominio Google punto com estaba
314
+
315
+ 00:04:35.615 --> 00:04:37.294
316
+ a punto de expirar y lo compró por
317
+
318
+ 00:04:37.294 --> 00:04:41.070
319
+ 12 dólares, por el precio normal. Google le
320
+
321
+ 00:04:41.070 --> 00:04:43.190
322
+ agradeció haberlo comprado porque el empleado se los
323
+
324
+ 00:04:43.190 --> 00:04:45.750
325
+ devolvió y le dio un bono de 10000
326
+
327
+ 00:04:45.750 --> 00:04:49.510
328
+ dólares como una recompensa por haber encontrado este
329
+
330
+ 00:04:49.510 --> 00:04:51.510
331
+ problema. Pero no porque tú compres un dominio
332
+
333
+ 00:04:51.510 --> 00:04:53.698
334
+ significa que lo puedes revender. Por ejemplo, una
335
+
336
+ 00:04:53.698 --> 00:04:56.365
337
+ persona terminó comprando Google punto com punto ar
338
+
339
+ 00:04:56.365 --> 00:04:58.625
340
+ en Argentina y, en vez de recibir recompensa,
341
+
342
+ 00:04:59.005 --> 00:05:01.805
343
+ recibió una demanda, porque también las leyes de
344
+
345
+ 00:05:01.805 --> 00:05:04.765
346
+ copyright y de marcas registradas aplican, y si
347
+
348
+ 00:05:04.765 --> 00:05:06.525
349
+ tú como empresa eres dueño de una marca
350
+
351
+ 00:05:06.525 --> 00:05:08.765
352
+ registrada, puedes ir a la corte para obtener
353
+
354
+ 00:05:08.765 --> 00:05:11.590
355
+ tu punto com. Vamos a comprar dominios. Yo
356
+
357
+ 00:05:11.590 --> 00:05:13.850
358
+ personalmente uso un sitio que se llama Nameship
359
+
360
+ 00:05:14.070 --> 00:05:15.750
361
+ punto com, tú puedes usar el que quieras.
362
+
363
+ 00:05:15.750 --> 00:05:17.850
364
+ El único que no recomiendo es usar GoDaddy
365
+
366
+ 00:05:17.990 --> 00:05:20.950
367
+ punto com. GoDaddy tiene malas prácticas en la
368
+
369
+ 00:05:20.950 --> 00:05:22.950
370
+ que, cuando tú empiezas a buscar un dominio,
371
+
372
+ 00:05:22.950 --> 00:05:24.875
373
+ GoDaddy se va a dar cuenta, Y si
374
+
375
+ 00:05:24.875 --> 00:05:27.435
376
+ el dominio que buscas está disponible, GoDaddy lo
377
+
378
+ 00:05:27.435 --> 00:05:30.074
379
+ va automáticamente a comprar, de tal manera que
380
+
381
+ 00:05:30.074 --> 00:05:32.074
382
+ si decides comprarlo luego, te lo va a
383
+
384
+ 00:05:32.074 --> 00:05:35.275
385
+ cobrar mucho más caro, porque automáticamente se va
386
+
387
+ 00:05:35.275 --> 00:05:36.715
388
+ a apropiar del dominio y no te va
389
+
390
+ 00:05:36.715 --> 00:05:38.470
391
+ a permitir comprarlo en otro lado. Es una
392
+
393
+ 00:05:38.470 --> 00:05:42.150
394
+ técnica muy peligrosa. GoDaddy ha sido muy perseguido
395
+
396
+ 00:05:42.150 --> 00:05:44.150
397
+ por sus malas prácticas y, en general, no
398
+
399
+ 00:05:44.150 --> 00:05:46.630
400
+ recomendamos usarlo. Registrar un dominio es tan simple
401
+
402
+ 00:05:46.630 --> 00:05:48.550
403
+ como empezar a colocarle el nombre que quieras.
404
+
405
+ 00:05:48.550 --> 00:05:50.470
406
+ Yo, personalmente, le voy a colocar un nombre
407
+
408
+ 00:05:50.470 --> 00:05:52.230
409
+ que creo que va a estar no disponible,
410
+
411
+ 00:05:52.230 --> 00:05:54.205
412
+ pero seguro que alguno de ustedes estudiantes lo
413
+
414
+ 00:05:54.205 --> 00:05:55.724
415
+ va a comprar. Mi sugerencia es que no
416
+
417
+ 00:05:55.724 --> 00:05:57.324
418
+ lo hagan, van a perder el dinero, pero
419
+
420
+ 00:05:57.324 --> 00:05:58.764
421
+ si lo quieren hacer, por lo menos hagan
422
+
423
+ 00:05:58.764 --> 00:06:01.245
424
+ algo creativo con el dominio, ¿listos? Voy a
425
+
426
+ 00:06:01.245 --> 00:06:05.724
427
+ colocarle prueba de curso de fundamentos y le
428
+
429
+ 00:06:05.724 --> 00:06:09.680
430
+ doy buscar. Me empieza a buscar y, efectivamente,
431
+
432
+ 00:06:09.900 --> 00:06:12.440
433
+ aquí está prueba de curso de fundamentos punto
434
+
435
+ 00:06:12.539 --> 00:06:17.500
436
+ com y me cuesta simplemente 11.28 dólares al
437
+
438
+ 00:06:17.500 --> 00:06:20.060
439
+ año. Me salen otras opciones como el punto
440
+
441
+ 00:06:20.060 --> 00:06:22.250
442
+ fon, punto Miami, punto net, punto ORG, pero
443
+
444
+ 00:06:22.544 --> 00:06:24.065
445
+ solamente necesito este, así que lo que voy
446
+
447
+ 00:06:24.065 --> 00:06:26.384
448
+ a hacer es añadirlo al carrito, ahí lo
449
+
450
+ 00:06:26.384 --> 00:06:27.905
451
+ tengo en mi carrito, y en el caso
452
+
453
+ 00:06:27.905 --> 00:06:29.824
454
+ de NameShip, miren que me empieza a vender
455
+
456
+ 00:06:29.824 --> 00:06:32.485
457
+ otras cosas. Me vende hosting de sitios web,
458
+
459
+ 00:06:32.785 --> 00:06:35.205
460
+ WordPress, que es un mecanismo para crear sitios
461
+
462
+ 00:06:35.264 --> 00:06:36.945
463
+ web automatizados, es un sistema de manejo de
464
+
465
+ 00:06:36.945 --> 00:06:39.740
466
+ contenido, SSL, que es la forma de tener
467
+
468
+ 00:06:41.080 --> 00:06:44.120
469
+ cifrado en las transmisiones de los datos cuando
470
+
471
+ 00:06:44.120 --> 00:06:47.560
472
+ le sale HTTPS. Premium DNS es algo que
473
+
474
+ 00:06:47.560 --> 00:06:50.600
475
+ ustedes no necesitan. Y correo electrónico, el hecho
476
+
477
+ 00:06:50.600 --> 00:06:51.800
478
+ de tener un dominio no es lo mismo
479
+
480
+ 00:06:51.800 --> 00:06:54.165
481
+ que tener correo electrónico, eso son cosas aparte.
482
+
483
+ 00:06:54.165 --> 00:06:56.405
484
+ El dominio solamente es un apuntador a una
485
+
486
+ 00:06:56.405 --> 00:06:59.125
487
+ IP, el correo electrónico sería un servidor, etcétera,
488
+
489
+ 00:06:59.125 --> 00:07:01.285
490
+ etcétera. Yo solamente necesito el dominio, así que
491
+
492
+ 00:07:01.285 --> 00:07:03.925
493
+ le voy a dar aquí check out y
494
+
495
+ 00:07:03.925 --> 00:07:05.205
496
+ ya está. Con esto lo que voy a
497
+
498
+ 00:07:05.205 --> 00:07:07.490
499
+ hacer es comprarlo. Esto es un proceso de
500
+
501
+ 00:07:07.490 --> 00:07:09.250
502
+ compra de toda la vida. Yo puedo comprar
503
+
504
+ 00:07:09.250 --> 00:07:10.930
505
+ un dominio por un año, por 5 años
506
+
507
+ 00:07:10.930 --> 00:07:13.169
508
+ o por 10 años. Un dato importante es
509
+
510
+ 00:07:13.169 --> 00:07:17.030
511
+ que sistemas como Google usan la longevidad del
512
+
513
+ 00:07:17.250 --> 00:07:19.729
514
+ dominio para determinar qué tan serio es un
515
+
516
+ 00:07:19.729 --> 00:07:22.255
517
+ sitio web. Entonces, si tú quieres proyectar seriedad,
518
+
519
+ 00:07:22.255 --> 00:07:23.775
520
+ compra dominios a 10 años, que en este
521
+
522
+ 00:07:23.775 --> 00:07:26.735
523
+ caso costaría 146 dólares. Aquí voy a simular
524
+
525
+ 00:07:26.735 --> 00:07:28.835
526
+ que lo voy a comprar por un año.
527
+
528
+ 00:07:29.295 --> 00:07:31.855
529
+ Y con eso simplemente privacidad de dominio es
530
+
531
+ 00:07:31.855 --> 00:07:33.907
532
+ una cosa muy interesante, lo estoy apagando acá,
533
+
534
+ 00:07:33.907 --> 00:07:35.800
535
+ porque resulta que los dominios 1 tiene que
536
+
537
+ 00:07:35.800 --> 00:07:38.120
538
+ colocar su nombre y quién es el dueño,
539
+
540
+ 00:07:38.120 --> 00:07:40.620
541
+ que es la dirección donde la dirección postal
542
+
543
+ 00:07:40.840 --> 00:07:43.160
544
+ a la que llegan las cartas, porque todo
545
+
546
+ 00:07:43.160 --> 00:07:45.000
547
+ dominio tiene que estar conectado con un ser
548
+
549
+ 00:07:45.000 --> 00:07:46.780
550
+ humano real. Pero no puede activar la privacidad
551
+
552
+ 00:07:46.919 --> 00:07:48.520
553
+ y de esa manera nadie sabe de quién
554
+
555
+ 00:07:48.520 --> 00:07:51.025
556
+ es este sistema. Es completamente gratuito, yo lo
557
+
558
+ 00:07:51.025 --> 00:08:04.500
559
+ puedo, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Una vez comprado el dominio, lo
560
+
561
+ 00:08:04.500 --> 00:08:07.460
562
+ que hay que hacer es configurarlo. Las configuraciones
563
+
564
+ 00:08:07.460 --> 00:08:10.180
565
+ tienen diferentes nombres. Los más importantes que ustedes
566
+
567
+ 00:08:10.180 --> 00:08:13.220
568
+ necesitan tener en mente son estos llamados a
569
+
570
+ 00:08:13.220 --> 00:08:16.655
571
+ Records. El a Record es una variable dentro
572
+
573
+ 00:08:16.655 --> 00:08:18.335
574
+ de la base de datos del sistema de
575
+
576
+ 00:08:18.335 --> 00:08:20.655
577
+ nombres de dominio que apunta a donde está
578
+
579
+ 00:08:20.655 --> 00:08:22.574
580
+ el servidor. Entonces, en este caso, para el
581
+
582
+ 00:08:22.574 --> 00:08:24.574
583
+ dominio Freddy Vega punto com, yo tengo un
584
+
585
+ 00:08:24.574 --> 00:08:30.275
586
+ servidor en 209.97 punto 145.61 hacia donde apunta
587
+
588
+ 00:08:30.980 --> 00:08:34.500
589
+ mi nombre de dominio, Fredy punto com. Luego
590
+
591
+ 00:08:34.500 --> 00:08:37.299
592
+ están los c name records. Tú probablemente has
593
+
594
+ 00:08:37.299 --> 00:08:40.740
595
+ visto que algunos dominios tienen palabras atrás del
596
+
597
+ 00:08:40.740 --> 00:08:43.460
598
+ dominio con un punto. Por ejemplo, Google Docs
599
+
600
+ 00:08:43.460 --> 00:08:46.685
601
+ está en docs punto Google punto com. En
602
+
603
+ 00:08:46.685 --> 00:08:49.185
604
+ ese caso, Google punto com es el dominio
605
+
606
+ 00:08:49.404 --> 00:08:53.645
607
+ y docs, D0CS, es el subdominio. En este
608
+
609
+ 00:08:53.645 --> 00:08:57.745
610
+ caso, el récord siname de FTP, mail YWW
611
+
612
+ 00:08:58.045 --> 00:09:00.125
613
+ son subdominios que yo le estoy apuntando a
614
+
615
+ 00:09:00.125 --> 00:09:02.650
616
+ Freddie Vega punto com, o sea, al dominio
617
+
618
+ 00:09:02.650 --> 00:09:05.210
619
+ a, a la raíz del dominio. Yo podría
620
+
621
+ 00:09:05.210 --> 00:09:07.130
622
+ tener c name records que apunten a una
623
+
624
+ 00:09:07.130 --> 00:09:10.590
625
+ IP diferente y, de esa manera, subdominios distintos,
626
+
627
+ 00:09:10.730 --> 00:09:13.450
628
+ por ejemplo, correo punto Freddy Vega punto com,
629
+
630
+ 00:09:13.450 --> 00:09:16.475
631
+ podría apuntar a un servidor completamente distinto. Y
632
+
633
+ 00:09:16.475 --> 00:09:19.695
634
+ por último, están estos TXT Records, que son
635
+
636
+ 00:09:20.075 --> 00:09:22.235
637
+ básicamente variables de texto que yo agrego en
638
+
639
+ 00:09:22.235 --> 00:09:24.795
640
+ ocasiones como una señal a otros sitios web.
641
+
642
+ 00:09:24.795 --> 00:09:26.235
643
+ En este caso, por ejemplo, le estoy diciendo
644
+
645
+ 00:09:26.235 --> 00:09:28.590
646
+ a Google que Freddy-G punto com es mío,
647
+
648
+ 00:09:28.590 --> 00:09:30.510
649
+ y lo hago con una variable que Google
650
+
651
+ 00:09:30.510 --> 00:09:32.110
652
+ me dio. No se preocupen por esto, esto
653
+
654
+ 00:09:32.110 --> 00:09:33.950
655
+ son cosas avanzadas que luego van a tener
656
+
657
+ 00:09:33.950 --> 00:09:36.510
658
+ que usar. Una vez tienes tu dominio y
659
+
660
+ 00:09:36.510 --> 00:09:38.750
661
+ le está apuntando una IP, ahora necesitas tener
662
+
663
+ 00:09:38.750 --> 00:09:40.910
664
+ una IP. El solo hecho de tener un
665
+
666
+ 00:09:40.910 --> 00:09:42.995
667
+ dominio no significa tener una página web. Una
668
+
669
+ 00:09:42.995 --> 00:09:47.075
670
+ página web es una computadora en Internet a
671
+
672
+ 00:09:47.075 --> 00:09:50.675
673
+ la que tu dominio le apunta sirviendo un
674
+
675
+ 00:09:50.675 --> 00:09:54.274
676
+ servicio, típicamente un sitio web. Eso es una
677
+
678
+ 00:09:54.274 --> 00:09:55.840
679
+ computadora conectada a Internet, que es lo que
680
+
681
+ 00:09:55.840 --> 00:09:58.160
682
+ la gente llama la nube. La nube es
683
+
684
+ 00:09:58.160 --> 00:10:01.360
685
+ rentar una computadora en un data center de
686
+
687
+ 00:10:01.360 --> 00:10:03.600
688
+ otra empresa. O puede ser tu propia computadora
689
+
690
+ 00:10:03.600 --> 00:10:05.360
691
+ en tu propia conexión, pero eso es un
692
+
693
+ 00:10:05.360 --> 00:10:07.280
694
+ poco complicado y no vamos a hablar de
695
+
696
+ 00:10:07.280 --> 00:10:09.731
697
+ eso. Vamos a hablar del modelo cliente servidor,
698
+
699
+ 00:10:09.731 --> 00:10:10.931
700
+ que es lo que viene en la próxima
701
+
702
+ 00:10:10.931 --> 00:10:11.431
703
+ clase.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/03-Modelo ClienteServidor Cómo funciona un sitio web.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0114b6471aa15a0870dd871384b1282f46607d422b66f8b93f4b1c3a4e6e846e
3
+ size 201033439
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/03-Modelo ClienteServidor Cómo funciona un sitio web.vtt ADDED
@@ -0,0 +1,580 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.160 --> 00:00:02.260
4
+ Estás en tu computadora y en tu navegador
5
+
6
+ 00:00:02.399 --> 00:00:05.920
7
+ escribes platzi punto com. Al darle enter, tu
8
+
9
+ 00:00:05.920 --> 00:00:10.099
10
+ navegador es el cliente. Ese cliente manda platzi
11
+
12
+ 00:00:10.160 --> 00:00:12.240
13
+ punto com al router que lo transforma a
14
+
15
+ 00:00:12.240 --> 00:00:14.000
16
+ una IP, esa es la IP del servidor
17
+
18
+ 00:00:14.000 --> 00:00:17.045
19
+ platzi punto com, y allá está el servidor.
20
+
21
+ 00:00:17.185 --> 00:00:18.785
22
+ El servidor es donde están los datos de
23
+
24
+ 00:00:18.785 --> 00:00:21.045
25
+ Platzi punto com. Así que tu cliente envía
26
+
27
+ 00:00:21.185 --> 00:00:23.505
28
+ ese dato a Platzi punto com, esa petición
29
+
30
+ 00:00:23.505 --> 00:00:25.131
31
+ de mándeme la página web de Platzi. El
32
+
33
+ 00:00:25.131 --> 00:00:25.985
34
+ servidor recibe la petición y responde con los
35
+
36
+ 00:00:25.985 --> 00:00:31.640
37
+ datos, recibe la petición y responde con los
38
+
39
+ 00:00:31.640 --> 00:00:34.040
40
+ datos de Platzi punto com, que los envía
41
+
42
+ 00:00:34.040 --> 00:00:37.280
43
+ por HTTP, por HyperText Transfer Protocol, o el
44
+
45
+ 00:00:37.280 --> 00:00:40.075
46
+ protocolo de transferencia de hipertexto. Y como vivimos
47
+
48
+ 00:00:40.075 --> 00:00:42.815
49
+ en el futuro, ahora es el protocolo HTTPS,
50
+
51
+ 00:00:43.515 --> 00:00:46.155
52
+ donde la s significa seguro, es decir, cifra
53
+
54
+ 00:00:46.155 --> 00:00:48.955
55
+ los datos. Y esos datos cifrados llegan a
56
+
57
+ 00:00:48.955 --> 00:00:51.195
58
+ tu computadora, que es el cliente. Eso es
59
+
60
+ 00:00:51.195 --> 00:00:54.100
61
+ todo el modelo cliente servidor. Pero por detrás
62
+
63
+ 00:00:54.100 --> 00:00:56.660
64
+ no solamente pasa esto. Por ejemplo, ¿cómo le
65
+
66
+ 00:00:56.660 --> 00:00:59.560
67
+ hacen los sitios web? Para mostrarte versiones de
68
+
69
+ 00:00:59.940 --> 00:01:03.240
70
+ teléfonos móviles y versiones de computadoras de escritorio.
71
+
72
+ 00:01:03.460 --> 00:01:05.640
73
+ Esto es porque cuando tú escribes una URL
74
+
75
+ 00:01:05.775 --> 00:01:07.535
76
+ o cuando le das clic a una página
77
+
78
+ 00:01:07.535 --> 00:01:09.695
79
+ web, el cargar una página web en tu
80
+
81
+ 00:01:09.695 --> 00:01:13.215
82
+ computadora hace que tu computadora envíe en la
83
+
84
+ 00:01:13.215 --> 00:01:16.175
85
+ petición datos de quién eres tú. 1 de
86
+
87
+ 00:01:16.175 --> 00:01:18.495
88
+ esos datos es cuál es tu navegador, tu
89
+
90
+ 00:01:18.495 --> 00:01:21.700
91
+ sistema operativo y tu computadora. Ahí dice, yo
92
+
93
+ 00:01:21.700 --> 00:01:23.700
94
+ soy un iPhone, yo soy un Android, yo
95
+
96
+ 00:01:23.700 --> 00:01:25.380
97
+ soy un laptop, yo soy una computadora de
98
+
99
+ 00:01:25.380 --> 00:01:28.500
100
+ escritorio, el tamaño de tu pantalla, entre muchos
101
+
102
+ 00:01:28.500 --> 00:01:30.900
103
+ otros datos que le permiten al servidor enviarte
104
+
105
+ 00:01:30.900 --> 00:01:31.016
106
+ los datos correctos. Estos datos van invisibles al
107
+
108
+ 00:01:31.016 --> 00:01:32.489
109
+ usuario en la capa de entre muchos otros
110
+
111
+ 00:01:32.489 --> 00:01:34.766
112
+ datos que le permiten al servidor enviarte los
113
+
114
+ 00:01:34.766 --> 00:01:37.044
115
+ datos correctos. Estos datos van invisibles al usuario
116
+
117
+ 00:01:37.044 --> 00:01:39.321
118
+ en la capa de protocolo que envía la
119
+
120
+ 00:01:39.321 --> 00:01:41.599
121
+ petición del cliente, tú, al servidor. Esto va
122
+
123
+ 00:01:41.599 --> 00:01:43.877
124
+ en los headers de la conexión o en
125
+
126
+ 00:01:43.877 --> 00:01:46.350
127
+ los headers HTTP, en la cabecera HTTP. Este
128
+
129
+ 00:01:46.350 --> 00:01:48.910
130
+ dato, por ejemplo, donde están describiendo quién es
131
+
132
+ 00:01:48.910 --> 00:01:51.230
133
+ tu navegador, quién es tu computadora, se llama
134
+
135
+ 00:01:51.230 --> 00:01:54.110
136
+ agente de usuario o user agent. Por ejemplo,
137
+
138
+ 00:01:54.110 --> 00:01:56.350
139
+ cuando tú abres Gmail punto com para entrar
140
+
141
+ 00:01:56.350 --> 00:01:58.750
142
+ a tu correo, no siempre tienes que colocar
143
+
144
+ 00:01:58.750 --> 00:02:00.350
145
+ tu nombre de usuario y contraseña, a veces
146
+
147
+ 00:02:00.350 --> 00:02:03.185
148
+ ya sabe quién eres tú y carga exactamente
149
+
150
+ 00:02:03.325 --> 00:02:06.284
151
+ tus emails. ¿Cómo hace eso? Eso lo hace
152
+
153
+ 00:02:06.284 --> 00:02:07.965
154
+ porque ya sabe quién eres tú, porque la
155
+
156
+ 00:02:07.965 --> 00:02:09.965
157
+ última vez que te logueaste el servidor te
158
+
159
+ 00:02:09.965 --> 00:02:13.405
160
+ dejó unos datos en tu computadora guardados que
161
+
162
+ 00:02:13.405 --> 00:02:16.970
163
+ indican e identifican que tú eres tú. Esos
164
+
165
+ 00:02:16.970 --> 00:02:19.209
166
+ datos se llaman cookies. Una cookie o una
167
+
168
+ 00:02:19.209 --> 00:02:21.849
169
+ galleta son unos datos que quedan guardados en
170
+
171
+ 00:02:21.849 --> 00:02:25.930
172
+ tu computadora asignados al dominio de la petición
173
+
174
+ 00:02:25.930 --> 00:02:28.170
175
+ que estás haciendo, Google punto com, Gmail punto
176
+
177
+ 00:02:28.170 --> 00:02:31.545
178
+ com, Platzi punto com. Y esas variables, esas
179
+
180
+ 00:02:31.545 --> 00:02:34.685
181
+ cookies, siempre viajan en la cabecera del protocolo
182
+
183
+ 00:02:34.745 --> 00:02:36.584
184
+ cuando vas a pedirle algo. Así, si tú
185
+
186
+ 00:02:36.584 --> 00:02:38.424
187
+ entras a Platzi punto com y ya eres
188
+
189
+ 00:02:38.424 --> 00:02:40.905
190
+ un estudiante de Platzi, Platzi punto com lo
191
+
192
+ 00:02:40.905 --> 00:02:43.500
193
+ sabe porque en las cookies están tus datos
194
+
195
+ 00:02:43.500 --> 00:02:45.379
196
+ de identificación de la última vez que colocaste
197
+
198
+ 00:02:45.379 --> 00:02:47.739
199
+ tu nombre de usuario y contraseña. Entonces, en
200
+
201
+ 00:02:47.739 --> 00:02:50.780
202
+ vez de responderle del servidor al cliente con
203
+
204
+ 00:02:50.780 --> 00:02:52.939
205
+ el sitio web normal de Platzi punto com,
206
+
207
+ 00:02:52.939 --> 00:02:55.919
208
+ te respondemos con el home de estudiante donde
209
+
210
+ 00:02:55.980 --> 00:02:59.315
211
+ están tus clases y tus cursos. Es una
212
+
213
+ 00:02:59.315 --> 00:03:03.394
214
+ respuesta única y especial derivada de esa petición
215
+
216
+ 00:03:03.394 --> 00:03:06.455
217
+ porque tiene esas cookies. Pero no responde inmediatamente
218
+
219
+ 00:03:06.675 --> 00:03:11.175
220
+ con todo. Primero envía el código HTML, hypertext
221
+
222
+ 00:03:11.710 --> 00:03:14.770
223
+ Markup Language, o lenguaje de etiquetas de hipertexto,
224
+
225
+ 00:03:15.070 --> 00:03:17.070
226
+ que es la estructura de datos de una
227
+
228
+ 00:03:17.070 --> 00:03:19.890
229
+ página web. Es texto plano, es puro texto,
230
+
231
+ 00:03:19.950 --> 00:03:22.610
232
+ y en ese texto hay referencias a otros
233
+
234
+ 00:03:22.830 --> 00:03:24.590
235
+ archivos. Por ejemplo, hay referencias a la a
236
+
237
+ 00:03:24.590 --> 00:03:28.745
238
+ cargar hojas de estilo o CSS, Cascade Stylesheets,
239
+
240
+ 00:03:28.885 --> 00:03:30.885
241
+ hojas de estilo en cascada. Este es un
242
+
243
+ 00:03:30.885 --> 00:03:34.165
244
+ lenguaje que define el diseño gráfico del sitio
245
+
246
+ 00:03:34.165 --> 00:03:36.525
247
+ web. Entonces, el navegador va y lo carga,
248
+
249
+ 00:03:36.525 --> 00:03:38.665
250
+ y eso es lo que carga el diseño
251
+
252
+ 00:03:38.805 --> 00:03:40.739
253
+ web de toda la página web. Pero también
254
+
255
+ 00:03:40.739 --> 00:03:43.239
256
+ necesitas componentes interactivos, lo que hace que los
257
+
258
+ 00:03:43.239 --> 00:03:45.299
259
+ botones reaccionen al dar clic, lo que mueve
260
+
261
+ 00:03:45.299 --> 00:03:47.379
262
+ todo el sitio web. Este código se llama
263
+
264
+ 00:03:47.379 --> 00:03:50.420
265
+ JavaScript y también está referenciado en el HTML.
266
+
267
+ 00:03:50.420 --> 00:03:53.319
268
+ Estas son peticiones adicionales al servidor que regresan
269
+
270
+ 00:03:53.379 --> 00:03:55.435
271
+ al navegador y es lo que va construyendo
272
+
273
+ 00:03:55.435 --> 00:03:57.754
274
+ la representación de una página web, sea en
275
+
276
+ 00:03:57.754 --> 00:03:59.595
277
+ el navegador de tu teléfono o en el
278
+
279
+ 00:03:59.595 --> 00:04:01.834
280
+ navegador de tu escritorio o en donde sea.
281
+
282
+ 00:04:01.834 --> 00:04:04.495
283
+ Por ejemplo, si estás buscando algo en Platzi
284
+
285
+ 00:04:04.555 --> 00:04:07.114
286
+ y colocas un término de búsqueda, notarás que
287
+
288
+ 00:04:07.114 --> 00:04:09.030
289
+ la URL o la dirección de Internet que
290
+
291
+ 00:04:09.030 --> 00:04:10.750
292
+ se ve allá arriba en el navegador dice
293
+
294
+ 00:04:10.750 --> 00:04:14.894
295
+ platzi punto com slash buscar slash signo de
296
+
297
+ 00:04:14.894 --> 00:04:18.606
298
+ interrogación search igual chat GPT. Ese signo de
299
+
300
+ 00:04:18.606 --> 00:04:21.410
301
+ interrogación significa, voy a enviarle variables al servidor
302
+
303
+ 00:04:21.694 --> 00:04:24.514
304
+ a través de un método llamado el método
305
+
306
+ 00:04:25.215 --> 00:04:28.175
307
+ get, GET. El método get son variables que
308
+
309
+ 00:04:28.175 --> 00:04:30.655
310
+ viajan por la URL. La variable se llama
311
+
312
+ 00:04:30.655 --> 00:04:32.895
313
+ search y el valor de la variable, en
314
+
315
+ 00:04:32.895 --> 00:04:34.770
316
+ este caso, es chat GPT. Sin embargo, tú
317
+
318
+ 00:04:34.770 --> 00:04:36.290
319
+ no puedes enviar tu nombre de usuario y
320
+
321
+ 00:04:36.290 --> 00:04:38.290
322
+ tu contraseña por ahí, porque resulta que todo
323
+
324
+ 00:04:38.290 --> 00:04:39.970
325
+ lo que envíes por get queda en el
326
+
327
+ 00:04:39.970 --> 00:04:42.290
328
+ historial del navegador, así que sería un problema
329
+
330
+ 00:04:42.290 --> 00:04:46.130
331
+ de seguridad que tu contraseña estuviera en texto
332
+
333
+ 00:04:46.130 --> 00:04:48.615
334
+ plano guardada en el historial del navegador, ¿verdad?
335
+
336
+ 00:04:48.854 --> 00:04:51.615
337
+ Hay un método para enviar estas variables de
338
+
339
+ 00:04:51.615 --> 00:04:55.974
340
+ forma escondida, empaquetada en la cabecera de los
341
+
342
+ 00:04:55.974 --> 00:04:58.134
343
+ envíos, de tal manera que nadie lo pueda
344
+
345
+ 00:04:58.134 --> 00:05:00.375
346
+ ver cuando estén accediendo al historial. Imagina, por
347
+
348
+ 00:05:00.375 --> 00:05:01.895
349
+ ejemplo, que estás en un café Internet o
350
+
351
+ 00:05:01.895 --> 00:05:04.215
352
+ cosas por el estilo. Entonces, si tú tienes
353
+
354
+ 00:05:04.215 --> 00:05:05.949
355
+ una una formulario que tiene un usuario y
356
+
357
+ 00:05:05.949 --> 00:05:08.590
358
+ contraseña y le das el botón de login,
359
+
360
+ 00:05:08.590 --> 00:05:11.949
361
+ tienes un método llamado post, P0ST. En el
362
+
363
+ 00:05:11.949 --> 00:05:15.710
364
+ método post, ese formulario se encapsula en un
365
+
366
+ 00:05:15.710 --> 00:05:18.110
367
+ paquetico que va en el header similar al
368
+
369
+ 00:05:18.110 --> 00:05:20.685
370
+ user agent, los datos de tu navegador. Así
371
+
372
+ 00:05:20.685 --> 00:05:22.444
373
+ el servidor se da cuenta, ah, este es
374
+
375
+ 00:05:22.444 --> 00:05:24.465
376
+ el nombre de usuario Freddy y la contraseña
377
+
378
+ 00:05:24.925 --> 00:05:28.044
379
+ tal, y la respuesta es una respuesta exclusiva
380
+
381
+ 00:05:28.044 --> 00:05:29.884
382
+ para el nombre de usuario y contraseña que
383
+
384
+ 00:05:29.884 --> 00:05:32.604
385
+ el servidor obtuvo. Los servidores pueden dar diferentes
386
+
387
+ 00:05:32.604 --> 00:05:35.164
388
+ tipos de respuesta dependiendo de la petición que
389
+
390
+ 00:05:35.164 --> 00:05:37.789
391
+ hagas. La respuesta más típica es que todo
392
+
393
+ 00:05:37.789 --> 00:05:40.669
394
+ está bien. Estas respuestas son unos números que
395
+
396
+ 00:05:40.669 --> 00:05:43.490
397
+ van en la cabecera de la respuesta. 200
398
+
399
+ 00:05:43.710 --> 00:05:46.430
400
+ ok significa todo está bien. Pero seguro que
401
+
402
+ 00:05:46.430 --> 00:05:49.735
403
+ tú has escuchado el error 404, ¿verdad? Cuando
404
+
405
+ 00:05:49.735 --> 00:05:51.574
406
+ intentas acceder a un sitio web que no
407
+
408
+ 00:05:51.574 --> 00:05:53.574
409
+ existe, a una dirección dentro del servidor que
410
+
411
+ 00:05:53.574 --> 00:05:56.775
412
+ no existe, los servidores HTTP tienden a responder
413
+
414
+ 00:05:56.775 --> 00:06:00.474
415
+ con not found, no existe, 404. Si el
416
+
417
+ 00:06:00.535 --> 00:06:03.014
418
+ servidor está ocupado o el servidor está trabado
419
+
420
+ 00:06:03.014 --> 00:06:04.294
421
+ o hay un error de configuración en el
422
+
423
+ 00:06:04.294 --> 00:06:06.370
424
+ servidor, el error típico de error es el
425
+
426
+ 00:06:06.370 --> 00:06:09.410
427
+ error 500. Y por último, cuando una dirección
428
+
429
+ 00:06:09.410 --> 00:06:12.050
430
+ existía y ya no existe, pero apunta a
431
+
432
+ 00:06:12.050 --> 00:06:14.690
433
+ un nuevo lugar, eso es una redirección, y
434
+
435
+ 00:06:14.690 --> 00:06:17.349
436
+ eso se hace con la respuesta 300 redirect.
437
+
438
+ 00:06:17.645 --> 00:06:19.565
439
+ Todo esto es verdad para páginas web, pero
440
+
441
+ 00:06:19.565 --> 00:06:23.185
442
+ ¿cómo funcionan los APIs? ¿Cómo funciona el mover
443
+
444
+ 00:06:23.325 --> 00:06:26.925
445
+ archivos? ¿Cómo funciona el enviar correo? Con diferentes
446
+
447
+ 00:06:26.925 --> 00:06:30.285
448
+ protocolos. Estos son los protocolos SMTP o Simple
449
+
450
+ 00:06:30.285 --> 00:06:32.478
451
+ Message Transfer Protocol, que realmente está en desuso,
452
+
453
+ 00:06:32.478 --> 00:06:32.745
454
+ el protocolo POP 3 o PostOffice Protocol 3,
455
+
456
+ 00:06:32.745 --> 00:06:39.630
457
+ y por último, el protocolo o Internet Message
458
+
459
+ 00:06:39.810 --> 00:06:43.450
460
+ Access Protocol. Estos son protocolos del formato de
461
+
462
+ 00:06:43.450 --> 00:06:45.975
463
+ envío y recepción de correo electrónico. La realidad
464
+
465
+ 00:06:45.975 --> 00:06:48.535
466
+ es que hoy en día muy pocas empresas
467
+
468
+ 00:06:48.535 --> 00:06:51.014
469
+ manejan sus propios servidores de correo electrónico. Solo
470
+
471
+ 00:06:51.014 --> 00:06:53.014
472
+ las empresas más grandes lo pueden hacer porque
473
+
474
+ 00:06:53.014 --> 00:06:55.655
475
+ el correo electrónico se ha vuelto increíblemente complejo,
476
+
477
+ 00:06:55.655 --> 00:06:57.335
478
+ y la gran mayoría de las compañías le
479
+
480
+ 00:06:57.335 --> 00:06:59.540
481
+ delegan la gestión de su correo electrónico a
482
+
483
+ 00:06:59.540 --> 00:07:02.420
484
+ 2 empresas, a Microsoft con Outlook o a
485
+
486
+ 00:07:02.420 --> 00:07:05.060
487
+ Google con Gmail. Pero ¿qué pasa cuando tengo
488
+
489
+ 00:07:05.060 --> 00:07:08.260
490
+ un teléfono y tengo una aplicación móvil que
491
+
492
+ 00:07:08.260 --> 00:07:10.580
493
+ tiene que cargarme unos datos? Para que los
494
+
495
+ 00:07:10.580 --> 00:07:13.705
496
+ datos de esta app en este teléfono lleguen
497
+
498
+ 00:07:13.705 --> 00:07:16.525
499
+ y sean representados, tengo que ir al servidor
500
+
501
+ 00:07:16.585 --> 00:07:19.251
502
+ a buscar esos datos. Pero las aplicaciones no
503
+
504
+ 00:07:19.251 --> 00:07:24.185
505
+ usan HTML, CSS ni JavaScript, usan lenguajes propios
506
+
507
+ 00:07:24.185 --> 00:07:27.590
508
+ de aplicaciones nativas. En el caso de Android
509
+
510
+ 00:07:27.590 --> 00:07:29.750
511
+ usan Java o Kotlin, y en el caso
512
+
513
+ 00:07:29.750 --> 00:07:33.430
514
+ de iOS usan SWIFT o Object C. Entonces,
515
+
516
+ 00:07:33.430 --> 00:07:35.350
517
+ al cargar los datos no necesitan cargar los
518
+
519
+ 00:07:35.350 --> 00:07:38.630
520
+ típicos datos HTML, usan otras cosas. Usan unas
521
+
522
+ 00:07:38.630 --> 00:07:41.905
523
+ estructuras de datos entre servidor y aplicación que
524
+
525
+ 00:07:41.905 --> 00:07:45.604
526
+ se conocen como JSON o como XML. JSON
527
+
528
+ 00:07:45.745 --> 00:07:48.945
529
+ significa JavaScript Object Notation, y es una forma
530
+
531
+ 00:07:48.945 --> 00:07:51.104
532
+ de guardar datos. Puedes saber más en nuestros
533
+
534
+ 00:07:51.104 --> 00:07:54.305
535
+ cursos de JavaScript en Platzi, y XML significa
536
+
537
+ 00:07:54.305 --> 00:07:57.285
538
+ Extended Market Language, que es parecido a HTML,
539
+
540
+ 00:07:57.740 --> 00:08:00.780
541
+ pero en vez de expresar etiquetas de representación
542
+
543
+ 00:08:00.780 --> 00:08:05.260
544
+ de información visual, como títulos, cabeceras, etcétera, expresa
545
+
546
+ 00:08:05.260 --> 00:08:07.980
547
+ cualquier tipo de estructura de datos normal. Solo
548
+
549
+ 00:08:07.980 --> 00:08:10.480
550
+ ten en mente que aunque sea XML, JSON,
551
+
552
+ 00:08:10.620 --> 00:08:14.115
553
+ HTML, JavaScript, CSS o lo que sea, sigue
554
+
555
+ 00:08:14.115 --> 00:08:16.595
556
+ siendo lo mismo. Un cliente, una app, un
557
+
558
+ 00:08:16.595 --> 00:08:18.755
559
+ navegador o lo que sea, hace una petición
560
+
561
+ 00:08:18.755 --> 00:08:21.315
562
+ a través de un protocolo, típicamente el protocolo
563
+
564
+ 00:08:21.315 --> 00:08:24.035
565
+ HTTP con la s de seguro, eso significa
566
+
567
+ 00:08:24.035 --> 00:08:26.355
568
+ que se intercambiaron llaves de cifrado, como vimos
569
+
570
+ 00:08:26.355 --> 00:08:29.770
571
+ en la clase de WhatsApp, que envía, entiende
572
+
573
+ 00:08:29.770 --> 00:08:32.650
574
+ los datos y los devuelve de regreso al
575
+
576
+ 00:08:32.650 --> 00:08:34.970
577
+ cliente. Y ese completo es el modelo cliente
578
+
579
+ 00:08:34.970 --> 00:08:35.470
580
+ servidor.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/02-Redes e Internet/03-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Diferencias entre Windows Linux y MacOS.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3e43431492a87fc00cc6eb8d012889f7f1b8d9e40735dc22894f32ca39b4eaef
3
+ size 200114412
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Diferencias entre Windows Linux y MacOS.vtt ADDED
@@ -0,0 +1,529 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.160 --> 00:00:03.120
4
+ Las primeras computadoras no tenían sistemas operativos. Tú
5
+
6
+ 00:00:03.120 --> 00:00:06.100
7
+ llegabas con tu programa, que eran una serie
8
+
9
+ 00:00:06.240 --> 00:00:09.679
10
+ de tarjetas perforadas donde cada huequito significaba algo
11
+
12
+ 00:00:09.679 --> 00:00:12.320
13
+ en el lenguaje ensamblador de la unidad de
14
+
15
+ 00:00:12.320 --> 00:00:15.245
16
+ procesamiento central o CPU. La insertaba a ser
17
+
18
+ 00:00:15.245 --> 00:00:18.045
19
+ un escáner que escaneaba los datos, procesaba y
20
+
21
+ 00:00:18.045 --> 00:00:20.765
22
+ luego entregaba el resultado en una impresora de
23
+
24
+ 00:00:20.765 --> 00:00:23.244
25
+ matriz de punto. Luego terminó pasando que estas
26
+
27
+ 00:00:23.244 --> 00:00:27.390
28
+ computadoras querían poder correr múltiples diferentes programas, así
29
+
30
+ 00:00:27.390 --> 00:00:30.029
31
+ que empezó la primera generación de sistemas operativos
32
+
33
+ 00:00:30.029 --> 00:00:33.790
34
+ que eran capaces de cargar diferentes programas y
35
+
36
+ 00:00:33.790 --> 00:00:36.350
37
+ representarlos de maneras distintas. Con el pasar del
38
+
39
+ 00:00:36.350 --> 00:00:38.670
40
+ tiempo, se empezaron a necesitar que estos programas
41
+
42
+ 00:00:38.670 --> 00:00:41.835
43
+ ocurrieran en paralelo o que 1 pudiera acceder
44
+
45
+ 00:00:41.835 --> 00:00:44.395
46
+ con su propio nombre de usuario y tener
47
+
48
+ 00:00:44.395 --> 00:00:46.795
49
+ su propia definición de permisos, y esto fue
50
+
51
+ 00:00:46.795 --> 00:00:48.875
52
+ lo que fue construyendo el concepto que hoy
53
+
54
+ 00:00:48.875 --> 00:00:52.235
55
+ en día conocemos como sistema operativo. La historia
56
+
57
+ 00:00:52.235 --> 00:00:55.289
58
+ de los sistemas operativos empieza en varios diferentes
59
+
60
+ 00:00:55.289 --> 00:00:57.949
61
+ lugares del mundo y realmente en varias compañías.
62
+
63
+ 00:00:58.170 --> 00:01:01.309
64
+ Los primeros sistemas operativos evolucionaron de algo llamado
65
+
66
+ 00:01:01.370 --> 00:01:04.509
67
+ Unix, UNIX, que fue 1 de los primeros
68
+
69
+ 00:01:04.650 --> 00:01:07.369
70
+ grandes sistemas operativos del lado del servidor. Toda
71
+
72
+ 00:01:07.369 --> 00:01:10.005
73
+ la computación inicia en servidores porque primero las
74
+
75
+ 00:01:10.005 --> 00:01:12.725
76
+ computadoras eran unas cosas gigantescas que tenían que
77
+
78
+ 00:01:12.725 --> 00:01:16.104
79
+ ser guardadas en edificios grandísimos y que ocupaban
80
+
81
+ 00:01:16.244 --> 00:01:19.045
82
+ múltiples cuartos. Unix es un sistema que permitía
83
+
84
+ 00:01:19.045 --> 00:01:22.020
85
+ tener múltiples diferentes usuarios y que divide las
86
+
87
+ 00:01:22.020 --> 00:01:23.960
88
+ cosas, como lo hemos visto en clases anteriores,
89
+
90
+ 00:01:24.020 --> 00:01:26.180
91
+ en un kernel, en un sistema de archivos
92
+
93
+ 00:01:26.180 --> 00:01:30.439
94
+ con usuarios, etcétera. Estos Unix se fueron fragmentando
95
+
96
+ 00:01:30.740 --> 00:01:33.780
97
+ y teniendo diferentes mecanismos. 1 de los mecanismos
98
+
99
+ 00:01:33.780 --> 00:01:36.600
100
+ más populares de Unix lo conocemos como BSD,
101
+
102
+ 00:01:37.185 --> 00:01:39.505
103
+ que tiene un iconito de un diablito. Los
104
+
105
+ 00:01:39.505 --> 00:01:42.305
106
+ sistemas BSD, que inicialmente fueron sistemas de investigación
107
+
108
+ 00:01:42.305 --> 00:01:45.025
109
+ en la Universidad de Berkeley, luego fueron creciendo
110
+
111
+ 00:01:45.025 --> 00:01:47.265
112
+ y aumentándose, y esto lleva a la creación
113
+
114
+ 00:01:47.265 --> 00:01:49.240
115
+ de empresas como son Micro Systems o a
116
+
117
+ 00:01:49.240 --> 00:01:52.479
118
+ sistemas gratuitos como Free BSD. Con el pasar
119
+
120
+ 00:01:52.479 --> 00:01:54.560
121
+ del tiempo, de aquí va a salir el
122
+
123
+ 00:01:54.560 --> 00:01:57.380
124
+ sistema operativo que hoy conocemos como Mac OS
125
+
126
+ 00:01:57.920 --> 00:02:00.440
127
+ X. Luego está la otra rama de Unix,
128
+
129
+ 00:02:00.440 --> 00:02:03.195
130
+ que es la rama que se volvió Linux.
131
+
132
+ 00:02:03.355 --> 00:02:05.915
133
+ Unix, como sistema, creó una serie de reglas
134
+
135
+ 00:02:05.915 --> 00:02:08.975
136
+ que luego varios investigadores, entre ellos Linux Torvalds,
137
+
138
+ 00:02:09.435 --> 00:02:11.715
139
+ crearon y construyeron de una manera de software
140
+
141
+ 00:02:11.715 --> 00:02:16.620
142
+ completamente abierto, montado sobre una teoría de que
143
+
144
+ 00:02:16.620 --> 00:02:20.140
145
+ el software tenía que ser gratuito, abierto y
146
+
147
+ 00:02:20.140 --> 00:02:22.160
148
+ completamente libre para todo el mundo, creada originalmente
149
+
150
+ 00:02:22.220 --> 00:02:24.660
151
+ por alguien llamado Richard Stallmann, en una fundación
152
+
153
+ 00:02:24.660 --> 00:02:28.495
154
+ llamada GNU, con una licencia especial llamada la
155
+
156
+ 00:02:28.875 --> 00:02:31.614
157
+ licencia GPL, que era una licencia de software
158
+
159
+ 00:02:32.075 --> 00:02:34.315
160
+ libre. De aquí nace toda una revolución que
161
+
162
+ 00:02:34.315 --> 00:02:36.715
163
+ termina creando Linux, el sistema operativo más popular
164
+
165
+ 00:02:36.715 --> 00:02:39.114
166
+ de la tierra. La gran mayoría de servidores
167
+
168
+ 00:02:39.114 --> 00:02:41.390
169
+ allá afuera usan Linux, la gran mayoría de
170
+
171
+ 00:02:41.390 --> 00:02:44.990
172
+ desarrolladores de software profesionales terminan usando Linux o
173
+
174
+ 00:02:44.990 --> 00:02:47.390
175
+ Unix, de alguna manera, en sus carreras. Y
176
+
177
+ 00:02:47.390 --> 00:02:50.610
178
+ de Linux nacen también varias compañías muy grandes,
179
+
180
+ 00:02:51.070 --> 00:02:55.310
181
+ RedHat, Debian, Ubuntu y probablemente la versión de
182
+
183
+ 00:02:55.310 --> 00:02:58.195
184
+ Linux más popular del mundo, que es Android,
185
+
186
+ 00:02:58.195 --> 00:02:59.875
187
+ en la que corren la gran mayoría de
188
+
189
+ 00:02:59.875 --> 00:03:02.515
190
+ teléfonos del planeta. El Mac viene de un
191
+
192
+ 00:03:02.515 --> 00:03:05.395
193
+ lugar muy único. En los años setentas había
194
+
195
+ 00:03:05.395 --> 00:03:08.375
196
+ un laboratorio en Silicon Valley llamado el laboratorio
197
+
198
+ 00:03:08.515 --> 00:03:11.519
199
+ Zerox Park, en Palo Alto. Palo Alto es
200
+
201
+ 00:03:11.519 --> 00:03:13.519
202
+ un pueblito al sur de San Francisco que,
203
+
204
+ 00:03:13.519 --> 00:03:16.739
205
+ si ustedes van, eso parece un pueblito latinoamericano
206
+
207
+ 00:03:17.200 --> 00:03:19.599
208
+ de piscinas balneario. Pero ahí también está muy
209
+
210
+ 00:03:19.599 --> 00:03:22.080
211
+ cerca Stanford y otras universidades grandes, y estaba
212
+
213
+ 00:03:22.080 --> 00:03:24.525
214
+ el laboratorio de Xerox. Hoy conocemos a Xerox
215
+
216
+ 00:03:24.525 --> 00:03:26.605
217
+ como la empresa que hace impresoras, pero en
218
+
219
+ 00:03:26.605 --> 00:03:28.685
220
+ la época Xerox tenían los laboratorios de computación
221
+
222
+ 00:03:28.685 --> 00:03:31.245
223
+ más avanzados del mundo. En ese laboratorio, ellos
224
+
225
+ 00:03:31.245 --> 00:03:35.084
226
+ construyeron la primera computadora con una interfaz gráfica
227
+
228
+ 00:03:35.084 --> 00:03:38.590
229
+ basada en ventanas, y crearon el concepto que
230
+
231
+ 00:03:38.590 --> 00:03:41.010
232
+ hoy en día todos usamos llamado el mouse.
233
+
234
+ 00:03:41.390 --> 00:03:44.030
235
+ Le dieron un paseo a una persona que
236
+
237
+ 00:03:44.030 --> 00:03:47.329
238
+ estaba construyendo en las primeras empresas de computación
239
+
240
+ 00:03:47.709 --> 00:03:50.275
241
+ personal en la época, Steve Jobs y Steve
242
+
243
+ 00:03:50.275 --> 00:03:52.935
244
+ Bostiack. Ellos vieron lo que estaba haciendo Zerox
245
+
246
+ 00:03:53.155 --> 00:03:56.114
247
+ y, básicamente, se lo robaron y construyeron una
248
+
249
+ 00:03:56.114 --> 00:03:59.094
250
+ versión del sistema operativo de Zerox de distribución
251
+
252
+ 00:03:59.234 --> 00:04:02.594
253
+ masiva. Esta es la computadora Lisa. Lisa no
254
+
255
+ 00:04:02.594 --> 00:04:04.819
256
+ fue un éxito comercial, pero las teorías de
257
+
258
+ 00:04:04.819 --> 00:04:07.060
259
+ Lisa luego se aplicaron de una manera con
260
+
261
+ 00:04:07.060 --> 00:04:10.760
262
+ mucho éxito comercial en el Macintosh, o Mac,
263
+
264
+ 00:04:10.980 --> 00:04:13.640
265
+ que es la primera computadora con interfaz gráfica
266
+
267
+ 00:04:13.700 --> 00:04:16.019
268
+ de distribución masiva en el planeta. Al tiempo
269
+
270
+ 00:04:16.019 --> 00:04:18.019
271
+ que el laboratorio ZeroX Park había creado este
272
+
273
+ 00:04:18.019 --> 00:04:21.964
274
+ sistema operativo visual, otra empresa creó un sistema
275
+
276
+ 00:04:21.964 --> 00:04:25.565
277
+ operativo basado completamente en texto y controlado por
278
+
279
+ 00:04:25.565 --> 00:04:28.605
280
+ disquetes, esos discos de plástico. Este sistema es
281
+
282
+ 00:04:28.605 --> 00:04:31.645
283
+ conocido como CPM, Control Program Monitor, y fue
284
+
285
+ 00:04:31.645 --> 00:04:35.030
286
+ construido por una empresa llamada Digital Research. Ellos
287
+
288
+ 00:04:35.890 --> 00:04:38.210
289
+ desarrollan esta teoría de los sistemas operativos basados
290
+
291
+ 00:04:38.210 --> 00:04:42.290
292
+ en texto controlados por disket en paralelo distinto
293
+
294
+ 00:04:42.290 --> 00:04:45.570
295
+ a Unix. Unix también era controlado por texto,
296
+
297
+ 00:04:45.570 --> 00:04:47.510
298
+ por una terminal y una línea de comandos,
299
+
300
+ 00:04:47.695 --> 00:04:50.655
301
+ pero Unix estaba hecho para servidores. CPM es
302
+
303
+ 00:04:50.655 --> 00:04:53.455
304
+ el padre de los sistemas operativos basados en
305
+
306
+ 00:04:53.455 --> 00:04:56.815
307
+ computadoras. Otra persona decidió crear una versión más
308
+
309
+ 00:04:56.815 --> 00:05:00.330
310
+ simple de este sistema operativo llamado 2, o
311
+
312
+ 00:05:00.790 --> 00:05:04.870
313
+ 2. Famosamente, Bill Gates, a través de la
314
+
315
+ 00:05:04.870 --> 00:05:07.670
316
+ conexión que su mamá tenía como asistente del
317
+
318
+ 00:05:07.670 --> 00:05:10.390
319
+ CEO de IBM, le vende a IBM la
320
+
321
+ 00:05:10.390 --> 00:05:11.830
322
+ idea de que ellos ya tienen un sistema
323
+
324
+ 00:05:11.830 --> 00:05:14.485
325
+ operativo, pero no la tenían. Fueron, le compraron
326
+
327
+ 00:05:14.485 --> 00:05:17.125
328
+ 2 a otra persona, y esa persona que
329
+
330
+ 00:05:17.125 --> 00:05:20.245
331
+ les vende 2 termina vendiéndoles la cosa que
332
+
333
+ 00:05:20.245 --> 00:05:23.525
334
+ se convierte en Microsoft 2, que por 50000
335
+
336
+ 00:05:23.525 --> 00:05:25.685
337
+ dólares construye la semilla de 1 de los
338
+
339
+ 00:05:25.685 --> 00:05:28.150
340
+ imperios más grandes de la historia, Microsoft. Similar
341
+
342
+ 00:05:28.150 --> 00:05:30.150
343
+ a cuando en Zedox Park en Palo Alto
344
+
345
+ 00:05:30.150 --> 00:05:32.390
346
+ los investigadores le dieron un paseo al equipo
347
+
348
+ 00:05:32.390 --> 00:05:35.190
349
+ de Steve Jobs, Steve Jobs en Apple le
350
+
351
+ 00:05:35.190 --> 00:05:37.510
352
+ dio un paseo a Bill Gates y al
353
+
354
+ 00:05:37.510 --> 00:05:39.910
355
+ agente de Microsoft, y cuando Microsoft se dio
356
+
357
+ 00:05:39.910 --> 00:05:41.350
358
+ cuenta de lo que Apple está haciendo con
359
+
360
+ 00:05:41.350 --> 00:05:43.764
361
+ Mac, se fueron de regreso a la empresa
362
+
363
+ 00:05:43.764 --> 00:05:47.044
364
+ y empezaron a alta velocidad a desarrollar un
365
+
366
+ 00:05:47.044 --> 00:05:50.264
367
+ clon de este sistema operativo para computadoras IBM
368
+
369
+ 00:05:50.405 --> 00:05:52.885
370
+ y para computadoras de escritorio genéricas que otros
371
+
372
+ 00:05:52.885 --> 00:05:57.030
373
+ fabricantes pudieran fabricar. Mac, Apple fabricaba su propia
374
+
375
+ 00:05:57.030 --> 00:05:59.669
376
+ computadora y su propio sistema operativo. Microsoft no
377
+
378
+ 00:05:59.669 --> 00:06:01.990
379
+ fabricaba computadoras. Ese negocio se lo dejaba a
380
+
381
+ 00:06:01.990 --> 00:06:04.550
382
+ Compact, a IBM y a otros fabricantes. Ellos
383
+
384
+ 00:06:04.550 --> 00:06:07.030
385
+ solamente hacían sistemas operativos. Y con lo que
386
+
387
+ 00:06:07.030 --> 00:06:10.395
388
+ aprendieron del Mac, crearon un sistema operativo gráfico
389
+
390
+ 00:06:11.014 --> 00:06:14.375
391
+ clonando las ideas que habían extraído del Mac
392
+
393
+ 00:06:14.375 --> 00:06:16.935
394
+ y este lo llamaron Windows. De ahí nace
395
+
396
+ 00:06:16.935 --> 00:06:18.775
397
+ Windows 3, que eventualmente el más popular se
398
+
399
+ 00:06:18.775 --> 00:06:21.180
400
+ vuelve Windows 3.1, y esto le da inicio
401
+
402
+ 00:06:21.180 --> 00:06:22.700
403
+ a una de las guerras de la época
404
+
405
+ 00:06:22.700 --> 00:06:25.180
406
+ que fue la guerra de los sistemas operativos.
407
+
408
+ 00:06:25.180 --> 00:06:28.960
409
+ Windows 3.1, Windows 95, Windows Millenium, Windows 2000
410
+
411
+ 00:06:29.420 --> 00:06:31.760
412
+ Professional, antes de eso el Windows que tenía
413
+
414
+ 00:06:31.980 --> 00:06:35.425
415
+ Internet, Windows NT, entre muchos, muchos otros. Hoy
416
+
417
+ 00:06:35.425 --> 00:06:37.745
418
+ en día tenemos 3 grandes sistemas operativos que
419
+
420
+ 00:06:37.745 --> 00:06:40.145
421
+ dominan nuestra computación. Windows, que es la gran
422
+
423
+ 00:06:40.145 --> 00:06:42.384
424
+ mayoría de las personas, Linux, que es la
425
+
426
+ 00:06:42.384 --> 00:06:45.264
427
+ gran mayoría de los servidores, y MacOS. Estos
428
+
429
+ 00:06:45.264 --> 00:06:48.465
430
+ 3 sistemas operativos compiten y tienen, pues, diferentes
431
+
432
+ 00:06:48.465 --> 00:06:50.860
433
+ usos. Windows es el sistema operativo de Microsoft,
434
+
435
+ 00:06:50.919 --> 00:06:53.160
436
+ es la interfaz gráfica por excelencia, es el
437
+
438
+ 00:06:53.160 --> 00:06:54.520
439
+ que más usan los gamers y es el
440
+
441
+ 00:06:54.520 --> 00:06:56.680
442
+ más común. Linux es el más usado por
443
+
444
+ 00:06:56.680 --> 00:07:00.120
445
+ desarrolladores de software profesionales, seguido de Mac, que
446
+
447
+ 00:07:00.120 --> 00:07:02.632
448
+ también, al ser un sistema Unix, se parece
449
+
450
+ 00:07:02.632 --> 00:07:05.890
451
+ mucho a Linux, son sistemas que tienen filosofías
452
+
453
+ 00:07:05.890 --> 00:07:07.745
454
+ muy similares, y la diferencia es que Linux
455
+
456
+ 00:07:07.745 --> 00:07:09.825
457
+ es un sistema operativo abierto donde Mac, a
458
+
459
+ 00:07:09.825 --> 00:07:13.044
460
+ pesar de que usa el núcleo abierto de
461
+
462
+ 00:07:13.105 --> 00:07:16.280
463
+ BSD, es un sistema cerrado. En sistemas operativos
464
+
465
+ 00:07:16.280 --> 00:07:19.400
466
+ móviles también hay 2 grandes versiones, iOS, iPhone,
467
+
468
+ 00:07:19.400 --> 00:07:22.280
469
+ que por cierto, iOS internamente es el mismo
470
+
471
+ 00:07:22.280 --> 00:07:24.919
472
+ núcleo de un Mac, es VSD, es un
473
+
474
+ 00:07:24.919 --> 00:07:28.099
475
+ sistema Unix como VSD. Y luego está Android,
476
+
477
+ 00:07:28.199 --> 00:07:31.354
478
+ que internamente es un Linux. Hay diferentes versiones
479
+
480
+ 00:07:31.354 --> 00:07:34.074
481
+ de Android, dependiendo del teléfono que compres, hay
482
+
483
+ 00:07:34.074 --> 00:07:37.435
484
+ un solo iOS, porque es de Apple. Uses
485
+
486
+ 00:07:37.435 --> 00:07:39.775
487
+ el que uses, mi sugerencia es que aprendas
488
+
489
+ 00:07:39.835 --> 00:07:42.555
490
+ Linux. Toma ya mismo el curso de Linux
491
+
492
+ 00:07:42.555 --> 00:07:44.889
493
+ de Platzi y determina línea de comandos. Los
494
+
495
+ 00:07:44.889 --> 00:07:48.410
496
+ desarrolladores de software profesionales usan Linux, por lo
497
+
498
+ 00:07:48.410 --> 00:07:50.009
499
+ menos en algún punto de sus vidas, y
500
+
501
+ 00:07:50.009 --> 00:07:53.470
502
+ dominan Linux. Aprender Linux me cambió la vida.
503
+
504
+ 00:07:53.770 --> 00:07:56.650
505
+ Todas las súper computadoras del planeta usan Linux,
506
+
507
+ 00:07:56.650 --> 00:07:59.050
508
+ todos los servidores del planeta usan una versión
509
+
510
+ 00:07:59.050 --> 00:08:02.645
511
+ de Linux. Linux es un conocimiento fundamental. Si
512
+
513
+ 00:08:02.645 --> 00:08:04.565
514
+ esto te interesa y esto debe interesarte, no
515
+
516
+ 00:08:04.565 --> 00:08:06.905
517
+ estarías en este punto de la clase, aprende
518
+
519
+ 00:08:07.044 --> 00:08:09.125
520
+ Linux, hazlo por mí, hazlo por ti que
521
+
522
+ 00:08:09.125 --> 00:08:11.445
523
+ cree en mí. Aprende Linux hoy, toma el
524
+
525
+ 00:08:11.445 --> 00:08:14.645
526
+ curso Linux de Platzi, aprende Linux, Linux te
527
+
528
+ 00:08:14.645 --> 00:08:15.243
529
+ cambia la vida.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ https://platzi.com/cursos/prework-linux/
2
+ https://platzi.com/cursos/servidores-linux/
3
+ https://platzi.com/cursos/terminal
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/02-Permisos niveles de procesos y privilegios de ejecución.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a41be1ee616d245af48737286cc0e0ebefc3ac092f523727a8b18c57a81b56e2
3
+ size 153911323
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/02-Permisos niveles de procesos y privilegios de ejecución.vtt ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.160 --> 00:00:03.620
4
+ Es muy normal que tengamos archivos en servidores
5
+
6
+ 00:00:03.679 --> 00:00:05.440
7
+ o en computadoras que no son nuestras o
8
+
9
+ 00:00:05.440 --> 00:00:08.500
10
+ que estamos compartiendo con otras personas. Por ejemplo,
11
+
12
+ 00:00:08.559 --> 00:00:12.240
13
+ cuando tú compras un hosting de Digital Ocean,
14
+
15
+ 00:00:12.240 --> 00:00:14.705
16
+ en Amazon Web Services, en donde sea, que
17
+
18
+ 00:00:14.705 --> 00:00:17.265
19
+ realmente estás comprando es un pedacito de un
20
+
21
+ 00:00:17.265 --> 00:00:19.744
22
+ computador que estás compartiendo con 10, 100000 o
23
+
24
+ 00:00:19.744 --> 00:00:22.545
25
+ 1000000 de otros usuarios. Así que necesitas una
26
+
27
+ 00:00:22.545 --> 00:00:25.665
28
+ forma de gestionar los permisos, los accesos, los
29
+
30
+ 00:00:25.665 --> 00:00:28.930
31
+ privilegios de ejecución, entre muchas otras cosas. Vamos
32
+
33
+ 00:00:28.930 --> 00:00:31.150
34
+ a asumir, por ejemplo, que tenemos un archivo
35
+
36
+ 00:00:31.570 --> 00:00:35.610
37
+ nómina punto HTML, y ese archivo queremos que
38
+
39
+ 00:00:35.610 --> 00:00:38.250
40
+ tú, como el administrador, tengas permisos para todo,
41
+
42
+ 00:00:38.250 --> 00:00:40.250
43
+ porque el administrador lo puede todo. El administrador
44
+
45
+ 00:00:40.250 --> 00:00:42.410
46
+ es el dueño de la computadora, que es
47
+
48
+ 00:00:42.410 --> 00:00:45.155
49
+ básicamente quien tiene el nombre de usuario de
50
+
51
+ 00:00:45.155 --> 00:00:48.995
52
+ administrador y la contraseña administrador que permite acceder
53
+
54
+ 00:00:48.995 --> 00:00:51.714
55
+ a toda la computadora. Luego tienes grupos de
56
+
57
+ 00:00:51.714 --> 00:00:53.635
58
+ usuarios, entonces imagina que tienes un equipo de
59
+
60
+ 00:00:53.635 --> 00:00:56.020
61
+ desarrolladores, lo vamos a llamar devs. Y por
62
+
63
+ 00:00:56.020 --> 00:00:59.219
64
+ último está el público general, quienes deberían acceder
65
+
66
+ 00:00:59.219 --> 00:01:02.920
67
+ al archivo. ¿Qué debería poder hacer el público?
68
+
69
+ 00:01:02.980 --> 00:01:05.319
70
+ Leer el archivo, pero no lo pueden modificar,
71
+
72
+ 00:01:05.780 --> 00:01:08.259
73
+ no lo pueden borrar, no lo pueden volver
74
+
75
+ 00:01:08.259 --> 00:01:11.475
76
+ un ejecutable, es decir, que cuyo código corra
77
+
78
+ 00:01:11.475 --> 00:01:13.875
79
+ en la CPU. Eso no lo puede hacer
80
+
81
+ 00:01:13.875 --> 00:01:15.795
82
+ el público, solamente lo pueden leer. ¿Qué deberían
83
+
84
+ 00:01:15.795 --> 00:01:18.455
85
+ poder hacer los devs? Los devs, los desarrolladores
86
+
87
+ 00:01:18.674 --> 00:01:21.955
88
+ del equipo, deberían poder leerlo y escribirlo. Y,
89
+
90
+ 00:01:21.955 --> 00:01:24.115
91
+ por último, el administrador debería poder hacer cualquier
92
+
93
+ 00:01:24.115 --> 00:01:26.660
94
+ cosa. En los sistemas tipo Unix, como Linux,
95
+
96
+ 00:01:27.280 --> 00:01:31.440
97
+ Mac, etcétera, típicamente hay 3 grandes permisos. El
98
+
99
+ 00:01:31.440 --> 00:01:33.680
100
+ permiso de lectura, que se escribe con letra
101
+
102
+ 00:01:33.680 --> 00:01:36.500
103
+ r minúscula, el de escritura, con la w
104
+
105
+ 00:01:36.720 --> 00:01:39.525
106
+ minúscula, o el de ejecución, con la x.
107
+
108
+ 00:01:39.845 --> 00:01:42.505
109
+ La ejecución es la capacidad de que el
110
+
111
+ 00:01:42.805 --> 00:01:46.085
112
+ contenido de ese archivo corra como un archivo
113
+
114
+ 00:01:46.085 --> 00:01:48.965
115
+ ejecutable, como una aplicación. En Windows, por ejemplo,
116
+
117
+ 00:01:48.965 --> 00:01:51.285
118
+ eso se logra cambiando la extensión del archivo
119
+
120
+ 00:01:51.285 --> 00:01:54.000
121
+ a una extensión punto exe. Cuando tú la
122
+
123
+ 00:01:54.000 --> 00:01:56.560
124
+ corres, te va a sacar un anuncio del
125
+
126
+ 00:01:56.560 --> 00:01:58.479
127
+ sistema operativo de Microsoft Windows, que te va
128
+
129
+ 00:01:58.479 --> 00:02:00.079
130
+ a decir, ¿estás seguro que quieres correr esta
131
+
132
+ 00:02:00.079 --> 00:02:03.360
133
+ aplicación? Algunos desarrolladores de software le piden permiso
134
+
135
+ 00:02:03.360 --> 00:02:05.360
136
+ a Microsoft para que Microsoft les dé una
137
+
138
+ 00:02:05.360 --> 00:02:07.439
139
+ llave especial de cifrado que le pueden pegar
140
+
141
+ 00:02:07.439 --> 00:02:09.595
142
+ a sus aplicaciones, de tal manera que esa
143
+
144
+ 00:02:09.595 --> 00:02:12.475
145
+ advertencia no ocurra. En Mac pasa lo mismo
146
+
147
+ 00:02:12.475 --> 00:02:15.035
148
+ con Apple, cuando, por ejemplo, ustedes corren una
149
+
150
+ 00:02:15.035 --> 00:02:18.875
151
+ aplicación descargada de la tienda de aplicaciones de
152
+
153
+ 00:02:18.875 --> 00:02:21.675
154
+ Mac, la App Store. En los sistemas operativos
155
+
156
+ 00:02:21.675 --> 00:02:23.995
157
+ móviles, como Android o iPhone, esto no es
158
+
159
+ 00:02:23.995 --> 00:02:27.750
160
+ necesario porque tanto Google como Apple revisaron las
161
+
162
+ 00:02:28.129 --> 00:02:30.150
163
+ aplicaciones antes de que salieran a la luz.
164
+
165
+ 00:02:30.690 --> 00:02:32.290
166
+ Pero en Linux, la forma en la que
167
+
168
+ 00:02:32.290 --> 00:02:35.370
169
+ se hace es colocándole la x en los
170
+
171
+ 00:02:35.370 --> 00:02:38.230
172
+ permisos del archivo. ¿Cómo funciona esto? Esto funciona
173
+
174
+ 00:02:38.450 --> 00:02:40.935
175
+ en el sistema operativo. Cuando tú estás, por
176
+
177
+ 00:02:40.935 --> 00:02:42.855
178
+ ejemplo, en la terminal o línea de comandos,
179
+
180
+ 00:02:42.855 --> 00:02:44.615
181
+ te recomiendo que tomes el curso de terminal
182
+
183
+ 00:02:44.615 --> 00:02:47.735
184
+ línea de comandos y que aprendas Linux. Vas
185
+
186
+ 00:02:47.735 --> 00:02:49.255
187
+ a ver que en la lista de los
188
+
189
+ 00:02:49.255 --> 00:02:52.135
190
+ archivos a veces salen estas letras, RWX, en
191
+
192
+ 00:02:52.135 --> 00:02:54.500
193
+ diferentes grupos. Entonces, yo podría decir que el
194
+
195
+ 00:02:54.500 --> 00:02:58.260
196
+ administrador tiene permisos RWX para el archivo nómina
197
+
198
+ 00:02:58.260 --> 00:03:00.420
199
+ punto HTML, o sea, que lo puede leer,
200
+
201
+ 00:03:00.420 --> 00:03:02.420
202
+ escribir y que lo puede volver un ejecutable.
203
+
204
+ 00:03:02.420 --> 00:03:05.700
205
+ Pero el equipo devs solamente tiene permisos RW,
206
+
207
+ 00:03:05.700 --> 00:03:08.445
208
+ de lectura y de escritura. Y por último,
209
+
210
+ 00:03:08.445 --> 00:03:10.605
211
+ que el equipo del público, o sea, la
212
+
213
+ 00:03:10.605 --> 00:03:13.085
214
+ gente pública, cualquier persona que accede al servidor,
215
+
216
+ 00:03:13.085 --> 00:03:15.885
217
+ lo puede leer, pero nada más. Existen diferentes
218
+
219
+ 00:03:15.885 --> 00:03:17.805
220
+ comandos en el mundo de Linux o de
221
+
222
+ 00:03:17.805 --> 00:03:20.060
223
+ Unix que permiten hacer este cambio. 1 de
224
+
225
+ 00:03:20.060 --> 00:03:22.560
226
+ los comandos más populares es el comando CHMOD,
227
+
228
+ 00:03:24.140 --> 00:03:27.740
229
+ o change mode, CHMOD. CHMOD es un comando
230
+
231
+ 00:03:27.740 --> 00:03:29.660
232
+ al que yo le agrego unos números y
233
+
234
+ 00:03:29.660 --> 00:03:33.055
235
+ esos números representan el RWX. Para saber cómo
236
+
237
+ 00:03:33.055 --> 00:03:35.295
238
+ funcionan esos números, mi recomendación toma el curso
239
+
240
+ 00:03:35.295 --> 00:03:37.295
241
+ de Linux, eso es mucho más profundo. Lo
242
+
243
+ 00:03:37.295 --> 00:03:38.575
244
+ que tienes que saber en este momento es
245
+
246
+ 00:03:38.575 --> 00:03:40.835
247
+ que existen grupos de usuario que tienen diferentes
248
+
249
+ 00:03:41.055 --> 00:03:43.935
250
+ permisos de lectura, escritura y ejecución de archivos,
251
+
252
+ 00:03:43.935 --> 00:03:46.580
253
+ y esos permisos los determina el administrador. Como
254
+
255
+ 00:03:46.580 --> 00:03:49.159
256
+ dato curioso, en los sistemas Unix o Linux,
257
+
258
+ 00:03:49.379 --> 00:03:51.379
259
+ los permisos de administrador se pueden invocar en
260
+
261
+ 00:03:51.379 --> 00:03:53.780
262
+ cualquier momento agregando antes de la ejecución de
263
+
264
+ 00:03:53.780 --> 00:03:56.040
265
+ un comando un comando que se llama sudo,
266
+
267
+ 00:03:56.180 --> 00:03:59.700
268
+ SUD0. Siempre que colocas sudo, espacio, y un
269
+
270
+ 00:03:59.700 --> 00:04:01.555
271
+ comando, el sistema operativo te va a preguntar
272
+
273
+ 00:04:01.555 --> 00:04:04.875
274
+ la contraseña del administrador, y una vez la
275
+
276
+ 00:04:04.875 --> 00:04:07.195
277
+ colocas, todos los comandos que coloques después de
278
+
279
+ 00:04:07.195 --> 00:04:10.075
280
+ la palabra sudo se ejecutan como administrador. Esa
281
+
282
+ 00:04:10.075 --> 00:04:12.075
283
+ es una forma de ejecutar comandos como administrador
284
+
285
+ 00:04:12.075 --> 00:04:16.110
286
+ sin entrar el usuario de administrador, desde cualquier
287
+
288
+ 00:04:16.110 --> 00:04:18.350
289
+ usuario. En Windows o en Mac lo puedes
290
+
291
+ 00:04:18.350 --> 00:04:20.750
292
+ hacer en la interfaz gráfica, le das clic
293
+
294
+ 00:04:20.750 --> 00:04:23.230
295
+ derecho a un archivo, le des información y
296
+
297
+ 00:04:23.230 --> 00:04:26.130
298
+ vas a encontrar diferentes interfaces que te indican
299
+
300
+ 00:04:26.350 --> 00:04:28.190
301
+ cuáles son los permisos de acceso a cada
302
+
303
+ 00:04:28.190 --> 00:04:30.705
304
+ archivo y su nivel de privilegios. Un privilegio
305
+
306
+ 00:04:30.764 --> 00:04:33.005
307
+ es el poder ejecutarse como aplicación o el
308
+
309
+ 00:04:33.005 --> 00:04:36.785
310
+ no ejecutarse, el poder editarlo o solamente acceder
311
+
312
+ 00:04:36.845 --> 00:04:39.805
313
+ él en modo lectura. Los archivos típicamente son
314
+
315
+ 00:04:39.805 --> 00:04:42.044
316
+ de un dueño, el dueño es el usuario
317
+
318
+ 00:04:42.044 --> 00:04:43.965
319
+ que lo creó. Si los devs crearon el
320
+
321
+ 00:04:43.965 --> 00:04:45.720
322
+ archivo, el dueño va a ser los devs.
323
+
324
+ 00:04:45.800 --> 00:04:47.880
325
+ Si tenemos otro tipo de usuario que crea
326
+
327
+ 00:04:47.880 --> 00:04:49.160
328
+ un archivo, pues ese va a ser el
329
+
330
+ 00:04:49.160 --> 00:04:51.800
331
+ dueño. Dependiendo del dueño del archivo, es la
332
+
333
+ 00:04:51.800 --> 00:04:53.720
334
+ capacidad de acceso al archivo y va a
335
+
336
+ 00:04:53.720 --> 00:04:55.660
337
+ depender de quién tenga el usuario y contraseña
338
+
339
+ 00:04:56.120 --> 00:04:58.725
340
+ dentro del sistema operativo que acceda al archivo.
341
+
342
+ 00:04:58.965 --> 00:05:00.985
343
+ Es posible cambiar los dueños de los archivos.
344
+
345
+ 00:05:01.205 --> 00:05:03.525
346
+ En Linux se hace con CHO 1, en
347
+
348
+ 00:05:03.525 --> 00:05:05.205
349
+ Windows y en Mac se hacen la interfaz
350
+
351
+ 00:05:05.205 --> 00:05:08.245
352
+ gráfica dándole clic derecho al archivo y cambiando
353
+
354
+ 00:05:08.245 --> 00:05:11.045
355
+ sus propiedades. Como práctica general de seguridad, 1
356
+
357
+ 00:05:11.045 --> 00:05:13.960
358
+ debería asegurarse que los archivos siempre tengan la
359
+
360
+ 00:05:13.960 --> 00:05:17.480
361
+ mínima cantidad de permisos y privilegios. Entre más
362
+
363
+ 00:05:17.480 --> 00:05:19.880
364
+ permisos y privilegios tenga un archivo, más problemas
365
+
366
+ 00:05:19.880 --> 00:05:22.940
367
+ de seguridad puede traer ese archivo. Realmente aquí
368
+
369
+ 00:05:23.240 --> 00:05:26.415
370
+ la única excepción es Windows. Windows, 1 le
371
+
372
+ 00:05:26.415 --> 00:05:28.014
373
+ puede dar clic derecho a un archivo y
374
+
375
+ 00:05:28.014 --> 00:05:31.074
376
+ decirle correr el archivo como administrador, es el
377
+
378
+ 00:05:31.215 --> 00:05:33.935
379
+ equivalente al comando sudo en Linux o en
380
+
381
+ 00:05:33.935 --> 00:05:36.495
382
+ Mac. En Windows casi nada ocurre en la
383
+
384
+ 00:05:36.495 --> 00:05:38.735
385
+ terminal y casi todo ocurre en la interfaz
386
+
387
+ 00:05:38.735 --> 00:05:41.360
388
+ gráfica. Y en Windows los ejecutables tienen que
389
+
390
+ 00:05:41.360 --> 00:05:43.940
391
+ tener un formato especial conocido como el .exe,
392
+
393
+ 00:05:44.240 --> 00:05:46.080
394
+ donde en Linux o en Mac tú puedes
395
+
396
+ 00:05:46.080 --> 00:05:48.080
397
+ tener un script de Python que se puede
398
+
399
+ 00:05:48.080 --> 00:05:50.479
400
+ volver un ejecutable perfectamente a pesar de que
401
+
402
+ 00:05:50.479 --> 00:05:52.575
403
+ internamente sea un archivo de texto. Esto va
404
+
405
+ 00:05:52.575 --> 00:05:55.135
406
+ a depender mucho del formato interno del archivo
407
+
408
+ 00:05:55.135 --> 00:05:56.655
409
+ de lo cual vamos a hablar más a
410
+
411
+ 00:05:56.655 --> 00:05:58.495
412
+ fondo en la próxima clase, nuestra clase de
413
+
414
+ 00:05:58.495 --> 00:05:59.555
415
+ formatos de archivos.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-Archivos Metadatos cabeceras y extensiones.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:edc97f357b10c0a32cf695dc7db263bda1c9bdfd2f18212638d0a60846c450d5
3
+ size 211910594
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-Archivos Metadatos cabeceras y extensiones.vtt ADDED
@@ -0,0 +1,610 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.080 --> 00:00:01.920
4
+ Los formatos de archivos son la forma en
5
+
6
+ 00:00:01.920 --> 00:00:04.160
7
+ la que dentro de los sistemas operativos se
8
+
9
+ 00:00:04.160 --> 00:00:06.420
10
+ identifica qué es lo que es un archivo,
11
+
12
+ 00:00:06.480 --> 00:00:09.120
13
+ porque algunos son una imagen, un archivo de
14
+
15
+ 00:00:09.120 --> 00:00:12.320
16
+ Word, un archivo de Excel, un video, un
17
+
18
+ 00:00:12.320 --> 00:00:14.799
19
+ PDF, un archivo de texto, y no es
20
+
21
+ 00:00:14.799 --> 00:00:18.935
22
+ necesariamente claro. Existen múltiples mecanismos para definir qué
23
+
24
+ 00:00:18.935 --> 00:00:20.855
25
+ es un tipo de archivo por dentro. El
26
+
27
+ 00:00:20.855 --> 00:00:23.275
28
+ más común es usar la extensión del archivo.
29
+
30
+ 00:00:23.335 --> 00:00:25.175
31
+ Si en el nombre del archivo termina en
32
+
33
+ 00:00:25.175 --> 00:00:27.815
34
+ punto TXT, es un texto. Punto doc es
35
+
36
+ 00:00:27.815 --> 00:00:30.535
37
+ un archivo de Word, punto HTML es un
38
+
39
+ 00:00:30.535 --> 00:00:34.340
40
+ HTML. Sin embargo, esto no es un método
41
+
42
+ 00:00:34.340 --> 00:00:36.420
43
+ muy efectivo. En los últimos años, los sistemas
44
+
45
+ 00:00:36.420 --> 00:00:39.700
46
+ operativos están escondiendo las extensiones de los sistemas
47
+
48
+ 00:00:39.700 --> 00:00:42.280
49
+ de archivos, hay que trabajar para poder mostrarlas.
50
+
51
+ 00:00:42.580 --> 00:00:44.420
52
+ Te recomiendo, si eres una persona que está
53
+
54
+ 00:00:44.420 --> 00:00:46.545
55
+ tomando este curso, que vayas ya mismo a
56
+
57
+ 00:00:46.545 --> 00:00:49.825
58
+ tu sistema operativo y muestres las extensiones. Esto
59
+
60
+ 00:00:49.825 --> 00:00:50.865
61
+ no lo vas a poder hacer en un
62
+
63
+ 00:00:50.865 --> 00:00:52.785
64
+ teléfono, pero sí se puede hacer en Windows,
65
+
66
+ 00:00:52.785 --> 00:00:54.545
67
+ en Linux o en Mac. Si ya estás
68
+
69
+ 00:00:54.545 --> 00:00:56.325
70
+ en este punto del curso, no hay ninguna
71
+
72
+ 00:00:56.545 --> 00:00:58.405
73
+ excusa que haga que tú no puedas lograrlo,
74
+
75
+ 00:00:58.465 --> 00:01:01.010
76
+ ve y lógralo. La segunda forma de saber
77
+
78
+ 00:01:01.010 --> 00:01:03.010
79
+ cómo está estructurado un archivo por dentro es
80
+
81
+ 00:01:03.010 --> 00:01:07.730
82
+ leyendo las primeras 4 letras del archivo. Cuando
83
+
84
+ 00:01:07.730 --> 00:01:09.490
85
+ ustedes abren un archivo, si es un archivo
86
+
87
+ 00:01:09.490 --> 00:01:11.330
88
+ de texto, puede que las primeras 4 letras
89
+
90
+ 00:01:11.330 --> 00:01:13.994
91
+ sean un texto cualquiera. En ese caso, el
92
+
93
+ 00:01:13.994 --> 00:01:16.715
94
+ sistema operativo simplemente asume esto es texto o
95
+
96
+ 00:01:16.715 --> 00:01:19.455
97
+ no sé qué es, pero con archivos estructurados,
98
+
99
+ 00:01:19.994 --> 00:01:24.494
100
+ como imágenes, como PDFs, las 4 primeras letras
101
+
102
+ 00:01:24.595 --> 00:01:27.274
103
+ tienden a ser una definición de lo que
104
+
105
+ 00:01:27.274 --> 00:01:28.700
106
+ el archivo es. Esto que ustedes están viendo
107
+
108
+ 00:01:28.700 --> 00:01:31.660
109
+ en pantalla es cómo un archivo binario se
110
+
111
+ 00:01:31.660 --> 00:01:34.540
112
+ ve por dentro. Del lado derecho ustedes ven
113
+
114
+ 00:01:34.540 --> 00:01:36.540
115
+ un texto que es medio ilegible, esa es
116
+
117
+ 00:01:36.540 --> 00:01:39.820
118
+ la representación ASCII o la representación en texto
119
+
120
+ 00:01:39.820 --> 00:01:42.348
121
+ normal del archivo binario. Y luego en el
122
+
123
+ 00:01:42.348 --> 00:01:44.135
124
+ centro ustedes están viendo lo que se llama
125
+
126
+ 00:01:44.135 --> 00:01:48.615
127
+ una representación hexadecimal. Cada byte se expresa como
128
+
129
+ 00:01:48.615 --> 00:01:51.335
130
+ un par de números hexadecimales, porque con 2
131
+
132
+ 00:01:51.335 --> 00:01:55.120
133
+ números hexadecimales, 2 números de 16 dígitos, puedo
134
+
135
+ 00:01:55.120 --> 00:01:57.200
136
+ expresar el contenido de un byte. Ahí van
137
+
138
+ 00:01:57.200 --> 00:01:59.280
139
+ a encontrar que los 4 primeros bytes, o
140
+
141
+ 00:01:59.280 --> 00:02:01.040
142
+ las 4 primeras letras, en el caso de
143
+
144
+ 00:02:01.040 --> 00:02:05.620
145
+ un PNG, son punto PNG. Esos 4 primeros
146
+
147
+ 00:02:05.920 --> 00:02:09.275
148
+ caracteres, esos 4 primeros bytes son la cabecera
149
+
150
+ 00:02:09.275 --> 00:02:11.275
151
+ del archivo y son el número mágico que
152
+
153
+ 00:02:11.275 --> 00:02:13.755
154
+ me indica, esto es un PNG. Así sería
155
+
156
+ 00:02:13.755 --> 00:02:16.075
157
+ un archivo punto doc o the word, y
158
+
159
+ 00:02:16.075 --> 00:02:18.715
160
+ así se vería un PDF. La otra forma
161
+
162
+ 00:02:18.715 --> 00:02:20.815
163
+ es que en los servidores web existen tipos
164
+
165
+ 00:02:20.815 --> 00:02:21.260
166
+ y subtipos de archivo, entonces los tipos pueden
167
+
168
+ 00:02:21.260 --> 00:02:23.090
169
+ ser texto, imagen, aplicación, entre otros, y archivo.
170
+
171
+ 00:02:23.090 --> 00:02:25.870
172
+ Entonces, los tipos pueden ser texto, imagen, aplicación,
173
+
174
+ 00:02:25.970 --> 00:02:28.530
175
+ entre otros, y los subtipos pueden ser texto
176
+
177
+ 00:02:28.530 --> 00:02:31.910
178
+ plano, texto en CSV, imagen PNG, imagen JPG,
179
+
180
+ 00:02:32.210 --> 00:02:35.990
181
+ aplicación PDF, etcétera. Estos se llaman tipos MIME,
182
+
183
+ 00:02:36.210 --> 00:02:39.015
184
+ MIME types. Los MIME types son una forma
185
+
186
+ 00:02:39.015 --> 00:02:41.735
187
+ para que los servidores web sepan, en general
188
+
189
+ 00:02:41.735 --> 00:02:44.135
190
+ cualquier tipo de servidor en Internet, sepa cuál
191
+
192
+ 00:02:44.135 --> 00:02:46.135
193
+ es el tipo de archivo que estás sirviendo.
194
+
195
+ 00:02:46.135 --> 00:02:48.375
196
+ Es una base de datos interna donde ciertas
197
+
198
+ 00:02:48.375 --> 00:02:51.255
199
+ extensiones o ciertas cabeceras equivalen a un cierto
200
+
201
+ 00:02:51.255 --> 00:02:53.400
202
+ tipo de archivo y se usan muy comúnmente
203
+
204
+ 00:02:53.400 --> 00:02:55.959
205
+ en los servidores web. Sin embargo, el servidor
206
+
207
+ 00:02:55.959 --> 00:02:57.720
208
+ tiene que saber cuál es cada tipo de
209
+
210
+ 00:02:57.720 --> 00:03:00.040
211
+ archivo y no es tan perfecto. La forma
212
+
213
+ 00:03:00.040 --> 00:03:02.040
214
+ más común en que los sistemas operativos definen
215
+
216
+ 00:03:02.040 --> 00:03:04.400
217
+ un archivo es a través de las primeros
218
+
219
+ 00:03:04.400 --> 00:03:06.599
220
+ 4 bytes, este número mágico, y de la
221
+
222
+ 00:03:06.599 --> 00:03:09.064
223
+ estructura de la cabecera. Un archivo de texto
224
+
225
+ 00:03:09.064 --> 00:03:12.345
226
+ plano es, como dice su nombre, texto. El
227
+
228
+ 00:03:12.345 --> 00:03:15.385
229
+ HTML, por ejemplo, o JavaScript o Python son
230
+
231
+ 00:03:15.385 --> 00:03:18.745
232
+ archivos de texto plano, cuyas extensiones puntopy punto
233
+
234
+ 00:03:18.745 --> 00:03:22.269
235
+ js punto HTML indican esto es texto plano,
236
+
237
+ 00:03:22.269 --> 00:03:25.030
238
+ pero por dentro de una estructura lógica, la
239
+
240
+ 00:03:25.030 --> 00:03:28.030
241
+ estructura HTML, JavaScript o Python. Existe una estructura
242
+
243
+ 00:03:28.030 --> 00:03:30.989
244
+ de texto plano que me permite expresar datos
245
+
246
+ 00:03:30.989 --> 00:03:33.150
247
+ como si fueran una tabla. Esa estructura se
248
+
249
+ 00:03:33.150 --> 00:03:36.915
250
+ llama CSV o coma separated values. Por ejemplo,
251
+
252
+ 00:03:36.915 --> 00:03:39.215
253
+ en los archivos de esta clase vas a
254
+
255
+ 00:03:39.215 --> 00:03:41.895
256
+ encontrar un archivo CSV que se llama empleados
257
+
258
+ 00:03:42.115 --> 00:03:44.935
259
+ punto CSV. Ahí tenemos los datos de 50
260
+
261
+ 00:03:44.955 --> 00:03:47.335
262
+ empleados de una empresa de desarrollo de software
263
+
264
+ 00:03:47.475 --> 00:03:50.615
265
+ con 5 diferentes columnas, nombre, cargo, edad, salario
266
+
267
+ 00:03:50.835 --> 00:03:53.060
268
+ y país. Si lo abres con un editor
269
+
270
+ 00:03:53.060 --> 00:03:54.980
271
+ de texto plano normal, con un editor de
272
+
273
+ 00:03:54.980 --> 00:03:57.299
274
+ código, ahí vas a encontrar en texto plano
275
+
276
+ 00:03:57.299 --> 00:03:59.640
277
+ estos archivos, pero si lo abres en Excel,
278
+
279
+ 00:03:59.780 --> 00:04:01.219
280
+ vas a verlo como si fuera una tabla
281
+
282
+ 00:04:01.219 --> 00:04:02.980
283
+ de Excel. Esto no significa que ese es
284
+
285
+ 00:04:02.980 --> 00:04:04.900
286
+ el formato de archivos de Excel, Excel es
287
+
288
+ 00:04:04.900 --> 00:04:08.224
289
+ un formato de archivo internamente mucho más complejo,
290
+
291
+ 00:04:08.224 --> 00:04:10.565
292
+ pero sí significa que esta es la versión
293
+
294
+ 00:04:11.025 --> 00:04:13.845
295
+ más simple de una forma de transmitir datos
296
+
297
+ 00:04:14.025 --> 00:04:17.824
298
+ separados por comas, como si fueran datos estructurados
299
+
300
+ 00:04:17.824 --> 00:04:19.839
301
+ en una tabla. Cuando abrimos un archivo de
302
+
303
+ 00:04:19.839 --> 00:04:21.919
304
+ Word, por ejemplo, un punto doc x, vamos
305
+
306
+ 00:04:21.919 --> 00:04:23.760
307
+ a encontrar que su cabecera está llena de
308
+
309
+ 00:04:23.760 --> 00:04:26.340
310
+ unos números ceros. Esa cabecera es el espacio
311
+
312
+ 00:04:26.480 --> 00:04:29.360
313
+ donde se guardan metadatos del archivo, lo cual
314
+
315
+ 00:04:29.360 --> 00:04:30.960
316
+ vamos a ver en un segundo. Y luego
317
+
318
+ 00:04:30.960 --> 00:04:33.485
319
+ abajo tengo la estructura. Van a notar si
320
+
321
+ 00:04:33.485 --> 00:04:36.125
322
+ ustedes abren con un editor hexadecimal, que son
323
+
324
+ 00:04:36.125 --> 00:04:38.925
325
+ estos editores que permiten abrir archivos binarios, este
326
+
327
+ 00:04:38.925 --> 00:04:40.685
328
+ tipo de archivos que tienden a tener una
329
+
330
+ 00:04:40.685 --> 00:04:43.885
331
+ estructura muy parecida. Por ejemplo, cuando comparamos 2
332
+
333
+ 00:04:43.885 --> 00:04:46.440
334
+ PDFs, los abrimos los 2 de un archivo
335
+
336
+ 00:04:46.440 --> 00:04:48.360
337
+ hexadecimal, van a notar que, a pesar de
338
+
339
+ 00:04:48.360 --> 00:04:52.360
340
+ que son bastante diferentes, esta primera estructura inicial
341
+
342
+ 00:04:52.360 --> 00:04:55.880
343
+ de bytes es muy similar, porque esta estructura
344
+
345
+ 00:04:55.880 --> 00:04:58.460
346
+ indica esto es un archivo PDF, fue construido
347
+
348
+ 00:04:58.600 --> 00:05:00.475
349
+ con este mecanismo y a partir de acá
350
+
351
+ 00:05:00.475 --> 00:05:02.475
352
+ es que empiezan a cambiar las cosas. Esta
353
+
354
+ 00:05:02.475 --> 00:05:05.675
355
+ es la estructura interna del archivo PDF. Ustedes
356
+
357
+ 00:05:05.675 --> 00:05:07.835
358
+ no tienen por qué entender esto, excepto que
359
+
360
+ 00:05:07.835 --> 00:05:10.155
361
+ sean el tipo de programador que va a
362
+
363
+ 00:05:10.155 --> 00:05:12.949
364
+ programar la estructura de estos datos. Solamente sepan
365
+
366
+ 00:05:12.949 --> 00:05:16.070
367
+ que estas estructuras son arbitrarias, alguien las decidió
368
+
369
+ 00:05:16.070 --> 00:05:17.830
370
+ porque sí, porque encontró que esta era la
371
+
372
+ 00:05:17.830 --> 00:05:19.990
373
+ forma más eficiente de guardar los archivos de
374
+
375
+ 00:05:19.990 --> 00:05:23.110
376
+ esta manera. Hay muchos tipos de archivo y
377
+
378
+ 00:05:23.110 --> 00:05:25.850
379
+ algunas veces esos archivos tienen por dentro datos
380
+
381
+ 00:05:27.465 --> 00:05:30.505
382
+ escondidos que se pueden ver en sistemas operativos.
383
+
384
+ 00:05:30.505 --> 00:05:33.305
385
+ Por ejemplo, los videos tienden a tener por
386
+
387
+ 00:05:33.305 --> 00:05:36.425
388
+ dentro cuándo fueron grabados, cuál es su tamaño,
389
+
390
+ 00:05:36.425 --> 00:05:38.265
391
+ cuál es el códec que usan, cosas que
392
+
393
+ 00:05:38.265 --> 00:05:40.840
394
+ vamos a ver más adelante. Las imágenes también
395
+
396
+ 00:05:40.840 --> 00:05:43.080
397
+ tienen datos únicos. Por ejemplo, esta foto que
398
+
399
+ 00:05:43.080 --> 00:05:45.160
400
+ yo tomé cuando le di una conferencia al
401
+
402
+ 00:05:45.160 --> 00:05:47.400
403
+ ejército, si le damos clic, de hecho, y
404
+
405
+ 00:05:47.400 --> 00:05:49.480
406
+ obtenemos su información en un sistema operativo como
407
+
408
+ 00:05:49.480 --> 00:05:51.560
409
+ Windows o como Mac, vamos a acceder a
410
+
411
+ 00:05:51.560 --> 00:05:53.755
412
+ los metadatos de la fotografía. Aquí, en los
413
+
414
+ 00:05:53.755 --> 00:05:56.315
415
+ metadatos, van a encontrar varias cosas muy únicas.
416
+
417
+ 00:05:56.315 --> 00:05:58.635
418
+ Por ejemplo, van a encontrar que fue tomada
419
+
420
+ 00:05:58.635 --> 00:06:00.475
421
+ con un iPhone 16 Pro, cuál fue la
422
+
423
+ 00:06:00.475 --> 00:06:02.715
424
+ dimensión original del archivo, la última fecha en
425
+
426
+ 00:06:02.715 --> 00:06:05.595
427
+ la que fue abierta, etcétera. Los PDFs guardan
428
+
429
+ 00:06:05.595 --> 00:06:07.900
430
+ muchos metadatos. Le dan clic derecho a un
431
+
432
+ 00:06:07.900 --> 00:06:10.139
433
+ PDF y ven sus metadatos, van a ver
434
+
435
+ 00:06:10.139 --> 00:06:12.780
436
+ el título original del archivo de donde vino.
437
+
438
+ 00:06:12.780 --> 00:06:14.300
439
+ La mayoría de los PDFs no eran un
440
+
441
+ 00:06:14.300 --> 00:06:16.940
442
+ PDF originalmente, sino fueron construidos en otro lugar,
443
+
444
+ 00:06:16.940 --> 00:06:20.139
445
+ como por ejemplo en Adobe Illustrator o, en
446
+
447
+ 00:06:20.139 --> 00:06:22.095
448
+ este caso, en Word. Este archivo originalmente se
449
+
450
+ 00:06:22.095 --> 00:06:25.775
451
+ llamaba capítulo 2 guión correcciones punto docx, y
452
+
453
+ 00:06:25.775 --> 00:06:28.495
454
+ luego fue transformado a través de Google Docs
455
+
456
+ 00:06:28.495 --> 00:06:30.514
457
+ en un PDF. Hay un caso muy chistoso
458
+
459
+ 00:06:30.655 --> 00:06:33.210
460
+ de la Universidad Tecnológica Nacional de Buenos Aires,
461
+
462
+ 00:06:33.530 --> 00:06:37.289
463
+ donde enviaron un PDF con un aviso de
464
+
465
+ 00:06:37.289 --> 00:06:39.050
466
+ deuda a los estudiantes que no habían pagado
467
+
468
+ 00:06:39.050 --> 00:06:41.229
469
+ la cuota mensual, que al ver los metadatos
470
+
471
+ 00:06:42.169 --> 00:06:44.729
472
+ estructurado internamente estaba el nombre original del archivo
473
+
474
+ 00:06:44.729 --> 00:06:46.935
475
+ que decía paga ratón. Así que hay que
476
+
477
+ 00:06:46.935 --> 00:06:49.414
478
+ tener mucho cuidado con los metadatos cuando 1
479
+
480
+ 00:06:49.414 --> 00:06:51.895
481
+ envía archivos. Los metadatos de los archivos en
482
+
483
+ 00:06:51.895 --> 00:06:54.474
484
+ ocasiones también te explican cuál es la versión
485
+
486
+ 00:06:54.534 --> 00:06:56.935
487
+ mínima de una aplicación para poder abrirlo o
488
+
489
+ 00:06:56.935 --> 00:06:59.800
490
+ los archivos que necesitas para poder ejecutarlo. Por
491
+
492
+ 00:06:59.800 --> 00:07:02.840
493
+ ejemplo, los videos son comprimidos y descomprimidos con
494
+
495
+ 00:07:02.840 --> 00:07:05.720
496
+ unas técnicas especiales que se llaman códecs. Eso
497
+
498
+ 00:07:05.720 --> 00:07:07.880
499
+ tiende a estar incluido en la cabecera de
500
+
501
+ 00:07:07.880 --> 00:07:10.635
502
+ los archivos de video, incluyendo su resolución, el
503
+
504
+ 00:07:10.635 --> 00:07:13.565
505
+ formato que tienen, la calidad, etcétera. También existen
506
+
507
+ 00:07:13.625 --> 00:07:16.205
508
+ otros tipos de archivos que en sus cabeceras
509
+
510
+ 00:07:16.665 --> 00:07:19.145
511
+ están aglomerados otros datos, por ejemplo, en un
512
+
513
+ 00:07:19.145 --> 00:07:21.625
514
+ archivo punto zip, un archivo comprimido, en los
515
+
516
+ 00:07:21.625 --> 00:07:24.105
517
+ metadatos y en la cabecera del archivo está
518
+
519
+ 00:07:24.105 --> 00:07:26.025
520
+ la lista de los archivos que por dentro
521
+
522
+ 00:07:26.025 --> 00:07:28.160
523
+ tiene el punto zip antes de ser descomprimida.
524
+
525
+ 00:07:28.540 --> 00:07:30.860
526
+ Cuando los archivos se dañan en la parte
527
+
528
+ 00:07:30.860 --> 00:07:32.460
529
+ de arriba, con dónde les cambia las cabeceras,
530
+
531
+ 00:07:32.460 --> 00:07:34.860
532
+ es completamente posible que se vuelvan ilegibles y
533
+
534
+ 00:07:34.860 --> 00:07:36.300
535
+ que ya no se puedan volver a abrir,
536
+
537
+ 00:07:36.300 --> 00:07:38.300
538
+ excepto que se reparen, pero eso son técnicas
539
+
540
+ 00:07:38.300 --> 00:07:40.895
541
+ muy avanzadas que rara vez son utilizadas. También,
542
+
543
+ 00:07:40.895 --> 00:07:43.215
544
+ archivos que se descargan mal, 1 los puede
545
+
546
+ 00:07:43.215 --> 00:07:46.255
547
+ verificar. Existen mecanismos de verificación como el check
548
+
549
+ 00:07:46.255 --> 00:07:47.854
550
+ zoom. Esto lo vamos a ver después, no
551
+
552
+ 00:07:47.854 --> 00:07:49.615
553
+ se preocupen por ello. Lo más importante a
554
+
555
+ 00:07:49.615 --> 00:07:51.775
556
+ recordar son 2 cosas. 1, un archivo no
557
+
558
+ 00:07:51.775 --> 00:07:53.215
559
+ es una base de datos. Las bases de
560
+
561
+ 00:07:53.215 --> 00:07:55.455
562
+ datos son cosas distintas, es la próxima clase
563
+
564
+ 00:07:55.455 --> 00:07:57.950
565
+ que viene a continuación de esta. Un archivo
566
+
567
+ 00:07:57.950 --> 00:07:59.870
568
+ puede tener datos, un archivo puede ser una
569
+
570
+ 00:07:59.870 --> 00:08:01.950
571
+ base de datos, pero típicamente no lo es.
572
+
573
+ 00:08:01.950 --> 00:08:04.050
574
+ Las bases de datos son un concepto completamente
575
+
576
+ 00:08:04.270 --> 00:08:07.510
577
+ diferente. Y existe una técnica avanzada de seguridad
578
+
579
+ 00:08:07.510 --> 00:08:09.790
580
+ informática para esconder datos dentro de archivos, se
581
+
582
+ 00:08:09.790 --> 00:08:12.875
583
+ llama esteganografía. Por ejemplo, imagina que tienes una
584
+
585
+ 00:08:12.875 --> 00:08:15.675
586
+ imagen JPG que por dentro guarda un archivo
587
+
588
+ 00:08:15.675 --> 00:08:18.235
589
+ de Excel de manera secreta. Esto es porque
590
+
591
+ 00:08:18.235 --> 00:08:20.175
592
+ se sabe cómo es la estructura del JPG
593
+
594
+ 00:08:20.395 --> 00:08:22.235
595
+ y de esa manera se esconde el archivo
596
+
597
+ 00:08:22.235 --> 00:08:24.520
598
+ de Excel dentro del JPG. Es una técnica
599
+
600
+ 00:08:24.520 --> 00:08:27.480
601
+ avanzada muy común en distribución de virus, en
602
+
603
+ 00:08:27.480 --> 00:08:30.620
604
+ el mundo de inteligencia militar, entre otros universos.
605
+
606
+ 00:08:30.760 --> 00:08:33.799
607
+ Esteganografía. Este mundo es un mundo maravilloso. Aprendamos
608
+
609
+ 00:08:33.799 --> 00:08:35.500
610
+ bases de datos en la próxima clase.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/03-Sistemas Operativos y Almacenamiento/03-empleados_prueba_325d0f23-d597-444f-a5e0-acb9d34cac7a.csv ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Nombre,Cargo,Edad,Salario,País
2
+ Daniela,Diseñador/a,49,100357,Argentina
3
+ María,Desarrollador/a,41,61793,Uruguay
4
+ Julián,QA Tester,30,90644,Colombia
5
+ María,DevOps,58,148266,Perú
6
+ Nicolás,Diseñador/a,48,148313,Colombia
7
+ Andrés,DevOps,28,117981,España
8
+ Sebastián,Project Manager,26,130749,Argentina
9
+ Thiago,DevOps,35,139541,España
10
+ Pablo,Desarrollador/a,59,123053,México
11
+ Nicolás,Analista de Datos,41,145223,México
12
+ José,Diseñador/a,48,106907,España
13
+ Brenda,DevOps,46,103674,Perú
14
+ Iván,Diseñador/a,42,115111,España
15
+ Matías,Project Manager,34,100161,México
16
+ Brenda,DevOps,43,96517,Argentina
17
+ Andrés,Desarrollador/a,52,72690,Chile
18
+ Melina,Diseñador/a,29,119705,Argentina
19
+ Tomás,Project Manager,38,111237,Argentina
20
+ Matías,Desarrollador/a,25,81185,Perú
21
+ Romina,Desarrollador/a,42,102983,España
22
+ Daniela,Analista de Datos,24,78141,Colombia
23
+ Ana,Project Manager,34,105756,Colombia
24
+ Diego,Analista de Datos,29,58830,México
25
+ Martín,Diseñador/a,40,115329,Argentina
26
+ Bruno,Desarrollador/a,41,110035,Uruguay
27
+ Bruno,Product Owner,60,90747,España
28
+ Ana,Diseñador/a,24,148926,España
29
+ Diego,Diseñador/a,49,122342,Chile
30
+ Lucas,Diseñador/a,47,89289,México
31
+ Noelia,Project Manager,47,118391,Perú
32
+ Agustina,Analista de Datos,23,121718,Argentina
33
+ Ezequiel,Product Owner,50,62730,Uruguay
34
+ Santiago,Product Owner,48,58308,Perú
35
+ Melina,QA Tester,49,62935,Argentina
36
+ Sebastián,QA Tester,58,80805,Perú
37
+ Franco,QA Tester,46,64570,Perú
38
+ Thiago,Product Owner,25,108770,México
39
+ Micaela,Analista de Datos,34,88236,Chile
40
+ Sofía,DevOps,27,126252,Colombia
41
+ Brenda,Project Manager,28,56872,Chile
42
+ Melina,DevOps,54,131136,Perú
43
+ Leandro,Desarrollador/a,54,133799,Argentina
44
+ Andrés,Diseñador/a,53,141480,Perú
45
+ Carla,Project Manager,25,56137,Uruguay
46
+ Martina,Product Owner,47,131402,Colombia
47
+ Julián,Analista de Datos,52,143878,México
48
+ Carla,Product Owner,24,102562,Perú
49
+ Iván,Diseñador/a,34,145629,Argentina
50
+ Benjamín,Desarrollador/a,35,106617,Argentina
51
+ Noelia,Product Owner,23,93278,Colombia
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ https://platzi.com/cursos/dbsql/
2
+ https://platzi.com/cursos/db-nosql/
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Qué son las bases de datos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ab306e883de4877ad6336714c968a420a0ca776a93c738033a75aa188d1b2968
3
+ size 210871161
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Qué son las bases de datos.vtt ADDED
@@ -0,0 +1,658 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.080 --> 00:00:02.399
4
+ Las bases de datos muchos creen que son
5
+
6
+ 00:00:02.399 --> 00:00:04.560
7
+ como tablas de Excel. En un ejemplo anterior
8
+
9
+ 00:00:04.560 --> 00:00:07.919
10
+ vimos esta tabla de empleados donde tenemos un,
11
+
12
+ 00:00:07.919 --> 00:00:10.980
13
+ 2, 3, 4 y 5 campos. El campo
14
+
15
+ 00:00:11.280 --> 00:00:13.920
16
+ nombre, cargo, edad, salario y país. Y esto
17
+
18
+ 00:00:13.920 --> 00:00:15.940
19
+ sería igual que un archivo de Excel, ¿cierto?
20
+
21
+ 00:00:16.055 --> 00:00:18.775
22
+ En nombre coloco cualquier cosa, encargo también, edad
23
+
24
+ 00:00:18.775 --> 00:00:21.035
25
+ es un número, salario también es un número
26
+
27
+ 00:00:21.095 --> 00:00:23.415
28
+ y país, pues, es un letras. Para la
29
+
30
+ 00:00:23.415 --> 00:00:25.015
31
+ gran mayoría de las personas allá afuera, las
32
+
33
+ 00:00:25.015 --> 00:00:27.735
34
+ bases de datos son simplemente tablas de Excel.
35
+
36
+ 00:00:27.735 --> 00:00:30.135
37
+ Pero Excel no es una base de datos,
38
+
39
+ 00:00:30.135 --> 00:00:33.990
40
+ Excel es una hoja cuadriculada donde coloco cualquier
41
+
42
+ 00:00:34.450 --> 00:00:37.730
43
+ cosa. Las bases de datos son estrictas respecto
44
+
45
+ 00:00:37.730 --> 00:00:40.690
46
+ a los datos que guardan, son variables de
47
+
48
+ 00:00:40.690 --> 00:00:44.495
49
+ tipos específicos que tienen reglas. La regla más
50
+
51
+ 00:00:44.495 --> 00:00:46.535
52
+ importante de las bases de datos es que
53
+
54
+ 00:00:46.535 --> 00:00:50.175
55
+ no deben tener redundancia. Los datos tienen que
56
+
57
+ 00:00:50.175 --> 00:00:53.215
58
+ ser únicos para mantener integridad. Esto es importante
59
+
60
+ 00:00:53.215 --> 00:00:54.735
61
+ porque las bases de datos son de las
62
+
63
+ 00:00:54.735 --> 00:00:57.110
64
+ que depende un negocio. Entonces, por ejemplo, no
65
+
66
+ 00:00:57.110 --> 00:00:59.670
67
+ pueden haber diferentes tipos de transacción cuando mueves
68
+
69
+ 00:00:59.670 --> 00:01:01.430
70
+ dinero de un banco a otro. No pueden
71
+
72
+ 00:01:01.430 --> 00:01:04.150
73
+ haber diferentes tipos de contraseña o de usuarios
74
+
75
+ 00:01:04.150 --> 00:01:06.550
76
+ cuando estás guardando tu nombre de usuario o
77
+
78
+ 00:01:06.550 --> 00:01:10.045
79
+ tu contraseña para un sistema único. No pueden
80
+
81
+ 00:01:10.045 --> 00:01:12.924
82
+ haber diferentes formatos de vuelo cuando estás guardando
83
+
84
+ 00:01:12.924 --> 00:01:15.985
85
+ los vuelos de un avión. Estos sistemas requieren
86
+
87
+ 00:01:16.445 --> 00:01:20.604
88
+ sistemas estrictos, características estrictas de almacenamiento de los
89
+
90
+ 00:01:20.604 --> 00:01:22.045
91
+ datos, y para eso son las bases de
92
+
93
+ 00:01:22.045 --> 00:01:25.390
94
+ datos. Para evitar redundancia, las bases de datos
95
+
96
+ 00:01:25.390 --> 00:01:28.049
97
+ se estructuran pensando en cuáles son las tablas
98
+
99
+ 00:01:28.430 --> 00:01:32.270
100
+ necesarias para representar cada categoría de datos y
101
+
102
+ 00:01:32.270 --> 00:01:35.295
103
+ luego se conectan entre sí. Por ejemplo, imagina
104
+
105
+ 00:01:35.295 --> 00:01:38.244
106
+ que estamos haciendo la tabla de una red
107
+
108
+ 00:01:38.244 --> 00:01:41.194
109
+ social. Entonces, en una red social tú tienes
110
+
111
+ 00:01:41.194 --> 00:01:43.895
112
+ una serie de posts en el timeline y
113
+
114
+ 00:01:43.895 --> 00:01:46.255
115
+ esos posts, que son creados por usuarios, necesitan
116
+
117
+ 00:01:46.255 --> 00:01:48.575
118
+ tener su nombre de usuario, quién lo creó
119
+
120
+ 00:01:48.575 --> 00:01:51.070
121
+ como contenido y por dentro pueden tener comentarios.
122
+
123
+ 00:01:51.290 --> 00:01:54.770
124
+ El post puede tener likes y los comentarios
125
+
126
+ 00:01:54.810 --> 00:01:56.730
127
+ también pueden tener likes porque alguien le puede
128
+
129
+ 00:01:56.730 --> 00:01:59.210
130
+ dar like. Pensemos en la forma más simple
131
+
132
+ 00:01:59.210 --> 00:02:01.170
133
+ en la que esta base de datos ocurriría,
134
+
135
+ 00:02:01.170 --> 00:02:03.850
136
+ que es lo primero que necesitamos entender. Probablemente
137
+
138
+ 00:02:03.850 --> 00:02:06.105
139
+ lo primero que necesitamos entender es que hay
140
+
141
+ 00:02:06.245 --> 00:02:09.285
142
+ usuarios. Los usuarios tienen un nombre de usuario
143
+
144
+ 00:02:09.285 --> 00:02:11.685
145
+ y, por supuesto, para poder entrar y ser
146
+
147
+ 00:02:11.685 --> 00:02:14.085
148
+ identificados de una manera única, van a necesitar
149
+
150
+ 00:02:14.085 --> 00:02:17.045
151
+ también una contraseña. En una base de datos
152
+
153
+ 00:02:17.045 --> 00:02:19.385
154
+ esto no es lo único que se necesita.
155
+
156
+ 00:02:19.605 --> 00:02:22.879
157
+ También necesitamos un número único que los identifique,
158
+
159
+ 00:02:23.260 --> 00:02:26.700
160
+ porque los números son variables muy simples. Así
161
+
162
+ 00:02:26.700 --> 00:02:29.099
163
+ como, por ejemplo, cuando un país te asigna
164
+
165
+ 00:02:29.099 --> 00:02:31.500
166
+ un número que te identifica como ciudadano de
167
+
168
+ 00:02:31.500 --> 00:02:34.265
169
+ ese país, como la cédula, el documento de
170
+
171
+ 00:02:35.445 --> 00:02:38.405
172
+ votación, el pasaporte, entre otros. Y es una
173
+
174
+ 00:02:38.405 --> 00:02:40.285
175
+ buena idea que guardemos la fecha en la
176
+
177
+ 00:02:40.285 --> 00:02:42.965
178
+ que este usuario se registró. Estas son 4
179
+
180
+ 00:02:42.965 --> 00:02:45.700
181
+ variables que tienen 4 tipos distintos. El ID
182
+
183
+ 00:02:45.700 --> 00:02:47.740
184
+ del usuario sería un número entero, el nombre
185
+
186
+ 00:02:47.740 --> 00:02:49.620
187
+ de usuario y la contraseña serían textos, que
188
+
189
+ 00:02:49.620 --> 00:02:52.420
190
+ en programación se llaman strings, y la fecha
191
+
192
+ 00:02:52.420 --> 00:02:54.580
193
+ de registro sería una variable de tipo fecha.
194
+
195
+ 00:02:54.580 --> 00:02:57.160
196
+ Esta sería una tabla, la tabla de usuarios.
197
+
198
+ 00:02:57.380 --> 00:02:59.460
199
+ Si estuviéramos en Excel, sería una hoja aparte
200
+
201
+ 00:02:59.460 --> 00:03:01.815
202
+ y ahora que tenemos esta tabla, ahora necesitamos
203
+
204
+ 00:03:01.815 --> 00:03:04.795
205
+ guardar todos los posts que hacen diferentes usuarios.
206
+
207
+ 00:03:05.175 --> 00:03:07.175
208
+ Entonces, imagina que tenemos un post, como estos
209
+
210
+ 00:03:07.175 --> 00:03:09.735
211
+ posts que salen en nuestro timeland de nuestra
212
+
213
+ 00:03:09.735 --> 00:03:12.795
214
+ red social. Los posts son creados por usuarios,
215
+
216
+ 00:03:13.015 --> 00:03:14.775
217
+ ¿verdad? Entonces necesitamos el ID del usuario que
218
+
219
+ 00:03:14.775 --> 00:03:16.990
220
+ creó el post. Como estoy trayéndome el ID
221
+
222
+ 00:03:16.990 --> 00:03:20.590
223
+ del usuario, no necesito agregar acá el nombre
224
+
225
+ 00:03:20.590 --> 00:03:22.510
226
+ del usuario porque lo puedo ir a buscar
227
+
228
+ 00:03:22.510 --> 00:03:24.110
229
+ a través del ID de usuario que estoy
230
+
231
+ 00:03:24.110 --> 00:03:26.990
232
+ guardando en la tabla de los posts. Pero
233
+
234
+ 00:03:26.990 --> 00:03:29.205
235
+ cada post es único, así que voy a
236
+
237
+ 00:03:29.205 --> 00:03:32.084
238
+ necesitar un ID del post, un ID, un
239
+
240
+ 00:03:32.084 --> 00:03:33.765
241
+ número que identifique a cada 1 de estos
242
+
243
+ 00:03:33.765 --> 00:03:35.685
244
+ posts. Por supuesto que voy a necesitar un
245
+
246
+ 00:03:35.685 --> 00:03:37.685
247
+ contenido y esto es una texto, es un
248
+
249
+ 00:03:37.685 --> 00:03:39.605
250
+ string, es una variable de tipo string, una
251
+
252
+ 00:03:39.605 --> 00:03:41.924
253
+ fecha de publicación, entonces eso es una variable
254
+
255
+ 00:03:41.924 --> 00:03:43.290
256
+ de tipo fecha. Y si le vamos a
257
+
258
+ 00:03:43.290 --> 00:03:46.730
259
+ poner likes, me gustaría tener una variable numérica
260
+
261
+ 00:03:46.730 --> 00:03:48.810
262
+ que vaya contando los likes, un contador de
263
+
264
+ 00:03:48.810 --> 00:03:50.410
265
+ cuántos likes tiene. Y a medida que la
266
+
267
+ 00:03:50.410 --> 00:03:52.569
268
+ gente guarde comentarios, también puedo tener un contador
269
+
270
+ 00:03:52.569 --> 00:03:54.569
271
+ de cuántos comentarios. De esa manera no tengo
272
+
273
+ 00:03:54.569 --> 00:03:56.650
274
+ que ponerme a contar los comentarios dentro de
275
+
276
+ 00:03:56.650 --> 00:03:58.905
277
+ la tabla, sino simplemente ir a buscar ese
278
+
279
+ 00:03:58.905 --> 00:04:00.745
280
+ número. En el caso de la tabla donde
281
+
282
+ 00:04:00.745 --> 00:04:04.505
283
+ tengo a mis usuarios con el usuario ID,
284
+
285
+ 00:04:04.505 --> 00:04:07.085
286
+ esta es la llave primaria de esa tabla.
287
+
288
+ 00:04:07.225 --> 00:04:10.265
289
+ Una llave primaria es el identificador único de
290
+
291
+ 00:04:10.265 --> 00:04:12.570
292
+ cada 1 de los registros de la tabla.
293
+
294
+ 00:04:12.730 --> 00:04:14.810
295
+ Esa llave primaria es la que me conecta
296
+
297
+ 00:04:14.810 --> 00:04:17.390
298
+ con la tabla de post. En los post,
299
+
300
+ 00:04:17.610 --> 00:04:20.010
301
+ la llave primaria es el post, porque cada
302
+
303
+ 00:04:20.010 --> 00:04:22.330
304
+ 1 tiene un post único. Pero también tengo
305
+
306
+ 00:04:22.330 --> 00:04:25.290
307
+ una llave especial única de otra tabla que
308
+
309
+ 00:04:25.290 --> 00:04:26.730
310
+ es la que me conecta con los datos
311
+
312
+ 00:04:26.730 --> 00:04:29.165
313
+ del usuario. Eso se llama aquí una llave
314
+
315
+ 00:04:29.165 --> 00:04:31.325
316
+ foránea y es la llave primaria de otra
317
+
318
+ 00:04:31.325 --> 00:04:33.325
319
+ tabla que me puede traer esos datos que
320
+
321
+ 00:04:33.325 --> 00:04:36.285
322
+ son únicos. En este caso es único saber
323
+
324
+ 00:04:36.285 --> 00:04:37.965
325
+ quién es el tipo de usuario que colocó
326
+
327
+ 00:04:37.965 --> 00:04:40.730
328
+ un post. Ahora, ¿dónde guardo los comentarios? Los
329
+
330
+ 00:04:40.730 --> 00:04:43.690
331
+ comentarios son otra cosa aparte que guardaría en
332
+
333
+ 00:04:43.690 --> 00:04:47.050
334
+ una tabla llamada comentarios. ¿Qué necesitaría para esta
335
+
336
+ 00:04:47.050 --> 00:04:49.530
337
+ tabla? Ustedes ya con esto deberían saber por
338
+
339
+ 00:04:49.530 --> 00:04:52.250
340
+ completo cómo construir la tabla de comentarios, así
341
+
342
+ 00:04:52.250 --> 00:04:55.965
343
+ que los animo a dejar en los comentarios
344
+
345
+ 00:04:55.965 --> 00:04:58.625
346
+ de este clase cómo crearían la tabla comentarios
347
+
348
+ 00:04:58.925 --> 00:05:01.325
349
+ antes de que yo continúe, vayan. No, en
350
+
351
+ 00:05:01.325 --> 00:05:07.425
352
+ serio, vayan. Tienen 5, 4, 3, 2, 1.
353
+
354
+ 00:05:07.725 --> 00:05:09.509
355
+ Pero para el resto de gente perezosa que
356
+
357
+ 00:05:09.509 --> 00:05:12.229
358
+ decidió continuar sin publicar nada, que entiendo son
359
+
360
+ 00:05:12.229 --> 00:05:15.990
361
+ el 85 por 100, primero, muy mal. Y
362
+
363
+ 00:05:15.990 --> 00:05:17.110
364
+ segundo, esta es la forma en la que
365
+
366
+ 00:05:17.110 --> 00:05:18.229
367
+ yo lo haría, pero esta no es la
368
+
369
+ 00:05:18.229 --> 00:05:20.150
370
+ única forma de hacerlo. Por supuesto que tengo
371
+
372
+ 00:05:20.150 --> 00:05:23.145
373
+ que tener un comentario ID, es el indicador
374
+
375
+ 00:05:24.085 --> 00:05:26.245
376
+ único identificador de comentario, ese sería un número
377
+
378
+ 00:05:26.245 --> 00:05:27.845
379
+ que se va generando a medida que publico
380
+
381
+ 00:05:27.845 --> 00:05:30.165
382
+ cada comentario. Tengo que conectarlo con quién es
383
+
384
+ 00:05:30.165 --> 00:05:33.125
385
+ el post, donde estoy dejando el comentario. Entonces,
386
+
387
+ 00:05:33.125 --> 00:05:36.330
388
+ comentario ID es mi llave primaria. Post ID
389
+
390
+ 00:05:36.490 --> 00:05:38.970
391
+ sería mi llave foránea conectándome a la tabla
392
+
393
+ 00:05:38.970 --> 00:05:40.490
394
+ post y ahí está el post en el
395
+
396
+ 00:05:40.490 --> 00:05:42.409
397
+ que estoy dejando el comentario. Luego tengo que
398
+
399
+ 00:05:42.409 --> 00:05:43.930
400
+ saber quién es el usuario que deja el
401
+
402
+ 00:05:43.930 --> 00:05:46.650
403
+ comentario. Entonces, usuario ID para conectar con la
404
+
405
+ 00:05:46.650 --> 00:05:49.229
406
+ tabla de usuarios también sería una llave foránea.
407
+
408
+ 00:05:49.689 --> 00:05:51.689
409
+ Y por último, muy similar a la tabla
410
+
411
+ 00:05:51.689 --> 00:05:54.965
412
+ de post. Tengo el contenido, la fecha, el
413
+
414
+ 00:05:54.965 --> 00:05:57.544
415
+ contador de me gusta y con eso estoy.
416
+
417
+ 00:05:57.685 --> 00:06:00.405
418
+ Tengo ya completa mi tabla de comentarios y
419
+
420
+ 00:06:00.405 --> 00:06:02.485
421
+ tengo toda la conexión en esta pequeña base
422
+
423
+ 00:06:02.485 --> 00:06:04.725
424
+ de datos. Estas bases de datos son más
425
+
426
+ 00:06:04.725 --> 00:06:06.585
427
+ complejas de lo que les acabo de mostrar.
428
+
429
+ 00:06:06.920 --> 00:06:09.000
430
+ Aquí les estoy mostrando de una manera muy
431
+
432
+ 00:06:09.000 --> 00:06:10.920
433
+ simple los componentes básicos de una base de
434
+
435
+ 00:06:10.920 --> 00:06:13.320
436
+ datos. Hay diferentes herramientas de software que construyen
437
+
438
+ 00:06:13.320 --> 00:06:15.320
439
+ esas bases de datos. Ustedes, por ejemplo, en
440
+
441
+ 00:06:15.320 --> 00:06:17.560
442
+ Microsoft han visto una herramienta llamada Access, que
443
+
444
+ 00:06:17.560 --> 00:06:19.854
445
+ ya casi no se usa. Existen programación lo
446
+
447
+ 00:06:19.854 --> 00:06:22.535
448
+ que se llama SQL Lite o SQL Lite.
449
+
450
+ 00:06:22.535 --> 00:06:24.134
451
+ La base de datos más común usada en
452
+
453
+ 00:06:24.134 --> 00:06:27.574
454
+ el mundo es MySQL o MySQL, y también
455
+
456
+ 00:06:27.574 --> 00:06:30.634
457
+ existe SQL Server del lado de Microsoft Oracle
458
+
459
+ 00:06:30.919 --> 00:06:33.240
460
+ a nivel profesional, y la gran mayoría de
461
+
462
+ 00:06:33.240 --> 00:06:37.160
463
+ las grandes y profesionales proyectos, incluyendo Platzi.com, usamos
464
+
465
+ 00:06:37.160 --> 00:06:38.840
466
+ una base de datos de alto rendimiento que
467
+
468
+ 00:06:38.840 --> 00:06:41.400
469
+ se llama Postgress. Estos sistemas son conocidos como
470
+
471
+ 00:06:41.400 --> 00:06:43.240
472
+ motores de bases de datos. Los motores de
473
+
474
+ 00:06:43.240 --> 00:06:46.375
475
+ bases de datos son pequeños servidores, herramientas de
476
+
477
+ 00:06:46.375 --> 00:06:48.854
478
+ software que en el disco duro almacenan en
479
+
480
+ 00:06:48.854 --> 00:06:51.655
481
+ diferentes archivos estas estructuras. Las bases de datos
482
+
483
+ 00:06:51.655 --> 00:06:54.535
484
+ no son un archivo porque en una gran
485
+
486
+ 00:06:54.535 --> 00:06:57.574
487
+ compañía, 1000 de personas, en ocasiones 1000000 de
488
+
489
+ 00:06:57.574 --> 00:07:00.289
490
+ personas, tienen que acceder a leer, editar y
491
+
492
+ 00:07:00.289 --> 00:07:02.530
493
+ modificar estas bases de datos en tiempo real,
494
+
495
+ 00:07:02.530 --> 00:07:05.569
496
+ y eso requiere reglas específicas. También existe un
497
+
498
+ 00:07:05.569 --> 00:07:09.490
499
+ lenguaje de programación construido específicamente para consultar la
500
+
501
+ 00:07:09.490 --> 00:07:11.634
502
+ base de datos. Este lenguaje es conocido como
503
+
504
+ 00:07:11.634 --> 00:07:14.275
505
+ SQL. Ustedes deberían tomar los cursos de SQL
506
+
507
+ 00:07:14.275 --> 00:07:15.955
508
+ de Platzi, simplemente vayan acá arriba en el
509
+
510
+ 00:07:15.955 --> 00:07:18.354
511
+ buscador y escriben la palabra SQL y van
512
+
513
+ 00:07:18.354 --> 00:07:21.955
514
+ a encontrar varios cursos. SQL significa structured quity
515
+
516
+ 00:07:21.955 --> 00:07:23.950
517
+ language y, por cierto, cuando la gente le
518
+
519
+ 00:07:23.950 --> 00:07:26.910
520
+ dice mySQL, en vez de MySQL, es porque
521
+
522
+ 00:07:26.910 --> 00:07:28.430
523
+ una de las primeras bases de datos del
524
+
525
+ 00:07:28.430 --> 00:07:31.470
526
+ mundo se llamaba secuela o SQL. Entonces, se
527
+
528
+ 00:07:31.470 --> 00:07:33.870
529
+ volvió parte de la industria llamarle SQL a
530
+
531
+ 00:07:33.870 --> 00:07:37.490
532
+ SQL, pero realmente es SQL, Structure Query Language.
533
+
534
+ 00:07:37.775 --> 00:07:40.655
535
+ En SQL, por ejemplo, si quisiéramos seleccionar todos
536
+
537
+ 00:07:40.655 --> 00:07:44.255
538
+ los comentarios de usuarios cuyo nombre de usuario
539
+
540
+ 00:07:44.255 --> 00:07:46.575
541
+ empiece por la letra f, escribimos un código
542
+
543
+ 00:07:46.575 --> 00:07:48.895
544
+ como este. No te preocupes por entender este
545
+
546
+ 00:07:48.895 --> 00:07:50.699
547
+ código, es un código distinto al código de
548
+
549
+ 00:07:50.699 --> 00:07:53.979
550
+ programación normal. Select es elegir, asterisco es que
551
+
552
+ 00:07:53.979 --> 00:07:56.620
553
+ elige todas las tablas, aquí estamos agarrando diferentes
554
+
555
+ 00:07:56.620 --> 00:07:58.860
556
+ cosas de una tabla, like es una forma
557
+
558
+ 00:07:58.860 --> 00:08:01.419
559
+ de comparación, el signo de porcentaje es un
560
+
561
+ 00:08:01.419 --> 00:08:04.130
562
+ comodín. Estas cosas las explicamos mejor en el
563
+
564
+ 00:08:04.130 --> 00:08:06.175
565
+ curso de SQL, Pero aquí te das una
566
+
567
+ 00:08:06.175 --> 00:08:08.514
568
+ idea de cómo funciona el lenguaje que hace
569
+
570
+ 00:08:08.655 --> 00:08:10.095
571
+ consultas a bases de datos. Y esto es
572
+
573
+ 00:08:10.095 --> 00:08:12.675
574
+ toda una profesión, una profesión muy bien pagada.
575
+
576
+ 00:08:12.815 --> 00:08:15.134
577
+ Las bases de datos se conectan con los
578
+
579
+ 00:08:15.134 --> 00:08:16.815
580
+ lenguajes de programación y con las aplicaciones que
581
+
582
+ 00:08:16.815 --> 00:08:18.810
583
+ haces de una manera distinta a los archivos.
584
+
585
+ 00:08:18.889 --> 00:08:21.450
586
+ Un archivo se abre, se puede escribir, se
587
+
588
+ 00:08:21.450 --> 00:08:23.450
589
+ puede guardar, pero las bases de datos tienen
590
+
591
+ 00:08:23.450 --> 00:08:27.050
592
+ reglas específicas para guardar, para editar, etcétera. Es
593
+
594
+ 00:08:27.050 --> 00:08:29.770
595
+ la forma más fácil de manejar datos dentro
596
+
597
+ 00:08:29.770 --> 00:08:31.745
598
+ de una aplicación, y es lo más común
599
+
600
+ 00:08:31.745 --> 00:08:33.584
601
+ que tú aprendes cuando aprendes un lenguaje de
602
+
603
+ 00:08:33.584 --> 00:08:36.325
604
+ backend o un lenguaje de desarrollo de aplicaciones
605
+
606
+ 00:08:36.385 --> 00:08:39.664
607
+ móviles, etcétera. Es extremadamente común y necesario para
608
+
609
+ 00:08:39.664 --> 00:08:42.304
610
+ prácticamente cualquier empleo de desarrollo de software. Existen
611
+
612
+ 00:08:42.304 --> 00:08:43.745
613
+ otros tipos de bases de datos que no
614
+
615
+ 00:08:43.745 --> 00:08:46.860
616
+ son relacionales, se conocen como no SQL. La
617
+
618
+ 00:08:46.860 --> 00:08:48.880
619
+ más común son las bases de datos documentales,
620
+
621
+ 00:08:49.180 --> 00:08:53.020
622
+ que son básicamente, irónicamente, como tablitas de Excel
623
+
624
+ 00:08:53.020 --> 00:08:56.380
625
+ que tienen diferentes variables que van cambiando. También
626
+
627
+ 00:08:56.380 --> 00:08:58.540
628
+ existen bases de datos que son gráficos o
629
+
630
+ 00:08:58.540 --> 00:09:00.765
631
+ grafos, y bases de datos que son llave
632
+
633
+ 00:09:00.765 --> 00:09:03.085
634
+ valor, que simplemente guardan una variable con un
635
+
636
+ 00:09:03.085 --> 00:09:06.125
637
+ valor. Típicamente cuando 1 hace caché, que es
638
+
639
+ 00:09:06.125 --> 00:09:08.685
640
+ guardar en memoria RAM los datos de algo
641
+
642
+ 00:09:08.685 --> 00:09:11.405
643
+ que 1 usa constantemente, 1 usa una base
644
+
645
+ 00:09:11.405 --> 00:09:13.690
646
+ de datos llave valor. La más común de
647
+
648
+ 00:09:13.690 --> 00:09:16.170
649
+ ellas se llama Redis. De esto tampoco te
650
+
651
+ 00:09:16.170 --> 00:09:18.910
652
+ tienes que preocupar. Tenemos cursos de no SQL,
653
+
654
+ 00:09:18.970 --> 00:09:21.390
655
+ lo puedes buscar ahí arriba, puedes buscar MongoDB
656
+
657
+ 00:09:21.529 --> 00:09:22.910
658
+ o puedes buscar Redis.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Cómo funciona el formato JPG.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:561e47b45e6f357d0bee9499103234fc22a5ff16be297fecb1e3ebff42b63377
3
+ size 174453175
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Cómo funciona el formato JPG.vtt ADDED
@@ -0,0 +1,457 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.080 --> 00:00:02.879
4
+ El ojo humano no puede ver todos los
5
+
6
+ 00:00:02.879 --> 00:00:05.920
7
+ colores. Hay varias cosas que son imperceptibles en
8
+
9
+ 00:00:05.920 --> 00:00:08.559
10
+ nuestro ojo, pero cuando tomamos una fotografía, los
11
+
12
+ 00:00:08.559 --> 00:00:11.599
13
+ sensores fotográficos guardan mucho más detalle en los
14
+
15
+ 00:00:11.599 --> 00:00:14.725
16
+ formatos normales. En 1992, un grupo llamado el
17
+
18
+ 00:00:14.725 --> 00:00:18.165
19
+ Join Photography Experse Group, o JPG, creó el
20
+
21
+ 00:00:18.165 --> 00:00:22.005
22
+ formato JPG, un formato especial de compresión de
23
+
24
+ 00:00:22.005 --> 00:00:25.260
25
+ imágenes que aprovecha esta característica del ojo humano
26
+
27
+ 00:00:25.420 --> 00:00:27.820
28
+ para comprimir las fotos de una manera muy
29
+
30
+ 00:00:27.820 --> 00:00:30.740
31
+ profunda. Primero tenemos que entender la diferencia entre
32
+
33
+ 00:00:30.740 --> 00:00:33.500
34
+ una pantalla y el medio impreso. Cuando tú
35
+
36
+ 00:00:33.500 --> 00:00:35.340
37
+ imprimes una foto, cuando tú ves una foto
38
+
39
+ 00:00:35.340 --> 00:00:37.440
40
+ en el mundo real, esta foto está dividida
41
+
42
+ 00:00:37.500 --> 00:00:40.807
43
+ realmente en 4 grandes colores, 4 grandes tintas,
44
+
45
+ 00:00:40.807 --> 00:00:42.995
46
+ que son típicamente las 4 tintas que tiene
47
+
48
+ 00:00:42.995 --> 00:00:48.215
49
+ una impresora, CMYK, cian, magenta, amarillo y negro.
50
+
51
+ 00:00:48.274 --> 00:00:50.355
52
+ La combinación de cian, magenta, amarillo y negro
53
+
54
+ 00:00:50.355 --> 00:00:52.675
55
+ da todos los colores que se pueden expresar
56
+
57
+ 00:00:52.675 --> 00:00:55.000
58
+ en un papel, en un medio impreso. Pero
59
+
60
+ 00:00:55.000 --> 00:00:58.300
61
+ en una pantalla funciona distinto, la luz tiene
62
+
63
+ 00:00:58.760 --> 00:01:01.160
64
+ total color, que es el blanco, u ausencia
65
+
66
+ 00:01:01.160 --> 00:01:03.800
67
+ absoluta de color, que es el negro. Entonces,
68
+
69
+ 00:01:03.800 --> 00:01:06.840
70
+ ¿cómo hacemos los puntos intermedios? Una pantalla tiene
71
+
72
+ 00:01:06.840 --> 00:01:08.280
73
+ una serie de puntos que hemos visto en
74
+
75
+ 00:01:08.280 --> 00:01:10.645
76
+ otras clases que se llaman pixeles. Cada 1
77
+
78
+ 00:01:10.645 --> 00:01:12.845
79
+ de estos pixeles tiene 3 colores, el rojo,
80
+
81
+ 00:01:12.845 --> 00:01:15.825
82
+ el verde y el azul. Son 3 lámparas
83
+
84
+ 00:01:15.965 --> 00:01:18.125
85
+ de estos 3 colores y dependiendo de su
86
+
87
+ 00:01:18.125 --> 00:01:20.765
88
+ intensidad de brillo hay total rojo, total verde,
89
+
90
+ 00:01:20.765 --> 00:01:22.860
91
+ total azul o ausencia de algunos de ellos.
92
+
93
+ 00:01:23.020 --> 00:01:24.940
94
+ Esa intensidad de brillo es lo que genera
95
+
96
+ 00:01:24.940 --> 00:01:27.100
97
+ el color en nuestras pantallas. La mayoría de
98
+
99
+ 00:01:27.100 --> 00:01:29.900
100
+ formatos de captura de imagen completos, como los
101
+
102
+ 00:01:29.900 --> 00:01:32.140
103
+ mapas de bits conocidos como BMP o como
104
+
105
+ 00:01:32.140 --> 00:01:35.200
106
+ los PNGs, que son otro formato de compresión,
107
+
108
+ 00:01:35.705 --> 00:01:38.425
109
+ guardan toda la información de cada píxel en
110
+
111
+ 00:01:38.425 --> 00:01:40.985
112
+ cada punto, cuál es su total a rojo,
113
+
114
+ 00:01:40.985 --> 00:01:42.585
115
+ verde y azul, que es la intensidad del
116
+
117
+ 00:01:42.585 --> 00:01:45.565
118
+ brillo. Lo primero que hace JPG es transformarlo
119
+
120
+ 00:01:45.625 --> 00:01:49.130
121
+ a otro formato que se llama YCVCR. La
122
+
123
+ 00:01:49.130 --> 00:01:52.250
124
+ y es la cantidad de luz YCBCR es
125
+
126
+ 00:01:52.250 --> 00:01:54.409
127
+ un plano cartesiano en un eje x y
128
+
129
+ 00:01:54.409 --> 00:01:56.329
130
+ en un eje y que muestra, así como
131
+
132
+ 00:01:56.329 --> 00:01:58.409
133
+ lo están viendo en este momento en pantalla,
134
+
135
+ 00:01:58.409 --> 00:02:01.289
136
+ todo el arcoiris de color que existe dependiendo
137
+
138
+ 00:02:01.289 --> 00:02:03.805
139
+ de un punto en el plano cartesiano. Esto
140
+
141
+ 00:02:03.805 --> 00:02:06.125
142
+ es porque el ojo humano es menos sensible
143
+
144
+ 00:02:06.125 --> 00:02:07.805
145
+ al color que a la luz y, de
146
+
147
+ 00:02:07.805 --> 00:02:10.785
148
+ esa manera, guardando la luminancia de una fotografía,
149
+
150
+ 00:02:10.925 --> 00:02:13.725
151
+ es más fácil poder comprimir el resto de
152
+
153
+ 00:02:13.725 --> 00:02:15.830
154
+ los datos de su posición de color. Así
155
+
156
+ 00:02:15.830 --> 00:02:19.110
157
+ que lo primero que hace JPG es agarrar
158
+
159
+ 00:02:19.110 --> 00:02:20.629
160
+ esta foto, como esta foto que tengo acá
161
+
162
+ 00:02:20.629 --> 00:02:22.950
163
+ de las montañas y cabaña, y luego pasar
164
+
165
+ 00:02:22.950 --> 00:02:26.390
166
+ al plano de solamente iluminación o iluminación, que
167
+
168
+ 00:02:26.390 --> 00:02:28.150
169
+ es este plano que me muestra la cantidad
170
+
171
+ 00:02:28.150 --> 00:02:30.045
172
+ de brillo en cada 1 de los puntos.
173
+
174
+ 00:02:30.285 --> 00:02:33.985
175
+ Y luego tengo un plano del croma azul
176
+
177
+ 00:02:34.045 --> 00:02:36.765
178
+ y otro plano del croma rojo. Esto me
179
+
180
+ 00:02:36.765 --> 00:02:39.565
181
+ construye todos los colores dependiendo de ese plano.
182
+
183
+ 00:02:39.565 --> 00:02:41.805
184
+ Esta foto tendría esto en el croma azul
185
+
186
+ 00:02:41.805 --> 00:02:43.659
187
+ y esto en el croma rojo. Yo entiendo
188
+
189
+ 00:02:43.659 --> 00:02:45.019
190
+ que esto puede ser un poco extraño, pero
191
+
192
+ 00:02:45.019 --> 00:02:47.500
193
+ así ha funcionado la fotografía, la impresión y
194
+
195
+ 00:02:47.500 --> 00:02:50.379
196
+ muchos otros medios gráficos por mucho tiempo, son
197
+
198
+ 00:02:50.379 --> 00:02:53.099
199
+ simplemente estándares. Ahora que tenemos la imagen dividida
200
+
201
+ 00:02:53.099 --> 00:02:55.439
202
+ en estas 3 opciones, lo siguiente es crear
203
+
204
+ 00:02:55.500 --> 00:02:58.379
205
+ bloques, cuadritos de la imagen, porque en ocasiones
206
+
207
+ 00:02:58.379 --> 00:03:00.915
208
+ no necesitamos tanto detalle a nivel de píxel.
209
+
210
+ 00:03:00.915 --> 00:03:03.155
211
+ Entonces, vamos a fragmentar la imagen en mini
212
+
213
+ 00:03:03.155 --> 00:03:06.275
214
+ cuadritos. Típicamente, en JPG cada 1 de estos
215
+
216
+ 00:03:06.275 --> 00:03:09.235
217
+ cuadritos es de 8 por 8 píxeles, pero
218
+
219
+ 00:03:09.235 --> 00:03:10.995
220
+ los cuadritos pueden ser mucho más grandes y
221
+
222
+ 00:03:10.995 --> 00:03:13.235
223
+ mucho más pequeños dependiendo de la calidad de
224
+
225
+ 00:03:13.235 --> 00:03:16.330
226
+ exportación del JPG que quiero. Entre más pequeños
227
+
228
+ 00:03:16.330 --> 00:03:20.090
229
+ los cuadritos, más resolución y más detalle tengo.
230
+
231
+ 00:03:20.090 --> 00:03:22.250
232
+ Entre más grandes los cuadritos, pues más voy
233
+
234
+ 00:03:22.250 --> 00:03:24.570
235
+ a tener pérdida. Por ejemplo, en esta foto
236
+
237
+ 00:03:24.570 --> 00:03:26.170
238
+ de un gato, entre más me voy a
239
+
240
+ 00:03:26.170 --> 00:03:29.610
241
+ la esquina superior derecha, más pixeles tengo porque
242
+
243
+ 00:03:29.610 --> 00:03:31.985
244
+ tengo bloques más pequeños, y entre más me
245
+
246
+ 00:03:31.985 --> 00:03:34.385
247
+ voy hacia la izquierda, los bloques son mucho
248
+
249
+ 00:03:34.385 --> 00:03:37.505
250
+ más grandotes, entonces tengo mucha más pérdida. Algo
251
+
252
+ 00:03:37.505 --> 00:03:39.505
253
+ interesante es que el JPG reduce más o
254
+
255
+ 00:03:39.505 --> 00:03:42.405
256
+ menos a una cuarta parte la cantidad de
257
+
258
+ 00:03:42.465 --> 00:03:45.970
259
+ detalle en los canales de color, sin remover
260
+
261
+ 00:03:45.970 --> 00:03:48.610
262
+ la iluminación. De nuevo, porque el ojo humano
263
+
264
+ 00:03:48.610 --> 00:03:50.590
265
+ no le importa tanto el color como la
266
+
267
+ 00:03:50.590 --> 00:03:53.030
268
+ iluminación. Ahora, sin ir tan profundamente en detalle,
269
+
270
+ 00:03:53.250 --> 00:03:56.049
271
+ se aplica una onda de coseno y la
272
+
273
+ 00:03:56.049 --> 00:03:58.209
274
+ transformada del coseno. ¿Recuerdan la ecuación del coseno?
275
+
276
+ 00:03:58.209 --> 00:03:59.730
277
+ La ecuación del coseno es esa que funciona
278
+
279
+ 00:03:59.730 --> 00:04:01.465
280
+ como una onda, onda, y lo que hace
281
+
282
+ 00:04:01.465 --> 00:04:03.465
283
+ es ir a la frecuencia de cada 1
284
+
285
+ 00:04:03.465 --> 00:04:05.645
286
+ de los bloques de 8 píxeles y convertirlo
287
+
288
+ 00:04:06.345 --> 00:04:08.665
289
+ en una expresión matemática mucho más simple en
290
+
291
+ 00:04:08.665 --> 00:04:11.385
292
+ una matriz. Estos son muchos detalles, si quieres
293
+
294
+ 00:04:11.385 --> 00:04:13.705
295
+ en los recursos explicamos cada 1 de los
296
+
297
+ 00:04:13.705 --> 00:04:16.240
298
+ componentes matemáticos. Lo único que tienes que entender
299
+
300
+ 00:04:16.240 --> 00:04:19.060
301
+ es que, de toda la resolución de información
302
+
303
+ 00:04:19.680 --> 00:04:21.279
304
+ matemática de cada 1 de los pixeles en
305
+
306
+ 00:04:21.279 --> 00:04:22.800
307
+ cada 1 de estos bloques de 8 por
308
+
309
+ 00:04:22.800 --> 00:04:25.760
310
+ 8, se convierte en una ecuación matemática de
311
+
312
+ 00:04:25.760 --> 00:04:29.220
313
+ onda de coseno para expresarlo en menos bytes.
314
+
315
+ 00:04:29.345 --> 00:04:32.785
316
+ Luego se aplican diferentes mecanismos matemáticos de algebra
317
+
318
+ 00:04:32.785 --> 00:04:35.345
319
+ lineal para comprimir los datos que ya existen.
320
+
321
+ 00:04:35.345 --> 00:04:38.305
322
+ Estos mecanismos se conocen como cuantización. 1 de
323
+
324
+ 00:04:38.305 --> 00:04:39.665
325
+ ellos, por ejemplo, es que se va a
326
+
327
+ 00:04:39.665 --> 00:04:42.145
328
+ ir en zigzag por los diferentes componentes de
329
+
330
+ 00:04:42.145 --> 00:04:45.349
331
+ los pixeles para ir agrupando cada 1 de
332
+
333
+ 00:04:45.349 --> 00:04:47.750
334
+ los elementos de la matriz. Hacemos esto en
335
+
336
+ 00:04:47.750 --> 00:04:50.870
337
+ grupos de 8 bloques para la iluminación, el
338
+
339
+ 00:04:50.870 --> 00:04:53.610
340
+ cromo azul, el croma rojo, y luego agarramos
341
+
342
+ 00:04:53.750 --> 00:04:56.505
343
+ esos 3 componentes que han sido comprimidos matemáticamente,
344
+
345
+ 00:04:57.125 --> 00:04:59.765
346
+ los volvemos a convertir a RGB, a rojo,
347
+
348
+ 00:04:59.765 --> 00:05:01.685
349
+ verde y azul, y eso lo volvemos a
350
+
351
+ 00:05:01.685 --> 00:05:03.685
352
+ meter en un solo archivo y tienes tu
353
+
354
+ 00:05:03.685 --> 00:05:06.085
355
+ imagen JPG. Lo más importante que tienes que
356
+
357
+ 00:05:06.085 --> 00:05:09.445
358
+ recordar es que JPG elimina las cosas que
359
+
360
+ 00:05:09.445 --> 00:05:12.220
361
+ el ojo humano no puede ver, cambia el
362
+
363
+ 00:05:12.220 --> 00:05:14.460
364
+ formato de un formato rojo, verde, azul a
365
+
366
+ 00:05:14.460 --> 00:05:17.440
367
+ un formato iluminancia, croma azul y croma rojo.
368
+
369
+ 00:05:17.700 --> 00:05:20.700
370
+ Luego vuelve la imagen en pequeños bloques de
371
+
372
+ 00:05:20.700 --> 00:05:24.264
373
+ 8 píxeles por 8 píxeles, donde busca una
374
+
375
+ 00:05:24.264 --> 00:05:27.485
376
+ especie de promedio de los colores expresados matemáticamente
377
+
378
+ 00:05:28.504 --> 00:05:30.664
379
+ para luego expresarlo más chiquito en un archivo
380
+
381
+ 00:05:30.664 --> 00:05:33.065
382
+ más pequeño con menos necesidad de bytes y
383
+
384
+ 00:05:33.065 --> 00:05:35.705
385
+ volverlo a combinar y volver a comprimir en
386
+
387
+ 00:05:35.705 --> 00:05:38.479
388
+ un archivo RGB final, que es la imagen
389
+
390
+ 00:05:38.479 --> 00:05:40.800
391
+ que terminamos viendo como JPG. JPG no es
392
+
393
+ 00:05:40.800 --> 00:05:43.539
394
+ el único formato, existe un formato llamado PNG
395
+
396
+ 00:05:43.759 --> 00:05:48.080
397
+ o Portable Network Graphics, que no comprime las
398
+
399
+ 00:05:48.080 --> 00:05:51.675
400
+ imágenes como las comprime JPG. Este formato retiene
401
+
402
+ 00:05:51.675 --> 00:05:54.655
403
+ la calidad y funciona de una manera completamente
404
+
405
+ 00:05:54.715 --> 00:05:56.914
406
+ distinta, pero tiende a tener formatos de archivo
407
+
408
+ 00:05:56.914 --> 00:05:59.675
409
+ mucho más grandes por eso. PNG viene en
410
+
411
+ 00:05:59.675 --> 00:06:03.115
412
+ 2 sabores, PNG 8 y PNG 32. Si
413
+
414
+ 00:06:03.115 --> 00:06:04.715
415
+ has tomado el curso de fundamentos de ingeniería
416
+
417
+ 00:06:04.715 --> 00:06:06.510
418
+ software, sabes que el 8 y el 32
419
+
420
+ 00:06:06.510 --> 00:06:08.990
421
+ tienen que ver con cantidad de bits, que
422
+
423
+ 00:06:08.990 --> 00:06:11.070
424
+ es la cantidad de información que tienes. Para
425
+
426
+ 00:06:11.070 --> 00:06:13.550
427
+ que te hagas una idea, PNG 8 tiene
428
+
429
+ 00:06:13.550 --> 00:06:15.950
430
+ muy poquitos colores porque solamente es 8 bits,
431
+
432
+ 00:06:15.950 --> 00:06:19.044
433
+ donde PNG 32 tiene 1000000 de colores. PNG
434
+
435
+ 00:06:19.044 --> 00:06:23.044
436
+ 32 puede tener transparencias perfectas, donde los archivos
437
+
438
+ 00:06:23.044 --> 00:06:25.305
439
+ JPG no tienen la capacidad de ser transparentes.
440
+
441
+ 00:06:25.764 --> 00:06:28.245
442
+ PNG 8 también puede tener transparencia, pero solamente
443
+
444
+ 00:06:28.245 --> 00:06:30.245
445
+ tiene un color para la transparencia, así que
446
+
447
+ 00:06:30.245 --> 00:06:32.790
448
+ lo transparente ve como si fuera un hueco
449
+
450
+ 00:06:32.790 --> 00:06:36.470
451
+ pixelado, donde las transparencias de PNG 32 tienen
452
+
453
+ 00:06:36.470 --> 00:06:39.930
454
+ todo el arcoiris de transparencia, incluyendo bordes completamente
455
+
456
+ 00:06:39.990 --> 00:06:40.490
457
+ suaves.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://www.freecodecamp.org/news/how-jpg-works-a4dbd2316f35/
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/03-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/03-Videos contenedores codecs y protocolos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fb873924e477c6a1da9d77d52ba5ed6e37a99480548e918aa657d85ea51b113a
3
+ size 264338212
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/04-Cómo Funciona un zip.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e2b83ffa4e9d32fd44088b03c347997005eac16bf71f4c83038a79f06d5da7ff
3
+ size 192800425
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/04-Cómo Funciona un zip.vtt ADDED
@@ -0,0 +1,562 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.160 --> 00:00:02.159
4
+ Archivos punto ZIP los conoces como los archivos
5
+
6
+ 00:00:02.159 --> 00:00:04.560
7
+ comprimidos. La forma en la que comprimen se
8
+
9
+ 00:00:04.560 --> 00:00:07.600
10
+ puede entender, es una ecuación matemática interesante. Vamos
11
+
12
+ 00:00:07.600 --> 00:00:10.500
13
+ a comprimir una palabra y a entender matemáticamente
14
+
15
+ 00:00:10.600 --> 00:00:13.094
16
+ esa palabra, cómo se comprime. La palabra que
17
+
18
+ 00:00:13.094 --> 00:00:16.535
19
+ vamos a comprimir se llama manzanas amarillas de
20
+
21
+ 00:00:16.535 --> 00:00:18.855
22
+ Ana. Para efectos de la clase, vamos a
23
+
24
+ 00:00:18.855 --> 00:00:21.654
25
+ imaginar que toda la palabra es una palabra
26
+
27
+ 00:00:21.654 --> 00:00:24.055
28
+ en mayúscula, entonces no tenemos letras mayúsculas o
29
+
30
+ 00:00:24.055 --> 00:00:26.380
31
+ minúsculas, en la práctica sí lo tendríamos. Manzanas
32
+
33
+ 00:00:26.380 --> 00:00:29.580
34
+ amarillas de Ana. Ahora que tenemos la palabra,
35
+
36
+ 00:00:29.580 --> 00:00:32.940
37
+ tenemos que entender cuántas letras tiene y cuáles
38
+
39
+ 00:00:32.940 --> 00:00:35.980
40
+ son las letras más frecuentes de la palabra
41
+
42
+ 00:00:35.980 --> 00:00:38.220
43
+ manzanas de Ana. Así que lo que vamos
44
+
45
+ 00:00:38.220 --> 00:00:39.739
46
+ a hacer es que vamos a analizar esta
47
+
48
+ 00:00:39.739 --> 00:00:41.995
49
+ palabra. La letra más frecuente es la letra
50
+
51
+ 00:00:41.995 --> 00:00:45.055
52
+ a. Hay 8 letras a, hay 3 letras
53
+
54
+ 00:00:45.195 --> 00:00:48.555
55
+ n, hay 3 espacios. El espacio es una
56
+
57
+ 00:00:48.555 --> 00:00:51.035
58
+ letra, el espacio es un byte. Tú guardas
59
+
60
+ 00:00:51.035 --> 00:00:53.594
61
+ en tu computadora cuando escribes un espacio, un
62
+
63
+ 00:00:53.594 --> 00:00:56.597
64
+ byte, cuyo valor es espacio. La m tiene
65
+
66
+ 00:00:56.597 --> 00:00:59.506
67
+ 2, tiene 2 s, 2 l, una z,
68
+
69
+ 00:00:59.506 --> 00:01:02.030
70
+ una r, una I, una d y una
71
+
72
+ 00:01:02.030 --> 00:01:04.430
73
+ e. Ahora que tengo clara la frecuencia de
74
+
75
+ 00:01:04.430 --> 00:01:07.250
76
+ las palabras, puedo empezar a comprimir. Tú sabes
77
+
78
+ 00:01:07.630 --> 00:01:10.655
79
+ que las letras dentro de una computadora son
80
+
81
+ 00:01:10.655 --> 00:01:13.454
82
+ bytes, es decir, 8 bits, 8 grupos de
83
+
84
+ 00:01:13.454 --> 00:01:16.414
85
+ 0 y 1, y estos representan un número,
86
+
87
+ 00:01:16.414 --> 00:01:17.935
88
+ y ese número es la forma en la
89
+
90
+ 00:01:17.935 --> 00:01:19.534
91
+ que se guarda en el computador cada una
92
+
93
+ 00:01:19.534 --> 00:01:21.854
94
+ de las letras. Los números corresponden a una
95
+
96
+ 00:01:21.854 --> 00:01:24.280
97
+ tabla que se llama la tabla ASCII, o
98
+
99
+ 00:01:24.659 --> 00:01:27.539
100
+ ASCII. La letra m, por ejemplo, es el
101
+
102
+ 00:01:27.539 --> 00:01:31.380
103
+ número 77 en ASCII, y la letra a
104
+
105
+ 00:01:31.380 --> 00:01:34.840
106
+ es el 65. Así que internamente entre una
107
+
108
+ 00:01:34.979 --> 00:01:37.675
109
+ computadora, una letra a es el número en
110
+
111
+ 00:01:37.675 --> 00:01:40.475
112
+ bytes que equivale a 65. Manzanas amarillas de
113
+
114
+ 00:01:40.475 --> 00:01:43.995
115
+ Ana son 25 letras, es decir, se van
116
+
117
+ 00:01:43.995 --> 00:01:46.955
118
+ a almacenar 25 bytes de información en la
119
+
120
+ 00:01:46.955 --> 00:01:50.575
121
+ computadora. Cada byte son 8 bits. Entonces, multiplicamos
122
+
123
+ 00:01:51.035 --> 00:01:53.250
124
+ 25 por 8 y entendemos que en total
125
+
126
+ 00:01:53.250 --> 00:01:55.569
127
+ la cantidad de datos que tiene Manzanas amarillas
128
+
129
+ 00:01:55.569 --> 00:01:58.450
130
+ de Ana son 200 bits. La idea de
131
+
132
+ 00:01:58.450 --> 00:02:02.789
133
+ la compresión es que necesitemos la menor cantidad
134
+
135
+ 00:02:03.090 --> 00:02:07.365
136
+ de bits para expresar las letras más comunes
137
+
138
+ 00:02:07.365 --> 00:02:09.625
139
+ de las palabras que están en un archivo.
140
+
141
+ 00:02:10.405 --> 00:02:12.425
142
+ Entonces, en el caso de nuestra palabra manzanas
143
+
144
+ 00:02:12.485 --> 00:02:15.205
145
+ amarillas de Ana, la letra a es la
146
+
147
+ 00:02:15.205 --> 00:02:17.910
148
+ que más se representa. Por ende, debería haber
149
+
150
+ 00:02:17.910 --> 00:02:19.310
151
+ una forma en la que en vez de
152
+
153
+ 00:02:19.310 --> 00:02:21.950
154
+ que usáramos 8 bits, 8 ceros y unos
155
+
156
+ 00:02:21.950 --> 00:02:25.970
157
+ para representar la letra a, usáramos solamente un
158
+
159
+ 00:02:26.030 --> 00:02:28.030
160
+ bit. Y si la segunda letra más común
161
+
162
+ 00:02:28.030 --> 00:02:30.965
163
+ es la letra n, que tiene 3 apariciones
164
+
165
+ 00:02:30.965 --> 00:02:33.385
166
+ en nuestro archivo, o el espacio que aparece
167
+
168
+ 00:02:33.445 --> 00:02:35.925
169
+ 3 veces en el archivo Manzanas amarilles de
170
+
171
+ 00:02:35.925 --> 00:02:38.085
172
+ Ana, pues debería requerir un máximo de 2
173
+
174
+ 00:02:38.085 --> 00:02:41.445
175
+ bits o de 3 bits para representarse. Esto
176
+
177
+ 00:02:41.445 --> 00:02:44.390
178
+ existe. Nosotros podemos crear algo que se llama
179
+
180
+ 00:02:44.390 --> 00:02:47.350
181
+ un árbol binario. Un árbol binario es una
182
+
183
+ 00:02:47.350 --> 00:02:49.430
184
+ estructura de datos que tiene una raíz y
185
+
186
+ 00:02:49.430 --> 00:02:52.150
187
+ esa raíz tiene 2 caminos. Si agarro para
188
+
189
+ 00:02:52.150 --> 00:02:54.069
190
+ la derecha es un 1 y si agarro
191
+
192
+ 00:02:54.069 --> 00:02:56.069
193
+ para la izquierda es un 0. Y cada
194
+
195
+ 00:02:56.069 --> 00:02:58.150
196
+ 1 de estos nodos tiene máximo 2 caminos,
197
+
198
+ 00:02:58.150 --> 00:03:01.185
199
+ por eso se llaman árboles binarios, porque cada
200
+
201
+ 00:03:01.405 --> 00:03:04.205
202
+ punto o cada nodo del árbol solamente agarra
203
+
204
+ 00:03:04.205 --> 00:03:07.805
205
+ hacia 2 lados. Esto es una representación gráfica
206
+
207
+ 00:03:07.805 --> 00:03:10.205
208
+ de una estructura matemática. Por ahora no te
209
+
210
+ 00:03:10.205 --> 00:03:13.190
211
+ preocupes, simplemente piensa que hay una raíz. Y
212
+
213
+ 00:03:13.190 --> 00:03:15.909
214
+ la raíz, siempre donde agarro, es el inicio
215
+
216
+ 00:03:15.909 --> 00:03:18.310
217
+ del archivo. Vamos a imaginar que cuando en
218
+
219
+ 00:03:18.310 --> 00:03:20.709
220
+ mi raíz voy para la derecha, es un
221
+
222
+ 00:03:20.709 --> 00:03:22.790
223
+ 1 y cuando voy para la izquierda es
224
+
225
+ 00:03:22.790 --> 00:03:25.030
226
+ un 0. Y vamos a asumir que cada
227
+
228
+ 00:03:25.030 --> 00:03:27.605
229
+ vez que digo 1 es una letra, y
230
+
231
+ 00:03:28.145 --> 00:03:30.945
232
+ cada vez que digo 0 estoy bajando en
233
+
234
+ 00:03:30.945 --> 00:03:34.405
235
+ mi árbol. Entonces, la letra que más frecuencia
236
+
237
+ 00:03:34.465 --> 00:03:36.465
238
+ tiene en mi archivo la voy a colocar
239
+
240
+ 00:03:36.465 --> 00:03:38.640
241
+ en la primera ramita que tiene un 1.
242
+
243
+ 00:03:38.880 --> 00:03:40.819
244
+ Así que de la raíz de mi árbol
245
+
246
+ 00:03:40.960 --> 00:03:43.520
247
+ 1, ahí voy a colocar letra a, y
248
+
249
+ 00:03:43.520 --> 00:03:46.000
250
+ luego hago un 0 a la izquierda de
251
+
252
+ 00:03:46.000 --> 00:03:47.840
253
+ la primera del primer nodo de mi árbol,
254
+
255
+ 00:03:47.840 --> 00:03:49.780
256
+ esa primera raíz, y luego hago otro nodo
257
+
258
+ 00:03:49.840 --> 00:03:52.400
259
+ de 1. La segunda letra más frecuente sería
260
+
261
+ 00:03:52.400 --> 00:03:54.625
262
+ la n, y luego vuelvo a hacer otro
263
+
264
+ 00:03:54.625 --> 00:03:57.345
265
+ 0 y otro 1. La siguiente letra más
266
+
267
+ 00:03:57.345 --> 00:03:59.825
268
+ frecuente es el espacio, otro 0 y otro
269
+
270
+ 00:03:59.825 --> 00:04:01.905
271
+ 1 es la m, otro 0 y otro
272
+
273
+ 00:04:01.905 --> 00:04:04.225
274
+ 1 es la s, otro 0 otro 1
275
+
276
+ 00:04:04.225 --> 00:04:06.210
277
+ es la l, otro 0 otro 1 es
278
+
279
+ 00:04:06.450 --> 00:04:08.470
280
+ z, otro 0, otro 1 es la r,
281
+
282
+ 00:04:08.530 --> 00:04:11.090
283
+ 0 1 I, 0 1 d y 0
284
+
285
+ 00:04:11.090 --> 00:04:14.150
286
+ 1 e. Lo único que hice fue organizarlos
287
+
288
+ 00:04:14.770 --> 00:04:17.970
289
+ de mayor frecuencia a menor frecuencia, de acuerdo
290
+
291
+ 00:04:17.970 --> 00:04:20.524
292
+ a la tabla de frecuencias. Ahora que tengo
293
+
294
+ 00:04:20.524 --> 00:04:24.044
295
+ el árbol organizado, donde yo siempre sé que
296
+
297
+ 00:04:24.044 --> 00:04:26.685
298
+ 0 significa moverme a la izquierda, bajar un
299
+
300
+ 00:04:26.685 --> 00:04:28.925
301
+ nivel en mi árbol y que 1 significa
302
+
303
+ 00:04:28.925 --> 00:04:31.405
304
+ encontrar una letra, ahora voy a tratar de
305
+
306
+ 00:04:31.405 --> 00:04:36.890
307
+ representar la palabra manzanas amarillas de Ana, expresada
308
+
309
+ 00:04:37.350 --> 00:04:40.150
310
+ como los bits a donde llego a cada
311
+
312
+ 00:04:40.150 --> 00:04:42.630
313
+ letra. Por ejemplo, la primera letra es la
314
+
315
+ 00:04:42.630 --> 00:04:46.550
316
+ letra m. M está bajando 3 veces en
317
+
318
+ 00:04:46.550 --> 00:04:48.630
319
+ el árbol y yendo a la derecha una
320
+
321
+ 00:04:48.630 --> 00:04:50.715
322
+ sola vez. O sea, si yo fuera a
323
+
324
+ 00:04:50.715 --> 00:04:52.875
325
+ expresar en movimientos de ceros y unos, la
326
+
327
+ 00:04:52.875 --> 00:04:56.395
328
+ m sería 0 0 0 1. Entonces, esa
329
+
330
+ 00:04:56.395 --> 00:04:59.455
331
+ m es 0 0 0 1. La letra
332
+
333
+ 00:04:59.514 --> 00:05:02.014
334
+ a de manzanas, me sigue la letra a,
335
+
336
+ 00:05:02.270 --> 00:05:05.310
337
+ sería simplemente un 1, porque es la primera
338
+
339
+ 00:05:05.310 --> 00:05:07.550
340
+ letra de la raíz del árbol hacia abajo.
341
+
342
+ 00:05:07.550 --> 00:05:10.850
343
+ Entonces, solamente necesito un bit para expresar a.
344
+
345
+ 00:05:10.910 --> 00:05:13.950
346
+ ¿Cuántos bits necesito para expresar n? 2, un
347
+
348
+ 00:05:13.950 --> 00:05:15.870
349
+ 0 y un 1, de acuerdo al árbol.
350
+
351
+ 00:05:15.870 --> 00:05:17.775
352
+ Man. Hagamos lo mismo para el resto de
353
+
354
+ 00:05:17.775 --> 00:05:20.495
355
+ las letras. Z, que está bastante lejos, es
356
+
357
+ 00:05:20.495 --> 00:05:23.455
358
+ un 0 0 0 0 0 1, y
359
+
360
+ 00:05:23.455 --> 00:05:25.375
361
+ ahí tengo la z. Otras tengo la a,
362
+
363
+ 00:05:25.375 --> 00:05:26.974
364
+ que es un 1, la n, que es
365
+
366
+ 00:05:26.974 --> 00:05:29.969
367
+ 0 1, a un 1, y por último
368
+
369
+ 00:05:29.969 --> 00:05:32.910
370
+ s, que es un 0 0 0 0
371
+
372
+ 00:05:33.290 --> 00:05:35.290
373
+ 1, bajo 4 veces en el árbol y
374
+
375
+ 00:05:35.290 --> 00:05:37.210
376
+ un 1. Y con este tengo la palabra
377
+
378
+ 00:05:37.210 --> 00:05:40.410
379
+ manzanas. Ahora hagamos todo el resto de la
380
+
381
+ 00:05:40.410 --> 00:05:42.510
382
+ del árbol, todo el resto de las palabras.
383
+
384
+ 00:05:42.810 --> 00:05:53.435
385
+ Manzanas, espacio, AMARILLAS espacio d e espacio ANA.
386
+
387
+ 00:05:53.975 --> 00:05:56.295
388
+ Como ven acá, tengo un gran grupo de
389
+
390
+ 00:05:56.295 --> 00:05:59.335
391
+ ceros y unos. Algunos son más grandes que
392
+
393
+ 00:05:59.335 --> 00:06:02.480
394
+ un byte. Por ejemplo, la letra d tiene
395
+
396
+ 00:06:02.480 --> 00:06:04.620
397
+ 0 0 0 0 0 0 0 0
398
+
399
+ 00:06:04.620 --> 00:06:08.800
400
+ 0 1. Estos son 10 bits, mucho más
401
+
402
+ 00:06:08.800 --> 00:06:11.200
403
+ grande que los 8 que normalmente tendría un
404
+
405
+ 00:06:11.200 --> 00:06:13.780
406
+ byte, y la letra e tiene un 0
407
+
408
+ 00:06:14.000 --> 00:06:16.665
409
+ adicional, son 11 bits. Sin embargo, cuando yo
410
+
411
+ 00:06:16.665 --> 00:06:19.145
412
+ cuento todos estos bits, me doy cuenta que
413
+
414
+ 00:06:19.145 --> 00:06:22.745
415
+ son tan solo 98 bits. La palabra original,
416
+
417
+ 00:06:22.745 --> 00:06:25.945
418
+ manzanas amarillas de Ana, que son 25 letras,
419
+
420
+ 00:06:25.945 --> 00:06:29.165
421
+ me habría tomado 25 bytes o 200 bits.
422
+
423
+ 00:06:29.460 --> 00:06:32.420
424
+ Organizada con nuestro árbol, logré comprimirla en más
425
+
426
+ 00:06:32.420 --> 00:06:34.740
427
+ de un 50 por 100 y logré hacer
428
+
429
+ 00:06:34.740 --> 00:06:37.620
430
+ 98 bits. Si la palabra fuera mucho más
431
+
432
+ 00:06:37.620 --> 00:06:39.700
433
+ grande, si tuviera una frase más larga, la
434
+
435
+ 00:06:39.700 --> 00:06:43.395
436
+ habría logrado comprimir aún más, porque entre más
437
+
438
+ 00:06:43.395 --> 00:06:47.555
439
+ letras se comporten con alta frecuencia, entonces más
440
+
441
+ 00:06:47.555 --> 00:06:49.395
442
+ fácil va a ser comprimir. Y esto es
443
+
444
+ 00:06:49.395 --> 00:06:51.635
445
+ todo lo que tuve que hacer para comprimir
446
+
447
+ 00:06:51.635 --> 00:06:55.055
448
+ mi archivo. Pero contémoslo, si agarramos todos estos
449
+
450
+ 00:06:55.055 --> 00:06:55.551
451
+ ceros y unos en la versión comprimida y
452
+
453
+ 00:06:55.551 --> 00:06:55.625
454
+ los dividimos en grupos de 8, como sería
455
+
456
+ 00:06:55.625 --> 00:06:58.430
457
+ guardarlo en comprimida y los dividimos en grupos
458
+
459
+ 00:06:58.430 --> 00:07:01.150
460
+ de 8, como sería guardarlo en bytes, tendría
461
+
462
+ 00:07:01.150 --> 00:07:05.890
463
+ 12.25, o sea, 12 bytes y un pedacito
464
+
465
+ 00:07:06.190 --> 00:07:08.370
466
+ de otro byte, que para efectos prácticos podemos
467
+
468
+ 00:07:08.510 --> 00:07:09.950
469
+ colocarle un montón de ceros al final para
470
+
471
+ 00:07:09.950 --> 00:07:13.895
472
+ completarlo y serían en total 13 bytes. Son
473
+
474
+ 00:07:13.895 --> 00:07:16.935
475
+ bytes normales, son letras normales. Por eso, Condor
476
+
477
+ 00:07:16.935 --> 00:07:18.615
478
+ es un archivo punto ZIP está lleno de
479
+
480
+ 00:07:18.615 --> 00:07:21.015
481
+ letras raras que no tienen sentido, porque si
482
+
483
+ 00:07:21.015 --> 00:07:22.775
484
+ yo convierto cada 1 de esto en una
485
+
486
+ 00:07:22.775 --> 00:07:24.780
487
+ letra para poder guardarlo en mi disco duro,
488
+
489
+ 00:07:24.860 --> 00:07:26.380
490
+ voy a encontrar que cada 1 de estos
491
+
492
+ 00:07:26.380 --> 00:07:28.300
493
+ números corresponde a una letra en la tabla
494
+
495
+ 00:07:28.300 --> 00:07:31.260
496
+ ASCII, pero son números aleatorios que simplemente se
497
+
498
+ 00:07:31.260 --> 00:07:33.660
499
+ ven como basura. Sin embargo, si yo agarro
500
+
501
+ 00:07:33.660 --> 00:07:35.740
502
+ todos estos ceros y unos, que son 98
503
+
504
+ 00:07:35.740 --> 00:07:37.469
505
+ bits, y también tengo, por ejemplo, en la
506
+
507
+ 00:07:37.469 --> 00:07:37.567
508
+ cabecera del archivo guardado de algún formato, mi
509
+
510
+ 00:07:37.567 --> 00:07:40.824
511
+ árbol donde tengo archivo guardado de algún formato
512
+
513
+ 00:07:41.365 --> 00:07:44.324
514
+ mi árbol donde tengo la estructura de a
515
+
516
+ 00:07:44.324 --> 00:07:46.745
517
+ qué letra corresponde cada 1 de los movimientos,
518
+
519
+ 00:07:47.125 --> 00:07:50.085
520
+ entonces yo puedo descomprimir el archivo y volver
521
+
522
+ 00:07:50.085 --> 00:07:52.645
523
+ a recrearlo y tener una vez más Manzanas
524
+
525
+ 00:07:52.645 --> 00:07:55.270
526
+ amarillas de Ana. Ese proceso es el proceso
527
+
528
+ 00:07:55.270 --> 00:07:56.950
529
+ a través del cual se comprime y se
530
+
531
+ 00:07:56.950 --> 00:07:59.210
532
+ descomprime un archivo. No es el único algoritmo,
533
+
534
+ 00:07:59.350 --> 00:08:02.310
535
+ hay varios algoritmos de compresión y descompresión, pero
536
+
537
+ 00:08:02.310 --> 00:08:04.390
538
+ esta es una de las técnicas. Esto te
539
+
540
+ 00:08:04.390 --> 00:08:06.470
541
+ recuerda que a pesar de que guardamos en
542
+
543
+ 00:08:06.470 --> 00:08:10.215
544
+ grupos de bytes en nuestra computadora todo tipo
545
+
546
+ 00:08:10.515 --> 00:08:12.675
547
+ de datos, podemos acceder bit por bit a
548
+
549
+ 00:08:12.675 --> 00:08:14.935
550
+ cada 1 de ellos usando lenguajes de programación.
551
+
552
+ 00:08:14.995 --> 00:08:17.155
553
+ De hecho, les dejo de reto que ustedes
554
+
555
+ 00:08:17.155 --> 00:08:20.435
556
+ publiquen en los comentarios de esta clase algún
557
+
558
+ 00:08:20.435 --> 00:08:23.235
559
+ código en cualquier lenguaje de programación donde implementen
560
+
561
+ 00:08:23.235 --> 00:08:24.935
562
+ este algoritmo. Me encantará leerlo.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/04-Archivos y estructuras de datos/04-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/fixed/Curso de Fundamentos de Ingeniería de Software/05-Introducción a Blockchain e Inteligencia Artificial/01-Arquitectura y funcionamiento interno de Blockchain.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4c877255a9b173f261196c8c1ed6e5385978f415a7905bec418490e618ab752d
3
+ size 465096382
subir/fixed/Curso de Fundamentos de Ingeniería de Software/05-Introducción a Blockchain e Inteligencia Artificial/01-Arquitectura y funcionamiento interno de Blockchain.vtt ADDED
@@ -0,0 +1,925 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:00.080 --> 00:00:03.040
4
+ Tú entiendes el dinero porque si tienes 10
5
+
6
+ 00:00:03.040 --> 00:00:04.240
7
+ dólares y si los quieres dar a un
8
+
9
+ 00:00:04.240 --> 00:00:06.480
10
+ amigo, simplemente se los entregas. Y si tú
11
+
12
+ 00:00:06.480 --> 00:00:09.120
13
+ le envías ese dinero de tu banco al
14
+
15
+ 00:00:09.120 --> 00:00:10.840
16
+ banco de la persona, tú das un clic
17
+
18
+ 00:00:10.840 --> 00:00:12.320
19
+ y ese dinero se resta de tu cuenta
20
+
21
+ 00:00:12.320 --> 00:00:13.440
22
+ y se suma a la cuenta de él,
23
+
24
+ 00:00:13.440 --> 00:00:15.475
25
+ ¿verdad? Aquí es donde necesito que pares a
26
+
27
+ 00:00:15.475 --> 00:00:18.355
28
+ pensar un minuto. Cuando tú envías 10 dólares
29
+
30
+ 00:00:18.355 --> 00:00:20.135
31
+ de tu banco al banco de otra persona,
32
+
33
+ 00:00:20.355 --> 00:00:23.235
34
+ no hubo una transacción de billetes hechos de
35
+
36
+ 00:00:23.235 --> 00:00:25.634
37
+ papel de algodón. Lo que pasó fue que
38
+
39
+ 00:00:25.634 --> 00:00:27.634
40
+ una variable en la base de datos de
41
+
42
+ 00:00:27.634 --> 00:00:30.090
43
+ un banco restó 10, y una variable en
44
+
45
+ 00:00:30.090 --> 00:00:32.189
46
+ la base de datos de otro banco sumó
47
+
48
+ 00:00:32.329 --> 00:00:35.850
49
+ 10. Entonces, ¿qué es el dinero? Porque esos
50
+
51
+ 00:00:35.850 --> 00:00:39.129
52
+ 10 dólares no están soportados por oro en
53
+
54
+ 00:00:39.129 --> 00:00:41.449
55
+ una bóveda ni por ninguna otra cosa. Esos
56
+
57
+ 00:00:41.449 --> 00:00:43.210
58
+ 10 dólares son la resta en una base
59
+
60
+ 00:00:43.210 --> 00:00:44.730
61
+ de datos y la suma en otra base
62
+
63
+ 00:00:44.730 --> 00:00:48.704
64
+ de datos, producto de que el gobierno de
65
+
66
+ 00:00:48.704 --> 00:00:52.945
67
+ un país confía en el sistema bancario a
68
+
69
+ 00:00:52.945 --> 00:00:55.985
70
+ través de mecanismos de verificación, donde el gobierno
71
+
72
+ 00:00:55.985 --> 00:00:59.445
73
+ le hace auditoría a estos bancos, incluyendo mecanismos
74
+
75
+ 00:00:59.504 --> 00:01:03.080
76
+ como los bancos centrales, para mantener un balance
77
+
78
+ 00:01:03.080 --> 00:01:05.880
79
+ de la cantidad total de dinero que hay.
80
+
81
+ 00:01:05.880 --> 00:01:08.280
82
+ Y los gobiernos pueden elegir que haya más
83
+
84
+ 00:01:08.280 --> 00:01:11.260
85
+ dinero al imprimir dinero, y eso crea inflación,
86
+
87
+ 00:01:11.720 --> 00:01:14.040
88
+ reduciendo el valor de ese dinero. El dinero
89
+
90
+ 00:01:14.040 --> 00:01:18.015
91
+ es simplemente una historia que contamos, sostenida por
92
+
93
+ 00:01:18.015 --> 00:01:20.095
94
+ las leyes y mecanismos de control de un
95
+
96
+ 00:01:20.095 --> 00:01:21.855
97
+ gobierno, no es nada más. Así que si
98
+
99
+ 00:01:21.855 --> 00:01:25.055
100
+ yo quisiera enviarle dinero a alguien, pero no
101
+
102
+ 00:01:25.055 --> 00:01:27.375
103
+ tener a un gobierno, a un banco u
104
+
105
+ 00:01:27.375 --> 00:01:31.370
106
+ otra institución central lidiando con ese dinero, sino
107
+
108
+ 00:01:31.370 --> 00:01:36.550
109
+ que sea un proceso confiable, mundial, global y
110
+
111
+ 00:01:36.550 --> 00:01:39.210
112
+ descentralizado, lo que necesitaría es tener la misma
113
+
114
+ 00:01:39.210 --> 00:01:41.930
115
+ base de datos donde una variable resta 10
116
+
117
+ 00:01:41.930 --> 00:01:44.335
118
+ y otra variable suma 10, pero que esa
119
+
120
+ 00:01:44.335 --> 00:01:46.975
121
+ base de datos fuera de todos y no
122
+
123
+ 00:01:46.975 --> 00:01:49.475
124
+ de una sola persona. Una base de datos
125
+
126
+ 00:01:49.534 --> 00:01:52.895
127
+ así necesita ciertas características. La base de datos
128
+
129
+ 00:01:52.895 --> 00:01:56.975
130
+ tendría que estar copiada en múltiples computadores, tantos
131
+
132
+ 00:01:56.975 --> 00:01:59.580
133
+ como 1 quiera, y todas las copias tienen
134
+
135
+ 00:01:59.580 --> 00:02:01.820
136
+ que ser iguales. Es decir, cada vez que
137
+
138
+ 00:02:01.820 --> 00:02:04.220
139
+ hay una transacción, todas las copias de la
140
+
141
+ 00:02:04.220 --> 00:02:06.060
142
+ base de datos se tienen que actualizar. Y
143
+
144
+ 00:02:06.060 --> 00:02:08.060
145
+ como no hay un banco central o un
146
+
147
+ 00:02:08.060 --> 00:02:11.405
148
+ gobierno que determine la fuente de verdad, Necesito
149
+
150
+ 00:02:12.025 --> 00:02:16.505
151
+ un mecanismo matemático que me permita confirmar entre
152
+
153
+ 00:02:16.505 --> 00:02:18.265
154
+ todas las personas que tienen una copia de
155
+
156
+ 00:02:18.265 --> 00:02:19.865
157
+ la base de datos que la base de
158
+
159
+ 00:02:19.865 --> 00:02:22.845
160
+ datos es legítima, y esto tiene que ocurrir
161
+
162
+ 00:02:23.065 --> 00:02:24.925
163
+ cada vez que la base de datos cambie.
164
+
165
+ 00:02:25.070 --> 00:02:27.390
166
+ ¿Cuándo cambia la base de datos? Cuando se
167
+
168
+ 00:02:27.390 --> 00:02:29.790
169
+ resta de una variable para sumarle a otra
170
+
171
+ 00:02:29.790 --> 00:02:32.110
172
+ variable, es decir, cuando hay una transacción. Y
173
+
174
+ 00:02:32.110 --> 00:02:34.350
175
+ el dinero, para que tenga valor, tiene que
176
+
177
+ 00:02:34.350 --> 00:02:37.330
178
+ ser finito. Hay una cantidad máxima de pesos
179
+
180
+ 00:02:37.470 --> 00:02:40.095
181
+ colombianos, hay una cantidad máxima de soles peruanos
182
+
183
+ 00:02:40.095 --> 00:02:42.915
184
+ y hay una cantidad máxima de dólares estadounidenses.
185
+
186
+ 00:02:43.615 --> 00:02:46.035
187
+ Así que tiene que haber una cantidad finita
188
+
189
+ 00:02:47.135 --> 00:02:49.955
190
+ máxima de la moneda digital que estamos construyendo.
191
+
192
+ 00:02:50.095 --> 00:02:53.900
193
+ Esto se puede expresar en ecuaciones matemáticas en
194
+
195
+ 00:02:53.900 --> 00:02:56.940
196
+ las que todos los miembros de la red,
197
+
198
+ 00:02:56.940 --> 00:02:59.100
199
+ que son las computadoras que tienen una copia
200
+
201
+ 00:02:59.100 --> 00:03:01.500
202
+ de la base de datos, de las transacciones,
203
+
204
+ 00:03:01.500 --> 00:03:05.340
205
+ estén de acuerdo. ¿Y cómo sé cuáles de
206
+
207
+ 00:03:05.340 --> 00:03:09.055
208
+ esos números son míos y cuáles de esas
209
+
210
+ 00:03:09.055 --> 00:03:11.215
211
+ transacciones son de otras personas. En el mundo
212
+
213
+ 00:03:11.215 --> 00:03:13.615
214
+ real, yo tengo una cuenta bancaria y mi
215
+
216
+ 00:03:13.615 --> 00:03:15.635
217
+ acceso a esa cuenta bancaria es con usuarios,
218
+
219
+ 00:03:15.695 --> 00:03:19.715
220
+ contraseñas, con mi rostro biométricos, con mis datos
221
+
222
+ 00:03:19.935 --> 00:03:22.360
223
+ oficiales de gobierno. Pero en el mundo digital
224
+
225
+ 00:03:22.580 --> 00:03:25.860
226
+ yo necesitaría lo mismo, usuarios, contraseñas, pero sobre
227
+
228
+ 00:03:25.860 --> 00:03:29.940
229
+ todo llaves de cifrado, una forma criptográfica de
230
+
231
+ 00:03:29.940 --> 00:03:31.700
232
+ acceder a estos datos. ¿Y cuál es el
233
+
234
+ 00:03:31.700 --> 00:03:35.674
235
+ mecanismo cuando quiero que otros encripten mensajes que
236
+
237
+ 00:03:35.674 --> 00:03:37.435
238
+ me envíen a mí y yo pueda encriptar
239
+
240
+ 00:03:37.435 --> 00:03:39.194
241
+ mensajes que envíen a otros? En la clase
242
+
243
+ 00:03:39.194 --> 00:03:41.995
244
+ de WhatsApp aprendimos que existen llaves públicas y
245
+
246
+ 00:03:41.995 --> 00:03:44.635
247
+ llaves privadas. Hagamos un repaso muy rápido. Si
248
+
249
+ 00:03:44.635 --> 00:03:46.075
250
+ yo tengo 2 personas a las que les
251
+
252
+ 00:03:46.075 --> 00:03:48.360
253
+ quiero enviar mensajes encriptados sin que los intermediarios
254
+
255
+ 00:03:48.360 --> 00:03:51.480
256
+ de Internet, como WhatsApp, se enteren del contenido
257
+
258
+ 00:03:51.480 --> 00:03:53.400
259
+ del mensaje, lo que yo hago es que
260
+
261
+ 00:03:53.400 --> 00:03:57.160
262
+ tengo 2 llaves. Tengo una llave pública que
263
+
264
+ 00:03:57.160 --> 00:03:58.680
265
+ se la envío a quien me va a
266
+
267
+ 00:03:58.680 --> 00:04:02.235
268
+ enviar un mensaje. Esa llave pública cifra el
269
+
270
+ 00:04:02.235 --> 00:04:05.515
271
+ mensaje. Entonces, a mi amigo yo le digo,
272
+
273
+ 00:04:05.515 --> 00:04:08.715
274
+ ciframe ese mensaje con mi llave pública. Mi
275
+
276
+ 00:04:08.715 --> 00:04:10.754
277
+ amigo tiene mi llave pública que le envié
278
+
279
+ 00:04:10.754 --> 00:04:13.275
280
+ por Internet normal que se puede interceptar, pero
281
+
282
+ 00:04:13.275 --> 00:04:16.110
283
+ esa llave solamente sirve para cifrar el mensaje.
284
+
285
+ 00:04:16.110 --> 00:04:18.189
286
+ Con la llave pública, el amigo cifra el
287
+
288
+ 00:04:18.189 --> 00:04:20.349
289
+ mensaje y me envía el mensaje cifrado a
290
+
291
+ 00:04:20.349 --> 00:04:22.430
292
+ mí, y yo tengo una llave privada que
293
+
294
+ 00:04:22.430 --> 00:04:24.270
295
+ yo no envié por Internet, que solo vive
296
+
297
+ 00:04:24.270 --> 00:04:27.389
298
+ en mi computadora. Con esa llave privada, lo
299
+
300
+ 00:04:27.389 --> 00:04:30.354
301
+ único que puedo hacer es descifrar los mensajes
302
+
303
+ 00:04:30.354 --> 00:04:33.074
304
+ que fueron cifrados con la llave pública. Como
305
+
306
+ 00:04:33.074 --> 00:04:35.155
307
+ nadie la tiene, solo yo puedo ver el
308
+
309
+ 00:04:35.155 --> 00:04:38.035
310
+ contenido de ese mensaje. Entonces, todo el mundo
311
+
312
+ 00:04:38.035 --> 00:04:40.435
313
+ puede cifrar mensajes para mí cuando tienen mi
314
+
315
+ 00:04:40.435 --> 00:04:42.675
316
+ llave pública, pero solo yo tengo mi llave
317
+
318
+ 00:04:42.675 --> 00:04:44.610
319
+ privada, y esos mensajes cifrados solo yo los
320
+
321
+ 00:04:44.610 --> 00:04:46.850
322
+ puedo abrir. Si yo quiero enviarle un mensaje
323
+
324
+ 00:04:46.850 --> 00:04:49.170
325
+ cifrado a mi amigo, él me manda su
326
+
327
+ 00:04:49.170 --> 00:04:52.050
328
+ llave pública, yo lo cifro, se lo envío
329
+
330
+ 00:04:52.050 --> 00:04:53.890
331
+ y él solo lo puede descifrar con la
332
+
333
+ 00:04:53.890 --> 00:04:55.890
334
+ llave privada, que ni yo ni nadie tiene
335
+
336
+ 00:04:55.890 --> 00:04:58.690
337
+ acceso, solamente él. Pues, en nuestra red puede
338
+
339
+ 00:04:58.690 --> 00:05:02.465
340
+ funcionar exactamente igual. Acceder a una red de
341
+
342
+ 00:05:02.465 --> 00:05:06.245
343
+ dinero descentralizado haría que yo tenga que crear
344
+
345
+ 00:05:06.305 --> 00:05:10.065
346
+ una llave privada y una llave pública. La
347
+
348
+ 00:05:10.065 --> 00:05:12.145
349
+ llave pública se la doy a todo el
350
+
351
+ 00:05:12.145 --> 00:05:14.570
352
+ mundo para que me envíen dinero, y la
353
+
354
+ 00:05:14.570 --> 00:05:16.850
355
+ llave privada es la única forma en la
356
+
357
+ 00:05:16.850 --> 00:05:19.230
358
+ que yo accedo al dinero que yo tengo.
359
+
360
+ 00:05:19.370 --> 00:05:22.970
361
+ Además de eso, yo tendría un número especial
362
+
363
+ 00:05:22.970 --> 00:05:25.610
364
+ en la base de datos de transacciones donde
365
+
366
+ 00:05:25.610 --> 00:05:28.715
367
+ guardo mis transacciones. Ese número especial se podría
368
+
369
+ 00:05:28.715 --> 00:05:31.275
370
+ llamar una billetera, sería el equivalente a una
371
+
372
+ 00:05:31.275 --> 00:05:33.835
373
+ cuenta bancaria, y esa dirección de billetera es
374
+
375
+ 00:05:33.835 --> 00:05:36.314
376
+ donde están todas mis transacciones. Pero hagamos una
377
+
378
+ 00:05:36.314 --> 00:05:39.275
379
+ pausa. Entonces, ¿qué es el dinero? El dinero
380
+
381
+ 00:05:39.275 --> 00:05:41.835
382
+ son las transacciones, esta es la cosa difícil
383
+
384
+ 00:05:41.835 --> 00:05:45.500
385
+ de entender. Hay una cantidad máxima de numeritos
386
+
387
+ 00:05:45.500 --> 00:05:48.139
388
+ de dinero, una cantidad máxima de billetes, y
389
+
390
+ 00:05:48.139 --> 00:05:50.780
391
+ las transacciones que hay entre esos billetes, es
392
+
393
+ 00:05:50.780 --> 00:05:53.100
394
+ decir, los dueños de esos números, eso es
395
+
396
+ 00:05:53.100 --> 00:05:55.500
397
+ el dinero. Cuando yo le resto a mi
398
+
399
+ 00:05:55.500 --> 00:05:57.419
400
+ variable de números y le sumo a otro
401
+
402
+ 00:05:57.419 --> 00:06:00.294
403
+ lado, estoy moviendo dinero, pero el dinero es
404
+
405
+ 00:06:00.294 --> 00:06:03.514
406
+ un número finito. Todo esto que estoy explicando
407
+
408
+ 00:06:04.055 --> 00:06:06.854
409
+ está escrito en un documento, que es el
410
+
411
+ 00:06:06.854 --> 00:06:11.420
412
+ paper de Blockchain y bitcoin, creado por Satoshi
413
+
414
+ 00:06:11.560 --> 00:06:14.600
415
+ Nakamoto, que construyó el protocolo que hoy conocemos
416
+
417
+ 00:06:14.600 --> 00:06:17.800
418
+ como bitcoin. Dato interesante. Al día de hoy
419
+
420
+ 00:06:17.800 --> 00:06:20.360
421
+ nadie sabe quién es Satoshi Nakamoto. Quizás es
422
+
423
+ 00:06:20.360 --> 00:06:22.540
424
+ una persona, quizás es un grupo de personas,
425
+
426
+ 00:06:22.600 --> 00:06:25.320
427
+ quizás fue una inteligencia artificial, no lo sabemos,
428
+
429
+ 00:06:25.320 --> 00:06:28.115
430
+ pero en el año 2009 una persona anónima
431
+
432
+ 00:06:28.175 --> 00:06:31.855
433
+ publicó este paper. Entonces, ¿por qué bitcoin vale
434
+
435
+ 00:06:31.855 --> 00:06:33.855
436
+ dinero? ¿Por qué sabemos que un bitcoin vale
437
+
438
+ 00:06:33.855 --> 00:06:36.575
439
+ 10000 o 100000 dólares o 15000 dólares o
440
+
441
+ 00:06:36.575 --> 00:06:39.900
442
+ 300000 dólares? Porque alguien lo intercambió por dólares.
443
+
444
+ 00:06:39.979 --> 00:06:42.620
445
+ Esa es la única respuesta. Las cosas valen
446
+
447
+ 00:06:42.620 --> 00:06:44.540
448
+ porque alguien más les da valor. En el
449
+
450
+ 00:06:44.540 --> 00:06:46.620
451
+ año 2009 hubo una persona que con un
452
+
453
+ 00:06:46.620 --> 00:06:48.780
454
+ bitcoin compró una pizza y, a partir de
455
+
456
+ 00:06:48.780 --> 00:06:50.699
457
+ ahí, han pasado muchos años en los que
458
+
459
+ 00:06:50.699 --> 00:06:53.979
460
+ diferentes personas han intercambiado las llaves privadas de
461
+
462
+ 00:06:53.979 --> 00:06:57.965
463
+ estas direcciones por dólares del gobierno, y esto
464
+
465
+ 00:06:57.965 --> 00:07:00.765
466
+ ha creado un mercado que terminó construyendo el
467
+
468
+ 00:07:00.765 --> 00:07:04.365
469
+ valor de bitcoin expresado en dinero de gobierno.
470
+
471
+ 00:07:04.365 --> 00:07:07.085
472
+ ¿Pero por qué se llama Blockchain, cadena de
473
+
474
+ 00:07:07.085 --> 00:07:10.400
475
+ bloques? La base de datos distribuida de las
476
+
477
+ 00:07:10.400 --> 00:07:15.280
478
+ transacciones realmente son varios pequeños bloques de transacciones,
479
+
480
+ 00:07:15.280 --> 00:07:19.120
481
+ como si fueran libros de contabilidad digitales. Y
482
+
483
+ 00:07:19.120 --> 00:07:21.840
484
+ esos libros tienen una cantidad de transacciones máxima
485
+
486
+ 00:07:21.840 --> 00:07:24.215
487
+ y una cantidad máxima de bitcoin. Los bitcoin,
488
+
489
+ 00:07:24.215 --> 00:07:26.455
490
+ por cierto, se dividen en fracciones conocidas como
491
+
492
+ 00:07:26.455 --> 00:07:28.055
493
+ satoshis, pero eso no es lo que importa
494
+
495
+ 00:07:28.055 --> 00:07:29.895
496
+ en este momento. Lo que importa es que
497
+
498
+ 00:07:29.895 --> 00:07:34.235
499
+ esos bloques son descubiertos. ¿Cómo así que descubiertos?
500
+
501
+ 00:07:34.455 --> 00:07:36.695
502
+ Aquí es donde muchas personas se confunden. Yo
503
+
504
+ 00:07:36.695 --> 00:07:39.449
505
+ me confundía mucho. Parte del problema de las
506
+
507
+ 00:07:39.449 --> 00:07:42.569
508
+ criptomonedas es que tiene que haber un límite
509
+
510
+ 00:07:42.569 --> 00:07:45.690
511
+ máximo de la cantidad de dinero que se
512
+
513
+ 00:07:45.690 --> 00:07:48.569
514
+ puede crear, que se puede emitir. Lo que
515
+
516
+ 00:07:48.569 --> 00:07:51.835
517
+ se inventó Satoshi Nakamoto es unas ecuaciones matemáticas
518
+
519
+ 00:07:51.835 --> 00:07:54.955
520
+ que hacen un uso muy intensivo de procesador
521
+
522
+ 00:07:54.955 --> 00:07:58.335
523
+ y de energía eléctrica para descubrir unos números
524
+
525
+ 00:07:58.395 --> 00:08:02.875
526
+ cifrados únicos. Esas estructuras matemáticas numéricas únicas es
527
+
528
+ 00:08:02.875 --> 00:08:06.120
529
+ lo que compone los bloques de bitcoin. Y,
530
+
531
+ 00:08:06.120 --> 00:08:08.920
532
+ en esencia, un bloque de bitcoin es como
533
+
534
+ 00:08:08.920 --> 00:08:11.240
535
+ imprimir un montón de billetes de papel de
536
+
537
+ 00:08:11.240 --> 00:08:15.260
538
+ algodón, es plata. Parte del proceso de minar
539
+
540
+ 00:08:15.560 --> 00:08:18.920
541
+ bitcoin, de generar estas ecuaciones matemáticas, es insertar
542
+
543
+ 00:08:18.920 --> 00:08:21.420
544
+ en las diferentes bases de datos las transacciones.
545
+
546
+ 00:08:22.104 --> 00:08:24.444
547
+ Y el paper determina que hay una cantidad
548
+
549
+ 00:08:24.664 --> 00:08:27.064
550
+ máxima de transacciones que cada bloque puede tener.
551
+
552
+ 00:08:27.064 --> 00:08:29.064
553
+ ¿Qué pasa cuando un bloque se llenó y
554
+
555
+ 00:08:29.064 --> 00:08:31.224
556
+ ya descubrí todo el tamaño del bloque? Pues
557
+
558
+ 00:08:31.224 --> 00:08:34.445
559
+ lo cierro y construyo otro bloque, pero necesito
560
+
561
+ 00:08:34.584 --> 00:08:37.380
562
+ hacer que cada bloque esté relacionado entre sí.
563
+
564
+ 00:08:37.539 --> 00:08:39.980
565
+ Ahí entra otro proceso matemático que se conoce
566
+
567
+ 00:08:39.980 --> 00:08:44.900
568
+ como hashing, HASH. Un hash es una ecuación
569
+
570
+ 00:08:44.900 --> 00:08:48.900
571
+ matemática que lee el contenido de un archivo
572
+
573
+ 00:08:48.900 --> 00:08:52.708
574
+ y genera un código único para cada 1
575
+
576
+ 00:08:52.708 --> 00:08:54.972
577
+ de esos archivos. Entonces, un archivo que puede
578
+
579
+ 00:08:54.972 --> 00:08:57.785
580
+ pesar un megabyte o 30 gigabytes o 100
581
+
582
+ 00:08:57.785 --> 00:09:01.065
583
+ gigabytes o 300 bytes, no importa, cada 1
584
+
585
+ 00:09:01.065 --> 00:09:04.185
586
+ de esos va a tener un código único,
587
+
588
+ 00:09:04.185 --> 00:09:06.605
589
+ como si fuera una firma digital, una huella.
590
+
591
+ 00:09:06.850 --> 00:09:09.410
592
+ Esa huella son unos pequeños caracteres que pueden
593
+
594
+ 00:09:09.410 --> 00:09:13.330
595
+ tener 10 caracteres, 50 caracteres, 30 caracteres, pero
596
+
597
+ 00:09:13.330 --> 00:09:16.130
598
+ es único, eso es un hash. Los hash
599
+
600
+ 00:09:16.130 --> 00:09:18.924
601
+ o huellas son súper importantes porque garantizan la
602
+
603
+ 00:09:18.924 --> 00:09:19.223
604
+ integridad del contenido del archivo. Si el archivo
605
+
606
+ 00:09:19.223 --> 00:09:22.985
607
+ cambia, el hash cambia. Entonces, fue manipulado, archivo.
608
+
609
+ 00:09:22.985 --> 00:09:25.785
610
+ Si el archivo cambia, el hash cambia, entonces
611
+
612
+ 00:09:25.785 --> 00:09:28.505
613
+ fue manipulado. De esa manera, cada vez que
614
+
615
+ 00:09:28.505 --> 00:09:32.205
616
+ calculas el hash de un bloque, estás verificando,
617
+
618
+ 00:09:33.065 --> 00:09:36.265
619
+ este bloque es legítimo y su movimiento de
620
+
621
+ 00:09:36.265 --> 00:09:39.110
622
+ transacciones no cambió. Eso significa que en cada
623
+
624
+ 00:09:39.110 --> 00:09:41.850
625
+ 1 de los bloques de bitcoin quedan registrados
626
+
627
+ 00:09:41.910 --> 00:09:44.230
628
+ desde el inicio de la red todos los
629
+
630
+ 00:09:44.230 --> 00:09:48.150
631
+ movimientos del inicio de la historia humana de
632
+
633
+ 00:09:48.150 --> 00:09:51.835
634
+ bitcoin en adelante de las diferentes transacciones de
635
+
636
+ 00:09:51.835 --> 00:09:54.315
637
+ dinero que hay, porque nadie puede cambiar los
638
+
639
+ 00:09:54.315 --> 00:09:56.875
640
+ bloques, porque entonces tendrían que cambiar el hash.
641
+
642
+ 00:09:56.875 --> 00:09:59.115
643
+ Y la magia es que el hash de
644
+
645
+ 00:09:59.115 --> 00:10:02.235
646
+ un bloque anterior va en el bloque siguiente,
647
+
648
+ 00:10:02.235 --> 00:10:05.920
649
+ en su estructura. Entonces, el siguiente bloque va
650
+
651
+ 00:10:05.920 --> 00:10:08.420
652
+ y busca si el bloque anterior tiene ese
653
+
654
+ 00:10:08.880 --> 00:10:10.640
655
+ mismo hash, y de esa manera sabe que
656
+
657
+ 00:10:10.640 --> 00:10:15.040
658
+ están interconectados de una manera legítima. Esa cadena
659
+
660
+ 00:10:15.040 --> 00:10:18.020
661
+ de bloques conectado por hash es el Blockchain.
662
+
663
+ 00:10:18.705 --> 00:10:21.925
664
+ Las operaciones matemáticas de la minería es lo
665
+
666
+ 00:10:22.225 --> 00:10:25.025
667
+ que calcula las transacciones de la red, lo
668
+
669
+ 00:10:25.025 --> 00:10:27.745
670
+ que distribuye copias de la base de datos
671
+
672
+ 00:10:27.745 --> 00:10:30.545
673
+ de esa red a otros computadores de minería,
674
+
675
+ 00:10:30.545 --> 00:10:33.000
676
+ esa es la red de bitcoin, porque tienen
677
+
678
+ 00:10:33.000 --> 00:10:35.900
679
+ diferentes copias del Blockchain, que son las transacciones,
680
+
681
+ 00:10:36.520 --> 00:10:38.920
682
+ y lo que descubre nuevos bloques a través
683
+
684
+ 00:10:38.920 --> 00:10:42.280
685
+ de estos procesamientos matemáticos. Ese procesamiento matemático con
686
+
687
+ 00:10:42.280 --> 00:10:44.540
688
+ un gasto energético muy fuerte se conoce como
689
+
690
+ 00:10:44.840 --> 00:10:48.345
691
+ P OW, o Proof of Work. Pero otras
692
+
693
+ 00:10:48.345 --> 00:10:50.665
694
+ redes, como Ethereum, que también es un tipo
695
+
696
+ 00:10:50.665 --> 00:10:54.745
697
+ de criptomoneda, usan otro sistema llamado Proof of
698
+
699
+ 00:10:54.745 --> 00:10:57.465
700
+ Stake. Proof of Stake es muy interesante porque
701
+
702
+ 00:10:57.465 --> 00:10:59.945
703
+ usa mucha menos electricidad. En vez de hacer
704
+
705
+ 00:10:59.945 --> 00:11:02.839
706
+ cálculos matemáticos muy complejos, lo que hace es
707
+
708
+ 00:11:02.839 --> 00:11:06.600
709
+ que genera una apuesta. Varios miembros de la
710
+
711
+ 00:11:06.600 --> 00:11:10.220
712
+ red de Ethereum apuestan algunas de sus monedas
713
+
714
+ 00:11:10.360 --> 00:11:12.839
715
+ y, de manera aleatoria, 1 de ellos se
716
+
717
+ 00:11:12.839 --> 00:11:16.185
718
+ gana el derecho a construir el próximo bloque,
719
+
720
+ 00:11:16.185 --> 00:11:18.765
721
+ lo que gasta mucho menos energía. El resto
722
+
723
+ 00:11:19.225 --> 00:11:21.485
724
+ pierden las monedas que apostaron y se las
725
+
726
+ 00:11:21.865 --> 00:11:24.925
727
+ queda el que le quedó la la generación
728
+
729
+ 00:11:24.985 --> 00:11:28.220
730
+ del nuevo bloque. Es distinto, es una filosofía
731
+
732
+ 00:11:28.680 --> 00:11:30.360
733
+ diferente, y la verdad que la más popular
734
+
735
+ 00:11:30.360 --> 00:11:32.040
736
+ el día de hoy es la más segura,
737
+
738
+ 00:11:32.040 --> 00:11:33.240
739
+ que es la que genera la mayor cantidad
740
+
741
+ 00:11:33.240 --> 00:11:35.320
742
+ de gasto energético, que es proof of work,
743
+
744
+ 00:11:35.320 --> 00:11:37.800
745
+ como la que tiene Blockchain de bitcoin. Lo
746
+
747
+ 00:11:37.800 --> 00:11:41.100
748
+ más importante es que todos estos mecanismos criptográficos
749
+
750
+ 00:11:41.805 --> 00:11:44.385
751
+ hacen que toda la red se pueda verificar
752
+
753
+ 00:11:44.845 --> 00:11:48.465
754
+ entre sí, sin necesidad de tener un mecanismo
755
+
756
+ 00:11:48.605 --> 00:11:53.345
757
+ central de criptografía o llaves, sino simplemente una
758
+
759
+ 00:11:53.965 --> 00:11:56.225
760
+ distribución del trabajo de CPU o de GPUs
761
+
762
+ 00:11:56.720 --> 00:11:59.920
763
+ y una verificación de la integridad de los
764
+
765
+ 00:11:59.920 --> 00:12:03.200
766
+ datos. De esta manera, tenemos un algoritmo que
767
+
768
+ 00:12:03.200 --> 00:12:05.520
769
+ hace el trabajo que haría un banco central
770
+
771
+ 00:12:05.520 --> 00:12:07.700
772
+ o los sistemas de confianza de los bancos
773
+
774
+ 00:12:07.760 --> 00:12:10.042
775
+ regulados. Parte de la razón por la que
776
+
777
+ 00:12:10.042 --> 00:12:12.815
778
+ bitcoin es tan poderoso es porque, para hackearlo,
779
+
780
+ 00:12:13.115 --> 00:12:15.514
781
+ necesitarías tener más poder de cómputo que toda
782
+
783
+ 00:12:15.514 --> 00:12:18.555
784
+ la red de minería. Necesitarías tener un 51
785
+
786
+ 00:12:18.555 --> 00:12:20.634
787
+ por 100 de más poder de cómputo que
788
+
789
+ 00:12:20.634 --> 00:12:23.759
790
+ la red de minería para recalcular los bloques
791
+
792
+ 00:12:23.759 --> 00:12:25.680
793
+ y tener un voto más fuerte en el
794
+
795
+ 00:12:25.680 --> 00:12:28.319
796
+ consenso que distribuye la versión actualizada de las
797
+
798
+ 00:12:28.319 --> 00:12:31.940
799
+ transacciones. Esto ha pasado en criptomonedas más pequeñas
800
+
801
+ 00:12:32.240 --> 00:12:35.120
802
+ que bitcoin, pero con bitcoin, ethereum, Solana, las
803
+
804
+ 00:12:35.120 --> 00:12:38.488
805
+ monedas grandes es prácticamente imposible. Parte del problema
806
+
807
+ 00:12:38.488 --> 00:12:41.305
808
+ de la inflación, bitcoin lo controla haciendo que
809
+
810
+ 00:12:41.305 --> 00:12:45.645
811
+ en la ecuación matemática de bitcoin como criptomoneda
812
+
813
+ 00:12:46.505 --> 00:12:48.985
814
+ exista un límite. Tiene un límite máximo de
815
+
816
+ 00:12:48.985 --> 00:12:51.785
817
+ 21000000 de bitcoin al que, a la fecha
818
+
819
+ 00:12:51.785 --> 00:12:53.290
820
+ de grabación de este curso, todavía no hemos
821
+
822
+ 00:12:53.290 --> 00:12:56.090
823
+ llegado. Otro de los problemas para no poder
824
+
825
+ 00:12:56.090 --> 00:12:58.250
826
+ hackear bitcoin es la cantidad de energía que
827
+
828
+ 00:12:58.250 --> 00:13:00.570
829
+ necesitarías. Para que se hagan una idea, al
830
+
831
+ 00:13:00.570 --> 00:13:02.970
832
+ día de hoy, la red de bitcoin usa
833
+
834
+ 00:13:02.970 --> 00:13:06.730
835
+ 130 terawatts por hora de energía. Esto es
836
+
837
+ 00:13:06.730 --> 00:13:08.750
838
+ el equivalente a la energía entera de Suecia.
839
+
840
+ 00:13:09.845 --> 00:13:13.524
841
+ Algunos protocolos de criptomonedas, aparte del sistema de
842
+
843
+ 00:13:13.524 --> 00:13:17.285
844
+ transacciones, los wallets, las llaves privadas, agregan la
845
+
846
+ 00:13:17.285 --> 00:13:20.665
847
+ capacidad de ejecutar órdenes de código de programación
848
+
849
+ 00:13:20.805 --> 00:13:24.520
850
+ bajo ciertas condiciones, como por ejemplo, si estos
851
+
852
+ 00:13:24.520 --> 00:13:27.080
853
+ servidores tienen estos datos o si estos usuarios
854
+
855
+ 00:13:27.080 --> 00:13:30.120
856
+ colocan estas llaves en una configuración particular, entonces
857
+
858
+ 00:13:30.120 --> 00:13:32.120
859
+ dispara estas transacciones de esta manera o de
860
+
861
+ 00:13:32.120 --> 00:13:35.420
862
+ esta otra manera. Eso significa que contratos legales
863
+
864
+ 00:13:35.815 --> 00:13:38.295
865
+ u otro tipo de mecanismos de compañía se
866
+
867
+ 00:13:38.295 --> 00:13:41.095
868
+ pueden expresar en código y distribuir de manera
869
+
870
+ 00:13:41.095 --> 00:13:44.135
871
+ descentralizada. Esto es lo que permiten redes como
872
+
873
+ 00:13:44.135 --> 00:13:46.135
874
+ Ethereum o Solana, y es lo que ha
875
+
876
+ 00:13:46.135 --> 00:13:47.910
877
+ permitido la creación de lo que se llama
878
+
879
+ 00:13:47.910 --> 00:13:51.670
880
+ tokenización, que es convertir ciertos activos del mundo
881
+
882
+ 00:13:51.670 --> 00:13:55.029
883
+ real en expresiones de criptomonedas. Los NFTs, por
884
+
885
+ 00:13:55.029 --> 00:13:57.510
886
+ ejemplo, son una expresión de este estilo. Aún
887
+
888
+ 00:13:57.510 --> 00:13:59.910
889
+ ninguno ha triunfado en el mundo real, pero
890
+
891
+ 00:13:59.910 --> 00:14:02.550
892
+ es muy prometedor y probablemente inevitable para el
893
+
894
+ 00:14:02.550 --> 00:14:05.225
895
+ futuro. Platzi tiene muchos cursos técnicos que te
896
+
897
+ 00:14:05.225 --> 00:14:07.865
898
+ enseñan desde mucho más básico hasta mucho más
899
+
900
+ 00:14:07.865 --> 00:14:10.505
901
+ complejo cómo programar tus propias redes, cómo ser
902
+
903
+ 00:14:10.505 --> 00:14:13.385
904
+ minero, cómo tener una granja de bitcoin en
905
+
906
+ 00:14:13.385 --> 00:14:15.704
907
+ tu casa, cómo hacer Ethereum, Solana, lo que
908
+
909
+ 00:14:15.704 --> 00:14:17.930
910
+ quieras. Solamente ve al buscador de Platzi y
911
+
912
+ 00:14:17.930 --> 00:14:21.290
913
+ escribe Ethereum, Blockchain o bitcoin, o aquí abajo,
914
+
915
+ 00:14:21.290 --> 00:14:22.570
916
+ en los recursos de la clase, te voy
917
+
918
+ 00:14:22.570 --> 00:14:24.649
919
+ a colocar varios enlaces. Este es un mundo
920
+
921
+ 00:14:24.649 --> 00:14:27.290
922
+ muy grande que fluctúa mucho con el precio,
923
+
924
+ 00:14:27.290 --> 00:14:29.950
925
+ pero que desde una perspectiva tecnológica es fascinante.
subir/fixed/Curso de Fundamentos de Ingeniería de Software/05-Introducción a Blockchain e Inteligencia Artificial/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ https://platzi.com/home/ruta/ethereum-blockchain-developer/
2
+ https://platzi.com/home/ruta/bitcoin-developer/