Configurando proxy SOCKS 5 para Maven en Netbeans

Para configurar un proxy SOCKS 5 para Maven podemos hacerlo a través del archivo settings.xml, otra forma es agregar al “path” del sistema la variable MAVEN_OPTS.

En el caso particular de Netbeans 8.2, existe una forma fácil, para lo cual nos dirigimos al menu Herramientas > Opciones > Java > Maven (Activar si aún no lo está).

Ingresamos la dirección IP (o nombre del host) y el puerto del proxy en el campo Opciones de Ejecución Global:

Finalmente hacemos click en el botón “Aceptar”.

Eso es todo, ahora Maven se conectará a Intenet a través del proxy SOCKS.

Creando nuestra primera aplicacion al instante en Django

Con Django puedes montar de manera rápida tu primera aplicación. Primer creamos nuestra base de datos, yo la llamaré ‘djangodb’. La base de datos que voy a usar es MySQL.

Nota: La versión de Django que estoy usando es la 1.11.4

Creando un nuevo proyecto

Primero voy a crear un proyecto nuevo, voy a mi consola de comandos y ejecuto la siguiente instrucción:

django-admin startproject admin_django

El sistema crea la estructura de archivos de nuestro proyecto:

admin_django/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Ahora verificamos si el proyecto ha sido creado correctamente, para ello iniciamos el servidor ejecutando:

python manage.py runserver

Vamos a nuestro navegador y escribimos http://localhost:8000/  y nos cargara nuestro proyecto creado correctamente.

Configurando la Base de datos

Primero instalo la librería para darle soporte MySQL dentro de Django, ejecuto:

pip install MySQL-python
Collecting MySQL-python
  Downloading MySQL-python-1.2.5.zip (108kB)
Installing collected packages: MySQL-python
  Running setup.py install for MySQL-python: started 
...

Luego ingresamos a la carpeta de nuestro proyecto y abrimos el archivo settings.py , vamos a la linea DATABASES y conectamos nuestra base de datos MySQL:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'sql_mode': 'traditional',
        }
    }
}

Creando nuestra aplicación

Ahora sencillamente ejecutamos:

python manage.py migrate

Con este comando Django crea las tablas en la base de datos y monta un paquete completo con login, usuario, etc.

Si corremos el servidor:

python manage.py runserver

Vamos a nuestro navegador y escribimos http://localhost:8000/admin/admin  y nos cargara nuestra primera aplicacion que nos pide que iniciemos sesión :

Coloco mi usuario y contraseña e ingreso a la aplicación:

 

Pueden ver en la imagen anterior que puedo agregar, editar, eliminar usuario y grupos.

Creando mi Usuario de acceso a la aplicación

Acá muy atento, recuerda que debes de usar la consola de comandos de Windows CMD la abres y ejecutas el siguiente comando:

python manage.py createsuperuser
Username (leave blank to use 'frontend'): miusuario
....

Al ejecutar colocamos nuestro usuario y luego el pass para nuestra cuenta, luego regresamos a la pantalla de login e iniciamos sesión con nuestro usuario y password que hemos creado.

Espero que les sirva de mucho este tutorial.

Nos vemos hasta un próximo tutorial.

LaPatria.pe: Un nuevo diario digital

En marzo de este año 2017 se ha empezado a realizar trabajos con énfasis en el contenido digital para el proyecto lapatria.pe, tanto en videos, noticias, posts en facebook, con el objetivo de informar sobre los últimos acontecimientos en las Regiones del Sur del Perú.

El diario es puramente digital (No hay versión impresa), tenemos la seguridad que se puede llegar a informar mas eficazmente que los medios tradicionales (Prensa escrita, Radio, televisión).

Visite este interesante proyecto en las direcciones:

3 formas de uso de los Certificados Digitales

Un certificado digital es un archivo que asocia una clave criptográfica a uno o varios atributos de un usuario (persona o entidad), y son firmados por autoridades de certificación (AC).

Los componentes básicos de un certificado incluyen:

  • El nombre del usuario o entidad que está siendo certificado.
  • Una clave pública del usuario o entidad.
  • El nombre de la autoridad de certificación.
  • Una firma digital.

La especificación X.509 de la ITU (International Telecomunications Union) provee un estándar para la estructura de un certificado digital de clave pública.

En el Perú, por ejemplo, el RENIEC (Registro Nacional de Identificación y Estado Civil) actúa como AC, firmando las claves públicas de los ciudadanos y generando los certificados digitales correspondientes. Cualquier entidad que disponga de la clave pública del RENIEC estará en condiciones de verificar sus certificados digitales, otorgando la confianza correspondiente a las claves públicas asociadas a los mismos.

Las aplicaciones que usan este sistema incluyen el correo electrónico seguro, las comunicaciones seguras en la web, la firma digital de archivos de software, autenticación de smartcard y cifrado de archivos de sistema. Al final de este artículo conocerás las 3 principales formas de uso de certificados digitales.

1. Certificados SSL

Son utilizados para establecer una conexión cifrada entre un navegador (computadora del usuario) y un servidor (sitio web). Por ejemplo, protege la información de una tarjeta de crédito que es intercambiada durante cada visita (sesión).

Funcionan de la siguiente manera:

  1. El navegador solicita una página segura (https://).
  2. El servidor envía su clave pública con su certificado.
  3. El navegador verifica que el certificado fue firmado por un CA raíz, que aún sea válido y que esté relacionado al sitio web contactado.
  4. El navegador usa la clave pública para cifrar una clave simétrica aleatoria y la envía al servidor con la URL y los datos necesarios cifrados.
  5. El servidor descifra la clave simétrica usando su clave privada y la usa para descifrar la URL y los datos.
  6. El servidor retorna la página web solicitada y los datos cifrados con la clave simétrica.
  7. El navegador descifra los datos y la página web usando la clave simétrica, entonces muestra la información.

2. Certificados de firma digital

Una firma digital es equivalente a una firma manuscrita, identifica a la persona que firma un documento. A diferencia de una firma manuscrita, una firma digital es difícil de falsificar porque contiene información cifrada que es única al firmante y es fácil de verificar.

Una firma digital está compuesta de tres elementos:

  1. Un certificado digital única para cada firmante.
  2. Una clave privada, a la cual sólo el firmante puede acceder.
  3. Una clave pública, la cual permite a cualquier persona validar la firma.

Las firmas digitales son una aplicación de la criptografía de clave asimétrica (ver figura).

criptografia-asimetrica

3. Certificados de Autenticación Cliente

Imagina que visitas un sitio web e instantáneamente y automáticamente inicias sesión, sin llenar un usuario y una contraseña, sin hacer click en el botón de autologin del navegador, sin una cookie enviada del navegador al servidor.

Los certificados clientes son instalados en el navegador y transferidos al servidor cuando el servidor los solicita y el usuario está de acuerdo.

La  AC es responsable de otorgar un certificado cliente y relacionarlo con una clave privada. El certificado es enviado por sí mismo al servidor, mientras que la clave privada es usada para firmar la solicitud de autenticación. La firma es verificada en el servidor, entonces el servidor sabe que realmente eres tu a quien le pertenece el certificado.

En el Perú. por ejemplo, el programa social Beca 18 utiliza los certificados de autenticación del DNI electrónico de los becarios, para darles acceso a su intranet.

Conclusiones

Los certificados digitales son de gran ayuda para el desarrollo de las comunicaciones seguras en internet, lo cual involucra también al comercio electrónico. Los usuarios, administradores y desarrolladores de internet necesitan tener una sólida comprensión de estos sistemas de seguridad basados en certificados con el objetivo de aprovechar todo su potencial.

Los certificados digitales protegen internet asegurando la autenticidad de los mensajes enviados a través de la red.

¿Y tú ya utilizaste Certificados Digitales? Comparte tu experiencia en los comentarios.

Recibir mensajes de facebook mediante tu sitio web

Seguramente alguna vez te preguntaste como recibir mensajes en tu página del facebook mediante tu sitio web, algo así como un chat en línea.

Pues para esto la exitosa red social ha habilitado esta función mediante su renovado plugin para páginas web, en  donde no solamente podrás mostrar los likes y las actualizaciones de tu muro, sino ahora también un componente para enviar mensajes directamente a tu fan page y mantener la conversación mediante la aplicación del facebook messenger.

En este árticulo te enseñamos una forma de como agregar esta funcionalidad a tu sitio web.

Para empezar debes crear un botón o enlace, para ello debes ubicar el siguiente código HTML justo debajo de aperturar la tag body:

<a href="/mensajes-facebook.html" target="_blank" id="btn-msg-face">Envíanos un mensaje</a>

Seguidamente agregamos el estilo CSS:

#btn-msg-face{
  position: fixed;
  bottom: 0;
  height: 30px;
  right: 10px;
  min-width: 183px;
  z-index: 16000002;
  background: #1F93DF;
  color: #fff;
  font:bold 12px Verdana;
  line-height: 30px;
  overflow: hidden;
  text-align: center;
}

