├── .gitignore ├── DMP ├── 1-curso-introducción-a-C# │ └── 1-Csharp-intro.md ├── 2-xamarin-forms │ └── 2-xamarin-forms.md ├── 3-xamarin-forms-mvvm │ └── 3-mvvm-xamarin-forms.md ├── 4-shopping-app │ └── 4-shopping-app.md ├── 5-curso-flutter │ └── 5-flutter.md └── Curso de Introducción a Java SE │ └── Apuntes Curso de Introducción a Java SE.txt ├── DW ├── 1-basico │ ├── 000-obsidian │ │ ├── 1.obsidian.md │ │ ├── 2.mermaid.md │ │ ├── mermaid-ejemplos.md │ │ ├── notaprueba01.md │ │ └── notaprueba02.md │ ├── 001-computacion-basica │ │ └── compu-basica.md │ ├── 002-intro-a-la-web │ │ └── introduccion-a-la-web.md │ ├── 003-prework │ │ ├── entorno-linux │ │ │ ├── commands.md │ │ │ ├── entorno-linux.md │ │ │ ├── grub-config.md │ │ │ ├── prework-linux.md │ │ │ └── visual-studio-code.md │ │ └── entorno-windows │ │ │ ├── 0-prework-windows.md │ │ │ ├── 1-virtual-box.md │ │ │ ├── activar-w10.md │ │ │ ├── customize-wsl.md │ │ │ ├── instalacion-W10.md │ │ │ ├── office-install.md │ │ │ ├── remove-linux-dualboot.md │ │ │ ├── vsc-chrome.md │ │ │ └── vsc │ │ │ ├── atajos-vsc.md │ │ │ ├── atajos.md │ │ │ ├── prettier.md │ │ │ ├── setting.md │ │ │ └── x.txt │ ├── 004-terminal-linea-de-comandos │ │ ├── bash-script.md │ │ ├── resources │ │ │ ├── Diferencia de permisos entre archivos y directorios.docx │ │ │ ├── code-bash │ │ │ │ ├── helloworld.sh │ │ │ │ └── hola.txt │ │ │ ├── movies.csv │ │ │ ├── sintowers.txt │ │ │ └── ubuntu.md │ │ └── terminal-linea-de-comandos.md │ ├── 005-git-github │ │ ├── gh-pages.md │ │ ├── git-github.md │ │ ├── notas-con-git-github.md │ │ ├── personalizar-git.md │ │ ├── resources │ │ │ └── infografia │ │ │ │ ├── eliminar-repo-local.jpeg │ │ │ │ ├── eliminar-repo-remoto.jpeg │ │ │ │ └── ignorar-archivos.jpeg │ │ └── termux.md │ ├── 006-html-css │ │ ├── 1-html │ │ │ ├── 1.html-css.md │ │ │ ├── 4.emmet.md │ │ │ ├── 5.bem.md │ │ │ └── tags.md │ │ ├── 2-css │ │ │ ├── animation.md │ │ │ ├── games-to-learn-css │ │ │ │ ├── 2.display-flex.md │ │ │ │ └── 3.type-selector.md │ │ │ ├── properties.md │ │ │ └── pseudo-clases.md │ │ ├── resources │ │ │ └── html+css │ │ │ │ └── codigo │ │ │ │ ├── BEM │ │ │ │ ├── Metodología BEM.txt │ │ │ │ ├── estilos.css │ │ │ │ └── index.html │ │ │ │ ├── CSS │ │ │ │ ├── Reto │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── RetoDos │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── RetoDosEjemplo │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── RetoDosMejorado │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── RetoEjemplo │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseCombinadores │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseCss │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseDisplay │ │ │ │ │ ├── blockInline │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── style.css │ │ │ │ │ └── flex │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── style.css │ │ │ │ ├── claseEspecificidad │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseHerencia │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseMedidas │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseModeloCaja │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── clasePosition │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── clasePseudoClase │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseVariables │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── claseWebFonts │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── em │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── minMax │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ └── rem │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── HTML │ │ │ │ ├── claseButton │ │ │ │ │ └── index.html │ │ │ │ ├── claseCalendario │ │ │ │ │ ├── index.html │ │ │ │ │ └── select.html │ │ │ │ ├── claseForms │ │ │ │ │ └── index.html │ │ │ │ ├── claseImg │ │ │ │ │ └── index.html │ │ │ │ ├── claseIndex │ │ │ │ │ ├── css │ │ │ │ │ │ └── style.css │ │ │ │ │ └── index.html │ │ │ │ └── claseVideo │ │ │ │ │ └── index.html │ │ │ │ ├── README.md │ │ │ │ ├── ResponsiveDesign │ │ │ │ ├── RetoTres │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── columnDrop │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── layoutShifter │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ └── mostlyFluid │ │ │ │ │ ├── desktop.css │ │ │ │ │ ├── index.html │ │ │ │ │ ├── style.css │ │ │ │ │ └── tablet.css │ │ │ │ ├── ResponsiveImgs │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ └── accesibilidad │ │ │ │ ├── claseLabelAltTitle │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ └── texto │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ └── responsive-design.md │ ├── 007-frontend-developer-practico │ │ └── frontend-developer.md │ ├── 008-disenio-developers │ │ ├── disenio-developers.md │ │ └── ex-disenio.txt │ ├── 009-sistemas-disenio │ │ ├── ex-sistemas-disenio.txt │ │ └── sistemas-disenio.md │ ├── 010-css-grid-basico │ │ ├── css-grid-basico.md │ │ ├── grid-garden.md │ │ └── resources │ │ │ └── codigo │ │ │ ├── 3.propiedades-del-contenedor │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── 4.propiedades-de-alineacion │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── 5.propiedades-de-ubicacion │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── 6.funciones-especiales │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── 7.keywords-especiales │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── index.html │ │ │ ├── proyecto-responsive │ │ │ ├── desktop.css │ │ │ ├── index.html │ │ │ ├── mobile.css │ │ │ └── tablet.css │ │ │ ├── proyecto-solucion-previa │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── proyecto │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── retoOne │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── retoThree │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── retoTwo │ │ │ ├── index.html │ │ │ └── style.css │ │ │ └── style.css │ ├── 011-maquetacion-en-css │ │ └── maquetacion-grid.md │ ├── 012-css-grid-layout │ │ ├── grid-layout.md │ │ ├── proceso-creativo.md │ │ └── resources │ │ │ └── codigo │ │ │ ├── 14-quiz │ │ │ ├── index.html │ │ │ └── style.css │ │ │ ├── 23-reto │ │ │ ├── index.html │ │ │ └── style.css │ │ │ └── Monster │ │ │ ├── index.html │ │ │ └── style.css │ ├── 013-disenio-web-grid-flexbox │ │ ├── grid-and-flexbox.md │ │ └── resources │ │ │ └── 10-reto │ │ │ ├── index.html │ │ │ └── style.css │ ├── 014-transform-transition │ │ ├── resources │ │ │ └── codigo │ │ │ │ ├── 12-transition property y duration │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── 13-transition timing function y delay │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── 14-movimiento impulsado por la acción │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── 15-tiempos de espera │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── 16-parpadeo │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── 18-will-change │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── 19-prefers-reduced-motion │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── Transform rotate, scale, skew y matrix │ │ │ │ ├── rotate │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── scale │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ └── skew │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── Transform style y perspective │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── backface-visibility │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── efecto-parallax-practica │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── efecto-parallax │ │ │ │ ├── alice │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ └── cohete │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ ├── perspective-origin │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ ├── transform-origin │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ │ │ └── translate │ │ │ │ ├── index.html │ │ │ │ └── style.css │ │ └── transform-y-transition.md │ ├── 015-figma │ │ ├── figma.md │ │ ├── prototipado-e-interfaces.md │ │ └── resources │ │ │ └── images │ │ │ ├── pluma-union-black.svg │ │ │ └── pluma-union-rose.svg │ ├── 016.programacion-basica │ │ ├── Anotaciones │ │ │ ├── 1 Html Css JS.txt │ │ │ ├── 10 Codigo dibujar con flechas.txt │ │ │ ├── 11 Math.txt │ │ │ ├── 12 Cargar Imagen.txt │ │ │ ├── 13 Clases y Arrays.txt │ │ │ ├── 13 No es !.txt │ │ │ ├── 15 retos.txt │ │ │ ├── 15.1 Cajero HTML.txt │ │ │ ├── 15.2 ClassBillete JS.txt │ │ │ ├── 16 Modelo Cliente Servidor.txt │ │ │ ├── 17 Cursos.txt │ │ │ ├── 2 Inicio.txt │ │ │ ├── 3 Qué es HTML CSS JS.txt │ │ │ ├── 4 JavaScript no es Java.txt │ │ │ ├── 5 Primeros pasos en el navegador con alert.txt │ │ │ ├── 6 HTML CSS JS de verdad.txt │ │ │ ├── 7 Algunas etiquetas.txt │ │ │ ├── 8 El DOM nuestro lugar de trabajo en la web.txt │ │ │ └── 9 Detectar eventos del teclado con JavaScript.txt │ │ └── resources │ │ │ ├── 1 dom │ │ │ ├── 4 1 codigo.js │ │ │ └── 4 document.html │ │ │ ├── 1 primero.html │ │ │ ├── 2 Canvas │ │ │ ├── Practica │ │ │ │ ├── dibujo.html │ │ │ │ └── dibujo.js │ │ │ ├── codigo.txt │ │ │ ├── dibujo.html │ │ │ └── dibujo.js │ │ │ ├── 2 marte.html │ │ │ ├── 3 marte_jupiter.html │ │ │ ├── 3 teclas │ │ │ ├── eventos.js │ │ │ └── flechas.html │ │ │ ├── 4 Mouse │ │ │ ├── dibujoMouse.html │ │ │ ├── dibujoMouse.js │ │ │ └── pruebaMouse.html │ │ │ ├── 5 villaplatzi │ │ │ ├── Muestra │ │ │ │ ├── lobo.html │ │ │ │ └── lobo.js │ │ │ ├── platzi.js │ │ │ └── villa.html │ │ │ ├── 6 fizzbuz │ │ │ ├── fizz.js │ │ │ └── modulo.html │ │ │ ├── 7 pakiman │ │ │ ├── Practica │ │ │ │ ├── classPlanta.js │ │ │ │ ├── classPlantas.js │ │ │ │ ├── classPlantasZombies.js │ │ │ │ ├── imagePlanta.js │ │ │ │ ├── imagePlantas.js │ │ │ │ ├── imagePlantasZombies.js │ │ │ │ ├── planta.html │ │ │ │ ├── plantas.html │ │ │ │ └── plantasZombies.html │ │ │ ├── paki.js │ │ │ ├── pakiman.html │ │ │ └── pakiman.js │ │ │ ├── 8 cajero │ │ │ ├── Practica │ │ │ │ ├── cajero.html │ │ │ │ └── classBillete.js │ │ │ ├── atm.html │ │ │ └── cajero.js │ │ │ └── 9 express │ │ │ ├── express │ │ │ ├── package-lock.json │ │ │ └── servidor.js │ │ │ └── servidor.js │ ├── 017.pensamiento-lógico │ │ ├── 17.algoritmos-y-pensamiento-logico │ │ │ ├── algoritmos-y-pensamiento-logico.md │ │ │ └── resources │ │ │ │ ├── Minusculas a mayusculas │ │ │ │ ├── minus.html │ │ │ │ └── minus.js │ │ │ │ ├── Ordenar numeros │ │ │ │ ├── Codigo.jpeg │ │ │ │ ├── Explicacion.jpeg │ │ │ │ ├── masGrande.html │ │ │ │ ├── masGrande.js │ │ │ │ ├── prueba.html │ │ │ │ └── prueba.js │ │ │ │ └── masGrande.js │ │ └── algoritmos-diagramas-de-flujo │ │ │ └── algoritmos-y-diagramas-de-flujo.md │ ├── 018.desarrollo-moderno-CodeStream │ │ └── codeStream.md │ ├── 019.fundamentosde-ingenieria-de-sotware │ │ ├── Apuntes totales.txt │ │ └── fundamentos-ing-software.md │ ├── 020.redes-informaticas-en-internet │ │ └── redes-informaticas-de-internet.md │ ├── 021.intro-seo │ │ ├── resources │ │ │ └── SEO 9. Herramientas para dar estructura.html │ │ └── seo.md │ ├── 022.sass │ │ ├── fundamentos-sass.md │ │ ├── resources │ │ │ └── resources │ │ │ │ └── code │ │ │ │ ├── css │ │ │ │ ├── style.css │ │ │ │ └── style.css.map │ │ │ │ ├── index.html │ │ │ │ ├── package-lock.json │ │ │ │ ├── package.json │ │ │ │ └── sass │ │ │ │ ├── _animaciones.scss │ │ │ │ ├── _hero.scss │ │ │ │ ├── _mixinsfunc.scss │ │ │ │ ├── _navbar.scss │ │ │ │ ├── _reset.scss │ │ │ │ └── style.scss │ │ ├── sass.md │ │ └── sass.txt │ └── 023.tailwind-2-y-3-basico │ │ ├── resources │ │ └── imgs │ │ │ └── svg │ │ │ ├── heart.svg │ │ │ ├── home.svg │ │ │ ├── instagram.svg │ │ │ ├── moon.svg │ │ │ ├── search.svg │ │ │ ├── twitter.svg │ │ │ └── user.svg │ │ └── tailwind-basico.md ├── 2-intermedio │ ├── 001-js-basico │ │ ├── events.md │ │ ├── js-basico.md │ │ └── methods.md │ ├── 002-js-practico │ │ ├── js-practico.md │ │ └── test-js │ │ │ ├── 1-functions.js │ │ │ ├── 12-interactuar-usuarios.html │ │ │ ├── 12-script.js │ │ │ ├── 13-addEventListener.html │ │ │ ├── 13.script.js │ │ │ ├── 2-if-elseif-else.js │ │ │ ├── 3-if-array.js │ │ │ ├── 4-for-to-while.js │ │ │ ├── 5-prompt.js │ │ │ ├── 6-array-function.js │ │ │ ├── 7-array-function-ciclo.js │ │ │ ├── 8-object-function-ciclo.js │ │ │ ├── 8.1-object-to-array.js │ │ │ ├── 9-conectar-js-html.html │ │ │ ├── 9-script.js │ │ │ ├── Bonus-reducir-condicionales.js │ │ │ └── Practica │ │ │ ├── 12-interactuar.html │ │ │ ├── 12.script.js │ │ │ ├── 9-html-y-js.html │ │ │ └── 9-script.js │ ├── 003-ECMAScript │ │ ├── ECMAScript-historia-y-versiones-de-javascript.md │ │ └── resources │ │ │ └── code │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ └── src │ │ │ ├── es10 │ │ │ ├── 00-flat-map.js │ │ │ ├── 01-trimstart-trimend.js │ │ │ ├── 02-try-catch.js │ │ │ └── 03-fromentries.js │ │ │ ├── es11 │ │ │ ├── 00-optional-chaining.js │ │ │ ├── 01-bigint.js │ │ │ ├── 02-nullish.js │ │ │ ├── 03-promise-allsettled.js │ │ │ ├── 04-globalthis.js │ │ │ ├── 05-matchall.js │ │ │ ├── 06-dynamic-import.js │ │ │ ├── 06-index.html │ │ │ └── 06-module.js │ │ │ ├── es12 │ │ │ ├── 00-numeric-separator.js │ │ │ ├── 01-replaceall.js │ │ │ ├── 02-promise-any.js │ │ │ └── 03-private.js │ │ │ ├── es13 │ │ │ ├── 00-at.js │ │ │ ├── 01-products.js │ │ │ └── 01-top-level-await.js │ │ │ ├── es6 │ │ │ ├── 00-let-const.js │ │ │ ├── 01-arrow-function.js │ │ │ ├── 03-strings.js │ │ │ ├── 04-default-params.js │ │ │ ├── 04-rest-spread.js │ │ │ ├── 05-object-literals.js │ │ │ ├── 06-promises.js │ │ │ ├── 07-clases.js │ │ │ ├── 08-module.js │ │ │ ├── 09-challenge.js │ │ │ ├── 09-generator.js │ │ │ ├── 10-set-add.js │ │ │ ├── 14-challenge-api.js │ │ │ ├── 14-challenge-exercise.js │ │ │ ├── 16-challenge-generador.js │ │ │ └── module.js │ │ │ ├── es7 │ │ │ ├── 00-exponential.js │ │ │ └── 01-array-includes.js │ │ │ ├── es8 │ │ │ ├── 00-object-entries.js │ │ │ ├── 01-object-values.js │ │ │ ├── 03-string-padding.js │ │ │ ├── 04-trailing-commas.js │ │ │ └── 05-async-functions.js │ │ │ └── es9 │ │ │ ├── 00-regex.js │ │ │ ├── 01-spread.js │ │ │ ├── 02-finally.js │ │ │ └── 03-async.js │ ├── 004.taller-js-mate-y-estadistica │ │ ├── resources │ │ │ └── codigo │ │ │ │ ├── 10.encuentra-el-ID │ │ │ │ └── main.js │ │ │ │ ├── 12.promedio │ │ │ │ └── main.js │ │ │ │ ├── 14.mediana-impar │ │ │ │ └── main.js │ │ │ │ ├── 15.mediana-par │ │ │ │ └── main.js │ │ │ │ ├── 16.sort │ │ │ │ └── main.js │ │ │ │ ├── 17.moda │ │ │ │ └── main.js │ │ │ │ ├── 19.objetos-to-arrays │ │ │ │ └── main.js │ │ │ │ ├── 20.promedio-ponderado │ │ │ │ ├── calculos.xlsx │ │ │ │ └── main.js │ │ │ │ ├── 21.clases-metodos-estaticos │ │ │ │ ├── analisis.js │ │ │ │ ├── index.html │ │ │ │ ├── platziMath.js │ │ │ │ └── salarios.js │ │ │ │ ├── 25.reestructurando-informacion │ │ │ │ ├── analisis.js │ │ │ │ ├── index.html │ │ │ │ ├── platziMath.js │ │ │ │ └── salarios.js │ │ │ │ ├── 7.Percentages │ │ │ │ ├── index.html │ │ │ │ └── main.js │ │ │ │ ├── 8.Coupon │ │ │ │ ├── index.html │ │ │ │ └── main.js │ │ │ │ ├── 9.Coupon-array │ │ │ │ ├── index.html │ │ │ │ └── main.js │ │ │ │ ├── 9.Coupon-objeto │ │ │ │ ├── index.html │ │ │ │ └── main.js │ │ │ │ ├── math.html │ │ │ │ ├── math.js │ │ │ │ └── practice │ │ │ │ ├── 10.find-id │ │ │ │ └── main.js │ │ │ │ ├── 12.promedio │ │ │ │ ├── average.js │ │ │ │ └── reduce │ │ │ │ │ └── main.js │ │ │ │ ├── 14.mediana │ │ │ │ ├── practice-one │ │ │ │ │ ├── index.html │ │ │ │ │ └── main.js │ │ │ │ └── practice-two │ │ │ │ │ └── main.js │ │ │ │ ├── 17.moda │ │ │ │ ├── practice-one │ │ │ │ │ └── moda.js │ │ │ │ └── practice-two │ │ │ │ │ └── moda.js │ │ │ │ ├── 19.objetos-to-arrays │ │ │ │ ├── entries-map.js │ │ │ │ └── map │ │ │ │ │ └── map.js │ │ │ │ ├── 2.mate │ │ │ │ ├── index.html │ │ │ │ └── square_triangle.js │ │ │ │ ├── 20.promedio-ponderado │ │ │ │ └── media-aritmetica-ponderada.js │ │ │ │ ├── 21.salario │ │ │ │ ├── analisis.js │ │ │ │ ├── index.html │ │ │ │ ├── platziMath.js │ │ │ │ └── salarios.js │ │ │ │ ├── 3.circle │ │ │ │ ├── circle.js │ │ │ │ └── index.html │ │ │ │ ├── 4.escaleno │ │ │ │ ├── height.js │ │ │ │ └── index.html │ │ │ │ ├── 8.coupon │ │ │ │ ├── practice-one │ │ │ │ │ ├── index.html │ │ │ │ │ └── main.js │ │ │ │ └── practice-two │ │ │ │ │ ├── index.html │ │ │ │ │ └── main.js │ │ │ │ └── others │ │ │ │ └── main.js │ │ └── taller-js-mate-y-estadistica.md │ ├── 005.primer-videojuego │ │ ├── resources │ │ │ └── code │ │ │ │ ├── game.js │ │ │ │ ├── index.html │ │ │ │ ├── maps.js │ │ │ │ └── styles.css │ │ └── taller-js-primer-videojuego.md │ ├── 006.closures_scope-en-js │ │ ├── closures_scope-en-js.md │ │ └── resources │ │ │ └── code │ │ │ ├── src │ │ │ ├── closure │ │ │ │ ├── 10.playground.js │ │ │ │ ├── 7.lexical.js │ │ │ │ ├── 8.playground.js │ │ │ │ ├── 9.1.practice.js │ │ │ │ └── 9.practice.js │ │ │ ├── debug │ │ │ │ └── main.js │ │ │ ├── hoisting │ │ │ │ └── main.js │ │ │ └── scope │ │ │ │ ├── 1.global.js │ │ │ │ ├── 2.function-scope.js │ │ │ │ ├── 3.block-scope.js │ │ │ │ ├── 5.reasignacion-redeclaracion.js │ │ │ │ └── 6.strict-mode.js │ │ │ └── test │ │ │ └── 7.lexical.js │ ├── 007.poo-js │ │ ├── pilares.md │ │ ├── poo-js.md │ │ └── resources │ │ │ └── code │ │ │ ├── 05.obj-literal-vs-proto.js │ │ │ ├── 06.clases.js │ │ │ ├── 07.ventajas.js │ │ │ ├── 08.manejo-clases.js │ │ │ ├── 10.abstraccion.js │ │ │ ├── 11.getters-setters.js │ │ │ ├── 12.getters-setters.js │ │ │ ├── 13.module.mjs │ │ │ ├── 13.modulos.mjs │ │ │ ├── 14.playgrounds-get-set.js │ │ │ ├── 15.inheritance.js │ │ │ ├── 16.herencia.js │ │ │ ├── 18.polimorfismo.js │ │ │ ├── 19.Comments.js │ │ │ ├── 19.Student.js │ │ │ ├── 19.exercise.js │ │ │ ├── index.html │ │ │ ├── practice │ │ │ ├── index.html │ │ │ └── poo.js │ │ │ └── test │ │ │ ├── 05.obj-literal-vs-proto.js │ │ │ ├── 06.clases.js │ │ │ ├── 07.ventajas.js │ │ │ ├── 08.manejo-clases.js │ │ │ ├── 08.otro-metodo.js │ │ │ ├── 10.abstraccion.js │ │ │ ├── 12.getters-setters.js │ │ │ ├── 14.playgrounds-get-set.mjs │ │ │ ├── 14.playgrounds.mjs │ │ │ ├── 16.herencia.js │ │ │ ├── 18.poli.js │ │ │ ├── 18.polimorfismo.js │ │ │ ├── 19.Comment.mjs │ │ │ ├── 19.Exercise.mjs │ │ │ └── 19.Student.mjs │ ├── 008.poo-js-intermedio │ │ ├── poo-js-intermedio.md │ │ └── resources │ │ │ └── code │ │ │ ├── 1.static.js │ │ │ ├── 10.Playground-deepFreeze.mjs │ │ │ ├── 10.data.mjs │ │ │ ├── 11.abstracción.mjs │ │ │ ├── 11.validation.mjs │ │ │ ├── 12.factory-pattern-roro.mjs │ │ │ ├── 13.module-pattern-namespaces.js │ │ │ ├── 14.getters-setters.js │ │ │ ├── 16.duck-typing.mjs │ │ │ ├── 17.instance-Of.js │ │ │ ├── 18.atributos-metodos.mjs │ │ │ ├── 19.metodos-estaticos.mjs │ │ │ ├── 3.metodos-staticos.js │ │ │ ├── 4.defineProperty.js │ │ │ ├── 5.memory.js │ │ │ ├── 6.shallow-copy.js │ │ │ ├── 7.JSON.parse-JSON.stringify.js │ │ │ ├── 8.recursividad.js │ │ │ ├── 9.deep-copy+recursividad.js │ │ │ ├── index.html │ │ │ ├── test │ │ │ ├── 13.module-pattern.mjs │ │ │ ├── 16.duck-typing.js │ │ │ ├── 17.instance-of.mjs │ │ │ ├── 4.seal-freeze.js │ │ │ └── deep_copy │ │ │ │ ├── data.mjs │ │ │ │ ├── deep_copy.mjs │ │ │ │ ├── index.html │ │ │ │ └── validation.mjs │ │ │ └── x.js │ ├── 009.npm-paquetes-dependencias │ │ ├── npm-gestion-de-paquetes-y-dependencias.md │ │ └── resources │ │ │ └── code │ │ │ └── npm │ │ │ ├── npm-init │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ └── src │ │ │ │ └── index.js │ │ │ ├── react-base │ │ │ ├── .babelrc │ │ │ ├── .eslintrc │ │ │ ├── .prettierrc │ │ │ ├── README.md │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ │ └── index.html │ │ │ ├── src │ │ │ │ ├── components │ │ │ │ │ └── App.jsx │ │ │ │ ├── index.js │ │ │ │ └── styles │ │ │ │ │ └── components │ │ │ │ │ └── App.styl │ │ │ └── webpack.config.js │ │ │ └── react-npm │ │ │ ├── README.md │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ │ └── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── 010.arrays-en-js │ │ ├── arrays-en-js.md │ │ └── resource │ │ │ └── code │ │ │ └── curso-manipulacion-de-arrays │ │ │ ├── README.md │ │ │ ├── client │ │ │ ├── 01-for-each.html │ │ │ └── 02-map.html │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── playground │ │ │ ├── 12.reduce.js │ │ │ ├── 14.some.js │ │ │ ├── 16.every.js │ │ │ ├── 19.include.js │ │ │ ├── 21.join.js │ │ │ ├── 25-reto.js │ │ │ ├── 5.map.js │ │ │ ├── 7.propagacion.js │ │ │ └── 9-filter.js │ │ │ └── server │ │ │ ├── 01-for-each.js │ │ │ ├── 02-map.js │ │ │ ├── 03-map-reloaded.js │ │ │ ├── 04-filter.js │ │ │ ├── 05-reduce.js │ │ │ ├── 06-reduce-reloaded.js │ │ │ ├── 07-some.js │ │ │ ├── 08-find.js │ │ │ ├── 09-every.js │ │ │ ├── 11-includes.js │ │ │ ├── 12-join-split.js │ │ │ ├── 13-concat.js │ │ │ ├── 14-flat.js │ │ │ ├── 15-flatmap.js │ │ │ ├── 16-mutable.js │ │ │ └── 17-sort.js │ ├── 011.js-engine-v8 │ │ ├── debugger-vsc.md │ │ └── js-engine-v8+nav.md │ ├── 012.asincronismo-js │ │ ├── asincronismo-con-js.md │ │ ├── fetch_async-await_try-catch+archivo-json.md │ │ ├── get-post-put-delete.md │ │ └── resources │ │ │ └── code │ │ │ ├── asincronismo │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── async │ │ │ │ │ ├── 15.async-await.js │ │ │ │ │ ├── 16.try-catch.js │ │ │ │ │ └── 17.playground.js │ │ │ │ ├── callback │ │ │ │ │ ├── 6.callback.js │ │ │ │ │ ├── 7.playground.js │ │ │ │ │ └── 8.xmlhttprequest.js │ │ │ │ ├── generator │ │ │ │ │ ├── 19.generators.js │ │ │ │ │ └── 23.playground.js │ │ │ │ └── promise │ │ │ │ │ ├── 11.promesas.js │ │ │ │ │ ├── 12.playground.js │ │ │ │ │ ├── 13.fetch.js │ │ │ │ │ └── 14.post.js │ │ │ └── x.md │ │ │ └── project │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ └── public │ │ │ ├── css │ │ │ ├── desktop.css │ │ │ ├── light-mode.css │ │ │ ├── style.css │ │ │ └── tablet.css │ │ │ ├── index.html │ │ │ ├── light-mode.js │ │ │ ├── main.js │ │ │ └── svg │ │ │ ├── black-logo-01.svg │ │ │ ├── black-logo-02.svg │ │ │ ├── black-logo-03.svg │ │ │ ├── facebook.svg │ │ │ ├── gray-logo-01.svg │ │ │ ├── moon.svg │ │ │ ├── pink-logo-01.svg │ │ │ ├── pink-logo-02.svg │ │ │ ├── purple-logo-01.svg │ │ │ ├── purple-logo-02.svg │ │ │ ├── purple-logo-03.svg │ │ │ ├── shadow-logo-01.svg │ │ │ ├── sun-moon.svg │ │ │ ├── sun.svg │ │ │ ├── test-logo.svg │ │ │ ├── transpt-logo-01.svg │ │ │ ├── transpt-logo-02.svg │ │ │ ├── twitter.svg │ │ │ └── white-logo-02.svg │ ├── 013.expresiones-regulares │ │ ├── RegExp.md │ │ └── resources │ │ │ └── code │ │ │ ├── 1.regex.js │ │ │ ├── 19.busqueda-reemplazo │ │ │ ├── main.js │ │ │ ├── movies.dat │ │ │ └── package.json │ │ │ ├── 2.caracter(.)punto.txt │ │ │ └── 21.lenguajes │ │ │ ├── football_results.csv │ │ │ ├── index.html │ │ │ └── main.js │ ├── 014.api-rest-js │ │ ├── 1.api-rest-js-fundamentos │ │ │ ├── api-rest-js-fundamentos.md │ │ │ └── resources │ │ │ │ └── code │ │ │ │ ├── 3.consumo-api-rest │ │ │ │ ├── index.html │ │ │ │ ├── main.js │ │ │ │ └── style.css │ │ │ │ ├── 4.endpoints-query-parameters │ │ │ │ ├── index.html │ │ │ │ ├── main.js │ │ │ │ └── style.css │ │ │ │ ├── 7.proyecto │ │ │ │ ├── index.html │ │ │ │ ├── main.js │ │ │ │ ├── style.css │ │ │ │ └── svg │ │ │ │ │ ├── delete.svg │ │ │ │ │ └── heart.svg │ │ │ │ ├── code │ │ │ │ ├── code_clase │ │ │ │ │ ├── index.html │ │ │ │ │ └── main.js │ │ │ │ └── code_clone │ │ │ │ │ ├── index.html │ │ │ │ │ ├── main.js │ │ │ │ │ └── style.css │ │ │ │ ├── package-lock.json │ │ │ │ ├── package.json │ │ │ │ ├── practice │ │ │ │ ├── css │ │ │ │ │ └── styles.css │ │ │ │ ├── index.html │ │ │ │ ├── main.mjs │ │ │ │ ├── methods │ │ │ │ │ ├── delete-favorites.mjs │ │ │ │ │ ├── get-favorites.mjs │ │ │ │ │ ├── get.mjs │ │ │ │ │ ├── parameters.mjs │ │ │ │ │ └── post.mjs │ │ │ │ ├── random.mjs │ │ │ │ └── svg │ │ │ │ │ ├── delete.svg │ │ │ │ │ └── heart.svg │ │ │ │ └── test │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ └── test.md │ │ ├── 2.api-rest-js-ejemplos │ │ │ ├── api-rest-ejemplos.md │ │ │ └── resources │ │ │ │ └── code │ │ │ │ ├── index.html │ │ │ │ ├── package.json │ │ │ │ ├── src │ │ │ │ ├── API │ │ │ │ │ ├── axios.mjs │ │ │ │ │ ├── get-by-category.mjs │ │ │ │ │ ├── get-categories.mjs │ │ │ │ │ ├── get-movie-by-id.mjs │ │ │ │ │ ├── get-search.mjs │ │ │ │ │ ├── get-similar.mjs │ │ │ │ │ └── get-trending-movies.mjs │ │ │ │ ├── main.mjs │ │ │ │ ├── navigation.mjs │ │ │ │ ├── nodes.mjs │ │ │ │ ├── parameters.mjs │ │ │ │ ├── secrets.mjs │ │ │ │ └── utils │ │ │ │ │ ├── create-categories.mjs │ │ │ │ │ └── create-movies.mjs │ │ │ │ └── styles │ │ │ │ └── app.css │ │ └── 3.api-rest-js-performance │ │ │ └── 3.api-rest-js-performance.md │ ├── 016.fundamentos-typescript │ │ ├── fundamentos-typescript.md │ │ └── resources │ │ │ └── code │ │ │ └── ts-project │ │ │ ├── .editorconfig │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── 01.hello.ts │ │ │ ├── 02.demo.ts │ │ │ ├── 03.demo.ts │ │ │ ├── 03.typing.ts │ │ │ ├── 04.number.ts │ │ │ ├── 05.boolean.ts │ │ │ ├── 06.string.ts │ │ │ ├── 07.arrays.ts │ │ │ ├── 08.any.ts │ │ │ ├── 09.union-type.ts │ │ │ ├── 10.alias.ts │ │ │ ├── 11.null-undefined.ts │ │ │ ├── 12.function.ts │ │ │ ├── 13.return-function.ts │ │ │ ├── 14.function-obj.ts │ │ │ ├── 15.obj.ts │ │ │ └── products │ │ │ │ ├── main.ts │ │ │ │ ├── product-model.ts │ │ │ │ └── product-service.ts │ │ │ └── tsconfig.json │ ├── 017.tipos-funciones-avanzadas │ │ ├── resources │ │ │ └── code │ │ │ │ ├── .editorconfig │ │ │ │ ├── package-lock.json │ │ │ │ ├── package.json │ │ │ │ ├── src │ │ │ │ ├── 01.enum.ts │ │ │ │ ├── 02.tuplas.ts │ │ │ │ ├── 03.unknow.ts │ │ │ │ ├── 04.never.ts │ │ │ │ ├── 05.optionals.ts │ │ │ │ ├── 06.default.ts │ │ │ │ ├── 07.rest.ts │ │ │ │ ├── 08.overload.ts │ │ │ │ ├── 09.overload2.ts │ │ │ │ ├── 10.interfaces.ts │ │ │ │ ├── app │ │ │ │ │ ├── base.model.ts │ │ │ │ │ ├── categories │ │ │ │ │ │ └── category.model.ts │ │ │ │ │ ├── main.ts │ │ │ │ │ ├── orders │ │ │ │ │ │ └── order.model.ts │ │ │ │ │ ├── products │ │ │ │ │ │ ├── product.dto.ts │ │ │ │ │ │ ├── product.model.ts │ │ │ │ │ │ └── product.service.ts │ │ │ │ │ └── users │ │ │ │ │ │ └── user.model.ts │ │ │ │ └── demo.ts │ │ │ │ └── tsconfig.json │ │ └── ts-tipos-funciones.md │ ├── 019.empaquetadores │ │ ├── 1.intro-empaquetadores-web.md │ │ ├── 2.vite.md │ │ └── resources │ │ │ └── code │ │ │ └── webpack │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ └── index.html │ │ │ ├── src │ │ │ └── index.js │ │ │ └── webpack.config.js │ ├── 023.SPA-js-vanilla │ │ └── spa-js-vanilla.md │ ├── 025.debugging-devtools │ │ └── debugging-devtools.md │ ├── 026.manipulacion-dom │ │ ├── img │ │ │ └── 22.intersection-observer.webp │ │ └── manipulacion-dom.md │ ├── 027.optimizacion-web │ │ └── web-optimization.md │ ├── 028.accesibilidad │ │ ├── 0.audiocurso-accesibilidad-web.md │ │ ├── 1.accesibilidad-web.md │ │ └── sources │ │ │ └── 23.icons.webp │ ├── 029.web-components │ │ ├── code │ │ │ ├── 1.custom-elements │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 10.css-custom-properties │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 12.third-party-components │ │ │ │ └── index.html │ │ │ ├── 2.template │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 3.shadow-dom │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 4.slot │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 5.attributes │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 6.attributeChangedCallback │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 7.disconnectedCallback │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 8.host │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ ├── 9.slotted │ │ │ │ ├── index.html │ │ │ │ └── my-element.js │ │ │ └── project │ │ │ │ ├── app.js │ │ │ │ ├── components │ │ │ │ └── Product-card.js │ │ │ │ ├── index.html │ │ │ │ └── styles.css │ │ └── web-components.md │ └── vim │ │ ├── Personal-configuration │ │ ├── vimrc-plug.md │ │ └── vimrc.md │ │ ├── configs │ │ ├── .vim │ │ │ ├── UltiSnips │ │ │ │ ├── htmldjango.snippets │ │ │ │ └── javascript.snippets │ │ │ ├── autoload │ │ │ │ └── plug.vim │ │ │ ├── maps.vim │ │ │ ├── plugin-config.vim │ │ │ └── plugins.vim │ │ ├── .vimrc │ │ ├── .zshrc │ │ └── karabiner.json │ │ └── vim.md ├── 3-avanzado │ ├── 1.react.js │ │ ├── Platzi │ │ │ └── reactjs.md │ │ ├── YouTube │ │ │ ├── code │ │ │ │ └── vite-project │ │ │ │ │ ├── .eslintrc.cjs │ │ │ │ │ ├── README.md │ │ │ │ │ ├── index.html │ │ │ │ │ ├── package-lock.json │ │ │ │ │ ├── package.json │ │ │ │ │ ├── public │ │ │ │ │ └── vite.svg │ │ │ │ │ ├── src │ │ │ │ │ ├── App.css │ │ │ │ │ ├── App.jsx │ │ │ │ │ ├── ListApp.jsx │ │ │ │ │ ├── UsersApp.jsx │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── react+vite.svg │ │ │ │ │ │ └── react.svg │ │ │ │ │ ├── components │ │ │ │ │ │ ├── AddTask.jsx │ │ │ │ │ │ ├── Counter.jsx │ │ │ │ │ │ ├── FirstComponent.jsx │ │ │ │ │ │ └── UserList.jsx │ │ │ │ │ ├── helpers │ │ │ │ │ │ └── fetchData.js │ │ │ │ │ ├── hooks │ │ │ │ │ │ └── useFetchData.js │ │ │ │ │ ├── index.css │ │ │ │ │ ├── main.jsx │ │ │ │ │ └── stylesheets │ │ │ │ │ │ ├── FirstComponent.css │ │ │ │ │ │ └── styles.css │ │ │ │ │ └── vite.config.js │ │ │ └── react-js-desde-cero.md │ │ ├── devTalles │ │ │ ├── img │ │ │ │ └── 6-naming-components.jpeg │ │ │ ├── material-ui.md │ │ │ └── react-hooks-mern.md │ │ ├── freeCodeCamp │ │ │ └── react.js-freeCodeCamp.md │ │ ├── modules.md │ │ └── resource │ │ │ ├── code │ │ │ ├── README.md │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── public │ │ │ │ ├── favicon.ico │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── robots.txt │ │ │ └── src │ │ │ │ ├── UseEffect.js │ │ │ │ ├── index.js │ │ │ │ └── stylesheets │ │ │ │ ├── App.css │ │ │ │ └── index.css │ │ │ └── roadmap.md │ ├── 2.vue.js │ │ └── vue.js-intro │ │ │ └── vue.js-intro.md │ ├── 3.next │ │ └── Nextjs-Tailwind.md │ ├── 4.css-modules │ │ └── css-modules.md │ └── contributions │ │ └── contributions-to-open-source.md └── super-hero │ └── challenges.md ├── README.md └── others ├── 1.english-Academy ├── 1.aprender-Ingles-online │ ├── ingles-online.md │ └── resources │ │ └── plantilla-plan-semanal.xlsx ├── 2.ingles-para-principiantes │ └── 2.ingles-para-principiantes.md └── 3.taller-de-ingles-para-principiantes │ └── taller-ingles-principiante.md ├── CheatSheets-HTML-CSS-JavaScript └── README.md ├── Django └── Django.md ├── anki └── add-ons.md ├── estrategias-para-Aprender-en-linea ├── aprender-en-linea.md └── resources │ └── flux-setup.exe ├── excel ├── Introducción a Excel para Principiantes.md └── sources │ └── Libro1.xlsx ├── gestion-efectiva-del-tiempo ├── gestion-efectiva-del-tiempo.md └── resources │ ├── clase-3_-mapa-de-areas.docx │ ├── clase-4_-convirtiendo-a-actividades.docx │ └── matriz-de-administracion-del-tiempo.docx ├── git.md └── set-grub.md /DW/1-basico/000-obsidian/notaprueba01.md: -------------------------------------------------------------------------------- 1 | Probamos los enlaces entre notas 01 2 | Ejemplo de prueba: [[1.resumen-obsidian]] - [[notaprueba02]] 3 | -------------------------------------------------------------------------------- /DW/1-basico/000-obsidian/notaprueba02.md: -------------------------------------------------------------------------------- 1 | Probamos los enlaces entre notas 02 2 | Ejemplo de prueba: [[1.resumen-obsidian]] - [[notaprueba01]] 3 | -------------------------------------------------------------------------------- /DW/1-basico/004-terminal-linea-de-comandos/bash-script.md: -------------------------------------------------------------------------------- 1 | # Curso de Bash Script 2 | 3 | Usando en sistemas Linux. 4 | 5 | Comprobar shells disponibles 6 | 7 | ```bash 8 | Ver lista: 9 | cat /etc/shells 10 | 11 | Ver bash en uso: 12 | echo $SHELL 13 | ``` -------------------------------------------------------------------------------- /DW/1-basico/004-terminal-linea-de-comandos/resources/Diferencia de permisos entre archivos y directorios.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/004-terminal-linea-de-comandos/resources/Diferencia de permisos entre archivos y directorios.docx -------------------------------------------------------------------------------- /DW/1-basico/004-terminal-linea-de-comandos/resources/code-bash/helloworld.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "Hello World" > hola.txt -------------------------------------------------------------------------------- /DW/1-basico/004-terminal-linea-de-comandos/resources/code-bash/hola.txt: -------------------------------------------------------------------------------- 1 | Hello World 2 | -------------------------------------------------------------------------------- /DW/1-basico/004-terminal-linea-de-comandos/resources/ubuntu.md: -------------------------------------------------------------------------------- 1 | ubunturoot 2 | ghostcode -------------------------------------------------------------------------------- /DW/1-basico/005-git-github/resources/infografia/eliminar-repo-local.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/005-git-github/resources/infografia/eliminar-repo-local.jpeg -------------------------------------------------------------------------------- /DW/1-basico/005-git-github/resources/infografia/eliminar-repo-remoto.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/005-git-github/resources/infografia/eliminar-repo-remoto.jpeg -------------------------------------------------------------------------------- /DW/1-basico/005-git-github/resources/infografia/ignorar-archivos.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/005-git-github/resources/infografia/ignorar-archivos.jpeg -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/BEM/estilos.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | } 6 | 7 | body{ 8 | font-family: Arial, Helvetica, sans-serif; 9 | } 10 | .nav{ 11 | background: slateblue; 12 | height: 70px; 13 | display: flex; 14 | align-items: center; 15 | justify-content: space-around; 16 | } 17 | 18 | .nav__logo { 19 | height: 100%; 20 | background: #fff; 21 | } 22 | 23 | .nav__img { 24 | height: 100%; 25 | } 26 | 27 | .nav__link{ 28 | color: #fff; 29 | } 30 | 31 | .nav__link--color{ 32 | color: #000; 33 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseCombinadores/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Hermano Adyacente o Cercano (Adjacent sibling) 3 | */ 4 | h2 + p { 5 | color: red; 6 | } 7 | 8 | /* 9 | Hermano general (General sibling) 10 | */ 11 | h2 ~ p { 12 | color: aqua 13 | } 14 | /* 15 | Hijo (Child) 16 | */ 17 | div > p { 18 | color: red; 19 | } 20 | 21 | /* 22 | Descendiente (Descendant) 23 | */ 24 | div p { 25 | color: red; 26 | } 27 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseCss/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Clase CSS 8 | 9 | 10 | 11 |
12 |

