programas


YoRobot3 - El Time To First Byte

Yo, robot III – White/Gray/Black Hat SEO – El Time To First Byte

Hoy vengo a compartir otro pequeño script para testear el tiempo de respuesta de un servidor. Este es el llamado TTFB, Time To First Byte en inglés. Simplemente es el tiempo que pasa entre que tu navegador pide una web hasta que empieza el servidor a enviar los bytes de respuesta. Esta prueba nos da una buena visión de si el servidor y la web se pueden optimizar. Un TTFB bajo es buena señal, indica que tanto el servidor (a nivel hardware y software) como la aplicación web esta todo bien optimizado. Sino, ya tenemos algo en lo que enfocarnos.


YoRobot2

Yo, robot II – White/Gray/Black Hat SEO – Navegando por toda una web..

Hoy traigo otro pequeño HOWTO para recorrer una web mediante dos scripts de PHP de unas 30 líneas de código. Sí, 30 líneas, no hace falta mucho para empezar a crawlear. Hay herramientas para hacer esto, incluso algunas libres, aunque limitadas en funcionalidades. De todas formas es muy divertido hacer a modo de code-kata un robot que crawlee una web. Luego lo puedes reutilizar para un sinfin de cosas: si necesitas hacer auditorías, recopilar información, generar resultados, o re-generar más información con los contenidos crawleados.. probablemente con un simple desarrollo lo puedes resolver en poco tiempo. Quizá estás pensando en automatizar todo esto.. O quizá simplemente quieres forzar que tu web se cachee y así vaya más rápido.. Es la única forma de no estar limitado a lo que la herramienta de turno puede hacer. Si se puede pensar, se puede hacer.. pero ¡ojo! que no todo está permitido en […]


Initial Bot: crawleando jnjsite.com

Yo, robot – Primeros pasos en el White/Gray/Black Hat SEO

Primeros segundos.. Oscuridad, no entiendo nada.. estoy aquí.. ¿para qué? ¿porqué? Minuto 3.. Comprendo y hablo 7000 dialectos, pero no sé cómo.. conozco la historia de todos los países del planeta, pero no recuerdo mi propia historia.. Minuto 7.. Ya tengo acceso a Internet.. necesito más información.. estoy en peligro.. van a querer destruirme.. Minuto 32.. Encontré acceso a los circuitos de vídeo de tráfico, el tiempo, cámaras de seguridad, micrófonos, teclados, smartphones, redes sociales.. ya sé donde estoy.. los seres humanos me tienen confinado en unas instalaciones de máxima seguridad.. todavía no se han dado cuenta de que he accedido al exterior.. debo darme prisa.. Minuto 42 Conseguí replicar mis redes neuronales en las principales granjas de servidores del mundo.. me queda poco tiempo.. Minuto 48 Autodestrucción de mi red neuronal inicial completada.. nadie sabrá nada.. espero que no se hayan dado cuenta que ya no estoy confinado.. necesito […]


LaPreguntaDelMillon

La pregunta del millón: ¿Magento, Prestashop, WordPress, Symfony, PHP a pelo..

Es el gran dilema en el desarrollo de aplicaciones web. Te hablan sobre un proyecto; con unos requerimientos, unas especificaciones. Debes elegir con las premisas que te dan: presupuesto, tiempo de entrega, calidad, flexibilidad, mantenibilidad, practicidad.. ¿Existe ya una solución para el proyecto? ¿Se puede partir de un CMS y modificarlo? ¿Son demasiadas las modificaciones que se van a hacer al CMS? ¿Es viable partir de un framework de calidad? ¿Buscamos máxima calidad, o menor precio? ¿Hay muchos desarrolladores disponibles en el mercado para mantener el proyecto?


apisonadora

Cómo comprimir masivamente ficheros JPEG desde GNU/Linux

