domingo, octubre 07, 2012

La relación entre Software Libre y Gobierno Electrónico

 Tomado de: Software Público Uruguayo

La relación entre Software Libre y Gobierno Electrónico

Cuando me invitaron a escribir sobre esta temática, la pregunta fue, ¿cuál sería el público objetivo? ¿técnicos en informática, abogados, o el usuario de software?. La respuesta fue que en realidad, los conceptos que definen al software libre –y en mi opinión al software público– no son técnicos. Muy por el contrario, el porqué son tan importantes en el funcionamiento del Estado y cómo la sociedad puede verse beneficiada con el uso de software libre y desarrollo de software público, atañe a factores sociales, de derechos humanos y desarrollo económico.
Analizaremos la gestión de compra y desarrollo de soluciones informáticas que lleva adelante el Estado, intentando reflexionar sobre la relación que existe entre esta gestión y los derechos de los ciudadanos, así como su impacto en el sistema económico y social. Para hablar de software público en el Estado, primero hay que entender por qué es necesario fomentar el uso y desarrollo de software libre dentro del mismo.

Uso y desarrollo de software libre en el Estado

El Estado tiene la responsabilidad y la obligación de velar por los derechos de los ciudadanos. La forma en que adquiere y desarrolla software no escapa a esta obligación. Derechos como la libertad, privacidad, acceso al conocimiento e igualdad de oportunidades, temas como independencia y soberanía nacional pueden ser restringidos sin una gestión adecuada de las Tecnologías de la Información y la Comunicación (TIC). Intentaré mostrar cómo, al tomar en cuenta el uso y desarrollo de software libre, es posible no solo asegurarlos sino promoverlos.

Independencia y Soberanía

La independencia y soberanía de una Nación radica en la capacidad de controlar sus medios de producción. En pleno siglo XXI este control no se concibe sin un control real sobre las tecnologías de las cuales dependen los sistemas de producción. Estamos hablando de la necesidad de tener independencia y soberanía tecnológica. Si la tecnología se basa en software privativo ese control no existe, o más bien lo dejamos en manos de empresas transnacionales. ¿El lector se imagina al Estado realizando una demanda a empresas que facturan más que nuestro PBI por algún tipo de fraude?
Por similar razón no se privatizan los servicios de la Policía. Una sociedad no puede dejar en manos de intereses privados aquellas tareas que sean vitales para su supervivencia y soberanía. ¿Qué pasaría si todo el sistema de atención del 911 simplemente dejase de funcionar de un momento para otro? Este riesgo existe y para citar un ejemplo considere el caso del sabotaje petrolero que sufrió Venezuela en el 2002, posible en parte por la utilización de sistemas operativos y software privativos en la automatización de sus procesos. Entonces ¿hoy en día la Policía sería realmente independiente?

Libertad

Es un derecho consagrado en el artículo 7° de la constitución. Si decimos que todos nosotros como seres humanos, tenemos derecho a la libre circulación en los espacios públicos parece obvio pero ¿qué sucede cuando nos referimos a nosotros como seres del conocimiento? A diferencia de nuestro físico, en la era de la información nuestro conocimiento se mueve (almacena y transporta) sobre medios digitales. Supongamos que ciertos datos del ciudadano son almacenados en un formato cerrado que sólo puede ser leído por un único programa privativo. Sería como vender los espacios públicos y que la libre circulación dependiera de la buena disposición de unos pocos individuos. La única forma de asegurar la libertad del conocimiento y de la información es utilizar software libre como vehículo de datos.

Privacidad

Según el artículo 1° de la ley 18.331 la protección de datos personales es un derecho humano y según el artículo 10 de la misma ley, el Estado debe garantizar la seguridad y confidencialidad de los mismos. Esto no es posible sin conocer el funcionamiento interno del software que se utilice para manipular dichos datos y la forma de conocerlo es accediendo al código fuente. ¿Por qué la NASA habrá migrado su manejador de bases de datos de Oracle a MySQL?

Acceso al conocimiento

