martes, 28 de septiembre de 2010

Agnitio3: Paradigma del conocimiento basado en cubos

Safe Creative #1009287453874




Introducción

El presente documento es un ensayo sobre un paradigma de conocimiento, una reflexión sobre cómo organizar la información de una forma eficiente, y sobre la cual se pueden generar consultas complejas y obtener la información en diferentes vistas.

La base es un cubo de conocimiento, el cual eleva las posibilidades que actualmente tenemos limitadas con el paradigma del 2D, en base a tablas, o matrices de columnas y filas, paradigma que se puede complementar con este paradigma 3D.

Esta paradigma organiza eficientemente la información sobre un esquema muy organizado y dimensional, aunque complejo a medida que se añaden nuevos conceptos (ver Concepto avanzados), y que pueden tratarse mediante un software especializado.

Agnitio3 es el nombre con el que he bautizado este paradigma, el cual, de base, no es nuevo, pero al que he añadido conceptos nuevos y avanzados. Agnitio es la traducción al latín de Conocimiento. El número 3 representa el cubo en matemáticas. Agnitio3 = Conocimiento al cubo.

El presente documento no está cerrado, y puede sufrir modificaciones constantes, a fin de corregir erratas o añadir nuevos conceptos e ideas.


Versiones

28/09/2010. Por Rafael Hernampérez Martín. Primera versión.


Conceptos básicos

3DtiCube es un sistema de organización de la información basada en cubos de conocimiento, con gran capacidad de configuración, personalización, versatilidad, potencia de consulta y generación de informes y gráficas.

Un cubo de conocimiento tiene tres ejes o dimensiones, cada uno de los cuales está fragmentado en coordenadas o elementos. Cada elemento se relaciona con otros elementos de otras dimensiones, y la confluencia de tres elementos diferentes de cada una de las dimensiones, dará como resultado un punto común, al que llamaremos nexo o conocimiento, pues contiene un valor compartido y común a los tres elementos.

Imaginemos un cuadro de mando básico que mide el nivel de cada servicio de una compañía, comparando cada servicio en cada producto. Este cuadro de mando se realiza cada semana, y sobre el mismo se realiza un seguimiento puntual. Aquí se identifican las 3 dimensiones necesarias para un cubo de conocimiento:



  • Servicio:


    • Servicio 1




    • Servicio n


  • Producto:


    • Producto 1




    • Producto n


  • Período:


    • Semana 1




    • Semana n

El conocimiento se obtendría de la confluencia de tres elementos, cada uno de los cuales en cada una de las dimensiones. Por ejemplo, el nivel del servicio de atención al cliente, del producto “Ordenador portátil XYZ”, en la semana 5.

Organizar la información en tres dimensiones nos permite girar el cubo y extraer la información en varias vistas 2D a partir de un determinado elemento de una de las dimensiones:

Vista 1

Servicio “XXX” (Se extrae sobre un único Servicio)


Semana 1
...
Semana n
Producto 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Producto n
99.99
99.99
99.99



Vista 2

Servicio “XXX” (Se extrae sobre un único Servicio)


Producto 1
...
Producto n
Semana 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Semana n
99.99
99.99
99.99

Vista 3

Producto “XXX” (Se extrae sobre un único producto)


Servicio 1
...
Servicio n
Semana 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Semana n
99.99
99.99
99.99


Vista 4

Producto “XXX” (Se extrae sobre un único producto)


Semana 1
...
Semana n
Servicio 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Servicio n
99.99
99.99
99.99


Vista 5

Semana n (Se extrae sobre una única semana)


Servicio 1
...
Servicio n
Producto 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Producto n
99.99
99.99
99.99


Vista 6

Semana n (Se extrae sobre una única semana)


Producto 1
...
Producto n
Servicio 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Servicio n
99.99
99.99
99.99

Estos conceptos básicos abarcan conocimientos singulares, es decir, un valor único en cada nexo.


Conceptos avanzados

