10 de febrero de 2016

:: Alfresco. Habilitar las notificaciones vía email

Para habilitar las notificaciones vía email a los usuarios, por ejemplo las invitaciones a unirse a un sitio, debemos añadir la siguiente línea en el fichero "alfresco-global.properties" ubicado en la ruta "c:\alfresco\tomcat\shared\classes\" (suponiendo que nuestro Alfresco se encuentra en "c:\alfresco").

### E-mail site invitation setting ###
notification.email.siteinvite=true

Tras este cambio deberemos reiniciar el servicio de Alfresco, para que los cambios tengan efecto.

7 de febrero de 2016

:: Alfresco. Modificar el puerto por defecto

Para modificar el puerto al que responde Alfresco, tendremos que modificar dos ficheros.

1.- En el fichero "server.xml" ubicado en "c:\alfresco\tomcat\conf\" buscaremos el literal "8080" y lo modificaremos por el valor que deseemos.
El valor a modificar es el que aparece en negrita.
               < Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" maxHttpHeaderSize="32768" / >


2.- En el fichero "share-config-custom.xml" ubicado en "c:\alfresco\tomcat\shared\classes\alfresco\web-extension\" debemos buscar el literal "8080" y sustituirlo por el puerto que deseemos.


3.- Reiniciaremos el servicio de Alfresco y este ya responderá por el nuevo puerto especificado.

2 de febrero de 2016

:: Alfresco 5. Cómo habilitar el protocolo IMAP

El protocolo IMAP (Internet Message Access Protocol), es un protocolo de aplicación que permite el acceso a mensajes almacenados en un servidor de Internet.
IMAP permite a los usuarios acceder a sus e-mails directamente en el servidor y sólo descargar -a la máquina local- los mensajes y archivos adjuntos que le resulten de interés.

Para habilitar el protocolo IMAP en nuestro servidor Alfresco, deberemos añadir las siguientes líneas al fichero: "alfresco-global.properties" ubicado en "c:/alfresco/tomcat/shared/classes/" (considerando que tenemos nuestro alfresco en c:/alfresco)

### IMAP
imap.server.enabled=true
imap.server.port=143
imap.server.host=IP del servidor

Tras reiniciar nuestro Tomcat, al lado de los sitios creados en Alfresco, nos aparecerá la posibilidad de añadirlo a nuestros favoritos de IMAP, representado por un icono.

25 de enero de 2016

:: Entendiendo algunas siglas de los altos cargos en las empresas

Son muchas las siglas que vemos a diario por lo que en la siguiente infografía nos ayudarán a conocer algunas de ellas.
CEO. Responsable de la gestión y dirección administrativa de la empresa

COO. Supervisor del funcionamiento del sistema de creación y distribución de productos de la empresa

CMO. Responsable de las actividades de marketing

CFO. Encargado de la planificación económica y financiera de la empresa

CIO. Responsable de los sistemas de tenologías de la información

Y hay muchos más.

20 de enero de 2016

:: UILang. Librería javascript para programar con lenguaje natural


Las interacciones del usuario con un portal web consisten a menudo en mostrar u ocultar una capa al pulsar sobre un elemento, lanzar cuadros de diálogo modales, etcétera.
Lograr estos comportamientos nos obliga a programar haciendo uso de html,css y javascript, a menudo con algún plugin o librería, lo que implica tener ciertos conocimientos técnicos.

UILang es una librería javascript de apenas 1 KB que nos permitirá definir estos comportamientos haciendo uso del lenguaje natural.
Por ejemplo si tenemos una capa que deberá ocultarse al pulsar sobre un botón, el código necesario será el siguiente:
< code >clicking on ".show" adds class "popup" on "#notification"< /code >
De esta manera, describimos por medio de determinados verbos el comportamiento deseado.
El código completo sería el mostrado a continuación:
< !doctype html >
< title >Example< /title >
< script src=uilang.js >< /script >

< style >
  /* Font styles, colors, etc. omitted for clarity */
  #notification {
    transition: .8s
  }
  #notification.hidden {
    opacity: 0
  }
< /style >

< div id=notification >
  < p >Tienes nuevos mensajes.< /p >
  < button class="hide">Ocultar

< /div >

< code >
  clicking on ".hide" adds class "hidden" on "#notification"
< /code > 

Más información en: http://uilang.com/

5 de enero de 2016

:: AUI. Cuadro de diálogo modal

Alloy es un framework javascript utilizado - entre otros - por el CMS Liferay, que lo incluye de forma nativa a partir de las versión 6.0.

Este framework fue construido a partir de YUI 3, otro framework desarrollado por Yahoo, por lo que Alloy dispone de las funcionalidades originales.

En definitiva, Alloy implementa funcionalidades para la mayoría de código desarrollado para Liferay.



Ejemplo de diálogo modal:

< script type='text/javascript' >
AUI().ready('aui-dialog', function(A) {
   var instance = new A.Dialog({
      bodyContent: 'Contenido del cuadro de diálogo',
      centered: true,
      constrain2view: true,
     destroyOnClose: true,
     draggable: true,
     height: 250,
     resizable: false,
     stack: true,
     title: 'Ejemplo de diálogo modal',
     width: 500,
     modal:true,
     cssClass: 'clasePrueba',
     id: 'identificadorDialog',
     buttons: [
       {
           text: 'Alerta1',
           label: 'Aceptar',
           handler: function() {
           alert('alerta1');
       }
     },
      {
         text: 'Alerta2',
         label: 'Cancelar',
         handler: function() {
         alert('alerta2');
      }
    }
   ]
 }).render();
});
< / script >

El significado de los distintos parámetros es el siguiente:

bodyContent (string): Es el contenido del cuadro de diálogo, el cual puede contener texto plano, código o portlets

centered (boolean): Establece si el cuadro de diálogo aparecerá o no centrado en pantalla

constrain2view (boolean): Comprime el cuadro de diálogo para que sólo se vea la región visible del portlet.

destroyOnClose (boolean): Destruye el cuadro de diálogo cuando lo cerramos. En caso de no destruirlo, quedaría creado pero oculto

draggable (boolean): Establece si el cuadro de diálogo podrá ser o no re-ubicado en pantalla

height (int): Establece la altura del cuadro de diálogo

resizable (boolean): Establece si el cuadro de diálogo podrá ser o no re-dimensionado

title (string): Establece el título del cuadro de diálogo

width (int): Establece el ancho del cuadro de diálogo

modal (boolean): Establece si es cuadro de diálogo es o no modal

butons (array): Permite añadir botones al cuadro de diálogo, estableciendo la acción tras su pulsación

close (boolean): Muestra el  icono de cerrar el cuadro de diálogo

cssClass (string): Permite añadir una clase al cuadro de diálogo

id (string): Asigna un identificador al cuadro de diálogo

17 de diciembre de 2015

:: Errores en la gestión del desarrollo de software

En 1996, Steve McConnel, un destacado consultor de la industria del desarrollo del software, publicó su obra "Desarrollo Rápido: Domesticando Cronogramas Salvajes de Software" (Rapid Development: Taming Wild Software Schedules).

Uno de los capítulos del libro, describe los errores clásicos al tratar de acelerar (o hacer Fastrack) de los proyectos, prácticas de desarrollo de software que son aplicadas con frecuencia y con los mismos resultados pésimos predecibles, y que siguen estando vigentes a pesar que la obra se público hace 17 años.

¿Te suena alguna?. Quizás podrían añadirse muchas otras

A continuación los errores clásicos en proyectos de desarrollo de software de Steve McConnel:

Gestión de Personal
Procesos
Producto
Tecnología
1.     No dar importancia a la motivación.
2.     Aceptar personal con debilidades.
3.     No controlar a empleados problemáticos.
4.     Privilegiar el “Heroismo” en lugar del buen desempeño continuo.
5.     Incorporar personal a un proyecto retrasado.
6.     Permitir oficinas ruidosas, con muchas personas.
7.     Permitir la fricción entre desarrolladores y el cliente (los usuarios).
8.     Comprometer expectativas no realistas.
9.     Carecer de patrocinio efectivo.
10.  Carecer de apoyo de interesados (stakeholders).
11.  No involucrar a los usuarios finales.
12.  Privilegiar la politiquería sobre los resultados.
13.  Exceso de optimismo.
14.  Permitir cronogramas optimistas.
15.  No gestionar  los riesgos o gestionarlos de forma insuficiente.
16.  Usar contratistas y no gestionarlos.
17.  Planificar de forma insuficiente.
18.  Abandonar la planificación al estar bajo presión.
19.  No aprovechar el tiempo mientras el proyecto es aprobado.
20.  Ir directo a la programación sin hacer análisis y diseño.
21.  Diseñar de forma inadecuada.
22.  Omitir revisiones, inspecciones de código y pruebas, al estar bajo presión.
23.  Insuficiente control por parte de la Gerencia.
24.  Integración prematura o muy frecuente del producto.
25.  Omitir tareas esenciales en las estimaciones.
26.  Planificar para recuperar el retraso después.
27.  Programación alocada (Code Like Hell).

28.  Incluir al principio requerimientos no necesarios realmente (Gold Plating).
29.  Permitir constantes cambios en los requerimientos, sin aplicar controles.   (Feature Creep).
30.  Incluir requerimientos técnicos no necesarios (Developer Scrope Creep).
31.  Modificar el cronograma para corregirlo, pero luego agregar más esfuerzo y tareas.
32.  Desarrollo orientado a la investigación (Hacer investigación de Software en lugar de desarrollo de software).
33.  Síndrome de la bala de plata. (Asumir que la misma solución funciona para todo).
34.  Sobrestimar los ahorros que se pueden obtener al implementar nuevos métodos o herramientas.
35.  Cambiar herramientas en el medio del proyecto.
36.  Carecer de automatización de control de código 

:: Liferay 7.4. Habilitar/deshabilitar la vista previa de un documento

En Liferay 7.4 podemos habilitar o deshabilitar la vista previa de un documento en la biblioteca de documentos y multimedia. Se trata de un ...