Como crear una web: 5 Gtmetrix y la optimización

 

Como crear una web la optimización y GTmetrix

 

Una vez que ya tenemos el diseño creado de nuestra web, es muy importante verificar si este diseño es óptimo o si por el contrario debe sufrir algunas modificaciones para que el rendimiento en general de la web sea mayor. Para todo ello, el administrador cuenta con una serie de herramientas, con las cuales puede «medir» lo bien diseñada que está la web.

Conceptos clave en la optimización

Para la optimización de páginas web, hay una serie de conceptos que se deben conocer tanto qué son, como el cómo afecta a mi web. Aquí detallo las más importantes:

  • Tiempo de carga de página (Page load time): este concepto es bastante sencillo, se refiere al tiempo que tarda nuestra página en cargarse por completo. Según algunas informaciones Google toma en cuenta los tiempos de carga de página para el posicionamiento y este debería siempre estar en la medida de lo posible por debajo de 5s. Es muy recomendable tiempos de carga entorno a 2s ya que el usuario suele abandonar si tarda mucho nuestra página en cargar, además desde redes móviles los tiempos de carga suelen ser mayores, con lo que se agrava el problema.
  • Tamaño de la página (Total page size): es lo que pesa nuestra página, hace un par de años, era un concepto poco importante porque nuestras conexiones eran lo suficientemente rápidas en este aspecto, hoy en día nadie quiere que al visitar x página gaste 15MB de su tarifa de datos. Así que hay que mantener esto lo más bajo posible, se recomienda que no sea muy superior a 1MB.
  • Número de peticiones (Total number of requests): es el número de peticiones que debe realizar nuestro ordenador al servidor, para cargar la página completa. Una petición se puede generar por muy diversos motivos como: cargar una imagen, cargar un archivo javascript, cargar una hoja de estilos etc. El problema es que el servidor tarda un tiempo en atender cada petición, así que por muy rápido que sea nuestro servidor, si realizamos 200 peticiones siempre tardará un mínimo de tiempo, por el tiempo de procesar la petición. Aquí se recomiendan utilizar una única hoja de estilos para toda la web, pocos archivos de javascript y combinar las distintas imágenes o cambiarlas por código CSS si son botones, para reducir las peticiones.
  • Número de peticiones a la base de datos: este dato no sale en GTmetrix, pero si nos sale a los administradores en nuestros CMS (si tenemos alguno instalado), esto nos indica cuantas consultas se tienen que hacer en la base de datos para mostrar la página. Como en el apartado anterior hay que minimizar al máximo el número de consultas.

Leer más

Cómo atraen talento 5 grandes compañías

Cómo atraen talento 5 grandes compañías

Uno de los mayores problemas que tienen actualmente las compañías tecnológicas es encontrar talento tecnológico. Por ello, suelen utilizar cualquier iniciativa para colar sus ofertas de trabajo y dar difusión de las mismas. Bajo la premisa de que siempre es un buen momento para promocionar la compañía, os mostramos algunos ejemplos de cómo lo hacen.

 

Booking y la cabecera HTTP x-recruiting

Si visitamos la página de Booking, seguramente no veamos nada relativo a las ofertas de trabajo. Pero en el pié de página, hay un enlace a las ofertas. Sin embargo, para atraer a más desarrolladores, cualquier llamada HTTP a Booking devuelve algo como esto:

HTTP/1.1 200 OK
server: nginx
date: Fri, 18 Oct 2019 19:58:32 GMT
content-type: text/html; charset=UTF-8
transfer-encoding: chunked
cache-control: private
vary: Accept-Encoding, User-Agent
content-encoding: br
set-cookie: bkng=XXXX; domain=.booking.com; path=/; expires=Wed, 16-Oct-2024 19:58:32 GMT; Secure; HTTPOnly
strict-transport-security: max-age=604800
x-content-type-options: nosniff
x-recruiting: Like HTTP headers? Come write ours: https://careers.booking.com
x-xss-protection: 1; mode=block