Sobre este paradigma de organización informativa, se pueden agregar algunos conceptos avanzados para aumentar sus prestaciones y funcionalidades.


Conocimiento plural

El nexo o conocimiento puede ser plural. Es decir, puede contener tantos valores como se desee y del tipo que se desee, y no solamente uno. Este concepto nos aporta más riqueza de conocimiento (una dimensión para conocimiento), y puede servir para agregar un pequeño repositorio o base de datos en nuestro cubo. En el ejemplo anterior, nuestro cubo únicamente contemplaba niveles de servicio (generalmente expresado en % de eficiencia). Si se desea, por ejemplo, representar beneficios, pérdidas, % de penalización por incidencias, etc.), con el paradigma del cubo básico sería necesario un cubo por cada tipo de dato, aunque utilicen las mismas dimensiones. Sin embargo, con el conocimiento en plural, utilizaríamos un único cubo para almacenar en el mismo nexo todos estos valores, y extraer diferentes vistas, o extraer los diferentes valores en la misma consulta.

Los valores se podrían almacenar en formato documento, libre de esquema, con claves y valores, pudiendo almacenar también arrays de valores y documentos anidados:

{
clave1”: valor1,
clave2”: “valor2,
clave3”: datetime(2010,09,28,13,03),
clave4”: [valor1, valor2, valor3],
clave5”: { ... }
}

Una aplicación práctica sería, por ejemplo, crear un cubo cuyas dimensiones fueran las áreas de la empresa (sistemas, seguridad, CPD, Desarrollo, calidad, etc.), un tipo de conocimiento (Java, .NET, Linux, etc.) y un nivel o uso del conocimiento (principiante, experto, usuario, etc.). El nexo podría contener manuales, tutoriales, documentos, enlaces a foros, enlaces a herramientas productivas (gestores de proyectos, agendas, incidencias...), etc.


Agrupación de elementos

Un cubo puede crecer y hacerse complejo, por lo que es preferible clasificar los elementos de una dimensión en categorías. Por ejemplo, el catálogo de productos puede llegar a ser muy extenso, así como también la dimensión de las semanas. Clasificar los productos por gama (ordenadores de sobremesa, ordenadores portátiles, accesorios informáticos, etc.), y las semanas por trimestres aporta claridad y gana en eficiencia y en productividad. Esta clasificación permitiría la agrupación de la información, permitiendo contraer o expandir los elementos agrupados, así como también realizar cálculos (en caso de valores numéricos) de dicha agrupación: sumatorio, media aritmética, valor mínimo, valor máximo, conteo, etc.

Sería muy interesante que el cubo calculase automáticamente el total de ventas de un determinado producto durante el primer trimestre de 2010. O bien que calculase la media del nivel de servicio de soporte de toda la gama de ordenadores de sobremesa durante la semana 5. Se podrían combinar agrupaciones en todas las dimensiones del cubo.


Referenciación de cubos

Funcionalmente podrían definirse infinitos niveles o jerarquías de agrupación, pero sería mucho más claro no excederse de dos o tres niveles. Si se requiriese de más detalle, podría ser más conveniente replicar un cubo categorizado en un nuevo cubo, dejando en una dimensión sencilla la agrupación de alto nivel, y empezar a categorizar en bajo nivel. Esta réplica sería una referencia al cubo original. Los cambios que surgieran en el cubo original, se trasladarían automáticamente al cubo que toma la referencia.

Podemos crear un nuevo cubo referenciado del cubo anterior agrupado. Sobre este cubo, podríamos ahora categorizar las gamas de productos por líneas de productos (por ejemplo: ordenadores agruparía ordenadores de sobremesa, portátiles, Tablets, Netbooks, etc...), y los períodos podrían ahora categorizarse por años.


Referencias entre elementos de distintos cubos

