domingo, septiembre 23, 2012

Lista de herramientas ágiles

Articulo ORIGINAL

Este es un directorio de utilidades, servicios y programas para gestión ágil (proyectos, tareas, backlogs o listas de requisitos …)

  • Comenzamos recopilado más de 80, que hemos etiquetado según la licencia de uso: (Se puede filtrar la lista pulsando sobre el nombre de las etiquetas)
  •  Comercial: Servicios o programas de venta directa o tras un periodo de prueba (shareware). Freemium: Servicios o programas que además de poder contratar un uso completo, sin limitaciones de funcionalidad o capacidad, también pueden emplearse gratuitamente sin limitación de tiempo pero sí de algunas funcionalidades o capacidades. 
  • Open: Servicios o programas que pueden emplearse de forma gratuita, al menos para uso personal. Freemium?: Servicios o programas que se ofrecen de forma gratuita, pero sin especificar si se trata de un periodo de prueba o beta, y si en el futuro se cobrará o limitará el uso. 
  • Por favor, si conocéis alguno que se nos haya pasado, lo podéis añadir directamente, o comentárnoslo. También podéis compartir vuestra opinión o valoración de aquellos que conozcáis. Apuntadnos también si véis alguna errata o clasificación incorrecta. Así, entre todos podremos ir mejorando la utilidad de esta lista. Gracias!!
Lista de Herramientas AGILES.

Las 10 Leyes de la Simplicidad

Articulo Original.

Las diez leyes y las tres claves de la simplicidad de Maeda se citan mil veces al año en todo el mundo, en exposiciones, artículos, posts y presentaciones, pero el libro, con sus ejemplos y argumentos, y sobre todo con su prosa lejana a toda tortícolis discursiva intelectual, a toda voladura caprichosa y pretenciosamente artística, es un ejemplo de instrucción y claridad.
Las Leyes de la Simplicidad del profesor de Artes y Ciencias de la Comunicación del MIT es una manual para la empresa, los negocios, el periodismo o la pedagogía. Sus ideas pueden atravesar casi cualquier campo y debería ser bibliografía obligatoria en cualquier carrera que se tope en algún momento con Internet. No sólo por sus anécdotas exquisitas sobre el diseño de gadgets, no sólo por su capacidad para relacionar lo más ordinario y cotidiano con el diseño de percepciones (y todo aquello que “esperamos” de la tecnología), sino por ser objeto de sus propias ideas y sujeto de prácticas que las lleven a prototipos funcionales. (Pablo Mancini en su blog Amphibia).

 

Las Leyes de la Simplicidad


Comienza hoy una serie de apuntes sobre la simplicidad, interpretada desde la óptica del gran consumo. El patrón serán las leyes de la simplicidad de John Maeda, un magnífico ejercicio sobre una idea sencilla y potente: en un mundo complejo, menos es más.

 

Ley Nº 1 Reducir: 

La mejor manera de alcanzar la simplicidad es mediante profunda reducción.

Para cualquier producto de consumo, una persona tiene actualmente decenas de opciones. 30 variedades de cereales son, probablemente, más de las que un consumidor necesita. En medio del caos, la simplicidad aparece como una estrategia casi imprescindible: este consumidor no tiene tiempo de estudiar todas las posibilidades, tiene que captar el mensaje y entender el producto de un vistazo.
La simplicidad aplica en muchos ámbitos: el diseño del propio producto, el packaging, la publicidad, etc. Maeda sugiere una estrategia para buscar esta simplicidad: el modelo SHE (Shrink, Hide, Embody):
  • Reducir el tamaño
  • Esconder: no hace falta que los atributos y funciones del producto estén todos visibles simultáneamente, sino solo cuando el consumidor los necesita
  • Incorporar la calidad en el producto, sin que se vea exteriormente
En el fondo, se trata de evitar la tentación de contar algo por el simple hecho de poder contarlo, de hacer gala de todos los beneficios y atributos del producto (por ejemplo, unas galletas integrales, con Omega3, con vitaminas, sin azúcar, etc.). El posicionamiento está en la mente del consumidor, y éste no hace listas de pros y contras cuando está delante del lineal del supermercado.

 

Ley Nº 2 Organizar: 

La organización consigue que muchos parezcan pocos.

Agrupar la información simplifica la comprensión y el recuerdo. 30 variedades de cereales quizá sean imposibles de memorizar, pero cinco gamas son más asequibles. Si cada gama de productos tiene un posicionamiento claro y una propuesta de valor diferenciada, el consumidor sabrá distinguirlas y recordarlas. Por ejemplo, Danone ha hecho un gran ejercicio de simplificación al crear las plataformas de Vitalínea, Activia o Danonino (aunque luego tenga cierta tendencia a expandir exageradamente cada gama).

En el lineal de un supermercado, el consumidor busca categorías antes que marcas, así que la buena organización es fundamental: dirige la vista del cliente, simplifica su proceso de decisión y le ayuda a encontrar lo que quiere comprar.

 

Ley Nº 3 Tiempo: 

El ahorro de tiempo se percibe como simplicidad.

A nadie le gusta esperar; y la frustración de la espera es aún mayor en un momento en que todos tratamos de comprimir en un día decenas de actividades, exprimiendo las horas y correteando de un lado a otro. Para ahorrar tiempo también puede ayudar el modelo SHE: reducir el tiempo (con productos como un GPS que indica la ruta más corta, o un libro de cocina con recetas listas en cinco minutos), esconderlo (entretener a las personas que esperan en una cola con un video), e incorporarlo (indicar el tiempo de lectura en un artículo). El objetivo es doble: reducir el tiempo de espera y hacer esa espera más tolerable.
En el mundo del marketing, la ley del tiempo puede llevar a diseñar productos cuyo beneficio principal es ahorrar tiempo (arroz listo en 3 minutos), a diseñar procesos de compra más rápidos (las listas en los supermercados online), a crear productos autoexplicativos, que se pueden usar desde el primer minuto sin libro de instrucciones (como el iPhone, que literalmente no tiene instrucciones) o a crear campañas promocionales donde el regalo es tiempo (por ejemplo, un servicio de limpieza doméstica).

 