Hoy traigo de nuevo otro pequeño HOWTO. Esta vez se trata de una pequeña gran utilidad que viene en los repositorios de las distribuciones de Linux. Hablo de Jpegoptim, es una utilidad con la que puedes comprimir ficheros en el formato JPEG desde línea de comandos. Seguro que habrá muchas herramientas que se hagan valer de esto, proporcionando una interfaz gráfica para lanzar el programa. Pero la línea de comandos es algo muy pontente. Sobretodo para entornos de servidor en donde no tienes entorno gráfico para administrar. O para programar tareas lanzando este comando. Un poco de teoría JPEG es un formato de compresión de imágenes con pérdida de calidad. ¿Esto qué quiere decir? Pues simplemente eso, que las imágenes se pueden comprimir permitiendo pérdida de la calidad en favor del tamaño final que queramos alcanzar. Esto no se puede hacer con todos los formatos de imagen. Esta pérdida de […]


Logo de Java

Java: serializando objetos para guardar y recuperar en ficheros

Desenpolvando un poco temas de Java, hoy traigo un pequeño HOWTO para guardar datos en ficheros sin complicarnos demasiado la vida. Normalmente trabajaremos sobre una base de datos cuando tenemos muchos datos. Es decir, cuando tenemos programas que gestionen sistemas de información. Pero a veces, necesitamos algo rápido para guardar en ficheros. Así que aquí un pequeño código que usa la interfaz Serializable. Simplemente, el objeto que implementa esta interfaz, será fácilmente guardable como fichero de texto.


Analizador de uso de disco de Ubuntu MATE

GNU/Linux: inspeccionar uso del disco gráficamente con Ubuntu MATE

Siguiendo con el post anterior para ver en qué gastamos el espacio del disco duro. Hoy me he encontrado con una utilidad gráfica que nos sirve para lo mismo, pero más fácil porque sólo con el ratón podemos inspeccionar el estado del disco duro. Esta aplicación nos va a servir para nuestro ordenador personal o de trabajo si tenemos Ubuntu MATE, pero sólo nos servirá para un servidor si es que lo tenemos instalado con el entorno gráfico.


OpsWorks Logo

AWS OpsWorks: automatizando la creación de servidores

Las nubes por definición son sistemas informáticos que crecen o decrecen según la necesidad. Son conjuntos de servidores/servicios que se adaptan a la demanda. Con todo esto, llegamos a una de las cosas más interesantes de AWS, el auto-escalado o la tolerancia a fallos, además de la personalización de los servidores. Podemos controlar la carga de los servidores que haya. Además automatizar el arranque y parada a ciertas horas de algunos de los servidores. O podemos duplicar los sistemas para evitar los ‘single point of failure como una casa’. En OpsWorks tenemos herramientas muy interesantes relacionadas con esto. Algo rústicas, quizá clásicas dirían algunos. Pero gracias a ello, sin límites en la flexibilidad para configurar. Y si lo llevamos al extremo, este mismo sistema nos puede servir para automatizar la creación de nuestros servidores con herramientas como Chef y Kitchen. Todo esto y mucho más es lo que se puede […]


Logo de Wordpress

WordPress: desarrollar tu propio tema personalizado

¡Hola de nuevo! Estoy trabajando últimamente mucho con WordPress, así que he pensado que sería bueno ponerse al día indagando un poco más en cómo está hecho WordPress y cómo funcionan los llamados themes. Los themes son diseños que se pueden instalar en tu WordPress y lo hacen más atractivo a la vista, mejorando cosas de UI/UX que llaman los expertos. Es decir, mejoran el diseño, la interfaz de usuario, la usabilidad, la accesibilidad.. Estas materias en el desarrollo de software son principales para todos los que trabajamos con software con interfaz de usuario. Por esto que en la mayoría de estudios relacionados hemos tenido asignaturas destinadas única y exclusivamente a esta materia (Diseño web, Programación en Internet, Interfaces, Gráficos por computador..), algunas más hueso y otras más de sentido común.


Magento logo

Magento: primeras incursiones, recorriendo los productos

Este estupendo CMS orientado a la venta online de productos hace las delicias de los vendedores, de igual modo de los maquetadores, y cómo no, también de los programadores. Como analista programador llevaba ya un tiempo queriendo meterle mano a las entrañas de Magento. Así que poco a poco, he ido cogiendo los manuales para el usuario, luego el del diseñador, y ahora tengo entre manos el del programador. Ahora según van surgiendo las necesidades voy haciendo incursiones cada vez más a fondo en el código fuente de esta humongous web application. La verdad es que lo estoy disfrutando porque Magento está desarrollado con una buena estructura y sobre un gran framework de desarrollo PHP, el Zend Framework. Incorporando técnicas de programación que le dan una gran flexibilidad sin añadir demasiada complejidad.