Pueden definirse elementos referenciando a otros elementos en otras dimensiones y en otros cubos, e incluso referenciar a un elemento agrupado. Pueden crearse cubos mixtos, con dimensiones que contengan elementos propios y elementos referenciados a otros elementos de diferentes cubos. Las referencias son efectivas en cubos cuyos elementos y dimensiones coinciden, pues los conocimientos tienen esta dependencia (recordemos que un conocimiento o nexo es la confluencia de tres elementos, uno por cada dimensión).


Conocimiento elevado al cubo de...

En entidades demasiado complejas, en lugar de conocimientos singulares o plurales, puede ser interesante utilizar como conocimiento un cubo de conocimiento, creando un anidamiento y exponenciando las posibilidades de información. El primer cubo sería un cubo genérico, y sus nexos contendrían los cubos del conocimiento, que pueden ser distintos entre los diferentes nexos del cubo genérico o principal.

El nivel de anidamiento podría ser infinito, aunque lo recomendable sería simplificar.


Conocimiento mixto

El conocimiento podría tratar un cubo de conocimiento como un tipo de dato más. De esta manera, un conocimiento podría contener un documento clave-valor, con diferentes valores estándar, y también podría incluir uno o varios cubos de conocimiento.




Safe Creative #1009287453874

Primeros pasos con Python y MongoDB

Una de las mejores características de MongoDB es la multitud de drivers existentes para casi cualquier lenguaje de programación (ver Sección Drivers). Para los que amamos Python, tenemos un driver llamado pymongo, y que está soportado por 10gen, la empresa creadora de MongoDB. El site oficial de este driver lo encontramos en: http://api.mongodb.org/python/1.8.1%2B/index.html

Utilizar Python junto a MongoDB es muy sencillo, pues su sintaxis es muy similar a la de la consola mongo.

Instalación
La instalación de pymongo es sencilla. En Linux, procederemos a ejecutar el siguiente comando:

$ easy_install pymongo

O bien, descargamos el código fuente y lo instalamos desde la consola de Python:

$ git clone git://github.com/mongodb/mongo-python-driver.git pymongo
$ cd pymongo/
$ python setup.py install


Abrir conexión
La conexión se realiza de la siguiente manera:

>>> from pymongo import Connection
>>> conn = Connection() # Conexion local por defecto
>>> conn = Connection('miServidor', 30500) # Conexion remota a puerto 30500


Usar base de datos
Para obtener un objeto que referencia a la base de datos:

>>> db = conn.miBBDD # metodo 1
>>> db = conn['miBBDD'] # metodo 2



Usar una colección
Para obtener la colección con la que trabajar:

>>> coll = db.miColeccion # metodo 1
>>> coll = db['miColeccion'] # metodo 2



Documentos
Los documentos se mapean en Python como un diccionario:

>>> noticia = {"autor": "Rafael Hernamperez",
...   "cuerpo": "Python y MongoDB",
...   "etiquetas": ["Tutorial","Python","MongoDB"]}


Algunos tipos de datos especiales requieren de alguna librería específica, como datetime:

>>> import datetime
>>> noticia = {"autor": "Rafael Hernamperez",
...   "cuerpo": "Python y MongoDB",
...   "etiquetas": ["Tutorial","Python","MongoDB"],
...   "fecha": datetime.datetime.utcnow()}



Insertar documentos
Para insertar un documento:

>>> coll = db.noticias # Coleccion "noticias"
>>> coll.insert(noticia)



Recuperar un documento
Para recuperar un único documento simple (el primero):

>>> coll.find_one({"autor": "Rafael Hernamperez"})


Recuperar varios documentos
Para recuperar todos los documentos de una colección:

>>> for noticia in coll.find():
...    print noticia


Para recuperar todos los documentos (noticias, en este caso) de un autor concreto:

>>> for noticia in coll.find({"autor": "Rafael Hernamperez"})
...    print noticia



Contar documentos
Para contar todos los documentos de una colección:

>>> coll.count()

Para contar todos los documentos de un autor concreto:

>>> coll.find({"autor": "Rafael Hernamperez"}).count()