Ley Nº 4 Aprender: 

El conocimiento lo hace todo más fácil.

Todos nos hemos enfrentado a una tarea que nos parecía muy compleja la primera vez y trivial al cabo de un tiempo. Aprender a conducir es un reto, pero luego se hace de forma automática, casi sin pensar.
Para amar un producto hay que conocerlo, hay que pasar la barrera de la primera cita y llegar al noviazgo lo más rápidamente posible. Educar al consumidor es fundamental para que aprecie la marca, especialmente aquellas con propuestas de valor más premium.
En la innovación de las marcas, a menudo basada en constantes lanzamientos, enseñar es también un punto clave: lo peor que le puede pasar a un producto es que el consumidor no sepa para que sirve, o no sepa que hacer con él.

 

Ley Nº 5 Diferencias: 

La simplicidad y la complejidad se necesitan.

La simplicidad solo se percibe como contraste de la complejidad. Por eso es cada vez más relevante, porque la complejidad aumenta en todas las áreas de la vida. Lo ideal es encontrar un ritmo que alterne las dos situaciones extrayendo lo mejor de cada una.
Un anuncio sin sonido destaca en un mar de anuncios gritones; una página en blanco de un periódico sobresale entre tanta letra negra; un aparato con un sólo botón sorprende frente a otro con 10 botones; un producto con un sólo beneficio se entiende mejor que uno que pretende ser bueno en todo. Como algunas artes marciales, donde la estrategia consiste en apoyarse en la fuerza del contrincante, la simplicidad se apoya en complejidad de los demás.

 

Ley Nº 6 Contexto: 

Lo que hay en la periferia de la simplicidad no es periférico.

No se puede simplificar algo solamente centrándose en sus aspectos definitorios; el contexto en el que se sitúa es clave para percibir su simplicidad. Demasiado enfoque es negativo, se ven sólo los árboles y no el bosque.
Al diseñar un producto, no sólo hay que hacerlo sencillo, potente y elegante, sino pensar en como se verá en los dos momentos de la verdad: en el lineal, entre otros muchos productos, y en casa del consumidor.

 

Ley Nº 7 Emoción: 

Más emoción es mejor que menos.

Llenar de emoción un producto puede requerir alejarse de la simplicidad, para introducir nuevos niveles de significado. Hay personas que eligen productos sencillos y minimalistas, como algunos móviles o un iPod, y lo primero que hacen es personalizarlos, con pegatinas, fundas y todo tipo de accesorios. Dotar de sentimiento y emoción a un objeto es una característica muy humana.
Aunque parezca contradecir la ley de reducir, hay algunas cosas donde más es mejor que menos: más cariño, más amor, más intensidad, más significado.
En los últimos años, muchas campañas de marketing se han centrado casi exclusivamente en comunicar emociones, olvidando los aspectos racionales y contando historias extrañas y complejas. El reto es mantener el nivel emocional, aunándolo con un enfoque más simple y directo.

 

Ley Nº 8 Confianza: 

Confiamos en la simplicidad.

Los aparatos y los servicios que utilizamos son cada vez más complejos, pero para nosotros es irrelevante: confiamos en que harán bien su misión, y los usamos sin tener ni idea de como funcionan. El paradigma es un coche, que casi todo el mundo sabe utilizar pero casi nadie sabe como funciona por dentro.
La simplicidad transmite confianza, y la confianza nos ahorra tiempo y esfuerzo. Las marcas son el paradigma de la confianza, y ese es su mayor valor. No deben confundirse en batallas de precios o perderse en innovaciones innecesarias.
Para las marcas de servicios, la confianza es especialmente relevante, ya que al no existir un objeto físico es lo único que garantiza la calidad al cliente. En gran consumo, las marcas que consigan aprender de un cliente y simplificar sus decisiones tendrán mucho ganado.

 

Ley Nº 9 Fracaso: 

Algunas cosas no se pueden simplificar.

A pesar de la enorme importancia que le otorgo a la simplicidad, en algunos casos la complejidad es necesaria. Hay temas demasiado difíciles, llenos de matices y detalles que no pueden ser explicados de un plumazo. Sin embargo, las personas rechazan cada vez más un enfoque complejo (leer un párrafo de más de 6 líneas, memorizar algo que no puedo aprender de un vistazo, etc.). El resultado es que la simplicidad se convierte en simplismo, se cae en lugares comunes y cualquier cosa se acaba pareciendo a muchas otras.
Cuando una marca tiene un producto suficientemente bueno y diferente, no debe tener miedo de explicar su complejidad, si es necesario para apreciar su valor. Hay que darle un voto de confianza a los consumidores, y tratarlos/tratarnos como seres inteligentes.

 

Ley Nº 10 La Clave: 

La simplicidad consiste en eliminar lo obvio y añadir lo relevante.

Las diez leyes, resumidas en una. Cualquier campaña de marketing puede aprender de esta ley: eliminar textos absurdos y repetitivos, tópicos mencionados por todas las marcas, guiños que nadie entiende, etc; y añadir mensajes relevantes, que aporten valor al que los escucha, que diferencien de la competencia, que den una buena razón para levantarte de tu silla, ir a la tienda y comprar el producto.
Autor: Juanjo Rodríguez

Herramientas UML para el modelado de sistemas

Articulo Original.


Los seres humanos utilizamos diversos modelos para poder representar elementos o concepciones en diversas áreas como pintura, artes plásticas, construcción, sistemas de software e incluso en nuestra vida cotidiana. El modelado de sistemas es una actividad importante e imprescindible en la construcción de cualquier tipo de sistema, está considerado como un plano que nos muestra la estructura genérica o abstracta de algún sistema.
Debido a importancia que ha tomado el hecho de modelar y diseñar antes de construir se han desarrollado diversas herramientas de software que facilitan esta actividad. Al elegir una herramienta de software se debe considerar elementos como son: el tipo de licenciamiento, plataforma, sistema operativo, generación de código.

Lenguaje de modelado unificado

El lenguaje de modelado unificado está compuesto por diversos elementos gráficos que se combinan para formar diagramas, cuenta con reglas para combinar tales elementos. La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se le conoce como modelo. El Modelo UML es similar a un modelo a escala de un edificio junto con la interpretación del artista del edificio, describiendo lo que se supone hará el sistema, pero no como implementarlo.
Los diagramas más importantes y sus funciones se enlistan a continuación:
  • Diagramas de clases: Permite representar los atributos y acciones de un objeto, así como identificar relaciones entre objetos.
  • Diagrama de objetos: Muestran entidades que tienen valores específicos y acciones.
  • Diagramas de casos de uso: describe las acciones de un sistema desde la visión del usuario, aunque también puede representar la visión del programador.
  • Diagrama de Estados: Muestra los estados que toma un objeto.
  • Diagrama de Secuencias. Muestra la interacción de los objetos en base a tiempo, aunque realmente es una vista estática./li>
  • Diagrama de Colaboraciones: Representan la manera en que los elementos del sistema trabajan en conjunto.
  • Diagrama de Componentes: muestran el producto final del software.
  • Diagramas de Distribución: Muestran la arquitectura física de un sistema de información.

Licenciamiento de software

Una licencia de software otorga al usuario el derecho legal a utilizar un software, existen básicamente dos tipos de licencias: Licencia de software libre y Licencias de software comercial.
Según la Fundación de Software Libre (Free Software Foundation) “el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software”, se refiere a cuatro libertades para los usuarios del software: la libertad de usar el programa, con cualquier propósito; de estudiar el funcionamiento del programa, y adaptarlo a las necesidades; de distribuir copias, con lo que puede ayudar a otros; de mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad informática se beneficie.
En las licencias de software comercial una compañía o corporación, posee los derechos de autor sobre un software, negando o no otorgando los derechos de usar el programa con cualquier propósito, de estudiar cómo funciona el programa y adaptarlo a las propias necesidades y además el acceso al código fuente es una condición previa, se pueden distribuir copias, o mejorar el programa y hacer públicas las mejoras, para poder realizar los cambios, el acceso al código fuente es un previo requisito. Así, un software sigue siendo no libre aún si el código fuente es hecho público, cuando se mantiene la reserva de derechos sobre el uso, modificación o distribución.

Elementos de evaluación de herramientas

Se consideraron aspectos como:
  • El Sistema operativo, es el software encargado de la administrar y coordinar el hardware con programas de una manera transparente, nos indica la portabilidad de la herramienta.
  • La plataforma, se considera el software sobre el cual se ejecuta la aplicación sobre el sistema operativo.
  • Diagramas soportados, los tipos de diagramas son muy diversos y algunas de las herramientas ofrecen una amplia o mínima variedad de estos, según sea el estándar de la Herramienta en el cual este basado.
  • Generación de código. La herramientas de modelado ofrecen una diversidad de diagramas generan código en algún lenguaje de programación, lo que nos permite que a partir del modelo gráfico se construya software.

Análisis de herramientas de software libre

La siguiente tabla muestra las herramientas de software con los sistemas operativos que predominan en la actualidad, en donde la celda llena indica el sistema soportado.

La tabla siguiente muestra una relación entre herramientas y plataformas.

Debido a la amplia gama de diagramas y para efectos de un análisis se utilizó la siguiente nomenclatura para cada tipo de diagrama: Casos de uso (CU), Clases (CL), Secuencia(S), Colaboración (CO), Actividades(A), Despliegue (D), Objetos=(O), Paquetes (P), Componentes (COM), Estados (E), Estructura (ET).

La siguiente tabla muestra los lenguajes de programación que las herramientas de modelado analizadas pueden generar código.

Conclusiones

El Lenguaje Unificado de Modelado (UML), fue creado por la necesidad de utilizar un lenguaje estándar para el modelado de sistemas, debido a que existía una diversidad de modelos o métodos.
En cuestiones de desarrollo de sistemas, para que el producto final sea funcional, es necesario que durante el proceso de desarrollo se realicen ciertas actividades que permitan el buen funcionamiento de un sistema, por lo que el aplicar el modelado de sistemas nos dará la pauta para definir la estructura que tendrá nuestro sistema. Para realizar el modelado existen diversos tipos de diagramas y cada uno tiene los elementos requeridos para satisfacer cada una de las necesidades del sistema según su estructura, las herramientas son muy diversas y su licenciamiento puede variar.
Se han creado herramientas de software para una variedad de sistemas operativos dentro de los cuales destacan Windows y Linux, en particular la mayoría de las herramientas fueron generadas en Java, además los requerimientos de instalación en cuanto a hardware no son muy primordiales para la mayoría de las herramientas. En cuanto a la utilización de las herramientas, independientemente del lenguaje que soporte o del sistema operativo, cada una tiene los elementos y características que satisface la necesidad de sus usuarios.
De las herramientas el 32% trabajan sobre el sistema Operativo Windows, 29% en Linux, 26% en Unix y el 13% MacOS.
Los sistemas operativos en los cuales pueden ser instaladas las herramientas, se observó que el promedio de sistemas operativos pueden ser instaladas es de tres. Siendo BOUML y NetBeans UML con soporte para todos los sistemas operativos, Umbrello con dos y StarUML con un sistema operativo.
Las plataformas requeridas para el funcionamiento de las herramientas analizadas fueron muy diversas y amplias. El 34% requiere Java, el 26% requiere C++, 8% requiere Gtl+ ,8% requiere Flash MX, el 8% requiere Mono, 8% requiere Eclipse, 8% requiere Delphi.
El número de diagramas que pueden generar se encuentran en un rango de 2 a 11 diagramas, en donde Netbeans UML es el que más diagramas genera, en tanto que GModeler y MonoUML los que memos diagramas generan.
Las herramientas que presentan mayor diversidad en cuanto a la generación de código en diversos lenguajes de programación destacan ArgoUML y BOUML por generar código en 5 lenguajes y FuJaba, Día, GModeler. MonoUML, Papyrus solo en un lenguaje.
Autores: Ricardo Armando Barrera Cámara, Jesús Alejandro Flores Hernández, José Alonso Pérez Cruz