Soy un texto

13 |

Textitos

14 |
15 | 16 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseCss/style.css: -------------------------------------------------------------------------------- 1 | p { 2 | color: blue; 3 | font-size: 30px; 4 | } 5 | 6 | /* class */ 7 | .parrafo { 8 | color: aqua; 9 | } 10 | 11 | /* ID alt + shift + a */ 12 | #texto { 13 | color: yellow; 14 | font-size: 24px; 15 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseDisplay/blockInline/style.css: -------------------------------------------------------------------------------- 1 | .block-element { 2 | background-color: green; 3 | margin: 10px; 4 | padding: 20px; 5 | } 6 | 7 | .nav { 8 | background-color: peachpuff; 9 | padding: 20px; 10 | list-style: none; 11 | text-align: center; 12 | } 13 | .nav li { 14 | display: inline-block; 15 | font-size: 20px; 16 | margin: 10px 0; 17 | padding-left: 20px; 18 | padding-right: 20px; 19 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseDisplay/flex/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | html { 7 | font-size: 62.5%; 8 | } 9 | body { 10 | font-size: 1.6rem; 11 | } 12 | .container { 13 | border: 0.3rem solid black; 14 | display: flex; 15 | } 16 | .box { 17 | width: 10rem; 18 | height: 10rem; 19 | } 20 | .box1 { 21 | background-color: blue; 22 | } 23 | .box2 { 24 | background-color: blueviolet; 25 | } 26 | .box3 { 27 | background-color: burlywood; 28 | } 29 | .box4 { 30 | background-color: cadetblue; 31 | } 32 | .box5 { 33 | background-color: coral; 34 | } 35 | .box6 { 36 | background-color: salmon; 37 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseEspecificidad/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | h1 { 7 | color: purple; 8 | font-family: serif; 9 | margin-bottom: 10px; 10 | } 11 | .title { 12 | font-size: 18px; 13 | font-family: monospace; 14 | } 15 | .nav { 16 | margin-top: 10px; 17 | list-style-type: none; 18 | padding-left: 0; 19 | } 20 | 21 | .nav li { 22 | display: inline-block; 23 | } 24 | 25 | .nav a { 26 | color: white; 27 | background-color: #13a4a4; 28 | padding: 5px; 29 | border-radius: 2px; 30 | text-decoration: none; 31 | } 32 | 33 | .nav .blog { 34 | background-color: red; 35 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseHerencia/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Herencia 9 | 10 | 11 | 12 |
13 |