Consultas de rango
Recupera un determinado rango de documentos, delimitados por condiciones. En este caso, recupera aquellas noticias anteriores a una determinada fecha. El resultado se ordenará por autor:

>>> fecha = datetime.datetime(2010, 9, 28, 0, 0) # 2010/09/38 00:00h
... for noticia in coll.find({"fecha": {"$lt":fecha}}).sort(autor):
...    print noticia



Indexación
Para indexar la colección "noticias", por fecha (de la más reciente a la más antigua) y por autor (en orden alfabético):

>>> from pymongo import ASCENDING, DESCENDING
>>> coll.create_index([("fecha", DESCENDING), ("autor", ASCENDING)])

sábado, 25 de septiembre de 2010

Ctrl+alt+Supr

Divertida canción del Reno Renardo, que seguro te hará recordar buenos momentos y te hará sacar alguna risa. Recomiendo subir el volumen (primera barra en la parte superior):

viernes, 17 de septiembre de 2010

Libro recomendado: Informática profesional. Las reglas no escritas para triunfar en la empresa

Ha llegado a mis manos un libro muy interesante: "Informática profesional. Las reglas no escritas para triunfar en la empresa". Ha sido escrito por Roberto Canales Mora, director de la empresa Autentia y creador de la popular web Adictos al trabajo
Este libro da un repaso a nuestro gremio, aunque bien se puede aplicar a otros tipos de negocio. Es una sátira que levanta ampollas, dudas y asentimientos sobre nuestro mundillo, en tono serio y humorístico, acompañado de viñetas ilustrativas.

Desde hace años, tanto yo como otros amigos, queríamos escribir un libro como éste, pero la realidad, el tiempo y las ganas nos han limitado para escribir la primera línea. Pero Roberto ha vencido esta inercia y de forma muy inteligente y mordaz aborda cada uno de los aspectos del mundillo de la informática en las empresas.

Un libro que recomiendo y que nos hará disfrutar de horas de entretenimiento y de reflexión.

Enlace: http://www.starbook.es/libros/INFORMATICA-PROFESIONAL-LAS-REGLAS-NO-ESCRITAS-PARA-TRIUNFAR-EN-LA-EMPRESA/3337/978-84-92650-17-0/

lunes, 13 de septiembre de 2010

Programas interesantes: Geany

Le ha llegado el turno a Geany, un editor de textos muy especial, rápido y ligenero, heredado del mundo Linux y disponible también para Windows, gracias al uso de las librerías gráficas GTK2.
Para los que nos gusta programar, tenemos el inconveniente de tener varias IDE's para distintos lenguajes de programación, cosa que con Geany nos va a facilitar enormemente la tarea.

Por una parte, se puede elegir en qué lenguaje desarrollamos:
1) Lenguajes de programación: C, C++, C#, D, Ada, Assembler, Fortran, Haskell, Java, Pascal, etc.
2) Lenguajes de Script: ActionScript, Matlab, Perl, PHP, Python, Ruby, Tcl, etc.
3) Etiquetas: HTML, XML, CSS, etc.
4) Varios: configuración, CMake, LaTeX, SQL, etc.

Esta elección permite el autocompletado o las sugerencias para completar las instrucciones se adaptan a dicho lenguaje, amén también del coloreado de las palabras clave, la sintaxis y los bloques o estructuras de código, que pueden comprimirse o expandirse a voluntad.
También nos permite configurar las opciones de compilación o de ejecución de nuestros programas, mostrando los mensajes de error o de consola.

Por otro lado, también es posible indicar el tipo de codificación del texto: Unicode, 8859-x, IBM85x, UTF-x, etc.

Hay diversas vistas: símbolos (para navegar por variables y etiquetas), archivos abiertos, navegación por el sistema de archivos, filtrado navegación, mensajes (agrupados por estado, compilador, mensajes o borrador), etc.