sábado, septiembre 22, 2012

Protegiendo nuestros servidores SSH

EL PROTOCOLO SSH

SSH es un reemplazo seguro del (obsoleto) telnet que se usa para administrar remotamente una máquina. Tanto windows como linux tienen servidores ssh, aunque windows no lo incorpora “de serie”, sino que tenemos que instalar algún software como por ejemplo freessh (http://www.freesshd.com/).

SSH COMO OBJETIVO DE LOS HACKERS

El protocolo ssh es muy lento de atacar por fuerza bruta, pero también es muy fácil … Por eso mismo, no es extraño ver en los logs del sistema continuos intentos de acceso vía ssh, que suelen proceder de BOTNETS, a nuestros servidores:
Mar 10 12:05:11 servidor sshd[1220]: Invalid user jaime from ::ffff:192.168.1.20
Mar 10 12:05:18 servidor sshd[1220]: Failed password for invalid user pedro from ::ffff:192.168.1.20 port 2446 ssh2
El hacker, simplemente prueba su suerte usando algún script para probar una larga lista de passwords recolectadas de algún modo, ya que el username es fácil de adivinar … root para linux y administrador/administrator para windows. Y claro, él tiene mucha más paciencia que nosotros.
TRES SIMPLES MEDIDAS PREVENTIVAS

Como medidas preventivas, porque más vale prevenir que curar, vamos a nombrar unas cuantas:
  1. Usar certificados como método de identificación para entrar, en lugar del “común” usuario/password: la mejor medida, pero requiere más trabajo, así que normalmente no nos la encontraremos implementada, y mucho menos en una intranet.
  1. Restringir el acceso mediante firewall a una serie de IPs, que son las que realmente se encargarán de administrar el servidor: también muy buena medida, pero todos tenemos en casa IPs estáticas, así que en la práctica no siempre es posible …
  1. Elegir passwords fuertes: esto debería hacerse siempre, independientemente de si estamos hablando de ssh o cualquier otro protocolo. No debería hacer falta nombrarlo.
  1. Cambiar el puerto en el que escucha ssh: el normal es TCP/22 ¿Y si lo cambiamos? Sí, es cierto que puede escanearse toda nuestra red hasta encontrarlo, pero cuesta trabajo y, por el camino, nos quitamos gusanos y script-kiddies de encima …
  1. No entrar con el usuario administrador/root: en linux, puede hacerse “su root” una vez que hemos loggeado. Y en windows, también existe un “sudo” (http://sourceforge.net/projects/sudowin) que podemos usar para las tareas de administración remota. Salvo que haya algún ataque por timing, basado en vulnerabilidades del servidor ssh, es bastante difícil imaginarse que el único usuario que puede loggear se llama “userdns09″ …
RESUMEN

Simplemente con las medidas 3,4 y 5 podemos hacer la vida del cracker mucho más difícil. Son fáciles de implementar y nos evitaremos mirar alertas de nuestros IDS de la DMZ para nad

martes, septiembre 04, 2012

Liberar la memoria en Linux

Tomado de: Articulo Original

Me ha sucedido en Linux que a pesar de bajar aplicaciones, la memoria sigue estando ocupada, como si no se liberara. Este comportamiento busca lograr un mejor uso de la memoria dejando cargadas las aplicaciones recientes.
 
En principio lo que se describe en este artículo no es algo que deba preocupar a la mayoría de los usuarios, ya que el kernel se encargará de administrar la memoria y de manejar estos datos cacheados; pero puede darse la situación (me ha pasado varias veces) que se necesita memoria libre y no se puede esperar por el kernel, así que aquí describo el procedimiento para liberar la memoria.

A partir del kernel 2.6.16 hay una forma de decirle al kernel que limpie esa memoria que mantiene en cache. Para esto se utiliza el archivo /proc/sys/vm/drop_caches que generalmente tiene un cero si lo desplegamos.

Para liberar paginas en cache, como root ejecutamos:
sysctl vm.drop_caches=1
Para liberar dintries en cache,
sysctl vm.drop_caches=2
Para liberar páginas de cache, dentries e inodos:
sysctl vm.drop_caches=3
Cuando ejecutamos estos comandos se cambia el número cero por el número que pasamos y, apenas el kernel libera la memoria, vuelve a restaurar el cero.
Lo ideal es ejecutar sync primero y luego los comandos de arriba, por ejemplo:
sync; sysctl vm.drop_caches=2
y esto perfectamente puede ser colocado en el crontab de root o en un script en la carpeta /etc/cron.hour

martes, agosto 28, 2012

Lista de Herramientas CSS

Tomado de: Dato Original

¿Qué puede ser mejor que la simple, útil y práctica herramienta que puede utilizar “al vuelo” en el proceso de desarrollo? Si deseas probar el tamaño de fuente, generar formularios en línea, crear rollovers de navegación, crear una presentación de diapositivas, en formato de código CSS u optimizar su código – puede utilizar docenas de herramientas para hacer su vida más fácil.
Las hemos recopilado. Por lo menos la mayoría de ellas, y compilado en un breve y preciso resumen. Y aquí lo que hemos conseguido - las más útiles herramientas CSS que pueden utilizar el desarrollo de sitios web sin tablas.

Fuentes de Texto

Formularios

Capas

Navigación

  • Generador de rollover CSS de Colly
    Generador de Rollover multi-elemento con CSS de CollyLogic
  • Diseñador Tab CSS
    Diseñador Tab CSS es único y de fácil uso para ayudarte a diseñar visualmente listas y tabs CSS sin conocimientos previos de programación!
  • Listamatic
    No es una herramienta pero es muy util! – una lista, muchas opciones – Usando CSS y una simple lista para crear una lista radicalmente diferente
  • Listamatic2
    Lista de opciones anidadas
  • List-O-Matic
    Genera estilos CSS para menús de navegación a partir de items de listas
  • List-O-Rama!
    Dreamweaver MX y UltraDev Zone – List-O-Rama permite generar buenos menús lineales en segundos
  • Generador de Menú CSS
    Generador de Menú CSS te genera ambos codigos CSS y HTML necesarios para producir conjuntos de botones de navegación a partir de texto.

Miscelanea de Herramientas

Formateadores y Optimizadores

lunes, agosto 20, 2012

Instalar WebCalendar - en CENTOS

Seguramente no eres bueno para recordar fechas especiales tales como eventos, aniversarios, cumpleaños y cualquier fecha que necesites memorizar, pero no te desesperes que llego WebCalendar, una excelente utilidad que te permitirá gestionar tu calendario de la manera más simple y eficaz posible.
Podemos destacar que esta maravillosa aplicación nos permitirá ser utilizada por más de un usuario al mismo tiempo, siempre y cuando poseamos una conexión de red local o de internet compartida.
Si estas considerando la posibilidad de adquirir un calendario virtual, entonces WebCalendar es la aplicación que debes considerar, ya que incluye a su simple interfaz gráfica los detalles necesarios sobre los días, meses y años que forman nuestro calendario diario, además es de licencia gratuita, lo que significa que no necesitas ninguna excusa para utilizar esta maravillosa aplicación.


  1. Descargar de la siguiente URL:Descargar WebCalendar.
  2. Descomprimir y copiar a /var/www/html/webcalendar
  3. En el Browser http://IP-HOST/webcalendar
  4. Seguir los pasos que indica.
  5. Seleccione nombre del dominio.
  6. Seleccione el directorio donde sera installada en este caso webcalendar
  7. Asigne usuario administrador: admin  y passowrd: admin.
  8. Asigne apodo a utilizar y la cuenta del correo.
  9. Llenar los otros campos requeridos.
  10. Click en  install, luego en la siguiente pantalla finish.
  11. En el browser digitamos http://IP-HOST/webcalendar
  12. Si existe problemas con las tildes adicionar esta linea en /etc/httpd/conf/httpd.con la linea AddDefaultCharset ISO-8859-1 , ubicar en las siguientes lineas:.                                                           # Specify a default charset for all content served; this enables
    # interpretation of all content as UTF-8 by default.  To use the
    # default browser choice (ISO-8859-1), or to allow the META tags
    # in HTML content to override this choice, comment out this
    # directive:
    #
    # AddDefaultCharset UTF-8
    AddDefaultCharset ISO-8859-1 
  13. Reiniciar el Apache con service httpd restart

domingo, julio 29, 2012

10 cosas que todo Arquitecto debe saber..

Tomado de: 10 cosas que todo Arquitecto debe saber..


Como mucha gente sabe una de mis pasiones es la vertiente más tecnológica de la Ingeniería del Software, personificada en el concepto de Arquitectura. Antes de nada os dejo una pequeña reflexión.

Cuando hablo de Concepto Arquitectura pienso, sobre todo, en que cada día se demuestra más la tendencia a que vamos a una ingeniera del software gobernada por la Arquitectura, y sin embargo desde el punto de vista del usuario de negocio, esto tiene que dejar de existir ya. La tecnología debe dejar de ser una barrera, sobre todo en cuanto a su continua evolución, y cada día vemos más empresas manteniendo viejos sistemas, aunque es mejor que migrarlos todos cada poco.. no es la solución.

Para mi cada vez esta más claro que el éxito de las arquitecturas empresariales viene dado por pensar en una clara orientación a servicios (SOA) , (quizás es pronto para orientación a eventos EDA) para acabar llegando a BPM. Donde el usuario de negocio debe ser capaz de definir sus propios procesos de negocio… que si ¡!! que esto es viable, preguntar a BEA.

Tenemos que pensar que no podemos construir un BPM como primer paso, sino empezar a pensar en una estructura de Gobierno SOA sobre la cual vayamos creciendo hasta tener una suficiente estructura de servicios de negocio, que nos permitan montar BPM. Por tanto el modo de llegar es ir dando pasos.. no esperar a empezar los últimos la carrera.

A donde quería llegar, sobre las arquitecturas, es proporcionaros un interesante documento que ha llegado a mis manos, el cual se titula “ 10 cosas que todo arquitecto debe saber” y la verdad es que son ciertamente interesantes:

1. La base esta en las personas.

2. Todas las soluciones llegan a ser obsoletas.

3. Los Datos son para siempre.

4. La flexibilidad genera complejidad.

5. Nada funciona según se esperaba.

6. La documentación es el codigo fuente universal.

7. Conozca el negocio.

8. Mantenga la visión.

9. Los arquitectos deben ser programadores.

10. La experiencia es insustituible.

Sobre cada una existen frases reflexivas, que realmente dan que pensar.

martes, julio 24, 2012

MD5 en Genexus

Tomado de:Genexus y MD5

MD5 en Genexus

MD5

recibe una cadena y devuelve el valor en md5
Aqui pueden descargar el xpz con el procedimiento
Descarga Procedimiento

funciona para el generador Java y c sharp

UUID

recibe una cadena y la devuelve en el formato UUID en forma canónica
(grupos de 8,4,4,4,12, por ejemplo 550e8400-e29b-41d4-a716-446655440000).

Aqui pueden descargar el xpz con el procedimiento
Descarga Procedimiento

funciona para el generador Java y c sharp

jueves, julio 19, 2012

Herramientas para obtener URLs cortas

Herramientas para obtener URLs cortas


Navegando y cotillenado un poco, he encontrado una serie de paginas, que sirven para acortar direccines, esto a simple vista parece tener poco sentido, pero cuando quieres publicar en twitter o enviar un mensaje de texto con una URL, es un poco incomodo, pagar dos SMS para enviar una dirección o ver que no puedes casi comentar lo que estas enviando, por lo que son bastante útiles para este tipo de situaciones. Estas son las que he encontrado asi dando un repasillo, son todas muy faciles de usar, tienen un campo de texto, donde se escribe la dirección que se desea acortar y nos devuelven la dirección corta que podemos usar para acceder al mismo sitio, de forma instantanea.
La que uso yo, no por nada, sino porque es la primera que encontré en su momento:
Otras que funcionan de la misma manera:
Esta la pongo aparte, proque requiere registrarse para usarla:

martes, junio 26, 2012

Instalar Tomcat 7 y Java Rockit en Centos.


Lunes Feb 28, 2011


En este post, vamos a instalar Tomcat 7, el nuevo JDK 7, configurar Tomcat como un servicio, cree un inicio / parada guión, y (opcionalmente) configurar Tomcat para funcionar bajo un usuario no root.También vamos a configurar el acceso básico al Administrador de Tomcat y echar un vistazo rápido a la gestión de memoria utilizando JAVA_OPTSPara esta instalación, usaremos Tomcat 7.0.23, la versión estable actual de Tomcat 7.Para empezar, tendrá que instalar el Java Development Kit (JDK) 7JDK 1.6 es la versión mínima de JDK para Tomcat 7.
Paso 1: Instale el JDK 1.7.0

Puede descargar la última versión del JDK aquí:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Otra Pagina de Java: Java Rockit

Vamos a instalar la última versión del JDK, que es JDK 7, Update 1. El JDK es específico de 32 y 64 bits.Mi caja de CentOS es de 64 bits, así que voy a necesitar: jdk-7u2-linux-x64.tar.gz.Si usted está en 32 bits, necesitará: jdk-7u2-linux-i586.tar.gzDescargar el JDK y guárdelo en un directorio. Lo estoy guardando en / root.Crear un nuevo directorio / usr / java.

  1. [root@srv6 ~]# mkdir /usr/java    

Cambie al directorio / usr / java directorio que hemos creado

  1. [root@srv6 ~]# cd /usr/java    
  2. [root@srv6 java ]#   


Mover o copiar jdk-7u2-linux-x64.tar.gz al directorio / usr / java:


  1. [root@srv6 java]# mv jdk-7u2-linux-x64.tar.gz /usr/java/jdk-7u2-linux-x64.tar.gz    


Desepaquete Jdk-7u2-linux-x64.tar.gz en el directorio / usr / java archivo con tar-xzf:
  1. [root@srv6 java]# tar -xzf jdk-7u2-linux-x64.tar.gz  
Esto creará el directorio / usr/java/jdk1.7.0
  1. [root@srv6 ~]# cd /usr/java  
  2. [root@srv6 java]# ls  
  3. jdk1.7.0_02  

Establecer la ruta JAVA_HOME. Aquí es donde tenemos instalado nuestro JDK anterior.Para su instalación para la sesión actual, puede dictar lo siguiente de la CLI:
  1. [root@srv6 java]# JAVA_HOME=/usr/java/jdk1.7.0_02  
  2. [root@srv6 java]# export JAVA_HOME  
  3. [root@srv6 java]# PATH=$JAVA_HOME/bin:$PATH  
  4. [root@srv6 java]# export PATH  

Para establecer el JAVA_HOME permanentemente, añadir a continuación a cualquiera de los ~ /. Bashrc o ~ /. Bash_profile del usuario (en este caso, la raíz).También podemos añadir que el archivo / etc / profile y luego a dar origen a todos los usuarios.
  1. JAVA_HOME=/usr/java/jdk1.7.0_02  
  2. export JAVA_HOME  
  3. PATH=$JAVA_HOME/bin:$PATH  
  4. export PATH  
Una vez que haya añadido los anteriores a ~ /. Bashrc bash_profile o ~ /., Debe cerrar la sesión, vuelva a iniciarla y comprobar que el JAVA_HOME están correctamente ajustadas.
  1. [root@srv6 ~]#  echo $JAVA_HOME  
  2. /usr/java/jdk1.7.0_02  


Paso 2: Descargar y descomprimir Tomcat 7.0.23



Descargar apache-tomcat-7.0.23.tar.gz Desde esta URL
Guarde el archivo en un directorio. Me estoy guardando a / root/apache-tomcat-7.0.23.tar.gzAntes de continuar, debe verificar la suma de comprobación MD5 para la descarga Tomcat (o cualquier otra descarga).Como nos salvó la descarga Tomcat / root/apache-tomcat-7.0.23.tar.gz, vamos a ir al directorio / root y utilice el comando md5sum
  1. [root@srv6 ~]# md5sum apache-tomcat-7.0.23.tar.gz  
  2. d8dcd5fb07dd1769d571fdabade9cc68 *apache-tomcat-7.0.23.tar.gz  

Comparar la salida anterior a la suma de verificación MD5
Revisar desde aqui para Apache Tomcat MD5 y asegurarse de que coinciden exactamente

Ahora, mueva (mv) o copia (cp) el archivo en el directorio / usr / share:
  1. [root@srv6 ~]# mv apache-tomcat-7.0.23.tar.gz /usr/share/apache-tomcat-7.0.23.tar.gz  
Sitúese en el directorio / usr / share y descomprimir el archivo con tar-xzf:
  1. [root@srv6 ~]# cd /usr/share  
  2. [root@srv6 share ]# tar -xzf apache-tomcat-7.0.23.tar.gz    
Esto creará el directorio / usr/share/apache-tomcat-7.0.23
Paso 3: Configurar Tomcat para ejecutar como un servicio.



Ahora vamos a ver cómo ejecutar Tomcat como un servicio y crear un inicio simple / Parar / Reiniciar secuencia de comandos, así como para iniciar Tomcat en el arranque.Cambie al directorio / etc / init.d y crear un script llamado 'gato', como se muestra a continuación.
  1. [root@srv6 share]# cd /etc/init.d  
  2. [root@srv6 init.d]# vi tomcat  
Y aquí está el script que va a utilizar.

  1. #!/bin/bash  
  2. # description: Tomcat Start Stop Restart  
  3. # processname: tomcat  
  4. # chkconfig: 234 20 80  
  5. JAVA_HOME=/usr/java/jdk1.7.0_02  
  6. export JAVA_HOME  
  7. PATH=$JAVA_HOME/bin:$PATH  
  8. export PATH  
  9. CATALINA_HOME=/usr/share/apache-tomcat-7.0.23  
  10.   
  11. case $1 in  
  12. start)  
  13. sh $CATALINA_HOME/bin/startup.sh  
  14. ;;   
  15. stop)     
  16. sh $CATALINA_HOME/bin/shutdown.sh  
  17. ;;   
  18. restart)  
  19. sh $CATALINA_HOME/bin/shutdown.sh  
  20. sh $CATALINA_HOME/bin/startup.sh  
  21. ;;   
  22. esac      
  23. exit 0  
