utilidades

57 entradas

Syncthing y la Raspberry Pi

GNU/Linux: terabytes de nube privada con la Raspberry Pi y Syncthing

He seguido jugando para ver hasta donde puede llegar este pequeño ordenador de poco más de 30€, la Raspberry Pi. Una joya de la informática, que junto a Syncthing, otra joya de la informática, hacen una combinación explosiva. Así que aquí estoy escribiendo éste HOWTO sobre servidores para montar una nube de terabytes de almacenamiento sincronizado y privado en tu propia casa, local o en varios lugares remotos. Sólo por el coste de tus PCs, sin pagar nada a una empresa, sin que tus datos estén copiados en ordenadores que no son tuyos, y sin que tus datos estén copiados en el extranjero. Es decir, tus datos ya no tendrán que estar almacenados en ningún servidor externo en ninguna empresa. Todo sincronizado entre tus móviles, ordenadores y la Raspberry Pi. Además, podrás disfrutar de tantos terabytes como quieras sin coste mensual, sólo necesitas tener los discos externos que quieras y la Raspberry Pi encendida.

Raspberry Pi

GNU/Linux: montando un centro multimedia de salón con la Raspberry Pi

Ya tengo mi nueva y flamante Raspberry Pi 3 B+. Llevo un par de meses probándola a ver cómo funciona, hasta donde puede llegar, funcionalidades, etc.. Estoy como niño con juguete nuevo, es brillante, una joya de la informática. Una maravilla para empezar a hacer mis primeros pinitos en el IoT o creando cualquier dispositivo que necesite de un ordenador embebido de bajo coste. La Raspberry Pi 3 B+ tiene un procesador ARM de 4 núcleos de 64 bits a 1,4 GHzs y 1 GB RAM que apenas consume. Funciona con un cargador de móvil y cabe en la palma de una mano, con lo que se puede instalar en cualquier sitio y apenas se nota el consumo eléctrico. Arranca muy rápido en apenas 10-20 segundos veo el escritorio, corre vídeos, fotos, navegador, juegos ligeros, y programas ofimáticos del tipo de LibreOffice que vienen ya preinstalados. En fin, una maravilla..

Datatables simple, cargando desde HTML los datos

Datatables: listando y filtrando tablas de datos con Javascript

Ya estoy de nuevo por aquí compartiendo una verdadera joya del software, el Datatables. Esta es una herramienta para desarrollo frontend, que mediante Javascript, crea unas tablas de datos muy profesionales para tus proyectos en muy poco tiempo. Se trata de un plugin de jQuery, que le da vitaminas a la presentación de datos en el navegador del cliente. Javascript actúa en la parte de frontend, es decir, tenemos que enviarle al navegador el HTML, CSS y Javascript con el Datatable configurado. Entonces, en el navegador del cliente, mediante Javascript, se regenerará el contenido web de la tabla para hacer los listados, ordenados y filtrados de la tabla de datos.

Monstruo come galletas

Nueva versión del sencillo mensaje de aceptar cookies para tu web

Un lector me ha escrito consultando sobre un post algo antiguo, sobre cómo poner un sencillo mensaje de cookies en una web. La verdad es que no me he explicado muy bien en aquel post, los navegadores han cambiado durante estos últimos años, Javascript también.. así que aquí estoy compartiendo otro mensaje de aceptar cookies más actual. Este mensaje de aceptar cookies es una actualización de aquel antiguo que vengo usando en nuevos proyectos. Es un mensaje hecho artesanalmente que puedes copiar y pegar para tu web. El único requisito que tiene es que necesitas usar la librería de jQuery para que funcione. jQuery hoy día es como un estándar, hace tan bien su trabajo de acceder al DOM de las páginas web, que cómo no usarlo en todos los proyectos.

API Platform filtering

Cómo filtrar el acceso a los elementos de la API Platform para Symfony

Vengo a traer un pequeño truco que es algo complicado de encontrar. Es decir, traigo un HOWTO para una configuración en concreto de una joya del software. Se trata de la API Platform para Symfony, con la que implementamos en muy poco tiempo una API web en un proyecto completo. Con esta API Platform tendremos acceso remoto, mediante las clásicas llamadas GET, POST, PUT, DELETE a las entidades del proyecto. Podemos limitar el acceso a cada usuario a cada elemento de una entidad de la que sea propietario.

Magento funcionamiento interno

Magento 1: los índices, qué son y cómo reindexar

Magento es un gran CMS para montar tiendas online. Está muy desarrollado teniendo en cuenta el SEO, el marketing, para tener muchos dominios con la misma web, muchas configuraciones de impuestos, de precios distintintos por web, distintas plantillas para cada sitio web.. todo desde un mismo panel de control. Es tan flexible desde el mismo panel de control, que ha llegado a extremos de tal forma de que necesita todo tipo de cacheados, tablas temporales donde guardar indexada la información, así como también Varnish y Redis. Todo esto junto es una combinación explosiva y todo un reto hacerlo funcionar todo. Así que en este post vengo a hacer una review del funcionamiento de estos índices de datos.

Magento API carrito pedido

Magento 1: creando un pedido con la API Soap

Aquí estoy de nuevo compartiendo otro CODE-KATA, ahora para hacer una tarea muy interesante conectando dos sistemas informáticos. Es decir, tenemos un Magento 1 en algún lugar, y vamos a permitir conectarnos desde otra plataforma en PHP para la creación de pedidos de forma remota. Lo primero que necesitamos tener es la información del pedido por completo. Necesitamos saber los datos del cliente, direcciones de envío y facturación, en este caso el correo electrónico del cliente registrado en Magento, y de los productos necesitamos el SKU y la cantidad que queremos pedir.