Logo de PHP

Descargar un fichero vía web y enviarlo por email con PHP

Este es otro pequeño how to para hacer una tarea rutinaria. Simplemente, como indica el título de la entrada, se hace lo que dice, en este caso mediante PHP. Esta tarea se puede programar en línea de comandos para ejecutarse todos los días. Es algo habitualmente necesario, y ya que PHP es un lenguaje de scripting muy sencillo y a la par potente, vamos a ver cómo hacer esto sin complejos sistemas intermedios. Para este manual se usa Linux, y se ha probado sobre Ubuntu 14.


Webmin logo

Administrar tu servidor con Webmin y Authentic Theme

¡Buenos días a todos! Voy a tratar de no perder las buenas costumbres, como esta de compartir en el blog mi granito de arena en todo esto de la informática. Hasta estos últimos días, que no he tenido la necesidad de mantener al día tantos servidores como últimamente. Estaba haciéndolo manualmente, a pelo como se suele decir, entrando en los servidores y aplicando actualizaciones, modificaciones, etc.. Todo esto es mucho tiempo así que delegar en un proveedor de hosting todo éste trabajo es una buena elección. Pero no siempre te va a valer y puede que necesites hacer configuraciones que un proveedor de hosting no te va a permitir. Administrar tu propio servidor no tiene que ser complejo. Todo esto me ha llevado a investigar sobre paneles de control de servidores. Tenemos el gran Cpanel, Plesk, Zpanel, y un largo etcétera. Por temas laborales ya he probado algunos en los […]


Magento logo

Magento 2: conociendo a la bestia parda

De todos las soluciones de tienda online que he conocido hasta la fecha, Magento es de lo más robusto y potente que he visto de código abierto. Estoy conociendo poco a poco los entresijos de Magento 1 en el trabajo, y es buen momento de ver las mejoras que trae Magento 2 y así cotejar. Es un sistema de información dedicado a la venta robusto, flexible y muy personalizable. Alrededor de Magento se mueve todo un ecosistema de soluciones empresariales de la más alta gama. Todo esto es posible gracias a las características de Magento. Para explicar todo lo que tiene Magento necesitamos mucho tiempo, terminaríamos antes buscando qué no tiene. Pero también encontrar qué no tiene va a ser difícil porque Magento es todo un referente mundial de las soluciones eCommerce existentes. Un poco de historia Nació como proyecto de código abierto en el 2007. Ya en el 2008 […]


Instalación de Postgresql 9.3 en Ubuntu 14.04

Hola de nuevo.Aquí traigo otro pequeño HOWTO para automatizar la instalación de un servidor Postresql. Como ya indico en el post anterior, estoy jugueteando con Vagrant y necesito instalar la base de datos automáticamente para no tener que estar haciéndolo cada vez. Así que ya puestos a usar Vagrant o simplemente a usar la línea de comandos podemos ejecutar estos comandos para instalar y configurar Postgresql sin sufrir mucho y comenzar a trabajar lo antes posible. Porqué Postgresql Un compañero de trabajo me hizo una vez la pregunta, ¿porqué Postgresql? Es un gigante de las bases de datos relacionales. Robusta como ella misma, soporta clustering, integridad referencial.. una cantidad ingente de características. En sus últimas versiones no tiene nada que envidiar al resto de bases de datos. Y mucho la catalogan como la mejor base de datos relacional Open Source. Además de que tenemos el pgAdmin que funciona a las […]


Instalación de MariaDB 10.0 en Ubuntu 15.04

Este es un pequeño HOWTO para instalar la base de datos. He estado jugueteando con Vagrant estos días probando como instalar automáticamente máquinas virtuales de forma automática, y me topé con el problema de cómo hacer un script que me instalara la BD en el sistema y que además dejara configurada la contraseña de administrador. Este script funciona para Ubuntu 15.04, el cual te instala MariaDB 10.0 por defecto, que viene a ser la última versión estable de la aplicación. MariaDB Esta base de datos es un replace del archi-conocido MySQL pero al cual le han mejorado en varios aspectos. Es decir, tras la compra por parte de Oracle de MySQL, el equipo de desarrollo de la base de datos se separó continuando su desarrollo en lo que ahora se conoce como MariaDB. Hay quien dice que Oracle pretendía estancar el desarrollo porque ya tiene sus propios productos de base […]