Independientemente de la programación, Geany posee multitud de características de edición que lo hacen atractivo:
- Ajuste de línea
- Salto de línea automático
- Sangría automática
- Tipo de sangría (tabulaciones o espacios)
- Borrar espacios finales
- Reemplazar tabulaciones y/por espacios en blanco
- Inserción de comentarios en líneas
- Cambiar fuentes
- Margen para números de línea
- Margen para marcas
- Mostrar fin de línea
- Mostrar guías de sangría
- Mostrar espacios en blanco
- Zoom del texto (Ctrl+ y Ctrl-)
- Etc

Geany permite también configurar el editor a nuestros gustos y necesidades, de cuyas opciones no anda escaso.

Un detalle interesante es que es también multi-idioma, por lo que está disponible en castellano.

CONCLUSIONES

Geany es un editor indispensable, tanto si eres programador como si sólo necesitas textos informales. En el caso de programar, permite trabajar con una amplia gama de lenguajes de programación, añadiendo opciones de IDE al editor, como la compilación o la ejecución, así como también la gestión de proyectos, el autocompletado, la sintaxis, etc.

Como su nombre sugiere, es una genialidad, una pequeña maravilla que no debe faltar en nuestra "softwareteca".

Página oficial: http://www.geany.org

domingo, 12 de septiembre de 2010

¿Mac o no Mac? He ahí la cuestión

Hoy, por fin, tras una semana de líos, he podido entrar a una Apple Store a ver in situ ese maravilloso mundo de Apple. He de reconocer que la interfaz Apple me encanta, y de hecho, en mi Windows XP tengo instalado el Isso Pack con el mod de MacOS X, a pesar de los recursos que consume.

El mundo Apple no es nuevo para mi. Hace casi veinte años me inicié en el diseño gráfico con un Quadra II, dejando en mi un maravilloso recuerdo. Desde entonces he tenido la oportunidad de ver más ordenadores Apple, a través de compañeros, que alababan sus bondades.

He seguido a distancia la trayectoria y evolución de los productos Apple, quien ha contribuído a la historia informática con sus diseños y con un sistema operativo muy intuitivo, espectacular y sencillo, que junto a sus aplicaciones, "simplemente", funcionan.

Desde luego, Apple ha desatado pasiones y críticas, a veces justas y a veces exageradas. Por ello, desde ese punto intermedio entre la fiebre exacerbada de los apasionados usuarios del Mac y de los críticos incondicionales, me decidí a ver "in situ" ese fenómeno, en su tienda, rodeado de su ambiente y de sus acólitos.

Visité la Apple Store de Xanadú, en Arroyomolinos (Madrid). Lo primero que me impresionó fueron los dos gorilas privados (no eran los del centro comercial) apostados a la puerta, uno frente a otro, como los leones de las Cortes. La imagen que me dió fue la de entrar a un lugar privilegiado de la mafia, en la que no se admite ningún escándalo en contra. Las poses de los custodios eran muy estudiadas y muy sincronizadas. Ni una palabra, ni un comentario, ni una mirada de complicidad entre ellos. Eran todo unos profesionales, desde luego, e intimidaban lo suyo.

El interior era muy grande, con todo muy bien colocado y a distancias amplias, muy estudiadas para permitir el libre albedrío de la mucha gente que allí se agolpaba, todo muy a la vista. Allí estaban sus productos: Nano, iPod, iPhone 4, Mac Book Pro etc. Desde luego, Apple también es líder en marketing y en la ciencia de las ventas.

Tras curiosear sus ordenadores de sobremesa (que me encantaron) y portátiles, se nos acercó presto un "chaval" estudiante en la Universidad, con el entusiasmo contagioso del joven que ha visto cumplir su sueño y está trabajando en la compañía que crea los productos de los que está enamorado. "Se le notaba en la mirada que estaba enamorada". El trato fue muy respetuoso, aunque a veces alternaba el "usted" con el "tú".