Soy un titulo

14 |

Soy un parrafo

15 |
16 | 17 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseHerencia/style.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-size: 75%; 3 | font-family: Verdana, Geneva, Tahoma, sans-serif; 4 | } 5 | 6 | h1 { 7 | font-size: inherit; 8 | } 9 | 10 | /*h1 recibe por el navegador un tamaño especifico*/ 11 | /*h1 está dentro del html pero no está tomando el 75% 12 | de tamaño de fuente que le indicamos a todo nuestro 13 | html solo está tomando el tipo de fuente, así que 14 | usamos inherit en h1 para que herede esa propiedad*/ 15 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseMedidas/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Medidas 10 | 11 | 12 | 13 |
14 |

Hola soy un texto ejemplo para la clase

15 |
16 | 17 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseMedidas/style.css: -------------------------------------------------------------------------------- 1 | main { 2 | background-color: red; 3 | width: 600px; 4 | height: 50%; 5 | } 6 | 7 | p { 8 | font-size: 16px; 9 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseModeloCaja/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Modelo de Caja 8 | 9 | 10 | 11 |
12 |
13 |

Soy un titulo

14 |
15 |

Soy un parrafo

16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseModeloCaja/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | padding: 0; 4 | margin: 0; 5 | } 6 | 7 | main { 8 | width: 100%; 9 | height: 500px; 10 | border: 10px solid grey; 11 | padding: 20px 35px; /*De arriba hacia abajo y de derecha a izqu*/ 12 | } 13 | /*Si solo colocamos 20px el navegador entiendo que debe 14 | colocar 20px arriba abajo y a los costados 15 | */ -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/clasePosition/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
1
13 |
2
14 |
3
15 |
4
16 |
17 | 18 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/clasePosition/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | .parent { 7 | border: 2px aqua dotted; 8 | display: inline-block; 9 | } 10 | .box { 11 | display: inline-block; 12 | background-color: red; 13 | width: 100px; 14 | height: 100px; 15 | } 16 | #two { 17 | background-color: orange; 18 | position: relative; 19 | bottom: -15px; 20 | } 21 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/clasePseudoClase/style.css: -------------------------------------------------------------------------------- 1 | .main-nav { 2 | margin-top: 10px; 3 | list-style: none; 4 | padding-left: 0; 5 | background-color: #13a4a4; 6 | } 7 | .main-nav__item { 8 | display: inline-block; 9 | } 10 | .main-nav__item a { 11 | color: white; 12 | padding: 5px; 13 | border-radius: 2px; 14 | text-decoration: none; 15 | } 16 | 17 | /*Pseudo Clase*/ 18 | .main-nav__item a:hover { 19 | color: blue; 20 | } 21 | .main-nav__item a:active { 22 | color: red; 23 | } 24 | 25 | /*Pseudo Elementos*/ 26 | .main-nav__item a::after { 27 | content: " | "; 28 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseVariables/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --primary-color: #003476; 3 | --secundary-color: #b4d2f7; 4 | --header-size: 4rem; 5 | --font: 1.8rem; 6 | } 7 | * { 8 | box-sizing: border-box; 9 | margin: 0; 10 | padding: 0; 11 | } 12 | html { 13 | font-size: 62.5; 14 | } 15 | header { 16 | width: 100vw; 17 | height: 15vh; 18 | background-color: var(--primary-color); 19 | } 20 | main { 21 | width: 100vw; 22 | height: 70vh; 23 | font-size: var(--font); 24 | } 25 | h1 { 26 | font-size: var(--header-size); 27 | color: var(--primary-color); 28 | } 29 | footer { 30 | width: 100vw; 31 | height: 15vh; 32 | background-color: var(--secundary-color); 33 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/claseWebFonts/style.css: -------------------------------------------------------------------------------- 1 | html{ 2 | font-family: 'Licorice', cursive; 3 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/em/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |

Soy texto ejemplo

13 |
14 |

Soy otro texto ejemplo

