SlideShare a Scribd company logo
1 of 145
Download to read offline
Diseñar webs rápidas, flexibles y potentes
twitter.com/manz
¿Qué idea tenemos de
una web?
> emezeta.com
?
> pero… ¿qué ocurre aquí?
¿Cómo funciona una web
por dentro ?
> front-end
> front-end > back-end
> back-end> front-end
> back-end
> servidores web
Apache, nginx, LiteSpeed...
> back-end
> servidores web
Apache, nginx, LiteSpeed...
> bases de datos
MySQL, PostgreSQL, MongoDB...
> back-end
> servidores web
Apache, nginx, LiteSpeed...
> bases de datos
MySQL, PostgreSQL, MongoDB...
> lenguajes
PHP, NodeJS, Python, Ruby, Java...
Pero en esta ocasión vamos a
hablar de front-end...
> front-end > Lenguaje HTML
Estructura y contenido web
> front-end > Lenguaje HTML
Estructura y contenido web
> Lenguaje CSS
Diseño y aspecto visual
> front-end > Lenguaje HTML
Estructura y contenido web
> Lenguaje CSS
Diseño y aspecto visual
> Lenguaje JS
Programación web en front-end
Antes de empezar,
varios detalles...
> Hay 3 formas de hacer una web
> Hay 3 formas de hacer una web
Llamar al que sabe
> Hay 3 formas de hacer una web
Pagar al que sabe
> Hay 3 formas de hacer una web
Hacer que Chuck Norris se
sienta orgulloso de nosotros
Canary Chrome
Firefox Dev Opera Dev
> Chrome Dev Tools
[CTRL+SHIFT+I]
> Aprende a a la terminal
> nodejs >
(Javascript en el servidor) Node Package Manager
¿Cuál es la peor pesadilla de un
diseñador/desarrollador web?
¿Cuál es la peor pesadilla de un
diseñador/desarrollador web?
(A parte de Internet Explorer)
> ¿Consumo de RAM? [SHIFT+ESC]
Bueno, podría... pero no...
> Fragmentación web
En un navegador se ve genial,
pero cuando intentamos verlo en otro...
> Fragmentación web
> Fragmentación web
> CanIUse.com
HTML TEST.COM
CSS TEST.COM
> DoIUse.com
> objetivos > Rápida
Debe cargar lo más rápido posible.
> objetivos > Rápida
Debe cargar lo más rápido posible.
> Flexible
Debe ser fácil de mantener.
> objetivos > Rápida
Debe cargar lo más rápido posible.
> Flexible
Debe ser fácil de mantener.
> Potente y eficiente
Usar los recursos a tu alcance.
HTML5
Estructura y contenido
> HTML5
<div id="panel">
<h3>Selecciona tu opción:</h3>
<select id="tipo" class="flat">
<option value="1">Opción #1</option>
<option value="2">Opción #2</option>
<option value="3">Opción #3</option>
</select>
</div>
lenguajehtml.com
> HTML5
> Minificación de código
Objetivo: Reducir el peso del archivo.
Minify, Uglify (minificadores)
Prettify, Beautify (desminificadores)
> Minificación de código
<div class="text">
<h3>Información</h3>
<a href="http://twitter.com/Manz">@Manz</a>
<a href="http://www.emezeta.com/">Web</a>
</div>
...
<div class="text"><h3>Infor
mación</h3><a href="http://
twitter.com/Manz">@Manz<
/a><a href="http://www.eme
zeta.com/">Web</a></div>
...
11KB32KB
> Minificación de código
- Eliminar (colapsar) espacios y/o saltos de línea.
- Eliminar comentarios.
- Reducir código (borrar redundancias, usar alternativas...).
- Reagrupar selectores CSS.
- Redondear unidades a “X” decimales.
Objetivo: Reducir el peso del archivo.
Minify, Uglify (minificadores)
Prettify, Beautify (desminificadores)
> npm install -g html-minifier
> html-minifier index.html
--minify-css --minify-js --remove-script-
type-attributes --remove-style-link-type-
attributes --use-short-doctype --remove-
comments
--collapse-whitespace -o index.min.html
> cat index.html | html-minifier
> Minificación HTML
Minifica el CSS o el
JS “inline” (requiere
cleancss / uglifyjs)
Elimina atributos
“type” o simplifica
DocType (HTML5)
Elimina los
comentarios HTML
del documento
Elimina (colapsa)
los espacios en
blanco del HTML
> Selectores CSS
div#info
div.flat
ul.links a
<div id="info">Info</div>
<div class="flat">...</div>
<ul class="links">
<li>
<a href="#link">enlace</a>
</li>
</ul>
> EMMET
select#tipo>option[value=$]{Opción #$}*3
bit.ly/emmetcheat
<select id="tipo">
<option value="1">Opción #1</option>
<option value="2">Opción #2</option>
<option value="3">Opción #3</option>
</select>
TAB
> HAML > JADE > Slim
slim-lang.comjade-lang.comhaml.info
> HAML
#panel
%h3 Selecciona tu opción:
%select#tipo.flat
%option{:value => "1"} Opción #1
%option{:value => "2"} Opción #2
%option{:value => "3"} Opción #3
haml.info
> JADE
#panel
h3 Selecciona tu opción:
select#tipo.flat
option(value='1') Opción #1
option(value='2') Opción #2
option(value='3') Opción #3
jade-lang.com
> JADE
include info.include.jade
- var title = "Selecciona tu opción"
#panel
h3= title
select#tipo.flat
ul
each val in [1, 2, 3]
option(value=val) Opción ##{val}
jade-lang.com
Incluir código HTML
de forma muy
organizada.
Variables
personalizadas
con contenido.
Estructuras de
control, bucles o
facilidades.
> APIS de HTML5
WebStorage
API MultimediaGeolocalización
Vibración
michelacosta.com
> APIS de HTML5
La web debe ser rápida
...para los usuarios
...para los buscadores
> emezeta.com
DNS ConexiónSSL Subida Espera Descarga
Dominio Alojamiento Contenido
html
Redirección
Backend ¿Depende
del usuario?
Se puede optimizar
> Velocidad
> Fuente: Google Analytics
Dominio
Conexión
Redirección
Respuesta
Descarga
Total
Restante
0,02s
0,10s
0,24s
0,30s
0,15s
5,69s
4,88s
DominioAlojamientoWeb
CSS
html
PNG
PNG
JPG
JPG
JS
> esto ocurre por cada recurso de la web
al principio
al final
> Chrome Dev Tools
> Pingdom Tools
> Google PageSpeed
> Web Page Test
http://tools.pingdom.com/fpt/
https://developers.google.com/speed/pagespeed/
http://www.webpagetest.org/
> Reducir número de peticiones
zerosprites.com
> Reducir número de peticiones
spritecow.com
> Reutilizar peticiones
cdnjs.com jsdelivr.com
caché
> Tipo datos
> Fuente: http://httparchive.org/
Imágenes
Scripts
Videos
Fuentes
CSS
HTML
1332KB
337KB
227KB
100KB
64KB
54KB
> Imágenes
> Fuente: http://httparchive.org/
JPG
PNG
GIF
Otros
WebP
46%
29%
23%
2%
~1%
> Fuentes
> Fuente: http://httparchive.org/
Fuentes
Sin fuentes
53%
47%
¿Hay otra forma de reducir
peticiones?
> FontAwesome
fontawesome.io
> WebFont
PNG
A B C
> WebFonts
> No pierden resolución al ampliar/reducir
> Son fuentes, puedes tratarlas con CSS
> WebFonts
> No pierden resolución al ampliar/reducir
> Son fuentes, puedes tratarlas con CSS
> Desventaja: Sólo un color
> Desventaja: Quiero un icono específico
> ¿Solución?
> ¿Solución?
> IcoMoon
icomoon.io/app
> Reducir tiempo de descarga
Reducir tamaño
¿¿Cómo??
> Utilizar compresión HTTP (GZip)
GZip? GZip?
15KB
85KB
html
GZip!
85KB
html
> curl -L -H Accept-encoding:gzip -I emezeta.com
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 02 Jul 2015 03:28:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 20
Connection: keep-alive
Vary: Accept-Encoding
Content-Encoding: gzip
> ¿Usa compresión HTTP?
El sitio web
comprime en gzip
los documentos
Sólo algunos
formatos pueden
usar compresión
HTTP: html, json,
css, js, xml, svg...
Pregunto si el sitio
web soporta
compresión HTTP
> npm install -g imagemin
gifsicle@3.0.1 postinstall
√ gifsicle pre-build test passed successfully
jpegtran-bin@3.0.2 postinstall
√ jpegtran pre-build test passed successfully
optipng-bin@3.0.2 postinstall
√ optipng pre-build test passed successfully
imagemin@3.2.0
├── get-stdin@4.0.1
├── path-exists@1.0.0
├── optional@0.1.3
...
> Optimización de imágenes
> ls -lh image.png
-rw-r--r-- Manz 447k image.png
> imagemin image.png
> ls -lh buildimage.png
-rw-r--r-- Manz 369k image.png
> Optimización de imágenes
> npm install -g jpgo
> jpgo image.jpg
image.jpg before=153.6 kB after=144.93 kB
reduced= 8.67 kB
> Optimización de imágenes
CSS3
Diseño y apariencia
> CSS3
button.flat {
border: 0;
border-radius: 25px;
padding: 10px;
background: RGBA(0,0,0, 0.5);
color: white;
transition: all 2s ease-in-out;
}
button.flat:hover {
background: #A00;
cursor: pointer;
transition: all 1s ease;
}
lenguajecss.com
> CSS3
lenguajecss.com/css/
#contenedor {
border: 4px solid white;
padding: 10px;
display: flex;
}
.item {
width: 25px;
}
.item-1 { background: red; order: 1 }
.item-2 { background: green; order: 2 }
.item-3 { background: blue; order: 3 }
1 2 3
> FlexBox
#contenedor {
border: 4px solid white;
padding: 10px;
display: flex;
}
.item {
width: 25px;
}
.item-1 { background: red; order: 3 }
.item-2 { background: green; order: 2 }
.item-3 { background: blue; order: 1 }
3 12
> FlexBox
#contenedor {
border: 4px solid white;
padding: 10px;
display: flex;
flex-direction: column;
}
.item {
width: 25px;
}
.item-1 { background: red; order: 3 }
.item-2 { background: green; order: 2 }
.item-3 { background: blue; order: 1 }
> FlexBox
3
1
2
img {
border: 2px solid white;
width: 300px;
margin: .4em;
}
.original { }
.sepia { filter: sepia(1) }
.brillo { filter: brightness(1.5) }
.contraste { filter: contrast(1.5) }
.grayscale { filter: grayscale(1) }
.hue { filter: hue-rotate(150deg) }
> Filtros CSS
Codepen: RPMbbx
> CSS es muy potente
http://i.imgur.com/47xkq4v.jpg
#earth {
width: 300px;
height: 300px;
border-radius: 50%;
background: url(http://i.imgur.com/47xkq4v.jpg);
background-repeat: repeat-x;
margin: 5em auto;
animation: rotacion 6s linear infinite;
box-shadow: inset 0 0 25px 5px #000;
}
@keyframes rotacion {
0% { background-position: 620px }
100% { background-position: 0 }
}
> CSS es muy potente
Codepen: OVQYEY
> Animaciones CSS
bit.ly/animacionescss
> npm install -g clean-css
> cleancss index.css
--keep-line-breaks --rounding-precision 1
--s0 --skip-shorthand-compacting
--skip-advanced -o index.min.css
> cat index.css | cleancss
> Minificación CSS
Respeta los saltos
de línea (no une en
una sola línea)
Elimina
comentarios CSS.
Redondea
unidades CSS a 1
decimales (def: 2)
Desactiva
optimizaciones
(shorthands,
compresión...)
> EMMET
animps:r
bit.ly/emmetcheat
animation-play-state: running;|
TAB TABmr
margin-right: |;
TAB
margin-right: 5px;|
mr:5
> LESS > SASS > Stylus
bit.ly/styluscsssass-lang.comlesscss.org
> LESS
@import "core.less";
.transition(@time: 1s) {
transition: all @time ease;
-webkit-transition: all @time ease;
}
button.flat {
border: 0;
border-radius: 25px;
padding: 10px;
background: RGBA(0,0,0, 0.5);
color: white;
.transition(2s);
&:hover {
background: #A00;
cursor: pointer;
.transition;
}
}
lesscss.org
> autoprefixer
img#mario {
image-rendering: -webkit-optimize-contrast;
image-rendering: -moz-crisp-edges;
image-rendering: -o-pixelated;
image-rendering: pixelated;
}
bit.ly/aprefixer
img#mario {
image-rendering: pixelated;
}
(ahora forma parte de postcss)
> cssnext
a:hover {
color: color( red blackness(80%) ); // Oscurecer colores
background-color: #44556677; // Soporta c. alfa en hex
}
:root {
--mainColor: red; // Define variable CSS “mainColor”
}
a {
color: var(--mainColor); // Usa variable CSS
}
img.sepia {
filter: sepia(1); // Organiza código (autoprexifer, minify…)
}
cssnext.io
> npm install -g uncss
> uncss http://www.emezeta.com/ > out.css
> CSS no utilizado
Elimina estilos
CSS sin utilizar.
Guarda los
cambios en el
archivo out.css
> SVG
<svg xmlns="http://www.w3.org/2000/svg">
<path d="M9.43 206.88
l35-145 30.7 75.72 30.73-72.86 25.7 139.28
42.15-135.7 42.87 137.85v
-135L308 202.6V71.17h
102.14l-89.28 134.28 121.43-.7" />
</svg>
> Inkscape
2,1KB
> Optimización de SVG
> npm install -g svgo
> svgo -i manz.svg -p 2 --pretty -o manz.min.
svg
Done in 72 ms!
2.113 KiB - 88.3% = 0.247 KiB
Redondea a 2 decimales
las unidades utilizadas.
Respeta los saltos
de línea y usa
indentaciones.
0,2KB
> SVG
path {
fill: none; /* Trazos sin relleno */
stroke: #222;
stroke-dasharray: 2000px 2000px; /* line,space */
stroke-dashoffset: 2000px; /* Desplazamiento */
stroke-width: 8px;
}
/* Al mover sobre la región SVG... */
svg:hover path {
stroke-dashoffset: 0;
transition: stroke-dashoffset 8s linear;
}
> SVG+CSS
codepen.io/manz/pen/OVQLbG
(¡con apenas 4 líneas de
código HTML y 9 de CSS!)
responsivelogos.co.uk
d3js.org
> d3
Javascript
Programación en cliente
> JavaScript var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
fives = []
nums.forEach(v => {
if (v % 5 === 0)
fives.push(v)
})
console.log(fives)
lenguajejs.com
> npm install -g uglifyjs
> uglifyjs index.js
--comments all --compress --lint
-o index.min.js
> cat index.min.js | uglifyjs --beautify 2>null
> Minificación JS
Preserva todos los
comentarios JS
(permite RegExp)
Activa el
compresor de
código JS.
Parsea y avisa de
errores Javascript.
Des-minifica el
código Javascript
mostrado con cat.
> CoffeeScript
var i, j;
for (i = j = 0; j <= 10; i = ++j) {
alert(i);
}
coffeescript.org
alert i for i in [0..10]
También tenemos fragmentación...
=
Estándar ECMAScript
ES5 ES6 ES7
JUN/2015DIC/2009 En progreso
kangax.github.io/compat-table/es6
> babel
const PI = 3.14
let func = e => console.log(e)
func(5)
func(`El valor de PI es ${PI}.`)
babeljs.io
"use strict"
var PI = 3.14
var func = function(e) {
return console.log(e)
}
func(5)
func("El valor de PI es " + PI + ".")
> JQuery
jquery.com
var request = new XMLHttpRequest();
request.open('GET', '/url', true);
request.onreadystatechange = function() {
if (this.readyState === 4)
if (this.status >= 200 && this.status < 400)
var data = JSON.parse(this.responseText);
};
request.send();
$.getJSON('/url', function(data) {
// código
});
> Rendimiento
codepen.io/manz/pen/JdEXKW
youmightnotneedjquery.com
$('#users li')
document.querySelectorAll('#users li')
Datos
Formatos ligeros
> XML
w3.org/XML/
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<array>1</array>
<array>2</array>
<array>3</array>
<array>4</array>
<array>5</array>
<booleano>true</booleano>
<objeto>
<a>4</a>
<b>Texto</b>
<c />
</objeto>
</root>
> JSON
json.org
{
"array": [1, 2, 3, 4, 5],
"booleano": true,
"objeto": {
"a": 4,
"b": "Texto",
"c": null
}
}
ejemplo.json
1 2 3 4 5
4
Texto
Compatible con JS
bit.ly/chromejsonview
> YAML
yaml.org
---
array: [1, 2, 3, 4, 5]
booleano: true
objeto:
a: 4
b: 'Texto'
c: null
jekyllrb.com
---
layout: post
category: tecnología
tags: [web, blogs]
---
# Título
Esto es un **pequeño
ejemplo** de un artículo
escrito con *markdown*
y *YAML Front Matter*.
Nuevos CMS:
Generadores estáticos
JSON
0,09KB0,1KB0,3KB
¡Quiero algo más cómodo!
¡Pero todo esto es mucho trabajo!
sitioweb
src
index.jade
menu.include.jade
css
index.less
js
index.js
lazyload-plugin.js
img
logo.psd
logo.png
sitioweb
dist
index.html
css
index.css
index.min.css
js
index.js
index.min.js
img
logo.png
src: Carpeta fuente dist: Carpeta destino
Editores
Programas flexibles
> Atom
atom.io
> Sublime Text
sublimetext.com
> Sublime > Atom > Brackets
brackets.ioatom.iosublimetext.com
Task Runners
Programadores de tareas
> Grunt > Gulp > Broccoli
broccolijs.comgulpjs.comgruntjs.com
> Gulp
gulpjs.com
GULP
GULP
> Gulp
gulpjs.com
CSS
MIN.CSS
LESS
> Gulp
gulpjs.com
> gulp
TIDY
> gulpfile.js
gulpjs.com
var gulp = require('gulp')
var minifycss = require('gulp-minify-css')
var autoprefixer = require('gulp-autoprefixer')
var rename = require('gulp-rename')
gulp.task('default', function() {
return gulp.src('index.css')
.pipe(autoprefixer())
.pipe(minifycss())
.pipe(rename('index.min.css'))
.pipe(gulp.dest('dist/css'))
})
Requiere instalar previamente:
npm install -g gulp
npm install --save-dev gulp gulp-minify-css
gulp-autoprefixer gulp-rename
> gulp
> plugins
gulpjs.com/plugins/
> gulp-minify-css
> gulp-autoprefixer
> gulp-concat
> gulp-coffee
> gulp-webserver
> gulp-image
> gulp-htmlmin
> gulp-run
> gulp-less
> gulp-jade
> gulp-babel
> gulp-newer
(con livereload)
(jpg, png, svg...)
> ¿Mucha información?
bit.ly/aprendehtml5bit.ly/aprendecss3
> Cursos de CSS3 y HTML5
Próximamente
> Curso de Javascript
> ¡Gracias!

