domingo, 3 de abril de 2016

Instalación MantisBT y configuración STMP con Gmail

Para mejorar el reporte, gestión y seguimiento de los incidentes que me reportan los clientes de mis productos decidi utilizar MantisBT el cuál lo necesitaba instalar en un PC con Windows 7 y utilizar una cuenta de Gmail para las notificaciones.

La instalación de MantisBT requiere
  • Sistema Operativo
    • Windows
    • MacOS
    • OS/2
    • Linux
    • Solaris
  • Servidor Web
    • Microsoft IIS 
    • Apache
  • PHP
  • Base de datos
    • MySQL
    • PostgreSQL
    • DB2
    • Microsoft SQL Server
    • Oracle (experimental)
En mi caso opte por Windows, Apache y MySQL. Para la instalación del entorno utilice XAMPP.
Una vez instalado los requerimiento de Mantis procedí a descargar la última versión estable de MantisBT.

Pasos para la instalación de MantisBT
  1. Descomprimir el .zip que descargamos de la página de MantisBT en la carpeta "htdocs" dentro del la carpeta "xampp" ("en mi caso C:\xampp\htdocs")
  2. Acceder al servidor web (asegurarse en el panel de control de XAMPP que estén corriendo los servicios Apache y MySQL), el puerto que yo le establecí al Apache fue el 9090 por lo cuál se servidor web es http://localhost:9090.
  3. Una vez en la página de administración de XAMPP vamos a la opción phpMyAdmin para crear la base de datos
    1. Creamos una nueva base de datos para MantisBT, en mi caso la llame mantis
    2. Creamos un usuario que tenga permisos para modificar la estructura de la base.
  4. Accedemos al Mantis para su instalación, para ellos vamos a http://localhost:9090/mantis (donde mantis es el nombre de la carpeta donde descomprimieron el zip)
  5. Completar los datos solicitados
    1. Nombre de la base
    2. Nombre de usuario
    3. Contraseña del usuario
  6. Hacer clic en instalar
  7. Verificar que todo los chequeos de la intalación queden correctos (en verde)
  8. Ya tenemos el MantisBT instalado!!!
Configuración STMP con Gmail

MantisBT tiene la funcionalidad de hacer notificaciones por mail, dado que yo no tengo un servidor de mail me pareció que la mejor opción era utilizar una cuenta de Gmail. Para poder configurar Gmail como servidor de correo tuve recorriendo por muchos foros y post y en ningún lado encontré una solución directa (motivo principal por el cuál decidí crear está entrada en mi blog)

Bueno lo primero que hay que hacer es modificar el archivo "php.ini" que se encuentra en "xampp\php"

Primero hay que descomentar la extensión
 extension=php_openssl.dll ;  
Segundo en [mail function] seteamos el servidor STMP de Gmail, el puerto y el path de "sendmail"
 [mail function]  
 ; For Win32 only.  
 SMTP=smtp.gmail.com  
 ; http://php.net/smtp-port  
 smtp_port=465  
 ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").  
 sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"  
Tercero modificar el archivo "sendmail.ini" que se ecuentra en "xampp\sendmail"
 [sendmail]  
 smtp_server=smtp.gmail.com  
 smtp_port=465  
 smtp_ssl=ssl  
 error_logfile=error.log  
 auth_username=[mail]@gmail.com  
 auth_password=[contraseña]  
Cuarto creamos un script php (en mi caso se llama "sendmail.php") para verificar que la configuración quedo bien, el archivo lo colocamos en la carpeta "htdocs" del directorio de XAMPP
1:  <?php  
2:  $to = '[su_mail]@gmail.com'; // Destinatario  
3:  $subject = 'Hola Mundo!';  
4:  $message = 'Esto es una prueba de STMP con Gmail';  
5:  $headers = "From: [mail]@gmail.com\r\n";   
6:  if (mail($to, $subject, $message, $headers)) {  
7:    echo "OK";  
8:  } else {  
9:    echo "ERROR";  
10:  }  
11:  ?>  
Para correr el script ir a "http://localhost:9090/sendmail.php" (obviamente el puerto va a depender de la configuración de su Apache)

Por último vamos a configurar el archivo "config_inc.php" que se encuentra en la carpeta de instalación del mantis (en mi caso "C:\xampp\htdocs\mantis")
 // Configuración del modo mail  
 $g_phpMailer_method=PHPMAILER_METHOD_MAIL;  
 $g_smtp_host='smtp.gmail.com';  
 // Configuración de las direcciones e-mail del sistema  
 $g_administrator_email='[mail]@gmail.com';  
 $g_webmaster_email='[mail]@gmail.com';  
 $g_from_email='[mail]@gmail.com';  