Según el principio de la publicidad, derivado de la forma republicana de gobierno: si el conocimiento es del Estado, es un bien público. Entonces debe ser compartido con toda la sociedad. ¿Cómo es posible que el Estado acepte que se restrinja la transmisión de conocimiento cuya generación pagamos todos? ¿Por un licenciamiento que no lo permite?
Cada vez que el Estado participa en la adopción o desarrollo de una solución informática se genera conocimiento, pero debemos preguntarnos de qué lado queda ese conocimiento. ¿No será una buena estrategia de gestión poder capitalizar dicho conocimiento a la interna de la organización? Sin embargo, debido a una característica intrínseca del software, este conocimiento queda cerca del código fuente. Por lo tanto, en vías de asegurar estos derechos, contar con el código fuente se vuelve una condición necesaria. Al igual que en los libros donde obtenemos el conocimiento al leerlos, en el caso del software el conocimiento generado sólo puede ser obtenido leyendo el código fuente. Un efecto colateral pero muy valioso de cuando el Estado logra apropiarse del conocimiento es la formación de una contraparte técnica calificada a la hora de tener que interactuar con proveedores o al confeccionar licitaciones.

Igualdad de oportunidades

El Estado es uno de los principales consumidores de software y debido a lo variado de su realidad de negocio cualquier política o acción que tome, impacta directamente sobre el ecosistema económico del sector de producción de software nacional. Por su característica de conocimiento abierto y trabajo constructivo acumulativo, el uso de Software Libre en el Estado abre la cancha para la participación de actores actualmente excluidos; las PyME que de otra manera les sería imposible por una cuestión de costos y exigencia de credenciales.
En los procesos de licitación de compra de software tradicionales se piden requisitos como mínimos de facturación anual y tener el producto instalado en instituciones de porte similar. Esto deja fuera del ruedo a pequeñas empresas nacionales o bien las obliga a asociarse (partner) con transnacionales para conseguir dichas credenciales, convirtiéndolas en simples vendedores de cajitas. La exigencia de credenciales es necesaria ya que vamos a basar nuestro negocio en una nueva solución informática pero una alternativa para obtener el mismo nivel de confianza podría ser que la oferta se base en una licencia libre. Así el Estado podría auditar el código, asegurando que el software haga lo que dice y tenga los estándares de calidad necesarios y en última instancia, frente al incumplimiento por parte de la empresa es posible cambiar de proveedor porque contamos con el código fuente.

Uso eficiente de los recursos económicos y la gestión humana

¿Qué pasaría si un ministerio comprase una flota de autos que sólo pueden ser utilizados para un fin establecido y conducidos solamente por un chofer? Descabellado, ¿no? Pues bien, esta es la modalidad corriente en el modelo de adquisición de Software. Por ejemplo, sólo pudiendo instalarlo en 5 computadores. Ni hablemos de poder compartirlo con otro sector del Estado. La base de esta incongruencia es considerar al software privativo como un producto, lo que creo es la gran falacia que nos venden desde siempre en un intento de armar un modelo de negocios rentable tomando como referencia el modelo de comercialización de productos físicos.
Me gusta referirme a esta contradicción como la “paradoja dual en la comercialización del software como producto”, donde se trata como producto algo que se comporta más como un servicio. Sin embargo, considero que al disponer del código fuente definitivamente podemos hablar de producto, ya que en este caso podremos estudiar al software libre bajo una óptica dual al igual que la luz (¿onda o partícula?). Si consideramos el código binario (el ejecutable, por ejemplo) estaremos viendo el uso, es decir el servicio y por otra parte al considerar el código fuente estaremos viendo un producto, el que puedo modificar o entregar a otro.
En el discurso tradicional al usuario se le vende –o este cree estar comprando– un producto como quien compra un auto. Sin embargo se trata de un servicio, un derecho temporal de uso. Un producto podría volver a venderlo. Otra hipótesis errada es pensar que uno puede cambiar de software como quien cambia de auto. Nadie piensa en la “la migración del auto a una nueva versión”. En el caso del software estos cambios son traumáticos y costosos porque en realidad lo que estamos cambiando es un servicio que ya forma parte de nuestro proceso de negocio.
Al tener el código fuente, algo tangible, lo puedo tomar, modificar y volver a distribuir. ¡Eureka! Puedo capitalizar una solución de software. Me gusta analizar esta naturaleza dual separando al software en un plano conceptual de dos dimensiones “producto/servicio” y otro plano físico “código fuente /código binario”. Por eso al adquirir software privativo solo obtenemos servicio, mientras que al adquirir software libre obtenemos servicio y producto.
Fomentar el uso y desarrollo de software libre en el Estado persigue entre otras cosas, no reinventar la rueda y al mismo tiempo permitir la flexibilidad de adaptar el software a cada necesidad. Esto implica no caer en los extremos que plantea el modelo de software privativo; comprar repetidamente lo mismo una y otra vez o en el mejor de los casos lo comprar una vez y lo utilizar como camiseta de talla única obligado a adaptar el negocio al software y no al revés, que sería lo natural.
Volviendo al asunto de los derechos, en el mundo físico los ejemplos son claros y difíciles de rebatir. Sin embargo en el mundo digital se vuelve complejo de entender, sobretodo porque en general las personas carecen del conocimiento técnico necesario para llegar a ver el problema. Con respecto a colocar la independencia y soberanía en manos desconocidas parece que nadie hace eco de esta problemática, entonces me pregunto ¿el Estado es realmente consciente del grado de dependencia que tiene con la informática? ¿Está preparado para una falla? ¿Es posible ser soberano sin tener soberanía tecnológica?

