Quantcast
Channel: Vozidea.com
Viewing all 299 articles
Browse latest View live

Opinión sobre hosting OVH, análisis del alojamiento y experiencia

$
0
0

Hace algunos días me encontré con un plan de alojamiento de OVH asequible que me llamó la atención, así que lo contraté y ahora puedo dar mi opinión sobre el hosting OVH. A lo largo de este artículo haré un análisis del alojamiento web de OVH y os mostraré mi experiencia.

Opinión sobre hosting OVH, análisis del alojamiento y experiencia

Pagando un plan personal de alojamiento web en OVH, ¡primera sorpresa!

He elegido el plan personal de alojamiento web en OVH, que en el momento de redactar este artículo tiene un precio de 1,99€ al mes + IVA (con el IVA incluido son 2,41€ al mes).

Mi sorpresa fue que cuando me disponía a pagar, me di cuenta de que el pago no se hace de forma mensual, sino que pagaremos todo un año por adelantado (28,92€ al año). A pesar de esto, como las opiniones que pude leer de OVH no eran malas, me aventuré a hacer el pago por todo el año.

No sé si es una promoción temporal, pero haciendo este pago anual me llevé un dominio .com totalmente gratis durante el primer año.

Características y limitaciones del plan personal de alojamiento web.

Lo cierto es que hay que fijarse muy muy bien en las limitaciones del plan personal, porque son varias las que no se nombran en ningún lado y después nos llevamos las sorpresas. Por eso me voy a detener en este apartado y detallar todo lo posible las limitaciones que me he encontrado.

Disponemos de 100GB de espacio en el disco, pero no especifican que tipo de almacenamiento. Hoy por hoy, los discos SSD nos darán mejores rendimientos, pero cuando pregunté al soporte qué tipo de almacenamiento usaban, su respuesta ha sido la siguiente:

Nuestros alojamientos trabajan en clúster con cabinas de discos híbridas, por ello, no tiene SSD como tal y la lectura de discos varía en función del estado del clúster o del clúster en el que se encuentre.

Lo primero que llama la atención es que nos ofrecen tráfico ilimitado y lo cierto es que nunca he tenido problemas en este aspecto. De todas formas, los proyectos que he alojado son sencillos y no necesitan más de 5GB de tráfico de datos al mes.

Algo muy importante es la limitación de la base de datos, que sólo podemos tener una y con un tamaño máximo de 200MB. También se limitan el número de conexiones simultáneas al servidor MySQL, sólo se permiten 30. Estas limitaciones son más que suficientes para alojar un blog personal sencillo.

El problema puede venir si pretendemos alojar más de un blog, ya que al tener una sola base de datos compartida, tendremos que emplear diferentes prefijos para las tablas de cada blog.

Al mismo tiempo nos indican que el número de sitios web para este plan es de 5, pero es un número a modo de recomendación. En mi caso he agregado varios proyectos superando los 5 recomendados y todo funciona correctamente. Aclarar que cada vez que agrego un dominio, contabiliza doble, ya que añade el dominio principal y otro con el prefijo www.

Otra limitación es el número de cuentas de correo que podemos crear, que son un total de 5 con un espacio total de 5GB.

Una sorpresa que me llevé, es que no hay manera de descomprimir un archivo comprimido con extensión .zip o .tar.gz, tal y como podemos hacer desde el gestor de archivos de los clásicos paneles de control cPanel, Plesk, etc. En este plan no tenemos acceso por SSH, lo cual nos vuelve a limitar muchísimo.

Es cierto que nos ofrece un gestor web de archivos (net2ftp), pero sólo descomprime archivos muy pequeños, no pude descomprimir el paquete WordPress de ninguna manera. Este es quizás el mayor de los inconvenientes, quedamos relegados al FTP/sFTP para gestionar los archivos, algo incompresible en un servicio de alojamiento profesional del 2017.

En cuanto a las características técnicas, lo mejor es revisar el archivo phpinfo desde http://cluster015.ovh.net/infos/ para conocer a fondo las extensiones PHP habilitadas.

Obviamente no tenemos un panel de control tipo cPanel, sino que disponemos de la interfaz que nos ofrece OVH para gestionar nuestro alojamiento. Esta interfaz está bien organizada y es bastante sencilla.

Panel de control alojamiento OVH

Otras características:

  • Nos ofrece certificados SSL gratuitos (Let’s Encrypt).
  • Posibilidad de multisitio (agregar varias dominios al mismo plan de alojamiento).
  • Instalación de scripts en un click (WordPress, PrestaShop, Joomla y Drupal).
  • Acceso por FTP y sFTP.
  • Acceso a phpMyAdmin para gestionar la base de datos.
  • Sistema de copias de seguridad incluido.
  • Posibilidad de añadir cronjobs (tareas planificadas).
  • Sistema de estadísticas de visitas y logs (Awstats, Urchin y raw logs de Apache).
  • Gestión de correos y DNS desde el panel de control.
  • Protección de privacidad del whois del dominio (gratuita).
  • La localización geográfica de los servidores está en Francia.

Soporte.

El soporte no es de los más rápidos que he visto, pero tiene un tiempo de respuesta aceptable. Aparentemente sólo responden en horario laboral, pero tiene como punto positivo que atienden en español. Incluso tienen un número 902 de atención telefónica al cliente, pero no he probado a usarlo.

Desde el propio panel de control tenemos acceso a un sistema de tickets inetgrado muy cómodo.

Experiencia de uso y conclusiones.

De momento no hemos tenido ninguna caída de servicio ni problemas con este paquete de alojamiento básico, lo cual es algo muy positivo.

El tiempo de respuesta de los blogs en WordPress es bastante bueno, aunque el uso de un plugin de cache es altamente recomendable para optimizar el rendimiento.

La generación de los certificados SSL en algunas ocasiones ha tardado más de lo esperado, por lo que hay que tener paciencia.

Algunas de las limitaciones convierten el hosting web personal de OVH en apto para pequeños proyectos personales, como un blog personal. El gestor de archivos incluido en el panel de control es nefasto, sin lugar a duda el punto más negativo de este alojamiento.

La entrada Opinión sobre hosting OVH, análisis del alojamiento y experiencia aparece primero en Vozidea.com.


Unzipper, script PHP para comprimir y descomprimir ficheros zip, gz y rar

$
0
0

Cuando trabajamos con servidores o alojamientos web, muchas veces no disponemos de un panel de control que nos permita descomprimir ficheros. Esto nos puede causar bastantes inconvenientes, por ello os presento Unzipper, un pequeño script PHP para comprimir y descomprimir ficheros zip, gz y rar.

Unzipper, script PHP para comprimir y descomprimir ficheros zip, gz y rar

El script lo he encontrado por casualidad, ya que tras contratar un alojamiento web en OVH, su gestor de archivos no permite descomprimir ficheros.

Unzipper es de código abierto y lo encontramos en GitHub de forma gratuita. Si somos desarrolladores y necesitamos una clase para comprimir/descomprimir ficheros, podemos reutilizar el código de Unzipper en nuestro proyecto.

Unzipper, script PHP para comprimir y descomprimir ficheros zip, gz y rar.

A pesar de que el nombre de Unzipper nos pueda hacer pensar que sólo sirve para descomprimir archivos .zip, este pequeño script también puede descomprimir archivos .rar y .gz. Además, también puede comprimir archivos, pero sólo en formato zip.

Es un script sencillo, que además incorpora su propio código HTML y CSS para mostrarnos una interfaz desde la que descomprimir/comprimir archivos desde el propio navegador.

interfaz unzipper php

Para el correcto funcionamiento del script se requiere PHP 5.3 o superior. Aunque en la documentación del script no se refleje, se necesitan las extensiones zlib (para archivos gzip), zip y rar.

Generalmente las instalaciones de PHP por defecto incluyen las extensiones zlib y zip, pero la extensión rar rara vez está instalada. En caso de que falte alguna extensión, el propio script nos mostrará un error. Recurrir a phpinfo es una buena forma de conocer que extensiones están disponibles en nuestro alojamiento.

No hay nada más engorroso que tener que subir un script que contiene muchos archivos por FTP, ya que cada archivo se transfiere de forma individual. Una mejor opción es transferir al alojamiento un único archivo comprimido y después descomprimirlo con Unzipper. Nos ahorraremos tiempo y ganaremos en comodidad. También es una buena opción cuando no tenemos acceso por SSH.

Por el momento, el único inconveniente es que no permite descomprimir archivos .tar.xz, por lo que tendremos que recurrir a la consola de comandos u otro método.

La entrada Unzipper, script PHP para comprimir y descomprimir ficheros zip, gz y rar aparece primero en Vozidea.com.

Webinal, web para practicar con la shell Linux online

$
0
0

Existen muchísimos proyectos educativos online, pero pocos nos permiten interactuar con una shell Linux real para aprender los comandos básicos. Esto es algo realmente necesario si queremos trabajar con el sistema operativo Linux. Gracias a la web Webinal.org, podemos practicar con la shell Linux online de forma gratuita.

Webinal, web para practicar con la shell Linux onlineEsta shell tiene ciertas limitaciones, como era de esperar, pero nos servirá para aprender el uso básico. Podremos aprender a gestionar archivos desde la terminal, navegar por los diferentes directorios y crear scripts en bash. Si eres un usuario novel, puedes combinar el uso de Webinal con Explainshell y tendrás todo lo necesario.

