Desarrollo

Desarrollo

Aplicación Vue con Vue-router en subcarpeta

«Una vez visto, todo el mundo es listo»

Eso es lo que he pensado cuando he dado con la tecla. Parece sencillo y hay documentación, pero me ha costado dar con la solución. He trabajado en el pasado con Vue 2.0, 3.0 con webpack y ahora con VueJS 3.2 con Vite. Las cosas… cambian un poco.

Si quieres instalar tu aplicación de VueJS con Vue-router en un subdirectorio, habrás sufrido los problemas de rutas absolutas. Has intentado configurar rutas relativas y seguramente te habrás encontrado con problemas al recargar pantalla o hacer F5, que la app ya no carga y te da un error 404.

En este artículo, explico los tres puntos que has de tener en cuenta. Es mucho más sencillo de lo que te imaginas.

(más…)
Desarrollo

Enviar correos desde PHP con SMTP y cuenta de Google

Recientemente me ha tocado pegarme en un proyecto personal con la necesidad de enviar correos electrónicos automatizados en una aplicación web que estaba implementando en PHP.

Mis requisitos eran: Enviar correos desde PHP, autenticados con SMTP y una cuenta de Google. En este artículo te explico cómo hacerlo en 2023. Tras los últimos cambios de políticas introducidos por Google en verano de 2022.

(más…)
Desarrollo Sistemas

NPM: Gestor de paquetes, la guía definitiva

Al hilo de utilizar en diferentes proyectos el gestor de dependencias npm, aprovecho los apuntes tomados y los vuelco aquí por si a alguien le pudiera ser de utilidad.

NPM es un gestor de paquetes y dependencias escrito en NodeJS muy extendido entre diferentes lenguajes de programación.

Para este artículo, he de remarcar que he sacado mucha información del blog de Carl Rippon.

(más…)
Desarrollo

VS Code en iPad a través de Code Server y Linux

Si recientemente has adquirido un iPad habrás notado que tu editor favorito, la pedazo de herramienta VS Code de Microsoft, no está disponible para su descarga en la App Store. Podremos encontrar editores de código alternativos, pero cuando estás tan hecho a un editor, es difícil adaptarse a algo diferente.

Actualmente, Microsoft no ha incorporado compatibilidad de VS Code a la plataforma móvil de Apple y todo apunta a que de momento, no tienen mucha intención de hacerlo.

Afortunadamente, existe una forma de trabajar con VS Code sobre la que seguramente ya hayas leído en internet: instalar Code Server en una Raspberry PI (o servidor Linux). Code Server es una especie de VS Code que funciona en forma de servicio web. En resumen, lo que necesitamos es instalar NodeJS 14.0 para posteriormente instalar el proyecto Code Server.

En este artículo os enseño paso a paso cómo lo he hecho yo.

(más…)
Desarrollo

Slim Framework – Cómo poner en marcha tu primer proyecto paso a paso

Hace tiempo que conozco Slim y tenía interés en hacer alguna prueba para verificar que efectivamente es un micro framework ideal y fácil de poner en marcha para proyectos pequeños en los que no quieres complicarte. Sobre todo, si quieres poner en marcha un API pequeña y sencilla. Finalmente, encontré el caso de uso perfecto y me animé a probarlo. La curva de aprendizaje es muchísimo más pequeña que frameworks como Laravel o Symphony.

La documentación de éste framework está bastante bien, aunque quizá la guía de instalación no es del todo clara. El proyecto ha ido avanzando y sacando versiones que entre sí han cambiado mucho. Por ejemplo, en las primeras versiones, era mucho más viable trabajar sin depender de composer, pero en su versión v4 de Slim, lo mejor es que desistamos y trabajemos con éste controlador.

En este artículo, os pongo una guía de los pasos que he seguido para una fácil y rápida instalación de Slim PHP. Vamos a ello.

(más…)
Desarrollo

Qué es y cómo implementar la Cache API de Service Worker

Si estás en pleno desarrollo de una webapp, app progresiva o web con necesidad de características y funcionamiento sin internet, puede que éste sea tu artículo. Voy a intentar explicar de forma clara y sencilla cómo hacer una webapp offline utilizando el Service Worker Cache API.

Muchas veces nos enfrentamos ante el reto de montar una aplicación web con capacidades offline o con el objetivo de que se ejecute sin conexión a internet. Esto puede ser para que la app sea completamente funcional sin internet encolando las operaciones para posteriormente sincronizar con el servidor, o para activarse un modo «offline» de mínimos (habiendo cacheado contenidos vistos anteriormente, tipo Twitter).

Si has llegado a este artículo, probablamente estés intentando implementar una webapp capaz de ejecutarse offline y estás buscando información sobre cómo cachear recursos en la memoria del navegador. Seguramente, como me pasó a mí, hayas buscando bibliografía sobre la Cache API porque la compatibilidad con el viejo sistema WebCache se está empezando a perder.

