Lateral Think's
 
Picture
Todos los informáticos a los que nos gustan los sitemas operativos basados en Unix, nos encontramos siempre recomendando Linux a personas que no saben distinguir un sitema operativo del bloc de notas. Y mucho menos distinguir Windows de Linux. Para ello hoy, altruistamente, haré este pequeño manual para el "analfabeto tecnológico".

1- ¿Que es un Sistema Operativo?

Parece un rollo de pregunta. Y lo es, pero si no sabes esto, no puedes ni empezar. Hay que distinguir cosas básicas.

La definición sería: es el programa que te permite y gestiona la comunicación entre el ordenador y el usuario. Básicamente el S.O. es el programa que nos permite ver las unidades de disco (el disco duro, el CD, las tarjetas de memoria, etc), gestionarlas (copiar, borrar, etc), y ejecutar programas.

2 - ¿Que es un programa?

Vale, también un rollo, pero ya sabes. La base es la base.

Un programa es un conjunto de instrucciones que ejecutará el ordenador. El Sistema Operativo es un tipo de programa.

La Elección

Bien, ahora le sacaremos algo de utilidad a este rollo. Windows y Linux son sistemas operativos, que traen otros programas preinstalados. Así que el windows nos permite ejecutar el bloc de notas, y el word, que son programas independientes del sistema operativo.

¿Que sistema operativo elegir? Si no te dedicas a jugar como un viciao, Linux. Para juegos Windows. Pero ambos pueden convivir, tenedlo en cuenta.

¿Como conviven? El Linux, durante la instalación, te deja la opción de mantener el sistema operativo existente ya en tu máquina, e instala un gestor de arranque, que no es más que un programita que te deja elegir el sistema operativo que quieres arrancar (algunos programas no precisan de Sistema Operativo, y este es uno de ellos).

Pero ¿que distribución de Linux eligo? Si, hay chopocientas. Y cada una con sus características propias. Así que elegiremos la más popular y facilona de las que existen ahora mismo: ubuntu.

Instalación

Primeramente nos vamos a la página de ubuntu: www.ubuntu.com y pinchamos en download. Elegimos un mirror y la versión (32 o 64 bits, dependiendo de nuestra máquina). Si tienes dudas, te bajas la de 32 bits y arreando.

Una vez echo esto nos habremos bajado un fichero ISO, que con el NERO u otro programa para tostar CDs, te lo pasará a CD fenomenal. Te lo pasas a CD.

Arrancas el ordenador, indicandole que arranque desde CD. O bien te vendrá al arrancar (al principio de todo, según le das al botón) algo así como "F12 (o DEL) para acceder a setup", o "F12 to boot menú". Si tienes que entrar en el setup, busca "Boot Sequence" o algo similar, y ponlo para que arranque primero el CD.

Una vez echo esto, arrancamos desde el CD y le indicamos que queremos instalar.
En Slice of Linux nos tienen un tutorial super chulo de como instalarlo paso a paso, y muy bien explicado. Os dejo el enlace.

Anexo I : Distribuciones

Bien, para los que tengan necesidades más específicas, aquí dejo una pequeña guia de distribuciones:

   - Profesionales de edición gráfica (ilustradores, fotógrafos, etc), edición de vídeo o de música: Unbuntu Studio.
   - Para ordenadores personales: Ubuntu ó Mandriva
   - Para Netbooks: Ubuntu for netbooks ó JoliCloud.
   - Para Servidores: CentOs (basádo en Red Hat) ó Debian.
   - Para Servidores (previo pago): Red Hat.
   
Si quereis ver más información sobre más distribuciones pasaros por Distro Watch ()
   
Anexo II: Equiparación programas con Windows

En Linux tenemos programas para casi todo tipo de propósitos. Aquí estableceré una serie de paralelismos con programas de windows para que no os perdais demasiado.

  1. - Block de notas - Gedit
  2. - Microsoft Office - Open Office; KOffice
  3. - Photoshop - The GIMP.

En este enalce os dejo un listado más extenso.
También existe la posibilidad de ejecutar programas de windows en Linux, mediante un programita llamado Play on Linux. Mas información.

Para instalar programas de cualquier tipo, hay diferentes métodos. Pero como buenos novatos vamos a lo facilón facilón. En Ubuntu (y en todas las distribuciones basadas en Debian), existe un programita llamado Synaptic. Lo encontrareis en Sitema -> Administración -> Gestor de Paquetes Synaptic.
Os dejo este enlace (http://b2dbuntu.wordpress.com/2007/10/07/synaptic-el-gran-instalador-de-ubuntu/) para ver como se usa, pero os adelanto que es más sencillo que el mecanismo de un chupete. Después de usar Synaptic (lo advierto) el windows os parecerá el colmo de la complejidad para buscar e instalar aplicaciones.

Creo que con esto, de momento, llega para comenzar. Otro día os hablare de ese desconocido tan temido: el terminal.
 
Picture
Entendemos por usabilidad  la facilidad con que las personas pueden utilizar una herramienta particular o cualquier otro objeto fabricado por humanos con el fin de alcanzar un objetivo concreto.

En informática este concepto se refiere a la complejidad que pueda tener para una persona la utilización de una herramienta en concreto, siendo más usable cuanto menos tiempo necesita para conocer y utilizar la herramienta en cocreto. Lo que llamamos un entorno "amigable" (Friendly).

Aunque durante años la tendencia de la programación ha ido dirigida a la funcionalidad de la aplicación, se ha visto que el éxito comercial de estas se basaba en la simplicidad de uso para el usuario, realizando su cometido correctamente. Así tenemos el ejemplo paradigmático de la página web Google, que en su momento tuvo que hacer competencia directa con grandes buscadores ya asentados, como Yahoo! o Altavista, convertidos ya en portales. El gran éxito de Google se debe a dos factores: la eficacia del motor de búsqueda, y la facilidad de utilización a través de una pantalla más bien espartana.

La dificultad más importante a la hora de hacer una aplicación "usable" es conocer bien cual es el "target" al que va dirigida la aplicación, puesto que el diseño de la aplicación va a ir determinada por el público a la que va dirigida la aplicación, y no por las necesidades funcionales de esta.

Este concepto se está llevanto al límite en el caso de la tecnología móvil, como son los teléfonos móviles y las tabletas (Pads), a través de las pantallas táctiles.

¿Que ventajas de usabilidad supone el uso de las pantallas táctiles? Por una parte, el uso de pantallas táctiles supone una mayor libertad para el programador, que no se ve limitado por el hardware del equipo para dar una determinada funcionalidad a un programa, ya que esta funcionalidad física puede ser simulada de forma lógica (a través del software). Por otro lado, el uso de pantallas táctiles no limita al uso de botones, sino que permite una representación abstracta de la realidad en pantalla, haciendo su uso mucho más intuitivo para el usuario, que no necesita un tiempo de adaptación para el uso del dispositivo en cuestión. Un ejemplo de esto puede suponer el famoso gesto del "pellizco" en las pantallas para ampliar fotografías, sin tener que recurrir a botones para especificar si se aumenta o disminuye dicho tamaño. Básicamente se trata de que el usuario no necesite "sacarse una ingenieria" con el manual de instrucciones.

Bibliografia y Recursos:
(Fuente: El título es lo último)
bIblIOgrAfÍA

[Usabilidad: concepto, cuestiones generales]

Bevan, N.; Kirakowski, J.; Maissel, J. “What is Usability?” En:Proceedings of the 4th International Conference on HCI, Stuttgart, September 1991.

Folmer, E.; Bosch, J. “Architechting for usability: a survey”. The Journal of Systems and Software, v. 70, n. 1-2, February 2004. pp. 61-78.


ISO 9241-11. Ergonomic Requirements for Office Work with Visual Display Terminals (VDTs) – Part 11: Guidance on Usability, 1998.


Krug, S.. No me hagas pensar: una aproximación a la usabilidad. Madrid: Pearson Educación, 2001. ISBN 84-205-3252-5

Nielsen, J. Usabilidad. Diseño de sitios web. Pearson Educacion: Madrid, 2000. ISBN 84-205-3008-5

Nielsen, J. “Weblog Usability: The Top Ten Design Mistakes” [en línea]. Jakob Nielsen’s Alertbox, October 17, 2005. [Consultado el 10 de julio de 2006] http://www.useit.com/alertbox/weblogs.html

[Usabilidad: cómo medirla, estudios de evaluación de usabilidad...]

Alva Obeso, M.E. Metodología de Medición y Evaluación de la Usabilidad en sitios web educativos. [en línea]. Tesis doctoral Universidad de Oviedo, Marzo 2005.  [Consultado el 10 de agosto de 2006]http://www.di.uniovi.es/~cueva/investigacion/tesis/Elena.pdf


González, M.P; Afra, P. y Lorés, J. “Evaluación heurística”. En: Introducción a la Interacción Persona-Ordenador. [en línea] [Consultado el 20/09/2006:] http://griho.udl.es/ipo/pdf/15-Evaluacion-Heuristica.pdf

Hassan Montero, Y.; Martín Fernández, Francisco J. “Guía de Evaluación Heurística de Sitios Web” [en línea] Nosolousabilidad.com, 30 de marzo de 203. [Consultado el 10 de julio de 2006]http://www.nosolousabilidad.com/articulos/heuristica.htm

Hassan Montero, Y.; Martín Fernández, Francisco J. “Método de test con usuarios” [en línea] Nosolousabilidad.com, 9 de diciembre de 2003. [Consultado el 10 de julio de 2006]http://www.nosolousabilidad.com/articulos/test_usuarios.htm

Hornbaek, K. “Current practice in measuring usability: Challenges to usability studies and research”. En: International Journal of Human-Computer Studies, 64, 2006. pp. 79-102.

Manchón, E. “Tipos de evaluación de sitios web” [en línea]Alzado.ord, 9 de febrero de 2003. [Consultado el 10 de julio de 2006] http://www.alzado.org/articulo.php?id_art=75

Manchón, E. “Evaluación por criterios o heurística” [en línea]. [Consultado el 15 de julio de 2006]http://www.ainda.info/evaluacion_heuristica.html

Marcos, M.C. et al. “Evaluación de la usabilidad en sistemas de información terminológicos online”. [en línea] Hipertext.net, núm. 4, 2006. [Consultado el 15 de julio de 2006]http://www.hipertext.net/web/pag268.htm

Marcos, M.C.; Cañada, J. “Cómo medir la usabilidad: técnicas y métodos para evaluar el uso de sitios web”. En: C. Rovira y Ll. Codina (Dirs.). Documentación digital. Barcelona: Sección Científica de Ciencias de la Documentación. Departamento de Ciencias Políticas y Sociales. Universidad Pompeu Fabra.[Consultado el 15 de julio de 2006]http://www.mcmarcos.com/pdf/2004_usabilidad-modd.pdf


Márquez Correa, J. Guía para la evaluación experta. [en línea][Consultado el 15 de julio de 2006]http://www.jmarquez.com/documentos/jm_checklist.pdf


Nielsen, J. “How to Conduct a Heuristic Evaluation”. [en línea] En: Nielsen, J.; Mack, R.L. (ed.) Usability Inspection Methods, New York: John Wiley & Sons, 1994. ISBN 0-471-01877-5. [Consultado el 5 de julio de 2006]http://www.useit.com/papers/heuristic/heuristic_evaluation.html

Nielsen, J. “Ten Usability Heuristics”. [en línea] En: Nielsen, J.; Mack, R.L. (ed.) Usability Inspection Methods, New York: John Wiley & Sons, 1994. ISBN 0-471-01877-5. [Consultado el 5 de julio de 2006]http://www.useit.com/papers/heuristic/heuristic_list.html

[Usabilidad y blogs]

Barrón, G. et al. “Errores de Usabilidad en Blogs” [en línea].Veaseademas.com, 3 noviembre de 2005. [Consultado: 10 julio de 2006]http://www.veaseademas.com/archivos/2005/11/errores_de_usab.html

García, J.C. “La Usabilidad de las bitácoras como factor de éxito” [en línea]. Úsalo. Usabilidad para todos, 4 de marzo de 2006. [Consultado: 14 julio de 2006] http://usalo.es/141/la-usabilidad-de-las-bitacoras-como-factor-de-exito

“Net Rage. A Study of blogs and usability” [en línea]. Catalyst Group Design, Julio 2005. [Consultado: 4 julio de 2006]http://www.catalystgroupdesign.com/cofactors/upload/Blog_usability_report.pdf

Nielsen, J. “Blog usability mistakes” [en línea]. Jakob Nielsen’s Alertbox, [Consultado: 14 julio de 2006]http://www.useit.com/alertbox/weblogs.html

blOgs y wEbs
Alzado.org. Web de César Martín, Eduardo Manchón y Luis Villa, con cientos de artículos sobre usabilidad, diseño de información, desarrollo web, diseño centrado en el ususario…

Blog de Cadius. Weblog de Cadius, comunidad de profesionales dedicados a la arquitectura de información, la usabilidad, diseño de interacción y demás disciplinas centradas en el usuario. En la web de Cadius, posibilidad de suscribirse a su lista de correo, información sobre los Cocktails mensuales y los laboratorios.

Creating Passionate Users. Blog escrito principalmente por Kathy Sierra, sobre diseño centrado en el usuario, aprendizaje y metacognición…

No Solo Usabilidad. Magazín electrónico sobre usabilidad y diseño web centrado en el usuario, editado por Yusef Hassan Montero,Francisco Jesús Martín Fernández y Dunia Hassan Montero.

UPA Usability Resources. Página de recursos sobre usaiblidad de laUsability Professionals’ Association (UPA). Definiciones de usaiblidad, casos prácticos, guías y metodologías, recursos y enlaces, eventos, conferencias… La UPA organiza el World Usability Day, que este año se celebrará el 14 de noviembre (2006).

UPA Spain. Web de la Asociación Española de Profesionales de la Usabilidad. Matienen una lista de correo a la que podemos suscribirnos para recibir mensualmente noticias sobre las actividades y eventos organizados por la Asociación. Recopilación de webs de Asociaciones y comunidades virtuales, glosarios, herramientas y webs especializadas en usabilidad.

Úsalo. Usabilidad para todos. Bitácora de Juan Carlos García Gómez y Tomás Saorín Pérez con ideas y consejos sobre Usabilidad y sus disciplinas afines: Accesibilidad, Arquitectura de la Información, Findability, HCI, Diseño, Experiencia de Usuario…

Useit.com. Website de Jackob Nielsen, uno de los “gurús” de la usabilidad. Acceso a su Alertbox, columna periódica sobre usabilidad web, y a sus publicaciones.

Usolab Weblog. Weblog de usabilidad, diseño y negocios online mantenido por Usolab, consultoría especializada en usabilidad y diseño web centrado en usuario.

 
Picture
Estoy haciendo recopilación de post antiguos de mis ex-blogs, que creo que pueden merecer la pena. Y uno de ellos es este. ¿Que criterios debo de seguir para crear índices a tablas en Oracle?. Leed atentos:
He aquí la pregunta que muchos se hacen cuando se encuentran con problemas de rendimiento en sus tablas.... ¿he de crear un índice?. Veamos en que criterios podemos basarnos.

Como norma general, para cualquier tipo de índice, debe limitarse el número de estos y crear siempre los que exclusivamente sean necesarios, es decir, el menor número posible dentro de todos los que hagan falta.

La selectividad de un índice es la relación entre el número de valores distintos de una columna indexada y el número de registros de la tabla. Si una tabla tiene 1000 registros, y una columna indexada de la tabla tiene 950 valores diferentes, la selectividad del índice es 0.95 (950/1000). La mejor selectividad es 1. Los índices únicos sobre columnas no nulas y las claves primarias siempre tienen selectividad 1.

La selectividad de un índice nos da una medida de su utilidad para evitar I/O en la ejecución de sentencias contra la tabla. Si un índice sobre una tabla de 1000 registros tiene sólo 5 valores diferentes, entonces su selectividad es muy pobre (5/1000 = 0.005). Para cada posible valor de este índice, habrá un promedio teórico de 200 filas. En este caso, podría ser más interesante realizar un full table scan en vez de acceder vía índice a esta tabla, si bien se debe comprobar con datos reales de acceso a la misma.

Si se está usando CBO, el optimizador no realizará accesos a tablas a través de índices con una selectividad muy baja.

Puede sin embargo ser conveniente usar índices con baja selectividad, si se cumplen varias condiciones.

• Las sentencias empleadas no usan variables bind o se ha implementado algún mecanismo para distinguir aquellas consultas que deben emplear el índice, como por ejemplo, uso de literales, basándose en la distribución de datos.
• El índice está analizado con histogramas.
• El valor usado en las condiciones tiene muy poca cardinalidad.
 

En la vida del desarrollo del software siempre se planetan varios problemas de difícil o, al menos, complicada solución. Por este motivo durante las últimas décadas se han estado estudiando y poniendo al dia diferentes metodologías, con la itención de resolver todos estos problemas.

  - Problema 1: Modelo de gestión del proyecto.
         El primer problema que suele surgir es como gestionar el proyecto para que este sea desarrollado con más agilidad y menor esfuerzo. Los principales problemas con los que se han enfrentado hasta ahora los analistas para gestionar los proyectos eran el cumplimiento de fechas y la adaptación a nuevos requerimientos durante el desarrollo de la aplicación, derivado del ciclo tradicional de vida del software. Por eso se desarrollaron lo que más tarde se han conocido como "metodologías ágiles de desarrollo", de las cuales han destacado Scrum  y Extrem Programing.
Desde el inicio, la que mejores resultados parece heber mostado ha sido la metodología Scrum que básicamente consite en: "un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto." La siguiente ficha explica perfectamente el proceso:
Picture

  -  Problema 2: Modelado del software.
         Otro de los grandes problemas es elegir una tecnología adecuada a las necesidades funcionales de la aplicación. Esto se solucionó en parte, con la popularización de las aplicaciones web, cuyos frameworks han implementado, de forma estandarizada, el modelo Vista-Controlador como parte integral del sistema, de tal manera que se permite de una manera sencilla la programación de aplicaciones complejas. Un ejemplo claro de este modelo, lo representa el modelo para java llamado "Structs".
Picture
Picture
         Para tener más información sobre los modelos del software, lo mejor es recurrir a los "Pattern Dessign", cuyo nacimiento surgión con el conocido como Gang of Fours, ya que sus autores fueron  Erich GammaRichard HelmRalph Johnson and John Vlissides. El manual se divide en dos partes, los primeros dos capítulos, que exploran las ventajes y dificultades de la programación orientada a objetos, y el resto, que describen un conjunto de patrones de diseño software. Se incluyen ejemplos en C++ y Smalltalk.

Como recomendación, visitad todos los links expuestos en el artículo, para una mayor pofundización sobre el tema.