Como podéis observar, utilizan como gancho el texto Like HTTP headers? Come write ours y el enlace a su página de ofertas de empleo.

Leer más

¿Qué opinan los desarrolladores sobre Docker?

¿Qué opinan los desarrolladores sobre Docker?

Si sois asiduos lectores de este blog, el término Docker seguro que no es nuevo para vosotros. Para aquellos que no lo conozcan tenemos un tutorial de docker, que contiene definiciones de los conceptos principales y recursos para profundizar. Pero hoy os queremos mostrar otro punto de vista sobre esta tecnología y/o herramienta cada vez más popular, el de los desarrolladores que usan Docker en su día a día.

¿Cuánto se usa Docker?

Quizás sea esta una de las preguntas que más veces nos han hecho, y la verdad siempre respondemos con un depende. Como todos sabemos cada empresa es un mundo y dentro de las mismas, no todos los equipos usan lo mismo (mundos dentro de mundos). Así que se hace muy difícil dar una estimación de uso de esta tecnología, por ello vamos a analizarla atendiendo a varios factores.

En el caso de las startups al estar creando software desde cero o con muy poca antiguedad, nos atreveríamos a decir que son las que más usan Docker. En este tipo de empresa donde muchas veces son pocos los desarrolladores y mucho el trabajo por hacer, se junta el caldo de cultivo perfecto para utilizar esta herramienta. A nivel personal, de las empresas de este tipo que conozco, la mayoría sí lo usan.

Si analizamos las empresas de producto propio, diría que su uso es mucho más dispar. Muchas tienen productos muy maduros y no suelen actualizar su stack de un año para otro. Centrándome en las que conozco, diría que menos de un tercio lo están usando y creo que ese porcentaje puede ser incluso menor, rondando el 10%.

La otra tipología de empresa informática que nos queda por analizar, son las consultoras y todas aquellas empresas que realizan desarrollos para terceros. En este caso creo que el porcentaje de uso es muy bajo, porque usualmente sólo se hace lo que el cliente pide y se intentan seguir procesos los más estandarizados posibles para agilizar el trabajo.

Leer más

5 libros técnicos que deberías leer este verano

5 libros técnicos que deberías leer este verano

Llega agosto, un mes que clásicamente se ha asociado a vacaciones (si nos lees desde España), por ello os propongo unas lecturas para este periodo donde tenemos más tiempo libre. En la piscina, en la playa, en casa a la hora de la siesta…, nunca es mal momento para saborear un buen libro. Aunque, como no podria ser de otra forma, tratándose de una página sobre informática, os vengo a recomendar algunos libros técnicos imprescindibles.

Pero, ¿me tengo que formar en mi tiempo libre?, ante esta pregunta que muchas veces me han planteado, te respondería que sí y no. En mi opinión, lo divido en 3 supuestos:

  1. Si la formación es necesaria para realizar tu trabajo, tendría que dartela tu empresa en tiempo de trabajo
  2. Si son conocimiento que te van a ayudar a mejorar cómo haces tu trabajo, debería dartelo tu empresa, aunque podría que parte fuera en tu tiempo libre
  3. Si las enseñanzas no están relacionadas con tu puesto, tu empresa debería apoyarte con algún medio (tiempo, materiales, cursos…) pero caería más en tu tiempo libre

 

Clean code

El primero de todos es quizás el libro más conocido de programación, Clean Code, en español, Código Limpio. Este libro, que actualmente estoy leyendo es una recopilación de consejos, buenas prácticas y técnicas para que tu código sea de mayor calidad. A mí me gusta mucho decir, que un código que funciona es como sacar un 5 en un examen, es lo mínimo para pasar la prueba. Sin embargo, entre ese 5 (que funcione) y el 10 (que sea de gran calidad), hay mucho espacio por recorrer. Este libro justamente trata de eso, cómo coger un código de 5 y llevarlo lo más cercano posible al 10. Para ello aborda cuestiones como:

  • El estilo del código (identación, nombres, formatos)
  • Gestión de errores
  • Testing
  • Diseño de objectos y clases
  • Concurrencia

