Brendon Boshell posteó en su web-site una demo de código JavaScript que permite obtener el historial (o al menos una buena parte) de los sitios visitados por el usuario. Esto puede servir para armar un perfil con los gustos del usuario y después generar, por ejemplo, propagandas que se adapten a ellos. Esta grave invasión a la privacidad bien podría clasificarse de Spyware.
Para el que no lo tenga claro, los web-sites "no deberían" poder leer el historial de navegación, pero como lo ha demostrado Brendon en esta ocasión y Jeremiah Grossman en el pasado, claramente lo pueden hacer.
Ahora, si están pensando "HA, yo tengo deshabilitado java script en sites no confiables así que esto no me afecta!"... bueno, piensen de nuevo, porque muchos de los lectores de la página dijeron lo mismo, así que Brendon se tomó la molestia de demostrarles lo contrario. Con un nuevo demo probó que se puede hacer lo mismo, pero utilizando sólo iframes, con lo que no es necesario utilizar Java Script.
En este momento seguro se estarán preguntando, cómo lo hace? (yo me volví loco por saberlo apenas lo vi en funcionamiento). Contrariamente a lo que muchos se imaginarían, éste no es un exploit de algún browser. Las herramientas utilizadas aquí son la cache del historial del browser más CSS (Ja, suena loco hackear con CSS) más una buena lista de direcciones web.
Para el caso de la demo con Java Script, el funcionamiento es el siguiente:
- cuando la página se carga, se descarga una lista con muchas (si muchas) direcciones web (entre las cuales estarán google.com, facebook.com, etc) la cual mantiene oculta en un iframe oculto (osea, el usuario no ve nada de esto).
- En los CSS tiene definido el atributo "a:visited{ font-size: 60px;}" (aunque se podría usar cualquier otro).
- Para cada site listado, a través del código JavaScript verifica si el tamaño del font es 60px. Si el tamaño es éste, quiere decir que la página ha sido visitada en el pasado. Esto lo sabe gracias al atributo CSS a:visited que mencioné arriba, ya que una dirección que no ha sido visitada, no tendrá el font tamaño 60px.
Como ven, es como les advertí, muy pero muy simple. Pueden ver parte del código en http://www.making-the-web.com/2009/04/12/mass-browser-history-sniffing-with-javascript/. Es una pena que Brendon no comparta todo el código, y que la pequeña parte que comparte, lo hace con Copyright...
Ahora veamos el caso que más me gustó, utilizando sólo iframes. Este me llevó bastante tiempo entenderlo porque Brendon no comparte nada del código y la explicación que da es de sólo 4 líneas...
Luego de leer un poco y utilizar bastante la lógica, logré crear un par de scripts en php que hacen el trabajo. Si bien el sistema es básicamente el mismo, éste varía un poco dado que no podemos usar programas del lado del cliente. El sistema que creé yo es un poco distinto al de Brendon, pero hace lo mismo. La cosa va así:
- Tenemos un script principal que cuenta con un iframe que se auto refresca cada 3 segundos (podemos usar alguna función como header("Refresh: 3; url=list.php?id=algun_numero"); en php).
- En el iframe contamos con el atributo CSS "a:visited{ background: url(logger.php?id=algun_numero); }". En éste caso si o sí necesitamos de un atributo que necesite contactar al servidor porque no tenemos nada corriendo del lado del cliente, por eso utilizamos background con la función url() que llama al script que logueará si el link identificado por algun_numero fué visitado o no.
- Este iframe cuenta con un sólo link. Se podría contar con muchos links al mismo tiempo y varios atributos a:visited con clases definidas para distinguir entre links, pero para mantener el ejemplo sencillo, dejé un solo link.
- Cuando el iframe se carga, éste cargará el atributo url(logger.php?id=algun_numero) si y solo sí el link que tenemos dentro del iframe fué visitado. Gracias a esto, del lado del servidor, sabemos que si el script logger.php se ejecuta es porque el link identificado con algun_numero fué visitado.
- En cada recarga automática del iframe testeamos un link distinto y así armamos la base de datos con los sites que el usuario visitó.
Si bien este parece un poco más rebuscado, igual es increíblemente sencillo para los buenos resultados que nos da.
Ambos scripts son simples, pero se pueden optimizar para tener mayor y mejor funcionalidad, como por ejemplo para cada página que detectamos como visitada, buscar las páginas relacionadas y buscar con ellas también.
Cómo nos deshacemos del problema? por una parte podemos deshabilitar java script en los sitios que no confiamos (a veces ni en los sitios confiables se puede estar seguro debido al XSS). Por otra parte, podríamos configurar que el browser no guarde historial. Por último podemos bloquear los iframes.
Para deshabilitar Java Script y los iframes, en firefox, podemos usar el add-on NoScript. Por otra parte, los browsers cuentan en su configuración con la posibilidad de que, si el usuario lo desea, no almacenen historial.
Así que ya saben, si ven propagandas en sitios web que se acercan demasiado a sus gustos personales, empiecen a desconfiar =D
Cabe destacar que el mapa se creó utilizando sólo herramientas de software libre (Inkscape y GIMP).
Es una pena que no se actualice desde el 2006 porque la verdad que está muy bueno.
Juro que es verdad, al menos al día de hoy (15/06/09) consultando desde Argentina, los resultados siguen siendo los que muestro a continuación, compruebenlo ustedes mismos.
Si por ejemplo, buscamos la palabra "ladrones" en Bing, obtenemos lo siguiente:
Ahora, si buscamos la palabra "chorros", podemos ver algo como esto:

