- Puntualidad
- Liquidos y comida
- Ubicación
- Cafeteria, cajeros, farmacias, etc...
- Descansos
- Gestión del curso en GitHub
- Comunicación fuera de clase
- Repositorio común
- Toda la teoría, prácticas y recursos
- Proyectos personales
- Proyectos de grupo
- Guild 24
- Prácticas y "deberes"
- Repasos, para afianzar lógica
Bio: "#Maker, #IoT, #OpenSource | #JavaScript, #Node, #Python | Co-organizador de @os_weekends | Profe en @fictiziaescuela | Mentor en @TetuanValley | Autor de #JavaScriptInspirate | Freelance | xIBMer"
Redes Sociales:
Bio: "A veces sueño que tengo que tomar decisiones con if else, o masticar con while. Entreprenú. Lio a gente en @os_weekends. Cuando me dejan, prestidigito un poco. Cuando no, hago música. Papá de @gamify_es."
Redes Sociales:
- Front-End
- Back-End
- Full-Stack
- Dev Ops
- etc...
Navegación
Hosting
CMS (Back-End)
CDN (Content Delivery Network)
Tracking
W3C - World Wide Web Consortium
HTML, sigla en inglés de HyperText Markup Language (lenguaje de marcas de hipertexto), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que sirve de referencia del software que conecta con la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, juegos, entre otros. Es un estándar a cargo del World Wide Web Consortium (W3C) o Consorcio WWW, organización dedicada a la estandarización de casi todas las tecnologías ligadas a la web, sobre todo en lo referente a su escritura e interpretación. Se considera el lenguaje web más importante siendo su invención crucial en la aparición, desarrollo y expansión de la World Wide Web (WWW). Es el estándar que se ha impuesto en la visualización de páginas web y es el que todos los navegadores actuales han adoptado.1
El lenguaje HTML basa su filosofía de desarrollo en la diferenciación. Para añadir un elemento externo a la página (imagen, vídeo, script, entre otros.), este no se incrusta directamente en el código de la página, sino que se hace una referencia a la ubicación de dicho elemento mediante texto. De este modo, la página web contiene solamente texto mientras que recae en el navegador web (interpretador del código) la tarea de unir todos los elementos y visualizar la página final. Al ser un estándar, HTML busca ser un lenguaje que permita que cualquier página web escrita en una determinada versión, pueda ser interpretada de la misma forma (estándar) por cualquier navegador web actualizado.HTML Wikiwand
- Versiones:
- HTML 1.0 (1991)
- HTML 2.0 (1995)
- HTML 3.2 (1997)
- HTML 4 (1997)
- HTML 4.01 (1999)
- HTML 5 (2014)
Hoja de estilo en cascada o CSS (siglas en inglés de cascading style sheets) es un lenguaje usado para definir y crear la presentación de un documento estructurado escrito en HTML o XML2 (y por extensión en XHTML). El World Wide Web Consortium (W3C) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar para los agentes de usuario o navegadores. La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación.CSS Wikiwand
- Versiones:
- Versión 1 (CSS1) en 1996
- Versión 2 (CSS2) en 1998
- Versión 2.1 (CSS2) en 2004
- Versión 3 (CSS3) en 2011
- Ejemplos:
JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.
Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo. JavaScript Wikiwand
Características
- Multiparadigma
- Imperativo y estructurado
- Dinámico
- Tipado dinámico
- Objetual
- Evaluación en tiempo de ejecución
- Funcional
- Funciones de primera clase
- Prototípico
- Prototipos
- Funciones constructoras
- Entorno de ejecución
- Funciones varídicas
- Funciones como métodos
- Arrays y la definición literal de objetos
- Expresiones regulares
-
Versiones:
- Versión 1 (Junio de 1997)
- Versión 2 (Junio de 1998)
- Versión 3 (Diciembre de 1999)
- Versión 3 (Abandonado)
- Versión 5 (Diciembre de 2009)
- Versión 5.1 (Diciembre de 2011)
- Versión 6 (Junio de 2015)
- Versión 7 (En desarrollo)
-
Compatibilidad:
-
Compiladores
-
Librerías
-
Frameworks (MV)*
Node.js es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor (pero no limitándose a ello) basado en el lenguaje de programación ECMAScript, asíncrono, con I/O de datos en una arquitectura orientada a eventos y basado en el motor V8 de Google. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web. Fue creado por Ryan Dahl en 2009 y su evolución está apadrinada por la empresa Joyent, que además tiene contratado a Dahl en plantilla - Wikipedia
Otra manera es posible
Puntos Fuertes
- Asincronía (no bloqueo)
- Backend completo
- NPM (comunidad)
- Single thread (paralelismo)
- Librerías propias
- Utilidades
- Código abierto
- Basado en el V8 (escrito en C++) de Google
- Multiplataforma
- Orientado a Eventos
- No se limita solo a servidores HTTP
Librerías interesantes
- Grunt
- Gulp
- Express
- Mongoose
- Socket.io
- Apache Cordova
- Async
- Chalk
- J5
- GraphicsMagick
- Marked
- Node-restify
- Webpack
- Morgan
- Nodemailer
- Passportjs
- Cheerio
- X-ray
- Bower
- PM2
- Electron
- Yeoman
- Babel
- Helmet
- Faker
- Protractor
- Nightwatch.js
- Cypress.io
- PHP
- Python
- Ruby
- Java
- etc...
- LAMP:
- Linux
- Apache
- MySQL
- PHP
- MEAN:
- MongoDB
- Express
- Angular
- Node
- JSON
- AJAX
- APIs Rest
- WEBSOCKET
- Platform as a service (PaaS)
- Programación funcional
- Test-driven development (TDD)
- Manifiesto por el Desarrollo Ágil de Software
- El estado del desarrollo Front-End en 2016 por Ashley Nolan
JSDramas
- How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript
- A discussion about the breaking of the Internet
- I’ve Just Liberated My Modules
- Left-pad en GitHub
- Is left-pad Indicative of a Fragile JavaScript Ecosystem?
- Overcoming JavaScript Fatigue
- One developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript
- How 17 Lines of Code Took Down Silicon Valley’s Hottest Startups
- Npm package author revokes his packages, breaking tons of builds
- ¿Y si el software Open Source desapareciera?
- El programador que borró 11 líneas de código y se cargó Internet
Cambios, cambios... y más cambios
- State of the Art JavaScript in 2016
- If Loving Computers is Wrong, I Don't Want to Be Right
- Keeping Up and "Just In Time" Learning
The Magpie Developer
The Sad State of Web Development
- El estado del desarrollo Front-End en 2015 por Ashley Nolan
- The Sad State of Web Development
- A response to The Sad State of Web Development — Its not about Javascript really
Fatiga y tendencias
- A Study Plan To Cure JavaScript Fatigue
- Top JavaScript Frameworks & Topics to Learn in 2017
- How it feels to learn JavaScript in 2016
- State of the Art JavaScript in 2016
- JavaScript Fatigue Fatigue
- Want to learn JavaScript ?
- The Two Pillars of JavaScript
- 12 Books Every JavaScript Developer Should Read
- Javascript Fatigue
- Modern JavaScript for Ancient Web Developers
- Functional Programming for JavaScript People
- A Beginner’s JavaScript Study Plan
- Chrome Dev Tools
- Can I use
- EsLint
- JSHint
- Editores
-
- Alto nivel de abstracción para el usuario final
- Soporte como aplicación de terminal con Vorpal
- Generación dinámica de scripts en varios lenguajes (JS, Python, etc...)
- Gestión de procesos hijos de forma nativa
- Instalación global como módulo de NPM
-
- Aislamiento del core para mejorar la portabilidad usando patrones
- XMPP Protocolo
- Soporte de operaciones en terminal
- Soporte para la instalación como dependencia de NPM
- Extensión de por API interna
- Incorporación de servicios externos como Alchemy (Inteligencia Artificial como servicio)
- Gestión de la asincronía
- Array de objetos
- Gestión de notificación y ayuda al usuario
- Detección de eventos de Error y cierre del sistema
-
- Orientado a nuevos programadores
- Pseudocódigo funcional
- Alto nivel de abstracción
- Isomórfico
-
- Base de datos reactiva
- Almacenamiento Asíncrono
- Patrones de diseño (Namespace, Façade, etc...)
- Ambush Functions, funciones Lambda a demanda
- Soporte a Eventos
-
- Orientado a IOT
- Comunciación I2C
- Movimiento controlado por WebSockets
- Renderización en cliente de VR usando three.js
- Stream de vídeo bajo demanda frame a frame
- Uso del sintetizador de voz nativo de Chrome
- Gestión de redes sociales
-
- Orientado a la gestión de redes sociales
- Escucha activamente conversaciones en Google Hangouts
- Envía mensajes en Google Hangouts
- Envía mensajes en Slack
- Envía mensajes al azar clasificados por prioridad en Slack
- Envía mensajes de Error y estado al administrador en Goolgle Hangouts
- Puede ser desplegado en multiples entornos (Raspbian, Linux, OSX, Windows, C9...)
- Permite desplegar multiples avatares y personalidades desde la configuración para comunicarse en Slack
-
- Proyecto BioTecnológico
- Analiza ADN
- Permite buscar dentro del ADN ciertos patrones
- No almacena datos
- Futura migración a aplicación de escritorio
- Formulario para realizar nuevas queries (desarrollo) sin tener que programar
-
- Librería de utilidades para JavaScript
- Utiliza los mejores métodos de librerias extendidas como Lodash o Underscore
- Añade estos métodos a nuestro JavaScript mediante prototype
-
- Permite crear nuevas playlist
- Fusiona canciones de diversas playlist
- Permite juntar tus mejores canciones con las mejores canciones de otro amigo
- Social Login integrado
-
- Orientado a IOT
- Comunicación Serial
- Gestión de dispositivos externos
- No necesita HTTP
-
Raspi - System Info to Firebase
- Partiendo de otro repositorio/proyecto.
- Monitorización del sistema
- Uso de comandos de terminal
- Gestión de procesos inestables
- Integración con soluciones No-backend
- Tiempo Real
- No necesita HTTP
-
- Partiendo de otro repositorio/proyecto.
- APIs de terceros
- Stream directo de datos
- Servidor Http
- Tiempo Real y sincronía con WebSockets
- Eventos
- Evaluación semántica de la información
- Sin Bases de datos
-
- Integración con soluciones No-Backend
- FrontEnd con Jade
- BackEnd Flexible y dinámico
- APIRest Cliente -> Servidor
- BackEnd con Express
- CORS y Ajax
-
- Arquitectura alternativa en versiones anteriores
- Conversión y parseo a Json
- Procesamiento de datos en bruto
- APIRest
- Operaciones cíclicas gestionadas por Pillarsjs
- FrontEnd con Jade
- BackEnd con Express
- Documentación con JSDocs
-
- Evolución de Aire Madrid
- Scraping
- Fuentes de datos Alternativas
- Backend con Pillarsjs
- Frontend con Angularjs
- Permanencia de datos con GoblinDB
-
- Manejo de comunicación serial
- Eventos y asincronía
- IoT
-
- APIs de terceros
- Stream directo de datos
- Servidor Http
- Tiempo Real y sincronía con WebSockets
- Automatización con Slack y Hangouts