Mi recomendación, es que no es un libro que sea lea bien como una novela (leyendo decenas de páginas de seguido), sino que es mejor leer un capítulo cada día o semana, e ir aplicando e interiorizando lo que propone.

Leer más

Docker: conceptos principales y tutorial paso a paso

Virtualización con Docker primeros pasos

Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite desplegar programas en contenedores de software.

¿Qué es y cómo funciona Docker?

Como hemos comentado, Docker es un proyecto Open Source creado y liderado por Solomon Hykes que afronta el problema de la virtualización de servicios y programas. Este tema es muy importante, ya que se busca aprovechar al máximo el recurso disponible (un servidor) para ejecutar los servicios que necesitemos.

El funcionamiento de Docker es distinto a los métodos más comunes que se han utilizado anteriormente, ya que no necesita un sistema operativo invitado para ejecutar sobre él los servicios, sino que lo hace sin este intermediario. Esta tecnología se denomina de contenedores, siendo un contenedor un programa, servicio o sistema que queremos desplegar. Esta arquitectura se puede ver en la siguiente ilustración:

Contenedores de Docker

Al no utilizar máquinas virtuales es capaz de conseguir un mayor rendimiento, ya que el consumo de recursos es menor. Sin embargo, gracias al uso del kernel de Linux es capaz de aislar cada contenedor. Esta decisión también aporta otras características como una mayor seguridad (gracias a estar aislados) o un despliegue más rápido de los recursos.

Leer más

Estamos creando proyectos frankenstein

Estamos creando proyectos frankenstein

La informática ha evolucionado mucho en los últimos años, pasando de ser un hobby de unas pocas personas, a un sector profesional cada día más importante en los países desarrollados. Sin embargo, ¿estamos haciendo mejor software ahora que antes?, este debate es el que os propongo hoy, entorno a los proyectos frankenstein.

El origen de este artículo

Leyendo el interesante blog de Javi Santana y su artículo que os recomiendo especialmente: Algunos consejos para diseñar un API leí una frase que me marcó muchísimo y no era capaz de quitarme de la cabeza:

«Recuerda que ahora la gente no programa, busca el ejemplo más cercano a lo que necesitan y los modifican.»

Esta frase creo que resume de manera bastante adecuada el flujo de trabajo de la mayoría de los desarrollos actuales. Lo que nos lleva al software frankenstein.

Leer más

¿Qué es LaTeX y cómo usarlo fácilmente?

¿Qué es LaTeX y cómo usarlo fácilmente?

En este artículo te vengo a hablar de LaTeX, un sistema para la creación de documentos muy usado en el ámbito científico. Además me gustaría recomendarte un itinerario, para que te puedas adentrar en su uso de manera sencilla.

¿Qué es LaTeX?

LaTeX, como he esbozado anteriormente, es un sistema que permite la creación de documentos. Sin embargo, su funcionamiento difiere mucho del editor de texto por excelencia, Microsoft Word. Esto es debido a que LaTeX funciona de manera similar a HTML, teniendo un conjunto de etiquetas para dar formato y un software capaz de renderizarlo.

¿Qué ventajas tiene LaTeX?

Si bien es cierto que su curva de aprendizaje es bastante pronunciada, LaTeX cuenta con algunas ventajas importantes:

  • Consigue documentos que no pierden calidad al ser ampliados.
  • Facilita la introducción de fórmulas y el uso de la notación matemática.
  • Separa el estilo, del propio contenido.
  • Permite dividir un proyecto en distintos ficheros, que son compilados para obtener el resultado final.
  • Maneja bien la bibliografía, por defecto.

Como puedes apreciar, con las características arriba destacadas, LaTeX se ha convertido en el estándar de facto, para las publicaciones científicas y las obras que contienen simbología matemática.