Los ejemplos y artículos que he visto por internet no terminan de explicar con palabras sencillas y tampoco cuentan los detalles a tener en cuenta para utilizar este sistema que probablemente todavía no hayas conseguido poner en marcha. Voy a intentar resumirlo y ponértelo fácil. (más…)

Desarrollo Sistemas

Plugins imprescindibles para una web básica en WordPress

Si bien es cierto que mi desempeño profesional está lejos de relacionarse con el desarrollo de webs en WordPress, cuento con una amplia experiencia en el campo web ya que es uno de mis hobbies, sigo muy de cerca este sector desde que apenas tenía 12 años y me gusta estar al día.

Por supuesto, esta entrada es subjetiva. Existen artículos mucho más completos que este. Pero recientemente me han pedido ayuda o he desarrollado la página web de alguna amistad y me han pedido consejos sobre qué plugins considero imprescindibles. Esta entrada no tiene otro objetivo que ese, hacerlo público y además, servirme a mí también como referencia.

Antes de nada, quiero remarcar lo importantísimo que es mantener un sitio web basado en WordPress actualizado. Tanto a nivel de plugins como del propio software de WordPress. Desde que esta herramienta adquirió popularidad para el desarrollo web, ha sido objeto de continuos ataques. Hackear un sitio WordPress no actualizado es muy sencillo. Con lo que recomiendo activar las actualizaciones automáticas y revisar periódicamente aquellos plugins o actualizaciones que no se ejecuten de forma automática.

A continuación, mi lista de plugins de WordPress que considero imprescindibles para instalar junto con la base.

(más…)

Desarrollo

Cómo crear y desarrollar una aplicación en IPS Community Suite

Siempre he estado muy ligado a la plataforma IPS Community Services desde que decidí dar el salto de phpBB3 a IPB (Invision Power Board) con el proyecto/comunidad FMSite.net en 2007. Desde entonces, ya que el software que proveían lo permitía, he desarrollado diferentes aplicaciones para amoldar y extender las funcionalidades de mi comunidad.

Durante los últimos años, en IPS han estado trabajando en la versión 4.0 de su software, que implicaba una reescritura desde cero del código y, por tanto, de la API y forma de creación de aplicaciones para la comunidad. Lo que implica que tendría que rehacer todo el código de las aplicaciones que desarrollé para mi proyecto.

Hace unas semanas me puse manos a la obra y he de decir que la creación de aplicaciones de terceros en la versión 4.0 de IPS ha mejorado sobremanera con respecto a la versión 3.4. El proceso se ha simplificado muchísimo y, aunque aún la documentación respecto a la plataforma escasea, he sido capaz de reprogramar las aplicaciones sin documentación.

Como no es fácil iniciarse, en esta entrada pretendo explicar una guía en castellano para crear una aplicación desde cero en la suite IPS.

(más…)

Desarrollo

Script para monitorizar carga CPU en un servidor Linux

Esta es la historia de hace unos meses, cuando migré un sitio web con mucha carga y visitantes simultáneos a un servidor más económico. Durante los primeras semanas teníamos problemas de carga de la web, sobre todo de madrugada, por tareas de mantenimiento, generación de backups, etc.

Por ello, consideré oportuno la necesidad de algún script que monitorizara la carga de CPU periódicamente con el objetivo de poder ver una gráfica y determinar qué puntos exactamente eran los críticos. De ésta forma, analizando el inicio de los momentos de mucha carga de CPU, podría casar la hora de comienzo con la tarea de CRONTAB del sistema.

En éste artículo voy a contar cómo montar un script muy muy sencillo que almacenará en un fichero, cada cinco minutos, la carga de CPU y desde un fichero PHP con el generador de gráficas highcharts de javascript pintaremos una gráfica con los datos recopilados. Gracias a esto, fui capaz de mover las tareas programadas a otros momentos y repartir la carga para que la web no fallase.

(más…)

Desarrollo

Instalar y ejecutar Node.js y npm en una máquina ARM con Linux

Instalar Node.js en un ARM con Linux, como bien podría ser una Raspberry Pi o un Utilite Pro, a través de la herramienta apt-get, instala la versión 0.6.12 que, a día de hoy, es una versión muy primitiva. Si queremos una versión posterior, no nos quedará más remedio que compilar el source code para nuestra máquina.

ARM es una arquitectura de procesadores que siempre ha ido ligada y está enfocada al bajo consumo por lo que su foco de ventas son los smartphones. Sin embargo, cada vez se están viendo más en otro tipo de dispositivos. Dispositivos económicos y de bajo consumo como pueden ser la Raspberry Pi o el Utilite Pro de Compulab, que dispongo.

Debido a que esto es una nueva tendencia, aún existen pocos Sistemas Operativos compatibles y pocos, también, los programas instalables. Al menos, la forma natural de instalación, aún no es tan sencilla como en los x86.

En esta entrada explicaré cómo hacer funcionar NodeJS en su versión v0.11.9 y la herramienta npm v1.3.15. Las siguientes líneas son compatibles para cualquier máquina ARM, ya sea una Raspberry Pi, un Utilite Pro, Cubox, CubieBoard…
(más…)