Me hice pasar por tonto, como que era inexperto en ésto. Le comenté que andaba buscando un ordenador portátil, y que un amigo me recomendó el Mac Book Pro, y otro me recomendó un Dell. Ante mi indecisión, quería que me explicará qué bueno tenía su marca y por qué tanta diferencia de precio (más del doble). Titubeando, alabó a Dell como marca, y a favor de Apple comenzó diciendo que era "ecológico". Ante mi cara de estupefacción, aclaró que no utilizan mercurio ni ningún producto contaminante, y que las carcasas utilizaban aleaciones de aluminio, lo que proporcionaban una serie de cualidades realmente positivas. No obstante, eso no me convenció, y la disparatada diferencia de precio entre ambos equipos no estaba aún justificada.

Le dije que el uso que le iba a dar era para el trabajo (oficina, principalmente), así como también gestión y tratamiento de fotografías y de vídeo, así como iniciarme también en la creación de páginas web. Ante ello, empezó diciéndome que, además del Office de Microsoft,  tenían un programa que era mucho mejor que aquel (no recuerdo su nombre), ya que era mucho más sencillo de usar, y que ahí radicaba una de las principales diferencias de Apple. Puse cara extraña, diciéndole que tanto como yo como mis clientes, proveedores, amigos y familiares, utilizamos el Office de Microsoft, y que según me habían dicho amigos profesionales de la informática, éste era el paquete más utilizado, completo y funcional que existe. Ante ello, me comentó que el office de Apple era compatible con el de Microsoft, y que permite exportar a más formatos (como si ésta fuera su mejor característica, y por ende exclusiva y única de ellos). No le dí oportunidad a explicarse más, pero creo que dicho software era opcional y que había que pagar por él (ojalá esté equivocado).

Pasando a la fotografía, me fue directamente al Photoshop, y quería llevarme a la sección de software (al igual que con el Office). Estaba claro que hay que pagarlo aparte. Ante ello, le comenté que desde hacía un tiempo estaba usando Gimp y que me sentía muy a gusto con este programa. Disimulando, quiso engatusarme y ganarse mi simpatía, indicando que él también usaba en la Universidad este software, que era muy bueno, y que también me lo recomendaba, pues también había versión para el Mac. Esto fue peloteo, sin duda, para ganarse mi compra.

Después, para las páginas Web, me enseñó un software instalado en un Mac Book Pro, en el que me ilustró que hacer una página web era tan sencillo como usar una plantilla predefinida, introducir el texto o la imagen, y subirla a site. Muy básico, vamos. Le indiqué hacía unos meses ya estaba haciendo alguna cosilla con Dreamweaver. Esto le molestó, y se vió incómodo con ello. Le dije también que algún pinito con Flash también estaba haciendo. Ante ello, estaba intranquilo, y para cortar con ello lo antes posible y no dilatarlo, me dijo que en Mac también había una versión de los produtos Adobe, y quiso pasar a otra cosa.

Insistí un poco más en qué ofrecía Apple que justificara ese precio, dándole una oportunidad más para intentar convencerme. Siguió con que Apple trata a sus clientes con exclusividad, que son importantes para la compañía, y que le ofrece un servicio que durante un año, puede elegir cualquier día para acercarse a la Apple Store para tratar algún software o cualquier cosa de sus productos, y en exclusividad se le enseña a usarlo. El servicio costaba (creo recordar), unos 99 euros al año. Vamos, que no viene incluído, si no que se paga aparte. Como se dió cuenta del error, intentó nuevamente convencerme de que el Mac era super sencillo, super elegante, que molaba, que era algo exclusivo y que si lo tenía yo era también exclusivo y superior al resto de la gente (esto último es una ironía mía), que podía hacer todas las cosas que yo necesitaba, blablabla... Yo le dije: "bueno, todo eso ya lo estoy haciendo ahora con mi viejo PC y con Windows XP". Ante ello, sacó una última bala: las actualizaciones del Mac no afectan al rendimiento de la máquina, como ocurre con Windows y con Linux, y que con un Mac no voy a tener que estar actualizando como con otras marcas, que podría estar usando mi Mac durante una década sin tener cambiar.

Ante este último comentario podría haberle replicado, pero hubiera delatado que mi ignorancia era fingida. Hice un asentimiento como que me lo había creído. Podría haberle dicho que desde 2001 ha habido 7 versiones de MacOS X (casi una por año (fuente: http://es.wikipedia.org/wiki/Mac_OS_X)), pero eso sería cortar tan interesante conversación.

Volví nuevamente a atacar diciendo que todo eso ya lo hacía con un PC, y que el Dell, según había visto en la documentación técnica, tenía un microprocesador Intel Core i7 a 2.8Ghz (modelo Dell Studio 15), y que el resto de características (4GB memoria, 500GB disco duro) eran idénticas, a excepción de la tarjeta gráfica, ya que el Mac usa una nVidia, y el Dell usa una ATI Radeon. El Dell cuesta 849 euros, frente a los 1932 euros del Mac Book Pro, que además tiene un microprocesador de 2,66Ghz (inferior). Ante ésto lo desarmé por completo. No sabía qué responderme. Intenté otra vez darle otra oportunidad, diciéndole que estaba empezando a mirar ambos equipos, y que el primero que había visto era el Apple. Queriendo ser amable me dijo que si iba a El Corte Inglés, que estaba en el propio centro comercial Xanadú podría informarme sobre el Dell, y que si el Mac me gustaba más, que estaría encantado de volver a atenderme, bla bla bla.


CONCLUSIONES

Salí de la Apple Store con otra visión sobre los Mac. Sigo respetándolos, y respeto el tipo de negocio de Apple. En mi caso, que desde hace algunos meses quería comprarme un MacBook Pro de casi 2000 euros, salí convencido de no querer comprármelo. El dinero me cuesta mucho ganarlo, y me gusta que mi inversión sera productiva y que tenga un valor adicional: que sea una buena inversión. Apple monta ordenadores basados en Intel, como cualquier PC (antiguamente eran Motorola, y creo recordar que llegaron a usar arquitecturas PowerPC). El microprocesador (el motor del ordenador) del Apple es inferior al del Dell. De la tarjeta gráfica no puedo opinar pues no tengo tanto conocimiento como para poder comparar, pero para un uso como el que indiqué, ambos equipos están sobrados.

¿Por qué una diferencia de más de 1000 euros (más del doble)? ¿Dónde está el valor añadido del Apple? ¿La calidad? Bueno, Dell fue durante muchos años la líder en ventas de equipos portátiles, y a día de hoy, sigue vendiendo más portátiles que la "manzana". La calidad del Dell es indiscutible, y he trabajado con estos equipos en alguna empresa. Están muy preparados para un uso muy frecuente y ante muchos escenarios de estrés y condiciones de dureza.

Puse como ejemplo el Dell, porque fue el primer ordenador que me vino a la mente. Estoy seguro que en Toshiba, Sony, Acer, Lenovo u otras marcas produzcan ordenadores portátiles de características muy similares y superiores, con un precio similar al Dell. Apple seguiría estando en desventaja en cuanto a características técnicas, pero a un precio muy superior.

Los argumentos más convincentes y apasionados del vendedor eran la experiencia del usuario, debido a la interfaz, a lo molón de los efectos, las fuentes, el diseño, etc. Pero no me convence gastarme más del doble de dinero sólo en maquillaje, en apariencia, en algo agradable a la vista. Ese maquillaje se puede añadir "gratis" a tu ordenador. En mi Windows XP utilicé, como dije anteriormente, el Isso Pack. No llega a ser un Mac, pero se le acerca bastante. En Windows hay varias propuestas similares con efectos que pueden ser incluso más exclusivas que el Aqua, el Glass o el Aero. En Linux, usando Compiz Fusion se consiguen efectos, en mi humilde opinión, tan buenas o mejores que las de Mac.

Un argumento que esgrime Apple es que sus Mac no tienen problemas de configuración, que cuando lo desembalas ya está listo para usar, y que el usuario no se tiene que preocupar. Yo me preocuparía, pues los modelos de Mac vienen con una configuración que no se puede tocar, y que el sistema operativo viene a medida para esta configuración. No puedes cambiar nada, y yo, por lo menos, necesito la libertad de poder cambiar esa configuración acorde a mis necesidades o a las necesidades de quien me pide consejo. Un ordenador cerrado y "exclusivo" reporta también problemas de libertad. Si el día de mañana quiero ponerle la memoria de la marca que yo quiero, o cambiarle tal o cual dispositivo, también he de tener libertad. Los Mac, además limitan estas libertades con alguna conexión también exclusiva de Apple, cuando me gustaría disfrutar de conexiones estándar en ese sentido.

El sistema operativo es cerrado, a pesar de tener su origen en Unix y estar basado en POSIX. ¿Por qué no puedo disponer de un sistema operativo abierto, que me dé la libertad de poder acceder a su código, y tener la confianza de que millones de usuarios de todo el mundo conocen el sistema operativo, trabajan en él, lo mejoran, y no tiene secretos como puertas traseras o controles que invadan mi privacidad?.

En torno a este sistema exclusivo y cerrado, y la apariencia de que un cliente Mac es un cliente exclusivo, hay aplicaciones que han de tener el beneplácito de Apple. Los programadores no tiene libertad absoluta sobre sus programas, y han de cumplir unos requisitos medievales para poder vender sus productos para Mac, para iPhone u otros productos de la manzana. Apple tiene control sobre estos productos, y limita tanto el desarrollo del software como las libertades de los programadores y de los usuarios. Apple juega muy bien con la psicología del comprador, haciéndole sentir único, exclusivo y diferente al resto, cuando en realidad, millones de usuario son igual qué éste.

Me gusta mucho el Mac. Su diseño enamora, y su sistema operativo es muy agradable y espectacular. Esa imagen, lo primero que ve un usuario, es lo que le convence. Para los que somos perros viejos en ésto, sería un caprichito tener un Mac, pero analizando un poco tanto la máquina como lo que se puede hacer, no se está dando valor añadido. Todo es maquillaje y apariencia, un disfraz. Son buenas máquinas, pero se paga por ellas más del doble sólo por el diseño, no por valor añadido, calidad, o que pueda hacer cosas que otras máquinas no puedan hacer. ¿Pagarías 50000 euros por un coche que cuesta 25000, y cuyas diferencias reales son únicamente una carrocería exterior deportiva y un interior digital?

miércoles, 1 de septiembre de 2010

Las mejores fuentes para programar

El arte de la programación no se limita únicamente al ámbito propio de programar, si no que abarca también a elementos externos pero directos, tales como el IDE de programación o incluso la fuente tipográfica con la que se programa. De hecho, utilizar una fuente atractiva evita el tedio y la monotonía.

He recopilado una serie de fuentes con las que he trabajado o suelo trabajar. Particularmente, aunque me gustan todas, las que más me motivan son Monaco (la utilizada en MacOS X), Anonymous, Anonymous Pro y Droid Sans Mono (utilidada en Android). Pero para gustos los colores.

El sistema operativo puede tener alguna de estas fuentes, pero si te falta alguna, puedes conseguirla en la siguiene URL: http://www.fontsquirrel.com/fonts/list/style/Monospaced, o para Anonymous Pro en http://www.ms-studio.com/FontSales/anonymouspro.html

Por último, dos detalles:
1) Recomiendo hacer click sobre la imagen de ejemplo, para apreciar la fuente en su tamaño real (aquí aparece redimensionada).
2) El código es incorrecto (falta la palabra clave class para definir la clase "HolaMundo"). Lo que trata este post no es el código, si no la fuente.


Andale Mono

Anonymous

Anonymous Pro

Aurelent Sans Mono

Dejavu Sans

Dejavu Sans Mono

Droid Sans Mono

Envy Code R

Inconsolata

Lucida Console

Monaco

Monospace Typewriter

Not Courier Sans

ProFont