¿Qué es Software Público Uruguayo?

El concepto “Software Público”, acuñado inicialmente por Brasil (SPB) apoyado por varios países de la región, se ha transformado en la iniciativa “Software Público Internacional” (SPI). Éste concepto es el producto de un proceso que se inicia en Brasil en el año 2001 cuya formalización legal y técnica culmina con el lanzamiento del portal de Software Público Brasileño en el año 2007.
Aún es un tema polémico y en estado de evolución, particularmente en Uruguay se encuentra en un estado embrionario a la interna del gobierno y no existe en el debate público, a excepción de alguna iniciativa de la sociedad civil que trata de aportar luz en este camino. Tomando como base la definición de “Software Público Brasileño” y colocándola en el contexto de nuestra realidad social, económica y productiva en torno a las TIC, me gustaría compartir con el lector lo que, en mi opinión, debería formar parte de la definición de “Software Público Uruguayo” (SPU).
Entendemos por “software” a un programa acabado y listo para ser ejecutado. El término “público” lo interpretamos en un sentido amplio de “bien público” o aquello que le pertenece a todos. En particular me refiero a aquel software que es de interés del Estado y de su propiedad. Aquí entraría cualquier software que sea desarrollado o adquirido por el Estado siempre que sea de su propiedad. En tal caso, la sociedad debería poder usufructuarlo pues al fin y al cabo el Estado ya pagó y lo hizo con el dinero de todos nosotros. Al considerar un software como “bien público” estamos diciendo que queremos compartirlo, lo que implica que cada uno pueda utilizarlo para satisfacer sus necesidades, incluyendo la posibilidad de modificarlo y aprender de él.
Entonces ¿software público sería aquel software adquirido o desarrollado por el estado? La respuesta es no y se debe a un tema de licenciamiento. Para compartir un determinado software con la sociedad en general y con el resto del Estado en particular, se debe contar con una licencia que permita este tipo de uso y por supuesto con el código fuente, asegurando al usuario las cuatro libertades según ladefinición de la Free Software Foundation. Como el lector podrá apreciar, gran parte del software adquirido y/o desarrollado por el Estado sigue un modelo de licenciamiento que no otorga estas libertades, por lo tanto no puede ser considerado software público.
¿Qué se compra en realidad al comprar una solución de software que solo incluye el código binario? En realidad se está comprando un servicio, está alquilando el derecho a uso por un cierto tiempo bajo ciertas condiciones. Se trata de la “paradoja dual de la comercialización del software como producto” que introduje en la sección anterior.
Para completar la definición de software público uruguayo, además de tener que ser de interés del Estado, de su propiedad y disponibilizado bajo una licencia libre, falta contestar otras dos preguntas.
La primera es ¿qué sucede con los derechos de autor de la marca y logo del software? Es necesario asegurar que todo software público permanezca siempre como un bien público. Para esto, además del acceso al código fuente se necesita una Licencia Libre de Marca, estableciendo que el autor cede los derechos de toda marca, nombre, logotipo o isotipo relacionado al software libre en cuestión. Esto evita que el autor del software pueda llegar a restringir las libertades de los usuarios de forma indirecta. Por ejemplo, cuando la confianza de un producto se ve fuertemente relacionada a una marca, puede confundir a los usuarios si hoy o mañana dicha marca pasa a utilizarse para un producto privativo. Otro ejemplo sería enfrentar alguna demanda reclamando el pago de regalías por utilizar una marca o logotipo en determinado contexto de uso de una aplicación.
La segunda pregunta que falta responder es ¿cómo se puede asegurar un nivel de soporte que haga sostenible el mantenimiento y evolución del software a largo plazo? La respuesta pasa por generar y asegurar una Comunidad Virtual Nacional; un grupo activo de personas que pertenezcan a nuestro país, cuyo objetivo sea el desarrollo y evolución de dicho software. Los actores de esta comunidad pueden ser agentes del gobierno, empresas, asociaciones civiles o cualquier ciudadano, pero debe existir por lo menos un referente o líder que oficie de facilitador en la gestión de la comunidad.
Tanto “Licencia Libre de Marca” como “Comunidad Virtual Nacional” son conceptos provenientes de sus homólogos brasileños y creo que hacen a la diferencia sustancial en la definición sobre qué es software público.