El script anterior es simple y contiene todos los elementos básicos que necesita para ponerse en marcha.Como se puede ver, simplemente estamos llamando a los guiones y startup.sh shutdown.sh ubicados en el directorio bin de Tomcat (/ usr/share/apache-tomcat-7.0.23/bin).Se puede ajustar la secuencia de comandos de acuerdo a sus necesidades y, en los puestos siguientes, vamos a ver más ejemplos.CATALINA_HOME es el directorio inicial de Tomcat (/ usr/share/apache-tomcat-7.0.23)Ahora, establecer los permisos para la secuencia de comandos para que sea ejecutable:
  1. [root@srv6 init.d]# chmod 755 tomcat  
Ahora usamos la utilidad chkconfig para que arranque Tomcat en el arranque. En mi script de arriba, estoy usando chkconfig: 234 20 80. 2345 son los niveles de ejecución y el 20 y 80 de la parada de inicio y las prioridades respectivamente. Se puede ajustar según sea necesario.

  1. [root@srv6 init.d]# chkconfig --add tomcat  
  2. [root@srv6 init.d]# chkconfig --level 234 tomcat on  
Compruebe que:
  1. [root@srv6 init.d]# chkconfig --list tomcat  
  2. tomcat          0:off   1:off   2:on    3:on    4:on    5:off   6:off  
