Blogia
Pensando

Informática

Orden

Orden
¿A quién no le gusta ver las cosas propias bien ordenadas?


Y la PC no es la excepción, al fin y al cabo es una de las cosas más propias. Por ser una de las más personalizables es, en gran parte, la que más se adaptó a nosotros. Como si esto fuese poco, pasamos bastante tiempo con ella, nos ayuda en nuestro trabajo, para distraernos, para recordar cumpleaños, para comunicarnos y para mil cosas más. Además, cuando está bien ordenada, es bastante cierto que funciona más rápido - lo que también nos beneficia.

Pero, por el otro lado:
¿A quién le gusta ordenar?


Y la PC también ocupa uno de los lugares preferenciales. No ayuda el que los archivos sean pequeños y se cuenten por miles. Aún así, la mayoría no los vemos nunca y/o no se tienen que mover de la ubicación que le dimos al comienzo - archivos de sistema, archivos de programas, etc. - porque puede llegar a ser catastrófico. Ejemplificando con mi PC, 12 de los 20Gb de mi disco duro albergan más de 33.000 archivos; y algo así como 23.000 caen en esta categoría. Aún así, eso quiere decir que tengo 10.000 archivos que ordenar.

"Pero no está tan desordenado... yo sé donde está todo" ¿Cuántas veces oímos y/o dijimos esta mentira? El desorden es obvio, bajo una máscara mínima de estructura. De los archivos que tengo, no menos de un cuarto deben ser basura, otro cuarto deben ser archivos repetidos y la mitad restante puede ser metida en un CD sin problema alguno. ¿Cuáles borrar? ¿Cuáles guardar? Sólo lo podré saber cuando me siente a ordenar.

Me tengo que poner a ordenar mi PC así puedo migrar a Linux. Esa idea me ronda desde hace mucho tiempo; pero nunca la llevé a cabo porque no me tomé el tiempo de ordenar mi PC. Ya les contaré mi experiencia... a ver si entre todos le sacamos algo positivo :p
(continuará... aquí)

Patentes

Patentes Me enteré por medio de Bitácora de Matemáticas que quieren legalizar las patentes de software.

Las implicaciones de este hecho son catastróficas. Imagínense que se puedan patentar porciones de código, sería como patentar el uso de alguna palabra de nuestro idioma. Todos los que la quieran usar tendrían que pagar para eso, sea lo que sea. Llegará un momento, sin lugar a dudas, en que toda porción de código estará patentada y el hacer un programa significaría cientos (o miles) de dólares - o euros - en permisos para utilizar porciones de código.

Sin ir más lejos, ningún programa podría tener algo parecido a otro siquiera. No creo que existan muchas formas de programar algo de forma idéntica; en caso de existir, no pasaría mucho hasta que todas sean propietarias. Esto significaría que los contadores de las páginas, los menúes, las barras de desplazamiento, etc. no podrían ser utilizados en cualquier programa que estoy desarrollando sin el pago correspondiente.

Así, la competencia en materia de software sería una idiotez: nadie podría competir con quien tenga más patentes. Serían aquellos que, actualmente, tienen suficiente dinero como para patentar las primeras ideas quienes luego recuperen esa inversión inicial - con creces sin lugar a dudas - gracias a los permisos y/o juicios por utilizar sus porciones de código. Lo que es más, el software opensource dejaría de existir y no tendría sentido el freeware.

Desconozco si es así como yo dije o simplemente me informaron mal. Por ahora, estoy totalmente en contra del patentamiento del software.

Procesamiento distribuído

Procesamiento distribuído Imagínense una tarea tan grande que llevaría años en ser desarrollada incluso con las computadoras más poderosas. Ahora dividan esa tarea en miles de partes. No parece tan complicado ahora ¿no?

Básicamente esa es la base de lo último en tecnología de investigación. Una súpercomputadora con un programa servidor que se encarga de repartir cada tarea en los programas clientes. Luego recoge los datos y hace un primer análiss. Ésto es el Procesamiento Distribuído.