Webinal, web para practicar con la shell Linux online.

El objetivo de este artículo está en acercar la terminal Linux a los usuarios, que de alguna forma puedan practicar de forma real sin tener que recurrir a intrincadas instalaciones de máquinas virtuales.

En primer lugar debemos registrarnos en la web con un nombre de usuario y email. Una vez registrados, ya podemos dirigirnos al apartado “Terminal”, desde el que acceder a nuestra terminal Linux online a través del navegador.

Para acceder a la terminal online empleamos el nombre de usuario y contraseña elegidos durante el registro (conservando las mayúsculas y minúsculas). Recomiendo emplear el navegador Chrome, ya que con FireFox me he encontrado algunos problemas a la hora de escribir en la terminal ciertos caracteres especiales.

terminal Linux online

A partir de aquí, nos debería aparecer un mensaje en pantalla como el que vemos en la imagen anterior y ya podríamos empezar a ejecutar comandos.

Límites del servicio Webinal:

Recomiendo leer detenidamente los límites para el manejo de archivos, procesos y bases de datos, que a modo de resumen serían los siguientes:

  • Espacio disponible 1MB.
  • Número máximo de archivos que podemos crear 1000.
  • El tamaño máximo de cada archivo es 1KB.
  • El número máximo de procesos simultáneos que podemos ejecutar son 10.
  • El tamaño máximo de la base de datos MySQL es de 200KB.
  • Sólo podemos crear 4 tablas.
  • Sólo disponemos de una conexión simultánea MySQL.

La entrada Webinal, web para practicar con la shell Linux online aparece primero en Vozidea.com.

Comprobar el tamaño de una base de datos MySQL

$
0
0

Hace escasos días me encontré con que tenía que migrar un blog a un alojamiento nuevo más económico, pero que me limitaba el tamaño de la base de datos. El primer paso fue comprobar el tamaño de una base de datos MySQL. Esto se puede llevar a cabo de varias formas, pero nosotros hablaremos de cómo hacerlo con un comando a través de la terminal Linux.

Comprobar el tamaño de una base de datos MySQL

Si disponemos de algún gestor MySQL con interfaz gráfica, como puede ser phpMyAdmin, basta con acceder y consultar las estadísticas que nos muestra el propio gestor. Lo realmente interesante es hacerlo desde la shell cuando tenemos acceso por SSH al servidor.

Comprobar el tamaño de una base de datos MySQL desde la terminal Linux.

Doy por hecho que tenemos una sesión de terminal abierta, por ejemplo usando PuTTY. En primer lugar debemos acceder e identificarnos en el servidor MySQL con nuestro usuario y contraseña. Para esto, ejecutamos el siguiente comando:
mysql -u username -p

Si necesitásemos especificar un nombre de host para el servidor MySQL, el comando que empleamos para autentificarnos sería por ejemplo:
mysql -h 127.0.0.1 -u username -p

Tras ejecutar este comando se nos solicitará la contraseña y si todo ha ido bien, ya estaremos autentificados y listos para ejecutar consultas SQL.

Para obtener el tamaño de todas las base de datos, la query que debemos emplear es:

SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;

La salida tras ejecutar la consulta anterior sería algo como:

MariaDB [(none)]> SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;
+--------------------+-------------+
| database           | size in MB  |
+--------------------+-------------+
| information_schema |  0.07812500 |
| mysql              |  0.62622643 |
| performance_schema |  0.00000000 |
| vozidea            | 55.40495396 |
+--------------------+-------------+
4 rows in set (0.02 sec)

Vemos que nos muestra el tamaño en MB de todas las bases de datos.

Si sólo quisiésemos consultar el tamaño de una base de datos específica, la query sería:

SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES WHERE table_schema='nombre_db' GROUP BY table_schema;

Al ejecutar la consulta SQL anterior, debemos tener en cuenta que donde pone nombre_db, tenemos que reemplazarlo por el nombre de la base de datos de la que queremos obtener su tamaño.

Consideraciones finales.

tamaño base de datos MySQL
Esta consulta SQL para obtener el tamaño de una base de datos MySQL sólo funciona en MySQL 5 o superior y en cualquier versión de MariaDB. Esto se debe a que en versiones antiguas, previas a MySQL 5, no se empleaba la base de datos INFORMATION_SCHEMA.

La entrada Comprobar el tamaño de una base de datos MySQL aparece primero en Vozidea.com.

Cómo combinar imágenes de forma rápida

$
0
0

Muchas veces necesitamos unir imágenes de forma rápida y sencilla, pero casi siempre terminamos abriendo un programa de edición de fotografía tipo Photoshop. Hoy os traigo una solución con la que combinar imágenes de forma rápida, tan sólo hay que arrastrar las imágenes y pulsar un botón.

Cómo combinar imágenes de forma rápida

En este tutorial echaremos mano una vez más del programa ShareX, del cual ya os hablamos en el artículo de cómo crear capturas de pantalla y subirlas a internet para compartirlas. Este mismo programa incluye una pequeña utilidad para combinar imágenes.

Cómo combinar imágenes de forma rápida con ShareX.

Personalmente uso la versión portable de ShareX, pero eso es para gustos. Una vez que tenemos la aplicación funcionando, vamos al menú Herramientas → Image Combiner....

ShareX image combiner

Se nos muestra en pantalla una nueva ventana en la que podemos añadir las imágenes de diferentes formas:

  • Utilizando el botón Add... y localizando las imágenes desde el explorador de archivos.
  • Podemos arrastrar las imágenes que queremos combinar y soltarlas sobre el programa.

Una vez añadidas las imágenes, debemos configurar la orientación con la que se combinarán las imágenes. Podemos elegir entre:

  • Horizontal: las imágenes se colocarán una al lado de otra.
  • Vertical: las imágenes se colocarán una debajo de otra.

Las imágenes se combinarán en el orden en el que aparecen en el listado, aunque podemos cambiar este orden usando los botones Move up y Move down.

sharex unir imágenes

También podemos establecer un margen entre imágenes, especificando el ancho del margen en pixeles. Por ultimo sólo tendremos que pulsar el botón para combinar las imágenes y obtener como resultado una única imagen.

Consideraciones finales.

Al unir varias imágenes, la imagen de salida resultante está en formato PNG con fondo transparente. Esto se agradece por dos motivos:

  • Por si queremos establecer un fondo de imagen personalizado con un programa de retoque fotográfico.
  • Al usar el formato PNG no perdemos calidad de imagen al unir las imágenes.

Espero que os haya servido de ayuda este tutorial y demuestra una vez más la gran flexibilidad y funcionalidad de este pequeño programa gratuito ShareX.

La entrada Cómo combinar imágenes de forma rápida aparece primero en Vozidea.com.

Psocksd, un servidor proxy SOCKS en PHP

$
0
0

Hemos tratado en varias ocasiones los proxys SOCKS, pero esta vez traemos un programa gratuito y de código abierto que nos permite crear nuestro propio servidor proxy SOCKS. Se trata de psocksd, programado totalmente en PHP para funcionar como un demonio.

Psocksd, un servidor proxy SOCKS en PHP

Psocksd ha sido creado por Christian Lück, quien parece ser un especialista en programación PHP. Dentro de su perfil de GitHub encontraremos innumerables proyectos. Entre sus repositorios incluso podremos encontrar alguna librería relacionada con los proxys SOCKS.

Psocksd, un servidor proxy SOCKS en PHP.

El servidor psocksd es compatible con SOCKS 4 y SOCKS 5, aunque el protocolo en su versión 5 es el recomendable al ser más actual.

En primer lugar vamos a comentar los requisitos para instalar psocksd. Es multiplataforma, por lo que funciona tanto en Windows como en Linux, pero en este artículo nos vamos a centrar en su instalación y configuración sobre Linux.

Para probar psocksd hemos empleado un servidor VPS con Linux Ubuntu 16.04 en el que hemos instalado PHP 7 con el siguiente comando:
sudo apt-get install php7.0 php7.0-mbstring

Es importante recalcar que requiere la extensión php7.0-mbstring instalada, por eso está incluida en el comando de instalación. Si no la instalamos el programa no funcionará y nos devolverá un error fatal.

A continuación, tendremos que descargar el archivo .phar del apartado releases de GitHub. Para descargar el archivo podemos emplear wget:
wget https://github.com/clue/psocksd/releases/download/v0.4.0/psocksd.phar

Ahora sólo tendremos que ejecutar el comando:
php psocksd.phar *:52000

En este comando hay que diferenciar la parte del asterisco *, que indica que servidor está a la escucha en todas interfaces. La parte del número 52000 indica el puerto en el que el servidor proxy SOCKS permanece a la escucha. Este puerto lo podemos modificar a nuestro gusto siempre y cuando no usemos uno que esté ya en uso (recomiendo usar un puerto entre 50000 y 60000 para no tener conflictos).

psocksd demonio socks php shell

Diferentes posibilidades de configuración de psocksd.

El programa psocksd nos permite lanzarlo con más configuraciones. Si quisiésemos restringir el servidor proxy para que sólo use el protocolo SOCKS 5, podemos emplear el comando:
php psocksd.phar socks5://*:52000

También podemos definir la IP de la interfaz en la que escuchará el servidor:
php psocksd.phar 192.168.1.2:52000

Podemos especificar un usuario y contraseña para que el cliente pueda acceder al proxy:
php psocksd.phar socks5://username:password@*:52000

Modo interactivo y no interactivo de psocksd.

Cuando ejecutamos psocksd se ejecuta por defecto en modo interactivo, de forma que podemos enviar comandos al demonio mientras está en funcionamiento a través de la consola.

Por ejemplo, si ejecutamos el comando help se nos muestran todas las opciones:

psocksd help:
    help
        show this very help

    status
        show status

    via list
        list all forwarding entries

    via default <target>
        set given <target> socks proxy as default target

    via reject <host>
        reject connections to the given host

    via add <host> <target> [<priority:int>]
        add new <target> socks proxy for connections to given <host>

    via remove <id:uint>
        remove forwarding entry with given <id> (see "via list")

    via reset
        clear and reset all forwarding entries and only connect locally

    ping <target>
        ping another SOCKS proxy server via TCP handshake

    quit | exit
        shutdown this application

También podemos forzar el demonio para que se ejecute en modo NO interactivo, para eso empleamos el modificador --no-interaction como en el siguiente comando:
php psocksd.phar --no-interaction *:52000

En Windows siempre funcionará en modo no interactivo, ya que la terminal de Windows así lo requiere. Para detener el demonio cuando funciona en modo no interactivo habrá que pulsar la combinación de teclas CTRL + C.

No olvides que para configurar el proxy SOCKS en el navegador, debes hacerlo con los datos que empleaste durante la configuración (IP, puerto, usuario y contraseña).

La entrada Psocksd, un servidor proxy SOCKS en PHP aparece primero en Vozidea.com.

Análisis y trucos para Built for Speed

$
0
0

Hoy he descubierto una pequeña joya de juego de carreras o de coches, se trata de Built for Speed. Este juego nos acerca toda la diversión de los juegos clásicos de carreras a los que solíamos jugar antaño. Tras jugar durante unas semanas he decidido publicar un pequeño análisis con trucos para Built for Speed.

Análisis y trucos para Built for Speed

Ya os anticipo que el que se espere gráficos realistas a máxima calidad, Built for Speed no será su juego ya que está diseñado con la estética pixel art. Aun así, recomiendo a todo el mundo que le dé una oportunidad, seguro que más de uno se engancha.

Análisis de Built for Speed.

Cuando jugamos por primera vez a Built for Speed ya nos damos cuenta de que se trata de un juego simple. Tanto las mecánicas como los controles, no requieren ser un virtuoso pulsando sobre la pantalla, bastará con practicar un poco.

En cuanto a los controles, el coche acelera sólo, nosotros sólo nos encargaremos de los giros a izquierda y derecha. Para girar el coche bastará con pulsar sobre el lado de la pantalla hacia el que queremos girar.

Como ya os dijimos, el apartado gráfico tiene la estética pixel art y aun así tiene ciertos elementos en tres dimensiones: el coche, árboles, obstáculos, construcciones, etc. El entorno es muy colorido y aunque gráficamente no sobresalga, reproduce con fidelidad aquellos juegos de carreras de videoconsolas clásicas como la SNES o Megadrive.

Pero además se añaden elementos actuales, como la posibilidad de unirse a un equipo online y tratar de ascender en un ranking global. También disponemos de un editor de circuitos, donde podemos componer y poner a prueba nuestras propias creaciones.

Hay diferentes tipos de pistas en los que cada superficie hará que el coche se comporte de una forma diferente. Tenemos pistas de asfalto, grava, nieve o tierra.

Además, disponemos de diferentes modelos de coches, cada uno con su propio diseño y estadísticas. Las estadísticas de velocidad máxima, conducción y agarre, las podemos mejorar empleando monedas del juego.

Este es el apartado que menos me gusta del juego, encontrarme con los micropagos y con videos publicitarios no obligatorios, pero que duplican las recompensas si los visualizamos.

Consejos y trucos para Built for Speed.

A la hora de enfrentarnos a los diferentes circuitos de Built for Speed debemos seguir una serie de trucos y consejos que nos ayudarán a cruzar la meta en primera posición:

  • Compra el mejor coche que puedas. Los de clase S son los mejores pero también son los más caros.
  • Recomiendo visualizar los videos publicitarios para duplicar las recompensas de fin de carrera y así conseguir monedas gratis. A la larga puede suponer comprar un mejor coche o poder mejorar las estadísticas más rápido.
  • Mejora las estadísticas de tu coche siempre que puedas. Trata de mejorarlas de forma equilibrada, mejorando todos los aspectos del coche. Al principio evita gastar monedas cambiando la apariencia y color del vehículo, es caro y no nos ayudará a ganar.
  • Busca la trazada perfecta. Muchas veces es mejor hacer menos giros y tratar de hacer una trazada lo más recta posible, ya que cuando giramos en exceso el coche derrapa y perdemos velocidad.
  • Evita todos los imprevistos del circuito. Intenta mantenerte dentro de la carretera y no choques con los obstáculos.
  • Puedes pisar los pianos que no perderás velocidad. Los pianos son zonas marcadas con líneas rojas y blancas en curvas cerradas.
  • Pasa por encima de los aceleradores de velocidad. Muchas veces nos encontraremos unos pequeños rectángulos que darán un impulso a nuestra velocidad si pasamos por encima de ellos.

Siguiendo estos trucos para Built for Speed estoy seguro de que conseguirás superar todos los circuitos que te propongas con un poco de práctica.

La entrada Análisis y trucos para Built for Speed aparece primero en Vozidea.com.

Standard Notes, un gestor de notas simple

$
0
0

Cuando buscamos una aplicación para gestionar nuestras notas nos encontramos con innumerables soluciones. Compañías como Microsoft o Google tiene aplicaciones para este cometido, pero hoy vamos centrarnos en Standard Notes, un gestor de notas simple.

Standard Notes, un gestor de notas simple

La principal virtud de Standard Notes es su simplicidad, aunque tiene muchas más. Una interfaz minimalista con la que gestionar notas simples de forma gratuita y segura.

Standard Notes, un gestor de notas simple y funcional.

Si eres de esas personas que tiene el escritorio lleno de archivos .txt o .docx en los que guardas tus anotaciones y quieres evitar esa mala costumbre, quizás te vendrá bien probar Standard Notes.

Uno de los aspectos que ha despertado más interés, es que Standard Notes no está compuesto únicamente por una aplicación, sino que además tiene su propio protocolo para almacenar las notas, al que han llamado Standard File.

Este protocolo Standard File ofrece cifrado de extremo a extremo, por lo que la seguridad y privacidad está garantizada.

Por el momento tenemos disponibles dos implementaciones del servidor Standard File, uno está escrito en Go y la otra en Ruby. Estaría bien tener una en PHP, ya que es lo que usamos la mayoría de los mortales, pero parece que por el momento no está disponible.

Standard Notes web

No depender de compañías de terceros para gestionar nuestras notas, el fundamento de Standard Notes.

Hoy en día dependemos siempre de un sistema operativo, de hecho se está hablando mucho últimamente de cómo será el futuro de estos. Pero ahí es donde destaca Standard Notes sobre el resto, ya que al ofrecer un entorno de código abierto podemos llevar el servicio a cualquier sistema operativo o plataforma.

De esta forma, no dependemos de una cuenta de Google o Microsoft, que tarde o temprano pueden violar nuestra privacidad, pues ya sabemos lo que se esconde detrás de la letra pequeña de las políticas de privacidad de estas compañías. Con Standard Notes, nosotros somos los dueños de nuestras notas.

Por otro lado, nos aseguramos de que el ciclo de vida de nuestras notas será indefinido. Nosotros decidimos cuando ponemos fin a nuestro servicio de notas y no una compañía.

Al ser un proyecto de código abierto, no necesitamos ningún tipo de software privativo. Podemos desde desarrollar nuestra propia aplicación de escritorio, hasta una extensión para nuestro navegador favorito.

Fuentes y recursos de Standard Notes:

La entrada Standard Notes, un gestor de notas simple aparece primero en Vozidea.com.


Pastebinit, crear pastes desde la consola Linux

$
0
0

Los servicios de paste son muy populares entre los usuarios, estos permiten compartir texto o fragmentos de código a través de un simple enlace. Por norma general, para crear estos pastes necesitamos acudir al navegador, pero con Pastebinit podemos crear pastes directamente desde la consola Linux.

Pastebinit, crear pastes desde la consola Linux

Sabemos que abrir el navegador no es una tarea muy engorrosa, pero muchas veces no tenemos interfaz gráfica y trabajamos en modo consola. La ventaja de usar la consola para crear los pastes, es que podemos crearlos directamente con el contenido de salida de nuestros comandos. Los pastes y la consola se llevan bien porque ambos se basan en texto.

Pastebinit, crear pastes desde la consola Linux.

Nosotros hemos probado Pastebinit en Ubuntu, pero al ser un script en Python podría ser usado en cualquier otra plataforma Linux que tenga instalado Python. Lo único que debemos tener en cuenta, es que requiere Python 3 o superior. Esto no suele ser un problema en distribuciones recientes, por ejemplo en Ubuntu 16.04 ya se incluye Python 3.5 instalado por defecto.

La instalación de Pastebin en Ubuntu es tan sencilla como ejecutar el comando:
sudo apt install pastebinit

En el resto de distribuciones tendréis que comprobar si está disponible en los repositorios y también podéis visitar la página oficial del proyecto en Launchpad.

patebinit linux comando

Cómo configurar y usar Pastebinit.

Una vez instalado, el uso de Pastebinit es muy sencillo. Podemos emplear el siguiente comando a modo de ejemplo:
ls -la | pastebinit

Con el comando anterior se crea el paste http://paste.ubuntu.com/24348673/ con el contenido de la carpeta actual. Vemos que podemos enlazar el contenido que queremos publicar con pastebinit empleando una tubería | y todo funciona a la perfección.

También tenemos que prestar atención al paste que usa por defecto, ya que en nuestro caso al emplear una distro Ubuntu se emplea el paste http://paste.ubuntu.com. Pero también reconocerá las siguientes distribuciones:

  • Debian: empleará por defecto el paste http://paste.debian.net
  • Fedora: en este caso el paste usado por defecto es https://paste.fedoraproject.org
  • Ubuntu: tal y como hemos visto se emplea http://paste.ubuntu.com
  • Otras distribuciones: en el resto de distribuciones se emplea https://pastebin.com como paste por defecto.

De todos modos, soporta otros pastes, los cuales podemos consultar con el comando pastebinit -l:

zeokat@ubuntu:~$ pastebinit -l
Supported pastebins:
- cxg.de
- dpaste.com
- fpaste.org
- lpaste.net
- p.defau.lt
- paste.debian.net
- paste.openstack.org
- paste.pound-python.org
- paste.ubuntu.com
- paste.ubuntu.org.cn
- paste2.org
- pastebin.com
- slexy.org
- sprunge.us

Si no queremos usar el paste por defecto, podemos especificar el que queremos usar con el parámetro -b, por ejemplo con el siguiente comando:
ls -la | pastebinit -b sprunge.us

Con el anterior comando se creará el paste http://sprunge.us/EAOU.

Por último, si lo que queremos es publicar un paste con los contenidos de un fichero que tenemos en el disco, el comando sería:
pastebinit -i archivo.txt

La flexibilidad de este pequeño programa es increíble, nos permite incluso usar un nombre de usuario y contraseña para acceder a los pastes y disponer de más opciones como la de crear pastes privados, seleccionar el tipo de resaltado de sintaxis, etc. Para explorar todas estas opciones, siempre es buena idea consultar la ayuda con el comando pastebinit -h o consultar la página de ayuda con el comando man pastebinit.

La entrada Pastebinit, crear pastes desde la consola Linux aparece primero en Vozidea.com.

Comprobar las extensiones cargadas en PHP desde la consola

$
0
0

Cuando llegamos a un servidor que tiene instalado PHP desconocemos las características de su compilación, configuración, etc. Esto nos puede suponer un problema si tenemos que realizar algún tipo de diagnóstico para reparar algún error y uno de los primeros pasos es comprobar las extensiones cargadas en PHP.

Comprobar las extensiones cargadas en PHP desde la consola

Nosotros vamos a dar por hecho que estamos en un servidor VPS o dedicado al que tenemos acceso por SSH, por ello vamos a averiguar las extensiones PHP habilitadas desde la consola de comandos o terminal.

Además, también daremos otros pequeños trucos y consejos para que este artículo sirva como una referencia a la hora de diagnosticar posibles problemas con una instalación PHP. Nosotros vamos a usar Ubuntu 16.04 LTS con una instalación de PHP 7 desde los repositorios oficiales de Ubuntu.

Introducción: PHP CLI y PHP CGI, dos cosas diferentes.

Antes de avanzar debemos conocer las diferencias entre PHP CLI y PHP CGI, que muchas veces nos lleva a confusión. No vamos a entrar en grandes detalles, ya que nos extenderíamos demasiado, pero a modo resumido podríamos decir:

  • PHP CLI: es el binario destinado a ejecutarse bajo un intérprete de comandos, es decir, el que usamos desde la terminal, línea de comandos o shell.
  • PHP CGI: es el binario destinado a la ejecución de aplicaciones web, es decir, al que se llama a través de nuestro servidor web.

Existen varias diferencias entre ambos binarios, pero la que nos interesa para este tutorial, es que estos binarios emplean diferentes archivos de configuración php.ini. Con esto, quiero decir que cuando ejecutamos PHP a través de la línea de comandos, estaremos usando PHP CLI y por lo tanto usaremos su configuración correspondiente, la cual puede tener habilitadas extensiones diferentes a PHP CGI.

Para ver las extensiones cargadas en PHP CGI, lo más sencillo es crear un archivo info.php que contenga el código <?php phpinfo(); ?> y ver la información que nos devuelve desde el navegador.

El cometido de este tutorial es comprobar los módulos PHP cargados a través de la línea de comandos y aunque por lo general suelen ser los mismos que los cargados por PHP CGI, debemos ser conscientes de que si alguien ha editado los archivos de configuración manualmente, puede haber diferentes módulos cargados en ambos binarios.

Por ejemplo, en mi instalación de PHP los archivos de configuración son:

  • Para PHP CLI: /etc/php/7.0/cli/php.ini
  • Para PHP CGI: /etc/php/7.0/apache2/php.ini

Aclarado esto, pasamos al siguiente apartado para comprobar las extensiones cargadas en PHP.

Comprobar las extensiones cargadas en PHP desde la consola.

El comando básico para averiguar los módulos de PHP instalados es:
php -m

Este comando nos devolverá algo parecido a:

[PHP Modules]
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

Recalcar que este comando sólo nos dice las extensiones que están instaladas, pero no por ello tiene que estar habilitadas. Para obtener información acerca de un módulo específico y averiguar si está habilitado o no, empleamos el comando:
php --ri nombre_modulo

Por ejemplo, si ejecutamos php --ri zlib veremos algo parecido a:

ZLib Support => enabled
Stream Wrapper => compress.zlib://
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.2.8
Linked Version => 1.2.8

Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value

Obteniendo información extra de nuestra instalación PHP.

Para obtener información de configuración de un módulo PHP, ejecutamos el comando:
php --re nombre_modulo

Si queremos averiguar los archivos de configuración PHP cargados, ejecutamos el comando:
php --ini

Para obtener información exhaustiva de nuestra instalación PHP podemos ejecutar el comando php -i, que nos muestra información muy similar a la que muestra phpinfo() en PHP CGI.

Por último, muchas veces podemos echar un vistazo al directorio mods-available de nuestra instalación PHP, para deducir que módulos PHP hay instalados. En mi caso puedo ejecutar ls /etc/php/7.0/mods-available y ver un listado como el siguiente:

calendar.ini  gd.ini        mysqli.ini     readline.ini   tokenizer.ini
ctype.ini     gettext.ini   mysqlnd.ini    shmop.ini      wddx.ini
curl.ini      iconv.ini     opcache.ini    simplexml.ini  xml.ini
dom.ini       intl.ini      pdo.ini        sockets.ini    xmlreader.ini
exif.ini      json.ini      pdo_mysql.ini  sysvmsg.ini    xmlwriter.ini
fileinfo.ini  mbstring.ini  phar.ini       sysvsem.ini    xsl.ini
ftp.ini       mcrypt.ini    posix.ini      sysvshm.ini

Espero que estos pequeños trucos y consejos os ayuden a solucionar posibles errores o a diagnosticar algún tipo de incompatibilidad en vuestro servidor. Para cualquier duda o consulta, como siempre, podéis usar los comentarios.

La entrada Comprobar las extensiones cargadas en PHP desde la consola aparece primero en Vozidea.com.

Cómo instalar Node.js en Ubuntu o Debian

$
0
0

Cada vez son más las aplicaciones desarrolladas con Node.js y tarde o temprano nos encontramos con la necesidad de instalarlo en nuestro sistema operativo. En este tutorial vamos a hablar de cómo instalar Node.js en Ubuntu o Debian y además también instalaremos el gestor de paquetes npm.

Cómo instalar Node.js en Ubuntu o Debian

Para nuestras pruebas hemos empleado Ubuntu 16.04 LTS, pero las instrucciones que daremos funcionarán en Debian sin problemas. Nos basaremos en las instrucciones facilitadas desde la página oficial de NodeSource en GitHub, donde además se incluyen instrucciones de instalación para CentOS, Fedora y RedHat.

Introducción: cuestiones preliminares que debemos conocer.

La instalación de Node.js en Ubuntu está rodeada de bastantes conflictos originados por el nombre del binario. Este conflicto se debe a que ya existe una aplicación llamada node en los repositorios de Ubuntu y entonces se decidió llamar al binario de Node.js como nodejs para evitar conflictos.

Esto que parecía una solución, ha traído varios problemas de compatibilidad y más de un dolor de cabeza a los usuarios. Para evitar posibles conflictos, nuestra primera acción será eliminar las posibles instalaciones de node ejecutando los comandos:
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs

En este tutorial vamos a mostraros dos métodos para instalar Node.js en Ubuntu o Debian, uno para hacerlo desde los repositorios oficiales y otro para instalarlo desde el PPA oficial de Nodesource.

La instalación desde los repositorios oficiales tiene la ventaja de que es considerada como estable, pero también es cierto que tendremos que lidiar con el conflicto del nombre del binario. Por otro lado, si hacemos la instalación desde el PPA oficial de Nodesource, podremos elegir qué versión instalar y no nos encontraremos con el conflicto de nombres.

En mi opinión usar el PPA tiene más ventajas, por eso lo recomiendo, pero aquí os mostraremos ambas opciones para que podáis elegir.

Cómo instalar Node.js en Ubuntu o Debian desde los repositorios oficiales.

En el momento de escribir este artículo, la versión instalada desde los repositorios oficiales es Node.js 4.2.6, que es considerada como LTS y cuyo ciclo de vida termina el 1 de Abril de 2018.

Para instalar Node.js ejecutamos el comando:
sudo apt-get install nodejs

Una vez instalado, ya podemos acceder al binario con el comando nodejs, pero si ejecutamos el comando node, veremos que nos devuelve un error. Para solucionar este conflicto tenemos que instalar el paquete nodejs-legacy con el comando:
sudo apt-get install nodejs-legacy

Ahora ya podemos ejecutar nodejs o node indistintamente.

Finalmente, podemos instalar el gestor de paquetes npm con el comando:
sudo apt-get install npm

instalar Node.js en Ubuntu o Debian desde los repositorios oficiales

Cómo instalar Node.js desde el PPA oficial de NodeSource en Ubuntu o Debian.

Al emplear el PPA oficial de NodeSource lo primero que debemos tener en cuenta es que se instalará Node.js y su gestor de paquetes npm de una vez, sin instalarlos por separado.

El segundo aspecto que debemos considerar, es que versión de Node.js instalar. En el momento de escribir este tutorial tenemos disponible:

  • La serie 4.x: se considera como estable y LTS con fin de soporte el 1 de Abril de 2018.
  • Serie 5.x: no es LTS (instalación no recomendada).
  • La serie 6.x: versión LTS con soporte hasta el 18 de Abril de 2019 (instalación recomendada).
  • Serie 7.x: versión en actual desarrollo no LTS (instalación recomendada sólo si quieres probar las últimas novedades incorporadas).

Con la versión 6.x no he tenido problemas hasta el momento y como tiene soporte a largo plazo hasta 2019, es la que elijo para instalar normalmente. En primer lugar nos aseguraremos de que tenemos cURL instalado, de no ser así lo instalamos fácilmente con el comando:
sudo apt-get install curl

Para instalar Node.js desde el PPA, ejecutamos los comandos:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install nodejs

Ahora vemos que tanto el comando nodejs como node son funcionales y además también tenemos instalado el gestor de paquetes npm.

Si quisiésemos instalar otra versión, el primer comando sería:

  • 4.x: curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
  • 5.x: curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
  • 6.x: curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  • 7.x: curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

Para terminar, también es recomendable instalar el paquete build-essential porque algunos paquetes de npm que compilan código lo van a necesitar. Así que ejecutamos el comando:
sudo apt-get install build-essential

Cómo instalar Node.js desde el PPA oficial de NodeSource en Ubuntu o Debian

Para terminar.

Vemos que la instalación de Node.js en Ubuntu o Debian es bastante sencilla. Habría un último método empleando un script llamado nvm (Node Version Manager) que nos permite instalar y gestionar diferentes versiones de Node.js de forma simultánea.

No vamos a tratar este método de instalación, ya que generalmente no es necesario tener varias versiones de Node.js instaladas, pero está bien conocer esa posibilidad.

Por último, recordaros que también tenemos un tutorial de cómo instalar Node.js en Windows, por si os interesa.

La entrada Cómo instalar Node.js en Ubuntu o Debian aparece primero en Vozidea.com.

Cómo buscar en varios archivos PDF de forma simultánea con pdfgrep

$
0
0

Hoy os vamos a hablar de una aplicación gratuita y de código abierto para sistemas Linux que nos permite buscar en varios archivos PDF de forma simultánea. El programa usado se llama pdfgrep y nos permite localizar palabras, frases o cadenas de texto en archivos PDF directamente desde la consola.

Cómo buscar en varios archivos PDF de forma simultánea con pdfgrep

Para resumir su funcionamiento, es como el clásico grep pero diseñado para trabajar con archivos PDF. Es una herramienta muy útil ya que los PDF no son archivos en texto plano y realizar búsquedas nos obliga a usar herramientas como esta.

¿Cómo instalar pdfgrep?

El proceso de instalación es muy sencillo, ya que la aplicación está disponible en la mayoría de repositorios oficiales de las diferentes distribuciones Linux (Debian, Fedora, Ubuntu, openSUSE, Arch Linux, Gentoo, FreeBSD, etc).

También se puede compilar desde el código fuente, pero en nuestro vamos a realizar una instalación desde Ubuntu con el comando:
sudo apt-get install pdfgrep

Aunque también es cierto que en los repositorios de Ubuntu encontramos una versión algo antigua, la 1.4.1 y si echamos un vistazo en la página oficial del proyecto, vemos que ya van por la versión 2.0.1. Pasaros por la página oficial porque también hay instrucciones detalladas para compilar pdfgrep por si queréis tener la última versión.

Cómo buscar en varios archivos PDF de forma simultánea con pdfgrep.

El comando de uso más básico de pdfgrep es:
pdfgrep <palabra> <archivo.pdf>

Con el comando anterior buscaremos la “palabra” que definamos dentro del “archivo.pdf” especificado. De haber alguna ocurrencia se nos mostrará en pantalla.

comando básico pdfgrep

Pero lo realmente interesante es que la búsqueda la realice en varios documentos PDF de forma simultánea, para esto ejecutamos el comando:
pdfgrep <palabra> *.pdf

Por ejemplo, cuando ejecuto el comando pdfgrep computer *.pdf, buscaría la palabra “computer” en todos los archivos de la carpeta actual.

Pero todavía podemos ir más lejos y realizar una búsqueda recursiva en el directorio actual y en sus subdirectorios. Para realizar la búsqueda recursiva se emplea la opción -r acompañada de las opciones --include para incluir coincidencias o --exclude para excluir coincidencias. Esto lo vais a entender mejor con los siguientes ejemplos:

  • Buscar de forma recursiva en todos los archivos PDF: pdfgrep -r --include "*.pdf" <palabra>
  • Buscar de forma recursiva en todos los archivos PDF, pero excluyendo aquellos cuyo nombre empiece por “factura”: pdfgrep -r --exclude "factura*.pdf" <palabra>

Ahondando un poco más en las diferentes opciones de pdfgrep.

Es ahora donde entran en juego algunas de las opciones de pdfgrep, como la opción -i que fuerza a que la búsqueda no diferencie entre mayúsculas y minúsculas. Otra opción interesante es -n, que nos muestra el número de página donde se encontró la palabra o cadena de texto.

Por ejemplo, podemos combinar las opciones anteriores y ejecutar el siguiente comando:
pdfgrep -in -r --include "*.pdf" computer

búsqueda recursiva en archivos PDF con pdfgrep

Para consultar todas las opciones disponibles recomiendo leer detenidamente la ayuda del programa ejecutando el comando pdfgrep --help o man pdfgrep. También podéis consultar la página documentación oficial online si os resulta más cómodo.

zeokat@ubuntu:~$ pdfgrep --help
Usage: pdfgrep [OPTION]... PATTERN FILE...

Search for PATTERN in each FILE.
PATTERN is, by default, an extended regular expression.

Options:
 -i, --ignore-case              Ignore case distinctions
 -P, --pcre                     Use Perl compatible regular expressions (PCRE)
 -H, --with-filename            Print the file name for each match
 -h, --no-filename              Suppress the prefixing of file name on output
 -n, --page-number              Print page number with output lines
 -c, --count                    Print only a count of matches per file
 -C, --context NUM              Print at most NUM chars of context
     --color WHEN               Use colors for highlighting;
                                WHEN can be `always', `never' or `auto'
 -p, --page-count               Print only a count of matches per page
 -m, --max-count NUM            Stop reading after NUM matching lines (per file)
 -q, --quiet                    Suppress normal output
 -r, --recursive                Search directories recursively
 -R, --dereference-recursive    Likewise, but follow all symlinks
     --help                     Print this help
 -V, --version                  Show version information

La entrada Cómo buscar en varios archivos PDF de forma simultánea con pdfgrep aparece primero en Vozidea.com.

Jugando a Hopeless 3: Dark Hollow Earth, trucos y consejos

$
0
0

Si hay una saga que intenta iluminar nuestras peores pesadillas, esa es la saga Hopeless de los estudios Upopa Games. Hoy hablamos de la tercera parte de la saga que ha llegado este 2017 para entretenernos una vez más. Se trata de Hopeless 3: Dark Hollow Earth, juego que analizaremos y del que comentaremos algunos trucos y consejos para superar los diferentes niveles.

Jugando a Hopeless 3: Dark Hollow Earth, trucos y consejos

Hopeless 3 es un juego que ya ha enganchado a millones de personas y que recomendamos probar. Detrás de una mecánica de juego sencilla con disparos por doquier, nos adentraremos en una aventura desafiante y adictiva.

Jugando a Hopeless 3: Dark Hollow Earth, análisis y mecánicas de juego.

En primer lugar hablaremos del sistema de juego. Iremos en un vehículo donde estarán nuestros amigos luminosos los blobs. El vehículo se mueve de forma automática a lo largo de los diferentes recorridos sombríos.

A medida que avanzamos, nuestras peores pesadillas asomarán desde la oscuridad, pero para eso vamos armados con munición pesada. Pulsando sobre la pantalla dispararemos nuestro arma y aniquilaremos esas horribles criaturas producto de nuestras pesadillas.

Pero debemos prestar mucha atención, ya que a veces puede aparecer un blob luminoso en el recorrido y deberemos rescatarlo. Pase lo que pase, no dispares a los blobs. Esto que parece tan sencillo, seguro que en más de una ocasión apretareis el gatillo por accidente.

Una de las novedades respecto a las entregas anteriores está en la posibilidad de modificar el circuito según avanzamos y tomar caminos alternativos. El objetivo es llegar al final del recorrido sin que nuestros enemigos aniquilen a los blobs. Tendrás que armarte de valor para abrirte paso entre enemigos de pesadilla.

Consejos y trucos de Hopeless 3: Dark Hollow Earth.

Siguiendo estos pequeños consejos y trucos seguro que conseguirás muchas monedas gratis y superarás todos los niveles con tres estrellas:

  • No dispares a los blobs, el consejo más básico para llegar lejos en Hopeless 3.
  • Prioriza los disparos en los enemigos que tienes más cerca. Recuerda que por cada impacto perdemos un escudo y pasaremos a perder blobs.
  • Consigue el mayor número de monedas posibles para mejorar los vehículos (armas y escudos).
  • Aprovecha las recompensas diarias.
  • Visualiza los videos publicitarios para conseguir monedas gratis.
  • Destruye la dinamita en el momento preciso para que la explosión te ayude a eliminar enemigos.
  • Destruye los objetos que nos permite cambiar de trayecto, muchas veces iremos por caminos más sencillos.

La entrada Jugando a Hopeless 3: Dark Hollow Earth, trucos y consejos aparece primero en Vozidea.com.

Adminer, la mejor alternativa a phpMyAdmin

$
0
0

Hace ya algún tiempo que os hablamos de phpMyAdmin y por aquellos tiempos lo pusimos como el mejor administrador de bases de datos, pero tras descubrir Adminer la situación ha cambiado. Hoy por hoy podemos decir que Adminer es la mejor alternativa a phpMyAdmin sin miedo a equivocarnos.

Adminer, la mejor alternativa a phpMyAdmin

phpMyAdmin trata de ser un todo en uno para gestionar bases de datos, mientras que Adminer está orientado a la sencillez, al mismo tiempo que se mantiene como una herramienta completa de gestión de bases de datos. Cada uno tiene sus propias ventajas e inconvenientes, ninguno es mala elección y siempre dependerá de las necesidades del usuario elegir phpMyAdmin o Adminer.

En este artículo nos vamos a enfocar en enumerar las ventajas de Adminer y que lo convierten en una opción sólida y eficaz capaz de reemplazar a phpMyAdmin.

Ventajas de Adminer sobre phpMyAdmin.

Si te estás preguntando cuales son las ventajas de Adminer sobre phpMyAdmin has llegado al lugar correcto y las enumeramos a continuación:

  • Proceso de instalación rápido y sencillo: Adminer es un script en PHP que consta de un único archivo. Sólo tendremos que ubicarlo en nuestro servidor para acceder a través del navegador y listo.
  • No necesita configuración: Adminer no necesita ningún tipo de configuración adicional ni editar archivos manualmente.
  • Proceso de actualización sencillo: sólo hay que reemplazar un archivo y listo.
  • Sencillez y facilidad de uso: la interfaz de Adminer es más sencilla y amigable que la de phpMyAdmin, lo que además permite que el uso de Adminer sea más intuitivo.
  • Es un script PHP de código abierto y gratuito, por lo que podemos usarlo libremente sin restricciones.
  • Multilenguaje: para algunos usuarios este es un aspecto importante ya que se sienten más cómodos trabajando en su idioma nativo. Adminer también está disponible en español.

Interfaz de Adminer

Esas son las tres ventajas más obvias, pero puedes consultar la lista completa de ventajas de Adminer en la página oficial (en inglés).

Conociendo un poco más las características de Adminer.

Para la mayoría de usuarios que necesitan hacer tareas básicas, como crear bases de datos, modificar datos, importar bases de datos, crear copias de seguridad (exportar datos), etc… Adminer es el programa ideal.

También debemos mencionar que está disponible para bases de datos SQLite, PostgreSQL, MS SQL, Oracle, Mogo, SimpleDb, etc.

La apariencia de la interfaz de Adminer podemos personalizarla de forma muy sencilla empleando un archivo CSS llamado adminer.css. Este archivo debe estar en la misma carpeta que el archivo php de Adminer.

Cuando usamos Adminer, vemos que incluye un propio sistema de autentificación en el que bastará con introducir el usuario, contraseña y host de nuestra base de datos para autentificarnos y empezar a trabajar con nuestra base de datos.

Para concluir, contaros que en mi experiencia personal hace ya algún tiempo que lo uso junto con MariaDB y nunca he tenido problemas de ningún tipo, por ello lo recomiendo al 200%.

La entrada Adminer, la mejor alternativa a phpMyAdmin aparece primero en Vozidea.com.

Ngrok, crea túneles seguros a tu servidor local

$
0
0

Hoy vamos a hablar de Ngrok, una herramienta que nos permite crear túneles seguros hacia un servidor local. A muchos esta explicación os dice muy poco o nada, pero seguid leyendo y estoy seguro de que encontrareis una herramienta muy útil en Ngrok.

Ngrok, crea túneles seguros a tu servidor local

Ngrok es una herramienta destinada desarrolladores y que simplificará la fase de pruebas de nuestro software. Ngrok es una herramienta “freemium”, es decir, podemos usar parte de su funcionalidad de forma gratuita pero ciertas características requerirán la suscripción a un plan de pago. La versión gratuita nos sirve perfectamente para un proyecto personal.

¿Qué es Ngrok?

Para enterarnos de una vez de qué es Ngrok, vamos dejarnos de definiciones técnicas y pasamos a la explicación “entendible”. Con Ngrok podemos crear un túnel accesible a través de un dominio que nos asigna la propia aplicación, para así acceder a un servidor local.

Cuando ejecutamos Ngrok con el comando ngrok http 80, veremos que este nos asigna un dominio aleatorio similar a http://cb04410f.ngrok.io. Cuando accedemos a ese dominio a través del navegador, es como si estuviésemos accediendo al servidor en localhost, porque Ngrok se encarga de redirigir el tráfico a través del túnel.

Ejemplo de uso de Ngrok para entender las posibilidades de esta herramienta.

Vamos a plantearnos una situación en la que tenemos un servidor XAMPP en localhost para desarrollar temas WordPress. Resulta que nuestro cliente quiere ver el tema en funcionamiento antes de pagar, así que tendremos que buscar una forma de enseñárselo.

Para poder dar acceso al cliente a nuestro servidor XAMPP en localhost, necesitaríamos abrir el puerto en el router y después facilitarle nuestra IP pública, además de tener configurado correctamente XAMPP para permitir esta conexión remota. Vemos que este proceso es bastante tedioso y lioso. Es aquí donde Ngrok sale al rescate y nos aligera la tarea.