Ahora, vamos a probar nuestro script.Inicie Tomcat:
  1. [root@srv6 ~]# service tomcat start  
  2. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.23  
  3. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.23  
  4. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.23/temp  
  5. Using JRE_HOME:        /usr/java/jdk1.7.0_02  
  6. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.23/bin/tomcat-juli.jar  
Detenga Tomcat:

  1. [root@srv6 ~]# service tomcat stop  
  2. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.23  
  3. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.23  
  4. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.23/temp  
  5. Using JRE_HOME:        /usr/java/jdk1.7.0_02  
  6. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.23/bin/tomcat-juli.jar  
Reiniciar Tomcat (debe ser iniciado primero):

  1. [root@srv6 ~]# service tomcat restart  
  2. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.23  
  3. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.23  
  4. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.23/temp  
  5. Using JRE_HOME:        /usr/java/jdk1.7.0_02  
  6. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.23/bin/tomcat-juli.jar  
  7. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.23  
  8. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.23  
  9. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.23/temp  
  10. Using JRE_HOME:        /usr/java/jdk1.7.0_02  
  11. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.23/bin/tomcat-juli.jar  
Debemos revisar el registro de catalina.out encuentra en / usr/share/apache-tomcat-7.0.23/logs/catalina.out y comprobar que no existen errores.
  1. [root@srv6 init.d]# more /usr/share/apache-tomcat-7.0.23/logs/catalina.out  