Leer más

¿Cómo hacer una copia de seguridad en Android?

¿Cómo hacer una copia de seguridad en Android?

Actualmente contamos con multitud de dispositivos electrónicos que hay que tener vigilados. Esto implica realizarles un cierto mantenimiento de manera más o menos frecuente, mantener copias de seguridad, actualizarlos, etc.

Como hacer una copia de seguridad completa de Android

Android como todo sistema operativo, consta de una serie de particiones donde almacena sus datos. Profundizando en este concepto, podemos ver como Android utiliza el kernel de Linux y sistemas de archivos que son viejos conocidos, como ext4. Es por ello que el proceso de realizar una copia de seguridad completa de un dispositivo Android, no difiere mucho de como lo haríamos en uno Linux.

El principal problema de realizar esta copia de seguridad es que para acceder a las herramientas necesarias, a nivel de partición necesitamos que el teléfono este rooteado, es decir, que tengamos acceso de root o superusuario. Para evitar esto, os propongo usar TWRP.

Leer más

Ctop: controla y mantén a raya tus contenedores

Ctop: controla y mantén a raya tus contenedores

Recientemente la popularidad del uso de contenedores, especialmente bajo Docker, cada vez es mayor. Por ello, empieza a surgir la necesidad de controlar, monitorizar y, en definitiva, vigilar estos contenedores.

Ctop la utilidad para controlar tus contenedores

Para las personas acostumbradas a trabajar con sistemas operativos Linux, el comando top nos resulta muy familiar. Además del mismo, es muy común usar la variación htop que muestra mejor la información, en mi opinión. Siguiendo con esta idea, Bradley Cicenas se lanzó a desarrollar Ctop, el top para contenedores.

¿Es necesario ctop?

Seguramente os estéis haciendo esta misma pregunta, que yo también me hice antes de escribir este artículo. Docker ya cuenta con algunos comando para ver información de los contenedores que tienes en el sistema, por ejemplo:

docker ps

Docker ps muestra los contenedores arrancados e información del mismo

docker stats

Docker stats muestra estadísticas de los contenedores

En mi opinión, ambos comando son un poco limitados en la información que muestran.

Leer más

Mi equipo de trabajo sí funciona

Mi equipo de trabajo sí funciona: el tuyo también debería

Aunque este año no estoy escribiendo con tanta asiduidad como solía hacer cuando estaba estudiando (una mudanza y un cambio de ciudad tienen parte de la culpa), quería aprovechar el primer artículo de 2019 para hablar sobre gestión de equipos.

 

El equipo de trabajo, ¿es necesario?

Como muchos sabréis cada vez es más popular trabajar en remoto u otras modalidades similares de teletrabajo, que unido a la superespecialización, están haciendo que los clásicos equipos de trabajo se tambaleen. Además, muchos desarrolladores estamos acostumbrados a desempeñar nuestra labor para pequeños clientes, dónde los equipos de trabajo suelen ser unipersonales o muy pequeños (2 o 3 personas).

Desde mi experiencia, el equipo de trabajo permite mejorar en gran medida lo anterior y esta tesis vengo a defender en este artículo.

¿Qué aporta un buen equipo de trabajo?

Para analizar el por qué de la necesidad de crear buenos equipos de trabajo, me gustaría resaltar algunas cosas que aportan tenerlos:

  • Gran flexibilidad para adaptarse a los cambios técnicos, al ser varias personas es posible que unos empiecen a analizar e investigar el nuevo cambio y luego ese conocimiento sea transmitido a la otra parte del equipo.
  • Acabar con las dependencias clásicas y el discurso este tema lo hizo X, es responsabilidad suya/sin él nadie sabe cómo va.
  • Permite crecer de manera mucho más rápida, al poder incorporar perfiles más junior e irlos formando dentro de una cantera, siendo más fácil de gestionar su progresión y seguimiento.

Leer más