Mala suerte para el gobierno y para Arnet, parece que la gente de Microsoft no tiene pelos en la lengua a la hora de expresar sus opiniones =P
NOTA: que bien que anda Bing!, menos mal que sigue existiendo google...
Porque al igual que todos estoy re podrido del SPAM (de todo tipo), en éste artículo describiré cómo combatirlo en los e-mails. Antes de empezar, dejo una pequeña definición.
Qué es SPAM?
Y si, alguno podría preguntarse a qué se denomina SPAM. email-SPAM (de ahora en más sólo SPAM) se denomina a todo e-mail no solicitado y que es enviado en masa (muchos receptores). Estos e-mails pueden tener distintas finalidades, como ser, propaganda, phishing, sólo molestar, saturar servidores de e-mail (el clásico Hotmail se Cierra!), esparcir ideologías políticas, religiosas, etc.
Otra forma bien conocida de SPAM es la vista en foros, blogs, fotologs, etc, donde dejan comentarios con sus propagandas.
Por supuesto existen formas de SPAM fuera de internet, como los ya clásicos y ULTRA-molestos mensajes de las compañías de celular con ofertas que nunca nos convienen o premios que nunca ganaremos.
También se puede considerar SPAM a los llamados telefónicos con ofertas de servicios, el reparto de revistas con propagandas, o cartas con propagandas.
Como ven, en la vida estamos saturados de SPAM, algunos quizás hasta sueñan con SPAM.
Cómo saben mi dirección?
Otra pregunta válida es, de dónde sacaron mi dirección de correo???... si se preguntan eso, piensen de nuevo...
Hay muchas formas en las que un spammer puede obtener una dirección. Entre las más comunes tenemos:
- sitios web: si se registraron en una página no muy santa y dejaron el mail, están jodidos. Si tienen un blog, fotolog, red social, página propia, etc, que puede ser accedida por cualquiera y dejaron el mail, están jodidos.
- foros: dejar el e-mail visible por visitantes de un foro es un error fatal.
- salas de chat, grupos de noticias, etc: sucede lo mismo ya mencionado.
- malware: si se infectaron con un virus, éste puede recolectar direcciones de mail que utilicen y las de toooodos los contactos que tengan. Es decir, aunque seamos extra precavidos, el spam nos puede llegar por culpa de un amigo que se infectó.
- servidores de mail mal configurados: si el servidor que utilizan está mal configurado, éste puede enviar SPAM a todas las direcciones que maneja.
- diccionarios: el spammer utiliza diccionarios para crear direcciones de e-mail potencialmente válidas y envía SPAM a ellas. Si tu nombre de usuario forma parte de un diccionario, caes dentro de esta categoría.
- otras: seguro hay otras formas que estoy olvidando citar.
Cómo me defiendo? (usuario final)
Como usuario final lo que podemos hacer es:
- elegir un servidor de e-mail de confianza que cuente con buenos mecanismos antis-spamming, anti-virus, y soporte continuo para solucionar problemas de configuración y vulnerabilidades.
- no dejar nuestra dirección de e-mail en sitios públicos (los mencionados sitios-web, blogs, foros, etc), esto incluye lugares que no estén en la red, como por ejemplo dejar el e-mail a un promotor de la calle.
- utilizar e-mails SPAM-only para el caso en que registrarnos en alguna página requiera dejar un e-mail a donde luego nos envían una confirmación que debemos contestar. Con SPAM-only me refiero a una cuenta de e-mail que no utilicemos nunca, sino que la tengamos sólo para utilizarla en estos casos.
- no contestar a e-mails que son SPAM, lo único que logran con esto es que el spammer sepa que TU dirección de e-mail es válida, colocándola entre los grandes candidatos a enviar más SPAM.
- ayudar a los administradores de los servidores reportando e-mails que son spam.
- instalar una aplicación anti-spam que cuente con técnicas de filtrado por checksum, soporte RDL, filtrado por reglas, filtros Bayesian, las cuales describiré a continuación.
Cómo me defiendo? (administrador del servidor de e-mail)
El administrador del servidor puede hacer varias cosas para limitar la propagación de SPAM. Tal vez la más conocida es utilizar un antispammer (programa dedicado que cuenta con varias técnicas anti-spamming). El problema está en la complejidad del antispammer y el trade-off "eliminar todo el spam" Vs "saturación de recursos" Vs "falsos positivos" (mails válidos rechazados como SPAM por falla en la lógica).
Entre los métodos para lidiar con el SPAM (algunas comúnmente encontrados en los anti-spams), contamos con los siguientes:
Filtrado por Checksum
Se mantiene una base de datos con checksums de spams conocidos y se revisan los mails entrantes buscando coincidencias, si el checksum se encuentra en el mensaje, éste se clasifica como spam. El checksum se calcula utilizando partes del e-mail que no varían. El método es bastante efectivo dado que muchos de los mensajes no varían o varían muy poco. Esta función es igual a la realizada por los antivirus.
Si bien el sistema es bastante efectivo, es bastante eludible dado que los spammers pueden insertar caracteres invisibles (osea, no mostrables) en el medio de los mensajes y así evadir el anti-spam.
DNS Black/Blackholes Lists (DNSBL), también conocidas como Real-Time Black Lists (RBL)
Se utilizan black lists con IPs o DNSs de spammers conocidos de forma que si un e-
mail recibido proviene de una dirección conocida como spammer, entonces el e-mail trata como spam.El sistema funciona de la siguiente manera. Se monta un servidor de DNS que sirve como servidor de black list. Dicho servidor debe tener asignada una dirección de DNS que puede ser interna o pública, dependiendo desde donde se acceda (por ej: dnsbl.mired.com). Cuando un servidor de mail recibe un e-mail, este extrae la dirección del emisor (por ej: 192.168.12.133), la revierte (133.12.168.192), le agrega la dirección DNS del servidor DNSBL (133.12.168.192.dnsbl.mired.com) y hace una resolución de DNS utilizando la dirección obtenida. Si la dirección existe (el servidor contesta con alguna dirección IP del rango 127.0.0.0/8), quiere decir que el emisor es un spammer (está listado en la black list). Opcionalmente el servidor de mail puede consultar la razón por la que dicho emisor está en la black list (consultando el registro TXT).
Existen servidores que permiten consultar sus black-lists en busca de spammers. En general estos servicios permiten hasta un cierto número de consultas gratis y si necesitamos de un volumen mayor, tenemos que pagar por el servicio. Algunos de los servicios más conocidos, que además cuentan con consultas on-line, son:
Spamhaus
SORBS
Spamcop
Spamrats
Es interesante el caso de mxtoolbox que realiza la búsqueda sobre 147 DNSBL y nos devuelve el resultado obtenido en cada uno.
Por otra parte, si queremos montar nuestro propio servidor RBL en Linux, podemos seguir los pasos citados en http://www.blue-quartz.com/rbl/
En la página nemx.com citan las características de los RBL y explican brevemente cada una. El informe es algo viejo (algunos de los links en el ya no sirven), pero la descripción general se sigue aplicando.
En http://www.rfc-ignorant.org/how_to_domain.php describen cómo agregar servidores DNSBL en los servidores de mail más conocidos (postfix, exim, sendmail, qmail, etc)
Las black lists se generan utilizando spamtraps, direcciones de e-mail ocultas que sólo los spammers pueden encontrar (como por ejemplo, ocultas en el código HTML, no visibles para el usuario). Todo e-mail que llegue a este mail, es SPAM. Los Spamtraps pueden considerarse honeytokens debido a su naturaleza. También se utiliza el feedback de usuarios que reportan spam. La direcciones que son reportadas por varios usuarios como SPAM son grandes candidatas a ser agregadas en la black list.
Para limitar el número de falsos positivos, las black lists suelen utilizarse con white lists, o listas de direcciones conocidas como buenas. Si un e-mail proviene de una dirección listada en una white list, entonces se deja pasar.
En wiki pueden encontrar una definición más completa sobre los DNSBL
Verificación DNS inversa (registro PTR)
Tal vez uno de los métodos más efectivos, y de los más usados, es hacer una resolución inversa de DNS. Una resolución inversa de DNS es tomar una IP y consultar al servidor DNS por el DNS asociado. De esta forma si la dirección mail.mired.com resuelve a 192.168.1.1, entonces al intentar una resolución inversa de 192.168.1.1 debería resolver a mail.mired.com.
Dado que la mayoría de los spammers no suelen tener registrada la resolución inversa de la IP que utilizan para enviar SPAM, si por cada e-mail recibido requerimos que la dirección IP mapee a la dirección DNS de donde dice venir, evitaremos un altísimo número de e-mails SPAM.
Filtrado basado en reglas
Se utilizan reglas basadas en listas de palabras o expresiones regulares que no están permitidas en los mensajes, para tratar como SPAM los e-mails que las cumplan. De esta forma se puede rechazar e-mails que contengan las palabras viagra, sexo, porno, etc.
El problema con estas reglas son los falsos positivos, el tiempo que lleva el análisis y que los spammers cambian continuamente las frases y la forma de deletrear las palabras, además de incluir caracteres no visibles para el usuario, pero sí para el filtro. Variaciones como sex0, s3xo, 5exo, sexo (visible como sexo si el mail está formateado en HTML) pueden ser difíciles de detectar. La cantidad de combinaciones posibles es gigantesca e incluirlas todas en la revisión consume demasiados recursos.
Por otra parte, muchos mensajes vienen en formato de imagen jpg, png, etc, de forma que estos filtros no los detectarían.
Otra forma de filtro es el filtrado de headers. La mayoría de los spammers cambian los headers de los mensajes para que parezcan provenir de otros autores, para que parezcan más reales. Estas modificaciones son fácilmente detectables y los mails pueden marcarse como spam.
Filtros Bayesian (también conocidos como filtros de estadística de contenido)
Los filtros Bayesian se basan en estadísticas y aprenden a detectar spam a partir del entrenamiento del usuario. Para cada e-mail recibido, el usuario debe indicarle al sistema si es spam o no. A partir de las palabras incluidas en los mensajes, el filtro crea bases de datos conteniendo palabras que suelen estar en e-mails válidos y palabras que suelen estar en e-mails que son spam.
Cuando el filtro tiene una buena base de datos formada puede distinguir correctamente cuáles palabras pertenecen a cada categoría y decidir si clasificar un e-mail como spam o no. La desición la realiza mediante el análisis de probabilidad computado para todas las palabras incluídas en cada e-mail. Si el total supera un umbral, el e-mail se califica como spam.
Todo esto tiene un fundamento matemático y pueden leer más sobre ello en http://en.wikipedia.org/wiki/Bayesian_spam_filtering
También pueden encontrar una brebe introducción a los filtros Bayesian en http://www.spam-site.com/bayesian-spam-filter.shtml
Verificación SMTP por llamado inverso
Como la mayoría de los spammers utilizan una dirección "From" inválida, una forma de detectar spam es haciendo que nuestro servidor intente conectarse al servidor de mail desde donde supuestamente viene el e-mail. Si la dirección es inválida, se detectará en el intento de conexión y el mensaje puede marcarse como spam.
Forzar el cumplimiento de estándares RFC
Dado que la mayoría de los spammers utilizan soft mal configurado, o sobre el cual no tienen control para enviar los e-mails, muchos de los emisores no cumplen con estándares RFC. Una forma de evitar spam es bloqueando todo e-mail que no es enviado siguiendo dichos estándares. Algunas de las restricciones impuestas son greeting delay, greylists, HELO/EHLO checking, Invalid pipelining, Nolisting, Quit detection.
SPAM en números
En http://barracudacentral.org/ ofrecen gráficas sobre spamming, como el origen, el tipo de contenido y la cantidad de spam recibida en los últimos días. También mantienen una lista negra que se puede consultar para saber si un IP está listado y podemos reportar contenidos de spam. Además ofrece datos de otros malwares.
Como se puede observar, cada dos días se bloquean casi 2 mil millones de e-mails con spam!. Sólo el 6% de los e-mails son aceptados como buenos. El mayor productor de SPAM es USA, seguido por nuestros vecinos brasileros y en 3er lugar los rusos.
A continuación les dejo los gráficos con la distribución del spam en categorías, y también una tabla con los e-mails procesados en los últimos dos días:
Referencias
Pueden encontrar las técnicas anti-spamming con un poco más de detalle en http://en.wikipedia.org/wiki/Anti-spam_techniques_(e-mail) y en http://stason.org/articles/technology/email/junk-mail/index.html en donde incluyen algunas más. En http://www.spam-site.com/anti-spam-techniques.shtml y http://wiki.asrg.sp.am/wiki/Taxonomy_of_anti-spam_techniques también ofrecen una breve introducción a las técnicas más conocidas.
Por supuesto, también es interesante el artículo de wiki sobre SPAM: http://en.wikipedia.org/wiki/E-mail_spam
Por último, dejo la dirección de donde obtuve la imagen para éste artículo: http://www.knowtebook.com/anti-spam-guide-fuer-webmaster-549.htm
En 1973 fue reescrito en C, lenguaje ideado para la programación de sistemas operativos y creado por el mismo Dennis Ritchie. Esto le sirvió a Unix para ser portado a otras arquitecturas.
La historia de Unix es bastante más larga y parte de ella puede seguirse en varios sites, incluídos:
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9133628, http://www.unix.org/what_is_unix/history_timeline.html y http://en.wikipedia.org/wiki/Unix
Me encantó la cita que encontré en el artículo de unix.org con las palabras de Dennis Ritchie y Ken Thompson en 1972 :
El usuario menos conocedor seguro conozca más de un sistema tipo Unix, entre los cuales se pueden citar Linux, Solaris, *BSD, e incluso MacOS (aunque no lo parezca)....the number of UNIX installations has grown to 10, with more expected...
Una interesante línea de tiempo que encontré googleando es
Feliz Cumple Unix!
Como dije anteriormente en Popularidad de lenguajes de programación Python es un lenguaje que viene pisando fuerte entre los desarrolladores. Desgraciadamente no pude adentrarme demasiado en el universo de Python, pero lo poco que vi, simplemente me encantó. Es realmente como dicen, fácil de aprender y el código fácil de seguir, además programar algo interesante lleva tan solo unas pocas líneas.La cantidad de librerías existentes es impresionante. Existen librerías para todo, e incluso en muchos casos (como en el caso de GUIs) existe más de una opción para elegir (hablando de librerías GUIs tenemos QT, GTK, WxWidgets, Tcl/Tk, y otras).
Como todo lenguaje moderno, Python es orientado a objetos, con todo lo que esto significa: herencia, manejo de excepciones, polimorfismo, etc.
Además Python es multi plataforma (como la mayoría de los lenguajes interpretados), a menos claro que utilicemos librerías específicas de un sistema operativo.
Bueno, dejo de lado la introducción y paso al motivo del post, los links:
Guía básica para pensar como un informático - Aprender con Python. Esta es una guía muy completa donde se introduce el lenguaje, con su estructura e información sobre cómo usar los tipos básicos (strings, diccionarios, tuplas, etc) así como también la orientación a objetos.
Guía de aprendizaje de Python (pdf). Otra interesante guía donde se introduce el lenguaje con sus herramientas y estructuras básicas.
Inmersión en Python. Libro muy completo que cubre desde la instalación hasta el uso de python como procesador HTML, XML, servicios HTTP y SOAP, explicando, por supuesto, las estructuras básicas y el manejo de objetos.
Python library reference. Completísima descripción que cubre la mayoría de las librerias improtántes que existen para python. Indispensable a la hora de programar cualquier cosa, sin dudas un "Must Read".
PyGTK: GTK+ for Python. Ni vale la pena que diga de qué trata el link, básicamente nos explica como crear programas usando las librerías GTK+.
GUI programming with python: QT Edition. Manual que describe como crear utilizar QT en programas hechos en python.
PyQT v4 reference GUI. Idem anterior, aunque tal vez menos completo.
PyQT's Classes. Listado de todas las clases disponibles para programar con QT, con una descripción de cada una. Excelente.
PyQT Tutorial. Tutorial simple sobre como crear una interfaz con QT y Python.
Python también cuenta con IDEs que facilitan la creación de programas. Entre los más conocidos están SPE e IDLE, aunque también se puede utilizar el multifacético Eclipse con algún plugin especial para python.
Como ven, Python es excelente, vale realmente la pena darle una oportunidad. En el mundo del soft libre se utiliza muchísimo, sólo basta mirar un poco sobre los programas q utilizamos a diario para darnos cuenta.
En fin, espero que les sea útil.
Lo interesante es que esta imagen viene impresa en tazas que pueden adquirir por unos 13 dolares en http://nostarch.com/mug.htm (si alguien quiere, me puede regalar una =D )

Con esto inauguro la sección shortcuts, donde iré colocando simples ayuda memoria, cosas que debemos tener siempre a mano.
Esto mismo lo he ido publicando en http://www.linuxespanol.com a medida que iban surgiendo.
Espero que le solucione la vida a más de uno antes de frustrarse y dejar de usar Linux por un simple error.
-----------------------------------------------------------------------
Problema:
Al intentar iniciar el sistema, cuando se carga el filesystem, este indica el error:
Error 16: Inconsistent Filesystem Structurey se queda detenido ahi.
Solución:
Entrar con un live-cd (ubuntu, knoppix, etc), abrir un terminal y ejecutar el comando:
#fsck /dev/sda1 (/dev/sda1 es donde se mapea la particion, ajustenlo a su particion).
Problema:
Al iniciar el sistema, aparece el siguiente error:
I/O Error reading swsusp image
Solución:
Este error nos indica que hay un error con la swap, puede que no tengamos una partición dedicada a la swap o que la partición se corrompió por alguna razón.
Para poder iniciar el sistema igual, entrar con un live cd y modificar la entrada de grub (la del sistema que quieren iniciar). En la línea que dice:
kernel /boot/vmlinux-algo root=/dev/algo [opciones]agregar la opcion noresume, esto es, la linea debe quedar:
kernel /boot/vmlinux-algo root=/dev/algo [opciones] noresumeGracias a esto se puede iniciar el sistema sin swap, una vez que inician el sistema pueden buscar la forma de solucionar el problema de la swap, como por ejemplo, creando una swap nueva.
Problema:
Se corrompió la tabla de particiones y no inicia el sistema, o bien no pueden acceder a alguna partición.
Solución:
Iniciar el sistema con un live-cd que contenga el programa "testdisk", systemRescueCD es uno de ellos.
Una vez que iniciaron el sistema con un live-cd, ejecutar el comando testdisk al disco donde se encuentra el problema de las particiones. Seguir los pasos del testdisk y arreglar los problemas encontrados.
Problema:
Tienen una maquina con puerto serie para el mouse y el sistema de ventanas (X11) no les reconoce el mouse.
Solición:
En general van a tener las siguientes lineas en el xorg.conf:
Section "InputDevice"En la opción "Device" "/dev/input/mice" cambiar el "/dev/input/mice" por /dev/ttyS0 (o ttyS1, o ttyS2, dependiendo del com que este usando su mouse). Y en la opcion "Protocol" "ImPS/2", cambien el "ImPS/2" por "Microsoft" (si, suena feo, pero es ese el protocolo).
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Para resumir, la seccion deberia quedar asi:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/ttyS0"
Option "Protocol" "Microsoft"
Option "Emulate3Buttons" "true"
EndSection
Problema:
Al arrancar el sistema se obtiene el siguiente error:
Could not stat the resume device file (el dispostivo)Dado a que si presionamos Enter el sistema carga igual, lo que hay que hacer, si tienen debian o algún derivado, cuando inician el sistema es ejecutar:
#dpkg-reconfigure initramfs-tools
#dpkg-reconfigure initramfs-tools -u
Problema:
Al intentar cambiar el tema (theme) de kdm se obtiene el siguiente error:
Override files found, selected theme will not have effect
Solución:
Si existe algún archivo en /etc/default/kdm.d/ entonces kdmtheme no nos permite cambiar el theme. Lo que se debe hacer es borrar o mover cualquier archivo que se encuentre en /etc/default/kdm.d/
Problema:
Al intentar comprimir un archivo desde konqueror con el programa ark, este ultimo muestra una barra de progreso pero el archivo nunca se comprime y la barra de progreso nunca desaparece.
Solución:
Hay un problema de compatibilidad entre ark y el KIO Slave system, por lo que ark no encuentra el archivo que debe comprimir. Para poder comprimir el archivo se debe cambiar la ruta en konqueror de system:/media/sd* a la ruta absoluta del archivo, como puede ser /media/datos.
No es la solución óptima, pero sirve hasta que encuentre una mejor, dado que hay muchos reportes de este bug pero no encontré otra solución.
Problema
Al iniciar, el kernel nos indica:
Volume group "VolGroup00" not found
Unable to access resume device (/dev/VolGroup00/LogVol00)
Solución
Este problema se puede deber a varias razones, una es que intentaron actualizar el volumen lógico agregando algún PV (volumen físico), o hicieron algún otro cambio, como agregar memoria.
En estos casos (no siempre funciona) el error se puede solucionar arrancando con un livecd y ejecutando:
#vgreduce --removemissing VolGroup00
Otra posible solución es renombrar el grupo de volúmenes ejecutando
#vgrename nombre_viejo nombre_nuevoUna vez que hagan esto, tendrán que modificar las entradas correspondientes en /etc/fstab, cambiando en nombre viejo por el nuevo.
Otra posible razón es que instalaron el sistema en una computadora y luego migraron el disco a otra computadora. En este caso el problema es que el kernel debe reconocer el nuevo controlador del disco para poder cargar los volúmenes lógicos, por lo que se debe crear un nuevo initrd.
Para esto, iniciamos con un livecd, montamos la raíz en algún lugar como /mnt/linux (para esto tal vez primero se deba activar los volúmenes lógicos con #vgchange -ay, y usar los dispositivos /dev/VolGroup00/LogVol00 o similares).
Una vez que montamos el sistema, hay que cambiar la raíz con #chroot /mnt/linux
Ahora que estamos en el nuevo árbol creamos el nuevo initrd con: #mkinitrd /boot/initrd-nuevo.img version-del-kernel (por ejemplo 2.6.18, pueden fijarse en /boot/grub/menu.lst para saber la versión).
Ya teniendo el initrd hay que modificar el grub para que lea este nuevo initrd, para esto editen /boot/grub/menu.lst y agreguen una nueva entrada o bien modifiquen una ya existente, poniendo en la opción initrd el nuevo initrd.
Un término que viene pegando fuerte en la red es el de cloud computing. Hace tiempo vengo viendo comentarios sobre esta nueva forma de servicio, y últimamente veo como más empresas se van sumando al tren.Qué es?
Cloud computing básicamete es un sistema de servicios distribuidos que brinda recursos (de forma gratuita o paga) a los usuarios/empresas para que utilicen sin preocuparse por tener que administrarlos. Estos recursos estarán siempre disponibles y se podrán acceder desde cualquier lugar del planeta. El recurso puede ser cualquier cosa, tiempo de procesamiento, espacio en disco, una aplicación, un archivo, incluso hasta un sistema operativo... Cada proveedor tiene su propio servicio y puede estar basado en uno o más recursos.
Aquel que no conozca del tema, seguramente se estará preguntando por qué el nombre Cloud Computing (Computación en Nube - beugh que feo suena en español :S). El nombre (excelentemente elegido) se refiere a que uno utiliza recursos que no sabe donde están ubicados físicamente, ni cómo se administran, forman parte de una nube. El usuario utiliza los recursos sin preocuparse de nada, sólo sabe que están siempre disponibles y que los puede acceder desde cualquier lugar.
Una definición que me encantó fue la que leí en ruby.about.com donde citan lo que dijo George Reese, CTO de enStratus Networks y autor del libro Cloud Application Architectures (O'Reilly Press): "In the end, what the cloud really amounts to is: it's not my problem." algo así como "Al final, cloud realmente se resume a: no es mi problema". A lo que se refiere Reese es que uno utiliza los recursos y si algo sucede es problema del proveedor, nosotros nos abstraemos de lo que sucede por debajo, nos limitamos a usar el recurso.
En realidad lo único nuevo detrás de Cloud Computing es el nombre y el marketing. Desde hace años venimos utilizando servicios que caerían dentro de la definición de Cloud. Tal vez el que resulte más familiar es el de e-mails. Este servicio, brindado gratuitamente por diferentes compañías nos brindan espacio para almacenar los e-mails, así como también el procesamiento para enviar y recibir e-mails, y todo sin que nosotros sepamos como funciona ni dónde se almacenan. Además los e-mails son accesibles desde cualquier lugar del mundo y están siempre disponible. Como ven, es un servicio cloud.
Igualmente sucede con los motores de búsqueda. Los motores de búsqueda tienen almacenados gigantes índices y grandes cantidades de páginas y realizan todo el procesamiento necesario para que nosotros obtengamos los resultados, todo sin que sepamos cómo o dónde están los recursos necesarios para que esto funcione. También están siempre disponibles desde cualquier lugar.
División general
El concepto de cloud se puede dividir principalmente en Infrastructure as a Service (IaaS), Platform as a Service (PaaS) y Software as a Service (SaaS), aunque hay otros no tan conocidos.
IaaS nos entrega una infraestructura completa como servicio. La idea es que en vez de comprar servidores, software, espacio de almacenamiento o equipamiento de red, el cliente compra todos los recursos en un pack totalmente administrado por el proveedor, el cual nos garantiza disponibilidad en todo momento, así como buena performance y seguridad. Un par de links interesantes son http://en.wikipedia.org/wiki/Infrastructure_as_a_service y http://www.gni.com/services/iaas (es interesante leer en la página de GNi que entre sus clientes se encuentran IBM y Cisco!)
PaaS permite a los usuarios utilizar servicios de sistema operativo. Si bien el concepto es así de general, lo que las empresas brindan se orienta al desarrollo de software. El servicio provisto incluye las facilidades requeridas para el completo ciclo de vida de desarrollar, testear y hostear aplicaciones web, sin necesidad de descargar o instalar software para los desarrolladores, administradores IT o usuarios finales. PaaS también se conoce como cloudware. Algunos links donde encontrar info sobre PaaS son, como siempre, el wiki http://en.wikipedia.org/wiki/Platform_as_a_service , y además http://www.platformasaservice.com/ y http://blogs.bungeeconnect.com/2008/02/18/defining-platform-as-a-service-or-paas/
Por último y tal vez el que resulte más familiar al usuario es SaaS. SaaS nos brinda la facilidad de utilizar aplicaciones y guardar los datos utilizados en esas aplicaciones en la nube, con lo cual podemos acceder y editar nuestros datos cuando queramos, desde donde queramos, además de trabajar en grupo con los usuarios que queramos. El usuario no necesita ningún software o hardware adicional para usar/modificar o acceder a sus datos. En ésta categoría caen los ejemplos que cité más arriba (motores de búsqueda e e-mails) así como también las conocidas google applications (google docs, calendar, reader, etc) y otras tantas.
Cada una de éstas formas de servicio es bastante compleja y merecerían un informe completo cada una, aquí sólo incluí una definición muy básica. Hay empresas que brindan uno u otro servicio, así como también algunas que brindan más de uno.
En resumidas cuentas, Cloud Computing ofrece:
Además de la posibilidad de utilizar los recursos en todo momento desde cualquier lugar del planeta, sin preocuparnos de cómo se mantienen o dónde están, colaborar entre usuarios repartidos por todos lados, hay otros beneficios no tan visibles para el usuario final, pero sí para las empresas. Por un lado está la posibilidad de crecimiento a un bajo costo. De no existir IaaS algunas empresas no podrían escalar debido a los altos costos de comprar y mantener servidores, espacio, equipamientos de red, seguridad, monitoreo, etc. Por otro lado tenemos las facilidades de PaaS para el desarrollo de software de forma distribuida, donde las empresas pueden focalizarse sólo en desarrollar, dejando el resto del trabajo al proveedor Cloud (es decir, abstracción). También es importante la alta disponibilidad y la confiabilidad, la idea de un servicio Cloud es estar siempre disponible y nunca perder un dato. Por supuesto (aunque con un interesante enganche que explico más abajo) está el tema seguridad, garantizando integridad y cuidado de nuestros datos. Vale mencionar que existen otros beneficios, como escalabilidad, flexibilidad, etc.
Empresas en el ruedo
La empresa con mayor peso en prestaciones de servicios Cloud es Amazon (pensar q arrancaron vendiendo libros...), con su Amazon Web Services.
Por otro lado, tenemos el más conocido (por usuarios internautas comunes) Google Apps con sus ya afamados Google Docs, Talk, Calendar, etc.
También Salesforce.com es conocido por su CRM (Customer Relationship Management)
Por supuesto que Microsoft no se iba a quedar fuera del juego, ellos ofrecen Microsoft Online Services , los cuales, para variar, son pagos. (bueno, los de Amazon y Salesforce también son pagos, pero uno trae la inercia de tirarle palos a M$ =D ).
Por su parte IBM ofrece Blue Cloud con una variada lista de servicios.
Existen muchas otras compañías ofreciendo distintos servicios (como la citada GNi), sólo hace falta buscar lo que deseamos.
To be or not to be
Y como no podía ser de otra manera, después de describir Cloud Computing y sus beneficios, hace falta una buena reflexión de las implicaciones. Como cité en la anteriormente, hay un interesante enganche concerniente a la seguridad.
Si bien la idea de Cloud es excelente, qué pasa con nuestros datos?, qué pasa con las estrategias empresariales?, qué pasa con la privacidad?... como el resto de las cosas en este servicio, están en las nubes. Debemos confiar execivamente en nuestros proveedores. Y si por ejemplo nuestros proveedores decidieran cortarnos el servicio y quedarse con nuestros datos hasta que paguemos una elevada suma de dinero?, y si vendieran nuestras estrategias de negocio a la competencia? Qué seguridad tengo de que no explote todo y pierda mi negocio?. Como bien cito en el título, dónde mierd* están mis datos? qué hacen con ellos?
También está el problema político. Y si almacenan los datos en un país dónde el gobierno pueda decidir sobre el futuro de mi empresa?
En http://www.idg.es/Comunicaciones/articulo.asp?id=191003 hacen un interesante review de Cloud Computing con una buena lista de los riesgos a los que estamos expuestos.
Por supuesto, el defensor de la libertad absoluta (y hasta extremista) Richard Stallman remarcó de forma dura, pero realista lo que potencialmente puede pasar al dejar tanta responsabilidad en manos ajenas. Algunos de sus comentarios pueden leerse en http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman
También en http://www.infoworld.com/d/cloud-computing/how-buy-cloud-computing-services-821 hacen un buen trabajo remarcando los problemas que deben afrontar las empresas que deseen utilizar los servicios del Cloud Computing para sus negocios.
Agradecimiento:
Antes de terminar, quiero agradecer especialmente al Sensei Echaiz no sólo por prestarme una excelente fotografía para colocar en el informe, sino por todo lo que me enseñó y me sigue enseñando cada día, sin su ayuda mi trabajo no sería lo que es. Gracias Javi!
Pueden ver más de su excelente trabajo fotográfico en su blog
----------------------------------------------------------------
Cómo ven diferentes personajes al Cloud Computing:
Usuario guay: es de lo mejor!, puedo tener todo en cualquier lado en cualquier momento, nada de andar con pen drives molestos!
Fox Molder: es un nueva conspiración del gobierno (en conjunto con los Aliens) para controlar a los ciudadanos, big brother te vigila!
Steve Ballmer: money!, monopoly!, money!... i forgot something?, oh yeah, buy Windows!
Richard Stallman: es una estupidez!, es peor que estupidez: es una campaña de marketing publicitario!
JE: una nueva forma de vender mi alma al diablo.
Para comenzar y como lo más relevante del día, es que ya está entre nosotros la nueva lavada de cara de Microsoft al mundo de los buscadores. Después de fracasar rotundamente con su Live Search (el cual era pésimo, vale remarcar) ahora se lanzan al mercado con un renovado buscador al que nombraron Bing (también conocido como Kumo). Como todo lo lanzado por Microsoft, ellos propagandean Bing como el buscador más rápido y el que toma mejores decisiones. Como siempre, no confío para nada en las soluciones M$, pero al menos demosle el beneficio de la duda y probemoslo un poco: http://bing.com Esperemos que no se queden sólo en el "bla, bla" y hagan un verdadero esfuerzo por innovar.
Noticias relacionadas al respecto son http://tech.slashdot.org/story/09/05/28/1650226/Microsoft-Rebrands-Live-Search-As-Bing y http://tech.slashdot.org/story/09/06/01/1718241/Microsoft-Bing-Search-Launches-Early-Preview
Por otro lado, encontré interesante la noticia sobre un
nuevo desarrollo googlesco: Wave. Wave es un sistema basado en p2p orientado a conversación (al mejor estilo IMs) y colaboración. La idea es que cada usuario cree su wave y agregue personas, entre las cuales se puedan comunicar utilizando texto enriquecido, fotos, gadgets y hasta feeds. La idea es combinar Gmail y Google Docs. Pueden leer más información, así como un video explicativo en http://googlesystem.blogspot.com/2009/05/google-wave.htmlVeremos que sale de esta nueva apuesta, yo lo veo como un sistema que quiere abarcar todo lo visto para redes sociales.