Ahora podemos acceder a la página Administrador de Tomcat en:

http://sudominio.com:8080 o http://suip:8080 y deberíamos ver la página de inicio de Tomcat.



Paso 4: Configuración de Access Manager Tomcat.



Tomcat 7 contiene una serie de cambios que ofrecen un grano más fino-roles.Por razones de seguridad, ningún usuario ni contraseñas se crean para las funciones del gestor de Tomcat de forma predeterminada. En un despliegue de producción, siempre es mejor para quitar la aplicación Manager.Para definir roles, nombre de usuario (s) y contraseña (s), tenemos que configurar el archivo tomcat-users.xml ubicado en $ CATALINA_HOME / conf / tomcat-users.xml.En el caso de nuestra instalación, $ CATALINA_HOME se encuentra en / usr/share/apache-tomcat-7.0.23.Por defecto, el Tomcat 7 tomcat-users.xml tendrá los elementos entre las etiquetas y comentada. .Nuevas funciones para Tomcat 7 oferta de grano fino de acceso y las funciones siguientes están disponibles:
manager-gui
manager-status
manager-jmx
manager-script
admin-gu
admin-script.

Podemos definir el rol manager-gui, por ejemplo, de la siguiente manera
  1. <tomcat-users>  
  2. <role rolename="manager-gui"/>  
  3. <user username="tomcat" password="secret" roles="manager-gui"/>  
  4. </tomcat-users>  