Un grupo de personas altamente especializadas se encargan de codificar los programas para que hagan lo que quieran y generan un ejecutable. Éste es publicado en internet para que aquellos que estén interesados en contribuir a dicha causa lo baje e instalen en su PC voluntariamente. El instalarlo en la PC hace que donemos tiempo de procesamiento para la tarea específica.

El único requisito es una conexión a internet (no tiene que ser permanente ni de alta velocidad) para obtener los módulos de trabajo y devolver los resultados. En cuanto a hardware, prácticamente cualquier PC funciona ya que los programas clientes son livianos y utilizan potencia del procesador únicamente cuando no es utilizada (los ciclos libres o idle cycles). Obviamente, mejor será mientras más potente sea nuestra PC ya que demorará menos en hacer cada módulo - presuponiendo que tiene ciclos libres-.

Los objetivos de dichos procesamientos distribuídos son variados. En ésta página pueden encontrar varios links a diferentes sitios web sobre procesamiento distribuído. Algunos ya han sido terminados; no he investigado mucho, pero en general estos procesos sólo recolectan información o hacen un procesamiento inicial para una investigación más minuciosa. Los más conocidos (al menos por mí) son los siguiente - van con link y explicación -:

-Búsqueda de vida extraterrestre: es el procesamiento de señales recibidas en el espacio en busca de vida en algún otro punto del universo (Depende de la Universidad de Berkley).
-Sítesis de Proteínas: estudia el proceso de síntesis de las diferentes proteínas humanas. Tendría un gran impacto en la medicina ya que muchas enfermedades son producidas por una mala síntesis de proteínas (depende de la Universidad de Standford).
-Búsqueda de la Cura del Cáncer: similar al estudio de la síntesis de proteínas pero enfocado específicamente a la lucha contra el Cáncer. Yo usé el cliente durante mucho tiempo y realmente hace cosas interesantes - de las que entiendo poco ^^; - (depende de la Universidad de Oxford).
-Búsqueda de la Cura del SIDA: Idem anterior, avocado a la búsqueda de moléculas que combatan al HIV (Depende del Scripps Research Institute).
-Estudio del Mercado Bursátil: Estudia las variaciones de la bolsa de valores buscando algún patrón e intentando predecir su comportamiento futuro (iniciativa independiente).
-Renderización de animaciones 3D: Crear las escenas de un largometraje mediante animación computada. La creación de dichas escenas (Toy Story, Monsters Inc y otras son un ejemplo) es una de las tareas de procesamiento más "pesadas" conocidas hasta el momento. (propuesta independiente sin fines de lucro)
-Búsqueda de los primos de Mersenne: Busca los números primos (cuyos divisores sean sólo 1 y ellos mismos) que se puedan expresar como 2^p - 1. Los 6 primos más grandes conocidos hasta el momento son fruto del trabajo de éste Procesamiento Distribuído. Si bien es una propuesta independiente y sin fines de lucro, existe un premio de 100.000 dólares para quien encuentre el primer número primo de 10 millones de cifras (el último encontrado, el Nº 40 de Mersenne, tiene más de 6 millones de cifras).

Lo que ha logrado la tecnología actual ¿no?. Los que quieran saber más, investiguen por su cuenta ;)

Para la memoria

¿Algua vez se olvidaron de algún cumpleaños?

A mí me pasó miles de veces. Es por eso que tengo configurado todos mis contactos de Outlook con fecha de cumpleaños; de esa manera se arma automáticamente el calendario. Está muy bien hecho, cada vez que lo abro automáticamente me dice quién cumple años ese día y en la próxima semana.

Pero no todos tienen el Outlook o, simplemente, no les simpatizan los productos de Microsoft. Existen miles de programas que hacen algo parecido, pero todos tienen su complejidad o no son todo lo útiles que uno quisiera. Por otro lado, uno tiene que tomarse el trabajo de pasar todos las fechas y no todos tienen ese tiempo. Para eso, internet tiene la solución.