¿El modelo de negocios detrás del Software Público?

Hemos tratado el tema de la soberanía tecnológica como condición necesaria para ejercer soberanía nacional, en tal sentido la definición de software público uruguayo surge como una respuesta concreta. Sin embargo hasta ahora hemos visto el “qué” pero no el “cómo”. Nada de lo anterior tendría sentido sin el planteo de un modelo de negocios sustentable. Me refiero al rol que juega la empresa. No habrá pensado el lector que todos los desarrolladores de software libre deban ser funcionarios públicos, ¿cierto? Y es que detrás de la definición de software público existe un modelo que permite conjugar Estado, sociedad y empresa con política, economía y solidaridad. Un modelo donde es posible hacer negocio y generar desarrollo manteniendo valores esenciales como la libertad, solidaridad, justicia social e igualdad de oportunidad para todos los ciudadanos.
El modelo de software público tiene cinco componentes, el producto, los servicios asociados, la prestación de servicios, la gestión de la colaboración y centrarse en la divulgación del conocimiento. El producto refiere a un software acabado listo para instalar, los servicios asociados son herramientas tales como un portal, un repositorio de software y código fuente, foros, blogs y demás herramientas tecnológicas que den soporte al resto de los componentes del modelo. La prestación de servicios refiere a los proveedores de servicio, empresas que brindan soporte, asesoramiento, capacitación o desarrollo en torno a alguno de estos productos. La divulgación del conocimiento se refiere a estimular el desarrollo de comunidad. En este punto el rol del Estado como gestor del conocimiento es fundamental para la conservación de los valores de la colaboración, del compartir, asegurando la salud de la comunidad. Sin una comunidad activa y saludable el modelo se convierte en un mero catálogo de proveedores de soluciones para el Estado. La clave está en lograr un modelo de desarrollo solidario basado en valores, considerando al conocimiento como un bien público, asegurando su divulgación.
Si se pregunta cómo puede funcionar un modelo de negocio basado en estos principios, la respuesta la puede encontrar en el portal de software público brasileño donde las empresas que participan han cambiado su paradigma de modelo de negocios. Dejando de lado el modelo de licenciamiento y pasando al modelo de desarrollo llave en mano, cobrando por el conocimiento generado en cada iteración. En este modelo no es necesario grandes inversiones iniciales pues se trabaja sobre el “delta”. Al basarse en un desarrollo existente, se cobra por la adaptación o extensión del sistema. A la vez y dado que el Estado es el principal cliente, un proveedor en este escenario accede a una cartera de clientes (todas las instituciones del Estado) de forma casi inmediata con poca burocracia, donde sus credenciales vendrán dadas por su reputación en la comunidad que gira en torno al producto.
Un modelo similar al brasileño se puede observar en otro tipo de emprendimiento de software libre, en este caso el de la Asociación gvSIG donde un conglomerado de empresas de muchos países hacen evolucionar una herramienta libre como gvSIG siempre respaldados por una comunidad mundial y respetando valores de libertad y solidaridad, generando oportunidades de negocio reales en más de 200 ciudades del mundo.
Tanto en la región como en el resto del mundo aparecen declaraciones de presidentes y jerarcas del gobierno a favor del software libre. En Europa se están registrando este tipo de movimiento cada vezcon más fuerza, donde el Estado está cambiando su política tecnológica hacia el software libre. Sin duda la crisis económica europea debe estar influyendo, pero nada de esto sería posible si el software libre fuera solo algo de geeks, peludos y barbudos. Además, pregúntese qué hay dentro de las cajas negras que venden las grandes empresas de software y verá que utilizan más software libre del que usted imagina, aprovechándose del conocimiento generado en la comunidad que luego se lo venden con una hermosa moña.
Uruguay se debe este debate y es hora que el Estado tome cartas en el asunto y quesoftwarepublico​.gub​.uy sea una realidad.