More Related Content

Viewers also liked

Flujos de trabajo para la web moderna
Flujos de trabajo para la web modernaFlujos de trabajo para la web moderna
Flujos de trabajo para la web modernaMarcos Gonzalez
 
Mejores practicas front end
Mejores practicas front endMejores practicas front end
Mejores practicas front endSoftware Guru
 
Flujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontendFlujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontendLeonidas Esteban González
 
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)Román Hernández
 
El Club de los Developers: Back to the future #TLP2016
El Club de los Developers: Back to the future #TLP2016El Club de los Developers: Back to the future #TLP2016
El Club de los Developers: Back to the future #TLP2016Román Hernández
 
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)Román Hernández
 
Subtitular videos con Aegisub
Subtitular videos con AegisubSubtitular videos con Aegisub
Subtitular videos con AegisubRomán Hernández
 
Chicisimo App Móvil
Chicisimo App MóvilChicisimo App Móvil
Chicisimo App MóvilGertrumm
 
Optimización de imágenes (mejor calidad y menor tamaño)
Optimización de imágenes (mejor calidad y menor tamaño)Optimización de imágenes (mejor calidad y menor tamaño)
Optimización de imágenes (mejor calidad y menor tamaño)Román Hernández
 
Brand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con AthentoBrand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con AthentoAthento
 