Birthday Alarm se encarga de eso. Yo no lo uso (como ya dije, uso el Outlook) por lo que no podría darles una descripción muy explícita de lo que hace. Por lo que tengo entendido, uno se registra y le pide a todos quienes quiera (mediante un mail generalizado) que ingresen su fecha de cumpleaños. Así, se genera una base de datos que te avisará de los cumpleaños de aquellos que se inscribieron.

Me han llegado algo así como 6 mails en las últimas 24hs de conocidos - mi hermana inclusive - por lo que el servicio no debe ser malo. Además, creo que es útil para aquellos que tienen una conexión a Internet pero no el tiempo para preguntarle a todos sus contactos en qué fecha cumplen años y recordarlas.

Sólo un servicio a la comunidad

Browsers

Browsers Desde que empecé este blog que quiero escribir sobre los distintos browsers.

Los dos más conocidos son los eternos competidores: Internet Explorer (IE) y Netscape. El primero le ha valido a Microsoft - y su fundador Bill Gates - un juicio por monopolio al ser distribuído con el sistema operativo, el segundo se hizo fama de a poco aprovechándose de las falencias del anterior. La ventaja del primero es que tiene soporte autentificado de Microsoft, esto se traduce en que todo aquello que funciona en Windows, es compatible con IE.

¿Cuál uso yo? Ninguno. Hasta ahora estaba usando el Mozilla, un navegador Open Source (el código que lo hace andar es libre para ser modificado) con bases en el Netscape. Las ventajas sobre el IE eran muchas, mejor control de la información que entra y sale de la máquina, bloqueo automático de pop-ups (las ventanas que se abren automáticamente), control minucioso de cookies y de certificados. Pero el detalle más significativo (para mí) es la posibilidad de usar una sola ventana con 20 páginas abiertas gracias al tabbed-browsing (navegación con 'pestañas').

La desventaja, el hecho de correr un programa pensado para Linux sobre Windows no es del todo conveniente. Si bien en la página oficial se encuentra la versión para windows aquellos plug-ins (agregados) no terminan de funcionar bien especialmente por el cambio de idiomas. El más importante que no logré hacer funcionar - a costas de que se clavara el programa varias veces - fue Macromedia Flash. Es una pena, porque el trabajo que se ha hecho sobre este navegador es increíble.

Sin embargo, en este instante no estoy usando Mozilla. Tampoco IE ni Netscape. Los mismos creadores de Mozilla han estado desarrollando una versión más liviana de su navegador: el (Mozilla) FireFox - cuyo logo precede este post -. Comenzó como "Mozilla Phoenix" pero ya había otro proyecto similar llamado así, por lo que después de la versión 0.5 le cambiaron el nombre a "Mozilla Firebird" y tuvieron el mismo problema cuando llegaron a la versión 0.7.1. No podría decir que es mejor que el otro debido a que todavía no lleva ni media hora de instalado en mi PC; pero me gusta, mucho. Tiene todas las comodidades de su predecesor y es más liviano al prescindir de ciertas opciones de personalización. Éstas, si bien no son indispensables le daban un 'saborcito' distinto al Mozilla; pero, he leído por ahí, que podrían incorporarse como extensiones.

De todas formas la versión estable más reciente es la 0.8 [1] por lo que deduzco que el programa no está completo (por cómo funciona decir que es Beta sería un insulto). Voy a seguir probándolo por un tiempo, si me llega a fallar no les quepa duda que se van a enterar. Si quieren probarlo, pueden bajarlo de la página oficial de Mozilla, unos modestos 6 Mb - la mitad que el IE 6.0 -.

En un rato me pongo a investigar sobre las extensiones y plug-ins. Estoy convencido que no me va a defraudar, espero que sea así.

[1] La versión en inglés es 0.8 En español, la más reciente es la 0.7 y se puede descargar en este sitio - allí encontrarán también versiones en un montón de idiomas más.

El mejor tutorial: prueba & error

Ayer, después de hacer el quiz quise publicar mi resultado copiando y pegando el código que la mayoría de los tests ofrecen para tal fin. No se imaginan mi sorpresa al subir el post y que no se mostrara como promete el código que usé. Inmediatamente me puse a investigar la causa de que no se viese como yo quería que se viera.

Para los que no lo sepan, las páginas web se crean en un lenguaje especial llamado HTML (HyperText Markup Languaje) basado en tags. Las tags son unos marcadores entre los símbolos de 'mayor y menor que' que delimitan la porción de la página sobre la que hacer efecto. Los tags van desde cosas tan sencillas como decorar el texto (cursivas, negritas, tamaños, etc. ), hacer links, crear tablas, imágenes y muchísimo más si son combinadas de la forma adecuada.

Sabiendo que puedo usar tags HTML en mis posts (así pongo las cursivas, las negritas, los links y alineo el texto) me confié y no me di cuenta que el tag encargado de crear tablas no está permitido. Así, cuando copiaba la porción de código que me proporcionaba la página de mi resultado prometiendo una tabla idéntica a la que allí se encontraba todos los tag que creaban la tabla eran, no sólo pasados por alto, sino que también eliminados.

Como no quería ser vencido por una máquina, me dí a la tarea de reproducirla lo mejor posible como sea. Obviamente, la idea de capturar la imagen y pegarla se me acaba de ocurrir; en aquél momento sólo pensé en retocar el código. Para poder hacer eso necesitaba más que HTML básico, entonces recurrí al Google® buscando 'tutorial HTML'. Todos los resultados que me devolvió no servían para lo que necesitaba, yo necesitaba una lista con todos los tags y lo que hacía cada uno; entonces busqué 'HTML tag list' y encontré lo que buscaba en ésta página.

Para los que no sepan, W3 es por lo general WWW, World Wide Web, pero en estos casos se refiere al W3C: el "WWW Consortium". Una organización que determina los estándares para la web. Así, dirigido por los más indicados busqué algo que reemplazara al tag de tablas. Ví que <DIV> funcionaría a las mil maravillas y me puse a la tarea de investigar cómo hacer para modificar sus atributos. Entonces, recordé que existía el CSS: Cascade Style Sheets. Eran como "modificadores" a los tags HTML, también aceptados por el W3C. Ante la experiencia frustrante en la búsqueda de un tutorial de HTML directamente busqué por una lista de todas las propiedades que podía modificar con CSS.

Terminé en los Tests Oficiales del W3C sobre CSS. En ellos, tenés ejemplos de todo lo que podés hacer con CSS (al menos lo más aceptado). Así, valiéndome de esas dos páginas me di a la tarea de reproducir la tabla. Debo haber estado media hora probando y equivocándome sin parar con todo tipo de intentos frustrados y errores de lo más variados hasta llegar a lo que quería lograr (más o menos). Podría haberle dedicado un poco más de tiempo y dejarlo exactamente igual; pero ya estaba cansado.

Creo que valió la pena el esfuerzo ¿o no? ^^;;

Memoria Virtual

Memoria Virtual Mi máquina ha estado andando muy mal así que tenía dos opciones: La formateaba o me la aguantaba. Como no me interesaba aguantar que se tildara cuando se le diera la regalada gana la única opción era formatear. Ahora, para formatear tenía 2 opciones: Formatear las 3 particiones del disco duro (Programas, Personal, MP3) ó Formatear sólo la de programas.

Como me gusta hacer las cosas bien decidí que iba a formatear todo. Pero para hacer eso tenía que backupear lo que me interesara conservar; a saber: documentos varios, imágenes, MP3s y uno que otro archivo. Pero para poder pasar todo a CD tenía que ordenarlo primero, me molesta tener un CD con MP3 repetidos, defectuosos o documentos que no uso o ya no me interesan. Por lo tanto, me puse a la tarea de organizar todo (estoy hablando de varios días atrás); iba más o menos bien hasta que la PC se tildaba demasiado seguido y no me dejaba ordenar en paz. Entonces hice lo que tendría que haber hecho desde el principio: defragmentar.

