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.
10 de febrero de 2016
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.
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.
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.
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.
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.
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
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 >
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:
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
|
Suscribirse a:
Comentarios (Atom)
:: 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 ...
-
En multitud de ocasiones es útil obtener el modelo de datos de una aplicación para determinar las tablas, consultas, relaciones,... En es...
-
En Liferay 7.3 y, en versiones anteriores, para el idioma por defecto -en las configuraciones habiturales- no se muestra el código de idioma...
-
En el siguiente "Tip" describiré los pasos a seguir para personalizar la página de login (adaptación gráfica sin grandes cambios...