Álvaro Rettich

lunes, octubre 01, 2012

Instalando GLPI – Gestión Libre del Parque Informático

Tomado de:  GESTION DE INCIDENTES

GLPI es una aplicación libre de código abierto la cual nos permite llevar una gestión de nuestro parque informático, así como la gestión de incidencias y tareas referentes a los mismos.
En ocasiones necesitamos una herramienta de gestión en la cual tener todo el inventario de dispositivos, así como las asistencias que se realizan en ellos. Con esta herramienta tenemos salvadas todas estas tareas, de un modo sencillo y eficaz.

Descargar e instalar GLPI


El siguiente paso es descargar la aplicación GLPI, para ello nos dirigimos al sitio oficial y hacemos clic TÉLÉCHARGER, para posteriormente hacer clic en GLPI Version X.X.X.
Una vez lo hemos descargado tenemos que descomprimir el paquete en el directorio C:\xampp\htdocs.
A continuación abrimos un explorador y tecleamos la dirección http://localhost/glpi. Elegimos el idoma que deseamos usar y hacemos clic en el botón OK.
En el siguiente paso aceptamos los términos de licencia y hacemos clic en el botón Continuar.
A continuación hacemos clic en el botón Instalación para comenzar el proceso.
Tras realizar un test de los componentes necesarios hacemos clic en el botón Continuar.
Ahora nos solicita los datos de conexión a la base de datos, para ello en la casilla Servidor Mysql introducimos el nombre localhost; en la casilla Usuario Mysql el nombre root y en la casilla Contraseña Mysql la contraseña creada en el proceso anterior de seguridad. Una vez introducidos todos los datos hacemos clic en el botón Continuar.
El siguiente paso es crear la base de datos para nuestra aplicación, elegimos la opción Crear una base de datos o utilizar la que ya existe e introducimos el nombre gpli. Una vez realiza la operación hacemos clic en el botón Continuar.
Nos aparece un mensaje donde dice que la base de datos se ha creado correctamente, hacemos clic en el botón Continuar.
Por último nos indica que la instalación ha finalizado, para comenzar a usar GLPI vamos a hacer clic en el botón Continuar.
Configurar GLPI
En el explorador que se ha abierto introducimos las credenciales del usuario glpi con contraseña glpi y hacemos clic en el botón Aceptar.
Una vez dentro hacemos clic en la opción preferencias.
El siguiente paso será cambiar la contraseña predeterminada de nuestra aplicación, por lo que introducimos la nueva contraseña y los datos de usuario. Una vez hecho hacemos clic en el botón Actualizar.

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: