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.

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

 

 

Editar archivos directamente en el servidor con Sublime Text

Cuando trabajamos con Sublime Text como IDE para desarrollar nuestras aplicaciones Digitales, podemos editar los archivos directamente en el servidor.

Bueno ahora vamos con los pasos para Editar archivos directemente en el servidor con Sublime Text:

 

Paso 1

Primero instalamos Sublime Tex, para ello nos dirigimos a su pagina web y nos descargamos el programa:

Página Web: http://www.sublimetext.com/

Pagina Web de Sublime Text, para descargar.
Pagina Web de Sublime Text, para descargar.

Una ves descargado el instalador de Sublime Text (ST), instalamos el programa como cualquier otro programa.

 

Paso 2

Ahora tenemos que instalar el Package Control(Administrador de Paquetes), en nuestro Sublime Text instalado.

Para esto nos dirigimos  a la pagina Web del Package Control:

Página Web del Package Control: https://sublime.wbond.net/installation

Luego seguimos las instrucciones del Manual de instalación que existe en su Web.Web del Package Control

Como en esta oportunidad hablaremos sobre editar archivos directamente desde el servidor, no expandiremos mucho sobre el tema del Package Control, la instalación es sencilla, las instrucciones de el manual es simple y muy fácil de seguir.

 

 Paso 3

Ahora tenemos que instalar un FTP persistente para editar nuestros archivos directamente en el servidor.

Para ellos usaremos el plugin SFTP, este plugin nos da la versión gratis solo para 1 usuario, si queremos instalarla para mas usuarios hay un pago que tenemos que hacer, el precio lo podemos ver en la web del plugin.

Página Web del Plugin SFTP: http://wbond.net/sublime_packages/sftp

Web del Plugin
Web del Plugin

 

Bueno entonces ahora nos dirigimos al menú Preferencias > Package Control.  dentro de nuestro IDE Sublime Text:

Menu Preferencias > Package Control

Ahora nos aparecerá el menú de opciones del Package Control y seleccionamos la opcion: Install Package:

 

Seleccionamos Install Package
Seleccionamos Install Package

Ahora escribimos en el cuadro de texto el nombre del plugin SFTP:

Escribimos SFTP

Dejamos que se instale, y cuando termine de instalar el SFTP, dentro de nuestro Sublime Text nos aparecerá un texto que indica que se ha instalado correctamente el plugin SFTP.

Texto que indica que se ha instalado correctamente el plugin SFTP.
Texto que indica que se ha instalado correctamente el plugin SFTP.

Nos pide que reiniciemos Sublime Text, para ello cerramos el programa y lo volvemos a abrir.

 

Paso 4

Ahora editamos el archivo de configuración para conectarnos a nuestro servidor, para ello nos vamos al menú de opciones del SFTP.

Nos dirigimos al menu File > SFTP/FTP> Browser Server.

Menú del Plugin SFTP
Menú del Plugin SFTP

Agregamos un nuevo servidor para conectarnos a el y editar directamente los archivos del proyecto:

Agregamos un nuevo servidor
Agregamos un nuevo servidor

Configuramos el servidor al cual nos queremos conectar:

NOTAS:

– Cambiar sfpt x ftp es decir Escribir ftp en donde nos pide el tipo:  «type»: «sftp».

Configuración del Servidor al que deseamos conectarnos
Configuración del Servidor al que deseamos conectarnos

– No escribir el password por seguridad, este nos lo pedirá en la parte de abajo cuando la conexión se realizó con éxito (Una ves que termines de configurar tu conexión, debes guardar en archivo de configuración en formato JSON. Ejemplo: miconfig.json):

Abajo nos pide la contraseña del servidor
Abajo nos pide la contraseña del servidor

Una ves conectado al servidor, podemos ver nuestras carpetas y los archivos que queremos editar, Seleccionamos el archivo que queremos editar y se nos abrirá en nuestro Sublime Text, ya estamos editando directamente en nuestro servidor:

Conectado al servidor, navegamos por las carpetas y los archivos que queremos editar.
Conectado al servidor, navegamos por las carpetas y los archivos que queremos editar.

Cuando seleccionamos un archivo de nuestro servidor para editarlo, nos muestra un menu de opciones para decidir que queremos hacer con el archivo, si editar, renombrar, etc.:

Menu de opciones para el archivo seleccionado del servidor.
Menu de opciones para el archivo seleccionado del servidor.

El archivo que editemos de nuestro servidor lo guardamos como siempre lo hacemos, menú Archivo>Guardar o CTRL + S.

Entonces si vamos y revisamos el archivo en nuestro navegador podemos ver que el archivo a sido editado directamente en el servidor sin haber sido descargado a nuestra PC.

Creo que esta manera de trabajar agiliza el proceso de producción de nuestro proyecto, quizás es un poco riesgoso por ello aconsejo primero hacer un backup de tus archivos a tu disco duro local.

Espero que les sea de mucha ayuda.

Gracias por su atención