domingo, 29 de septiembre de 2019

Máquina Virtual con LAMP en Virtual Box

Llevo un par de semanas pensando en un proyecto para ir realizando poco a poco en tecnificados.com, y uno de los componentes que necesito para empezar es  una base de datos relacional.

Lo más cómodo es utilizar MySQL, y para administrarla utilizar PHPMyAdmin, el "problema" es que son muchos componentes a desplegar, y no me gusta instalar muchos servicios en el sistema operativo nativo de mi portátil (Windows).

Dándole una vuelta, he decidido montarlo en una máquina virtual con Ubuntu Server 18.

Y nada, me he puesto con ello y lo he hecho con la última versión de Virtual Box.

Lo que he instalado se llama LAMP, que son las siglas de:
  • Linux
  • Apache
  • MySQL
  • PHP para PHPMyAdmin
He tardado más de lo que pensaba, en otras versiones de Ubuntu Server se instalaba con un solo comando, aquí he tenido que instalar los componentes uno por uno, hacer que se hablen,... y para acabar, he solucionado un bug en el código de PHPMyAdmin (https://stackoverflow.com/questions/48001569/phpmyadmin-count-parameter-must-be-an-array-or-an-object-that-implements-co).

Cuando he terminado he pensado, que si exporto la máquina y la subo a Mega, la puedo compartir y así cualquiera puede descargarse la máquina y evitar volver a hacer lo mismo. Al terminar lo he exportado en formato "OpenVirtualizationFormat 1.0" para que se pueda abrir con cualquier software de virtualización.

Así que os cuento brevemente las características de la máquina:

- RAM: 2 Gigas
- Disco: 40 Gigas (reservado dinámicamente)
- Procesadores: 1

Más cosillas a tener en cuenta:

- Nombre de la máquina: ironman
- Usuario ubuntu: tecno
- Password ubuntu: tecnificados
- Usuario mysql: root
- Password mysql: tecnificados
- SSHServer instalado.


He creado dos "snapshots":



Si no os interesa LAMP y queréis sólo el sistema operativo, podéis eliminar el segundo.

El firewall esta desactivado, y el MySQL soporta conexiones remotas desde cualquier host. A nivel de seguridad deja bastante que desear, pero es un entorno de pruebas.

Para que todo funcione bien, recordar tener abiertos los siguientes puertos:

- 22: acceso ssh
- 80 y 443: puertos para acceder vía web a PHPMyAdmin
- 3306: el puerto por defecto de MySql

Os podéis descargar la máquina a través del siguiente enlace: https://mega.nz/#F!6lMylKLR!nuW8D9A-zRMWcsRiaFAiVA

El tamaño de la imagen es de 1 Giga, espero que os sea de utilidad, y que os haya ahorrado algo de tiempo.

domingo, 22 de septiembre de 2019

Software de recuperación en Windows


Hace unas semanas os comenté que siempre llevo un pendrive conmigo (soy el informático de la familia, de la comunidad de vecinos,...) con algunos programas para limpiar/recuperar un PC con Windows.

Ayer un amigo me pidió por WhatsApp el pen para el lunes, y pensé que era mejor colgar todo el software en MEGA y pasarle el enlace. Luego se me ocurrió escribirlo y compartirlo por aquí.

Ésta es la URL donde os podéis descargar los programas que me han salvado la vida muchas veces, y con los que he devuelto a la vida a muchos Windows:


Dentro hay cuatro instaladores:
  • adwcleaner_7.4.1.exe (AdwCleaner): herramienta de Malwarebytes especializada en el adware. Ideal para limpiar navegadores.
  • avast_free_antivirus_setup_offline (Avast Antivirus): dentro del mundo de los antivirus, Avast es el que más confianza me da para realizar una limpieza total, aunque si se mantiene residente es un poco pesado.
  • DriverEasy_Setup.exe (Driver Easy): con esta utilidad consigo encontrar todos los drivers que un PC necesita, tanto si están sin instalar como si están obsoletos.
  • gu5setup.exe (Glary Utilities): os hablé de esta genial utilidad hace algunas semanas, el sustituto del CCleaner.
Espero que os sea de utilidad.

domingo, 15 de septiembre de 2019

Markdown - Guía rápida



Hoy os quiero hablar de Markdown, un lenguaje de marcado que nos permite formatear nuestros textos de manera rápida y simple, generando una salida similar al HTML.

Para que lo veáis mejor, os pongo unos ejemplos de HTML vs. Markdown
  • Encabezado 1  
    • HTML:     <h1>Título</h1>  
    • Markdown: # Título
  • Encabezado 2
    • HTML:     <h2>Subtítulo</h2>
    • Markdown: ## Subtítulo
  • Cursiva
    • HTML:      <i>Texto</i>
    • Markdown:  *Texto*
  • Negrita
    • HTML:     <b>Texto</b>
    • Markdown:  **Texto**
  • Enlace
    • HTML:     <a href="https://www.tecnificados.com">enlace</a>
    • Markdown:  enlace(https://www.tecnificados.com)
¿Dónde puedo utilizar Markdown?

En la web existen muchos editores que traducen Markdown a HTML ya procesado. Por ejemplo: https://stackedit.io o https://dillinger.io

Pero a mí lo que me gusta es que este formato es soportado en los repositorios de código más importantes como Github, Bitbucket,...

Por eso en la mayoría de los proyectos de estos repositorios, siempre hay un "readme.md" que contiene la documentación inicial.

Guía rápida de Markdown

Cursiva
Texto entre un asterisco * o un guión bajo _ . Ejemplo:

*Texto en cursiva*

Negrita
Texto entre dos asteriscos ** o dos guiones bajos __ . Ejemplo:


**Texto en negrita**

Saltos de línea:
Para generar un párrafo deja una linea en blanco (pulsa "enter" dos veces)
Para generar un salto de linea dentro del mismo párrafo deja dos espacios en blanco al final de la linea

Encabezados:
Con almohadilla(#), se concatenan tantos como niveles necesites. Ejemplo:

# Encabezado H1
## Encabezado H2
### Encabezado H3
#### Encabezado H4
##### Encabezado H5
###### Encabezado H6

Listas
Para crear simples listados se utilizan *, - o +. Utiliza el que más te guste, o combínalos. Ejemplo:
- Ironman
- Hulk
+ Viuda Negra
* Capitana Marvel
* Dr. Strange
+ Spiderman

Listas anidadas
Para crear listas anidadas utiliza cuatro espacios:

- Fase 1
- Iron Man (2008)
- The Incredible Hulk (2008)
- Iron Man 2 (2010)
- Thor (2011)
- Capitán América: el primer vengador (2011)
- The Avengers (2012)
- Fase 2
- Iron Man 3 (2013)
- Thor: The Dark World (2013)
- Captain America: The Winter Soldier (2014)
- Guardianes de la Galaxia (2014)
- Avengers: Age of Ultron (2015)
- Ant-Man (2015)
- Fase 3
- Capitán América: Civil War (2016)
- Doctor Strange (2016)
- Guardianes de la Galaxia Vol. 2 (2017)
- Spider-Man: Homecoming (2017)
- Thor: Ragnarok (2017)
- Black Panther (2018)
- Avengers: Infinity War (2018)
- Ant-Man and the Wasp (2018)
- Capitana Marvel (2019)
- Avengers: Endgame (2019)
- Spider-Man: Lejos de casa (2019)
         
Listas ordenadas
Tenemos que escribir el número seguido de un punto. También se pueden anidar con los cuatro espacios.

1. Fase 1
1. Iron Man (2008)
2. The Incredible Hulk (2008)
3. Iron Man 2 (2010)
4. Thor (2011)
5. Capitán América: el primer vengador (2011)
6. The Avengers (2012)
2. Fase 2
1. Iron Man 3 (2013)
2. Thor: The Dark World (2013)
3. Captain America: The Winter Soldier (2014)
4. Guardianes de la Galaxia (2014)
5. Avengers: Age of Ultron (2015)
6. Ant-Man (2015)
3. Fase 3
1. Capitán América: Civil War (2016)
2. Doctor Strange (2016)
3. Guardianes de la Galaxia Vol. 2 (2017)
4. Spider-Man: Homecoming (2017)
5. Thor: Ragnarok (2017)
6. Black Panther (2018)
7. Avengers: Infinity War (2018)
8. Ant-Man and the Wasp (2018)
9. Capitana Marvel (2019)
10. Avengers: Endgame (2019)
11. Spider-Man: Lejos de casa (2019)

Linea horizontal
Escribiendo *** o --- o ___

Enlaces en línea
Se escriben enmarcando el texto a enlazar entre corchetes [] y el link a seguir entre paréntesis. Ejemplo:

Pulsa [aquí](https://www.tecnificados.com) para ir a mi blog.

Enlaces automáticos
Se escriben introduciendo una URL entre los símbolos <>. Ejemplo:

<https://www.tecnificados.com>

Código
Si necesitas añadir código (html, sql, ...) lo puedes hacer con el acento `

El texto debe estar entre dos acentos. Ejemplo:

`Select name, year from films where year > 1980`

También lo puedes utilizar con varias líneas, pero en este caso deben ser tres acentos ```. Ejemplo:

```
Select name, year
from films 
where year > 1980
```

Imágenes
Insertar una imagen se parece mucho a insertar un enlace. Sólo hay que poner una exclamación ! al principio, y así se visualizará la imagen. Ejemplo:

![Imagen de Ironman](https://terrigen-cdn-dev.marvel.com/content/prod/1x/002irm_ons_cut_dsk_01_1.jpg)

El texto entre corchetes es el texto que se visualizará si la imagen no se carga.

Si además quieres añadir texto alternativo lo puedes hacer añadiendo al final el texto entre comillas. Ejemplo:

![Imagen de Ironman](https://terrigen-cdn-dev.marvel.com/content/prod/1x/002irm_ons_cut_dsk_01_1.jpg "Ironman de pie mirandote fijamente")

Tablas
Las tablas en Markdown son muchísimo más fáciles de escribir que en HTML.

Sólo tenemos que decir cuáles son los elementos de la cabecera, separar los campos con la barra horizontal y separar cada columna con la barra vertical | Ejemplo:

Nombre| Películas
-- | --
Fase I | 6
Fase II | 6
Fase III | 11

Podemos alinear las columnas utilizando dos puntos : junto a las líneas horizontales de la línea de separación. Con dos puntos a la izquierda de la línea, la columna estará alineada a la izquierda. Si los ponemos a la derecha de la línea, se alinearán a la derecha. Si los ponemos a ambos lados, su alineación será centrada. Lo mejor es verlo con un ejemplo:

Saga|Nombre | Películas
:-- |:--: | --:
Gemas del Infinito | Fase I | 6
Gemas del Infinito | Fase II | 6
Gemas del Infinito | Fase III | 11

Caracteres que Markdown interpreta 
A veces necesitamos utilizar caracteres como * o -

Para eso está la barra invertida \

Si la utilizamos justo antes del carácter que no interese, no será interpretada. Ejemplo:

Esto es un asterisco \*

Y con esto acabamos la guía rápida de Markdown.

He creado un repositorio en Github (https://github.com/tecnificados/markdown), donde están todos los ejemplos de la guía rápida. Se encuentran en el fichero "readme.md", que por defecto interpreta. Si queréis acceder al modo texto, para ver la sintaxis de Markdown, hacerlo a través de este enlace:

https://raw.githubusercontent.com/tecnificados/markdown/master/README.md

Espero que os sea de utilidad.

domingo, 8 de septiembre de 2019

OpenJDK - Sin restricciones en producción


Como muchos sabéis la licencia de Oracle JAVA ha cambiado desde que ha llegado JAVA 11 (y ya estamos por la 12, y la 13 a punto de salir...)

A nivel de escritorio y uso "no profesional" no nos afecta. 

Pero si necesitamos utilizarlo en un servidor (con Tomcat por ejemplo), tenemos un pequeño problema, hay que pasar por caja.

La alternativa es usar OpenJDK en lugar del JDK que siempre hemos descargado de la web de Oracle.

Se puede descargar desde su web oficial: https://openjdk.java.net/

Si trabajamos en sistemas Linux no hay ningún problema, ya que por defecto al realizar la instalación de JAVA por defecto ya está utilizando el OPENJDK.

Para sistemas Windows es un pelín más complicado, pero nada que no podamos hacer en menos de cinco minutos.

Lo primero que tenemos que hacer es descargar el OpenJDK:


El de Windows está en esta ruta: 

https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_windows-x64_bin.zip



Unos minutos después...

Lo descomprimimos en la carpeta que más nos interese. Por ejemplo: "C:\Java\openjdk-12.0.2"

Esto nos dejará los ejecutables en la carpeta: "C:\Java\openjdk-12.0.2\bin"

Y después de esto, sólo tenemos que ir a las variables del sistema operativo:

Y añadir la ruta anterior a la variable PATH.



Con esto, si ejecutamos en una consola ("cmd") de Windows el comando: "java -version" nos debería aparecer una respuesta como ésta:



Y después de esto ya tenemos nuestro sistema listo para utilizar OpenJDK.

domingo, 1 de septiembre de 2019

¿Necesitas una VPN? Te recomiendo ProtonVPN


Hace unas semanas estaba programando en la playa (me encanta programar) cuando de repente no podía descargar las dependencias que necesitaba a través de Maven. Después de mirar logs vi que mi problema era que mi IP había sido baneada de https://mvnrepository.com, estaba conectado a través del teléfono móvil, y no tenía mucho margen de maniobra.

Después de darle unas vueltas, pensé que la forma más rápida era buscar una VPN y probarlo.

Googleando un poco encontré el proyecto ProtonVPN (https://protonvpn.com/), de los creadores de ProtonMail (https://protonmail.com/).

Ambos proyectos surgen de un grupo de científicos del CERN, querían conseguir privacidad (real) en sus cuentas de correo electrónico, y amparándose en las leyes suizas han conseguido un servicio de email totalmente seguro y privado. El problema era que la privacidad de la red utilizada para conectarse a ese servicio podía ser baja o nula, así que ahora han sacado su propia VPN para conseguir privacidad absoluta.

Tiene varias características que me convencieron desde el principio:

  • Simple y fácil de instalar: instalador de tipo "next, next, next", sin adware de ningún tipo.
  • Modelo freemium: tiene varias modalidades, y una de ellas tiene coste cero
  • Muy ligera: mi sistema operativo no se ha resentido en absoluto. Tras varios años trabajando con muchas VPNs, ésta es sin duda la más limpia que he probado.
  • Registro rápido y eficiente: en menos de un minuto te has registrado en su web.
  • Alta velocidad de descarga: más de un mega por segundo, para lo que yo necesito...
Para utilizarlo, una vez instalado, sólo tenemos que hacer login en la aplicación:


A continuación se nos desplegará la aplicación en pantalla completa con un mapa del mundo para elegir a dónde queremos conectarnos. Para no perdernos en la configuración, lo mejor es buscar el botón "Quick Connect" a la izquierda:


Lo pulsamos y en menos de 20 segundos ya estamos conectados.

La interfaz cambia, y ahora en el mapa nos aparece desde dónde estamos conectados:


Si ahora nos conectamos a cualquier servidor para saber cuál es nuestra IP nos aparece esta información:



Y como podéis ver la velocidad de descarga roza los dos megas por segundo:



En definitiva, si necesitáis una VPN tanto para uso ocasional como para temas más serios os recomiendo ProtonVPN. 

Está disponible para teléfonos móviles, varios sistemas operativos... Vamos que no tenéis excusas.