Acá es donde entra el concepto de Memoria Virtual. En Windows, existe un archivo llamado Win386.swp que es el archivo de transferencia (Swap) y simula memoria en el disco duro. Como está en el Disco Duro es de rápido acceso para información que se usa constantemente y de volúmenes grandes y ayuda muchísimo a la RAM. Ahora, la configuración predeterminada de la Memoria Virtual (a la que se puede acceder haciendo click derecho en Mi PC --> Propiedades --> Rendimiento --> Memoria Virtual) es que Windows la maneje. Esto significa que no tenga un tamaño pre-fijado y vaya usando el espacio del disco que vaya necesitando; esto es una gran contrariedad proque utiliza el primer espacio que encuentra libre y, si uno agrega información al disoc (instalando o copiando archivos) la memoria virtual estará ocupando espacio que luego será liberado (cuando no lo necesite más) dejando huecos en el disco duro.

Entonces, leí una vez que para acelerar el rendimiento de la PC se podía hacer lo siguiente:

-Desactivar la memoria virtual (esto puede llegar a provocar que ciertos equipos ni siquiera arranquen)
-Reiniciar y defragmentar (cuando defragmenten notarán que ya no habrá más cuadraditos blancos con rojo)
-Volver a habilitar la memoria virtual pero dándole un tamaño fijo (lo recomendable es algo así como 2,5 veces la RAM)

Lo que hará esto es ordenar todos los archivos y poner un archivo grande y fijo al final de todo que será la memoria virtual. A mí siempre me funcionó y la máquina ahora funciona muy bien. Hagan esto únicamente si saben de lo que estoy hablando; se pueden hacer muchos desastres si se tocan las cosas estas.

Procedan con cuidado y responsabilidad... o ignórenme.

P.D.: Existen otras utilidades que optimizan la utilización del Disco Duro; pero yo no las usé nunca... y ésta funciona bien.
P.D.: La imagen está en francés para que Gala lo entienda :p ... y porque es la única que pude encontrar.

Locos de la PC

Locos de la PC No sabía bien cómo inaugurar este tema así que lo estaba dejando para el último.

¿Ustedes se creen fanáticos de las computadoras? ¿Creen que haber personalizado Windows tanto como para que parezca otro sistema operativo, o conocer su distribución (y varias más) de Linux, o hacer páginas web con el NotePad, o programar en Basic ó C++ los hace reyes de la computadora? Realmente no tienen la más remota idea de lo que hace una persona verdaderamente fanática de las computadoras.

Ésto es un verdadero fanático de la PC.

Para los que no entiendan muy bien de qué se trata el dicha página:

El tipo armó una computadora (bastante potente) de tal forma que entrara dentro de la caja en la que se distribuye oficialmente Windows XP. Es decir: armó un gabinete que mide menos de ¡¡¡ 24,3 x 20,0 x 4,8 centímetros !!!.

¿Creen que eso no lo hace taaan especial? El tipo quería tener también Linux instalado en su mini-PC pero es un crimen bootear Linux en una máquina que se encuentra en una caja de Windows XP. Por lo tanto la hizo de tal forma que pudiera intercambiarse la caja que la contiene. Ahora la PC puede tener el emblema de Microsoft o el de Linux Red Hat (una de las pocas distribuciones de Linux que tiene empaque).

Dirán ustedes que no es taan fanático por eso... pero todavía hay más. Como no quería cometer el error de bootear Linux mientras la máquina estuviera en el empaque de Windows nada más simple que automatizar el booteo. La PC se ubica al revés dependiendo del empaque en el que se encuentre entonces fabricó un dispositivo (extremandamente chiquito - como para que también entre en el ya mínimo gabinete) que 'se da cuenta' para qué lado está mirando e, indirectamente, el empaque en el que se encuentra. Así, automatizó el booteo modificando un administrador de booteo en Assembler para que trabaje con el dispositivo que había creado y bootee uno u otro sistema operativo según corresponda.

¿Y quieren saber por qué lo hizo? Se embarcó en semejante proyecto porque se le ocurrió como un desafío interesante. Exacto, lo hizo por amor al arte... al menos haberlo hecho para mostrar las ventajas de las placas utilizadas, o con uno que otro sponsor; pero no: él es un fanático de las computadoras.

Espero haberlos entretenido