Con lo cual obtendremos lo siguiente:

boton-chat

Cada vez que el usuario haga click sobre el botón se abrirá una nueva ventana del navegador en donde se cargará el plugin de facebook, para lo cual anexaremos el siguiente código javacript con jquery:

$(document).ready(main);

function main(){
  $('#btn-msg-face').on('click', function(){
    PopupCenter(this.href, this.target, '350','450'); return false;
  });
}

function PopupCenter(url, title, w, h) {
    var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
    var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;

    width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
    height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;

    var left = ((width / 2) - (w / 2)) + dualScreenLeft;
    var top = ((height / 2) - (h / 2)) + dualScreenTop;
    var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);

    if (window.focus) {
        newWindow.focus();
    }
}

Finalmente en el archivo “mensajes-facebook.html” colocaremos el código fuente que Page Plugin nos proporciona:

<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>Envíanos un mensaje</title>
	<style>
		body{margin: 0;padding: 0}
	</style>
</head>
<body>
	<div id="fb-root"></div>
  <script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/es_LA/sdk.js#xfbml=1&version=v2.5&appId=xxxxxxxxxxxxxx";
  fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-page" data-href="https://www.facebook.com/foo" data-tabs="messages" data-width="350" data-height="450" data-small-header="true" data-adapt-container-width="true" data-hide-cover="true" data-show-facepile="false">
<div class="fb-xfbml-parse-ignore">
<blockquote cite="https://www.facebook.com/foo">
Cargando chat...
</blockquote></div></div>
</body>
</html>

Con todo esto nuestros visitantes podrán interactuar con nuestras empresas mediante facebook :)

chat-facebook

Listar todas nuestras rutas de Laravel 5.1 con Git Bash

En ocasiones tenemos la necesidad de revisar nuestra rutas o URL amigables de nuestro proyecto mientras estamos trabajando.
Por suerte existe una manera de verlas, solo abrimos Git Bash y Ejecutamos el siguiente comando siempre y cuando nuestro Laravel este confgurado correctamente y no presente errores:

php artisan route:list

Ampliamos nuestra ventana de Git para ver la tabla en donde nos muestra la los métodos, la URI de nuestras rutas:
dsa

 

No olvidar que el listado de rutas que se nos muestra en pantalla varia según tu proyecto, no va a ser similar.

Espero les sirva de mucho para poder visualizar mejor sus rutas.

Gracias por su atención.

Como saber la ubicación del script que envía spam