Bueno ahora ya tenemos configurado nuestro servidor y nuestro MantisBT para poder enviar notificaciones a través de Gmail.

En caso de que la prueba de mail funcione correctamente, pero no lleguen los mails revisen la cuenta de Gmail que están utilizando para el envió de mails y asegurence que la opción "Allow less secure apps" este en "ON"

Bueno espero que les sirva este aporte y que lo compartan!

lunes, 28 de diciembre de 2015

Crear una USB booteable

Muchas veces nos encontramos con la necesidad de instalar un sistema operativo (Windows 10, 8, 7, Vista, etc.) en un PC que no tenga unidad óptica de DVD (suele ser algo muy común en Netbook's o Ultrabook's), pero para nuestra suerte siempre podemos utilizar un disco USB por ello, a continuación voy a explicar como preparar el disco para que sea booteable.

Importante el disco USB que vayamos a utilizar debe ser de un tamaño mayor a 4Gb (es necesario que en el mismo entre todo el contenido del disco de instalación del sistema a instalar) y tener en cuenta que se va a borrar toda la información que contenga.

Los pasos a seguir son los siguientes:

  1. Conectar el disco USB a nuestro ordenador. Una vez detectado este, abrimos la línea de comandos ( Inicio » Ejecutar » cmd) y, desde ella, ejecutamos la aplicación diskpart. Aquí debemos tener cuidado, pues vamos a jugar con las particiones y los discos y, si nos equivocamos, nos podemos cargar todos nuestros datos.
  2. Escribimos list disk y se mostraran los discos disponibles en el sistema
  3. Seleccionamos el disco correspondiente al USB, para esto escribir select disk # (donde "#" representa el número del disco)
  4. Eliminamos todo lo que halla en el con la orden clean
  5. Una vez vació creamos una partición con la orden create partition primary
  6. Seleccionaremos la partición con select partition 1
  7. Activaremos la partición con active
  8. Formateamos la partición creada con la orden format fs=fat32
  9. Asignamos el nombre con assign
  10. Salimos del diskpart con la orden exit

Ahora ya tenemos el disco USB booteable para poder instalar el sistema que queramos, solo falta copiar todos los archivos del disco de instalación al USB.
Por último debemos reiniciar el ordenador y modificar las opciones de arranque de la BIOS para que lo haga desde este, una opción que variará dependiendo del fabricante de nuestro ordenador y que, muchas veces, puede seleccionar directamente durante el arranque. 

lunes, 16 de noviembre de 2015

Json MaxLength ASP.NET

Cuando un se invoca un servicio (sea un WebService o WebMethod) y el resultado es un objeto Json se debe tener en cuenta que el valor máximo del mensaje por defecto es de 100k. En caso del que el largo del mensaje pase el tamaño por defecto se obtiene un error 500.

La solución a este problema es modificar el maxlength de la serialización Json, para ésto es necesario agregar la siguiente configuración en el archivo web.config.


1:  <configuration>   
2:    <system.web.extensions>  
3:      <scripting>  
4:        <webServices>  
5:          <jsonSerialization maxJsonLength="..."/>  
6:        </webServices>  
7:      </scripting>  
8:    </system.web.extensions>  
9:  </configuration>   

Donde el valor máximo permitido es 2147483647 (Int32.MaxValue)

martes, 3 de noviembre de 2015

Ladda UI en ASP.NET con Bootstrap 3.0

Hace un tiempo atrás me vi en la necesidad de agregar un indicador en los botones que realizaban una acción la cuál podía demorar para así mejorar la usabilidad del usuario.

En mi caso estaba trabajando con ASP.NET compatibilidad HTML5 y googleando encontré el siguiente Ladda UI for Bootstrap 3 que me resulto muy práctico y simple de utilizar.

Si bien Ladda UI se puede utilizar con Bootstrap 3 (independientemente del IDE con el que se desarrolle) a continuación dejo un ejemplo de como hacerlo en ASP.NET:


1:  <asp:LinkButton runat="server" OnClick="[Evento]" CssClass="btn btn-primary ladda-button" data-style="expand-right">   
2:       <span class="ladda-label"> [Etiqueta]</span>   
3:  </asp:LinkButton>   

Como podrán apreciar no utilizó un asp:Button sino que utilizó un asp:LinkButton esto se debe que el Button no permite agregar el <span> que básicamente es el "spin" del loading.