Se debe tener precaución en la concesión, para no varias funciones a la seguridad bajo-mente.
Paso 5 (Oprtional): Administrar el uso de memoria Uso de JAVA_OPTS.

Obtención de los valores de almacenamiento dinámico de memoria adecuados para su instalación dependerá de un número de factores.Para simplificar, vamos a configurar nuestro tamaño de la pila inital, Xms y nuestro tamaño máximo de almacenamiento dinámico, Xmx, con el mismo valor de 128 MbSimliarly, hay varios enfoques que puede tomar en cuanto a dónde y cómo establecer sus JAVA_OPTSUna vez más, para simplificar, vamos a añadir nuestros parámetros de memoria JAVA_OPTS en nuestro fichero Catalina.sh.Por lo tanto, abra el archivo Catalina.sh encuentra en / usr/share/apache-tomcat-7.0.23/bin con un editor de texto o vi.Ya que estamos usando 128 Mb por tanto el tamaño de almacenamiento dinámico inicial y máximo, añada la siguiente línea a Catalina.sh

  1. JAVA_OPTS="-Xms128m -Xmx128m"   


Por lo general sólo tiene que añadir esto en la segunda línea del archivo para que se vea como tal:
  1. #!/bin/sh  
  2. JAVA_OPTS="-Xms128m -Xmx128m"   
  3. # Licensed to the Apache Software Foundation (ASF) under one or more  
  4. # contributor license agreements.  See the NOTICE file distributed with  
  5. # this work for additional information regarding copyright ownership.  
  6. # The ASF licenses this file to You under the Apache License, Version 2.0  
  7. # (the "License"); you may not use this file except in compliance with  
  8. # the License.  You may obtain a copy of the License at  

Paso 6 (Opcional): Cómo ejecutar Tomcat utilizando mínimamente Priviligaiado (no root) del usuario.En nuestra configuración Tomcat anterior, se está ejecutando Tomcat como referencia.Por razones de seguridad, siempre es mejor correr con los servicios sólo los permisos que sean necesarios.Hay algunos que hacer un caso fuerte de que esto no es necesario, pero siempre es mejor errar en el lado de la precaución.Para ejecutar Tomcat como usuario no root, hay que hacer lo siguiente:1. Crear 'tomcat' del grupo:
  1. [root@srv6 ~]# groupadd tomcat  
2. Crear 'tomcat' el usuario y agregar este usuario al grupo tomcat que hemos creado anteriormente.
  1. [root@srv6 ~]# useradd -s /bin/bash -g tomcat tomcat  
Lo anterior, se creará un directorio principal para el usuario tomcat en el home del usuario por defecto como / home / tomcatSi queremos que el directorio de inicio para estar en otro lugar, simplemente especificar lo que usar la opción-d.
  1. [root@srv6 ~]# useradd -g tomcat -d /usr/share/apache-tomcat-7.0.23/tomcat tomcat  
Lo anterior creará el directorio de inicio del usuario tomcat como / usr/share/apache-tomcat-7.0.23/tomcat3. Cambie la propiedad de los archivos tomcat tomcat al usuario que hemos creado anteriormente:
  1. [root@srv6 ~]# chown -Rf tomcat.tomcat /usr/share/apache-tomcat-7.0.23/  
Nota: es posible mejorar nuestra seguridad aún más haciendo ciertos archivos y directorios de sólo lectura. Esto no se trata en este post y se debe tener cuidado al establecer esos permisos.4. Ajuste el guión de servicio de arranque / parada que hemos creado anteriormente. En nuestro nuevo guión, necesitamos su para el usuario tomcat:
  1. #!/bin/bash  
  2. # description: Tomcat Start Stop Restart  
  3. # processname: tomcat  
  4. # chkconfig: 234 20 80  
  5. JAVA_HOME=/usr/java/jdk1.7.0_02  
  6. export JAVA_HOME  
  7. PATH=$JAVA_HOME/bin:$PATH  
  8. export PATH  
  9. CATALINA_HOME=/usr/share/apache-tomcat-7.0.23/bin  
  10.   
  11. case $1 in  
  12. start)  
  13. /bin/su tomcat $CATALINA_HOME/startup.sh  
  14. ;;   
  15. stop)     
  16. /bin/su tomcat $CATALINA_HOME/shutdown.sh  
  17. ;;   
  18. restart)  
  19. /bin/su tomcat $CATALINA_HOME/shutdown.sh  
  20. /bin/su tomcat $CATALINA_HOME/startup.sh  
  21. ;;   
  22. esac      
  23. exit 0  


Paso 7 (Opcional): Cómo ejecutar Tomcat en el puerto 80 como usuario no root.

Nota: el siguiente es aplicable cuando se está ejecutando Tomcat en "stand alone" con Tomcat Tomcat ejecutando bajo el usuario mínimamente privilegiado que hemos creado en el paso anterior.Para ejecutar servicios por debajo del puerto 1024 como un usuario distinto de root, puede añadir lo siguiente a las tablas de PI:

  1. [root@srv6 ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080    
  2. [root@srv6 ~]# iptables -t nat -A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to-ports 8080    


Asegúrese de guardar y reiniciar tu IP Tables.Puestos relacionados con Tomcat

URL - Relacionadas con TOMCAT

Más información sobre Apache Tomcat7 Apache Tomcat Foundation Tomcat 7