Al ejecutar el comando ngrok http 80, nuestro cliente podrá acceder a nuestro servidor local empleando la URL que nos asigna (por ejemplo antes nos asignaron http://cb04410f.ngrok.io), sin necesidad de abrir puertos en el router y sin editar la configuración del servidor XAMPP.

ngrok consola

Esto nos evita recurrir a intrincadas soluciones mediante un VPN o servidores externos, consiguiendo mostrar al cliente nuestro producto. Con este ejemplo creo que ya ha quedado claro que es Ngrok y para qué sirve, pero no terminan aquí las sorpresas, Ngrok tiene más que ofrecernos, así que sigue leyendo.

Analizando las peticiones HTTP con Ngrok.

En el ejemplo anterior, cuando ejecutamos Ngrok con el comando ngrok http 80, además se crea una interfaz web desde la que inspeccionar todas las peticiones HTTP y así poder debuggear y encontrar fallos en la aplicación.

inspeccionar peticiones http con ngrok

La interfaz web es accesible desde el navegador y nos indican la dirección tras ejecutar el comando, que generalmente suele ser http://127.0.0.1:4040.

Además debes saber…

Ngrok es una aplicación multiplataforma y está disponible para Windows, Mac, ARM y Linux.

El plan gratuito tiene las siguientes limitaciones:

  • Los túneles se crean en dominios aleatorios.
  • Soporta 40 conexiones por minuto.
  • Sólo se permite un proceso de Ngrok, que a su vez permite la creación de 4 túneles.

Para conocer todos los posibles comandos y opciones que acepta Ngrok pásate por su página de documentación oficial (en inglés).

La entrada Ngrok, crea túneles seguros a tu servidor local aparece primero en Vozidea.com.


Cómo reproducir música desde la terminal Linux

$
0
0

Cada vez buscamos reproductores de audio más livianos y minimalistas, algo que podemos llevar al extremo si usamos la terminal para reproducir nuestra música favorita. Lo cierto es que no hay nada más minimalista y liviano que la propia terminal, pero también es cierto que la terminal no es algo que guste a los usuarios recién llegados al universo Linux. Sea como sea, os vamos a mostrar cómo reproducir música desde la terminal Linux.

Cómo reproducir música desde la terminal Linux

Nosotros hemos elegido el reproductor CMUS, que es un reproductor programado en C muy práctico y muy fácil de instalar. Es un reproductor de audio gratuito y de código abierto, diseñado para sistemas UNIX. Dispone de una página oficial en GitHub donde podemos encontrar toda la información a cerca de CMUS (en inglés).

Cómo reproducir música desde la terminal Linux.

Instalación de CMUS.

En nuestro caso lo hemos probado en Ubuntu 16.04 y el proceso de instalación ha sido tan sencillo como ejecutar el comando sudo apt-get install cmus. También tenemos la opción de compilarlo desde el código fuente por si no lo encontráis en los repositorios de vuestra distribución.

Formatos de audio soportados y funcionalidad.

A pesar de tener una apariencia tan simple, CMUS soporta gran cantidad de formatos de audio, entre los que podemos encontrar algunos de los más usados: MP3, Ogg Vorbis, WAV, MP4, FLAC, WavPack, Opus, Musepack, AAC, audio CD, etc. Además incluye soporte para todos los formatos soportados FFmpeg (APE, WMA, MKA, etc) y libmodplug (MOD, S3M, XM, IT, 669, AMF, AMS, etc).

También incluye soporte para Last.fm y Libre.fm. Incluso puedes encontrar extensiones en la Wiki de CMUS con las que puedes reproducir música de Youtube e incluso de Spotify.

Interfaz y manejo desde el teclado.

La interfaz de CMUS se maneja con comandos de teclado, de un modo similar al que se maneja el editor Vi. Por ejemplo, si queremos añadir una carpeta con música usaremos el comando :add /ruta/musica/.

cmus, reproductor de audio de terminal

Esta interfaz está dividida en dos columnas, en una se ordenan los diferentes artistas y en la otra las diferentes canciones o pistas. Para cambiar entre una u otra emplearemos el botón TAB (tabulador).

CMUS se controla totalmente desde el teclado y podemos usar atajos como pulsar la tecla b para pasar a la siguiente canción, z para saltar a la canción anterior o x para volver a reproducir la canción.

Alternativas a CMUS.

Existe un reproductor de terminal alternativo a CMUS, se llama MOC (Music On Console) y consta de dos partes, un servidor (moc) y un reproductor o interfaz (mocp). El funcionamiento e interfaz es similar al de CMUS, por lo que podéis elegir entre uno u otro.

La entrada Cómo reproducir música desde la terminal Linux aparece primero en Vozidea.com.

Diferencias entre ownCloud y NextCloud

$
0
0

Muchas veces cuando buscamos una opción para crear nuestro propio sistema de almacenamiento en la nube nos encontramos como principales recomendaciones a ownCloud y NextCloud. Una de las primeras dudas que nos asalta, es saber cuáles son las diferencias entre ownCloud y NextCloud.

Diferencias entre ownCloud y NextCloud

Introducción: ¿Qué es ownCloud y NextCloud?

Pero para conocer las diferencias debemos tener claro qué es ownCloud y NextCloud. Podemos definirlos como programas que nos permiten crear nuestro propio sistema de almacenamiento en la nube para compartir archivos, gestionar tareas, configurar entornos colaborativos, editar ficheros online, visualizar y reproducir archivos multimedia, etc.

Normalmente cuando hablamos de ownCloud y NextCloud se nos vienen a la cabeza algunas opciones más conocidas como DropBox o Google Drive. Aunque todas las aplicaciones nombradas son diferentes, su funcionalidad central es la misma, gestionar un entorno de almacenamiento en la nube.

La principal ventaja que nos ofrece ownCloud y NextCloud, es que este sistema en la nube lo creamos nosotros, sin depender de una compañía o servicio de terceros. Ahora que ya conocemos un poco más a los protagonistas, ya podemos comentar sus diferencias.

Un poco de historia, el nacimiento de NextCloud.

Hace algunos años apareció en primer lugar ownCloud, un software que mantiene una versión comunitaria gratuita y de código abierto. Al mismo tiempo, ofrecen un servicio de pago con el que consigues soporte y funcionalidades extra dirigidas principalmente a empresas. Estas funcionalidades extra son de código cerrado y no están presentes en la versión gratuita.

Una situación parecida la vemos desde hace tiempo en WordPress, por un lado tenemos WordPress.org que nos ofrece un CMS gratuito de código abierto y por otro lado tenemos WordPress.com que se ofrece como un servicio con características de pago.

La cuestión es que tras algunos sucesos internos en la compañía ownCloud, se creó un fork de ownCloud al que se llamó NextCloud. La principal diferencia es que los desarrolladores de Nextcloud se comprometieron a mantener todas las funcionalidades como software de código abierto.

Diferencias entre ownCloud y NextCloud.

Tanto Nextcloud como ownCloud tienen funcionalidades similares, ya que ambos giran en torno al mismo código. Con el paso de los años se han ido implementando nuevas funcionalidades, pero hacia la creación de una nube doméstica, podríamos decir que ambos scripts nos ofrecen las mismas funcionalidades esenciales.

Nextcloud nos ofrece algunas funciones como videoconferencia, llamadas de audio o la posibilidad de compartir la pantalla que no están presentes en ownCloud. Pero lo cierto es que ambos scripts disponen de plugins o addons creados por desarrolladores que añaden todo tipo de funcionalidades, lo que equilibra todavía más la balanza.

Si has llegado hasta aquí quizás sea porque no sabes si instalar ownCloud o Nextcloud. Personalmente siempre recomiendo Nextcloud porque es un proyecto totalmente de código abierto para una montar una nube doméstica, pero si te decides por ownCloud tendrás prácticamente lo mismo.

En definitiva, no vale la pena hacer un combate ownCloud vs Nextcloud a menos que lo vayas a utilizar en un ambiente empresarial y donde quizás necesites soporte (donde ya entraríamos a valorar el soporte empresarial que ofrece cada compañía, algo que queda fuera de mi alcance).

La entrada Diferencias entre ownCloud y NextCloud aparece primero en Vozidea.com.

URL canónica o redirecciones 301

$
0
0

Hoy vamos a entrar de lleno en uno de los temas que nos puede causar cierta confusión sino tenemos los conceptos de URL canónica y redirección 301 claros. En algunas ocasiones incluso puede surgir la duda de si usar una u otra técnica, sobre todo a la hora de evitar contenido duplicado.

URL canónica o redirecciones 301

Empecemos por el principio definiendo los diferentes conceptos y después profundizaremos en estas dos opciones que nos van a permitir mejorar el SEO de nuestra web. Este es un artículo que sirve tanto para gente que está aprendiendo SEO, como para programadores de aplicaciones web.

¿Qué es una URL canónica?

Hace algún tiempo ya definimos este concepto en nuestra guía de SEO On-Page, en el apartado 4.11. A pesar de ser un artículo con más de cuatro años, sigue siendo totalmente válido todo lo descrito en ella.

De todas formas, vamos a darle un repaso al concepto de URL canónica y esta vez la voy a definir como la URL que nos lleva a la versión preferida de un mismo contenido. Quizás esta definición no os diga mucho, pero prestad atención al siguiente ejemplo y lo entenderéis sin problemas.

Imaginad por un momento que mi página web dispone de dos modos de visualización, uno el estándar y otro en modo oscuro. Para entrar en el modo estándar empleo la URL http://www.vozidea.com y para acceder al modo oscuro tengo que usar la URL http://www.vozidea.com/?modo=oscuro.

En este momento nos va a surgir un problema bastante grave en cuanto a SEO, ya que ambas URLs mostrarán contenidos idénticos, lo único que cambiará será el color de la página. Esto nos llevará a tener contenido duplicado, ya que Google por defecto indexará ambas URLs.

Es aquí donde entra en juego la URL canónica, ya que podemos definir como URL canónica http://www.vozidea.com para decirle a bot de Google que es nuestra versión preferida. Para conseguir esto, sólo tendríamos que añadir la siguiente etiqueta HTML en el apartado <head> de la URL http://www.vozidea.com/?modo=oscuro :

<link rel="canonical" href="http://www.vozidea.com/" />

Con esa simple línea, Google ya sabe que cuando acceda a mi web en modo oscuro, en realidad la URL principal es http://www.vozidea.com.

¿Qué es una redirección 301?

Sin entrar en mucha profundidad, una redirección 301 es un tipo de respuesta que puede dar un servidor HTTP y que nos dice que el recurso solicitado se ha movido de forma permanente.

Las redirecciones 301 se procesan de una forma transparente en el navegador y generalmente no nos da tiempo a percatarnos. El propio navegador se redirige automáticamente hacia la nueva localización del recurso, sin que tenga que intervenir el usuario.

¿Cuándo usar una URL canónica y cuando usar una redirección 301?

La pregunta que da título este apartado puede parecer bastante evidente, pero no es así, el usar uno u otro sistema puede resultar hasta complejo en ciertas situaciones.

Lo primero que debemos tener en cuenta es la diferencia fundamental entre las redirecciones 301 y las URLs canónicas, ya que una redirección funciona a nivel servidor HTTP (Apache, Nginx, etc), mientras que la URL canónica funciona a nivel de código HTML.

URL canónica en código HTML

Esto que no parece tan importante, puede suponer un problema cuando por limitaciones no podemos crear redirecciones 301 o no podemos editar el código HTML.

La clave para entender cuando usar un redirección 301 o una URL canónica está en una única palabra: “coexistir”. Aunque ahora mismo te sientas un poco perdido, sigue adelante que ya falta poco para entenderlo a la perfección.

Volviendo al ejemplo inicial de la web con dos modos de visualización diferentes (modo estándar y modo oscuro), accesibles a través de dos URLs diferentes, nos sirve de ejemplo para mostrar un caso en que ambas URLs deben coexistir.

No tenemos más opción que mantener las dos URLs operativas, si queremos que el modo oscuro sea accesible para los usuarios. Entonces en este caso en que dos contenidos iguales o muy parecidos deben coexistir a través de dos URLs diferentes, hay que usar URLs canónicas.

Otras situaciones en las que usar URL canónica.

Se me ocurren otras situaciones en las que usar una URL canónica es la mejor opción:

  • Cuando empleamos algún parámetro de tracking en la URL.
  • Cuando tenemos contenidos iguales o similares pero que están clasificados en categorías diferentes. Esta es una situación muy habitual en las tiendas online, por ejemplo un bolso lo podemos encontrar tanto en la categoría “complementos” como en la categoría bolsos de mujer.

¿En qué situaciones hay que usar una redirección 301?

Las redirecciones 301 las usaremos en el resto de situaciones en las que los contenidos repetidos no deben coexistir. Usar redirecciones 301 es el método recomendado, ya que permite mantener una estructura de enlaces simple y tiene un funcionamiento transparente para el usuario.

Preguntas frecuentes sobre las URLs canónicas.

A continuación daremos respuesta a las preguntas más habituales que nos pueden surgir a la hora de usar URLs canónicas.

¿Usar una URL canónica transmite autoridad (linkjuice, pagerank, etc)?

La respuesta es . Google lo específica claramente en un documento oficial de ayuda, en el que afirma que todas las señales se transfieren a la URL canónica.

¿Debería usar la meta etiqueta noindex en las páginas que contienen rel=”canonical”?

En este caso la respuesta es no. Si usas la etiqueta noindex estarás impidiendo a Google que procese esa página y por lo tanto no podrá leer la URL canónica especificada en el código HTML.

¿Tienen que ser iguales dos páginas para hacer referencia a una de ellas con la URL canónica?

La respuesta es no. Las dos páginas deben tener contenidos muy parecidos pero no tienen que ser exactamente iguales.

¿Puedo apuntar con rel=”canonical” a un dominio diferente?

La respuesta es sí. Desde hace ya unos años Google permite esta opción siempre y cuando se haga de forma legítima.

Sé que muchos cuando hablan de SEO se basan en suposiciones o ciertas “experiencias”, pero como ya es habitual en Vozidea, nos basamos en fuentes oficiales (en esta ocasión ha sido a través de este enlace).

La entrada URL canónica o redirecciones 301 aparece primero en Vozidea.com.

El RPG Sword Art Online: Memory Defrag disponible para Android

$
0
0

Una gran noticia para los amantes del género de los RPG, ya que podemos descargar Sword Art Online: Memory Defrag para dispositivos Android. Es un juego de esos que te enganchará desde el primer momento, aunque tiene un pequeño inconveniente, sólo está disponible con subtítulos en inglés (conserva las voces originales en japonés). Si te gustan este tipo de juegos pero prefieres que estén en perfecto español, puedes probar Final Fantasy Brave Exvius, un juego también muy recomendado.

El RPG Sword Art Online: Memory Defrag disponible para Android

Personalmente recomiendo probar Sword Art Online: Memory Defrag porque como todo buen RPG que se precie, nos ofrece una historia interesante y original. Sin hacer spoliers ni desvelar nada de la historia, os situaré un poco para que veáis por dónde van los tiros.

Pequeña introducción a la historia (sin spoilers).

Todo comienza con el desarrollo de una nueva tecnología de realidad virtual, que se gana adeptos y consigue que participen cientos de usuarios. Todo esto tendrá un giro cuando de repente y sin previo aviso, desaparece el botón para desconectarse de la máquina de realidad virtual.

Esto que puede parecer un fallo, no lo es, convirtiéndose así esta experiencia en una situación de vida o muerte. Así da comienzo un reto para poder escapar vivo, ya que la muerte en el mundo virtual significa la muerte en el mundo real.

Análisis de Sword Art Online: Memory Defrag, un gran RPG para dispositivos móviles.

El sistema de controles.

Comenzaremos hablando de los controles, ya que en este caso tiene un toque de complejidad debido al sistema de lucha. No estamos ante el clásico juego donde sólo tenemos que dar toques en la pantalla en el momento adecuado, sino que tendremos que movernos por el escenario y asestar golpes y combinaciones letales.

Podemos desplazarnos por el área de lucha deslizando a izquierda o derecha. También podemos optar por pulsar sobre un punto y nuestro personaje irá corriendo. Si deslizamos hacia arriba, el personaje dará un salto.

Para los movimientos de ataque básicos, sólo tenemos que pulsar sobre la pantalla y el personaje usará su ataque básico. También existen otro tipo de ataques especiales que tienen su botón dedicado en pantalla, pero que su uso consumirá puntos MP. Los puntos MP se irán regenerando a medida que asestamos golpes básicos al enemigo.

También tenemos la posibilidad de bloquear ataques enemigos manteniendo pulsado sobre la pantalla.

Vemos que es un sistema de lucha con unos controles bastante completos y esto es sin lugar a duda lo más atractivo del juego. Necesitarás bastante práctica para aprender a usar todas las habilidades correctamente.

Sistema de juego.

Aquí no hay muchas sorpresas, manejaremos a nuestros personajes que irán ganado experiencia y subiendo de nivel a medida que superen los diferentes combates. También iremos consiguiendo objetos con los que podremos mejorar los atributos de los personajes (ataque, defensa, puntos de vida, etc).

A la hora de mejorar a nuestros personajes y conseguir nuevos personajes es donde entra en juego el conseguir recursos. Aquí han aprovechado para incorporar los ya clásicos pagos integrados dentro de la aplicación.

Descargar Sword Art Online RPG para Android

Algo que no me has gustado son las constantes pantallas de “Loading…” que me encontré al ir navegando por las diferentes pantallas. Cuando llevas un tiempo jugando se hacen bastante pesadas las transiciones.

Trucos y consejos de Sword Art Online: Memory Defrag para Android.

Un pequeño truco para Sword Art Online es gestionar correctamente los “memory diaomonds” y no gastarlos sin sentido. En principio hay que tratar de usarlos para reclutar personajes más poderosos.

Otro consejo fundamental es completar las misiones diarias y no te olvides de reclamar tus recompensas. Jugando a diario conseguirás más memory diamonds gratis y podrás hacerte más fuerte.

Si no te convencen los controles desde la pantalla de tu smartphone, el juego funciona perfectamente en Bluestacks. Sólo tendrás que configurar los botones para manejarlo con el teclado o con un gamepad.

Para instalar Sword Art Online: Memory Defrag en Bluestacks tendrás que descargar el APK desde una fuente externa como APKmirror ya que no aparece desde la Play Store del emulador.

La entrada El RPG Sword Art Online: Memory Defrag disponible para Android aparece primero en Vozidea.com.

Etcher, un grabador de imágenes en pendrives USB

$
0
0

Muchas veces tenemos que grabar una imagen de un sistema operativo en un dispositivo de almacenamiento portátil (por ejemplo un pendrive). Uno de los programas destinados este fin es Etcher, un grabador de imágenes en pendrives USB.

Etcher, un grabador de imágenes en pendrives USB

Es cierto que disponemos de muchos programas para este fin, pero nos ha llamado la atención Etcher por ser gratuito, multiplataforma y de código abierto.

Etcher usa las librerías Electrón, por lo que el consumo de memoria se dispara. Parece que estas librerías se están poniendo muy de moda, de hecho ya hablamos de Termius, un cliente SSH multiplataforma que también usa las librerías Electrón.

Etcher, un grabador de imágenes simple y fácil de usar.

Tras probar Etcher he podido comprobar que su principal virtud es una interfaz muy sencilla e intuitiva que hace casi imposible el equivocarnos. El proceso necesita de tres pasos y el propio programa no nos dejará pasar al siguiente sino los realizamos correctamente.

Estos tres pasos son:

  • Seleccionar la imagen. Soporta varios tipos de imágenes entre los que nos encontramos imágenes ISO, img, hddimg, dmg, dsk, raw y también imágenes comprimidas en formato xz, zip, gz, y bz2.
  • Seleccionar el dispositivo de destino. Se puede emplear cualquier dispositivo de almacenamiento portátil como tarjetas de memoria, pendrive USB, etc.
  • Flash! La grabación de los datos le puede llevar un rato.

 

Etcher interfaz

Por defecto, el programa hace una verificación de la integridad de los datos grabados, lo cual es algo que otros programas no nos ofrecen y es muy útil.

Desventajas de Etcher.

No es oro todo lo que reluce y Etcher tiene ciertas deficiencias que debemos considerar. En primer lugar no nos ofrece opciones avanzadas como seleccionar el tipo de partición de destino, el sistema de archivos, etc.

Y la otra desventaja es la gran cantidad de recursos que consume, nada menos que 150MB de RAM para un programa tan sencillo.

La entrada Etcher, un grabador de imágenes en pendrives USB aparece primero en Vozidea.com.

Viewing all 299 articles
Browse latest View live