Hace poco me di con la sorpresa que las IPs de nuestro servidor están en las listas negras, es decir que envían SPAM, tuve que recurrir a varios métodos para averiguar donde esta, pero al final solo era un comando.

Los pasos son:

Entrar al SSH con tu usuario y contraseña

Ejecutar el siguiente comando:

grep cwd /var/log/exim_mainlog | grep -v /var/spool | awk -F”cwd=” ‘{print $2}’ | awk ‘{print $1}’ | sort | uniq -c | sort -n

El resultado será una lista de los sitios que mas producen correos, información muy útil para tomar una decisión.

Referencia:

http://www.inmotionhosting.com/support/email/exim/find-spam-script-location-with-exim

Autocompilando Stylus

Stylus es un lenguaje innovador de hojas de estilo, el cual se compila a CSS. Inspirado en SASS, Stylus está construido con node.js y tiene la capacidad de ejecutarse en el navegador.

Para utilizar Stylus en Windows es necesario instalar node.js, el cual lo podemos descargar desde su sitio web nodejs.org.

Una vez instalado abrimos la línea de comandos (Windows + R > cmd) y ejecutamos lo siguiente:

npm –g install stylus

En esta oportunidad mostraremos una alternativa a la Automatización de Stylus con Sublime Text mediante una funcionalidad en línea.

Para esto simplemente accedemos a la línea de comandos y nos ubicamos en el directorio del proyecto, asumiendo que tenemos nuestros archivos de Stylus (.styl) en la carpeta styl y los archivos de hojas de estilo compilados (.css) en la carpeta css, ejecutamos lo siguiente:

stylus -w styl/ -o css/

Con esto estamos indicando a Stylus que monitorize (-w) los cambios que se realicen en la carpeta styl y compile automaticamente guardando el resultado (-o) en la carpeta css.

auto

Usar la consola Git Bash en vez de la consola de Digital Ocean

En este tutorial les quiero mostrar una manera de como conectar la Consola Git Bash  a nuestro Servidor VPS, VPN, etc. para gestionar los paquetes y hacer nuestras propias configuraciones, es decir que usaremos la consola mas famosa del mundo que viene con GIT, en ves de la consola que tiene nuestro Droplet en Digital Ocean.

c d

Pero pocos encuentra información rápida al respecto, por eso decidí hacer este tutorial para ayudarlos, es uno de los motivos por lo cual me gusta escribir tutoriales, y es para ayudar y compartir conocimiento con los mas jóvenes que se inician en el mundo del desarrollo de software en general.

Les voy a mostrar una manera rápida y sencilla sin hacerle bolas, de hacer esto.

Acotar que use la versión 1.9.4 de Git para este tutorial. Vamos con ello:

Paso 1

Abrimos el Git Bash, Hacemos doble click  para ello.

Para los que requieren permisos, no olviden botón derecho del mouse y ejecutar como administrador.

a

Cargamos y Dejamos abierto nuestro Git Bash:

c

Paso 2

Iniciamos Sesión con Nuestra Cuenta de Digital Ocean, Nos Dirigimos al contenedor de Droplets, para esto hacemos click en el botón Droplets que esta en el menú de navegación del lado izquierdo.

Anotamos la IP Address de nuestro Droplet que esta al costado del nombre de nuestro Droplet:

2

 

Paso 3

Escribimos el siguiente comando en nuestro consola Git Bash:

ssh -l root XXX.XXX.XXX.XXX (IP Address)

En ves de root ponemos nuestro nombre de usuario, pero por defecto el nombre de usuario es root. Presionamos ENTER y nos pedira el password:

4

Ingresamos nuestro password y listo !

Ya deberíamos estar conectados y podemos configurar e instalar paquetes a nuestro servidor con el Droplet determinado.

NOTA: No olvidar que es mejor y se recomienda usar SSH Keys, pero solo para salir del paso podemos usar el comando que les mostre.

 

Espero les haya servidor de mucho.

Muchas Gracias