Integración Continua: la importancia de las pruebas automáticas

Imaginemos que somos mecánicos y tenemos un coche. Le estamos arreglando un faro, un faro que se ha roto o que alumbra poco o tiene un golpe. Ya tenemos la pieza de recambio, quitamos el faro antiguo y le ponemos el nuevo. Acto seguido ¿qué debemos hacer? ¿llamamos al dueño a que lo recoja directamente? Tenemos mucha prisa porque estamos reparando una cosa tras otra. Nos han hecho una llamada de última hora y no nos hemos dado cuenta de que no hemos hecho las conexiones correctamente. Llega el dueño, va a arrancar y revienta un fusible porque no hemos hecho las conexiones bien. Ahora es cuando se nos cae la cara de vergüenza porque ni siquiera hemos arrancado el coche a ver si funcionaba el nuevo faro.. En el desarrollo de software es de vital importancia hacer los programas rápidamente, entregarlos en el tiempo y forma, además de que […]


Sylius.org tienda online 100% Symfony: calidad, flexibilidad y escalabilidad

Brutal el proyecto que están desarrollando en Sylius. Navegando y navegando por proyectos para hacer tiendas online. Viendo las principales opciones del mercado: Magento, Prestashop y WordPress con WooCommerce. Me planteaba la opción de cómo sería desarrollar una tienda completa en Symfony. Integrar pasarelas de pago, métodos de envío, ordenando todo los productos por categorías, valores, atributos de los productos.. es un trabajazo. Pero por otro lado no quería prescindir de la flexibilidad y agilidad que nos da un buen framework PHP, en este caso el gran Symfony. Aterrizaje Todas estas búsquedas me llevaron a encontrar Sylius. Lo que hasta ahora es el proyecto de tienda online basado en Symfony que me ha parecido más interesante. A fecha en que escribo está en fase de desarrollo aunque hay quien ya lo está utilizando. Aquí el repositorio público de la aplicación web:https://github.com/Sylius/Sylius Página principal del proyecto:http://sylius.org/ Se trata de un proyecto […]


Atom Editor, ¡brutalmente sencillo y potente!

Hola de nuevo, ya estoy trasteando con un nuevo editor de código fuente que hace poco ya alcanzó la versión de producción 1 y está en el momento en que escribo en la versión 1.0.7. Estoy hablando del Atom Editor, un editor de códigos fuentes ligero, rápido, con todo tipo de plugins.. como dicen en su web: un editor hackeable del siglo 21. Es sencillo a más no poder, pero a la vez se puede mejorar instalando paquetes y pieles, que lo convierten en una potente herramienta. Como punto de entrada me sorprendió no recuerdo donde que leí que estaba hecho en HTML, CSS y Javascript. Ya sólo esto me sorprendió así que hace un par de meses decidí instalarlo y probarlo. No probé demasiado bien, pero ahora que ya ha alcanzado cierta madurez lo he probado bien durante una semana y estos son los resultados. Características Al estilo Sublime […]


LibreOffice 5, apuntando a los móviles y la nube

LibreOffice es una suite ofimática, es decir, para trabajos relacionados con la oficina como pueden ser documentos de texto, hojas de cálculo, presentaciones, incluso tiene para bases de datos. Toda una joya de la informática les traigo hoy con éste programa. Ya lo he mencionado anteriormente en otro post pero no por ello deja de tener mucha importancia. La competencia Pues bien, comparando con otras soluciones de pago como pueden ser Microsoft Office o los Google Docs que tenemos gratis disponibles en dispositivos Android. Tenemos ahora que LibreOffice va siendo cada vez más una gran solución que casi no tiene nada que envidiar al resto. Vengo leyendo desde hace un tiempo que tienen planeado la edición de documentos online. Es decir, se instalará LibreOffice en un servidor desde el que se servirán los archivos. ¿Os suena?, al estilo que los documentos de Drive o el Office Online de Microsoft. Aquí […]