Slide 1
Slide 1Slide 1
Slide 1y2k_mx
 
Experimentos Growth Hacking (#1)
Experimentos Growth Hacking (#1)Experimentos Growth Hacking (#1)
Experimentos Growth Hacking (#1)Román Hernández
 
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + DemoAlfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + DemoAlfresco Software
 
Scio Talks - Gobierna el Frontend 1er parte
Scio Talks - Gobierna el Frontend 1er parteScio Talks - Gobierna el Frontend 1er parte
Scio Talks - Gobierna el Frontend 1er parteScio Consulting
 

Viewers also liked (20)

Flujos de trabajo para la web moderna
Flujos de trabajo para la web modernaFlujos de trabajo para la web moderna
Flujos de trabajo para la web moderna
 
Mejores practicas front end
Mejores practicas front endMejores practicas front end
Mejores practicas front end
 
Las Herramientas de un Frontend
Las Herramientas de un FrontendLas Herramientas de un Frontend
Las Herramientas de un Frontend
 
Flujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontendFlujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontend
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
Introducción al Growth Hacking (TLP Tenerife - TLP Innova 2014)
 
El Club de los Developers: Back to the future #TLP2016
El Club de los Developers: Back to the future #TLP2016El Club de los Developers: Back to the future #TLP2016
El Club de los Developers: Back to the future #TLP2016
 
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
Novedades de Front-end 2016 (CSS3, HTML5 y APIs Javascript)
 
Subtitular videos con Aegisub
Subtitular videos con AegisubSubtitular videos con Aegisub
Subtitular videos con Aegisub
 
Chicisimo App Móvil
Chicisimo App MóvilChicisimo App Móvil
Chicisimo App Móvil
 
Optimización de imágenes (mejor calidad y menor tamaño)
Optimización de imágenes (mejor calidad y menor tamaño)Optimización de imágenes (mejor calidad y menor tamaño)
Optimización de imágenes (mejor calidad y menor tamaño)
 
Brand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con AthentoBrand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con Athento
 
Slide 1
Slide 1Slide 1
Slide 1
 
Presentación de Alkaid - Compañía de Software
Presentación de Alkaid - Compañía de SoftwarePresentación de Alkaid - Compañía de Software
Presentación de Alkaid - Compañía de Software
 
Experimentos Growth Hacking (#1)
Experimentos Growth Hacking (#1)Experimentos Growth Hacking (#1)
Experimentos Growth Hacking (#1)
 
Novedades en Alfresco One 5.0
Novedades en Alfresco One 5.0Novedades en Alfresco One 5.0
Novedades en Alfresco One 5.0
 
Arquitectura en Alfresco
Arquitectura en AlfrescoArquitectura en Alfresco
Arquitectura en Alfresco
 
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + DemoAlfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
 
Chicisimo
ChicisimoChicisimo
Chicisimo
 
Scio Talks - Gobierna el Frontend 1er parte
Scio Talks - Gobierna el Frontend 1er parteScio Talks - Gobierna el Frontend 1er parte
Scio Talks - Gobierna el Frontend 1er parte
 

Similar to Front-end: Diseñar webs rápidas, flexibles y potentes

High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web SitesopenfinanceDev
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLLorena Fernández
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Fundamentos del diseño web front end
Fundamentos del diseño web front endFundamentos del diseño web front end
Fundamentos del diseño web front endDavid Hurtado
 
WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17Javier Agudo
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoFernando Serer
 
Html5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoyHtml5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoyParadigma Digital
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 

Similar to Front-end: Diseñar webs rápidas, flexibles y potentes (20)

High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
 
Html5 g@tv
Html5 g@tvHtml5 g@tv
Html5 g@tv
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Fundamentos del diseño web front end
Fundamentos del diseño web front endFundamentos del diseño web front end
Fundamentos del diseño web front end
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
 
WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17
 
Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014
 
HTML5 y CSS3 ¿Imprescindibles?
HTML5 y CSS3 ¿Imprescindibles?HTML5 y CSS3 ¿Imprescindibles?
HTML5 y CSS3 ¿Imprescindibles?
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del Mediterráneo
 
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScriptFull-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
 
Html5
Html5Html5
Html5
 
In 10
In 10In 10
In 10
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Curso HTML y CSS, parte 2
Curso HTML y CSS, parte 2Curso HTML y CSS, parte 2
Curso HTML y CSS, parte 2
 
De HTML a Express
De HTML a ExpressDe HTML a Express
De HTML a Express
 
HTML5
HTML5HTML5
HTML5
 
Html5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoyHtml5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoy
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 

More from Román Hernández

Emezeta: De blog personal a blog profesional
Emezeta: De blog personal a blog profesionalEmezeta: De blog personal a blog profesional
Emezeta: De blog personal a blog profesionalRomán Hernández
 
FONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidFONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidRomán Hernández
 
Jornada Opendata: España webcam
Jornada Opendata: España webcamJornada Opendata: España webcam
Jornada Opendata: España webcamRomán Hernández
 
Optimización del rendimiento web
Optimización del rendimiento webOptimización del rendimiento web
Optimización del rendimiento webRomán Hernández
 

More from Román Hernández (9)

Emezeta: De blog personal a blog profesional
Emezeta: De blog personal a blog profesionalEmezeta: De blog personal a blog profesional
Emezeta: De blog personal a blog profesional
 
FONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidFONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en Android
 
Jornada Opendata: España webcam
Jornada Opendata: España webcamJornada Opendata: España webcam
Jornada Opendata: España webcam
 
Optimización del rendimiento web
Optimización del rendimiento webOptimización del rendimiento web
Optimización del rendimiento web
 
Ganar dinero con Android
Ganar dinero con AndroidGanar dinero con Android
Ganar dinero con Android
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
Entendiendo android
Entendiendo androidEntendiendo android
Entendiendo android
 
Android conference
Android conferenceAndroid conference
Android conference
 
Gestión web con éxito
Gestión web con éxitoGestión web con éxito
Gestión web con éxito
 

Recently uploaded

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Recently uploaded (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Front-end: Diseñar webs rápidas, flexibles y potentes