Magento informacion pedido con la API Soap

Magento 1: sacando la información de pedido con la API Soap

Otra vez, de nuevo, me repito más que el ajo xDD vengo a traer otro CODE-KATA o HOWTO. Esta vez sobre la API Soap de Magento. Se trata de un pequeño script para ver la información de un pedido. El punto de partida es que tenemos ya configurada la API Soap de Magento, con un usuario de la API, con los suficientes privilegios para hacer peticiones de información sobre los pedidos. Entonces conectamos a dicho proyecto, a su endpoint, con las credenciales de acceso, y obtenemos los datos del pedido.

Symfony FMElfinder gestor de archivos

Symfony: cómo montar un gestor de archivos web en menos de 1 hora

Hoy de nuevo vengo con otro CODE-KATA o HOWTO, esta vez para montar un gestor de archivos web. Recopilando joyas de la informática vengo a traer el FMElfinderBundle. Subir ficheros a una web, renombrarlos, editarlos es una tarea compleja. Si usamos este bundle, que es un vendor de Composer preparado para Symfony Flex, nos podremos olvidar de construir todo esto haciéndonos la vida mucho más fácil. Es decir, que tenemos un bundle o vendor para Symfony, que nos permite gestionar archivos mediante el navegador. Así podemos subir ficheros de imagen para luego usarlos en la web. También permite otro tipo de ficheros una vez configurado. Incluso te permite editarlos si son de texto dentro del mismo gestor de archivos.

Symfony Flex, Symfony 4, Doctrine

Symfony: tutorial 3: los modelos y las entidades, almacenando datos en BDs

Recorriendo todas las funcionalidades de Symfony Flex (Symfony 4), traigo de nuevo otro HOWTO para trabajar con el guardado de los datos. Symfony basa el guardado de los datos, la persistencia de los datos, en Doctrine. Es decir, tenemos un módulo llamado Doctrine, mejor dicho varios, que te independizan de la base de datos añadiendo una capa intermedia entre los controladores, plantillas, servicios.. de tu aplicación Symfony y la base de datos. En esta capa intermedia se definen lo que se llaman entidades, y Doctrine se encarga de hacer todo. Siguiendo este tutorial veremos cómo en poco tiempo podemos arrancar proyectos que antes podíamos tardar días o semanas, ahora en pocas horas. Es decir, en muy pocos comandos de consola, y con muy poco esfuerzo, podemos montar grandes estructuras en bases de datos, o editarlas. Y nos podemos casi olvidar de hacer muchas consultas directamente a la Base de Datos. Un poco de teoría Symfony es un framework que sigue el modelo MVC que significa Modelo-Vista-Controlador. En un post anterior hemos visto cómo trabajar con los controladores y un poco de las vistas, que también tienen mucho juego. Ahora vamos a ver el tema de los modelos, sinónimo de entidades. […]

Programming programando

Del código fuente a la ejecución de los programas

Ya tenemos el código fuente, ¿y ahora? ¿cuál es la magia que hace posible que un código fuente se ejecute? Todo programa necesita un traductor, que compile o interprete el código fuente para que pueda ser ejecutado. Es una primera diferencia que puede marcarse entre los lenguajes de programación, ya que un lenguaje puede ser interpretado, compilado, o incluso ambas cosas. Además, la ejecución puede ser dependiente de la máquina, o ejecutarse en una máquina virtual, que te independiza de la máquina. Por ejemplo los lenguajes funcionales o lógicos suelen usarse primeramente interpretados, como Prolog o Haskell mientras se desarrolla, pero también tenemos disponible un compilador para mejorar su eficiencia. PHP es interpretado, aunque ha habido compiladores para mejorar su eficiencia de ejecución. Cabe destacar como curiosidad la Hip Hop Virtual Machine de Facebook que crearon para agilizar PHP, que precisamente compila los ficheros fuente a un código objeto intermedio más rápido de ejecutar. Javascript, Typescript, Ruby, también son interpretados. C, C++, VB, C# son compilados, es decir, se necesita compilar el código fuente a códigos objeto, estos códigos objeto a su vez se linkan, se retraducen, para ejecutarse finalmente en la máquina.

Symfony Flex comandos

Symfony: tutorial 2: los comandos de consola

Una respuesta a porqué Symfony es tan productivo son los comandos de consola. Si alguien dice que usar Symfony es reinventar la rueda, que siempre es mejor modificar un CMS.. es que no sabe de lo que está hablando, y lo que se está perdiendo. Con simples comandos podemos crear un proyecto nuevo, añadir nuevos componentes, lanzar un servidor de pruebas, chequear las URLs, crear entidades que vamos a guardar en base de datos, probar el envío de emails. También podemos modificar las tablas de datos, añadir nuevos elementos, editar los existentes, actualizar la base de datos, preparar nuevos elementos para almacenar, generar pantallas de listado de datos, ediciones de datos, borrados o creaciones. Generamos formularios automáticamente, con recepción de sus datos y guardado de dichos formularios en bases de datos. Podemos importar una base de datos de otro proyecto, generando todo el código fuente de una aplicación web que consulte los datos de dicha BD en apenas un rato. Podemos crear controladores, estructurando todas las zonas de la web, con sus plantillas, rutas, y URLs en poco tiempo. Y mucho más.. No tenemos que gastar tiempo en tediosas tareas repetitivas de construcción, y podremos centrarnos en lo especial de […]