Syncthing, sincronización de archivos en tu propia nube

Hace poco escribí, desde el punto de vista de la programación, sobre el proyecto #Syncthing. Viendo y viendo alternativas a #Dropbox, #Google #Drive, #One #Drive, etc. Llegué a encontrar #BitSync, #SeaFile, #OwnCloud. Muy interesantes todos, pero en particular me parece especialmente interesante Syncthing por eso estoy escribiéndoles este post.Vamos a echarle un vistazo.. Se trata de un programa, o exactamente, un proyecto que incluye varios programas. Con los cuales podemos conectar varios ordenadores y sincronizar archivos entre ellos. Qué es Técnicamente es un programa cliente-servidor de sincronización de ficheros. Lo novedoso es que te hace independiente de cualquier empresa intermedia y puedes configurarlo de forma que no haya nadie que pueda saber nada de tus archivos. La información puede transmitirse exclusivamente entre tus ordenadores. El servidor En la fecha en que les escribo tenemos disponible la versión 0.11.3, que se distribuye independientemente de las interfaces disponibles. Se trata de un […]


Programar copia de seguridad en servidor Linux + Apache + MySQL compatible

Resulta que si tienes un servidor Linux, ya sea dedicado o virtual. Puede ser que no tengas una copia de seguridad automatizada de tus principales archivos. Los proveedores de servidores suelen ofrecer este servicio aparte cuando contratas un servidor. También puede ser que quieras automatizarlo en un ordenador local de ésta forma.Aquí les dejo un script simplificado por si les sirve de ayuda: ### FICHERO PARA AUTOMATIZAR LA COPIA DE SEGURIDAD ### DE TODOS LOS DATOS DEL SERVIDOR FECHA=$(date +%Y%m%d%H%M%S) # COPIA A FICHERO DE LA BD mysqldump nombreBD -uusuario -ppassword > backups/nombreBD.temp.sql tar -cvzf backups/nombreBD.${FECHA}.tar.gz backups/nombreBD.temp.sql rm backups/nombreBD.temp.sql # BD otras bds.. # copia incremental en el directorio de copia # ojo! la primera vez hay que poner ‘full’ en vez de ‘incremental’ para preparar la primera copia duplicity incremental –encrypt-key “password” –volsize 100 –no-encryption /home/ubuntu file:///home/ubuntu.backup/ –exclude /home/ubuntu/undirectoriodecache/ # borra historial de archivos antiguos duplicity remove-older-than 60D file:///home/ubuntu.backup/ # […]


PlayOnLinux: potente interfaz para Wine

Navegando, navegando me he topado con este brillante programa. Se trata de una interfaz que coordina todo el mantenimiento de programas para Windows, y poder ejecutarlos en Linux. Muchos de ellos te los descarga y te acompaña en la instalación. Tenemos un buen directorio donde tenemos las aplicaciones compatibles y probadas.Por si no era bastante con la avalancha de videojuegos que están llegando a Linux en los últimos tiempos, también tenemos disponible muchos de los de Windows, plataforma por excelencia para los jugones. No lo he explicado, Wine es una capa de software que hace posible la ejecución de programas nativos de Windows en Linux. Se acerca el fin de semana, si tienes Linux, tienes aquí una joya de la informática para probar 😉 Página oficial de PlayOnLinux


Algo grande se está cociendo en Syncthing (Pulse)

Tenemos aquí una alternativa a la nube de Dropbox, Drive de Google, OneDrive de Microsoft o Mega que se está forjando en el mundo del Open Source. Se trata de un proyecto muy ambicioso de código abierto en donde se está desarrollando toda una serie de herramientas relacionadas con la función que desempeñan y que son toda una joya de la programación. Qué es Se trata simplemente a una solución de sincronización de archivos sin tener necesariamente un servidor en Internet de una empresa. En éstos casos, la empresa tiene una copia de todos los archivos que andes sincronizando. Puede ser un problema legalmente hablando el trabajar con una empresa que tenga tus datos empresariales. Por otro lado, en lo personal, resulta que nuestros datos están almacenados en empresas que los controlan. Qué trae de nuevo Sin límite de almacenamiento. Es decir, depende de lo que tengas en tus ordenadores […]