15 |
16 |
17 | 18 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/em/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 20px; 3 | } 4 | 5 | .text-container { 6 | font-size: 1em; 7 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/minMax/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | main { 8 | width: 100vw; 9 | height: 100vh; 10 | background-color: purple; 11 | } 12 | 13 | section { 14 | width: 80%; 15 | min-width: 320px; 16 | max-width: 500px; 17 | min-height: 900px; 18 | /* height: 500px; */ 19 | margin: 0 auto; 20 | background-color: red; 21 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/CSS/rem/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | html { 7 | font-size: 62.5%; 8 | } 9 | p { 10 | font-size: 1.6rem; 11 | } 12 | main div { 13 | font-size: 1.6rem; 14 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/HTML/claseButton/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Submit vs Button 9 | 10 | 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 21 | 22 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/HTML/claseIndex/css/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/006-html-css/resources/html+css/codigo/HTML/claseIndex/css/style.css -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/README.md: -------------------------------------------------------------------------------- 1 | # cursoDefinitivoHTMLyCSS 2 | Primer curso sobre html y css 3 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/ResponsiveDesign/columnDrop/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Column Drop 8 | 9 | 10 | 11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | 19 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/ResponsiveDesign/layoutShifter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Layout Shifter 8 | 9 | 10 | 11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/ResponsiveDesign/mostlyFluid/desktop.css: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 800px; 3 | margin-left: auto; 4 | margin-right: auto; 5 | } 6 | .c1, .c2 { 7 | width: 50%; 8 | } 9 | .c3, .c4 { 10 | width: 33%; 11 | } 12 | .c5 { 13 | width: 34%; 14 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/ResponsiveDesign/mostlyFluid/tablet.css: -------------------------------------------------------------------------------- 1 | .c2, .c3, .c4 { 2 | width: 50%; 3 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/ResponsiveImgs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | Descripción en caso no cargue la imagen 16 | 17 |
18 | 19 | -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/ResponsiveImgs/style.css: -------------------------------------------------------------------------------- 1 | img { 2 | width: 100%; 3 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/accesibilidad/claseLabelAltTitle/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | img { 8 | width: 350px; 9 | } -------------------------------------------------------------------------------- /DW/1-basico/006-html-css/resources/html+css/codigo/accesibilidad/texto/style.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-style: 62.5%; 3 | } 4 | 5 | h1 { 6 | font-size: 3rem; 7 | } 8 | p { 9 | font-size: 1.8rem; 10 | } -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/3.propiedades-del-contenedor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CSS GRID 8 | 9 | 10 | 11 |
12 |
1
13 |
2
14 |
3
15 |
4
16 |
5
17 |
6
18 |
19 | 20 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/3.propiedades-del-contenedor/style.css: -------------------------------------------------------------------------------- 1 | .contenedor { 2 | display: grid; 3 | grid-template-rows: 100px 200px; 4 | /* grid-template-rows: 150px 250px; */ 5 | grid-auto-columns: 100px; 6 | grid-auto-flow: column; 7 | /* row-gap: 15px; 8 | column-gap: 30px; */ 9 | gap: 40px; 10 | 11 | border: 5px solid #e1bee7; 12 | background-color: #fff1ff; 13 | } 14 | 15 | .item { 16 | border: 5px solid #00bcd4; 17 | font-size: 4rem; 18 | } -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/4.propiedades-de-alineacion/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CSS GRID 8 | 9 | 10 | 11 |
12 |
1
13 |
2
14 |
3
15 |
4
16 |
5
17 |
6
18 |
19 | 20 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/4.propiedades-de-alineacion/style.css: -------------------------------------------------------------------------------- 1 | .contenedor { 2 | display: grid; 3 | gap: 40px; 4 | grid-template-columns: 150px 150px 150px; 5 | grid-auto-rows: 150px; 6 | /* justify-content: center; 7 | align-content: center; */ 8 | place-content: end; /* center */ 9 | justify-items: end; 10 | align-items: start; 11 | height: 600px; 12 | 13 | 14 | border: 5px solid #e1bee7; 15 | background-color: #fff1ff; 16 | } 17 | 18 | .item { 19 | border: 5px solid #00bcd4; 20 | font-size: 4rem; 21 | } 22 | 23 | .item-2 { 24 | justify-self: start; 25 | align-self: flex-end; 26 | } -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/5.propiedades-de-ubicacion/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CSS GRID 8 | 9 | 10 | 11 |
12 |
1
13 |
2
14 |
3
15 |
16 | 17 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/6.funciones-especiales/style.css: -------------------------------------------------------------------------------- 1 | .contenedor { 2 | display: grid; 3 | grid-template-columns: minmax(60px, 300px) 200px minmax(60px, 250px); 4 | grid-template-rows: repeat(3, auto); 5 | place-content: center; 6 | 7 | border: 5px solid #e1bee7; 8 | background-color: white; 9 | } 10 | 11 | .item { 12 | border: 5px solid #00bcd4; 13 | font-size: 2rem; 14 | } 15 | 16 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/7.keywords-especiales/style.css: -------------------------------------------------------------------------------- 1 | .contenedor { 2 | display: grid; 3 | grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); 4 | 5 | border: 5px solid #e1bee7; 6 | background-color: white; 7 | } 8 | 9 | .contenedor-2 { 10 | display: grid; 11 | grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); 12 | margin-top: 100px; 13 | 14 | border: 5px solid #e1bee7; 15 | background-color: white; 16 | } 17 | 18 | .item { 19 | border: 5px solid #00bcd4; 20 | font-size: 2rem; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/retoOne/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CSS GRID 8 | 9 | 10 | 11 |
12 |
1
13 |
2
14 |
3
15 |
4
16 |
5
17 |
6
18 |
19 | 20 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/retoOne/style.css: -------------------------------------------------------------------------------- 1 | /* --------- RETO 01 ---------- */ 2 | .contenedor { 3 | border: 5px solid #e1bee7; 4 | background-color: #fff1ff; 5 | display: grid; 6 | grid-template-columns: 150px 150px; 7 | grid-template-rows: 150px 150px 150px; 8 | grid-auto-flow: column; 9 | gap: 20px; 10 | } 11 | 12 | .item { 13 | display: flex; 14 | justify-content: flex-end; 15 | align-items: flex-end; 16 | border: 5px solid #00bcd4; 17 | font-size: 4rem; 18 | } 19 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/retoThree/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CSS GRID 8 | 9 | 10 | 11 |
12 |
1
13 |
2
14 |
3
15 |
4
16 |
5
17 |
6
18 |
7
19 |
20 | 21 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/retoTwo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CSS GRID 8 | 9 | 10 | 11 |
12 |
1
13 |
2
14 |
3
15 |
4
16 |
17 | 18 | -------------------------------------------------------------------------------- /DW/1-basico/010-css-grid-basico/resources/codigo/retoTwo/style.css: -------------------------------------------------------------------------------- 1 | .contenedor { 2 | display: grid; 3 | gap: 15px; 4 | grid-template-columns: 150px 150px; 5 | grid-auto-rows: 150px; 6 | 7 | place-content: center; 8 | place-items: end; 9 | 10 | border: 5px solid #e1bee7; 11 | background-color: #fff1ff; 12 | } 13 | 14 | .item { 15 | width: 40px; 16 | height: 70px; 17 | 18 | border: 5px solid #00bcd4; 19 | font-size: 4rem; 20 | background-color: #00bcd4; 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /DW/1-basico/012-css-grid-layout/proceso-creativo.md: -------------------------------------------------------------------------------- 1 | # Proceso Creativo 2 | ## 1. Preparación 3 | 🔎 Call of Duty 4 | - [Cronología](https://www.timetoast.com/timelines/cronologia-de-cod-call-of-duty) 5 | - [Mejores juegos (del peor al mejor)](https://es.digitaltrends.com/videojuego/juegos-de-call-of-duty/) 6 | 7 | ## 2. Incubación 8 | 🧬 Comenzaremos con la cronología y luego los clasificaremos del peor al mejor. De poderse, añadiré algunas curiosidades del juego. 9 | 10 | ## 3. Iluminación 11 | 💡 Haré una pantalla inicial con la imagen del juego, 2 o 3 hyper vínculos a la cronología y a la clasificación del juego. 12 | 13 | ## 4. Evaluación 14 | ✔ Buscare imágenes sin derechos de autor 😅 15 | 16 | ## 5. Implementación 17 | ⚙ Umm, veremos que sucede, estoy un poco nervioso. Rick 🤔 -------------------------------------------------------------------------------- /DW/1-basico/012-css-grid-layout/resources/codigo/14-quiz/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Quiz-14 8 | 9 | 10 | 11 |
12 |
13 |
14 |

Platzi 💚

15 |
16 |
17 |
18 | 19 | -------------------------------------------------------------------------------- /DW/1-basico/012-css-grid-layout/resources/codigo/14-quiz/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | .container-big { 8 | width: 100%; 9 | height: 80px; 10 | background-color: blueviolet; 11 | } 12 | 13 | .container-medium { 14 | width: 50%; 15 | height: 40px; 16 | background-color: pink; 17 | } 18 | 19 | .container-small { 20 | width: 50%; 21 | height: 20px; 22 | background-color: aqua; 23 | } 24 | -------------------------------------------------------------------------------- /DW/1-basico/012-css-grid-layout/resources/codigo/Monster/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Monster 8 | 9 | 10 | 11 |
12 |
13 | 14 |
15 |
16 | 17 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/12-transition property y duration/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Transition: Property y duration 8 | 9 | 10 | 11 |
12 |
13 |
14 |
15 |
16 | 17 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/12-transition property y duration/style.css: -------------------------------------------------------------------------------- 1 | .container { 2 | margin: 30px; 3 | width: 400px; 4 | height: 100px; 5 | display: flex; 6 | justify-content: space-between; 7 | 8 | background-color: aqua; 9 | } 10 | 11 | .container:hover .box { 12 | transform: scale(1.2); 13 | } 14 | 15 | .box { 16 | width: 100px; 17 | height: 100px; 18 | } 19 | 20 | .box1 { 21 | transition: transform 500ms; 22 | 23 | background-color: darkslategrey; 24 | } 25 | 26 | .box2 { 27 | transition: transform 1s; 28 | 29 | background-color: hotpink; 30 | } 31 | 32 | .box3 { 33 | transition: transform 1.5s; 34 | 35 | background-color: springgreen; 36 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/13-transition timing function y delay/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/14-movimiento impulsado por la acción/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 | 13 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/14-movimiento impulsado por la acción/style.css: -------------------------------------------------------------------------------- 1 | div { 2 | width: 100px; 3 | height: 100px; 4 | 5 | transition: transform 1.8s linear; 6 | border-radius: 50%; 7 | background-color: darkslateblue; 8 | } 9 | 10 | div:hover { 11 | transform: translateX(200px); 12 | transition: transform 1s linear; 13 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/16-parpadeo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/16-parpadeo/style.css: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 100px; 3 | height: 100px; 4 | 5 | } 6 | 7 | .item { 8 | width: 100px; 9 | height: 100px; 10 | 11 | border-radius: 50%; 12 | background-color: aqua; 13 | } 14 | 15 | .container:hover .item { 16 | transform: translateX(60px); 17 | 18 | background-color: darkslateblue; 19 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/18-will-change/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 | 13 | 14 |
15 | 16 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/18-will-change/style.css: -------------------------------------------------------------------------------- 1 | button { 2 | width: 100px; 3 | height: 30px; 4 | 5 | background-color: aqua; 6 | } 7 | 8 | .better { /* Mejor */ 9 | will-change: transform; 10 | transition: transform 500ms; 11 | } 12 | 13 | .better:hover { 14 | transform: translateY(5px); 15 | } 16 | 17 | .worst { /* Peor */ 18 | will-change: margin-top; 19 | transition: margin-top 500ms; 20 | } 21 | 22 | .worst:hover { 23 | margin-top: 5px; 24 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/19-prefers-reduced-motion/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
Señálame
13 |
🤯
14 |
15 | 16 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform rotate, scale, skew y matrix/rotate/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform rotate, scale, skew y matrix/rotate/style.css: -------------------------------------------------------------------------------- 1 | div { 2 | width: 150px; 3 | height: 100px; 4 | 5 | background-color: aqua; 6 | } 7 | 8 | div:hover { 9 | transform: rotate(20deg); 10 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform rotate, scale, skew y matrix/scale/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform rotate, scale, skew y matrix/scale/style.css: -------------------------------------------------------------------------------- 1 | .circle { 2 | width: 100px; 3 | height: 100px; 4 | 5 | border-radius: 50%; 6 | background-color: aqua; 7 | } 8 | 9 | .circle:hover { 10 | transform: scale(1.2); 11 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform rotate, scale, skew y matrix/skew/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform rotate, scale, skew y matrix/skew/style.css: -------------------------------------------------------------------------------- 1 | div { 2 | width: 100px; 3 | height: 100px; 4 | 5 | border-radius: 20%; 6 | background-color: aqua; 7 | } 8 | 9 | div:hover { 10 | transform: skew(20deg); 11 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform style y perspective/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/Transform style y perspective/style.css: -------------------------------------------------------------------------------- 1 | .container { 2 | position: relative; 3 | width: 100px; 4 | height: 100px; 5 | border: 5px solid aqua; 6 | perspective: 100px; 7 | } 8 | 9 | .item { 10 | position: absolute; 11 | width: 95px; 12 | height: 95px; 13 | 14 | transform-style: preserve-3d; 15 | opacity: 0.5; 16 | border: 3px solid black; 17 | background-color: darkslateblue; 18 | } 19 | 20 | .item:hover { 21 | transform: rotateX(20deg); 22 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/backface-visibility/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/backface-visibility/style.css: -------------------------------------------------------------------------------- 1 | .card { 2 | position: relative; 3 | width: 200px; 4 | height: 200px; 5 | transform-style: preserve-3d; 6 | } 7 | 8 | .card:hover { 9 | transform: rotateY(180deg); 10 | } 11 | 12 | .face { 13 | position: absolute; 14 | width: 100%; 15 | height: 100%; 16 | 17 | backface-visibility: hidden; 18 | border-radius: 20px; 19 | } 20 | 21 | .face.front { 22 | background-color: aqua; 23 | } 24 | 25 | .face.back { 26 | transform: rotateX(180deg); 27 | background-color: darkslateblue; 28 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/perspective-origin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Perspective origin 8 | 9 | 10 | 11 |
12 |
Señálame
13 |
14 | 15 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/perspective-origin/style.css: -------------------------------------------------------------------------------- 1 | .shadow{ 2 | width: 100px; 3 | height: 100px; 4 | /* Perspectiva */ 5 | perspective: 100px; 6 | perspective-origin: left top; 7 | 8 | border: 1px solid transparent; 9 | background-color: grey; 10 | } 11 | 12 | .transform{ 13 | width: 100px; 14 | height: 100px; 15 | /* Transform */ 16 | transform-style: preserve-3d; 17 | 18 | font-size: 1.5rem; 19 | border: 1px solid black; 20 | background-color: skyblue; 21 | cursor: pointer; 22 | } 23 | 24 | /* Transformaciones */ 25 | .transform:hover { 26 | transform: rotateY(15deg); 27 | } 28 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/transform-origin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/transform-origin/style.css: -------------------------------------------------------------------------------- 1 | div { 2 | width: 150px; 3 | height: 100px; 4 | transform-origin: left top; 5 | 6 | background-color: aqua; 7 | } 8 | 9 | div:hover { 10 | transform: rotate(30deg); 11 | } -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/translate/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Transform translate 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /DW/1-basico/014-transform-transition/resources/codigo/translate/style.css: -------------------------------------------------------------------------------- 1 | .shadow { 2 | width: 100px; 3 | height: 100px; 4 | 5 | border-radius: 50%; 6 | background-color: black; 7 | } 8 | 9 | .circle { 10 | width: 100px; 11 | height: 100px; 12 | 13 | border-radius: 50%; 14 | background-color: aqua; 15 | } 16 | 17 | .circle:hover { 18 | transform: translate(20px, -20px); 19 | } 20 | 21 | 22 | /* 23 | .circle:hover { 24 | transform: translateX(-20px); or Y 25 | } 26 | */ -------------------------------------------------------------------------------- /DW/1-basico/015-figma/resources/images/pluma-union-black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /DW/1-basico/015-figma/resources/images/pluma-union-rose.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/1 Html Css JS.txt: -------------------------------------------------------------------------------- 1 | La creación de aplicaciones web se basa en: 2 | 3 | HTML (.html): donde se define el contenido 4 | CSS (.css): donde se define diseño y parte visual 5 | JAVASCRIPT (.js): crea dinamismo 6 | Todo lenguaje de programación trabaja con determinados elementos 7 | 8 | VARIABLE: Elemento que almacena valores 9 | CONDICIONAL: circunstancia requerida para correr código 10 | FUNCIÓN: Conjunto de instrucciones que crean nuevas variables - reusable 11 | CLASE: Define las características del objeto 12 | ARREGLO: Conjunto variado de datos con orden definido y agrupados en una variable -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/11 Math.txt: -------------------------------------------------------------------------------- 1 | Math: Colección de funciones 2 | Math.ceil(): Redondea hacia arriba. 3 | Math.floor(): Redondea hacia abajo 4 | Math.random(): numero aleatorios entre 0.1 y 0.9 5 | 6 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/15.1 Cajero HTML.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Cajero Automatico 6 | 7 | 8 |

Bienvenido "Cajero Automatico"

9 |

10 | 11 |

12 |

13 | 14 | 15 |

16 |

17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/16 Modelo Cliente Servidor.txt: -------------------------------------------------------------------------------- 1 | CARRERA: 2 | Base de Datos 3 | Platzi.com/db 4 | 5 | Backend 6 | PHP PYTHON NODE JS 7 | Platzi.com/backend 8 | 9 | Servidor 10 | http://direccion.com:puerto 11 | 12 | Frontend 13 | HTML CSS JS ANGULAR 14 | 15 | Stack 16 | Grupo de tecnologías, colección de tecnología 17 | -> El stack mas popular para desarrollo web es: 18 | LAMP: Linux Apache MySQL PHP 19 | 20 | Metodo de comunicación entre Frontend y Backend 21 | GET 22 | POST 23 | AJAX 24 | SOCKETS 25 | 26 | Protocolo HTTP 27 | 28 | Curso Definitivo de JavaScript 29 | Curso Desarrollo Web 30 | Curso Responsive Design 31 | 32 | Platzi.com/js 33 | 34 | Curso de terminal 35 | Para usar la linea de comandos del cmd 36 | Platzi.com/terminal -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/17 Cursos.txt: -------------------------------------------------------------------------------- 1 | Curso: 2 | Frontend: Curso de diseño web online y curso de Responsive disen 3 | Curso definitivo de JavaScript 4 | 5 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/2 Inicio.txt: -------------------------------------------------------------------------------- 1 | Dentro de consola del Navegador: 2 | 3 | alert("Mi nombre es Freddy"); 4 | 5 | nombre = prompt("Cuál es tu nombre?"); -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/3 Qué es HTML CSS JS.txt: -------------------------------------------------------------------------------- 1 | HTML -> info 2 | CSS -> diseño 3 | JS -> interactividad 4 | 5 | -> Interpretado por el navegador 6 | 7 | 8 | CURSO: Diseño web online -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/4 JavaScript no es Java.txt: -------------------------------------------------------------------------------- 1 | JavaScript != Java 2 | Web Oracle 3 | Servidor Server 4 | NodeJS Bancos 5 | Robots Android 6 | 7 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/5 Primeros pasos en el navegador con alert.txt: -------------------------------------------------------------------------------- 1 | string--- 2 | alert("un mensaje"); 3 | 4 | alert: Metodo que dispara algo. 5 | var: declara la existencia de una variable en memoria 6 | 7 | var z = x + y 8 | 9 | La suma de x + y ocurre primero, luego esta se almacena en z 10 | 11 | Concatenación: + z 12 | alert("El valor de z es: " + z); 13 | 14 | 15 | Skills: Habilidades 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/6 HTML CSS JS de verdad.txt: -------------------------------------------------------------------------------- 1 | sd -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/7 Algunas etiquetas.txt: -------------------------------------------------------------------------------- 1 | style: Debe ir en el head para que los cambios se vean primero, dentro de esta etiqueta van las etiquetas que se desean cambiar 2 | body 3 | { 4 | background-color: #pagina; 5 | color: #texto; 6 | Font-family: fuente; 7 | } 8 | 9 | body: almacena el texto y el script 10 | script: document.write("texto" + x); escribe en pantalla 11 | strong: negrita 12 | alert("Mensajes emergentes al iniciar la pagina") 13 | prompt("Pedir datos al usuario"); 14 | parseInt(convierte a entero) 15 | var texto = "algo"; -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/Anotaciones/8 El DOM nuestro lugar de trabajo en la web.txt: -------------------------------------------------------------------------------- 1 | DOM: 2 | En aplicaciones web tenemos un concepto llamado DOM (Document Object Model) es la forma en que internamente el navegador organiza todo el HTML dentro de una estructura de árbol 3 | 4 | NAVIGATOR 5 | 6 | WINDOW 7 | 8 | DOCUMENT 9 | 10 | Método: Función que hace parte de un objeto 11 | console.log: Revisar o depurar errores -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/1 dom/4 1 codigo.js: -------------------------------------------------------------------------------- 1 | var ruta = window.location; 2 | console.log(ruta.origin); 3 | document.write("Estás en: " + ruta); 4 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/1 dom/4 document.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document Object Model 6 | 7 | 8 |

Vamos a jugar con window y con document

9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/1 primero.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mi primer archivo HTML 5 | 17 | 18 | 19 |

Hola estoy aprendiendo

20 |

Este es otro parrafo

21 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/2 Canvas/Practica/dibujo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Dibujo en Canvas 6 | 12 | 13 | 14 |

Dibujo hecho en Canvas

15 |

16 | Ingresa cantidad de lineas
17 | 18 | 19 |

20 | 21 |

Tú dibujo termina arriba

22 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/3 teclas/flechas.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 12 | 13 | 14 | 15 |

Mueve las flechas para dibujar

16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/4 Mouse/dibujoMouse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 12 | 13 | 14 | 15 |

Usa el mouse para dibujar arriba

16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/4 Mouse/dibujoMouse.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("mousemove", dibujarMouse); 2 | var area = document.getElementById("areaDibujo"); 3 | var papel = area.getContext("2d"); 4 | var colorcito = "red"; 5 | var x, y; 6 | 7 | function dibujarLinea(color, xinicio, yinicio, xfinal, yfinal, lienzo) 8 | { 9 | lienzo.beginPath(); 10 | lienzo.strokeStyle = color; 11 | lienzo.lineWidth = 3; 12 | lienzo.moveTo(xinicio, yinicio); 13 | lienzo.lineTo(xfinal, yfinal); 14 | lienzo.stroke(); 15 | lienzo.closePath(); 16 | } 17 | 18 | function dibujarMouse(evento) 19 | { 20 | if (evento.buttons == 1) { 21 | dibujarLinea(colorcito, x, y, evento.offsetX, evento.offsetY, papel); 22 | } 23 | x = evento.offsetX; 24 | y = evento.offsetY; 25 | } 26 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/5 villaplatzi/villa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Usa las flechas del teclado para mover al lobo multiple XD

10 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/6 fizzbuz/fizz.js: -------------------------------------------------------------------------------- 1 | var n = 100; 2 | var f = "Fizz "; 3 | var b = "Buzz "; 4 | 5 | for(var i = 1; i <= n; i++) 6 | { 7 | if(esDivisible(i, 3)) 8 | { 9 | document.write(f); 10 | } 11 | if(esDivisible(i, 5)) 12 | { 13 | document.write(b); 14 | } 15 | if(!esDivisible(i, 3) && !esDivisible(i, 5)) 16 | { 17 | document.write(i); 18 | } 19 | document.write("
"); 20 | } 21 | 22 | function esDivisible(nEvaluar, divisor) 23 | { 24 | if(nEvaluar % divisor == 0) 25 | { 26 | return true; 27 | } 28 | 29 | else 30 | { 31 | return false; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/6 fizzbuz/modulo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FizzBuz dame un empleo 6 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/classPlanta.js: -------------------------------------------------------------------------------- 1 | class Planta 2 | { 3 | constructor(n, v, a) 4 | { 5 | this.imagen = new Image(); 6 | this.nombre = n; 7 | this.vida = v; 8 | this.ataque = a; 9 | 10 | this.imagen.src = imagenes[this.nombre]; 11 | } 12 | 13 | hablar() 14 | { 15 | alert(this.nombre); 16 | } 17 | 18 | mostrar() 19 | { 20 | document.body.appendChild(this.imagen); 21 | document.write("
" + this.nombre + "
"); 22 | document.write("Vida: " + this.vida + "
"); 23 | document.write("Ataque: " + this.ataque + "

"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/classPlantas.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/classPlantas.js -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/classPlantasZombies.js: -------------------------------------------------------------------------------- 1 | class PlantasZombies 2 | { 3 | constructor(n, v, a) 4 | { 5 | this.imagen = new Image(); 6 | this.nombre = n; 7 | this.vida = v; 8 | this.ataque = a; 9 | 10 | this.imagen.src = imagenes[this.nombre]; 11 | } 12 | hablar() 13 | { 14 | alert(this.nombre); 15 | } 16 | mostrar() 17 | { 18 | document.body.appendChild(this.imagen); 19 | document.write("
" + this.nombre + "
"); 20 | document.write("Vida: " + this.vida + "
"); 21 | document.write("Ataque: " + this.ataque + "
"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/imagePlanta.js: -------------------------------------------------------------------------------- 1 | var imagenes = []; 2 | imagenes["PlantaUno"] = "plantaUno.png"; 3 | imagenes["PlantaDos"] = "plantaDos.png"; 4 | imagenes["PlantaTres"] = "plantaTres.png"; 5 | 6 | var coleccion = []; 7 | coleccion.push(new Planta("PlantaUno", 150, 80)); 8 | coleccion.push(new Planta("PlantaDos", 200, 100)); 9 | coleccion.push(new Planta("PlantaTres", 300, 180)); 10 | 11 | for(var p of coleccion) 12 | { 13 | p.mostrar(); 14 | } 15 | 16 | for(var x in coleccion[0]) 17 | { 18 | console.log(x); 19 | } 20 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/imagePlantas.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/imagePlantas.js -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/imagePlantasZombies.js: -------------------------------------------------------------------------------- 1 | var imagenes = []; 2 | imagenes["plantaUno"] = "plantaUno.png"; 3 | imagenes["plantaDos"] = "plantaDos.png"; 4 | imagenes["plantaTres"] = "plantaTres.png"; 5 | 6 | var coleccion = []; 7 | coleccion.push(new PlantasZombies("plantaUno", 100, 80)); 8 | coleccion.push(new PlantasZombies("plantaDos", 200, 120)); 9 | coleccion.push(new PlantasZombies("plantaTres", 80, 150)); 10 | 11 | for(var plazom of coleccion) 12 | { 13 | plazom.mostrar(); 14 | } 15 | 16 | for(var x in coleccion[0]) 17 | { 18 | console.log(x); 19 | } 20 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/planta.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Plantasmagoricas 6 | 7 | 8 |

Plantas vs Zombies

9 | 11 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/plantas.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Plantas vs Zombies 6 | 7 | 8 |

Planta vs Zombies

9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/plantasZombies.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/016.programacion-basica/resources/7 pakiman/Practica/plantasZombies.html -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/paki.js: -------------------------------------------------------------------------------- 1 | var imagenes = []; 2 | imagenes["Cauchin"] = "vaca.png"; 3 | imagenes["Pokacho"] = "pollo.png"; 4 | imagenes["Tocinauro"] = "cerdo.png"; 5 | 6 | var coleccion = []; 7 | coleccion.push(new Pakiman("Cauchin", 100, 30)); 8 | coleccion.push(new Pakiman("Pokacho", 80, 50)); 9 | coleccion.push(new Pakiman("Tocinauro", 120, 40)); 10 | 11 | for(var pakin of coleccion) 12 | { 13 | pakin.mostrar(); 14 | } 15 | 16 | for(var x in coleccion[0]) 17 | { 18 | console.log(x); 19 | } 20 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/pakiman.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PakimanDex! 6 | 7 | 8 |

Pakimanes que he atrapado!

9 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/7 pakiman/pakiman.js: -------------------------------------------------------------------------------- 1 | class Pakiman 2 | { 3 | constructor(n, v, a) 4 | { 5 | this.imagen = new Image(); 6 | this.nombre = n; 7 | this.vida = v; 8 | this.ataque = a; 9 | 10 | this.imagen.src = imagenes[this.nombre]; 11 | } 12 | hablar() 13 | { 14 | alert(this.nombre); 15 | } 16 | mostrar() 17 | { 18 | document.body.appendChild(this.imagen); 19 | document.write("
" + this.nombre + "
"); 20 | document.write("Vida: " + this.vida + "
"); 21 | document.write("Ataque: " + this.ataque + "
"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/8 cajero/Practica/cajero.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Cajero Automatico 6 | 7 | 8 |

Bienvenidos "Cajero Automatico"

9 |

10 |

Billetes en Soles:

11 |

100 - 50 - 20 - 10

12 | 13 | 14 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/8 cajero/atm.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Cajero automatico 6 | 7 | 8 |

9 | 10 |

11 |

12 | 13 | 14 |

15 |

16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/9 express/express/servidor.js: -------------------------------------------------------------------------------- 1 | var express = require("express"); // Libreria express 2 | var aplicacion = express(); // invoca express como si fuera una funcion 3 | 4 | aplicacion.get("/", inicio); // slash home 5 | aplicacion.get("/cursos", cursos); 6 | 7 | function inicio(peticion, resultado) 8 | { 9 | resultado.send("Este es el home del Servidor genial!!") 10 | } 11 | 12 | function cursos(peticion, resultado) 13 | { 14 | resultado.send("Estos son los cursos.") 15 | } 16 | aplicacion.listen(8989); 17 | -------------------------------------------------------------------------------- /DW/1-basico/016.programacion-basica/resources/9 express/servidor.js: -------------------------------------------------------------------------------- 1 | var express = require("express") // Libreria express 2 | var aplicacion = express(); // Invoca express como si fuera una funcion 3 | 4 | aplicacion.get("/", inicio); // Slash home 5 | aplicacion.get("/cursos", cursos); 6 | 7 | function inicio(peticion, resultado) 8 | { 9 | resultado.send("Este es el Home del Servidor") 10 | } 11 | 12 | function cursos(peticion, resultado) 13 | { 14 | resultado.send("Estos son los cursos"); 15 | } 16 | 17 | aplicacion.listen(8989); 18 | -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Minusculas a mayusculas/minus.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Minusculas a mayusculas/minus.js: -------------------------------------------------------------------------------- 1 | // Opcion 1 No funciona 2 | let saludo = ["h", "o", "l", "a"] 3 | mayusculas(saludo); 4 | 5 | function mayusculas(parametro){ 6 | for(i=0; i < parametro.length; i++){ 7 | parametro[i].toUpperCase(); 8 | console.log(parametro[i]); 9 | } 10 | } 11 | 12 | 13 | // Opcion 2 14 | let texto = prompt("Ingresa tu nombre"); 15 | document.write(texto.toUpperCase()); 16 | 17 | //Opcion 3 18 | let frase = " hola platzinauta"; 19 | document.write(frase.toUpperCase()); 20 | -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/Codigo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/Codigo.jpeg -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/Explicacion.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/Explicacion.jpeg -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/masGrande.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/masGrande.js: -------------------------------------------------------------------------------- 1 | function secondLargestNumber(numbers){ 2 | let first = numbers[0] 3 | let second = 0; 4 | 5 | for(let i=0; i < numbers.length; i++){ 6 | if(numbers[i] > first){ // comparación para ver quien 7 | second = first; // es mayor 8 | first = numbers[i] 9 | } 10 | if(numbers[i] > second && numbers[i] < first){ 11 | second = numbers[i]; // comparación para ver quien 12 | } // es menor 13 | } 14 | return second 15 | } 16 | let nums = [8, 4, 6, 10, 9, 11] 17 | console.log(secondLargestNumber(nums)) 18 | -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/prueba.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/Ordenar numeros/prueba.js: -------------------------------------------------------------------------------- 1 | /*function segundoNumeroGrande(numero) 2 | { 3 | 4 | console.log(numero); 5 | } 6 | 7 | let nums = [8, 4, 6, 10, 9, 11] 8 | 9 | nums.sort(); 10 | parseInt(nums); 11 | segundoNumeroGrande(nums); 12 | */ 13 | /* 14 | function compare(a, b) { 15 | if (a < b) { 16 | return -1; 17 | } 18 | if (a > b) { 19 | return 1; 20 | } 21 | // a debe ser igual b 22 | return 0; 23 | } 24 | */ 25 | function compareNumbers(a, b) { 26 | return a - b; 27 | } 28 | 29 | var numbers = [4, 2, 5, 1, 3]; 30 | numbers.sort(function(a, b) { 31 | return a - b; 32 | }); 33 | console.log(numbers); 34 | -------------------------------------------------------------------------------- /DW/1-basico/017.pensamiento-lógico/17.algoritmos-y-pensamiento-logico/resources/masGrande.js: -------------------------------------------------------------------------------- 1 | function secondLargestNumber(numbers){ 2 | let first = numbers[0] 3 | let second = 0; 4 | 5 | for(let i=0; i < numbers.length; i++){ 6 | if(numbers[i] > first){ 7 | second = first; 8 | first = numbers[i] 9 | } 10 | if(numbers[i] > second && numbers[i] < first){ 11 | second = numbers[i]; 12 | } 13 | } 14 | return second 15 | } 16 | let nums = [8, 4, 6, 10, 9, 11] 17 | console.log(secondLargestNumber(nums)) 18 | -------------------------------------------------------------------------------- /DW/1-basico/022.sass/resources/resources/code/css/style.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sourceRoot":"","sources":["../sass/_mixinsfunc.scss","../sass/_navbar.scss","../sass/_hero.scss","../sass/style.scss"],"names":[],"mappings":"AAEA;AAOA;ACJA;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EDXJ;EACA;EACA,iBCUsC;EAClC;;AAGJ;EACI;EACA;AAMA;AAAA;AAAA;;AAJA;EACI;;AAQR;EACI;IACI;;;;ACrBR;EACI;EACA;EFZJ;EACA;EACA,iBEYsC;EAdlC;EACA;EACA;AAEJ;AAAA;AAAA;;AAcA;EACI;EACA;;AAGJ;EAEI;EACA;;AAGJ;EACI;;;ACjCR;AAIA;EACI","file":"style.css"} -------------------------------------------------------------------------------- /DW/1-basico/022.sass/resources/resources/code/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "code", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "sass": "^1.63.6" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /DW/1-basico/022.sass/resources/resources/code/sass/_mixinsfunc.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:math'; 2 | 3 | /* Podemos usarlos con o sin argumentos */ 4 | @mixin crear-flexbox($justify) { 5 | display: flex; 6 | align-items: center; 7 | justify-content: $justify; 8 | } 9 | 10 | /* Funciones */ 11 | 12 | @function pixeles-rem($pixeles){ 13 | // 32/16 = 2 * 1rem = 2rem 14 | $resultado: math.div($pixeles, 16) * 1rem; 15 | 16 | @return $resultado; 17 | } -------------------------------------------------------------------------------- /DW/1-basico/022.sass/resources/resources/code/sass/_reset.scss: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | box-sizing: border-box; 4 | } 5 | 6 | body { 7 | font-family:Arial, Helvetica, sans-serif; 8 | } -------------------------------------------------------------------------------- /DW/1-basico/022.sass/resources/resources/code/sass/style.scss: -------------------------------------------------------------------------------- 1 | @use 'navbar'; 2 | /* @use 'animaciones'; */ 3 | @use 'hero'; 4 | @use 'mixinsfunc'; 5 | 6 | h2 { 7 | background-color: slateblue; 8 | } 9 | -------------------------------------------------------------------------------- /DW/1-basico/022.sass/sass.txt: -------------------------------------------------------------------------------- 1 | ## 🔥 README.md 2 | Si te quedaste con ganas de ver más, te dejo estos enlaces con cursos gratuitos, probé el primero y me gustó y ahora mismo voy a hacer el segundo curso hecho por la gente de código facilito ✨😃✌ 3 | 4 | - [📌 Uno](https://youtu.be/kaSVabk-jbA) 5 | - [📌 Dos: Código Facilito](https://codigofacilito.com/videos/introduccion-a-sass) 6 | - [📌 Tres](https://www.youtube.com/watch?v=T6g5xTpuS0c&list=PLNHUeJiZHbgZ3HnKe0XtEH7AfQ_sIlYOY) 7 | 8 | > Estos son algunos apuntes que tomé del [primer curso gratuito](https://github.com/aleroses/Platzi/blob/master/DW/1-basico/22.sass/sass.md), espero te sean de utilidad! -------------------------------------------------------------------------------- /DW/1-basico/023.tailwind-2-y-3-basico/resources/imgs/svg/instagram.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/1-basico/023.tailwind-2-y-3-basico/resources/imgs/svg/instagram.svg -------------------------------------------------------------------------------- /DW/1-basico/023.tailwind-2-y-3-basico/resources/imgs/svg/moon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /DW/1-basico/023.tailwind-2-y-3-basico/resources/imgs/svg/twitter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/1-functions.js: -------------------------------------------------------------------------------- 1 | /* 2 | const name = "Juan David"; 3 | const lastname = "Castro Gallego"; 4 | const completeName = name + lastname; 5 | const nickname = "juandc"; 6 | 7 | console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + "."); 8 | */ 9 | 10 | 11 | function hola(name, lastname, nickname){ 12 | const completeName = name + " " + lastname; 13 | 14 | console.log("Mi nombre es " + completeName + ", pero prefiero que me digas " + nickname + "."); 15 | } 16 | 17 | hola("ale", "vel", "ghost"); -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/12-interactuar-usuarios.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Manipulación del DOM 8 | 9 | 10 |

Manipulación

11 | 12 | 13 | 14 | 15 |

16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/12-script.js: -------------------------------------------------------------------------------- 1 | const h1 = document.querySelector('h1'); 2 | const input1 = document.querySelector('#calculo1'); 3 | const input2 = document.querySelector('#calculo2'); 4 | const btn = document.querySelector('#btnCalcular'); 5 | const result = document.querySelector('#result'); 6 | 7 | function btnOnClick(){ 8 | const sumaInputs = input1.value + input2.value; 9 | result.innerText = "Resultado: " + sumaInputs; 10 | } -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/4-for-to-while.js: -------------------------------------------------------------------------------- 1 | /* 2 | for (let i = 0; i < 5; i++) { 3 | console.log("El valor de i es: " + i); 4 | } 5 | 6 | for (let i = 10; i >= 2; i--) { 7 | console.log("El valor de i es: " + i); 8 | } 9 | */ 10 | 11 | var i = 0; 12 | 13 | while (i >= 0 && i < 5){ 14 | console.log("El valor de i es: " + i); 15 | i++ 16 | } 17 | 18 | 19 | var i = 10; 20 | 21 | while (i <= 10 && i >= 2){ 22 | console.log("El valor de i es: " + i); 23 | i-- 24 | } -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/5-prompt.js: -------------------------------------------------------------------------------- 1 | var user = prompt("Cúanto es 2 + 2?? "); 2 | 3 | while (user != "4"){ 4 | user = prompt("Cúanto es 2 + 2?? "); 5 | } 6 | 7 | console.log("\nExcelente, es ", user); -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/6-array-function.js: -------------------------------------------------------------------------------- 1 | var frutas = ["Manzana", "Pera", "Uva"] 2 | 3 | 4 | function algo(lista){ 5 | console.log(lista[0]); 6 | } 7 | 8 | algo(frutas); 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/7-array-function-ciclo.js: -------------------------------------------------------------------------------- 1 | var frutas = ["Manzana", "Pera", "Uva"] 2 | 3 | for (i = 0; i < frutas.length; i++){ 4 | 5 | function algo(lista){ 6 | console.log(lista[i]); 7 | } 8 | 9 | algo(frutas); 10 | } 11 | 12 | 13 | /* Otra solución */ 14 | var frutas = ["Manzana", "Pera", "Uva"] 15 | 16 | function algo(lista){ 17 | for(i=0; i < frutas.length; i++){ 18 | console.log(lista[i]); 19 | } 20 | } 21 | 22 | algo(frutas); -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/8-object-function-ciclo.js: -------------------------------------------------------------------------------- 1 | var car = { 2 | brand: "Totoya", 3 | model: "Corolla", 4 | year: 2020, 5 | } 6 | 7 | 8 | 9 | /* EJEMPLO DE COMPAÑERO */ 10 | let myCar = { 11 | make: 'Ford', 12 | model: 'Mustang', 13 | year: 1969 14 | }; 15 | 16 | function readObject(object){ 17 | for (let key in object) { 18 | console.log(key, ":", object[key]); 19 | } 20 | } 21 | 22 | readObject(myCar); 23 | 24 | 25 | //PRACTICANDO 26 | 27 | let car = { 28 | brand: "Ford", 29 | model: "Mustang", 30 | year: 1969, 31 | } 32 | 33 | function readObject(object){ 34 | for (let key in object){ 35 | console.log(key, ":", object[key]); 36 | } 37 | } 38 | 39 | readObject(car); -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/8.1-object-to-array.js: -------------------------------------------------------------------------------- 1 | const car = { 2 | brand: "Totoya", 3 | model: "Corolla", 4 | year: 2020, 5 | } 6 | 7 | // Object.values(car) 8 | // const array = Object.values(car) 9 | 10 | function imprimirElementos(objeto){ 11 | 12 | const array = Object.values(objeto); 13 | 14 | for (let i = 0; i < array.length; i++){ 15 | console.log(array[i]); 16 | } 17 | } 18 | 19 | imprimirElementos(car); -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/Practica/12-interactuar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Manipulación del DOM 8 | 9 | 10 |

Titulo del Documento

11 | 12 | 13 | 14 |

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/002-js-practico/test-js/Practica/12.script.js: -------------------------------------------------------------------------------- 1 | const h1 = document.querySelector("h1"); 2 | const input1 = document.querySelector('#number1'); 3 | const input2 = document.querySelector('#number2'); 4 | let suma; 5 | const btnCalcular = document.querySelector('#btnCalcular'); 6 | const result = document.querySelector('#result'); 7 | 8 | function btnOnClick(){ 9 | suma = Number(input1.value) + parseInt(input2.value); 10 | result.innerText = "Resultado: " + suma; 11 | } 12 | 13 | // 📌 Para pasar los strings a números utilizar el atributo “+” antes del string para cambiar su valor. -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "curso-ecmascript", 3 | "version": "1.0.0", 4 | "description": "Parte del curso de EcmaScript", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [ 10 | "javascript", 11 | "ecmascript" 12 | ], 13 | "author": "Ale Vel ", 14 | "license": "MIT", 15 | "type": "module", 16 | "dependencies": { 17 | "node-fetch": "^3.3.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es10/00-flat-map.js: -------------------------------------------------------------------------------- 1 | // flat 2 | const array = [1,1,2,3,4, [1,3,5,6, [1,2,4]]]; 3 | console.log(array.flat(3)); 4 | 5 | // flatmap 6 | const array2 = [1,2,3,4,5]; 7 | console.log(array2.flatMap(v => [v, v * 2])); 8 | // 1, 1*2 = 2, 2, 2*2 = 4, etc 9 | 10 | 11 | /* const array2 = [1, 2, [3, 4, [5, 6]]]; 12 | const result2 = array2.flat() 13 | console.log(result2); */ 14 | 15 | /* const strings = ["Nunca pares", "de Aprender"] 16 | console.log(strings.map(string => string.split(" "))); 17 | // [ [ 'Nunca', 'pares' ], [ 'de', 'Aprender' ] ] 18 | console.log(strings.flatMap(string => string.split(" "))); 19 | // [ 'Nunca', 'pares', 'de', 'Aprender' ] */ 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es10/01-trimstart-trimend.js: -------------------------------------------------------------------------------- 1 | const hello = ' Hello World! '; 2 | console.log(hello.trimStart()); 3 | console.log(hello.trimEnd()); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es10/02-try-catch.js: -------------------------------------------------------------------------------- 1 | try { 2 | hello(); 3 | }catch (error) { 4 | console.log(error); 5 | } 6 | 7 | try { 8 | anotherFn(); 9 | } catch { 10 | console.log('Esto es un error'); 11 | } -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es10/03-fromentries.js: -------------------------------------------------------------------------------- 1 | const entries = new Map([["name", "oscar"], ["age", 34]]); 2 | console.log(entries); 3 | console.log(Object.fromEntries(entries)); 4 | 5 | 6 | 7 | // Otro ejemplo 8 | const arrayEntries = [ 9 | [ 'name', 'Andres' ], 10 | [ 'email', 'andres@correo.com' ], 11 | [ 'age', 23 ] 12 | ]; 13 | 14 | const usuario = Object.fromEntries(arrayEntries); 15 | 16 | console.log(usuario); 17 | 18 | // Otro ejemplo 19 | 20 | const object = { 21 | name: "ale", 22 | age: 21 23 | } 24 | const array = Object.entries(object); 25 | console.log(array); 26 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/00-optional-chaining.js: -------------------------------------------------------------------------------- 1 | const users = { 2 | gndx: { 3 | country: "MX" 4 | }, 5 | anna: { 6 | country: "CO" 7 | } 8 | }; 9 | 10 | console.log(users.gndx.country); 11 | // No existe 12 | console.log(users.anna.age); 13 | // Esto devuelve algo mas amigable 14 | console.log(users?.ale?.country); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/01-bigint.js: -------------------------------------------------------------------------------- 1 | const aBigNumber = 323428423842848n; 2 | const anotherBigNumber = BigInt(323428423842848); 3 | 4 | console.log(aBigNumber); 5 | console.log(typeof(aBigNumber)); 6 | 7 | console.log(anotherBigNumber); 8 | console.log(typeof(anotherBigNumber)); 9 | 10 | 11 | // Otro ejemplo 12 | const max = Number.MAX_SAFE_INTEGER 13 | const min = Number.MIN_SAFE_INTEGER 14 | 15 | console.log(max) // 9007199254740991 16 | console.log(min) // -9007199254740991 -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/02-nullish.js: -------------------------------------------------------------------------------- 1 | const anotherNumber = null; 2 | const validate = anotherNumber ?? 5; 3 | console.log(validate); 4 | 5 | 6 | // otro ejemplo 7 | const usuario1 = {} 8 | const nombre1 = usuario1.name ?? "Andres" 9 | 10 | const usuario2 = {name: "Juan"} 11 | const nombre2 = usuario2.name ?? "Andres" 12 | 13 | console.log(nombre1) // 'Andres' 14 | console.log(nombre2) // 'Juan' 15 | 16 | 17 | // comparación con or 18 | const id = 0; // 2 19 | 20 | const orId = id || "Sin id" 21 | const nullishId = id ?? "Sin id" 22 | 23 | console.log( orId ) // 'Sin id' 24 | console.log( nullishId ) // 0 -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/03-promise-allsettled.js: -------------------------------------------------------------------------------- 1 | const promise1 = new Promise((resolve, reject) => reject("Reject")); 2 | const promise2 = new Promise((resolve, reject) => resolve("Resolve")); 3 | const promise3 = new Promise((resolve, reject) => resolve("Resolve 02")); 4 | 5 | Promise.allSettled([promise1, promise2, promise3]) 6 | .then(response => console.log(response)); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/04-globalthis.js: -------------------------------------------------------------------------------- 1 | console.log(window); // navegador 2 | console.log(global); // node 3 | console.log(self); // webworker 4 | console.log(globalThis); 5 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/05-matchall.js: -------------------------------------------------------------------------------- 1 | const regex = /\b(Apple)+\b/g; 2 | 3 | const fruit = 'Apple, Banana, Kiwi, Apple, Orange, etc., etc., etc'; 4 | 5 | for (const match of fruit.matchAll(regex)){ 6 | console.log(match); 7 | }; -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/06-dynamic-import.js: -------------------------------------------------------------------------------- 1 | const button = document.getElementById('btn'); 2 | 3 | button.addEventListener('click', async function(){ 4 | const module = await import('./06-module.js'); 5 | console.log(module); 6 | module.hello(); 7 | }); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/06-index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Dynamic Import 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es11/06-module.js: -------------------------------------------------------------------------------- 1 | export function hello() { 2 | console.log('Hola mundo!'); 3 | } -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es12/00-numeric-separator.js: -------------------------------------------------------------------------------- 1 | const value = 100_000_000_000_000; 2 | console.log(value); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es12/01-replaceall.js: -------------------------------------------------------------------------------- 1 | const string = "JavaScript es maravilloso, con JavaScript puedo crear el futuro de la web."; 2 | 3 | const replacedString = string.replace('JavaScript', "TypeScript"); 4 | 5 | console.log(replacedString); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es12/02-promise-any.js: -------------------------------------------------------------------------------- 1 | const promise1 = new Promise((resolve, reject) => reject("Reject")); 2 | const promise2 = new Promise((resolve, reject) => resolve("Resolve")); 3 | const promise3 = new Promise((resolve, reject) => resolve("Resolve 02")); 4 | 5 | Promise.any([promise1, promise2, promise3]) 6 | .then(response => console.log(response)); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es12/03-private.js: -------------------------------------------------------------------------------- 1 | class user { 2 | // Constructor 3 | constructor(name, age) { 4 | this.name = name; 5 | this.age = age; 6 | } 7 | // Metodos 8 | #speak() { 9 | return 'Hello'; 10 | } 11 | greeting() { 12 | return `${this.speak()} ${this.name}`; 13 | } 14 | 15 | get #uAge() { 16 | return this.age; 17 | } 18 | set #uAge(n) { 19 | this.age = n; 20 | } 21 | } 22 | 23 | const dev = new user('David', 15); 24 | console.log(dev.uAge); 25 | console.log(dev.uAge = 20); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es13/00-at.js: -------------------------------------------------------------------------------- 1 | const array = ["one", "two", "three", "four", "five", "six"]; 2 | 3 | console.log(array[array.length -1]); 4 | 5 | console.log(array.at(-1)); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es13/01-products.js: -------------------------------------------------------------------------------- 1 | import fetch from "node-fetch"; 2 | 3 | const response = await fetch('https://api.escuelajs.co/api/v1/products'); 4 | const products = await response.json(); 5 | 6 | export { products }; 7 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es13/01-top-level-await.js: -------------------------------------------------------------------------------- 1 | import { products } from "./01-products.js"; 2 | 3 | console.log(products); 4 | console.log('Hey!!'); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/01-arrow-function.js: -------------------------------------------------------------------------------- 1 | function square(num) { 2 | return num * num; 3 | } 4 | 5 | /* Arrow funtion */ 6 | const square = (num) => { 7 | return num + num; 8 | } 9 | 10 | const square = num => num * num; -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/03-strings.js: -------------------------------------------------------------------------------- 1 | let hello = 'Hello'; 2 | let world = 'World'; 3 | let epicPhrase = hello + ' ' + world + '!'; 4 | console.log(epicPhrase); 5 | 6 | // Template literals 7 | let epicPhrase2 = `${hello} ${world}!`; 8 | console.log(epicPhrase); 9 | 10 | // Multi-line strings 11 | let lorem = 'Esto es un string \n ' + 'Esta es la segunda línea!'; 12 | let lorem2 = `Esta es una frase epica primera línea 13 | y esta es la segunda línea 14 | Tercera línea`; 15 | console.log(lorem); 16 | console.log(lorem2); 17 | 18 | 19 | const mensaje = `Línea 1 20 | línea 2` 21 | 22 | console.log(mensaje) -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/04-default-params.js: -------------------------------------------------------------------------------- 1 | function newUser(name, age, country){ 2 | var name = name || 'Oscar'; 3 | var age = age || 34; 4 | var country = country || 'MX'; 5 | console.log(name, age, country); 6 | } 7 | 8 | newUser(); 9 | newUser('David', 15, 'CO'); 10 | 11 | /* Metodo dos */ 12 | function newAdmin(name = 'Oscar', age = 32, country = 'CL') { 13 | console.log(name, age, country); 14 | } 15 | 16 | newAdmin(); 17 | newAdmin('Ana', 28, 'PE'); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/05-object-literals.js: -------------------------------------------------------------------------------- 1 | // enahced object literals 2 | 3 | /* function newUser(user, age, country, uId) { 4 | return { 5 | user: user, 6 | age: age, 7 | country: country, 8 | id: uId 9 | } 10 | } 11 | 12 | console.log(newUser('ghost', 16, 'PE', 1)); */ 13 | 14 | function newUser(user, age, country, uId) { 15 | return { 16 | user, 17 | age, 18 | country, 19 | uId 20 | } 21 | } 22 | 23 | console.log(newUser('ghost', 16, 'PE', 1)); 24 | 25 | 26 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/08-module.js: -------------------------------------------------------------------------------- 1 | import saludo from "./module.js"; 2 | 3 | saludo(); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/09-challenge.js: -------------------------------------------------------------------------------- 1 | function solution(json1, json2) { 2 | var json1 = json1 || {name: 'Mr. Michi', food: 'Pescado'} 3 | var json2 = json2 || {age: 12, color: 'Blanco'} 4 | var data = {...json1, ...json2} 5 | 6 | console.log(data); 7 | } 8 | 9 | solution({name: 'Mr. Bigotes', food: 'Pollito'}/* , { age: 12, color: 'Blanco'} */); 10 | 11 | // Solución: 12 | export function solution( 13 | json1 = { 14 | name: "Mr. Michi", 15 | food: "Pescado", 16 | }, 17 | json2 = { 18 | age: 12, 19 | color: "Blanco", 20 | } 21 | ) { 22 | /* return {...json1, ...json2}; */ 23 | console.log({...json1, ...json2}); 24 | } 25 | 26 | solution({ 27 | name: "Bigotes", 28 | food: "Pollito" 29 | }) -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/09-generator.js: -------------------------------------------------------------------------------- 1 | function* iterate(array){ 2 | for(let value of array){ 3 | yield value; 4 | } 5 | } 6 | 7 | const it = iterate(['Oscar', 'David', 'Ana', 'Ulises', 'Jennifer']); 8 | 9 | console.log(it.next().value); 10 | console.log(it.next().value); 11 | console.log(it.next().value); 12 | console.log(it.next().value); 13 | console.log(it.next().value); 14 | console.log(it.next().value); 15 | console.log(it.next().value); 16 | console.log(it.next().value); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/10-set-add.js: -------------------------------------------------------------------------------- 1 | const list = new Set(); 2 | 3 | list.add('item 01'); 4 | list.add('item 02').add('item 03'); 5 | 6 | console.log(list); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/14-challenge-api.js: -------------------------------------------------------------------------------- 1 | export async function getData() { 2 | return new Promise((resolve) => { 3 | setTimeout(() => { 4 | resolve([{ 5 | movie: "El despertar de los michis", 6 | year: 2021, 7 | protagonist: "Mr. Michi" 8 | }, { 9 | movie: "101 Michis", 10 | year: 2019, 11 | protagonist: "Tommy Michiguire" 12 | }]); 13 | }, 1000); 14 | }); 15 | } -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/14-challenge-exercise.js: -------------------------------------------------------------------------------- 1 | import { getData } from "./14-challenge-api.js"; 2 | 3 | /* export */ function solution() { 4 | // Tu código aquí 👈 5 | return getData() 6 | .then(respuesta => console.log(respuesta)) 7 | .catch(error => console.log(error)); 8 | } 9 | 10 | solution(); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es6/module.js: -------------------------------------------------------------------------------- 1 | const saludo = () => { 2 | console.log('Hello!'); 3 | } 4 | 5 | export default saludo; -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es7/00-exponential.js: -------------------------------------------------------------------------------- 1 | const data = 3 ** 4; 2 | console.log(data); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es7/01-array-includes.js: -------------------------------------------------------------------------------- 1 | let numbers = [1, 3, 4, 6, 7, 8,]; 2 | 3 | console.log(numbers.includes(4)); 4 | 5 | const list = ['oscar', 'david', 'anna']; 6 | 7 | // Las mayusculas importan: Oscar 8 | console.log(list.includes('oscar')); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es8/00-object-entries.js: -------------------------------------------------------------------------------- 1 | const countries = { MX: 'Mexico', CO: 'Colombia', CL: 'Chile', PE: 'Peru' }; 2 | 3 | console.log(Object.entries(countries)); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es8/01-object-values.js: -------------------------------------------------------------------------------- 1 | const countries = { MX: 'Mexico', CO: 'Colombia', CL: 'Chile', PE: 'Peru'}; 2 | console.log(Object.values(countries)); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es8/03-string-padding.js: -------------------------------------------------------------------------------- 1 | const string = 'Hello'; 2 | 3 | console.log(string.padStart(7, '_')); 4 | console.log(string.padEnd(7, '_')); 5 | 6 | 7 | console.log('abc'.padStart(10, '_')); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es8/04-trailing-commas.js: -------------------------------------------------------------------------------- 1 | const ages = [24, 34, 25, 24, , , , , 45]; 2 | 3 | console.log(ages); 4 | console.log(ages.length); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es9/00-regex.js: -------------------------------------------------------------------------------- 1 | const regex = /(\d{4})-(\d{2})-(\d{2})/; 2 | const matchers = regex.exec('2022-01-01'); 3 | console.table(matchers); 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es9/01-spread.js: -------------------------------------------------------------------------------- 1 | const user = { username: 'gndx', age: 34, country: 'CO'}; 2 | const { username, ...values } = user; 3 | console.log(username); 4 | console.log(values); 5 | -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es9/02-finally.js: -------------------------------------------------------------------------------- 1 | const promesas = () => { 2 | return new Promise((resolve, reject) => { 3 | if(false){ 4 | resolve("This was resolved"); 5 | }else { 6 | reject("This wasn't resolved"); 7 | } 8 | }) 9 | } 10 | 11 | promesas() 12 | .then(respuesta => console.log(respuesta + ', then...')) 13 | .catch(error => console.log(error + ', catch...' )) 14 | .finally(() => console.log('Finally')); -------------------------------------------------------------------------------- /DW/2-intermedio/003-ECMAScript/resources/code/src/es9/03-async.js: -------------------------------------------------------------------------------- 1 | async function* anotherGenerator() { 2 | yield await Promise.resolve(1); 3 | yield await Promise.resolve(2); 4 | yield await Promise.resolve(3); 5 | } 6 | 7 | const other = anotherGenerator(); 8 | other.next().then(response => console.log(response.value)); 9 | other.next().then(response => console.log(response.value)); 10 | other.next().then(response => console.log(response.value)); 11 | console.log('Hello!'); 12 | 13 | 14 | // otro ejemplo 15 | async function arrayOfNames(array){ 16 | for await (let value of array){ 17 | console.log(value); 18 | } 19 | } 20 | 21 | const names = arrayOfNames(['Oscar', 'David', 'Anna']); 22 | console.log('After'); -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/20.promedio-ponderado/calculos.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/20.promedio-ponderado/calculos.xlsx -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/21.clases-metodos-estaticos/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Salarios 8 | 9 | 10 |

Calculate Salaries

11 |

Open the console: Control + Shift + I

12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/25.reestructurando-informacion/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Salarios 8 | 9 | 10 |

Calculate Salaries

11 |

Open the console: Control + Shift + I

12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/8.Coupon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Coupon 8 | 9 | 10 |

Get a discount with your coupon 🔥😃

11 | 12 |

This item is $12, 345.00 🎃

13 | 14 |
15 |
16 | 17 | 18 |

19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/math.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |

Revisa la consola 😄👉

11 |

Usando Control + Shift + I

12 | 13 | 14 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/practice/10.find-id/main.js: -------------------------------------------------------------------------------- 1 | const users = []; 2 | users.push({ id: 123, name: 'Juanito Alcachofa' }); 3 | users.push({ id: 456, name: 'Juanita Alcaparra' }); 4 | 5 | function solution(array, id){ 6 | const output = array.find(item => item.id == id); 7 | 8 | console.log(output ? output.name : false); 9 | return output ? output.name : false; 10 | } 11 | 12 | solution(users, 456); 13 | solution(users, 999); 14 | 15 | 16 | 17 | 18 | /* 19 | Juanita Alcaparra 20 | false 21 | */ 22 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/practice/12.promedio/average.js: -------------------------------------------------------------------------------- 1 | // "Promedio" se traduce al inglés como "average" o "mean" 2 | 3 | const numbers = [1, 2, 3, 4]; 4 | const average = (numbers.reduce((a,b) => a + b)) / numbers.length; 5 | 6 | console.log(average); 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | /* 15 | - promedio or mediana aritmética +++ / lenght 16 | - mediana 17 | - 450, 500, 600 rpt: 500 18 | - 100, 200, 300, 400 rpt: 200+300/2 19 | - moda: valor que se repite mas veces (cualquier dato) 20 | */ -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/practice/12.promedio/reduce/main.js: -------------------------------------------------------------------------------- 1 | const numbers = [1, 2, 3, 4]; 2 | 3 | const rta = numbers.reduce((sum, element) => sum + element, 0); 4 | 5 | console.log(rta); 6 | 7 | // otro ejemplo 8 | const ventasPrimerTrimestre = [ 10, 20, 30 ]; 9 | 10 | function getMedia(array){ 11 | const initialValue = 0; 12 | const sumWithInitial = array.reduce( 13 | (previousValue, currentValue) => previousValue + currentValue, initialValue 14 | ); 15 | 16 | return sumWithInitial / array.length; 17 | }; 18 | 19 | getMedia(ventasPrimerTrimestre); -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/practice/14.mediana/practice-one/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Calculate Median 8 | 9 | 10 |

Revisa la consola

11 |

control + shift + i

12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/practice/14.mediana/practice-two/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | - promedio or mediana aritmética +++ / lenght 3 | - 1, 2, 3 rpt: 6/3 4 | - mediana 5 | - 450, 500, 600 rpt: 500 6 | - 100, 200, 300, 400 rpt: 200+300/2 7 | - moda: valor que se repite mas veces (cualquier dato) 8 | */ 9 | 10 | const array = [5,2,1,4,3]; 11 | const what_is_it = array.length % 2 == 0; 12 | // true is par (even) and false is impar (odd) 13 | 14 | const sorted_array = array.sort(); 15 | 16 | const mediana = what_is_it 17 | ? (sorted_array[((sorted_array.length / 2) - 1)] + sorted_array[(sorted_array.length / 2)]) / 2 18 | : sorted_array[Math.floor(sorted_array.length / 2)]; 19 | 20 | console.log(sorted_array, 'is', mediana); 21 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/practice/21.salario/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Salarios 8 | 9 | 10 |

Calculate Salaries

11 |

Open the console: Control + Shift + I

12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/004.taller-js-mate-y-estadistica/resources/codigo/practice/8.coupon/practice-two/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Discount calculation 8 | 9 | 10 |

Discount calculation

11 |

The price of the product is: $250.00

12 |
13 | 14 |

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/closure/10.playground.js: -------------------------------------------------------------------------------- 1 | function data() { 2 | let pet = []; 3 | 4 | function add(new_pet) { 5 | new_pet ? pet.push(new_pet) : console.log(pet); 6 | } 7 | 8 | return add; 9 | } 10 | 11 | const my_pet = data(); 12 | my_pet("cat"); 13 | my_pet({ pet: "dog" }); 14 | my_pet(["fish", "pig"]); 15 | my_pet(); 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/closure/8.playground.js: -------------------------------------------------------------------------------- 1 | function add(first_number) { 2 | function calculate(second_number) { 3 | if (second_number) { 4 | return first_number + second_number; 5 | } else { 6 | return first_number; 7 | } 8 | } 9 | 10 | return calculate; 11 | } 12 | 13 | const result = add(2)(3); 14 | const result_two = add(90)(); 15 | 16 | console.log(result, result_two); 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/closure/9.1.practice.js: -------------------------------------------------------------------------------- 1 | /* function moneyBox(coins) { 2 | let saveCoins = 0; 3 | saveCoins += coins; 4 | 5 | console.log(`MoneyBox: ${saveCoins}`); 6 | } 7 | 8 | moneyBox(5); 9 | moneyBox(5); 10 | moneyBox(5); */ 11 | 12 | function moneyBox() { 13 | let saveCoins = 0; 14 | 15 | function countCoins(coins) { 16 | saveCoins += coins; 17 | 18 | console.log(`MoneyBox: ${saveCoins}`); 19 | } 20 | 21 | return countCoins; 22 | } 23 | 24 | const myMoneyBox = moneyBox(); 25 | myMoneyBox(5); 26 | myMoneyBox(5); 27 | myMoneyBox(5); 28 | 29 | const moneyBoxAle = moneyBox(); 30 | moneyBoxAle(10); 31 | moneyBoxAle(20); 32 | moneyBoxAle(30); 33 | 34 | myMoneyBox(10); 35 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/closure/9.practice.js: -------------------------------------------------------------------------------- 1 | function greeting() { 2 | let username = "Ale"; 3 | 4 | function displayUsername() { 5 | return `Hello ${username}`; 6 | } 7 | 8 | return displayUsername; 9 | } 10 | 11 | const message = greeting(); 12 | console.log(message); 13 | console.log(message()); 14 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/debug/main.js: -------------------------------------------------------------------------------- 1 | /* var a = "Hello"; 2 | 3 | function hello() { 4 | let b = "Hello world"; 5 | const c = "Hello world"; 6 | 7 | debugger; 8 | } 9 | 10 | hello(); */ 11 | 12 | const fruits = () => { 13 | if (true) { 14 | var fruit1 = "apple"; 15 | const fruit2 = "banana"; 16 | let fruit3 = "kiwi"; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/hoisting/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/006.closures_scope-en-js/resources/code/src/hoisting/main.js -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/scope/1.global.js: -------------------------------------------------------------------------------- 1 | // Variables 2 | 3 | // Declarando 4 | var a; 5 | // Declarar y asignar o inicializar 6 | var b = "b"; 7 | 8 | // Redeclarar 9 | var a = "aa"; 10 | // Asignar o inicializar 11 | a = "aaaaa"; 12 | // Reasignar o Reinicializar 13 | b = "bb"; 14 | 15 | // Global Scope 16 | var fruit = "Apple"; 17 | 18 | function bestFruit() { 19 | console.log(fruit); 20 | } 21 | 22 | bestFruit(); 23 | 24 | function countries() { 25 | var country = "Colombia"; // Global 26 | console.log(country); 27 | } 28 | 29 | countries(); 30 | console.log(country); 31 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/scope/2.function-scope.js: -------------------------------------------------------------------------------- 1 | function greeting() { 2 | let userName = "Anna"; 3 | console.log(userName); 4 | 5 | if (userName === "Anna") { 6 | console.log(`Hello ${userName}!`); 7 | } 8 | } 9 | 10 | greeting(); 11 | // No tiene alcance 👀👇 12 | // console.log(userName); 13 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/scope/3.block-scope.js: -------------------------------------------------------------------------------- 1 | function fruits() { 2 | if (true) { 3 | var fruitOne = "Apple"; 4 | let fruitTwo = "Kiwi"; 5 | const fruitThree = "Banana"; 6 | } 7 | 8 | console.log(fruitOne); 9 | console.log(fruitTwo); 10 | console.log(fruitThree); 11 | } 12 | 13 | fruits(); 14 | 15 | function example() { 16 | for (let i = 0; i < 10; i++) { 17 | setTimeout(function () { 18 | console.log(i); 19 | }, 1000); 20 | } 21 | } 22 | 23 | example(); 24 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/src/scope/6.strict-mode.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | pi = 2.1416; 3 | console.log(pi); 4 | 5 | function myFunction() { 6 | "use strict"; 7 | 8 | return (pi = 3.1416); 9 | } 10 | 11 | console.log(myFunction()); 12 | -------------------------------------------------------------------------------- /DW/2-intermedio/006.closures_scope-en-js/resources/code/test/7.lexical.js: -------------------------------------------------------------------------------- 1 | /* let number = 1; 2 | 3 | function increase(i) { 4 | console.log(number); 5 | number += i; 6 | } 7 | 8 | increase(1); 9 | increase(1); 10 | increase(1); 11 | increase(1); 12 | increase(1); */ 13 | 14 | function principal(i) { 15 | let number = 1; 16 | 17 | function increase() { 18 | console.log(number); 19 | number += i; 20 | } 21 | 22 | return increase; 23 | } 24 | 25 | const closure = principal(1); 26 | closure(); 27 | closure(); 28 | closure(); 29 | closure(); 30 | closure(); 31 | closure(); 32 | -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/pilares.md: -------------------------------------------------------------------------------- 1 | # Paradigma: 2 | Es la teoría que suministra las bases y el modelo para resolver problemas. 3 | 4 | # Abstracción: 5 | Es la capacidad de representar objetos del mundo real en términos de sus características y comportamientos esenciales, ocultando los detalles complejos de su implementación. 6 | 7 | # Encapsulamiento: 8 | Es la capacidad de ocultar la complejidad interna de los objetos, protegiendo sus propiedades (atributos) y métodos para que no sean accesibles desde fuera de la clase 9 | 10 | Polimorfismo: 11 | 12 | Herencia: -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/resources/code/12.getters-setters.js: -------------------------------------------------------------------------------- 1 | class Course { 2 | constructor({ name, classes = [] }) { 3 | this._name = name; 4 | this.classes = classes; 5 | } 6 | 7 | get name() { 8 | return this._name; 9 | } 10 | 11 | set name(new_name) { 12 | if (new_name === "Bad") { 13 | console.log("Incorrect"); 14 | } else { 15 | this._name = new_name; 16 | } 17 | } 18 | } 19 | 20 | const course_one = new Course({ 21 | name: "Course 01", 22 | classes: [{ topic: "Class 01" }], 23 | }); 24 | 25 | console.log("Message 01", course_one); 26 | console.log("Message 02", course_one.name); 27 | 28 | course_one.name = "Bad"; 29 | course_one._name = "Bad"; 30 | console.log("Message 03", course_one._name); 31 | -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/resources/code/13.modulos.mjs: -------------------------------------------------------------------------------- 1 | function play_video(id) { 2 | const secret_url = 3 | "https://platzisecret.com/" + id; 4 | console.log("Playing from url " + secret_url); 5 | } 6 | function pause_video(id) { 7 | const secret_url = 8 | "https://platzisecret.com/" + id; 9 | console.log("Paused from url " + secret_url); 10 | } 11 | 12 | class PlatziClass { 13 | constructor({ name, videoID }) { 14 | this.name = name; 15 | this.videoID = videoID; 16 | } 17 | 18 | play() { 19 | play_video(this.videoID); 20 | } 21 | pause() { 22 | pause_video(this.videoID); 23 | } 24 | } 25 | 26 | export { PlatziClass }; 27 | -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/resources/code/19.Comments.js: -------------------------------------------------------------------------------- 1 | export class Comment { 2 | constructor({ 3 | content, 4 | studentName, 5 | studentRole = "estudiante", 6 | }) { 7 | this.content = content; 8 | this.studentName = studentName; 9 | this.studentRole = studentRole; 10 | this.likes = 0; 11 | } 12 | 13 | publicar() { 14 | const comentario = { 15 | studentName: this.studentName + " (" + this.studentRole + ")", 16 | likes: this.likes + " likes", 17 | content: this.content 18 | } 19 | return comentario 20 | } 21 | } -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/resources/code/19.exercise.js: -------------------------------------------------------------------------------- 1 | import { Comment } from "./19.Comments.js"; 2 | import { Student } from "./19.Student.js"; 3 | 4 | export class TeacherStudent extends Student { 5 | constructor(props, skills = []) { 6 | super(props); 7 | this.skills = skills; 8 | } 9 | 10 | publicarComentario(commentContent) { 11 | const comment = new Comment({ 12 | content: commentContent, 13 | studentName: this.name, 14 | studentRole: `profesor de ${this.skills.join()}` 15 | }); 16 | return comment.publicar(); 17 | } 18 | } -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/resources/code/practice/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/resources/code/test/12.getters-setters.js: -------------------------------------------------------------------------------- 1 | class Course { 2 | constructor({ name, classes = [] }) { 3 | this._name = name; 4 | this.classes = classes; 5 | } 6 | 7 | get name() { 8 | return this._name; 9 | } 10 | 11 | set name(new_name) { 12 | if (new_name === "Bad") { 13 | console.log("Incorrect"); 14 | } else { 15 | this._name = new_name; 16 | } 17 | } 18 | } 19 | 20 | const course_one = new Course({ 21 | name: "Course 01", 22 | classes: [{ topic: "Class 01" }], 23 | }); 24 | 25 | console.log("Message 01", course_one); 26 | console.log("Message 02", course_one.name); 27 | 28 | course_one.name = "Bad"; 29 | course_one._name = "Bad"; 30 | console.log("Message 03", course_one._name); 31 | -------------------------------------------------------------------------------- /DW/2-intermedio/007.poo-js/resources/code/test/19.Comment.mjs: -------------------------------------------------------------------------------- 1 | class Comment { 2 | constructor({ 3 | content, 4 | name_of_commenter, 5 | commenter_rol = "student", 6 | }) { 7 | this.content = content; 8 | this.name_of_commenter = name_of_commenter; 9 | this.commenter_rol = commenter_rol; 10 | this.likes = 0; 11 | } 12 | 13 | publish() { 14 | const comment = { 15 | name_of_commenter: `${this.name_of_commenter} (${this.commenter_rol})`, 16 | likes: `${this.likes} likes`, 17 | content: this.content, 18 | }; 19 | 20 | return comment; 21 | } 22 | } 23 | 24 | export { Comment }; 25 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/10.data.mjs: -------------------------------------------------------------------------------- 1 | const student = { 2 | name: "Ale Roses", 3 | approvedCourses: ["Course 1", "Course 2"], 4 | caracteristicas: { 5 | age: 22, 6 | colorCabello: "Black", 7 | gustos: { 8 | musica: ["rock", "punk", "metal"], 9 | peliculas: ["history", "horror", "comedy"], 10 | }, 11 | }, 12 | 13 | addCourse(newCourse) { 14 | console.log("This", this); 15 | console.log( 16 | "This.approvedCourses", 17 | this.approvedCourses 18 | ); 19 | 20 | this.approvedCourses.push(newCourse); 21 | }, 22 | }; 23 | 24 | export { student }; 25 | 26 | 27 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/11.validation.mjs: -------------------------------------------------------------------------------- 1 | function is_object(subject) { 2 | return typeof subject === "object"; 3 | } 4 | 5 | function is_array(subject) { 6 | return Array.isArray(subject); 7 | } 8 | export { is_object, is_array }; 9 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/5.memory.js: -------------------------------------------------------------------------------- 1 | const ale = { 2 | age: 18, 3 | email: "aleroses@mail.com", 4 | }; 5 | 6 | const nath = ale; 7 | nath.email = "nath@mail.com"; 8 | nath.age = 22; 9 | 10 | console.log({ ale, nath }); 11 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/7.JSON.parse-JSON.stringify.js: -------------------------------------------------------------------------------- 1 | const object_one = { 2 | a: "one", 3 | b: "two", 4 | c: { 5 | d: "three", 6 | e: "four", 7 | }, 8 | 9 | edit() { 10 | this.a = "new valor" 11 | } 12 | }; 13 | 14 | const text_object = JSON.stringify(object_one); 15 | const object_two = JSON.parse(text_object); 16 | 17 | object_one.a = "AAA"; 18 | object_one.c.d = "DDD"; 19 | 20 | object_two.b = "BBB"; 21 | object_two.c.e = "EEE"; 22 | 23 | console.log({ object_one, object_two }); 24 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | Course POO 9 | 10 | 11 |

Intermediate POO

12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/test/deep_copy/data.mjs: -------------------------------------------------------------------------------- 1 | const object_one = { 2 | a: "one", 3 | b: "two", 4 | c: { 5 | d: "three", 6 | e: "four", 7 | }, 8 | 9 | edit() { 10 | this.a = "New valor A!!!"; 11 | }, 12 | }; 13 | 14 | const array_two = [ 15 | "one", 16 | "two", 17 | [ 18 | "three", 19 | "four", 20 | ["five", "six", "seven", "eight"], 21 | ], 22 | ]; 23 | 24 | const other_three = "This is a text!!!"; 25 | 26 | export { object_one, array_two, other_three }; 27 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/test/deep_copy/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | Document 9 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/test/deep_copy/validation.mjs: -------------------------------------------------------------------------------- 1 | function is_object(subject) { 2 | return typeof subject === "object"; 3 | } 4 | 5 | function is_array(subject) { 6 | return Array.isArray(subject); 7 | } 8 | export { is_object, is_array }; 9 | -------------------------------------------------------------------------------- /DW/2-intermedio/008.poo-js-intermedio/resources/code/x.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/008.poo-js-intermedio/resources/code/x.js -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/npm-init/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm-init", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "node": "node src/index.js && node src/index.js" 9 | }, 10 | "keywords": [ 11 | "javascript", 12 | "angular", 13 | "node" 14 | ], 15 | "author": "ale roses ", 16 | "license": "MIT", 17 | "optionalDependencies": { 18 | "eslint": "^8.42.0" 19 | }, 20 | "dependencies": { 21 | "howler": "^2.2.3", 22 | "json-server": "^0.17.3", 23 | "moment": "^2.29.4", 24 | "react": "^18.2.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/npm-init/src/index.js: -------------------------------------------------------------------------------- 1 | console.log('Hi world!!!'); -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-base/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-env", 4 | "@babel/preset-react" 5 | ], 6 | "plugins": [ 7 | "@babel/plugin-transform-runtime", 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-base/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "semi": true, 4 | "singleQuote": true 5 | } -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-base/README.md: -------------------------------------------------------------------------------- 1 | # react-base 2 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-base/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React Base 6 | 7 | 8 |
9 | 10 | 11 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-base/src/components/App.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import '../styles/components/App.styl'; 3 | 4 | const App = () =>

Hello React!

; 5 | 6 | export default App; 7 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-base/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './components/App'; 4 | 5 | ReactDOM.render(, document.getElementById('app')); 6 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-base/src/styles/components/App.styl: -------------------------------------------------------------------------------- 1 | body 2 | background-color blue -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/public/favicon.ico -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/src/App.js: -------------------------------------------------------------------------------- 1 | import logo from './logo.svg'; 2 | import './App.css'; 3 | 4 | function App() { 5 | return ( 6 |
7 |
8 | logo 9 |

10 | Edit src/App.js and save to reload. 11 |

12 | 18 | Learn React 19 | 20 |
21 |
22 | ); 23 | } 24 | 25 | export default App; 26 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | const root = ReactDOM.createRoot(document.getElementById('root')); 8 | root.render( 9 | 10 | 11 | 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /DW/2-intermedio/009.npm-paquetes-dependencias/resources/code/npm/react-npm/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/README.md: -------------------------------------------------------------------------------- 1 | # curso-manipulacion-de-arrays -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-arrays", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/platzi/curso-manipulacion-de-arrays.git" 12 | }, 13 | "keywords": [], 14 | "author": "", 15 | "license": "ISC", 16 | "bugs": { 17 | "url": "https://github.com/platzi/curso-manipulacion-de-arrays/issues" 18 | }, 19 | "homepage": "https://github.com/platzi/curso-manipulacion-de-arrays#readme", 20 | "dependencies": { 21 | "date-fns": "^2.30.0", 22 | "http-server": "^14.1.1" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/playground/12.reduce.js: -------------------------------------------------------------------------------- 1 | function calc_sum(array){ 2 | console.log(array.reduce((sum, item) => sum + item, 0)); 3 | } 4 | 5 | calc_sum([1, 1, 1]); 6 | calc_sum([2, 4, 8]); 7 | calc_sum([]); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/playground/14.some.js: -------------------------------------------------------------------------------- 1 | function check_array(numbers){ 2 | return numbers.some(number => number % 2 === 0) 3 | } 4 | 5 | check_array([1, 3, 5, 7, 10, 11]); 6 | check_array([1, 3, 5]); 7 | check_array([]); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/playground/16.every.js: -------------------------------------------------------------------------------- 1 | // Evaluar si todos son pares 2 | 3 | function check_array(array) { 4 | return array.length > 0 5 | ? array.every(index => index % 2 === 0) 6 | : false; 7 | } 8 | 9 | check_array([2, 4, 6, 8, 10]); 10 | check_array([1, 3, 5, 7, 10, 11]); 11 | check_array([1, 3, 5]); 12 | check_array([]); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/playground/19.include.js: -------------------------------------------------------------------------------- 1 | // Retornar un array solo con las palabras que cumplan con la condición 2 | 3 | function filter_by_term(array, term) { 4 | return array.filter(x => x.includes(term)); 5 | } 6 | 7 | filter_by_term(["ana", "santi", "nico", "anastasia"], "ana"); 8 | filter_by_term(["ana", "santi", "nico", "anastasia"], "xyz"); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/playground/21.join.js: -------------------------------------------------------------------------------- 1 | // Unir con -- y volver a minusculas 2 | function parse_to_url(title) { 3 | return title.split(' ').join('-').toLowerCase() 4 | } 5 | 6 | parse_to_url("La forma de correr Python"); 7 | parse_to_url("La API para nunca parar de aprender"); 8 | parse_to_url("Curso de arrays"); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/playground/5.map.js: -------------------------------------------------------------------------------- 1 | const array_one = [2, 4, 5, 6, 8]; 2 | const array_two = [1, 1, -2, -3]; 3 | 4 | function multiply_elements(array){ 5 | console.log(array.map(n => n * 2)); 6 | } 7 | 8 | multiply_elements(array_one); 9 | multiply_elements(array_two) -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/playground/9-filter.js: -------------------------------------------------------------------------------- 1 | // Obtener las que tienen 4 o mas letras 2 | 3 | // Metodo 01 4 | /* const words = ['amor', 'sol', 'piedra', 'día']; 5 | const new_words = words.filter(word => word.length >= 4); 6 | 7 | console.log({words, new_words}); */ 8 | 9 | 10 | // Metodo 02 11 | const words = ['amor', 'sol', 'piedra', 'día']; 12 | 13 | function filter_by_length(array){ 14 | return array.filter(word => word.length >= 4) 15 | } 16 | 17 | filter_by_length(words); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/server/01-for-each.js: -------------------------------------------------------------------------------- 1 | const letters = ['a', 'b', 'c']; 2 | 3 | for (let i = 0; i < letters.length; i++) { 4 | const element = letters[i]; 5 | console.log(element); 6 | } 7 | 8 | letters.forEach((item, index) => console.log(item, index)); 9 | 10 | -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/server/02-map.js: -------------------------------------------------------------------------------- 1 | const letters = ['a', 'b', 'c']; 2 | 3 | const new_letters = []; 4 | for (let i = 0; i < letters.length; i++) { 5 | const element = letters[i]; 6 | new_letters.push(element + element) 7 | } 8 | 9 | console.log(letters); 10 | console.log(new_letters); 11 | 12 | const new_letters_one = letters.map(item => item + item) 13 | console.log(new_letters_one); 14 | -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/server/05-reduce.js: -------------------------------------------------------------------------------- 1 | const totals = [1,2,3,4]; 2 | 3 | const rpta = totals.reduce((a,b) => (a + b),0); 4 | console.log(rpta); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/server/09-every.js: -------------------------------------------------------------------------------- 1 | const numbers = [1, 30, 49, 29, 10, 13]; 2 | 3 | const rpta = numbers.every(item => item <= 40); 4 | console.log(rpta); 5 | 6 | // Reto: todos deben ser menores de 15 7 | 8 | const team = [ 9 | { 10 | name: "Nicolas", 11 | age: 12, 12 | }, 13 | { 14 | name: "Andrea", 15 | age: 8, 16 | }, 17 | { 18 | name: "Zulema", 19 | age: 2, 20 | }, 21 | { 22 | name: "Santiago", 23 | age: 18, 24 | }, 25 | ]; 26 | 27 | const result = team.every(item => item.age < 15) 28 | console.log(result); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/server/11-includes.js: -------------------------------------------------------------------------------- 1 | const pets = ['cat', 'dog', 'bat']; 2 | 3 | const result = pets.includes('dog') 4 | console.log(result); -------------------------------------------------------------------------------- /DW/2-intermedio/010.arrays-en-js/resource/code/curso-manipulacion-de-arrays/server/12-join-split.js: -------------------------------------------------------------------------------- 1 | // join() 2 | const elements = ["Fire", "Air", "Water"]; 3 | 4 | const result = elements.join(' ') //('--') 5 | console.log(result); 6 | 7 | // split() 8 | const title = 'Lorem input xd infinito'; 9 | const split_array = title.split(' ') 10 | console.log(split_array); 11 | 12 | // join() + toLowerCase(); volver minusculas 13 | const transformation = split_array.join(' ').toLowerCase(); 14 | console.log(transformation); 15 | -------------------------------------------------------------------------------- /DW/2-intermedio/011.js-engine-v8/debugger-vsc.md: -------------------------------------------------------------------------------- 1 | Run and debugger: Ctrl + Shift + D 2 | 3 | - Create a launch.json 4 | - Node 5 | - Play 6 | 7 | 8 | - node --inspect name-file.js 9 | - chrome://inspect 10 | 11 | [🔥 Nodejs Visual Studio Code Debugger para Iniciantes](https://www.youtube.com/watch?v=4Z8CM-E-HRE) -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asincronismo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "callback": "node src/callback/8.xmlhttprequest.js" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "node-fetch": "^3.3.2", 15 | "xmlhttprequest": "^1.8.0" 16 | }, 17 | "type": "module" 18 | } 19 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/src/async/15.async-await.js: -------------------------------------------------------------------------------- 1 | const fnAsync = () => { 2 | return new Promise((resolve, reject) => { 3 | true 4 | ? setTimeout(() => resolve("Async!!"), 2000) 5 | : reject(new Error("Error")); 6 | }); 7 | }; 8 | 9 | const anotherFn = async () => { 10 | const something = await fnAsync(); 11 | console.log(something); 12 | console.log("Hello!!!"); 13 | }; 14 | 15 | console.log("Before"); 16 | anotherFn(); 17 | console.log("After"); 18 | 19 | /* 20 | Before 21 | After 22 | Async!! 23 | Hello!!! 24 | */ 25 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/src/async/17.playground.js: -------------------------------------------------------------------------------- 1 | import fetch from "node-fetch"; 2 | 3 | const fnAsync = async () => { 4 | // const url = "https://domain-api-com"; 5 | 6 | try { 7 | const url = 8 | "https://api.escuelajs.co/api/v1/produts"; 9 | const response = await fetch(url); 10 | const data = await response.json(); 11 | 12 | console.log(data); 13 | } catch (e) { 14 | throw new Error(e); 15 | } 16 | }; 17 | 18 | fnAsync(); 19 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/src/callback/6.callback.js: -------------------------------------------------------------------------------- 1 | // Ejemplo 1 2 | function sum(num1, num2) { 3 | return num1 + num2; 4 | } 5 | 6 | function calc(num1, num2, callback) { 7 | return callback(num1, num2); 8 | } 9 | 10 | console.log(calc(2, 2, sum)); 11 | 12 | // Ejemplo 2 13 | setTimeout(() => { 14 | console.log("Hi JS :3"); 15 | }, 2000); 16 | 17 | // Ejemplo 3 18 | function greeting(name) { 19 | console.log(`Hi ${name}`); 20 | } 21 | 22 | setTimeout(greeting, 2000, "Ale"); 23 | 24 | // Ejemplo 4 25 | function x(name) { 26 | alert(`Name: ${name}`); 27 | } 28 | 29 | function y(callback) { 30 | let name = prompt("Enter your name: "); 31 | 32 | callback(name); 33 | } 34 | 35 | y(x); 36 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/src/callback/7.playground.js: -------------------------------------------------------------------------------- 1 | const exec = callback => { 2 | setTimeout(() => { 3 | callback("Something text..."); 4 | }, 2000); 5 | }; 6 | 7 | const message = text => { 8 | console.log(text); 9 | }; 10 | 11 | exec(message); 12 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/src/generator/23.playground.js: -------------------------------------------------------------------------------- 1 | async function fetchData(url) { 2 | if ( 3 | !url.startsWith("http://") && 4 | !url.startsWith("https://") 5 | ) { 6 | throw new Error("Invalid URL"); 7 | } 8 | 9 | const response = await fetch(url, { 10 | method: "GET", 11 | }); 12 | 13 | if (!response.ok) { 14 | throw new Error("Something was wrong"); 15 | } 16 | 17 | const data = await response.json(); 18 | return data; 19 | } 20 | 21 | try { 22 | const data = await fetchData( 23 | "https://api.escuelajs.co/api/v1/categories" 24 | ); 25 | console.log(data); 26 | } catch (error) { 27 | console.error(error); 28 | } 29 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/src/promise/11.promesas.js: -------------------------------------------------------------------------------- 1 | /* const promise = new Promise((resolve, reject) => { 2 | resolve("Hey!"); 3 | }); */ 4 | 5 | const cows = 1; 6 | const countCows = new Promise((resolve, reject) => { 7 | if (cows > 10) { 8 | resolve(`We have ${cows} cows on the farm.`); 9 | } else { 10 | reject("There isn't cows on the farm."); 11 | } 12 | }); 13 | 14 | countCows 15 | .then(result => { 16 | console.log(result); 17 | }) 18 | .catch(error => console.log(error)) 19 | .finally(() => console.log("Finally!!!")); 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/src/promise/12.playground.js: -------------------------------------------------------------------------------- 1 | const delay = (time, message) => { 2 | return new Promise((resolve, reject) => { 3 | setTimeout(() => { 4 | resolve(message); 5 | }, time); 6 | }); 7 | }; 8 | 9 | delay(3000, "Great!!!") 10 | .then(response => { 11 | console.log(response); 12 | }) 13 | .catch(error => { 14 | console.log(error); 15 | }); 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/asincronismo/x.md: -------------------------------------------------------------------------------- 1 | # Compilar vs Transpilar 2 | 3 | **Compilar:** Convertir código fuente a lenguaje máquina. 4 | 5 | **Transpilar:** Convertir código fuente a otro lenguaje de nivel similar: ts a js, sass a css. 6 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/project/README.md: -------------------------------------------------------------------------------- 1 | # async-landing -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/project/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async-landing", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "deploy": "gh-pages -d public" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "gh-pages": "^5.0.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/project/public/css/desktop.css: -------------------------------------------------------------------------------- 1 | .main { 2 | display: grid; 3 | grid-template-columns: 1fr 1fr; 4 | } 5 | .main figure { 6 | order: 1; 7 | } 8 | 9 | .main__article { 10 | align-self: center; 11 | } 12 | 13 | .mode { 14 | width: 40px; 15 | height: 40px; 16 | } 17 | 18 | .mode figure { 19 | width: 100%; 20 | height: 100%; 21 | } -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/project/public/css/tablet.css: -------------------------------------------------------------------------------- 1 | /* .header { 2 | width: 92vw; 3 | height: 10vh; 4 | } */ 5 | 6 | .header__nav { 7 | display: flex; 8 | } 9 | 10 | .show { 11 | display: none; 12 | } 13 | 14 | .burger { 15 | display: none; 16 | } 17 | 18 | .menu { 19 | width: 60vw; 20 | height: 100%; 21 | display: flex; 22 | position: static; 23 | flex-direction: row; 24 | gap: 20px; 25 | padding: 15px; 26 | justify-content: center; 27 | background-color: var(--second-color); 28 | } 29 | 30 | .mode { 31 | width: 40px; 32 | height: 40px; 33 | order: 1; 34 | } 35 | 36 | .mode figure { 37 | padding: 0px; 38 | } 39 | 40 | .dark-mode button { 41 | width: 100%; 42 | height: 100%; 43 | } 44 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/project/public/svg/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DW/2-intermedio/012.asincronismo-js/resources/code/project/public/svg/moon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /DW/2-intermedio/013.expresiones-regulares/resources/code/19.busqueda-reemplazo/main.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | const filePath = path.join(__dirname, "./movies.dat"); 4 | 5 | fs.readFile(filePath, "utf-8", (err, data) => { 6 | if (err) { 7 | console.error("Error al leer el archivo:", err); 8 | return; 9 | } 10 | 11 | const pattern = /^\d+::(.*)\s\((\d+)\)::.*$/gm; 12 | //console.log(data.match(pattern)); 13 | console.log(data.replace(pattern, `insert into movies (year, title) values($2, '$1')`)); 14 | //console.log(data.replace(pattern, `{title: "$1", year: $2}`)); 15 | }); 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/013.expresiones-regulares/resources/code/19.busqueda-reemplazo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "19.busqueda-reemplazo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "main.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /DW/2-intermedio/013.expresiones-regulares/resources/code/21.lenguajes/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/013.expresiones-regulares/resources/code/21.lenguajes/main.js -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/3.consumo-api-rest/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Random kittens 7 | 8 | 9 | 10 |
11 |

Random kittens

12 |
13 |
14 | Kitten pictures 15 |
16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/7.proyecto/svg/delete.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/7.proyecto/svg/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/code/code_clone/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/code/code_clone/style.css -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "node-fetch": "^3.3.2" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/practice/methods/delete-favorites.mjs: -------------------------------------------------------------------------------- 1 | import { loadFavorites } from "../main.mjs"; 2 | import { 3 | URLDELETE, 4 | APIKEY, 5 | } from "./parameters.mjs"; 6 | 7 | const deleteFavorites = async id => { 8 | const response = await fetch( 9 | `https://api.thecatapi.com/v1/favourites/${id}`, 10 | { 11 | method: "DELETE", 12 | headers: { "x-api-key": APIKEY }, 13 | } 14 | ); 15 | 16 | if (response.status === 200) { 17 | const data = await response.json(); 18 | 19 | console.log("Delete: ", response); 20 | console.log("Data: ", data); 21 | loadFavorites(); 22 | } else { 23 | console.log(response.status); 24 | } 25 | }; 26 | 27 | export { deleteFavorites }; 28 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/practice/methods/get-favorites.mjs: -------------------------------------------------------------------------------- 1 | // import fetch from "node-fetch"; 2 | 3 | import { 4 | URLFAVORITES, 5 | queryFavorites, 6 | APIKEY, 7 | } from "./parameters.mjs"; 8 | 9 | const getFavorites = async () => { 10 | const response = await fetch(queryFavorites, { 11 | headers: { 12 | "x-api-key": APIKEY, 13 | }, 14 | }); 15 | 16 | if (response.status === 200) { 17 | const data = await response.json(); 18 | 19 | /* console.log("Favorites"); 20 | console.log(data); */ 21 | return data; 22 | } else { 23 | console.log(response); 24 | console.log(data); 25 | console.log(data.status); 26 | } 27 | }; 28 | 29 | export { getFavorites }; 30 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/practice/methods/get.mjs: -------------------------------------------------------------------------------- 1 | //import fetch from "node-fetch"; 2 | import { queryRandom } from "./parameters.mjs"; 3 | 4 | const fetchData = async () => { 5 | const response = await fetch(queryRandom); 6 | const data = await response.json(); 7 | 8 | //console.log(data); 9 | return data; 10 | }; 11 | 12 | export { fetchData }; 13 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/practice/random.mjs: -------------------------------------------------------------------------------- 1 | import { showImages } from "./main.mjs"; 2 | 3 | const randomImg = () => { 4 | const randomButton = 5 | document.querySelector("button"); 6 | 7 | randomButton.addEventListener( 8 | "click", 9 | showImages 10 | ); 11 | }; 12 | 13 | export { randomImg }; 14 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/practice/svg/delete.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/practice/svg/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/1.api-rest-js-fundamentos/resources/code/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | Document 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "code", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "main.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/API/axios.mjs: -------------------------------------------------------------------------------- 1 | import { authorization } from "../parameters.mjs"; 2 | 3 | const apiaxios = axios.create({ 4 | baseURL: "https://api.themoviedb.org/3/", 5 | /* 6 | headers: { 7 | "Content-Type": "application/json", 8 | }, 9 | params: { 10 | api_key: authorization, 11 | }, */ 12 | }); 13 | 14 | export { apiaxios }; 15 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/API/get-by-category.mjs: -------------------------------------------------------------------------------- 1 | import { authorization } from "../parameters.mjs"; 2 | 3 | const movies = ["?", "with_genres="].join(""); 4 | 5 | const getByCategory = async id => { 6 | const response = await fetch( 7 | `https://api.themoviedb.org/3/discover/movie${movies}${id}`, 8 | { 9 | method: "GET", 10 | headers: { 11 | accept: "application/json", 12 | authorization, 13 | }, 14 | } 15 | ); 16 | const data = await response.json(); 17 | 18 | return data; 19 | }; 20 | 21 | export { getByCategory }; 22 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/API/get-categories.mjs: -------------------------------------------------------------------------------- 1 | import { authorization } from "../parameters.mjs"; 2 | import { apiaxios } from "./axios.mjs"; 3 | 4 | const getCategories = async () => { 5 | const { data } = await apiaxios( 6 | "genre/movie/list?language=en", 7 | { 8 | method: "GET", 9 | headers: { 10 | accept: "application/json", 11 | authorization, 12 | }, 13 | } 14 | ); 15 | 16 | return data; 17 | }; 18 | 19 | export { getCategories }; 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/API/get-movie-by-id.mjs: -------------------------------------------------------------------------------- 1 | import { authorization } from "../parameters.mjs"; 2 | 3 | const getMovieById = async id => { 4 | const response = await fetch( 5 | `https://api.themoviedb.org/3/movie/${id}?language=en-US`, 6 | { 7 | method: "GET", 8 | headers: { 9 | accept: "application/json", 10 | Authorization: authorization, 11 | }, 12 | } 13 | ); 14 | const data = response.json(); 15 | 16 | return data; 17 | }; 18 | 19 | export { getMovieById }; 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/API/get-similar.mjs: -------------------------------------------------------------------------------- 1 | import { authorization } from "../parameters.mjs"; 2 | 3 | const getSimilar = async id => { 4 | const response = await fetch( 5 | `https://api.themoviedb.org/3/movie/${id}/similar`, 6 | { 7 | method: "GET", 8 | headers: { 9 | accept: "application/json", 10 | Authorization: authorization, 11 | }, 12 | } 13 | ); 14 | const data = response.json(); 15 | 16 | return data; 17 | }; 18 | 19 | // https://api.themoviedb.org/3/movie/{movie_id}/similar 20 | 21 | export { getSimilar }; 22 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/API/get-trending-movies.mjs: -------------------------------------------------------------------------------- 1 | import { authorization } from "../parameters.mjs"; 2 | 3 | const getTrendingMovies = async () => { 4 | const response = await fetch( 5 | "https://api.themoviedb.org/3/trending/all/day?language=en-US", 6 | { 7 | method: "GET", 8 | headers: { 9 | accept: "application/json", 10 | authorization, 11 | }, 12 | } 13 | ); 14 | 15 | const data = await response.json(); 16 | 17 | return data; 18 | }; 19 | 20 | export { getTrendingMovies }; 21 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/parameters.mjs: -------------------------------------------------------------------------------- 1 | const authorization = 2 | "Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiI5MTRjZWZhYzNhM2QyMzRjNThlZjQ2OTAzY2U3ZWJkMyIsInN1YiI6IjY1NjIxMjMyYTZjMTA0MDBmZWIwYjc2MiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.w49IQG4OZJuFx_It37mXvTWZtbyWPFHotHB0yEA2dP0"; 3 | 4 | export { authorization }; 5 | -------------------------------------------------------------------------------- /DW/2-intermedio/014.api-rest-js/2.api-rest-js-ejemplos/resources/code/src/secrets.mjs: -------------------------------------------------------------------------------- 1 | const APIKEY = ""; 2 | 3 | export { APIKEY }; 4 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ts-project", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "typescript": "^5.3.3" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/01.hello.ts: -------------------------------------------------------------------------------- 1 | const my_name = 'Ale Roses'; 2 | console.log(my_name); 3 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/02.demo.ts: -------------------------------------------------------------------------------- 1 | const numbers = [1, 2, 3]; 2 | console.log(numbers); 3 | console.log(numbers); 4 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/03.demo.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | let my_product: string = 'Product 1'; 3 | let price: number = 123; 4 | })(); 5 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/03.typing.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | let my_product: string = 'Product 1'; 3 | let price: number = 123; 4 | let myName = 'Ale Roses'; 5 | 6 | my_product.toLowerCase(); 7 | price.toFixed(); 8 | 9 | const stock: number = 1000; 10 | })(); 11 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/04.number.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | let price = 100; 3 | price = 12; 4 | 5 | console.log(price); 6 | 7 | let age: number = 28; 8 | console.log(age + 2); 9 | 10 | // Si no se inicializa debes colocarle el tipo de dato 11 | let stock: number; 12 | stock = 2; 13 | console.log(stock); 14 | 15 | let discount: number = parseInt('123'); 16 | console.log(discount + 2); 17 | 18 | let customer_age: number = 28; 19 | let product_stock: number; 20 | })(); 21 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/05.boolean.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | let isEnable: boolean = true; 3 | isEnable = false; 4 | console.log(isEnable); 5 | 6 | let isNew: boolean = false; 7 | console.log(isNew); 8 | 9 | const random: number = Math.random(); 10 | console.log(random); 11 | 12 | isNew = random >= 0.5 ? true : false; 13 | // isNew = random > 0.5; 14 | console.log(isNew); 15 | })(); 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/06.string.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | let product: string = 'Soft drink'; 3 | const summary: string = `${product}`; 4 | 5 | console.log('🚀 ~ summary:', summary); 6 | })(); 7 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/07.arrays.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | // let mixed_one: (string | number | boolean | (string | number | boolean)[])[] 3 | let mixed_one = [1, 2, 3, 'x', true, [1, true, 'x']]; 4 | mixed_one.push('y', 2, ['x', false, 5]); 5 | 6 | let mixed_two: (number | string | boolean)[] = ['hola', true]; 7 | mixed_two.push(12); 8 | 9 | let mixed_three: (number | string | boolean | object)[] = ['hola', true]; 10 | mixed_three.push(12); 11 | 12 | let numbers = [1, 2, 3]; 13 | numbers.map((item) => item * 2); 14 | console.log(); 15 | 16 | })(); 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/08.any.ts: -------------------------------------------------------------------------------- 1 | /* (() => { 2 | let dinamic_var: any; 3 | 4 | })() */ 5 | 6 | (() => { 7 | let my_dynamic_var: any; 8 | my_dynamic_var = 100; 9 | my_dynamic_var = null; 10 | my_dynamic_var = {}; 11 | my_dynamic_var = ''; 12 | 13 | my_dynamic_var = 'Hola'; 14 | const rta = (my_dynamic_var as string).toLowerCase(); 15 | console.log('Respuesta:', rta); 16 | 17 | my_dynamic_var = 1212; 18 | const rta2 = (my_dynamic_var).toFixed(); 19 | console.log('Respuesta:', rta2); 20 | })(); 21 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/09.union-type.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | let user_id: number | string; 3 | user_id = 12; 4 | user_id = 'my id'; 5 | 6 | function greeting(my_text: string | number) { 7 | 8 | if (typeof my_text === 'string') { 9 | console.log(my_text); 10 | } else { 11 | console.log(my_text); 12 | } 13 | } 14 | 15 | greeting('lolcat'); 16 | greeting(123); 17 | })(); 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/10.alias.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | type Id = string | number | boolean; 3 | type Size = 'S' | 'M' | 'L' | 'XL'; 4 | 5 | // Literal types 6 | let userId: Id; 7 | let shirtSize: Size; 8 | shirtSize = 'M'; 9 | 10 | function greeting(id: Id, size: Size) { 11 | if (typeof userId === 'string') { 12 | console.log(`string ${userId}`); 13 | } 14 | } 15 | 16 | greeting(11, 'L'); 17 | })(); 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/13.return-function.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | const calculate = (prices: number[]): string => { 3 | /* return prices.reduce((a, b) => { 4 | console.log(a + b); 5 | return a + b; 6 | }, 0); */ 7 | 8 | let total = 0; 9 | 10 | prices.forEach((item) => { 11 | total += item; 12 | }); 13 | 14 | return total.toString(); 15 | }; 16 | 17 | const total = (prices: number[]): void => { 18 | const rta = calculate(prices); 19 | console.log(`The total is: ${rta}`); 20 | }; 21 | 22 | total([1, 2, 3]); 23 | })(); 24 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/15.obj.ts: -------------------------------------------------------------------------------- 1 | (() => { 2 | type Size = 'S' | 'M' | 'L' | 'XL'; 3 | type Data = { 4 | title: string; 5 | stock: number; 6 | size?: Size; 7 | }; 8 | 9 | const products: Data[] = []; 10 | 11 | const addProduct = (data: Data) => { 12 | products.push(data); 13 | }; 14 | 15 | addProduct({ size: 'L', title: 'One', stock: 12 }); 16 | addProduct({ size: 'S', title: 'Two', stock: 10 }); 17 | console.log(products); 18 | })(); 19 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/products/main.ts: -------------------------------------------------------------------------------- 1 | import { products, addProduct, calculateStock } from './product-service'; 2 | 3 | addProduct({ size: 'L', title: 'One', stock: 12 }); 4 | addProduct({ size: 'S', title: 'Two', stock: 10 }); 5 | 6 | console.log(products); 7 | const total = calculateStock(); 8 | console.log(total); 9 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/products/product-model.ts: -------------------------------------------------------------------------------- 1 | type Size = 'S' | 'M' | 'L' | 'XL'; 2 | type Data = { 3 | title: string; 4 | stock: number; 5 | size?: Size; 6 | }; 7 | 8 | export { Size, Data }; 9 | -------------------------------------------------------------------------------- /DW/2-intermedio/016.fundamentos-typescript/resources/code/ts-project/src/products/product-service.ts: -------------------------------------------------------------------------------- 1 | import { Size, Data } from './product-model'; 2 | 3 | const products: Data[] = []; 4 | 5 | const addProduct = (data: Data) => { 6 | products.push(data); 7 | }; 8 | 9 | const calculateStock = (): number => { 10 | let total = 0; 11 | 12 | products.forEach((item) => { 13 | total += item.stock; 14 | }); 15 | 16 | return total; 17 | }; 18 | 19 | export { products, addProduct, calculateStock }; 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see [https://editorconfig.org](https://editorconfig.org/) 2 | 3 | root = true 4 | 5 | [*] charset = utf-8 indent_style = space indent_size = 2 insert_final_newline = true trim_trailing_whitespace = true 6 | 7 | [*.ts] quote_type = single 8 | 9 | [*.md] max_line_length = off trim_trailing_whitespace = false> -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "code", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "@faker-js/faker": "^8.3.1", 14 | "ts-node": "^10.9.2", 15 | "typescript": "^5.3.3" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/01.enum.ts: -------------------------------------------------------------------------------- 1 | enum ROLES { 2 | ADMIN = "admin", 3 | SELLER = "seller", 4 | CUSTOMER = "customer", 5 | } 6 | 7 | type User = { 8 | username: string; 9 | role: ROLES; 10 | }; 11 | 12 | const userOne: User = { 13 | username: "Ale Roses", 14 | role: ROLES.ADMIN, 15 | }; 16 | 17 | export { ROLES, User, userOne }; 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/02.tuplas.ts: -------------------------------------------------------------------------------- 1 | /* const price: (number | string)[] = [1, 2, "letter"]; 2 | const user: [string, number] = ["ale", 16]; 3 | console.log(user); 4 | 5 | const [username, age] = user; 6 | console.log(username); 7 | console.log(age); */ 8 | 9 | const data: (string | number)[] = ["ale", 18, 15]; 10 | const info: [string, number] = ["Ale", 18]; 11 | 12 | const user: [string, number] = ["ale", 16]; 13 | 14 | const [username, age] = user; 15 | console.log(username); 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/03.unknow.ts: -------------------------------------------------------------------------------- 1 | /* let anyVar: any; 2 | 3 | anyVar = true; 4 | anyVar = undefined; 5 | 6 | let isNew: boolean = anyVar; 7 | 8 | let unknowVar: unknown; 9 | unknowVar = true; 10 | unknowVar = undefined; 11 | 12 | //unknowVar.doSomething(); 13 | if (typeof unknowVar === "string") { 14 | unknowVar.toUpperCase(); 15 | } 16 | 17 | if (typeof unknowVar === "boolean") { 18 | const isNewV2: boolean = unknowVar; 19 | } 20 | 21 | const parse = (str: string): unknown => { 22 | return JSON.parse(str); 23 | }; */ 24 | 25 | let x: unknown; 26 | x = "text"; 27 | /* x = true; 28 | x = 2; */ 29 | 30 | if (typeof x === "string") { 31 | console.log( 32 | x.charAt(0).toUpperCase() + x.slice(1) 33 | ); 34 | } 35 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/04.never.ts: -------------------------------------------------------------------------------- 1 | const withoutEnd = () => { 2 | while (true) { 3 | console.log("Nunca parar de aprender"); 4 | } 5 | }; 6 | 7 | const fail = (message: string) => { 8 | throw new Error(message); 9 | }; 10 | 11 | const example = (input: unknown) => { 12 | if (typeof input === "string") { 13 | return "Es un string"; 14 | } else if (Array.isArray(input)) { 15 | return "Es un array"; 16 | } 17 | 18 | return fail("Not match"); 19 | }; 20 | 21 | console.log(example("Hola")); 22 | console.log(example([1, 1, 1])); 23 | console.log(example(1)); 24 | console.log(example("Despues del fail")); 25 | // No se ejecuta 26 | 27 | 28 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/06.default.ts: -------------------------------------------------------------------------------- 1 | const createProduct = ( 2 | id: string | number, 3 | isNew: boolean = true, 4 | stock: number = 10 5 | ) => { 6 | return { 7 | id, 8 | isNew, 9 | stock, 10 | }; 11 | }; 12 | 13 | // 0 - '' - false === false 14 | 15 | const p1 = createProduct(1); 16 | const p2 = createProduct(1, true); 17 | const p3 = createProduct(1, false, 0); 18 | console.log({ p1, p2, p3 }); 19 | 20 | export { createProduct }; 21 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/08.overload.ts: -------------------------------------------------------------------------------- 1 | // Nico => [N, i, c, o] 2 | // [N, i, c, o] => Nico 3 | 4 | function parseStr( 5 | input: string | string[] 6 | ): string | string[] { 7 | if (Array.isArray(input)) { 8 | return input.join(""); 9 | } else { 10 | return input.split(""); 11 | } 12 | } 13 | 14 | const rtaArray = parseStr("Ale"); 15 | 16 | if (Array.isArray(rtaArray)) { 17 | rtaArray.reverse(); 18 | console.log(rtaArray); 19 | } 20 | 21 | const rtaStr = parseStr(["A", "l", "e"]); 22 | 23 | if (typeof rtaStr === "string") { 24 | rtaStr.toUpperCase(); 25 | console.log(rtaStr); 26 | } 27 | 28 | console.log({ rtaArray, rtaStr }); 29 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/app/base.model.ts: -------------------------------------------------------------------------------- 1 | interface BaseModel { 2 | readonly id: string; 3 | readonly createdAt: Date; 4 | readonly updatedAt: Date; 5 | } 6 | 7 | export { BaseModel }; 8 | 9 | 10 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/app/categories/category.model.ts: -------------------------------------------------------------------------------- 1 | import { BaseModel } from "../base.model"; 2 | 3 | interface Category extends BaseModel { 4 | // id: string | number; 5 | name: string; 6 | } 7 | 8 | export { Category }; 9 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/app/orders/order.model.ts: -------------------------------------------------------------------------------- 1 | import { BaseModel } from "../base.model"; 2 | import { Product } from "../products/product.model"; 3 | import { User } from "../users/user.model"; 4 | 5 | interface Order extends BaseModel { 6 | //id: string | number; 7 | //createdAt: Date; 8 | products: Product[]; 9 | user: User; 10 | } 11 | 12 | export { Order }; 13 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/app/products/product.dto.ts: -------------------------------------------------------------------------------- 1 | import { Product } from "./product.model"; 2 | 3 | interface CreateProductDto 4 | extends Omit< 5 | Product, 6 | "id" | "createdAt" | "updatedAt" | "category" 7 | > { 8 | categoryId: string; 9 | } 10 | 11 | type example = Pick< 12 | Product, 13 | "color" | "description" 14 | >; 15 | 16 | interface UpdateProductDto 17 | extends Partial {} 18 | 19 | type example2 = Required; 20 | 21 | interface FindProductDto extends Partial { 22 | 23 | } 24 | 25 | export { 26 | CreateProductDto, 27 | UpdateProductDto, 28 | FindProductDto, 29 | }; 30 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/app/products/product.model.ts: -------------------------------------------------------------------------------- 1 | import { Category } from "../categories/category.model"; 2 | import { BaseModel } from "../base.model"; 3 | 4 | type Sizes = "S" | "M" | "L" | "XL"; 5 | 6 | interface Product extends BaseModel { 7 | // id: string | number; 8 | title: string; 9 | image: string; 10 | description: string; 11 | createdAt: Date; 12 | stock: number; 13 | size?: Sizes; 14 | color: string; 15 | price: number; 16 | category: Category; 17 | isNew: boolean; 18 | tags: string[]; 19 | } 20 | 21 | /* type CreateProductDto = Omit< 22 | Product, 23 | "id" | "createdAt" | "updatedAt" | "category" 24 | >; */ 25 | 26 | 27 | 28 | export { Sizes, Product }; 29 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/app/users/user.model.ts: -------------------------------------------------------------------------------- 1 | /* import { BaseModel } from "../base.model"; 2 | 3 | enum ROLES { 4 | ADMIN = "admin", 5 | SELLER = "seller", 6 | CUSTOMER = "customer", 7 | } 8 | 9 | interface User extends BaseModel { 10 | // id: string | number; 11 | username: string; 12 | role: ROLES; 13 | } 14 | 15 | export { ROLES, User }; */ 16 | 17 | 18 | -------------------------------------------------------------------------------- /DW/2-intermedio/017.tipos-funciones-avanzadas/resources/code/src/demo.ts: -------------------------------------------------------------------------------- 1 | type UserId = string | number; 2 | let userId: UserId; 3 | 4 | userId = "string"; 5 | userId = 1; 6 | 7 | console.log('Print!!! ', userId); 8 | -------------------------------------------------------------------------------- /DW/2-intermedio/019.empaquetadores/resources/code/webpack/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webpack", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "webpack": "^5.91.0", 14 | "webpack-cli": "^5.1.4" 15 | }, 16 | "dependencies": { 17 | "-": "^0.0.1", 18 | "@babel/core": "^7.24.4", 19 | "babel": "^6.23.0", 20 | "copy-webpack-plugin": "^12.0.2", 21 | "D": "^1.0.0", 22 | "html-webpack-plugin": "^5.6.0", 23 | "loader": "^2.1.1" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /DW/2-intermedio/026.manipulacion-dom/img/22.intersection-observer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/026.manipulacion-dom/img/22.intersection-observer.webp -------------------------------------------------------------------------------- /DW/2-intermedio/028.accesibilidad/sources/23.icons.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/2-intermedio/028.accesibilidad/sources/23.icons.webp -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/1.custom-elements/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/12.third-party-components/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Document 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/2.template/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/3.shadow-dom/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/4.slot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 13 | I'm a title 14 | Testing... 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/5.attributes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/6.attributeChangedCallback/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/7.disconnectedCallback/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/7.disconnectedCallback/my-element.js: -------------------------------------------------------------------------------- 1 | class MyCustomElement extends HTMLElement { 2 | constructor() { 3 | super(); 4 | 5 | console.log("Hi..."); 6 | } 7 | 8 | connectedCallback() { 9 | console.log("Connected"); 10 | } 11 | 12 | disconnectedCallback() { 13 | console.log("Bye..."); 14 | } 15 | } 16 | 17 | customElements.define("my-custom-element", MyCustomElement); 18 | 19 | document.querySelector("my-custom-element").remove(); 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/9.slotted/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | Custom Elements 10 | 11 | 12 | 13 | Hi span one 14 | Span paragraph 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/project/app.js: -------------------------------------------------------------------------------- 1 | import "./components/Product-card.js"; 2 | -------------------------------------------------------------------------------- /DW/2-intermedio/029.web-components/code/project/styles.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | body { 7 | display: flex; 8 | justify-content: center; 9 | align-items: center; 10 | width: 100%; 11 | min-height: 100vh; 12 | font-family: Arial, Helvetica, sans-serif; 13 | background-color: #070c24; 14 | } 15 | 16 | /* product-card { 17 | --primary-background: green; 18 | } */ 19 | -------------------------------------------------------------------------------- /DW/2-intermedio/vim/configs/.vim/UltiSnips/htmldjango.snippets: -------------------------------------------------------------------------------- 1 | snippet %% "" bi 2 | {% ${1:tag_name} %} 3 | ${2:content...} 4 | {% end$1 %} 5 | endsnippet 6 | 7 | snippet block "" bi 8 | {% block $1 %} 9 | ${2:content...} 10 | {% endblock $1 %} 11 | endsnippet 12 | 13 | snippet extends "" bi 14 | {% extends '${1:base.html}' %} 15 | endsnippet 16 | 17 | snippet include "" bi 18 | {% include '${1:something}.html' %} 19 | endsnippet 20 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:react/recommended', 7 | 'plugin:react/jsx-runtime', 8 | 'plugin:react-hooks/recommended', 9 | ], 10 | ignorePatterns: ['dist', '.eslintrc.cjs'], 11 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, 12 | settings: { react: { version: '18.2' } }, 13 | plugins: ['react-refresh'], 14 | rules: { 15 | 'react-refresh/only-export-components': [ 16 | 'warn', 17 | { allowConstantExport: true }, 18 | ], 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/README.md: -------------------------------------------------------------------------------- 1 | # React + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 14 | Vite + React 15 | 16 | 17 |
18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/UsersApp.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import { UserList } from "./components/UserList"; 3 | 4 | const UsersApp = () => { 5 | const [endPoint, setEndPoint] = useState("users"); 6 | 7 | const handleFetch = () => { 8 | setEndPoint("comments"); 9 | }; 10 | 11 | 12 | return ( 13 | <> 14 |

Users List:

15 | 16 | 19 | 20 | ); 21 | }; 22 | 23 | export { UsersApp }; 24 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/components/Counter.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | 3 | const Counter = ({ value }) => { 4 | const [counter, setCounter] = useState(value); 5 | 6 | const handleClick = () => { 7 | const n = counter + 1; 8 | 9 | setCounter(n); 10 | console.log(n); 11 | }; 12 | 13 | return ( 14 | <> 15 |

Counter

16 |

{counter}

17 | 20 | 21 | ); 22 | }; 23 | 24 | export { Counter }; 25 | /* rafc */ 26 | 27 | 28 | /* 1:33:04 */ -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/components/FirstComponent.jsx: -------------------------------------------------------------------------------- 1 | import PropTypes from "prop-types"; 2 | 3 | const FirstComponent = ({ 4 | title, 5 | subtitle = "Props section", 6 | }) => { 7 | return ( 8 | <> 9 |

{title}

10 |

{subtitle}

11 | 12 | ); 13 | }; 14 | 15 | FirstComponent.propTypes = { 16 | title: PropTypes.string.isRequired, 17 | subtitle: PropTypes.string.isRequired, 18 | }; 19 | 20 | /* FirstComponent.defaultProps = { 21 | title: "React course", 22 | subtitle: "Props section", 23 | }; */ 24 | 25 | export { FirstComponent }; 26 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/components/UserList.jsx: -------------------------------------------------------------------------------- 1 | import { useFetchData } from "../hooks/useFetchData"; 2 | 3 | const UserList = ({ endPoint }) => { 4 | const { data, isLoading } = useFetchData(endPoint); 5 | 6 | return ( 7 | <> 8 |
    9 | {isLoading ? ( 10 |

    Loading

    11 | ) : endPoint === "users" ? ( 12 | data.map((item) =>
  • Name: {item.name}
  • ) 13 | ) : ( 14 | data.map((item) =>
  • Name: {item.body}
  • ) 15 | )} 16 |
17 | 18 | ); 19 | }; 20 | 21 | export { UserList }; 22 | /* rafc */ 23 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/helpers/fetchData.js: -------------------------------------------------------------------------------- 1 | const fetchdata = async (endPoint) => { 2 | try { 3 | const response = await fetch( 4 | `https://jsonplaceholder.typicode.com/${endPoint}` 5 | ); 6 | const data = await response.json(); 7 | return { 8 | data, 9 | isLoading: false, 10 | }; 11 | } catch (error) { 12 | console.error(error); 13 | } 14 | }; 15 | 16 | export { fetchdata }; 17 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import { FirstComponent } from "./components/FirstComponent"; 4 | import { Counter } from "./components/Counter"; 5 | import "./stylesheets/styles.css"; 6 | import { List } from "./ListApp"; 7 | import { UsersApp } from "./UsersApp"; 8 | 9 | ReactDOM.createRoot( 10 | document.getElementById("root") 11 | ).render( 12 | 13 | {/* 14 | 18 | 19 | 20 | */} 21 | 22 | 23 | ); 24 | 25 | /* 01:00 https://www.youtube.com/watch?v=ladwC6Lrs-M*/ 26 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/stylesheets/FirstComponent.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: aqua; 3 | } -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/src/stylesheets/styles.css: -------------------------------------------------------------------------------- 1 | body, 2 | html { 3 | background-color: black; 4 | color: white; 5 | } 6 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/YouTube/code/vite-project/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react-swc' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/devTalles/img/6-naming-components.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/3-avanzado/1.react.js/devTalles/img/6-naming-components.jpeg -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/code/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/DW/3-avanzado/1.react.js/resource/code/public/favicon.ico -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/code/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/code/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/code/src/UseEffect.js: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import "./stylesheets/App.css"; 3 | 4 | function Timer() { 5 | const [count, setCount] = useState(0); 6 | 7 | useEffect(() => { 8 | console.log("Efecto ejecutado"); 9 | document.title = `Contador: ${count}`; 10 | 11 | return () => { 12 | console.log("Efecto limpiado"); 13 | }; 14 | }, [count]); 15 | 16 | return ( 17 |
18 |

Contador: {count}

19 | 22 |
23 | ); 24 | } 25 | 26 | export default Timer; 27 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/code/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./stylesheets/index.css"; 4 | import Timer from "./UseEffect"; 5 | 6 | const root = ReactDOM.createRoot( 7 | document.getElementById("root") 8 | ); 9 | root.render( 10 | 11 | 12 | 13 | ); 14 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/code/src/stylesheets/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/code/src/stylesheets/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /DW/3-avanzado/1.react.js/resource/roadmap.md: -------------------------------------------------------------------------------- 1 | Quieres un roadmap ? 2 | https://roadmap.sh/react, estaría este de acá. 3 | 4 | Recursos: 5 | mdz, tiene una sección para aprende react : 6 | https://developer.mozilla.org/es/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started, 7 | 8 | Documentación oficial: 9 | https://es.react.dev/, 10 | 11 | Curso de midudev de react: 12 | https://www.youtube.com/watch?v=7iobxzd_2wY&list=PLUofhDIg_38q4D0xNWp7FEHOTcZhjWJ29 13 | 14 | Curso fazt de react: 15 | https://www.youtube.com/watch?v=rLoWMU4L_qE -------------------------------------------------------------------------------- /DW/super-hero/challenges.md: -------------------------------------------------------------------------------- 1 | # Challenges 2 | ## 1. Explica este código JavaScript 😎 3 | 4 | ```js 5 | // primera función 6 | function sumar(a, b) { 7 | return a + b; 8 | } 9 | 10 | // segunda función 11 | const sumar = (a, b) => { 12 | return a + b; 13 | }; 14 | ``` 15 | 16 | ```js 17 | // Con una función como la primera es posible hacer esto: 18 | 19 | console.log(suma(3,5)); //8 20 | function sumar(a, b){ 21 | return a + b; 22 | } 23 | 24 | // Podemos llamar a la función antes de su declaración, característica que se denomina hoisting. 25 | 26 | // Con una función de flecha esto no es posible: 27 | 28 | console.log(sumar(3,5)); // ReferenceError: cant access lexical declaration sumar before initialization 29 | 30 | const sumar = (a, b) => { 31 | return a + b; 32 | } 33 | ``` 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Platzi 2 | 3 | ## Apuntes / Notas / Resumen 😊 4 | 5 | Apuntes de la Escuela de DW, hechos en Obsidian con Markdown y alojado en GitHub. 6 | 7 | ✨ Recuerda que puedes clonar este repositorio, modificar y mejorar los apuntes según tu criterio. Estas notas solo son una base para crear tus propios apuntes. 👈👀 8 | -------------------------------------------------------------------------------- /others/1.english-Academy/1.aprender-Ingles-online/resources/plantilla-plan-semanal.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/others/1.english-Academy/1.aprender-Ingles-online/resources/plantilla-plan-semanal.xlsx -------------------------------------------------------------------------------- /others/CheatSheets-HTML-CSS-JavaScript/README.md: -------------------------------------------------------------------------------- 1 | # CheatSheets-HTML-CSS-JavaScript 2 | I have shared all my cheatsheets on this repository which were previously posted on my Twitter account. You can download and share these cheatsheets with others if you find them helpful. 3 | 4 | 5 | -------------------------------------------------------------------------------- /others/estrategias-para-Aprender-en-linea/resources/flux-setup.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/others/estrategias-para-Aprender-en-linea/resources/flux-setup.exe -------------------------------------------------------------------------------- /others/excel/sources/Libro1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/others/excel/sources/Libro1.xlsx -------------------------------------------------------------------------------- /others/gestion-efectiva-del-tiempo/resources/clase-3_-mapa-de-areas.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/others/gestion-efectiva-del-tiempo/resources/clase-3_-mapa-de-areas.docx -------------------------------------------------------------------------------- /others/gestion-efectiva-del-tiempo/resources/clase-4_-convirtiendo-a-actividades.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/others/gestion-efectiva-del-tiempo/resources/clase-4_-convirtiendo-a-actividades.docx -------------------------------------------------------------------------------- /others/gestion-efectiva-del-tiempo/resources/matriz-de-administracion-del-tiempo.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aleroses/software-notes/7b6be16a0b295dcd1b7381037ea3787c854dcdc9/others/gestion-efectiva-del-tiempo/resources/matriz-de-administracion-del-tiempo.docx -------------------------------------------------------------------------------- /others/set-grub.md: -------------------------------------------------------------------------------- 1 | Buscar un GRUB theme 2 | - Descargar 3 | - Descomprimir 4 | - theme.txt 5 | 6 | Buscar: 7 | - /boot/grub 8 | 9 | Mover del lugar de descarga a la carpeta grub 10 | mv /home/ghost/Download/name-theme . 11 | 12 | Copiar la ruta actual 13 | pwd 14 | /boot/grub/name-theme 15 | /boot/grub/CyberRe 1.0.0/CyberRe 16 | 17 | ahora: 18 | sudo vim /etc/default/grub 19 | 20 | Escribimos: 21 | GRUB_THEME=/boot/grub/themes/name-theme/theme.txt 22 | 23 | /boot/grub/CyberRe 1.0.0/CyberRe/theme.txt 24 | 25 | CyberRe\ 1.0.0/ 26 | 27 | 28 | Por ultimo actualizar grub 29 | sudo update-grub --------------------------------------------------------------------------------